我正在写一篇关于定义、定理、引理等的论文。我需要给出一个概念的基本定义,然后在论文的后面扩展这个定义,因为更多的参数增加了复杂性,从而增加了定义。所以我需要一些看起来(结构上)像这样的东西:
定义 1
定义 2
定义 3
附录 1.a(参考定义 1)
附录 1.b(参考定义 1)
定义 4
附录 1.c(参考定义 1)
附录 3.a(参考定义 3)
定义 5
我似乎找不到任何可以让我这样做的东西。有人有想法吗?
在序言中:
\newtheorem{Definition}{Definition}
\newtheorem{Addendum}{Addendum}[Definition]
\def\theAddendum{\theDefinition .\alph{Addendum}}
正文:
\newcount\saveDefCounter
\begin{Definition} ... \end{Definition}
\begin{Definition} ... \end{Definition}
\begin{Definition} ... \end{Definition}
\saveDefCounter\arabic{Definition}
\setcounter{Definition}{1}
\begin{Addendum} ... \end{Addendum}
\begin{Addendum} ... \end{Addendum}
\setcounter{Definition}{\saveDefCounter}
\begin{Definition} ... \end{Definition}
\begin{Definition} ... \end{Definition}
根据 Alexey 的回答,尝试
\documentclass{article}
\newtheorem{Definition}{Definition}
\makeatletter
\newenvironment{add}[1]{ % environment has one required arg, a label to follow
\@ifundefined{c@add@#1}{ % does a private counter exist for the label?
\newcounter{add@#1} % define if not
}{ % do nothing if it does
}
\stepcounter{add@#1}
\@begintheorem{Addendum}{\ref{#1}.\csname theadd@#1\endcsname}\ignorespaces
% use latex internal macro to write the theorem start environment
}{ % end the environment
\@endtheorem
}
\makeatother
\begin{document}
\begin{Definition}\label{def1} ... \end{Definition}
\begin{Definition}\label{def2} ... \end{Definition}
\begin{Definition}\label{def3} ... \end{Definition}
\begin{add}{def1} ... \end{add}
\begin{add}{def2} ... \end{add}
\begin{add}{def1} ... \end{add}
\begin{Definition} ... \end{Definition}
\begin{Definition} ... \end{Definition}
\end{document}
add 环境必须获得一个标签,指定它要附加到的定义。如果您想使其可重用,请将 \makeatletter 和 \makeatother 之间的位放入样式文件中。