使用 csvsimple 进行字符串测试时出现编译错误

使用 csvsimple 进行字符串测试时出现编译错误

考虑这个最小的工作示例:

    \documentclass{beamer}
    \usepackage{csvsimple,filecontents}

    \begin{document}

    \begin{filecontents*}{data.csv}
    id,type
    1,a
    2,b
    \end{filecontents*}

    \begin{frame}    
    \csvreader{data.csv}{1=\id,2=\type}{
        \ifcsvstrcmp{\type}{a}{
        %do something
        }{
        %do something else
        }       
    }
    \end{frame}

    \end{document}

\ifcsvstrcmp{}{}{}{}除非注释掉,否则上述代码无法编译。

错误信息如下:

pdflatex> ! 未定义的控制序列。pdflatex
> \csv@@body -> \ifcsvstrcmp
pdflatex> --------------------------------------{\type }{a}{}{}
pdflatex> l.14 }

感谢任何有关我可能做错的事情的提示......

谢谢!

答案1

调试可能很困难。通常,问题不是错误,而是用户误解了宏的语法或限制。通常,这只是输入中的简单拼写错误、宏名称拼写错误或括号不匹配。正如 KJO 所指出的,一个真正令人讨厌的问题是非打印字符溜进您的输入中。找到并消除这些字符可能令人抓狂。

当所有这些方法都失败时,另一个可以检查的方法是检查你的包是否过期或彼此不匹配。这是我通过评论向原帖提出的建议。

更新所有软件包后,问题消失,因此确认过时的软件包是问题的根源。

相关内容