csvsimple Tabellenzellen umbrechen

csvsimple Tabellenzellen umbrechen

Ich verwende das Paket csvsimple, um CSV-Dateien als Tabellen in mein Latex-Dokument einzubetten.

Es scheint, als ob lange Zellinhalte die Darstellung unterbrechen:

tokens.csv:

method,corpus,tokens
MI,Quran,"allah, thou, thi, punish, believ, ye, thee, messeng, unbeliev, guid"
MI,OT,"allah, jesu, christ, thi, king, israel, believ, thou, lord, thee"
MI,NT,"jesu, christ, allah, ye, discipl, lord, thing, faith, israel, peter"
CHI²,Quran,"allah, punish, believ, messeng, unbeliev, guid, beli, disbeliev, vers, clear"
CHI²,OT,"allah, jesu, christ, thi, believ, king, israel, lord, thou, world"
CHI²,NT,"jesu, christ, discipl, ye, faith, thing, paul, peter, lord, allah"

main.tex:

\csvautotabular{tokens.csv}

Rendert als Bildbeschreibung hier eingeben

Ich gehe davon aus, dass dies daran liegt, dass die dritte Zelle einen langen Inhalt hat (andere CSV-Einbettungen mit kürzeren Zellinhalten werden in meinem Dokument ordnungsgemäß wiedergegeben).

Wie kann ich das beheben?

Die CSV-Dateien kommen direkt aus anderen Programmen, daher möchte ich sie nicht bearbeiten müssenüberhaupt, oder sie zumindest nicht mit dem Standard-CSV-Format inkompatibel zu machen.

Antwort1

Aus dem csvsimpleHandbuch:

Werte dürfen nicht in Anführungszeichen gesetzt werden oder dürfen nur in geschweiften Klammern {}von TEX-Gruppen stehen. Andere Anführungszeichen wie doppelte Anführungszeichen werden nicht direkt unterstützt, können aber mit externen Tools erreicht werden, siehe Abschnitt 5.6 auf Seite 41.

Daher sollte es funktionieren, den Inhalt der dritten Zelle mit „set of“ {}anstelle von einzuschließen:" "

Bildbeschreibung hier eingeben

\documentclass{article}
\usepackage{csvsimple}
\usepackage{tabularx}
\begin{filecontents*}{tokens.csv}
method,corpus,tokens
MI,Quran,{allah, thou, thi, punish, believ, ye, thee, messeng, unbeliev, guid}
MI,OT,{allah, jesu, christ, thi, king, israel, believ, thou, lord, thee}
MI,NT,{jesu, christ, allah, ye, discipl, lord, thing, faith, israel, peter}
CHI²,Quran,{allah, punish, believ, messeng, unbeliev, guid, beli, disbeliev, vers, clear}
CHI²,OT,{allah, jesu, christ, thi, believ, king, israel, lord, thou, world}
CHI²,NT,{jesu, christ, discipl, ye, faith, thing, paul, peter, lord, allah}
\end{filecontents*}

\begin{document}
\csvautotabular{tokens.csv}

\bigskip

\csvreader[
  tabular=|l | l | p{7cm}|,
  table head= \hline method & corpus & tokens \\ \hline,
  late after last line=\\\hline,
]{tokens.csv}{}%
{\csvcoli & \csvcolii & \csvcoliii}

\bigskip

\begin{tabularx}{\linewidth}{|l|l|X|}
\hline
method & corpus & tokens \\
\hline
\csvreader[late after line=\\, late after last line =\\\hline]
  {tokens.csv}
  {}
  {\csvcoli & \csvcolii & \csvcoliii}
\end{tabularx}


\end{document}

verwandte Informationen