为定理创建重复编号

为定理创建重复编号

我发表过文章的会议有一个奇怪的要求。在前 X 页(这里 X 并不重要)中,我们需要提供论文的详细摘要,之后,我们必须附上论文的完整版本,且没有页数限制(这样做的原因是审稿人可以阅读前 X 页,如果觉得合适,再仔细阅读其余部分)。

一个解决方案是准备完整版本,制作 PDF,准备简短版本,然后使用pdfpages将两个 PDF 合并在一起。这很好,但如果在创建简短版本的过程中我决定删除引理,那么简短版本和长版本之间的引理编号就不一致。

所以我的问题是:有没有办法创建所需的“双重”版本,以便引理编号在短版本和长版本之间保持一致?

为简单起见,我们可以假设短版中的引理/定理是长版中的引理/定理的子集。我应该注意,“引理”是一个表示“引理、定理、猜想、推论、定义”等的集合,因此所有这些编号都应该保持一致。

答案1

以下是解决您问题的建议。您的文章的简短版本将具有与长版本相同的环境,并带有一个附加的可选参数。可选参数是长版本标签(通过包引用为外部文件xr)。此参数分配给简短版本的环境计数器,以纠正删除类似的先前环境。

举例来说,这是你的长版本文章(比如说long-article.tex,名为):

\documentclass{article}
\usepackage{lipsum,ntheorem}%
\newtheorem{theorem}{Theorem}% Theorems
\newtheorem{lemma}{Lemma}% Lemmas
\newtheorem{proposition}{Proposition}% Propositions
\begin{document}
  \section{Introduction} \lipsum[1]
    \begin{theorem} \lipsum[2] \label{thm:first} \end{theorem}
    \begin{lemma} \lipsum[3] \label{lem:first} \end{lemma}
  \section{Definitions} \lipsum[4]
    \begin{theorem} \lipsum[5] \label{thm:second} \end{theorem}
    \begin{proposition} \lipsum[6] \label{pro:first} \end{proposition}
  \section{Methodology} \lipsum[7]
    \begin{theorem} \lipsum[8] \label{thm:third} \end{theorem}
    \begin{proposition} \lipsum[9] \label{pro:second} \end{proposition}
    \lipsum[10]
    \begin{lemma} \lipsum[11] \label{lem:second} \end{lemma}
  \section{Conclusions} \lipsum[12]
    \begin{theorem} \lipsum[13] \label{thm:fourth} \end{theorem}
\end{document}

现在,您创建一个简短版本的文章(例如short-article.tex,名为):

\documentclass{article}
\usepackage{lipsum,ntheorem,xr,ifmtarg}

\newtheorem{shorttheorem}{Theorem}% Theorems
\newtheorem{shortlemma}{Lemma}% Lemmas
\newtheorem{shortproposition}{Proposition}% Propositions
\externaldocument[long-]{long-article}% Long-version article

% (SHORT) Theorem definitions
\makeatletter
\newenvironment{theorem}[1][]% Short-version theorems
  {\@ifnotmtarg{#1}{%
    \setcounter{shorttheorem}{\ref{#1}}%
    \addtocounter{shorttheorem}{-1} \vspace{-\baselineskip}}%
   \begin{shorttheorem}}%
  {\end{shorttheorem}}%
\newenvironment{lemma}[1][]% Short-version lemmas
  {\@ifnotmtarg{#1}{%
    \setcounter{shortlemma}{\ref{#1}}%
    \addtocounter{shortlemma}{-1} \vspace{-\baselineskip}}%
   \begin{shortlemma}}%
  {\end{shortlemma}}%
\newenvironment{proposition}[1][]% Short-version propositions
  {\@ifnotmtarg{#1}{%
    \setcounter{shortproposition}{\ref{#1}}%
    \addtocounter{shortproposition}{-1} \vspace{-\baselineskip}}%
   \begin{shortproposition}}%
  {\end{shortproposition}}%
\makeatother
\begin{document}
  \section{Introduction} \lipsum[1]
    \begin{theorem} \lipsum[2] \label{thm:first} \end{theorem}
    %\begin{lemma} \lipsum[3] \label{lem:first} \end{lemma}
  \section{Definitions} \lipsum[4]
    \begin{theorem} \lipsum[5] \label{thm:second} \end{theorem}
    \begin{proposition} \lipsum[6] \label{pro:first} \end{proposition}
  \section{Methodology} \lipsum[7]
    %\begin{theorem} \lipsum[8] \label{thm:third} \end{theorem}
    \begin{proposition} \lipsum[9] \label{pro:second} \end{proposition}
    \lipsum[10]
    \begin{lemma}[long-lem:second] \lipsum[11] \label{lem:second} \end{lemma}
  \section{Conclusions} \lipsum[12]
    \begin{theorem}[long-thm:fourth] \lipsum[13] \label{thm:fourth} \end{theorem}
\end{document}

您只需要在以下环境中添加一个可选的引用参数即可已删除一(上例中的‘引理’和‘定理’)。

我不确定为什么在执行\setcounter\addtocounter命令后添加了额外的(垂直)空间。但是,这就是为什么要添加负片\baselineskip来纠正此行为。

相关内容