答案1
以下是生成所需输出的一次尝试。使用的主要工具是thmtools
。amsthm
对于大多数配置选项,您可以参阅thmtools
手册。
\documentclass{article}
\usepackage{amsmath, amssymb, amsthm}
\usepackage{thmtools}
\declaretheoremstyle[%
spaceabove=3pt,spacebelow=3pt,%
headfont=\normalfont\bfseries,%
notefont=\normalfont\bfseries,%
notebraces={}{. },%
headpunct={},%
postheadspace=0pt,%
headindent=0pt,%
bodyfont=\normalfont,%
headformat={\llap{\smash{\parbox[t]{1.3in}{\centering \NAME\\ \NUMBER}}}\NOTE}%
]{marginheads}
%hack to kill some extra space
\makeatletter
\renewcommand\thmt@space{}
\makeatother
\declaretheorem[style=marginheads, numberwithin=section, title=Definition]{defn}
\declaretheorem[style=marginheads, sibling=defn, title=Theorem]{them}
\begin{document}
First let us write a paragraph of something or another.
\begin{defn}[Vector spaces over $\mathbb{R}$]
A set $S$ equipped with operations addition $+: S\times S\to S$ and scalar multiplication $\cdot: \mathbb{R}\times S \to S$ satisfying the following list of 10 axioms
\begin{enumerate}
\item Something
\item \ldots
\item Let's quit
\end{enumerate}
\end{defn}
Now we can state a theorem. Just to show it off.
\begin{them}
Suppose that $a$ and $b$ are the lengths of the legs of a right triangle, and $c$ is the length of the hypotenuse, then it is known that $a^2 + b^2 = c^2$.
\end{them}
\end{document}
输出
讨论
主要的提升是在键的设置中完成的headformat
,它创建了一个parbox
具有一定宽度(此处为 1.3 英寸)的框,并将定理标题和编号放在两行上,居中。\smash
用于使其在布局中有效地占用 0 垂直空间(这样定理的第二行就不会被向下推)。\llap
让盒子突出到边距中。
我不得不这样做,\renewcommand\thmt@space{}
因为 in 的代码\NOTE
在\thmtools
定理名称前面加上了 ,以便\thmt@space
在标题和名称之间留出一个空格。但在我们的例子中,我们的标题设置在其他地方,如果给出了可选名称,空格会产生无意的缩进。同样,postheadspace
设置为零,将定理名称与定理文本分开所需的空格附加在 中notebraces
。
在上面的演示中,展示了命名和未命名的定理。