最新版本的数据工具包有错误

最新版本的数据工具包有错误

使用最新版本的 datatool 包,如果我编译此文件

\begin{filecontents*}{\jobname.csv}
  x,y
  11,12
\end{filecontents*}

\documentclass{article}
\usepackage{datatool}
\DTLloaddb{table}{\jobname.csv}

\begin{document}

\end{document}

我收到这个错误

./example.tex:9: LaTeX Error: Missing \begin{document}.

在 pdf 文件中

,12

如果我用 11 代替 22 或 33 或...,我会得到同样的错误,但如果我使用任何其他数字,它可以很好地编译。

文件列表如下

*File List*
 article.cls    2014/09/29 v1.4h Standard LaTeX document class
  size10.clo    2014/09/29 v1.4h Standard LaTeX file (size option)
datatool.sty    2017/11/10 v2.28 (NLCT)
 xkeyval.sty    2014/12/03 v2.7a package option processing (HA)
 xkeyval.tex    2014/12/03 v2.7a key=value parser (HA)
  ifthen.sty    2014/09/29 v1.1c Standard LaTeX ifthen package (DPC)
    xfor.sty    2009/02/05 v1.05 (NLCT)
  substr.sty    2009/10/20 v1.2 Handle substrings
etoolbox.sty    2017/01/02 v2.4 e-TeX tools for LaTeX (JAW)
datatool-base.sty    2017/11/10 v2.28 (NLCT)
 amsmath.sty    2017/09/02 v2.17a AMS math features
 amstext.sty    2000/06/29 v2.01 AMS text
  amsgen.sty    1999/11/30 v2.0 generic functions
  amsbsy.sty    1999/11/29 v1.2d Bold Symbols
  amsopn.sty    2016/03/08 v2.02 operator names
datatool-fp.sty    2017/11/10 v2.28 (NLCT)
      fp.sty    1995/04/02
defpattern.sty    1994/10/12
fp-basic.sty    1996/05/13
fp-addons.sty    1995/03/15
 fp-snap.sty    1995/04/05
  fp-exp.sty    1995/04/03
fp-trigo.sty    1995/04/14
  fp-pas.sty    1994/08/29
fp-random.sty    1995/02/23
  fp-eqn.sty    1995/04/03
  fp-upn.sty    1996/10/21
 fp-eval.sty    1995/04/03

答案1

这是软件包上次更新中的一个错误,但我认为解决办法是

\begin{filecontents*}{\jobname.csv}
  x,y
  11,12
\end{filecontents*}

\documentclass{article}
\usepackage{datatool}

\makeatletter
\def\dtl@trim#1{\def\@dtl@trmstr{}%
\if \par#1 \else \expandafter \@dtl@start@trim #1\@dtl@end@trim \fi
\let#1=\@dtl@trmstr}

\makeatother

\DTLloaddb{table}{\jobname.csv}

\begin{document}

\end{document}

答案2

已在 v2.29(2017-11-12)中修复。我改变了读取和修剪行的方式。代码现在局部更改\endlinechar\active,这使得修剪行尾字符变得更加简单。与空格不同,控制序列中应该只有一个行尾字符,并且它将位于末尾。(如文档所述,datatool不支持多行 CSV 文件。您需要datatooltk它。)

相关内容