添加

添加

我希望对我的推论进行类似的编号塞尔确实如此。他的推论数字反映了它们所遵循的引理或命题。例如:

Section 1
Proposition 1
Corollary 1
Lemma 1.1
Corollary 1.1

Section 2
Lemma 2.1
Proposition 2
Lemma 2.2
Corollary 2.2A
Corollary 2.2B

如何在 LaTeX 中做类似的事情?我正在考虑以下几点:

\begin{lem}\label{l1}
...
\end{lem}
\begin{cor}\label{c1}\tag{\ref{l1}}
...
\end{cor}

但是,这给了我一个语法错误。[见下面的完整代码]

我也尝试过使用重复定理为此;然而,它似乎不太适合这项任务;并且我的 LaTeX 编码能力还不够强,无法修改它以使其在这里工作。

\documentclass[11pt]{amsart}
\usepackage{amsmath}
\newtheorem{lem}{Lemma}
\newtheorem{Lem}[lem]{Lemma}%*
\numberwithin{lem}{section}
\newtheorem{prop}{Proposition}
\newtheorem{Prop}[prop]{Proposition}
\newtheorem{Cor}{Corollary}%}[lem]{
\newtheorem{cor}[Cor]{Corollary}%*
\begin{document}
\section{asdf}
\begin{lem}\label{l1}
\end{lem}
\begin{prop}\label{p1}
\end{prop}
\begin{cor}\label{c1}\tag{\ref{l1}}
\end{cor}
\section{fdsa}
\begin{lem}\label{l2}
\end{lem}
\begin{prop}\label{p2}
\end{prop}
\begin{lem}\label{l2}
\end{lem}
\begin{cor}\label{c2}\tag{\ref{l2}A}
%\tag{asdf}
\end{cor}
\begin{cor}\label{c3}\tag{\ref{l2}B}
%\tag{asdf}
\end{cor}
\end{document}

答案1

这是一个实现,可能会因交叉引用而有所改进。

\documentclass{amsart}

\newtheorem{propT}{Proposition}
\newtheorem{lemmaT}{Lemma}[section]
\newtheorem*{genericT}{\genericTname}

\newenvironment{prop}{\propT}{\endpropT\xdef\laststatement{\thepropT}}
\newenvironment{lem}{\lemmaT}{\endlemmaT\xdef\laststatement{\thelemmaT}}

\newenvironment{corollary}[1][]
 {\def\genericTname{Corollary \laststatement#1}\genericT}
 {\endgenericT}

\begin{document}

\section{asdf}
\begin{prop}
\end{prop}
\begin{corollary}
\end{corollary}
\begin{lem}
\end{lem}
\begin{corollary}
\end{corollary}

\section{fdsa}
\begin{lem}
\end{lem}
\begin{prop}
\end{prop}
\begin{lem}
\end{lem}
\begin{corollary}[A]
\end{corollary}
\begin{corollary}[B]
\end{corollary}
\end{document}

在此处输入图片描述

个人评论。尽管我对 20 世纪最伟大的数学家之一表示敬意,但这种编号方案很愚蠢。这种方案特别设计用于使从文本中的参考文献中查找陈述变得困难:例如,命题 24 到底在哪里?现在添加定理:你能分辨出命题 18 是在定理 3 之前还是之后吗?当然不能:你甚至不知道它们在哪个部分。但是,我见过更糟糕的系统。

添加

如果你想引用推论\label,我思考corollary这可以工作。将的定义改为

\makeatletter
\newenvironment{corollary}[1][]
 {%
  \def\genericTname{Corollary \laststatement#1}%
  \edef\@currentlabel{\laststatement#1}%
  \genericT
 }
 {\endgenericT}
\makeatletter

现在

\begin{corollary}[B]\label{whatever}

应该可以使用\ref{whatever}并获得“2.2B”(假设上面的例子的编号)。

答案2

明白了!对 reptheorem 进行了修改。

\documentclass[11pt]{amsart}
\usepackage{amsmath}

\makeatletter
\newtheorem*{rep@theorem}{\rep@title}
\newcommand{\newreptheorem}[2]{%
\newenvironment{rep#1}[2][]{%
 \def\rep@title{#2 \ref{##2}##1}%
 \begin{rep@theorem}}%
 {\end{rep@theorem}}}
\makeatother

\newtheorem{lem}{Lemma}
\newreptheorem{lem}{Corollary}
\newtheorem{Lem}[lem]{Lemma}%*
\numberwithin{lem}{section}
\newtheorem{prop}{Proposition}
\newreptheorem{prop}{Corollary}
\newtheorem{Prop}[prop]{Proposition}
\newtheorem{Cor}{Corollary}%}[lem]{
\newtheorem{cor}[Cor]{Corollary}%*
\begin{document}
\section{asdf}
\begin{lem}\label{l1}
\end{lem}
\begin{prop}\label{p1}
\end{prop}
\begin{repprop}{p1}
\end{repprop}
\section{fdsa}
\begin{lem}\label{l2}
\end{lem}
\begin{prop}\label{p2}
\end{prop}
\begin{lem}\label{l2}
\end{lem}
\begin{replem}[A]{l2}
\end{replem}
\begin{replem}[B]{l2}
\end{replem}
\end{document}

相关内容