语法包导致编译破坏 \cite 命令

语法包导致编译破坏 \cite 命令

添加syntax包会导致\cite命令中断并出现以下错误:

Argument of \@citex has an extra }.
<inserted text> 
            \par 
l.5 ...high ceiling") \cite{resnick_lifelong_2017}
                                              .  enter code here

答案1

下划线字符被包激活syntax,这造成了混淆\cite

您可以通过调用包来禁用下划线的特殊处理

\usepackage[nounderscore]{syntax}

答案2

事实证明,这是由于syntax软件包改变了处理下划线字符的方式。引用名称中的下划线是导致错误的原因。

我终于在这里找到了答案:

https://www.ppsa.dk/article/backus-naur-form-latex

添加一行以使下划线行为恢复正常可以解决问题:

\usepackage{syntax}
\AtBeginDocument{\catcode`\_=8 }

相关内容