Das LaTeX-Paket csvsimple – Einführung und Anwendung
Was ist csvsimple?
Das Paket csvsimple ermöglicht das einfache Verarbeiten von CSV-Dateien (Comma Separated Values) in LaTeX. CSV-Dateien enthalten tabellarische Daten, bei denen die Werte durch Kommas oder andere Trennzeichen voneinander getrennt sind. Das Paket hilft, diese Daten in Tabellen darzustellen, zu filtern und gezielt zu formatieren.
csvsimple eignet sich besonders für:
- Das automatische Erstellen von Tabellen aus CSV-Dateien.
- Das Filtern von Daten anhand bestimmter Kriterien.
- Die einfache Gestaltung von Tabellenlayouts.
Da csvsimple als leichtgewichtiges Paket konzipiert wurde, unterstützt es keine Sortierung oder Datenbankfunktionen. Falls komplexere Datenverarbeitung benötigt wird, kann alternativ das datatool-Paket verwendet werden.
Video
Folien
Beschreibung
Laden des Pakets
Das Paket wird in der Präambel eines LaTeX-Dokuments mit folgendem Befehl eingebunden:
\usepackage{csvsimple}
Alternativ existiert eine Erweiterung namens csvsimple-l3, die eine noch flexiblere Nutzung durch LaTeX3-Syntax bietet:
\usepackage{csvsimple-l3}
Grundlegende Befehle
csvautotabular
Erstellt automatisch eine Tabelle aus einer CSV-Datei, ohne dass eine detaillierte Formatierung erforderlich ist.\csvautotabular{datei.csv}csvreader
Ermöglicht eine flexible Kontrolle über die Verarbeitung der CSV-Datei und erlaubt das gezielte Formatieren von Spalten.\csvreader[Optionen]{datei.csv}{Zuweisungen}{Befehl}- Optionen: Steuerung der Darstellung.
- Zuweisungen: Spaltenwerte können benannten Variablen zugeordnet werden.
- Befehl: Die eigentliche Verarbeitung der Datenzeilen.
csvfilteraccept/csvfilterreject- Mit
csvfilteracceptkönnen bestimmte Zeilen in der Verarbeitung eingeschlossen werden. - Mit
csvfilterrejectwerden Zeilen ausgeschlossen.
- Mit
Daten filtern
Mitfilter equaloderfilter not equalkönnen Daten gefiltert werden:\documentclass{article} \usepackage{csvsimple} \begin{document} \csvreader[filter equal={\Name}{Alice}]{studenten.csv}{Name=\Name}{\Name~} \csvreader[filter not equal={\Name}{Alice}]{studenten.csv}{Name=\Name}{\Name~} \end{document}Dieses Beispiel zeigt nur Studierende mit dem Namen Alice an beziehungsweise in der zweiten Anweisung alle Studierenden die nicht Alice heißen.
Beispiele & Anwendungen
Beispiel 1: Eine einfache Tabelle aus einer CSV-Datei
Angenommen, es gibt eine CSV-Datei studenten.csv mit folgendem Inhalt:
Name,Studiengang,Semester
Alice,Informatik,2
Bob,Maschinenbau,4
Carol,Physik,3
Dave,Mathematik,1
Die Datei kann mit csvautotabular als Tabelle ausgegeben werden:
\documentclass{article}
\usepackage{csvsimple}
\begin{document}
\csvautotabular{studenten.csv}
\end{document}
Das erzeugt eine Tabelle mit den Daten aus studenten.csv.
Beispiel 2: Selektive Ausgabe von Spalten
Falls nur Name und Studiengang angezeigt werden sollen, kann csvreader verwendet werden:
\documentclass{article}
\usepackage{csvsimple}
\begin{document}
\begin{tabular}{|l|c|}\hline%
\bfseries Name & \bfseries Studiengang
\csvreader[head to column names]{studenten.csv}{}%
{\\\Name & \Studiengang}%
\\\hline
\end{tabular}
\end{document}
Hier werden nur die Spalten Name und Studiengang übernommen, und die Spaltenüberschriften werden fett dargestellt.
Beispiel 3: Filtern nach bestimmten Kriterien
Angenommen, Sie möchten nur die Studierenden des 2. Semesters ausgeben:
\documentclass{article}
\usepackage{csvsimple}
\begin{document}
\textbf{Studierende im 2. Semester:}
\begin{itemize}
\csvreader[head to column names, filter equal={\Semester}{2}]{studenten.csv}{}{\item \Name}
\end{itemize}
\end{document}
Dieses Beispiel erstellt eine Aufzählungsliste mit den Namen der Studierenden, die sich im zweiten Semester befinden.
Beispiel 4: Individuelle Formatierung mit tabular
Falls eine detaillierte Tabellenformatierung gewünscht ist, kann csvreader mit tabular kombiniert werden:
\documentclass{article}
\usepackage{csvsimple}
\begin{document}
\begin{tabular}{|l|c|}\hline%
\bfseries Name & \bfseries Studiengang
\csvreader[head to column names]{studenten.csv}{}%
{\\\Name & \Studiengang}%
\\\hline
\end{tabular}
\end{document}
Diese Methode erlaubt volle Kontrolle über das Layout.
Beispiel 5: Arbeiten mit benutzerdefinierten Filtern
Sie können bestimmte Daten mit eigenen Bedingungen filtern:
\documentclass{article}
\usepackage{csvsimple}
\begin{document}
\csvreader[head to column names, filter test=\ifnumgreater{\Semester}{2}]{studenten.csv}{}{\Name~}
\end{document}
Dieses Beispiel zeigt alle Studierenden, die sich in einem Semester größer als 2 befinden.
Aufgaben & Übungen
Aufgabe 1: Erstellen Sie eine einfache Tabelle aus einer CSV-Datei
Erstellen Sie ein LaTeX-Dokument, das das csvsimple-Paket lädt und eine automatische Tabelle aus einer CSV-Datei einfügt.
Anforderungen:
Erstellen Sie eine CSV-Datei
studenten.csvmit den folgenden Daten:Name, Studiengang, Semester Alice, Informatik, 2 Bob, Maschinenbau, 4 Carol, Physik, 3 Dave, Mathematik, 1Binden Sie diese CSV-Datei in ein LaTeX-Dokument ein.
- Nutzen Sie
\csvautotabular, um die CSV-Datei automatisch als Tabelle darzustellen.
👉 Hinweis: Nutzen Sie den Befehl \begin{filecontents}{studenten.csv}, falls die CSV-Datei nicht extern vorhanden ist.
Aufgabe 2: Formatieren Sie eine CSV-Tabelle individuell
Erstellen Sie eine Tabelle aus der Datei studenten.csv, die nur die Namen und Studiengänge anzeigt. Formatieren Sie die Tabelle so, dass:
- Die Spaltenüberschriften fett dargestellt werden.
- Die Tabelle einen Rahmen hat.
Anforderungen:
- Nutzen Sie
\csvreader, um nur die SpaltenNameundStudiengangauszugeben. - Verwenden Sie das
tabular-Umfeld für eine individuelle Formatierung. - Passen Sie die Überschriften an (
\bfseriesfür fette Schrift). - Achten Sie auf eine saubere Struktur mit Rahmen (
|l|c|).
Aufgabe 3: Filtern Sie eine CSV-Datei nach einer Bedingung
Erstellen Sie eine gefilterte Ausgabe der studenten.csv, die nur die Studierenden des 2. Semesters anzeigt.
Anforderungen:
- Verwenden Sie
\csvreadermit der Optionfilter equal={\Semester}{2}. - Geben Sie nur die Namen der Studierenden aus.
- Die Liste der Namen soll als einfache
itemize-Liste dargestellt werden.
Hausaufgaben
Hausaufgabe 1 (Theoretisch): Verständnisfragen zu csvsimple
Beantworten Sie die folgenden Fragen in einem LaTeX-Dokument:
- Was ist das
csvsimple-Paket und wofür wird es verwendet? - Wie kann eine CSV-Datei direkt in LaTeX eingebunden werden?
- Welche Vorteile bietet
\csvautotabulargegenüber\csvreader? - Welche Möglichkeiten gibt es, Tabellen in LaTeX individuell zu formatieren?
- Wie kann man Daten aus einer CSV-Datei filtern?
👉 Antworten sollten in vollständigen Sätzen formuliert werden.
Hausaufgabe 2 (Praktisch): Erstellen Sie eine eigene CSV-Datei und formatieren Sie die Ausgabe
Erstellen Sie eine eigene CSV-Datei mit Buchinformationen und formatieren Sie die Ausgabe in einer individuellen Tabelle.
Anforderungen:
Erstellen Sie eine CSV-Datei
buecher.csvmit den Spalten:Titel, Autor, Jahr, Genre Der Prozess, Franz Kafka, 1925, Roman Faust, Johann Wolfgang von Goethe, 1808, Drama 1984, George Orwell, 1949, DystopieErstellen Sie eine LaTeX-Tabelle, die:
- Nur
TitelundAutorausgibt. - Fettgedruckte Spaltenüberschriften hat.
- Einen Rahmen enthält.
- Nur