我需要向一家期刊提交一篇论文,该期刊要求提供不带补充部分的 main.tex 以及用于补充部分的单独 pdf。
目前我有这两个文档的 main.tex 和 supp.tex。
(1) 问题是文档中有一些我需要的“联合”信息。例如在 main.tex 中,我需要引用 supp.tex 中定义的标签。
(2) 我还需要确保 main.tex 和 supp.tex 之间的定理/属性编号一致。例如,如果 main.tex 以定理 3 结尾,则 supp.tex 应该以定理 4 开头。
(3) 最后一个问题是,补充材料中的某些定理与main.tex 中的相同:因此它们应该具有相同的编号。
对于 (1):我发现一个解决方案是 xr 包。对于 (3):如果相同的定理出现在同一个 .tex 中,我可以使用 restatable,但我的问题不同,因为我有两个不同的文件。
解决我的问题最简单的方法是什么?我认为这是期刊投稿中一个相当常见的问题,但我还没有找到解决这些问题的明确答案。
答案1
我将在这里讨论问题 (1) 和 (2)。对于 (3),有许多相关问题(例如https://tex.stackexchange.com/a/51288/105447,如何重复定理编号?),我不确定它们在各个文档中的行为方式,但这超出了我的专业知识范围。
我不确定是否没有更好的方法,我在这里建议的方法需要一些手动工作(从某种意义上说,您必须满足从一个文档传递到另一个文档的任何计数器的要求),但这种方法似乎是合理的。归根结底,就是在文档main.tex
末尾设置一个标签,存储感兴趣的计数器,然后使用xr
检索所有标签supp.tex
,并使用该标签通过 恢复refcount
计数器\setcounterref
。
main.tex
:
\documentclass{article}
\usepackage{amsmath,amsthm}
\newtheorem{theorem}{Theorem}
\usepackage{hyperref}
\makeatletter
\AddToHook{enddocument}{%
\def\@currentlabel{\arabic{theorem}}%
\label{last-theorem}%
}
\makeatother
\begin{document}
\setcounter{theorem}{5} % just as an example
\begin{theorem}\label{th:main-last}
my theorem
\end{theorem}
\end{document}
supp.tex
:
\documentclass{article}
\usepackage{amsmath,amsthm}
\newtheorem{theorem}{Theorem}
\usepackage{xr-hyper}
\usepackage{hyperref}
\externaldocument[main-]{main}
\setcounterref{theorem}{main-last-theorem}
\begin{document}
I can reference any labels from main.tex: \ref{main-th:main-last}
And the theorem counter follows the sequence from main.tex:
\begin{theorem}\label{th:supp-first}
my theorem
\end{theorem}
\end{document}
后者的输出是: