我想创建一个类似于图列表的定理列表,但找不到解决我的问题的包或教程。我试过这个http://texblog.org/2008/07/13/define-your-own-list-of/但无法让它工作:-/
这是“我的”定理风格:
\usepackage{amsthm}
\newtheoremstyle{mystyle}
{\topsep}
{\topsep}
{}
{}
{\bfseries}
{:}
{\newline}
{\thmname{#1}\thmnumber{ #2}\thmnote{ (#3)}}
\theoremstyle{mystyle}
\newtheorem{mydef}{Definition}
答案1
下面是使用内核命令的不同方法\@starttoc
(新列表中的条目格式化为中的标准子部分article
,但可以轻松修改):
\documentclass{article}
\usepackage{amsthm}
\usepackage{etoolbox}
\usepackage{lipsum}% just to generate text
\usepackage{amsthm}
\newtheoremstyle{mystyle}
{\topsep}{\topsep}{}{}{\bfseries}{:}{\newline}
{\thmname{#1}\thmnumber{ #2}\thmnote{ (#3)}%
\ifstrempty{#3}%
{\addcontentsline{def}{subsection}{#1~\themydef}}%
{\addcontentsline{def}{subsection}{#1~\themydef~(#3)}}}
\theoremstyle{mystyle}
\newtheorem{mydef}{Definition}
\makeatletter
\newcommand\definitionname{Definition}
\newcommand\listdefinitionname{List of Definitions}
\newcommand\listofdefinitions{%
\section*{\listdefinitionname}\@starttoc{def}}
\makeatother
\begin{document}
\listofdefinitions
\begin{mydef}[A note]
\lipsum[2]
\end{mydef}
\begin{mydef}
\lipsum[2]
\end{mydef}
\begin{mydef}
\lipsum[2]
\end{mydef}
\end{document}
答案2
这是一个解决方案,基本上
contents
在文件中添加一行\jobname.prb
- 使用命令读取该文件
\listmytheorems
我使用这个扩展.prb
只是因为我在以前的工作中使用过
我使用了etoolbox
提供许多命令的命令 - 唯一与我的代码相关的命令是\ifstrempty
\documentclass{article}
\usepackage{amsthm} % for theorems
\usepackage{lipsum} % for sample text
\usepackage{etoolbox} % \ifstrempty (and more)
% enable the \jobname.prb file
% (hacked from the ntheorem package)
\makeatletter%
\def\prb@enablelistofproblems{%
\begingroup%
\if@filesw%
\expandafter\newwrite\csname tf@prb\endcsname%
\immediate\openout \csname tf@prb\endcsname \jobname.prb\relax%
\fi%
\@nobreakfalse%
\endgroup}%
% enable the \jobname.prb files at the end
% of the document
\AtEndDocument{\prb@enablelistofproblems}%
\makeatother%
\newread\File
\def\listmytheorems{%
% open the \jobname.prb and read the contents
\par%
\openin\File=\jobname.prb%
\loop\unless\ifeof\File%
\read\File to\fileline%
\fileline%
\repeat%
\closein\File%
}%
% your theorem- with some tweaks
\newtheoremstyle{mystyle}
{\topsep}
{\topsep}
{}
{}
{\bfseries}
{:}
{\newline}
{\thmname{#1}\thmnumber{ #2}\thmnote{ (#3)}%
\ifstrempty{#3}{\addcontentsline{prb}{section}{#1 \themydef}}{\addcontentsline{prb}{section}{#1 \themydef~(#3)}}
}
\theoremstyle{mystyle}
\newtheorem{mydef}{Definition}
\begin{document}
\subsection*{List of my definitions}
\listmytheorems
\begin{mydef}[description goes here]
\lipsum[1]
\end{mydef}
\begin{mydef}
\lipsum[1]
\end{mydef}
\begin{mydef}
\lipsum[1]
\end{mydef}
\begin{mydef}
\lipsum[1]
\end{mydef}
\begin{mydef}
\lipsum[1]
\end{mydef}
\begin{mydef}
\lipsum[1]
\end{mydef}
\end{document}