将计数器转移到另一个文件

将计数器转移到另一个文件

我有两个文件,比如说file1.texfile2.texfile1.tex它是一系列文件中的第一个,它以计数器开头(例如第 1 章,尽管我的计数器不用于章节)。然后在的末尾file1,章节的计数器为 7 ;我想将计数器的值进位到,file2.tex以便我可以使用在 中值为 7 的计数器file2.tex。这样,我就可以将 中的计数器进位file2.tex到 中的计数器,file3.tex依此类推。

我认为我需要file1.tex先编译,然后file2.tex,然后file3.tex......当然。

这可能吗?如果可能的话,怎么做?我什么也想不出来。

答案1

您可以使用以下组合xr从其他文档中检索标签,以及refcount将标签的引用分配给计数器(作为参考,请参阅不同文件之间的交叉引用):

file1.tex

\documentclass{article}
\makeatletter
\newcommand*{\storecounter}[2]{%
  \edef\@currentlabel{\the\value{#1}}% Store current counter value in \@currentlabel
  \label{#2}% Store label
}
\makeatother
\newcounter{mycntr}
\begin{document}
Some text
\setcounter{mycntr}{12}\storecounter{mycntr}{first}
\setcounter{mycntr}{99}\storecounter{mycntr}{second}
\end{document}

这将创建file1.aux有关标签及其关联值的关键信息:

\newlabel{first}{{12}{1}}
\newlabel{second}{{99}{1}}

file2.tex

\documentclass{article}
\usepackage{refcount,xr}% http://ctan.org/pkg/{refcount,xr}
\newcommand*{\getcounter}[2]{%
  \setcounterref{#1}{#2}% Retrieve label value and store it in a counter
}
\externaldocument[file1:]{file1}
\newcounter{mycntr}
\begin{document}
Counter: \getcounter{mycntr}{file1:first}\themycntr \par
Counter: \getcounter{mycntr}{file1:second}\themycntr
\end{document}

在此处输入图片描述

相关内容