在定理标题中使用 \cite 的括号参数时出错

在定理标题中使用 \cite 的括号参数时出错

此错误仅出现在 Overleaf(普通在线版本)中,因此要么我的本地编辑器(TeXstudio)没有报告此错误,要么与编辑器有关。如果有人遇到同样的问题,我有一个修复程序可以分享,但我很想知道发生这种情况的原因以及如何正确避免它。

问题\cite在标题中使用可选参数theorem会破坏引用功能,即显示引用关键字,但不生成参考书目项。更准确地说,使用\cite{thekey}不会引起问题,但\cite[the location]{thekey}会引起问题。

当前肮脏的修复将整个标题放在花括号内。

最小工作示例文件bibi.bib

@misc{alexander,
  title = {Alexandrov Geometry: Foundations},
  author = {Alexander, Stephanie and Kapovitch, Vitali and Petrunin, Anton},
  year = {2022},
}

@article{altarovici,
  title = {A General {{Hamilton-Jacobi}} Framework for Non-Linear State-Constrained Control Problems},
  author = {Altarovici, Albert and Bokanowski, Olivier and Zidani, Hasnaa},
  year = {2013},
}

main.tex 文件:

\documentclass{article}

\usepackage{biblatex}
\addbibresource{bibi.bib}
\newtheorem{mydef}{Definition} 

\begin{document}

Outside of the title arguments, no problem to cite \cite{alexander}, 
and no problem either to precise the location as in \cite[Theorem 5]{alexander}. 
However, environments are not behaving the same.

\begin{mydef}[A first def \cite[Definition 16]{altarovici}]
    This definition title fails.
\end{mydef}

\begin{mydef}[{A second def \cite[Definition 7]{alexander}}]
    This definition title does not.
\end{mydef}

\printbibliography

\end{document}

使用 overleaf 在线输出:

上述代码的 PDF 输出

答案1

的论点mydefA first def \cite[Definition 16,因此当使用该论点时,\cite论点不会被封闭。

使用

\begin{mydef}[{A first def \cite[Definition 16]{altarovici}}]

用额外的支撑组来隐藏内部[]

这与 Overleaf 无关,适用于由经典 LaTeX2e 构造(例如)定义的所有可选参数。由()构造(例如)\newcommand定义的版本与嵌套构造匹配。ltcmdxparse\NewDocumentCommand[]

相关内容