Eine Liste von Theoremen, gruppiert in Abschnitte

Eine Liste von Theoremen, gruppiert in Abschnitte

Ich möchte eine Liste von Theoremen erstellen, die in verschiedene Abschnitte gruppiert sind, wie unten gezeigt. Ich bin mit dem Ergebnis zufrieden, möchte aber aus anderen Gründen, auf die ich hier nicht näher eingehen möchte, wissen, ob es eine Möglichkeit gibt, mit ntheorem's \theorempreworkoder \theorempostworkBefehlen denselben Effekt zu erzielen, ohne eine innere Umgebung und dann eine Wrapper-Umgebung definieren zu müssen.

\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}

Antwort1

Das können Sie, aber meine Lösung ersetzt die theoreminner-Umgebung und alles, was dazu gehört, durch eine Neudefinition der theoremstyles. Die Idee ist grob gesagt, den Titel des (optionalen) Theoremparameters ##3 in einem TeX-Befehl (\titlethm) zu erfassen. Ersetzen Sie also in Ihrer Präambel die Definitionen von theorem und theoreminner durch diesen Code (sagen wir, Sie verwenden den einfachen Stil):

\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}{}

Ich habe die Definition für den Fall, dass kein optionales Argument vorhanden ist, nicht geändert, da ich keine Ahnung habe, ob du etwas im Inhaltsverzeichnis stehen haben möchtest oder nicht.

verwandte Informationen