pdfpages 包和 bibitem 以及我自己的计数器

pdfpages 包和 bibitem 以及我自己的计数器

我有以下 MWE:

\documentclass{article}
\usepackage[latin9]{inputenc}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
%\usepackage{pdfpages}

\newcounter{cptnumpubli}
\def\numpubli{\addtocounter{cptnumpubli}{1}\thecptnumpubli}

\begin{document}
\setcounter{cptnumpubli}{0}

\begin{thebibliography}{00}
\bibitem[\numpubli]{refbib} authors, title
\end{thebibliography}

\end{document}

如果我取消注释,\usepackage{pdfpages}我会收到一个错误,但我不知道如何处理。

似乎该pdfpages包与我在参考书目中使用自己的计数器之间存在冲突。我不完全明白问题出在哪里。

编译以以下消息结束:

! Undefined control sequence.
\@calc@post@scan ...st@scan \else \def \calc@next 
                                                  {\calc@error #1}\fi \fi \f...
l.16 \bibitem[\numpubli]{refbib}
                                 authors, title

我怎样才能pdfpages在我的文档中使用该包,同时仍然在 bibitem 条目中使用我自己的计数器?

答案1

更换线路

\newcounter{cptnumpubli}
\def\numpubli{\addtocounter{cptnumpubli}{1}\thecptnumpubli}

经过

\newcounter{cptnumpubli}
\DeclareRobustCommand{\numpubli}{\addtocounter{cptnumpubli}{1}\thecptnumpubli}

使其工作!

[2021 年 2 月编辑]

而且我发现下面的方法效果更好(DeclareRobustCommand使用命令带来的麻烦的解决方案\cite):

\newcounter{cptnumpubli}
\def\numpubli{\protect\stepcounter{cptnumpubli}\thecptnumpubli}

相关内容