datatool 包:希望键/列名称带有特殊字符,但无法使其工作

datatool 包:希望键/列名称带有特殊字符,但无法使其工作

我希望读取标题中包含特殊字符的 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}

相关内容