\documentclass[a4paper,KOMA,landscape]{powersem} \usepackage[stmo,button,display]{ifmslide} %\usepackage[stmo,button]{ifmslide} %\usepackage[draft]{ifmslide} \definecolor{background}{gray}{.9} %\nobuttons %% user definitions \newcommand{\ticket}{{\code{ticket.sty}}} \newcommand{\bs}{{\mtt\\}} \hypersetup{pdfauthor={Thomas Emmel}} \hypersetup{pdftitle={ticket manual}} \hypersetup{pdfsubject={ticket.sty}} \IfFileExists{cmtt.sty}{\usepackage{cmtt}}{} \usepackage{verbatim} \usepackage{amssymb} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{document} \panelposition{bottom} \pageTransitionDissolve \sffamily \title{\begin{minipage}[t]{0.98\textwidth}\begin{center} {\mdseries \ticket{} v0.4b November 30, 2010}\\[1ex] Making labels, visiting cards, pins and flash-cards with \LaTeX\\[1ex] A short introduction \end{center}\end{minipage}} \author{\scalebox{1}[1.1]{Thomas Emmel} \href{mailto:thomas@family-emmel.de}% {thomas@family-emmel.de}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \slidepagestyle{empty} \releasebutton \buttonsize(10mm,4mm)(8,8) \freebutton(263,180)[h] \begin{slide} \maketitle \end{slide} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \hidebackground \pageTransitionReplace \centerslidesfalse \begin{slide} \section{A short introduction} \ticket{} provides a simple interface to produce visiting (or calling) cards, labels for your files, stickers, pins and other stuff for your office, conferences etc.\\[2ex] All you need is a definition of your \lq{}ticket\rq{} included in a ticket definition file (\code{.tdf}),\\ $\rightarrowtail$ see \hyperlink{tdf}{ticket definition file}\\ and the two commands \code{\bs{}ticketdefault} and \code{\bs{}ticket}.\\ $\rightarrowtail$ see \hyperlink{ticket}{how to fill your ticket}\\[2ex] See these examples to get an idea what you can get:\\ $\rightarrowtail$ \href{ex_file.pdf}{\code{ex\_file}} back labels for your files...\\ $\rightarrowtail$ \href{ex_pin.pdf}{\code{ex\_pin}} pins for a conference...\\ $\rightarrowtail$ \href{ex_vcard.pdf}{\code{ex\_vcard}} visiting-cards (also business cards, name cards...)\\ $\rightarrowtail$ \href{ex_marks.pdf}{\code{ex\_marks}} different markers used...\\ $\rightarrowtail$ \href{ex_flashcard.pdf}{\code{ex\_flashcard}} flash-cards, try it...\\ $\rightarrowtail$ \href{ex_flashcard_dup.pdf}{\code{ex\_flashcard\_dup}} in duplex mode\\ $\rightarrowtail$ \href{ex_flashcard_rm.pdf}{\code{ex\_flashcard\_rm}} in rows\\ \end{slide} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{slide} \section{How to use it} Just add this line to the header of your latex-file: \code{\bs{}usepackage[{\itshape tdf-file,other options}]\{ticket\}} Use the letter or article documentclass and set up the paper-size that you need. \end{slide} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{slide} \section{The ticket definition file}\hypertarget{tdf}{} A sample ticket definition (\code{lz1680.tdf}) for a \lq{}LEITZ\rq{}-product is:\\[-4ex] \begin{quote} \begin{minipage}[t]{0.5\textwidth} {\scriptsize \begin{verbatim} %% %% ticket for "Leitz 1680" %% pre-cutted label for wide files %% \unitlength=1mm %% tested for an HP5SiMX, adjust it for your printer \hoffset=-16.2mm \voffset=-6.6mm \ticketNumbers{1}{4} \ticketSize{189}{56.5} % in unitlength \ticketDistance{0}{9.8} % in unitlength \end{verbatim} } \end{minipage} \end{quote} The meaning of \code{\bs{}unitlength} is obvious, \code{\bs{}hoffset} and \code{\bs{}voffset} are used to adjust the printed output. \code{\bs{}ticketNumbers\{n$_x$\}\{n$_y$\}} are the number of the tickets on the sheet in horizontal and vertical direction. \code{\bs{}ticketSize\{width\}\{height\}} is the size of one ticket and \code{\bs{}ticketDistance\{dist$_x$\}\{dist$_y$\}} are spaces between the tickets. \end{slide} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{slide} \section{Missing the ticket definition file} If you like to test a new ticket definition or you like to create only a single output without reusing those definitions anymore, \ticket{} assumes default values which can be redefined in your file.\\ Simply call \ticket{} without any ticket definition: \code{\bs{}usepackage[{\itshape other options}]\{ticket\}} and add your definitions directly to the head of the file after loading ticket.sty. \end{slide} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{slide} \section{How to fill your ticket}\hypertarget{ticket}{}% \ticket{} enables a picture-environment for all tickets. You can put things into this picture with \code{\color{red}\bs{}ticketdefault} and \code{\color{red}\bs{}ticket}. Both commands offer one argument.\\ \code{\color{red}\bs{}ticketdefault} is used to put a default and unique background to your ticket, that will be -- of course -- not changed for all tickets unless you change it with \code{\bs{}renewcommand}:\\[-5ex] \begin{quote} \begin{minipage}[t]{.5\textwidth} {\scriptsize \begin{verbatim} \renewcommand{\ticketdefault}{% \put(100, 5){\includegraphics[width=35mm]{ifmlogoc}}% \put(100,50){\begin{rotate}{180}\Huge ...\end{rotate}}% } \end{verbatim} \normalsize } \end{minipage} \end{quote} \code{\color{red}\bs{}ticket} is used to provide the content which will be changed for the individual tickets. The simplest way to do that is to define a new command like this:\\[-5ex] \begin{quote} \begin{minipage}[t]{0.5\textwidth} {\scriptsize \begin{verbatim} \newcommand{\myticket}[3]{\ticket{% \put( 0, 5){#1}% \put( 20,20){{\bfseries\large#2}\\#3}% }} \end{verbatim} } \end{minipage} \end{quote} \end{slide} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \def\cross{% \begin{picture}(0,0)% \put(-2,0){\line(1,0){4}}\put(0,-2){\line(0,1){4}}% \end{picture}}% \begin{slide} \section{Additional Options} Most of the options other than the tdf-file are used to create marks or decorations around the ticket:\\ \begin{picture}(0,0)(-350,10)\color{red} \put(0,0){\cross}% \put(0,10){\cross}% \put(20,0){\cross}% \put(20,10){\cross}% \end{picture}% \begin{picture}(0,0)(-380,10)\color{red} \put(0,0){\cross}% \put(0,10){\cross}% \put(20,0){\cross}% \put(20,10){\cross}% \end{picture}% {\color{red}\bfseries crossmark \\} Add a cross at all four corners of the ticket\\ \begin{picture}(0,0)(-350,10)\color{red} \put(0,0){\circle{2}}% \put(0,10){\circle{2}}% \put(20,0){\circle{2}}% \put(20,10){\circle{2}}% \end{picture}% \begin{picture}(0,0)(-380,10)\color{red} \put(0,0){\circle{2}}% \put(0,10){\circle{2}}% \put(20,0){\circle{2}}% \put(20,10){\circle{2}}% \end{picture}% {\color{red}\bfseries circlemark \\} Add a circle at all four corners\\ \begin{picture}(0,0)(-350,10)\color{red} \put(-1,0){\line(-1,0){2}} \put(0,-1){\line(0,-1){2}} \put(-1,10){\line(-1,0){2}} \put(0,11){\line(0,1){2}} \put(21,0){\line(1,0){2}} \put(20,-1){\line(0,-1){2}} \put(21,10){\line(1,0){2}} \put(20,11){\line(0,1){2}} \end{picture}% \begin{picture}(0,0)(-380,10)\color{red} \put(-1,0){\line(-1,0){2}} \put(0,-1){\line(0,-1){2}} \put(-1,10){\line(-1,0){2}} \put(0,11){\line(0,1){2}} \put(21,0){\line(1,0){2}} \put(20,-1){\line(0,-1){2}} \put(21,10){\line(1,0){2}} \put(20,11){\line(0,1){2}} \end{picture}% {\color{red}\bfseries emptycrossmark \\} A crossmark where the part of the cross inside the ticket is not visible\\ \begin{picture}(0,0)(-350,10)\color{red} \put(-1,0){\line(-1,0){2}} \put(0,-1){\line(0,-1){2}} \put(-1,10){\line(-1,0){2}} \put(0,11){\line(0,1){2}} \put(20,-1){\line(0,-1){2}} \put(20,11){\line(0,1){2}} \end{picture}% \begin{picture}(0,0)(-380,10)\color{red} \put(0,-1){\line(0,-1){2}} \put(0,11){\line(0,1){2}} \put(21,0){\line(1,0){2}} \put(20,-1){\line(0,-1){2}} \put(21,10){\line(1,0){2}} \put(20,11){\line(0,1){2}} \end{picture}% {\color{red}\bfseries cutmark \\} Just add cutmarks at the outer region of the page\\ \begin{picture}(0,0)(-350,10)\color{red} \put(0,0){\line(0,1){10}} \put(0,0){\line(1,0){20}} \put(20,10){\line(-1,0){20}} \put(20,10){\line(0,-1){10}} \end{picture}% \begin{picture}(0,0)(-380,10)\color{red} \put(0,0){\line(0,1){10}} \put(0,0){\line(1,0){20}} \put(20,10){\line(-1,0){20}} \put(20,10){\line(0,-1){10}} \end{picture}% {\color{red}\bfseries boxed \\} Add a frame around each ticket\\ The option {\color{red}\bfseries rowmode} creates the tickets in rows instead of columns, which might be useful in some cases. \end{slide} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{slide} \section{Special commands} You can add additional page-breaks with \code{\bs{}newpage\bs{}ticketreset}. This clears the ticket-buffers and sets the corresponding values to initial values. This can be used if you create a handful of tickets multiple times. The command \code{\bs{}backside} is useful for flash-cards, see the use-cases below. \end{slide} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{slide} \section{Organising and reading input} In general it is a good idea to create a file that contains all definitions and the whole latex-setup and a second file that contains only the data that you like to print which can be referenced by \code{\bs{}input}. For example, if you reference a huge database of names of people which are used for the pins of a conference, you can easily write a script (perl, python...) that extracts the data to a file that is itself latex-formated with a \code{\bs{}myticket\{ \}\{ \}\{ \}} on each line. Sometimes -- of course -- you only have to print only a small amount of data and all data can easily be written to a single file. Sometimes a small generator-function can help to create numbers on tickets: \begin{quote} \begin{minipage}[t]{0.5\textwidth} {\scriptsize \begin{verbatim} \newcounter{numcards} ... \begin{document} ... \whiledo{\thenumcards<25}{\stepcounter{numcards}\acard{\thenumcards}}% \end{verbatim} } \end{minipage} \end{quote} \end{slide} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{slide} \section{Use-cases} Some examples were referenced at the beginning of this manual. I will finish this short introduction with an overview of special examples and their implementations: \subsection{Files and pins} This is a simple example for your files. The same applies to pins. Start with a \code{\bs{}ticketdefault}, with this background: \begin{quote} \begin{minipage}[t]{0.5\textwidth} {\scriptsize \begin{verbatim} \renewcommand{\ticketdefault}{% \put(155,5){\begin{sideways}% \includegraphics[width=35mm]{ifmlogoc}\end{sideways}}% \put(150,50){\begin{rotate}{180}\Huge C O M P U T E R\end{rotate}}% } \end{verbatim} } \end{minipage} \end{quote} \end{slide} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{slide} \vspace*{10mm} Now, create the content of the \code{\bs{}ticket} which differs: \begin{quote} \begin{minipage}[t]{0.5\textwidth} {\scriptsize \begin{verbatim} \newcommand{\filelabel}[3]{\ticket{% \put(33,48){\begin{sideways}\bfseries\Large#1\end{sideways}}% \put(43,5){\begin{sideways}% \begin{minipage}[t]{50mm}% {\bfseries\large#2}\\[2ex]\large#3% \end{minipage}% \end{sideways}}% }} \end{verbatim} } \end{minipage} \end{quote} And fill the tickets: \begin{quote} \begin{minipage}[t]{0.5\textwidth} {\scriptsize \begin{verbatim} \begin{document} ... \filelabel{1}{\LaTeX{} - styles}{Standard styles\\Own styles\\% \hspace*{5mm}\bfseries ifmslide\\\hspace*{5mm}\bfseries ticket}% ... \end{verbatim} } \end{minipage} \end{quote} \end{slide} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{slide}\vspace*{-4mm} \subsection{Visiting-cards} In this example, the \code{\bs{}ticketdefault} is empty, since we need a front and and background that differs: \begin{quote} \begin{minipage}[t]{0.5\textwidth} {\scriptsize \begin{verbatim} \renewcommand{\ticketdefault}{}% \newcommand{\vcardfront}[5]{\ticket{% \put( 63, 5){\includegraphics[width=40mm,angle=90,origin=bl]{ifmlogoc}} \put( 63.2, 2){\color{uni}your logo} \put( 5, 13){\color{uni}\line(1,0){56}} \put( 7, 10){\small your company} \put( 7,6.5){\small street 1}\put( 7, 3){\small xxxxx city and state} \put( 7, 24){\small phone:}\put( 7, 20){\small fax:} \put(6,40){\bfseries\LARGE #1} \put(7,36){#2}\put(15,24){\small #3}\put(15,20){\small #4}\put( 7,16){\small #5} }} \newcommand{\vcardback}[1]{\ticket{% \put( 7, 26){\small private:} \put( 5, 23){\color{uni}\line(1,0){56}} \put( 7,19){\small% \begin{minipage}[t]{50mm}{#1}\hss\end{minipage}}% }} \end{verbatim} } \end{minipage} \end{quote} \end{slide} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{slide}\vspace*{10mm} And fill the tickets: \begin{quote} \begin{minipage}[t]{0.5\textwidth} {\scriptsize \begin{verbatim} % a counter, which makes life easier... \newcounter{numcards} \begin{document} ... % ten cards for the front \whiledo{\thenumcards<10}{% \stepcounter{numcards}% \vcardfront{Mr. X}{Degree/Profession}{+YY/XXXX/ZZZ ZZ ZZ}{+YY/XXXX/ZZZ ZZ ZZ} {yourmail@your-provider.xxx}} \setcounter{numcards}{0} % and ten for the backside \whiledo{\thenumcards<10}{% \stepcounter{numcards}% \vcardback{phone: ---/HH HH HHH\\fax: ---/HH HH HHH\\homestreet 7\\everywhere}} ... \end{verbatim} } \end{minipage} \end{quote} \end{slide} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{slide}\vspace*{-4mm} \subsection{Flashcards} In this case we work with two different \code{\bs{}ticket}-definitions since we have a file with two different commands. However, this can be changed according to your taste: \begin{quote} \begin{minipage}[t]{0.5\textwidth} {\scriptsize \begin{verbatim} % now what do you like to put in your ticket \newcommand{\card}[2]{\ticket{% \put(32.5,15){\makebox[0mm]{\centering{\huge{\textbf{#1}}}}} }} \newcommand{\raiz}[3]{\ticket{% \put(2,31){{$\sqrt{\enspace}$}} \put(32.5,15){\makebox[0mm]{{\huge{\textit{{ #1 }}}}}} }} \end{verbatim} } \end{minipage} \end{quote} All data is in a file: \begin{quote} \begin{minipage}[t]{0.5\textwidth} {\scriptsize \begin{verbatim} ... \begin{document} \input{words} \end{verbatim} } \end{minipage} \end{quote} \end{slide} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{slide}\vspace*{10mm} Now change the command for the backside: \begin{quote} \begin{minipage}[t]{0.5\textwidth} {\scriptsize \begin{verbatim} \renewcommand{\card}[2]{\ticket{% \put(3,30){\parbox{58mm}{\large{\textbf{ #1:}}}}% \put(4,23){\parbox[t]{58mm} {\small {\blt #2}}}% }} \renewcommand{\raiz}[3]{\ticket{% \put(3,30){\parbox{58mm}{\textbf{#1:} #2}}% \put(3,13){\parbox{58mm}{#3}}% }} \end{verbatim} } \end{minipage} \end{quote} Use the special command \code{\bs{}backside}, do some further adjustment for your printer and reread the file: \begin{quote} \begin{minipage}[t]{0.5\textwidth} {\scriptsize \begin{verbatim} \backside% \oddsidemargin=8pt \input{words} ... \end{verbatim} } \end{minipage} \end{quote} If you want to print this on a duplex-printer rearrange the pages with this command for example: \begin{quote} \begin{minipage}[t]{0.5\textwidth} {\scriptsize \begin{verbatim} psselect -p1,3,2,4 ex_flashcard.ps ex_flashcard_dup.ps ... \end{verbatim} } \end{minipage} \end{quote} \end{slide} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{slide} \section{Acknowledgements...} Many thanks to those who used ticket.sty for many years and helped to find some small bugs and those who provided ticket-definition-files (tdf) and suggestions for new features. Many special thanks to Santiago Mejia who created an initial version of the flash-card use-case. \end{slide} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \end{document} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % LocalWords: Emmel tdf ticketdefault pdf vcard usepackage documentclass lz % LocalWords: LEITZ unitlength hoffset voffset ticketNumbers ticketSize dist % LocalWords: ticketDistance renewcommand crossmark circlemark emptycrossmark % LocalWords: cutmark newpage ticketreset perl myticket todo Mejia