我正在尝试让这个基本功能发挥作用。我有一组命令(我使用 定义的\edef
),我主要将其用作计数器。我想以扩展形式将这些命令写入辅助文件。以下是我目前得到的结果:
\documentclass{article}
\usepackage{etoolbox}
\usepackage{forloop}
\AtEndDocument{%
\newcounter{tempsection}%
\forloop{tempsection}{1}{\value{tempsection} < 3}{%
\immediate\write\@mainaux{%
\string\expandafter\string\edef\string\csname pointcount@\thetempsection\string\endcsname{\csname pointcount@\thetempsection\endcsname}%
}%
}%
}%
\begin{document}
\expandafter\edef\csname pointcount@1\endcsname{3}
\expandafter\edef\csname pointcount@2\endcsname{4}
\end{document}
在这个例子中,我希望将这个内容写入辅助文件,以便命令在下次编译文件时可用:
\expandafter\edef\csname pointcount@1\endcsname{3}
\expandafter\edef\csname pointcount@2\endcsname{4}
答案1
你可以做
\documentclass{article}
\usepackage{etoolbox}
\usepackage{forloop}
\makeatletter
\AtEndDocument{%
\newcounter{tempsection}%
\forloop{tempsection}{1}{\value{tempsection} < 3}{%
\immediate\write\@mainaux{%
\string\expandafter\gdef\noexpand\csname pointcount@\thetempsection\string\endcsname{\csname pointcount@\thetempsection\endcsname}%
}%
}%
}%
\makeatother
\begin{document}
\expandafter\edef\csname pointcount@1\endcsname{3}
\expandafter\edef\csname pointcount@2\endcsname{4}
\end{document}
请注意,您需要\gdef
使设置脱离读取辅助文件时使用的本地组。
该aux
文件写为
\relax
\expandafter\gdef \csname pointcount@1\endcsname{3}
\expandafter\gdef \csname pointcount@2\endcsname{4}