我正在格式化另一位作者的数学书,该书在段落中使用了大量图形,例如wrapfigure
环境生成的图形。我遇到了很多麻烦,因为proof
和其他定理类环境都是通过列表实现的,而列表与交互很差wrapfigure
。
我尝试了软件包wrapfig
,cutwin
和insbox.tex
。最后一个很有希望,在proof
第一个包装的图形中可以正常工作,但从第二个开始失败,依此类推,我怀疑这是因为它在完成图形后进行了“恢复”:
\def\@restore@{%
\global\@wherebottom = 0cm
\global\@byframefalse
\global\everypar = {}%
\global\let \par = \endgraf
\global\parshape = 1 0cm \hsize
}
因此我决定避免使用列表环境并坚持使用wrapfigure
或insbox
。
由此我们对环境amsbook.cls
有以下定义:proof
\newenvironment{proof}[1][\proofname]{\par
\pushQED{\qed}%
\normalfont \topsep6\p@\@plus6\p@\relax
\trivlist
\itemindent\normalparindent
\item[\hskip\labelsep
\scshape
#1\@addpunct{.}]\ignorespaces
}{%
\popQED\endtrivlist\@endpefalse
}
(您可以在定义中看到\trivlist
和。)\endtrivlist
我已经制作了没有列表的版本,接缝没问题。即使是\qedhere
内部数学也有效。包裹的数字都很开心。
\renewenvironment{proof}[1][\proofname]{\par
\pushQED{\qed}%
\vspace{6\p@\@plus6\p@}%
\noindent
\textit{#1\@addpunct{.}}\enskip\ignorespaces
}{%
\popQED
\vspace{6\p@\@plus6\p@}\@endpefalse
}
但是 AMS 和其他人将这些环境实现为列表肯定是有原因的,我不知道,但我想知道,如果你知道,请分享这些知识 :-) 我怀疑环境前后的间距可能会更好。
我的问题是:如何获得与 AMSmath 一样好的证明环境,外观好看,间距好,但没有列表环境?我的证明定义中是否遗漏了什么?
编辑:我在这里添加了一个 MWE 来说明。
\documentclass{article}
\usepackage{lipsum,amsthm}
\input{insbox}
% my version of proof, here as myproof
\makeatletter
\newenvironment{myproof}[1][\proofname]{\par
\pushQED{\qed}%
\vspace{6\p@\@plus6\p@}%
\noindent
\textit{#1\@addpunct{.}}\enskip\ignorespaces
}{%
\popQED
\vspace{6\p@\@plus6\p@}\@endpefalse
}
\makeatother
\begin{document}
\InsertBoxR{0}{\rule{1cm}{1cm}}
\begin{proof}
\lipsum[1][1-7]
\InsertBoxR{0}{\rule{1cm}{1cm}}
\lipsum[1][1-7]
\end{proof}
\lipsum[1][1-7]
\InsertBoxR{0}{\rule{1cm}{1cm}}
\begin{myproof}[My proof]
\lipsum[1][1-7]
\InsertBoxR{0}{\rule{1cm}{1cm}}[-1]
\lipsum[1][1-7]
\end{myproof}
\end{document}
结果如下:第一个黑色方块位于文本上方,其他均正常。
答案1
当 AMS 创建这三个文档类amsart
、amsbook
和时amsproc
,我们坚信它们应该尽可能接近基本的 LaTeX 类article
、book
和proc
,这样作者就可以使用其中之一来编写文档,只需更改行即可\documentclass
应用 AMS 样式。事实证明,这在很大程度上是一个明智的决定。
等中的“基本”定理支持article
基于列表结构,因此该结构基本上被复制到 AMS 类中,而 AMS 类amsthm
是其中不可或缺的一部分。这是一个很大的错误,但直到为时已晚才意识到这一点,而 AMS 类已经得到了广泛的使用。(事实上,我认为将几乎所有东西都视为列表是 LateX 中的一个严重设计缺陷,从未得到过适当的重新考虑,现在已经太晚了。)
我知道它位于“待考虑”修改列表(本地也称为“错误和请求列表”)中,以摆脱列表限制——它只会导致问题——但我不知道它何时或是否会发生。(我不再有权访问该列表,但猜测这个请求是在上个世纪首次提出的,即 2000 年之前。)
顺便说一句,amsmath
仅与proof
环境有外围关系。 amsmath
和amsthm
一起工作,但是proof
在 中定义amsthm
,而不是amsmath
。
抱歉,这只回答了您问题的一半。