像定理列表一样的目录

像定理列表一样的目录

当我需要编写定理列表时,我编写了以下代码:

\documentclass[b5paper, twoside, 12pt]{memoir}
% packages
\usepackage{amsmath, amsthm, fancyhdr, geometry, hyperref, palatino, titlesec, titletoc}
\usepackage[italian]{babel}
\usepackage[applemac]{inputenc}
\usepackage{lipsum}
\newcommand{\ospace}[1]{\makebox[#1]{}}
% theorem environment definition
\newtheoremstyle{mytheorem}{0pt}{10pt}{\itshape}{}{\scshape}{~--~}{0pt}{}
\theoremstyle{mytheorem}
\newtheorem{mythm}{\hypertarget{thm\thesection.\themythm}{Theorem}}[section]
\renewcommand{\themythm}{\arabic{mythm}}
\newenvironment{thm}[1]{\newpage\begin{mythm}#1}{\end{mythm}}
\numberwithin{equation}{mythm}
\counterwithout{equation}{section}
% proof environment definition
\makeatletter
\renewenvironment{proof}{\pushQED{\qed}\trivlist\item[\hskip\labelsep\textsc{Dim.}]\mbox{}\vspace{5pt}\\*}{\popQED}
\makeatother
\begin{document}
\chapter{Chapter name}
\section{Section name}
% list of theorems
\textsc{Theorem 1} (Theorem 1 name (optional)) -- \hyperlink{thm\thesection.1}{\itshape{Theorem 1 thesis.}}
\vspace{0.5cm}

\ospace{-0.6cm}\textsc{Theorem 2} (Theorem 2 name (optional)) -- \hyperlink{thm\thesection.2}{\itshape{Theorem 2 thesis.}}

\begin{thm}[Theorem 1 name (optional)]
Theorem 1 thesis.
\end{thm}

\begin{proof}
Theorem 1 proof.
\end{proof}

\begin{thm}[Theorem 2 name (optional)]
Theorem 2 thesis.
\end{thm}

\begin{proof}
Theorem 2 proof.
\end{proof}
\end{document}

它运行良好,但可以做得更好。我希望它每次添加定理时都自动将其添加到本节开头的列表中,而无需我手动复制和粘贴。它还必须跟踪定理编号,也就是说,如果我已经写了两个定理(我们称它们为 Th_1 和 Th_2),并且我决定在两者之间添加第三个定理,那么列表应该相应更新(Th_1 保持 Th_1,新定理变为 Th_2,Th_2 变为 Th_3)。

如果这还不够棘手的话,我还希望列表中的定理具有可点击的实际定理链接,就像上面的代码一样。

我不知道我的解释是否足够清楚,如果您有任何疑问,请随时询问。

答案1

thmtools软件包有一个\listoftheorems命令,可以生成定理的“目录”样式列表。它可以通过多种方式进行自定义,请参阅手册第 1.5 节。

相关内容