分为几部分的定理列表

分为几部分的定理列表

我想创建一个定理列表,将其分组为不同的部分,如下所示。我对输出很满意,但出于其他不便详述的原因,我想知道是否有办法使用ntheorem's\theoremprework\theorempostwork命令来实现相同的效果,而无需定义内部环境,然后再定义包装器环境。

\documentclass{article}
    \usepackage{ntheorem}

    \newtheorem{theoreminner}{}
    \newenvironment{theorem}[1][]
    {
        \begin{theoreminner}[#1]
        \addcontentsline{toc}{subsection}{\protect\numberline{\thetheoreminner}#1}
    }
    {
        \end{theoreminner}
    }

\begin{document}

\tableofcontents

\section{title of section 1}

\begin{theorem}[title of theorem 1.1]
text of theorem 1.1
\end{theorem}

\begin{theorem}[title of theorem 1.2]
text of theorem 1.2
\end{theorem}

\section{title of section 2}

\begin{theorem}[title of theorem 2.1]
text of theorem 2.1
\end{theorem}

\begin{theorem}[title of theorem 2.2]
text of theorem 2.2
\end{theorem}

\end{document}

答案1

您可以,但我的解决方案通过重新定义 theoremstyles 替换了 theoreminner 环境及其附带的所有内容。这个想法大致是在 TeX 命令 (\titlethm) 中捕获定理 (可选) 参数 ##3 的标题。因此,在您的序言中用以下代码替换 theorem 和 theoreminner 的定义(假设您使用的是纯样式):

\makeatletter
\renewtheoremstyle{plain}%
{\item[\hskip\labelsep \theorem@headerfont ##1\ ##2\theorem@separator]}%
{\item[\hskip\labelsep \theorem@headerfont ##1\ ##2\ (##3)\theorem@separator]\def\titlethm{##3}}%
 \makeatother

\theorempostwork{ \addcontentsline{toc}{subsection}{\protect\numberline {\thetheorem}\titlethm}}%
\theoremstyle{plain}
\newtheorem{theorem}{}

如果没有可选参数,我就没有修改定义,因为我不知道您是否愿意在目录中写一些内容。

相关内容