我希望读取标题中包含特殊字符的 CSV 文件。虽然我得到了文档说的是文件正文中的特殊字符,我无法让它适用于列标题。
例如foobar.csv
包含
cliché, foo
10,20
但无法读取\DTLloaddb{foobar.csv}
,显示以下错误消息
Missing \endcsname inserted. \DTLloaddb{foobar}{foobar.csv}
而同样的文件交换cliché
编译却cliche
完美无缺。
在此先感谢您的帮助。
最小工作示例:
\documentclass{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage{filecontents}
\begin{filecontents*}{sample}
cliché
10
\end{filecontents*}
\usepackage{datatool}
\DTLloaddb{sample}{sample}
\begin{document}
\DTLdisplaydb{sample}
\end{document}
不适合cliché
,但适合cliche
。
答案1
如果不指定任何<options>
,则标题文本和与该字段/列关联的键都会在标题中指定名称,并且您不能将其\cliché
作为标题键。因此,请keys
为标题指定一组单独的 :
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{filecontents,datatool}
\begin{filecontents*}{foo.csv}
cliché, foo
10,20
\end{filecontents*}
\DTLloaddb[keys={cliche,foo}]{foo}{foo.csv}
\begin{document}
\DTLdisplaydb{foo}
\end{document}