我看过这个帖子定义我自己的证明环境?我还有一个后续问题,因为那里的答案不能令人满意。
我想定义二证明环境——一个带有黑色 qed 方块,另一个带有白色 qed 方块。我通过以下代码片段将默认证明环境设置为带有黑色 qed 符号:
\renewcommand{\qedsymbol}{$\blacksquare$}
我通过修改定义了另一个证明环境我上面提到的页面中给出的建议并写下了以下内容:
\newenvironment{claimproof}[1]{\par\noindent\textit{Proof.}\space#1}{\hfill$\square$}
这似乎有效,但我遇到了一些极端情况,其中两者之间存在差异。后者的 claimproof 环境不能保证 qed-box 放置在默认证明环境放置它的同一位置。下面是一个我发现实际差异的示例。
图片1(使用claimproof
带有白色 qed-box 的自定义环境)。
图片2(使用proof
带有黑色 qed-box 的默认环境)。
环境claimproof
无法将白框放在右侧(我可以通过添加来解决这个问题,但这会产生默认环境不会产生的\newline
不必要的新行)。我想以与默认环境完全相同的方式运行。有没有一种不那么临时的方式来做到这一点,实际上复制了真实的环境?proof
claimproof
proof
proof
答案1
以下代码将环境定义claimproof
为proof
来自amsthm
包的环境,但也在\qedsymbol
环境的开头重新定义。由于重新定义是\qedsymbol
在组内完成的,因此它仅在本地应用(在环境内claimproof
)。
\documentclass{article}
\usepackage{amssymb,amsthm}
\newenvironment{claimproof}[1][\proofname]
{\renewcommand\qedsymbol{$\blacksquare$}\proof[#1]}
{\endproof}
\begin{document}
\begin{proof}
a proof with a hollow square as a Q.E.D
\end{proof}
\begin{claimproof}
a proof with a solid square as a Q.E.D
\end{claimproof}
\end{document}
我认为最好不要修改证明环境,而是使用claimproof
实心 qed 符号。如果您希望证明环境具有实心正方形,则可以保存原始符号,然后在原始符号\qedsymbol
内部进行重新定义。claimproof
\documentclass{article}
\usepackage{amssymb,amsthm}
\let\origqedsymbol\qedsymbol
\renewcommand\qedsymbol{$\blacksquare$}
\newenvironment{claimproof}[1][\proofname]
{\renewcommand\qedsymbol{\origqedsymbol}\proof[#1]}
{\endproof}
\begin{document}
\begin{proof}
a proof with a solid square as a Q.E.D
\end{proof}
\begin{claimproof}
a proof with a hollow square as a Q.E.D
\end{claimproof}
\end{document}