csvsimple テーブルセルを折り返す

csvsimple テーブルセルを折り返す

私は csvsimple パッケージを使用して、LaTeX ドキュメントに csv ファイルをテーブルとして埋め込んでいます。

セルの内容が長いとレンダリングが壊れるようです:

トークン.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"

メイン.tex:

\csvautotabular{tokens.csv}

レンダリング ここに画像の説明を入力してください

3 番目のセルの内容が長いためだと思います (セルの内容が短い他の CSV 埋め込みはドキュメント内で適切にレンダリングされます)

これをどうすれば修正できますか?

CSVファイルは他のプログラムから直接取得されるため、編集する必要はありません。まったく、または少なくとも標準の CSV 形式と互換性がなくなることはありません。

答え1

マニュアルよりcsvsimple:

値は引用符で囲まれていないか、TEX グループの中括弧で囲まれている必要があります{}。二重引用符などの他の引用符は直接サポートされていませんが、外部ツールを使用すると実現できます。41 ページのセクション 5.6 を参照してください。

{}したがって、 の代わりにのセットを使用して" "3 番目のセルの内容を囲むと機能するはずです。

ここに画像の説明を入力してください

\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}

関連情報