
Estou usando o pacote csvsimple para incorporar arquivos csv como tabelas em meu documento látex.
Parece que o conteúdo longo das células interrompe a renderização:
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"
principal.tex:
\csvautotabular{tokens.csv}
Presumo que a terceira célula tenha conteúdo longo (outras incorporações de CSV com conteúdo de célula mais curto estão sendo renderizadas corretamente em meu documento)
Como posso consertar isso?
Os arquivos CSV vêm diretamente de outros programas, então prefiro não precisar editá-losde forma alguma, ou pelo menos não torná-los incompatíveis com o formato CSV padrão.
Responder1
Do csvsimple
manual:
Espera-se que os valores não sejam citados ou citados com chaves
{}
de grupos TEX. Outras aspas, como aspas duplas, não são suportadas diretamente, mas podem ser obtidas com ferramentas externas; consulte a Seção 5.6 na página 41.
Assim, usar um conjunto de {}
em vez de " "
para incluir o conteúdo da terceira célula deve funcionar:
\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}