首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不破坏原有定理编号的情况下对LaTeX中的非连续补丁进行编号?

如何在不破坏原有定理编号的情况下对LaTeX中的非连续补丁进行编号?
EN

Stack Overflow用户
提问于 2009-11-19 23:53:36
回答 2查看 1.2K关注 0票数 2

我正在写一篇充满定义、定理、引理和诸如此类的论文。我需要给出一个概念的基本定义,然后在后面的论文中扩展这个定义,因为更多的参数增加了复杂性,从而增加了定义。所以我需要一个(在结构上)看起来像这样的东西:

定义1

定义2

定义3

增编1.a (参见定义1)

增编1.b (参见定义1)

定义4

增编1.c (参见定义1)

增编3.a (参见定义3)

定义5

我似乎找不到任何可以让我这么做的东西。有谁有主意吗?

EN

回答 2

Stack Overflow用户

发布于 2009-11-20 00:21:16

在前言中:

代码语言:javascript
复制
\newtheorem{Definition}{Definition}
\newtheorem{Addendum}{Addendum}[Definition]
\def\theAddendum{\theDefinition .\alph{Addendum}}

正文:

代码语言:javascript
复制
\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}
票数 2
EN

Stack Overflow用户

发布于 2009-11-20 03:35:34

根据Alexey的回答,尝试

代码语言:javascript
复制
\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}

添加环境必须获得一个指定要附加到的定义的标签。如果您想要使其可重用,请将该位放在样式文件中的\makeatletter和\makeatother之间。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1764299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档