Ich versuche, die ersten beiden Zeilen als Überschriften einzufügen. Ich möchte - - m m m
auf jeder Seite die Einheiten usw. und darunter eine weitere Zeile haben.
Ich bin kein fortgeschrittener Benutzer voncsvsimple, und ich konnte im Handbuch keine Antworten finden.
Die erste Seite sieht so aus:
Und der zweite:
Das Problem mit Latex-Symbolen wie \delta habe ich bereits gelöst.
Ein weiteres Problem, mit dem ich konfrontiert bin, ist, dass ich es nicht schaffe, die Kopfzeile auf jeder Seite anzuzeigen.
\begin{longtable}{lllllllllll}
\caption{Database of Ropax Ships.}\\
\toprule
\csvreader[
head=false,
late after line=\\,
filter equal={\thecsvinputline}{1},
]{data_appendix.csv}{}{\csvcoli & \csvcolii & \csvcoliii & \csvcoliv & \csvcolv & \csvcolvi & \csvcolvii & \csvcolviii & \csvcolix}
\midrule
\endfirsthead
\toprule
\csvreader[
head=false,
late after line=\\,
filter equal={\thecsvinputline}{1},
]{data_appendix.csv}{}{\csvcoli & \csvcolii & \csvcoliii & \csvcoliv & \csvcolv & \csvcolvi & \csvcolvii & \csvcolviii & \csvcolix}
\midrule
\endhead
\midrule
\endfoot
\bottomrule
\endlastfoot
\csvreader[
head=false,
late after line=\\,
filter not equal={\thecsvinputline}{1},
]{data_appendix.csv}{}{\csvcoli & \csvcolii & \csvcoliii & \csvcoliv & \csvcolv & \csvcolvi & \csvcolvii & \csvcolviii & \csvcolix}
\end{longtable}
Ich wäre für Hilfe wirklich dankbar.
Antwort1
Nun, Sie haben kein MWE angegeben, daher kann ich in Teilen nur raten, aber der Hauptschuldige besteht hier darin, dass Sie die ersten beiden CSV-Zeilen in Ihren Kopfzeilen für die Longtable verwenden und die ersten beiden CSV-Zeilen weglassen, die die Daten anzeigen.
Verwenden Sie hierfür den folgenden Code \endfirsthead
:
\csvreader[%
head=false,
late after line=\\,
filter equal={\thecsvinputline}{1},
]{\jobname.csv}{}{\csvcoli & \csvcolii & \csvcoliii & \csvcoliv & \csvcolv & \csvcolvi & \csvcolvii & \csvcolviii & \csvcolix}
\csvreader[% <====================================================== added
head=false,
late after line=\\,
filter equal={\thecsvinputline}{2}, % <========================= line 2
]{\jobname.csv}{}{\csvcoli & \csvcolii & \csvcoliii & \csvcoliv & \csvcolv & \csvcolvi & \csvcolvii & \csvcolviii & \csvcolix}
\midrule
\endfirsthead
und für die \endhead
:
\toprule
\csvreader[
head=false,
late after line=\\,
filter equal={\thecsvinputline}{1},
]{\jobname.csv}{}{\csvcoli & \csvcolii & \csvcoliii & \csvcoliv & \csvcolv & \csvcolvi & \csvcolvii & \csvcolviii & \csvcolix}
\csvreader[% <================================================== added
head=false,
late after line=\\,
filter equal={\thecsvinputline}{2}, % <========================= line 2
]{\jobname.csv}{}{\csvcoli & \csvcolii & \csvcoliii & \csvcoliv & \csvcolv & \csvcolvi & \csvcolvii & \csvcolviii & \csvcolix}
\midrule
\endhead
Die hinzugefügten Zeilen \csvreader
drucken die zweite Zeile mit Einheiten in Ihre Tabellenüberschriften.
Um die komplette Tabelle auszudrucken müssen wir nur mit Zeile 3 beginnen (Zeile filter test=\ifnumgreater{\thecsvinputline}{2},
prüft, ob die aktuelle Zeilennummer größer als 2 ist):
\csvreader[%
head=false,
late after line=\\,
filter test=\ifnumgreater{\thecsvinputline}{2},
]{\jobname.csv}{}{\csvcoli & \csvcolii & \csvcoliii & \csvcoliv & \csvcolv & \csvcolvi & \csvcolvii & \csvcolviii & \csvcolix}
Also mit dem folgenden vollständigen MWE (bitte beachten Sie, dass die Header Arbeit erfordern, die Sie bereits erledigt haben, bitte verwenden Sie Ihren nicht angezeigten Code):
\begin{filecontents*}{\jobname.csv}
Vessel Name , Year, LOA , LBP , B , T , D , DUP , Delta
- , - , m , m , m , m , m , m , t
Abel Matutes, 2010, 187 , 177 , 26.2, 6 , 9.2, 14.54, -
Aretousa , 1995, 177.3, 166.4, 27 , 6.3, 9.1, 20.05, -
Abel Matutes, 2010, 187 , 177 , 26.2, 6 , 9.2, 14.54, -
Aretousa , 1995, 177.3, 166.4, 27 , 6.3, 9.1, 20.05, -
Abel Matutes, 2010, 187 , 177 , 26.2, 6 , 9.2, 14.54, -
Aretousa , 1995, 177.3, 166.4, 27 , 6.3, 9.1, 20.05, -
Abel Matutes, 2010, 187 , 177 , 26.2, 6 , 9.2, 14.54, -
Aretousa , 1995, 177.3, 166.4, 27 , 6.3, 9.1, 20.05, -
Abel Matutes, 2010, 187 , 177 , 26.2, 6 , 9.2, 14.54, -
Aretousa , 1995, 177.3, 166.4, 27 , 6.3, 9.1, 20.05, -
Abel Matutes, 2010, 187 , 177 , 26.2, 6 , 9.2, 14.54, -
Aretousa , 1995, 177.3, 166.4, 27 , 6.3, 9.1, 20.05, -
Abel Matutes, 2010, 187 , 177 , 26.2, 6 , 9.2, 14.54, -
Aretousa , 1995, 177.3, 166.4, 27 , 6.3, 9.1, 20.05, -
Abel Matutes, 2010, 187 , 177 , 26.2, 6 , 9.2, 14.54, -
Aretousa , 1995, 177.3, 166.4, 27 , 6.3, 9.1, 20.05, -
Abel Matutes, 2010, 187 , 177 , 26.2, 6 , 9.2, 14.54, -
Aretousa , 1995, 177.3, 166.4, 27 , 6.3, 9.1, 20.05, -
Abel Matutes, 2010, 187 , 177 , 26.2, 6 , 9.2, 14.54, -
Aretousa , 1995, 177.3, 166.4, 27 , 6.3, 9.1, 20.05, -
Abel Matutes, 2010, 187 , 177 , 26.2, 6 , 9.2, 14.54, -
Aretousa , 1995, 177.3, 166.4, 27 , 6.3, 9.1, 20.05, -
Abel Matutes, 2010, 187 , 177 , 26.2, 6 , 9.2, 14.54, -
Aretousa , 1995, 177.3, 166.4, 27 , 6.3, 9.1, 20.05, -
Abel Matutes, 2010, 187 , 177 , 26.2, 6 , 9.2, 14.54, -
Aretousa , 1995, 177.3, 166.4, 27 , 6.3, 9.1, 20.05, -
Abel Matutes, 2010, 187 , 177 , 26.2, 6 , 9.2, 14.54, -
Aretousa , 1995, 177.3, 166.4, 27 , 6.3, 9.1, 20.05, -
Abel Matutes, 2010, 187 , 177 , 26.2, 6 , 9.2, 14.54, -
Aretousa , 1995, 177.3, 166.4, 27 , 6.3, 9.1, 20.05, -
Abel Matutes, 2010, 187 , 177 , 26.2, 6 , 9.2, 14.54, -
Aretousa , 1995, 177.3, 166.4, 27 , 6.3, 9.1, 20.05, -
Abel Matutes, 2010, 187 , 177 , 26.2, 6 , 9.2, 14.54, -
Aretousa , 1995, 177.3, 166.4, 27 , 6.3, 9.1, 20.05, -
Abel Matutes, 2010, 187 , 177 , 26.2, 6 , 9.2, 14.54, -
Aretousa , 1995, 177.3, 166.4, 27 , 6.3, 9.1, 20.05, -
Abel Matutes, 2010, 187 , 177 , 26.2, 6 , 9.2, 14.54, -
Aretousa , 1995, 177.3, 166.4, 27 , 6.3, 9.1, 20.05, -
Abel Matutes, 2010, 187 , 177 , 26.2, 6 , 9.2, 14.54, -
Aretousa , 1995, 177.3, 166.4, 27 , 6.3, 9.1, 20.05, -
Abel Matutes, 2010, 187 , 177 , 26.2, 6 , 9.2, 14.54, -
Aretousa , 1995, 177.3, 166.4, 27 , 6.3, 9.1, 20.05, -
Abel Matutes, 2010, 187 , 177 , 26.2, 6 , 9.2, 14.54, -
Aretousa , 1995, 177.3, 166.4, 27 , 6.3, 9.1, 20.05, -
Abel Matutes, 2010, 187 , 177 , 26.2, 6 , 9.2, 14.54, -
Aretousa , 1995, 177.3, 166.4, 27 , 6.3, 9.1, 20.05, -
Abel Matutes, 2010, 187 , 177 , 26.2, 6 , 9.2, 14.54, -
Aretousa , 1995, 177.3, 166.4, 27 , 6.3, 9.1, 20.05, -
Abel Matutes, 2010, 187 , 177 , 26.2, 6 , 9.2, 14.54, -
Aretousa , 1995, 177.3, 166.4, 27 , 6.3, 9.1, 20.05, -
\end{filecontents*}
\documentclass{article}
\usepackage{csvsimple}
\usepackage{booktabs}
\usepackage{longtable}
\begin{document}
\begin{longtable}{lllllllllll}
\caption{Database of Ropax Ships.}\\
\toprule
\csvreader[%
head=false,
late after line=\\,
filter equal={\thecsvinputline}{1},
]{\jobname.csv}{}{\csvcoli & \csvcolii & \csvcoliii & \csvcoliv & \csvcolv & \csvcolvi & \csvcolvii & \csvcolviii & \csvcolix}
\csvreader[% <====================================================== added
head=false,
late after line=\\,
filter equal={\thecsvinputline}{2}, % <========================= line 2
]{\jobname.csv}{}{\csvcoli & \csvcolii & \csvcoliii & \csvcoliv & \csvcolv & \csvcolvi & \csvcolvii & \csvcolviii & \csvcolix}
\midrule
\endfirsthead
\toprule
\csvreader[
head=false,
late after line=\\,
filter equal={\thecsvinputline}{1},
]{\jobname.csv}{}{\csvcoli & \csvcolii & \csvcoliii & \csvcoliv & \csvcolv & \csvcolvi & \csvcolvii & \csvcolviii & \csvcolix}
\csvreader[% <================================================== added
head=false,
late after line=\\,
filter equal={\thecsvinputline}{2}, % <========================= line 2
]{\jobname.csv}{}{\csvcoli & \csvcolii & \csvcoliii & \csvcoliv & \csvcolv & \csvcolvi & \csvcolvii & \csvcolviii & \csvcolix}
\midrule
\endhead
\midrule
\endfoot
\bottomrule
\endlastfoot
\csvreader[%
head=false,
late after line=\\,
filter test=\ifnumgreater{\thecsvinputline}{2},
]{\jobname.csv}{}{\csvcoli & \csvcolii & \csvcoliii & \csvcoliv & \csvcolv & \csvcolvi & \csvcolvii & \csvcolviii & \csvcolix}
\end{longtable}
\end{document}
und sein Ergebnis:
zeigt die CSV-Zeilen 1 und 2 als Tabellenüberschriften an und beginnt den Tabelleninhalt mit Zeile 3, und für die zweite Seite bekommt man wie gewünscht auch die Zeilen 1 und 2 als Überschrift angezeigt: