
Quero criar uma lista de teoremas agrupados em diferentes seções, conforme mostrado abaixo. Estou feliz com o resultado, mas por outros motivos que não valem a pena entrar, quero saber se existe uma maneira de usar ntheorem
's \theoremprework
ou \theorempostwork
comandos para obter o mesmo efeito sem ter que definir um ambiente interno e, em seguida, um ambiente de invólucro.
\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}
Responder1
Você pode, mas minha solução substitui o ambiente teorema e todas as coisas que o acompanham, redefinindo os estilos de teoremas. A ideia é, grosso modo, capturar o título do parâmetro do teorema (opcional) ##3 em um comando TeX (\titlethm). Portanto, substitua em seu preâmbulo as definições de teorema e teorema por este código (digamos que você esteja usando estilo simples):
\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}{}
Não modifiquei a definição caso não haja argumento opcional porque não tenho ideia se você gostaria de ter algo escrito no índice ou não.