我是LaTeX的初学者,目前正在尝试从文本文件创建表(只是出于某种原因,数据是从其他程序生成的,并写入了.txt文件)。
下面是一个文本文件:(只是将它集成到latex中)
\begin{filecontents*}{d11.csv}
Zeit/s AMES\_13 AMES\_14 AMES\_15 AMES\_16
3,0 000 8,760V 0,000 0,216mA
6,0 000 13,120V 0,000 0,169mA
9,0 000 16,550V 0,000 0,132mA
12,0 000 19,660V 0,000 0,103mA
15,0 000 21,730V 0,000 0,081mA
18,0 000 23,580V 0,000 0,066mA
\end{filecontents*}我尝试使用包的DTLforeach来生成一个乳胶表,它使用:
\DTLsetseparator{ }
\DTLloaddb[
keys={zeit,am1,am2,am3,am4}
]{d11db}{d11.csv}
.... Some other texts...
\begin{tabular}{|c|c|c|c|c|}
\bfseries Zeit/s &
\bfseries AMES\_13 &
\bfseries AMES\_14 &
\bfseries AMES\_15 &
\bfseries AMES\_16 \\\hline
\DTLforeach{d11db}{\zeit=zeit,\am1=am1,\am2=am2,\am3=am3,\am4=am4
}{%
\zeit & \am1 & \am2 & \am3 & \am4 \\\hline
}
\end{tabular}然后,当我试图编译它时,LaTeX(或pdflatex)只向我显示错误:
Package datatool Error: Can't assign \am4 : there is no key `am4 ' in data base `d11db'.如果我删除\am4=am4,那么am3就不存在了.有人能告诉我如何解决这个错误吗?Thx (并为我糟糕的英语而哀叹)
发布于 2015-05-13 17:15:14
keys选项指定您在CSV中使用的实际标头名称。下面是datatool 用户指南的摘录(从外部ASCII文件加载数据库的5.2节):
keys这是一个用逗号分隔的键列表,其中键按与列相同的顺序列出。如果文件有标题,这些键将覆盖标题行中给定的值。如果文件没有标题行,并且没有在<options>中提供键,那么这些键将由\dtldefaultkey<n>提供,其中<n>是\dtldefaultkey列号,\dtldefaultkey默认为“列”。注意,键列表必须用大括号分隔,因为它们包含逗号。
因此,我的建议是使用:
\begin{filecontents*}{d11.csv}
zeit,am1,am2,am3,am4
3,0 000 8,760V 0,000 0,216mA
...
\end{filecontents*}
\DTLloaddb[
keys={zeit,am1,am2,am3,am4},
headers={Zeit/s,AMES\_13,AMES\_14,AMES\_15,AMES\_16}
]{d11db}{d11.csv}注意headers键的使用:
headers这是一个逗号分隔的标题列表.如果未提供,则标题将与标题行中给定的相同,如果没有标题行,则为键。注意,标题列表必须用大括号分隔,因为它们包含逗号。
https://stackoverflow.com/questions/30192304
复制相似问题