我知道这tabularx
会运行多次并导致计算不正确,因为有些计算进行了多次。
我有带计数器的 LaTeX2 代码,它在 tabularx 环境中运行良好,但与 expl3 相同的代码(但更灵活,可能有多个编号列表)会导致变量中的值错误。
这是因为计数器的行为不同吗?还是有其他原因?有没有一种简单的 expl3 解决方法?
\documentclass{article}
% this code works
%\newcounter{numberedlistcounter}
%\newcommand{\resetnumberedlist}{%
% \setcounter{numberedlistcounter}{0}}
%\newcommand{\numberedlistitem}{%
% \stepcounter{numberedlistcounter}%
% \thenumberedlistcounter}
%\newcommand{\numberitemsinlist}{%
% \thenumberedlistcounter}
\ExplSyntaxOn
\NewDocumentCommand{\resetnumberedlist}{O{default}}
{
\int_gzero_new:c { g__numberedlist_counter_#1_int }
}
\resetnumberedlist
\NewDocumentCommand{\numberedlistitem}{O{default}}
{
\int_gincr:c { g__numberedlist_counter_#1_int }
\int_use:c { g__numberedlist_counter_#1_int }
}
\NewDocumentCommand{\numberitemsinlist}{O{default}}
{
\int_use:c { g__numberedlist_counter_#1_int }
}
\ExplSyntaxOff
\usepackage{tabularx}
\begin{document}
\resetnumberedlist
\begin{tabularx}{\textwidth}{l}
\numberedlistitem \\
\numberedlistitem \\
\end{tabularx}
number of items in list: \numberitemsinlist
\end{document}
答案1
tabularx
\include
重置所有分配有计数寄存器\newcount
或expl3
不参与此机制的latex 计数器(使用 的方法)。