\documentclass[]{schuleab}
\usepackage[utf8]{inputenc}
\usepackage{schulinf}

% Dieses Dokument ist in der Zusammenarbeit von Informatikreferendaren und
% ehemaligen Informatikreferendaren der Studienseminare (heute ZfsL) Arnsberg,
% Hamm und Solingen entstanden.
%
% Das Dokument steht unter der Lizenz: Creative Commons by-nc-sa Version 4.0
% http://creativecommons.org/licenses/by-nc-sa/4.0/deed.de
%
% Nach dieser Lizenz darf das Dokument beliebig kopiert und bearbeitet werden,
% sofern das Folgeprodukt wiederum unter gleichen Lizenzbedingungen vertrieben
% und auf die ursprünglichen Urheber verwiesen wird.
% Eine kommerzielle Nutzung ist ausdrücklich ausgeschlossen.
%
% Die Namensnennung durch einen Verweis und die Lizenzangabe der ursprünglichen
% Urheber auf den Materialien für Schülerinnen und Schüler ist erforderlich.
%
% Die Sammlung der Dokumente steht unter
% http://ddi.uni-wuppertal.de/material/materialsammlung/
% zur Verfügung.
%
% Das LaTeX-Paket zum Setzen der Dokumente der Sammlung steht
% unter  http://www.ctan.org/pkg/schule
% zur Verfügung.

\usepackage[pdfauthor={Referendare der Informatikfachseminare Arnsberg, Hamm und Solingen}]{hyperref}
\includexmp{lizenz}
\cclizenz{byncsaeu}
\footerQRLink{materialsammlung_qr_url.pdf}

\usepackage{inconsolata}

\svnid{$Id: ab_03_seriendruck.tex 1531 2016-06-03 21:53:55Z pieper $}

\dokName{Seriendruck mit \LaTeX}
\jahrgang{8}

\lstset{% 
	breaklines=true, % Zeilenumbrüche
	language=[LaTeX]TeX, % Sprache
	basicstyle=\ttfamily,
	breakindent=1pt,
	breakatwhitespace=true,
	breakautoindent=false,
	tabsize=2,
}


\begin{document}

\section*{Seriendruck mit \LaTeX}

Es gibt Fälle, da möchte man ein Dokument mehrmals erstellen, aber dabei eine Kleinigkeit für jeden Empfänger anders einsetzen. Dieses könnte z.\,B. eine Urkunde von einer Sportveranstaltung sein. Fast der komplette Text ist überall gleich. Beim Namen, dem Platz und auch den erreichten Punkten gibt es Unterschiede.

In einem solchen Fall kann man per Hand für jeden das Dokument ändern oder man nutzt die technischen Möglichkeiten, die einem zur Verfügung gestellt werden. Eine solche technische Möglichkeit wird bei \LaTeX\ mit dem Paket \lstinline|datatool| zur Verfügung gestellt.

Die Daten, die eingebunden werden sollen, werden in einer Text-Tabellen-Datei abgelegt, dem CSV-Format. So kann man mit bekannten Tabellenkalkulationsprogrammen die Daten sammeln und diese anschließend im passenden Format speichern. Zum Trennen des Felder sollte dabei das Komma genutzt werden. Im linken Teil ist zu sehen, wie es bei OpenOffice aussieht:

\begin{minipage}{8cm}
	\includegraphics[width = 8cm]{csv-export.png}
\end{minipage}
\begin{minipage}{6cm}
	\begin{lstlisting}[gobble=2,basicstyle=\ttfamily\footnotesize]
		\documentclass[a4paper,10pt]{scrartcl}
		\usepackage{datatool}
		\DTLloaddb{liste}{tabelle.csv}
		\begin{document}
			\DTLforeach{liste}{
					\Name=Name,
					\Vorname=Vorname
			}{
				Hallo \Vorname \Name
			}
		\end{document}
	\end{lstlisting}
\end{minipage}

Der rechte Teil stellt ein Beispiel für die Einding in \LaTeX\ dar. Dabei wir mit \lstinline|\DTLloaddb| ein Tabellendokument einem Namen zugeordnet. Dessen Inhalt kann man mit \lstinline|\DTLforeach| nutzen. Dabei wird als erster Parameter der Namen der Liste angegeben. Beim zweiten Befehl wird festgelegt, welchem Befehl die verschiedenen Spalten zugeordnet werden. Die dafür nötigen Spaltennamen müssen in der ersten Zeile der cvs-Datei stehen. Der Inhalt der Tabelle wird dann auf das angewandt, was im dritten Parameter steht und die gesetzten Befehle durch den Inhalt aus der Tabelle ersetzt.

\minisec{Aufgaben:}
\begin{smallenumerate}
	\item Lege mit einem Tabellenkalkulationsprogramm eine Tabelle mit fiktiven Daten von Sportlern an und speichere diese auch im CSV-Format.
	\item Erstelle eine Urkunde auch mit entsprechender Graphik und setze darin die Seriendruckfunktion um.
	\item Zähle weitere Möglichkeiten auf, bei denen eine solche Seriendruckfunktion hilfreich ist. Setze eine dieser Möglichkeiten in einer fiktiven Weise mit \LaTeX\ um.
\end{smallenumerate}

\end{document}