我正在使用一个\newtheoremstyle
来生成一个\newtheorem
叫做例子。但是,我希望示例(定理)和文本,所有内容,都有比正常文本更小的文本宽度,而且我不知道如何有效地做到这一点,并避免每次重复代码。
有没有一种智能的方式来做到这一点\newtheoremstyle
?或者其他地方?
答案1
该thmtools
包可以帮助解决这个问题。
\documentclass{article}
\usepackage{amsthm,thmtools}
\usepackage{xcolor}
\usepackage{lipsum}
\declaretheorem[shaded={bgcolor=white,textwidth=20em},style=definition]{Example}
\begin{document}
\lipsum[1]
\begin{Example}
\lipsum[2]
\end{Example}
\end{document}
这个示例是一个宽度为 20em 的框。
编辑:
在评论中,您第一次提到了居中。这是实现居中的一种方法。这需要多做一些工作。
\documentclass{article}
\usepackage{amsthm,thmtools}
\usepackage{lipsum}
\declaretheorem[style=definition]{Example}
\addtotheorempreheadhook[Example]{%
\moveright\dimexpr(\linewidth-20em)/2\vbox\bgroup
\hsize=20em
\linewidth=\hsize
}
\addtotheorempostfoothook[Example]{\egroup}
\begin{document}
\lipsum[1]
\begin{Example}
\lipsum[2]
\end{Example}
\end{document}
这并不依赖于shaded
扩展。相反,它将定理放在\vbox
适当大小的 中,然后将其向右移动(\linewidth-20em)/2
。