我想在我的文档中添加一个定理列表,因此我添加了thmtools
。这给出了一个定理列表,但格式如下。
1.1 定理。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。24
1.2 定理。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。二十五
1.3 定理。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。二十八
我希望它看起来像这样:
定理 1.1。对于直角三角形,$x^2 + y^2 = z^2$。 。 。 。 。 。 。 。 。 。 。 。 。 。 。24
定理 1.2。$\sin^2(\theta) + \cos^2(\theta) = 1$ 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。二十五
定理 1.3。其他定理。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。二十八
我已经制定了以下计划:
\makeatletter
\def\ll@theorem{%
{\bf \thmt@thmname~ \protect\numberline{\thetheorem.~}} %
Theorem Body goes here...
}
\def\l@thmt@theorem{}
\makeatother
这给了我这个:
定理 1.1。定理主体在此处...。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 24
定理 1.2。定理主体在此处...。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 二十五
定理 1.3。定理主体在此处...。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 二十八
我只是在努力弄清楚如何用和之间Theorem Body goes here...
替换TeX
\begin{theorem}
\end{theorem}
这是一个可编译文档的示例
\documentclass{article}
\usepackage{amsthm, thmtools}
\newtheorem{theorem}{Theorem}[section]
\makeatletter
\def\ll@theorem{%
{\bf \thmt@thmname~ \protect\numberline{\thetheorem.~}} %
Theorem Body goes here...
}
\def\l@thmt@theorem{}
\makeatother
\begin{document}
\title{Test}
\listoftheorems
\section{Section A}
\begin{theorem}
For a right angle triangle, $x^2 + y^2 = z^2$
\end{theorem}
\begin{proof}
Proof...
\end{proof}
\begin{theorem}
$\sin^2(\theta) + \cos^2(\theta) = 1$
\end{theorem}
\begin{proof}
Proof...
\end{proof}
\section{Section B}
\begin{theorem}
Some other theorem
\end{theorem}
\begin{proof}
Proof...
\end{proof}
\end{document}
干杯
安东尼
答案1
抓取‘BODY’,即可使用和命令完成theorem
之间的内容。\begin{theorem}...\end{theorem}
\RenewEnviron
\BODY
该\RenewEnviron
命令定义theorem
为原始版本(之前已存储到命令中)的包装\let\theorem@@orig
器\let\theorem@@origend
。
该包environ
提供了包含if\BODY
之间任何内容的命令,它是一个由或组成的环境。\begin{foo}...\end{foo}
foo
NewEnviron
\RenewEnviron
\BODY
然后就可以使用这个命令\ll@theorem
了!
\documentclass{article}
\usepackage{amsthm, thmtools}
\newtheorem{theorem}{Theorem}[section]
\usepackage{environ}
\makeatletter
\def\ll@theorem{%
{\bfseries \thmt@thmname~ \protect\numberline{\thetheorem.~}} %
\BODY%
}
\def\l@thmt@theorem{}
\makeatother
\makeatletter
\let\theorem@@orig\theorem
\let\theorem@@origend\endtheorem
\RenewEnviron{theorem}{%
\theorem@@orig%
\BODY%
}[\theorem@@origend]
\makeatother
\title{Test}
\begin{document}
\listoftheorems
\section{Section A}
\begin{theorem}
For a right angle triangle, $x^2 + y^2 = z^2$
\end{theorem}
\begin{proof}
Proof...
\end{proof}
\begin{theorem}
$\sin^2(\theta) + \cos^2(\theta) = 1$
\end{theorem}
\begin{proof}
Proof...
\end{proof}
\section{Section B}
\begin{theorem}
Some other theorem
\end{theorem}
\begin{proof}
Proof...
\end{proof}
\end{document}