LaTeX、etoolbox 和计数器

LaTeX、etoolbox 和计数器

我在使用该包裹时遇到了一个新问题etoolbox

事实上,我想在 LaTeX 文档中对我的图形、表格等进行编号......

但是,当我将计数器的值添加到列表中时,它不会添加当前值(即增加的值),而是添加最终值。就像在etoolbox执行文档末尾的命令一样。

请问您有什么解决办法吗?

谨致

托马斯·福切特

PS:使用并expl3不能解决问题。

\documentclass{minimal}
\usepackage{etoolbox}

%COMMAND FOUND ON INTERNET AND WORKS
% \printlist[<sep>]{<list macro>}
\newcommand{\printlist}[2][,]{{% Print list
  % http://tex.stackexchange.com/a/89187/5764
  \def\listsep{\def\listsep{#1}}% Delayed execution of list separator
  \renewcommand{\do}[1]{\listsep`##1'}%
  [\dolistloop\languagelist]
}}


\newcounter{test}
\stepcounter{test}

\begin{document}

%Add 1
\listgadd{\languagelist}{\thetest}
\stepcounter{test}
%Add 2
\listgadd{\languagelist}{\thetest}

%Expected result : ['1','2']
%Result : ['2','2']
\printlist{\languagelist}

\end{document}

答案1

用于\listxadd扩大价值:

\documentclass{minimal}
\usepackage{etoolbox}

%COMMAND FOUND ON INTERNET AND WORKS
% \printlist[<sep>]{<list macro>}
\newcommand{\printlist}[2][,]{{% Print list
  % http://tex.stackexchange.com/a/89187/5764
  \def\listsep{\def\listsep{#1}}% Delayed execution of list separator
  \renewcommand{\do}[1]{\listsep`##1'}%
  [\dolistloop\languagelist]
}}


\newcounter{test}
\stepcounter{test}

\begin{document}

%Add 1
\listxadd{\languagelist}{\thetest}
\stepcounter{test}
%Add 2
\listxadd{\languagelist}{\thetest}

%Expected result : ['1','2']
%Result : ['2','2']
\printlist{\languagelist}

\end{document}

相关内容