[OS X TeX] creating a "smart macro"
Alan Munn
amunn at msu.edu
Wed Apr 22 09:08:06 EDT 2009
At 10:58 AM +0200 4/22/09, Alex Hamann wrote:
>Hi,
>
>I need to create a number of name tags for a class. The idea is to
>create a list of the students' names and have a macro that will
>fetch the first name, then reexecute using the second name and so on.
>This is the layout I created. Can anybody give me a hint how to make
>a smart macro out of this that will work its way through a list of
>109 students and create a pdf in which every single page looks like
>the output of the code below while replacing \1stname and \lastname
>with the names in the list?
>
>TIA,
>Alex
>
>\documentclass[landscape,a5paper,pagesize,DiV=14]{scrartcl}
>\usepackage[landscape,left=2cm,top=1cm,right=3cm,bottom=1cm,nohead,nofoot]{geometry}
>\usepackage{xltxtra}
>\setmainfont[Mapping=tex-text]{Hoefler Text}
>\pagestyle{empty}
>\usepackage{fix-cm}
>\begin{document}
>\vspace*{7,5cm}
>\center
>\huge{\1stname}\\
>\fontsize{60}{70}\selectfont
> \textbf{\lastname}
>\vspace*{-1cm}
>\pagebreak
>
>\end{document}
Use the datatool package. Store your names in an Excel or OpenOffice
csv file and then read the data in.
Assuming your csv file has column headings FirstName and LastName and
is called students.csv the following will do the trick. (You might
want to make the first name a bit bigger, though...) -Alan
\documentclass[landscape,a5paper,pagesize,DiV=14]{scrartcl}
\usepackage[landscape,left=2cm,top=1cm,right=3cm,bottom=1cm,nohead,nofoot]{geometry}
\usepackage{xltxtra}
\setmainfont[Mapping=tex-text]{Hoefler Text}
\pagestyle{empty}
\usepackage{fix-cm}
\usepackage{datatool}
\begin{document}
\DTLloaddb{students}{students.csv}
\DTLforeach{students}{%
\firstname=FirstName,\lastname=LastName}{%
\vspace*{7,5cm}
\center
\huge{\firstname}\\
\fontsize{60}{70}\selectfont
\textbf{\lastname}
\vspace*{-1cm}
\pagebreak
}
\end{document}
--
Alan Munn amunn at msu.edu
Department of Linguistics
and Germanic, Slavic, Asian and African Languages Tel.
517-355-7491
Michigan State University, East Lansing MI 48824 USA Fax 517-432-2736
More information about the MacOSX-TeX
mailing list