我尝试使用 datatool 将 .csv 加载到我的 .tex 中,但它只使用第一个给定的键,但我只是不明白为什么。
我的示例 foobar.csv 的第一行:
1;a;ax
2;b;be
2;c;ck
3;d;do
(最后,最后一列将填充 picture.jpg,它将被加载到 tkizpicture 中,如果我只取最后一列,它就可以正常工作。其他列也是如此,如果我只取那一列,它们将有一个特殊的操作,可以正常工作。)
母语:
\documentclass{standalone}
\usepackage{datatool}
\DTLloaddb[noheader,keys={1,2,3}]{foobar}{foobar.csv}
\begin{document}
\DTLdisplaydb{foobar}
\end{document}
它没有给出错误,因为我在这个例子中没有使用键,但它没有打印键 2 和 3,而只打印 1。它完美地打印了三列,但没有打印键。如果我在更复杂的示例中使用键,我会收到错误:
foobar.tex:51:包数据工具错误:无法分配\Title:数据库“foobar”中没有键“2”。
感谢您的帮助!
答案1
解决方案很简单,只需添加
\DTLsetseparator{;}
前
\DTLloaddb[noheader,keys={1,2,3}]{foobar}{foobar.csv}
因为分隔符似乎是问题所在。