使用全局计数器交叉引用不同的文件

使用全局计数器交叉引用不同的文件

我收集了大约一百份短篇tex文档(每份 1 或 2 页)。我想引用它们,不是通过它们的名称,而是通过编号。这个编号将根据编译顺序来定义。

最小示例:假设我的一份文档解释了李群,另一份文档讲述了我祖父的生平,我们假设他发明了李群。我想使用文件名而不是任意编号来引用每份文档。

因此如果运行第一的 pdflatex lie_group.tex然后 pdflatex grandfather.tex,我想要lie_groups.pdf

在此处输入图片描述

grandfather.pdf

在此处输入图片描述

相反,如果我grandfather.tex先编译,则输出应该是:

在此处输入图片描述

在此处输入图片描述

问题是如何定义\magicFileNumber\magicReference产生上述结果(撇开颜色不谈),方法如下:

% this is lie_groups.tex
\documentclass{standalone}

\begin{document}
\textbf{Lie groups} (\textit{This is Document~\magicFileNumber}) 
Lie groups were introduced by my grandfather whose life is described in Document~\magicReference{grandfather}.
\end{document}

% this is grandfather.tex
\documentclass{standalone}

\begin{document}
\textbf{My grandfather} (\textit{This is Document~\magicFileNumber}) 
He invented Lie groups, see Document~\magicReference{lie_groups}.
\end{document}

答案1

这是一个解决方案。我们需要创建一个文件 files.tex

文件.tex(文件按编译顺序排列)


\newcounter{mtfile}
\refstepcounter{mtfile}
\label{liegroups}
\refstepcounter{mtfile}
\label{grandfather}
\refstepcounter{mtfile}
\label{otherfile}

或者

\newcounter{mtfile}

\newcommand*{\runpdflatex}[1]{%
\refstepcounter{mtfile}\label{#1}}

\runpdflatex{liegroups}
\runpdflatex{grandfather}
\runpdflatex{otherfile}

并将其输入到每个文件中。

祖父.tex

\documentclass{article}
\input{files.tex}

\begin{document}
\textbf{My grandfather} (\textit{This is Document~\ref{grandfather}}) 
He invented Lie groups, see Document~\ref{liegroups}.
\end{document}

请注意,我们不需要复制所有文件。

相关内容