假设我正在创建 50 个单独的 LaTeX 文件(每个讲座一个)。
我希望将第一个文件中的所有定理/命题标记为 1.1、1.2 等,但在第二个文件中,我希望将它们全部标记为 2.1、2.2 等,直到第 50 个讲座,其中所有内容都将被标记为 50.1、50.2 等。
换句话说,每个单独的 LaTeX 文件的所有内容都是连续编号的,但是(除了第一个文件),编号不会从 1 开始。实现此目的的最简单方法是什么?
第二个问题:学期末我会把 50 个文件粘贴在一起(这样学生们就能得到一个合并的文件)。理想情况下,上一个问题的答案在文件粘贴在一起时不会带来太多麻烦。
答案1
这取决于你如何定义你的“讲座”环境。但是,以下内容就足够了,并允许你在最后将它们合并在一起:
\documentclass{article}
%\usepackage{hyperref}
\newtheorem{theorem}{Theorem}
\newcommand{\settheoremprefix}[1]{%
\setcounter{theorem}{0}%
\def\theHtheorem{#1.\arabic{theorem}}% ...if you're loading hyperref
\renewcommand{\thetheorem}{#1.\arabic{theorem}}%
}
\begin{document}
\settheoremprefix{1}
\begin{theorem}\end{theorem}
\begin{theorem}\end{theorem}
\begin{theorem}\end{theorem}
\settheoremprefix{2}
\begin{theorem}\end{theorem}
\begin{theorem}\end{theorem}
\begin{theorem}\end{theorem}
\settheoremprefix{3}
\begin{theorem}\end{theorem}
\begin{theorem}\end{theorem}
\begin{theorem}\end{theorem}
\end{document}
\settheoremprefix{<stuff>}
添加<stuff>.
到每个定理数之前。如果你正在加载hyperref
,还要小心地更新特定的计数器以确保正确的超链接\theHtheorem
跳转hyperref
。
\setcounterprefix{<counter>}{<stuff>}
也可以使用更通用的版本
\newcommand{\setcounterprefix}[2]{%
\setcounter{#1}{0}%
\expandafter\def\csname theH#1\endcsname{#2.\arabic{#1}}% ...if you're loading hyperref
\expandafter\def\csname the#1\endcsname{#2.\arabic{#1}}%
}
例如,
\setcounterprefix{theorem}{2}
\setcounterprefix{equation}{B}