1
Konferenzmanagement mit LATEX Uwe Ziegenhagen http://www.uweziegenhagen.de
27. Februar 2009
Konferenzmanagement
Einführung
Arbeit vs. Faulheit
Workshop an HU Berlin I
Rechnungen
I
Teilnehmerlisten
I
Namensschilder
Wie kann ich (mittels LATEX) Arbeit sparen?
Konferenzmanagement
2
Einführung
Genutzte LATEX-Pakete
I
datatool für Zugriff auf CSV-Dateien
I
scrlttr2 für Briefe und Rechnungen
I
varsfromjobname für Parameterübergaben
I
ticket für Namensschilder und Aufkleber
I
combine für Tagungsbände (Proceedings)
Konferenzmanagement
3
datatool
Das datatool Paket datatool von Nicola Talbot I
ersetzt ihr csvtools Paket
I
enthält datatool.sty erstellt und exportiert Daten-Dateien, importiert externe Daten-Dateien datapie.sty Kuchen-Diagramme dataplot.sty zweidimensionale Punkt- oder Liniendiagramme databar.sty Balkendiagramme databib.sty konvertiert BibTeX Dateien
Konferenzmanagement
4
datatool
5
Beispiel-Datensatz
1 2 3 4 5 6 7
I
Punkt als Dezimaltrenner
I
Komma als Spaltentrenner
I
Achtung: dt. CSV 6= engl. CSV
I
Beispiel-Datei: datad.csv
vorname,nachname,strasse,ort,zuzahlen,bezahlt Nicole,Möller,Schillerplatz 61,18419 Vogelow,100.00,100.00 Tom,Lehmann,Nachtigallgasse 11,29098 Altaue,100.00,100.00 Tim,Wagner,Amselplatz 92,46917 Langenhausen,100.00,0.00 Moritz,Müller,Waldallee 71,55348 Kirchstein,100.00,0.00 Susi,Mayer,Sonnenweg 27a,83675 Heidehausen,100.00,100.00 Ines,Mayer,Wasserallee 83a,26118 Kirchfurt,100.00,100.00 Konferenzmanagement
datatool
6
Minimalbeispiel 1 2 3 4 5
\documentclass{article} \usepackage{datatool} \usepackage[latin1]{inputenc} \begin{document} \DTLloaddb{list}{datad.csv}
6 7 8 9 10 11
\begin{tabular}{ll} \bfseries Vorname & \bfseries Nachname \DTLforeach{list}{\first=vorname,\last=nachname}% {\\ \first & \last } \end{tabular}
12 13
\end{document}
Listing 1: Ausgabe in Tabelle Konferenzmanagement
datatool
7
DTLloaddb und DTLforeach
I
\DTLloaddb{list}{datad.csv} Name der Datenquelle und Quelldatei
I
\DTLforeach{arg1}{arg2}{arg3} Verarbeitung und Ausgabe arg1 Name der Datenquelle arg2 Zuordnung der Spalten zu LATEX-Befehlen arg3 legt die Ausgabe fest
Konferenzmanagement
7
8
9
0
1
2
3
\begin{tabular}{ll} \bfseries Vorname & \bfseries Nachname datatool \DTLforeach{list}{\first=vorname,\last=nachname}{% \\ \first & \last } \end{tabular}
8
Ausgabe des Minimalbeispiels
\end{document}
Listing 2: listed.tex, Quellcode für Tabelle 2 Vorname Nachname Nicole M¨oller Tom Lehmann Tim Wagner Moritz M¨ uller Susi Mayer Ines Mayer Uwe Meier Tabelle 2: listed.pdf, von Listing 2 (Auszug) Mandy Ausgabe Berger Tim Gr¨ unwald Listing 3 enthält die notwendigen Befehle, um alle Spalten der Datenbank Jenny K¨ o ster\DTLsort und \DTLsumforkeys. auszuwerten und führt zwei neue Befehle ein, Mayer Konferenzmanagement Marko \DTLsort{key}{database} sortiert dieBerger Einträge der Datenbank anhand des Jenny
datatool
9
Sortieren und Summieren
I
\DTLsort sortiert arg1 der Liste arg2 I I
* Version berücksichtigt Groß- und Kleinschreibung arg1 kann auch mehrere Werte aufnehmen
I
\DTLsumforkeys summiert in Liste arg1 Feld arg2 und speichert Ergebnis in Befehl arg3
I
\DTLiffirstrow in erster Zeile arg1, sonst arg2 ausführen
I
\theDTLrowi Ausgabe der aktuellen Schleifennummer
Konferenzmanagement
datatool
10
Sortieren und Summieren 1 2 3 4
\DTLloaddb{list}{datad.csv} \DTLsort{nachname}{list} \DTLsumforkeys{list}{zuzahlen}{\soll} \DTLsumforkeys{list}{bezahlt}{\haben}
5 6 7 8 9 10 11 12 13 14
\begin{tabular}{rllrr} Nr. & \bfseries Vorname & \bfseries Nachname & \bfseries Gebühr & \bfseries Zahlung \DTLforeach{list}{\first=vorname,\last=nachname, \fee=zuzahlen, \paid=bezahlt}{% \DTLiffirstrow{\\ \hline}{\\}% \theDTLrowi & \first & \last & \fee\,\euro & \paid\,\euro } \end{tabular}
15 16
\soll\,\euro{} sind zu bezahlen, \haben\,\euro{} sind bezahlt.
Listing 2: Liste der Zahlungen Konferenzmanagement
datatool
11
Nr. Vorname Nachname Geb¨ uhr Zahlung 1 Mandy Berger 100.00 e 100.00 e 2 Jenny Berger 0.00 e 0.00 e 3 Tim Gr¨ unwald 100.00 e 50.00 e 4 Jenny K¨oster 100.00 e 100.00 e 5 Tom Lehmann 100.00 e 100.00 e 6 Susi Mayer 100.00 e 100.00 e 7 Ines Mayer 100.00 e 100.00 e 8 Marko Mayer 100.00 e 100.00 e 9 Uwe Meier 100.00 e 0.00 e 10 Nicole M¨oller 100.00 e 100.00 e 11 Moritz M¨ uller 100.00 e 0.00 e 12 Tim Wagner 100.00 e 0.00 e 1,100 e sind zu bezahlen, 750 e sind bezahlt.
Konferenzmanagement
datatool
12
Farbige Tabellen mit colortbl 1 2 3 4
\DTLloaddb{list}{datad.csv} \DTLsort{nachname}{list} \DTLsumforkeys{list}{zuzahlen}{\soll} \DTLsumforkeys{list}{bezahlt}{\haben}
5 6 7 8 9 10 11 12 13 14 15
\begin{tabular}{rllrr} \bfseries ID & \bfseries Vorname & \bfseries Nachname & \bfseries Gebühr & \bfseries Zahlung \DTLforeach{list}{\first=vorname,\last=nachname, \fee=zuzahlen,\paid=bezahlt}{% \DTLiffirstrow{\\ \hline}{\\}% \DTLifoddrow{\rowcolor{cyan}}{\rowcolor{lime}}% \theDTLrowi & \first & \last & \fee\,\euro{} & \paid\,\euro{}% } \end{tabular}
Listing 3: Farbige Tabellen Konferenzmanagement
datatool
13
Ausgabe von Listing 6 ID Vorname Nachname Geb¨ uhr Zahlung 1 Mandy Berger 100.00 e 100.00 e 2 Jenny Berger 0.00 e 0.00 e 3 Tim Gr¨ unwald 100.00 e 50.00 e 4 Jenny K¨oster 100.00 e 100.00 e 5 Tom Lehmann 100.00 e 100.00 e 6 Susi Mayer 100.00 e 100.00 e 7 Ines Mayer 100.00 e 100.00 e 8 Marko Mayer 100.00 e 100.00 e 9 Uwe Meier 100.00 e 0.00 e 10 Nicole M¨oller 100.00 e 100.00 e 11 Moritz M¨ uller 100.00 e 0.00 e 12 Tim Wagner 100.00 e 0.00 e 1,100 e sind zu bezahlen, 750 e sind bezahlt. Konferenzmanagement
datatool
Andere DTLxxx-Befehle
I
\DTLifint, \DTLifreal
I
\DTLadd, \DTLsub, \DTLmul
I
\DTLsubstitute, \DTLsplitstring
I
und viele andere
Konferenzmanagement
14
datatool
15
Andere CSV-Formate
1 2 3 4 5 6 7
vorname;nachname;strasse;ort;zuzahlen;bezahlt Nicole;Möller;Schillerplatz 61;18419 Vogelow;100,00;100,00 Tom;Lehmann;Nachtigallgasse 11;29098 Altaue;100,00;100,00 Tim;Wagner;Amselplatz 92;46917 Langenhausen;100,00;0,00 Moritz;Müller;Waldallee 71;55348 Kirchstein;100,00;0,00 Susi;Mayer;Sonnenweg 27a;83675 Heidehausen;100,00;100,00 Ines;Mayer;Wasserallee 83a;26118 Kirchfurt;100,00;100,00
Listing 4: „Deutsche“ Formatierung I
\DTLsetseparator{;}
I
\DTLsetnumberchars{}{,}
Konferenzmanagement
datatool
16
Liste der Zahlungen
1 2 3 4 5 6 7 8 9 10
ID & Vorname & Nachname & Stra"se & Ort & zu zahlen & bezahlt \DTLforeach{list}{% definiere Listenelemente \first=vorname,\last=nachname,\address=strasse, \town=ort,\fee=zuzahlen,\paid=bezahlt}{% \DTLiffirstrow{\\ \hline}{\\}% \theDTLrowi & \first & \last & \address & \town & \euro\,\fee & \euro \,\paid } \\ \hline & & & & &\DTLdecimaltocurrency{\soll}{\soll} \soll & \ DTLdecimaltocurrency{\haben}{\haben} \haben \\ \hline \hline \end{tabular} \end{document}
Listing 5: Nutzung Währungsformat
Konferenzmanagement
datatool
17
Liste der Zahlungen Teilnehmer, Stand 18. Februar 2009 ID 1 2 3 4 5 6 7 8 9 10 11 12
Vorname Jenny Mandy Tim Jenny Tom Ines Marko Susi Uwe Nicole Moritz Tim
Nachname Berger Berger Gr¨ unwald K¨oster Lehmann Mayer Mayer Mayer Meier M¨oller M¨ uller Wagner
Konferenzmanagement
Straße Wiesenallee 82 Goetheweg 25 Wiesenplatz 9a Finkenallee 29c Nachtigallgasse 11 Wasserallee 83a Amselweg 11c Sonnenweg 27a Sonnenplatz 7 Schillerplatz 61 Waldallee 71 Amselplatz 92
Ort 72044 03783 90778 53522 29098 26118 32108 83675 07514 18419 55348 46917
Moosaue Wolfental Moosow Wiesenow Altaue Kirchfurt Gr¨ unstein Heidehausen Vogelburg Vogelow Kirchstein Langenhausen
zu zahlen e 0,00 e 100,00 e 100,00 e 100,00 e 100,00 e 100,00 e 100,00 e 100,00 e 100,00 e 100,00 e 100,00 e 100,00 e 1100,00
bezahlt e 0,00 e 100,00 e 50,00 e 100,00 e 100,00 e 100,00 e 100,00 e 100,00 e 0,00 e 100,00 e 0,00 e 0,00 e 750,00
scrlttr2
18
Briefe und Rechnungen
I
letter
I
g-brief scrlttr2
I
I I I
leicht anzupassen komplexe Layouts möglich eigene Serienbrieffunktion
Konferenzmanagement
scrlttr2
19
varsfromjobname
I
varsfromjobname.sty I I I I
Dateiname arg1-arg2-...-arg9.tex \getfromjobname{argx } \getone fromjobname, \gettwo fromjobname Bsp: schmidt-2009-02-10.tex
Konferenzmanagement
scrlttr2
20
Briefe mit scrlttr2 1 2 3 4
\documentclass[a4paper]{scrlttr2} \usepackage[ngerman]{babel} \usepackage[latin1]{inputenc} \setkomavar{title}{Teilnahmebestätigung}
5 6 7 8
\begin{document} \begin{letter}{Adresse} \opening{Anrede}
9 10 11
Wir bestätigen Ihre Teilnahme am Foobar Workshop in Musterstadt.
12 13 14 15 16
\setkomavar{fromname}{Das Organisationsteam} \closing{Mit freundlichen Grüßen} \end{letter} \end{document}
Listing 6: scrlttr2 Minimalbeispiel Konferenzmanagement
Die letter Umgebung wird dabei in den Schleifen-Teil des \DTLforeach gesetzt, der Adressparameter für den Brief wird dann mit {\first \last scrlttr2 21 \address \\\town} gefüllt. 1 2 3 4 5
\documentclass[a5paper]{scrlttr2} \usepackage[english]{babel} \usepackage[latin1]{inputenc} \usepackage{datatool} \setkomavar{title}{Teilnahmebestätigung}
6 7 8 9 10
\begin{document} \DTLloaddb{list}{datad.csv} \DTLforeach{list}{\first=vorname,\last=nachname,\address=strasse, \town=ort,\fee=zuzahlen,\paid=bezahlt}{% Beginn Schleife
11 12 13
\begin{letter}{\first~\last \\ \address \\ \town}% \opening{Sehr geehrte/r \first~\last,}%
14 15 16
Wir bestätigen Ihre Teilnahme am Foobar Workshop in Musterstadt.
17 18 19 20 21 22
\setkomavar{fromname}{Das Organisationsteam}% \closing{Mit freundlichen Grüßen}% \end{letter} }% Ende Schleife \end{document}
Listing 7: scrlttsample.tex, Quelltext für Abbildung 1 Konferenzmanagement
Abbildung 1: Ausgabe von Listing 7 Nicole M¨oller Schillerplatz 61 18419 Vogelow
January 6, 2009
Teilnahmebest¨ atigung Sehr geehrte/r Nicole M¨oller, Wir best¨atigen Ihre Teilnahme am Foobar Workshop in Musterstadt. Mit freundlichen Gr¨ ußen
Das Organisationsteam
Dies ist nur ein einfaches Beispiel, über die zahlreichen weiteren datatool Befehle sind noch viel detailliertere Briefe möglich. So lässt sich beispielsweise
ticket.sty
23
Namensschilder mit ticket.sty
I
nützlich für Namensschilder und Aufkleber
I
Parameter für Angabe der Label-Definition
I
\renewcommand setzt Label zurück \makeatletter, \makeatother
I
I I I
I
\@boxedfalse Rahmen um Label aus \@emptycrossmarktrue Falzmarken an \@cutmarktrue Schnittmarken an
\mylabel Definition
Konferenzmanagement
ticket.sty
24
Definition der Maße
1 2 3 4 5 6
\unitlength=1mm \hoffset=-10mm \voffset=-16mm \ticketNumbers{2}{5} \ticketSize{90}{55.2} \ticketDistance{0}{0}
Listing 7: Definitionsdatei badges.tdf
Konferenzmanagement
badges.tdf (siehe Listing 9), in der die Anzahl und Größe des einzelnen Schilder sowie Angaben über den druckerspezifischen horizontalen und verticket.sty 25 tikalen Offset stehen, also den Abstand des ersten Tickets vom oberen und linken Rand. Die Angabe des Offset ist notwendig, da die Ränder über das geometry Pakets auf null gesetzt sind.
Etiketten mit ticket
Der Befehl \mylabel wird anschließend definiert, um eine bequeme Schnittstelle zu den einzelnen Namensschildern zu haben, die nur noch Parameter für Name und Ort benötigt.
1 2 3 4 5 6 7
\documentclass[a4paper,12pt]{letter} \usepackage[total={210mm,297mm},top=0mm, % left=0mm, includefoot]{geometry} \usepackage[badges]{ticket} \usepackage{graphicx,palatino} \usepackage[latin1]{inputenc} \usepackage{xcolor}
8 9 10 11 12 13 14
\renewcommand{\ticketdefault}{}% \makeatletter \@boxedfalse % Rahmen um Ticket \@emptycrossmarkfalse % Falzmarken \@cutmarktrue % Schnittmarken \makeatother
15
\newcommand{\mylabel}[2]{\ticket{% \put(7,35){\scalebox{2}{\textbf{#1}}} Konferenzmanagement 18 \put(7,25){\scalebox{1.5}{\textbf{#2}}} 19 \put(7,5){\scalebox{1}{\textcolor{gray}{% 16 17
7
\usepackage{xcolor}
8
ticket.sty 9 \renewcommand{\ticketdefault}{}% 10 11
\makeatletter \@boxedfalse % Rahmen um Ticket \@emptycrossmarkfalse % Falzmarken \@cutmarktrue % Schnittmarken \makeatother
Namensschilder mit ticket 12 13 14 15 16 17 18 19 20 21
\newcommand{\mylabel}[2]{\ticket{% \put(7,35){\scalebox{2}{\textbf{#1}}} \put(7,25){\scalebox{1.5}{\textbf{#2}}} \put(7,5){\scalebox{1}{\textcolor{gray}{% \textit{\LaTeX{} Convention 2009}}}} }}
22 23 24 25 26 27 28 29 30
\begin{document} \mylabel{Max Mustermann}{Berlin} \mylabel{Maria Mustermann}{Berlin} \mylabel{Marian Mustermann}{Berlin} \mylabel{Micky Mustermann}{Berlin} \mylabel{Mario Mustermann}{Berlin} \mylabel{Markus Mustermann}{Berlin} \end{document}
Listing 8: Quelltext für Abbildung 2
Konferenzmanagement
Die TEXnische Komödie ?/?? — Entwurf 11. Februar 2009 22:55
26
g 9: ticket.sty badges.tdf,Definition des Papierbogens badges 27 Namensschilder mit ticket
Abbildung 2: Ausgabe von Listing 8
Max Mustermann
Markus Mustermann
Berlin
Berlin
LATEX Convention 2009
LATEX Convention 2009
Maria Mustermann Berlin LATEX Convention 2009
Marian Mustermann Konferenzmanagement Berlin
combine.sty
28
Proceedings mit combine
Artikel 1
Artikel 2
Artikel 3
Konferenzmanagement
Tagungsband
combine.sty
Einzeldokument Konferenzmanagement
29 15
men, daher empfiehlt es sich, eine für die Teilnehmer verpflichtende Vorlage zu erstellen und keine weiteren Pakete zuzulassen. 1
\documentclass{article}
2 3 4
\author{Max Mustermann} \title{Anmerkungen zum Euro}
5 6 7
\begin{document} \maketitle
8 9
Text für den Artikel.
10 11
\end{document}
Listing 11: import1.tex,Quelltext eines zu importierenden Dokuments \documentclass{combine} \pagestyle{combine} Konferenzmanagement 3 \begin{document} 1 2
4
5 6
\begin{document}
combine.sty 7 \maketitle 8 9
Text für den Artikel.
Zusammenführung \end{document} 10 11
Listing 11: import1.tex,Quelltext eines zu importierenden Dokuments 1 2 3
\documentclass{combine} \pagestyle{combine} \begin{document}
4 5 6 7 8 9 10
\tableofcontents \begin{papers} \coltoctitle{Anmerkungen zum Euro} % Erster Titel für ToC \coltocauthor{Max Mustermann} % Erster Autor für ToC \label{import1} \import{import1}
11 12 13 14 15 16 17
\coltoctitle{Anmerkungen zur D-Mark} % Zweiter Titel für ToC \coltocauthor{Maria Mustermann} % Zweiter Autor für ToC \label{import2} \import{import2} \end{papers} \end{document}
Listing 12: combineit.tex, Quelltext eines combine Dokuments
Konferenzmanagement
30
combine.sty
31
Zusammenführung
Contents Anmerkungen zum Euro Max Mustermann
2
Anmerkungen zur D-Mark Maria Mustermann
3
1
Konferenzmanagement
32
Danke für die Aufmerksamkeit. . .
I
Artikel zu diesem Vortrag unter www.uweziegenhagen.de und in der DTK 1/2009
I
englische Version in Arbeit (PracTEX) Kommentare und Feedback willkommen ⇒ http://www.uweziegenhagen.de
I
Konferenzmanagement