改变证明风格

改变证明风格

我正在使用\begin{proof}该包。我想更改开头添加的单词amsthm的样式。默认情况下它是斜体,我想将其变为粗体。我该怎么做?Proof

答案1

怎么样:

\renewenvironment{proof}{{\bfseries Proof}}{*something*}

*something* - 处理环境参数后要执行的某些操作(可能为空)。

更多内容请见:http://en.wikibooks.org/wiki/LaTeX/Customizing_LaTeX

答案2

如果您不介意更改环境的名称,只需使用以下代码的变体。更改\ttfamily \scshape \large #1 (yes, "#1")为更合理的内容:#1表示“证明”一词。

\newenvironment{myproof}[1][\proofname]{%
  \proof[\ttfamily \scshape \large #1 (yes, ``#1'')]%
}{\endproof}

\begin{myproof}
Hi.
\end{myproof}

proof 环境接受一个参数并将其以斜体显示(默认情况下,此参数为Proof英文)。我们的新环境也接受一个参数,标记为#1(使用相同的默认值),并proof在对其进行一些(或大量)转换后将其提供给环境。在这里,我决定用打字机小写字母大写“proof”一词,我甚至将其写了两次:“Proof,(是的,‘Proof’)”。它可以做任何事情。

如果你想重新定义proof环境本身,你可以这样做

\documentclass{article}
\usepackage{amsthm}
\expandafter\let\expandafter\oldproof\csname\string\proof\endcsname
\let\oldendproof\endproof
\renewenvironment{proof}[1][\proofname]{%
  \oldproof[\ttfamily \scshape \large #1 (yes, ``#1'')]%
}{\oldendproof}
\begin{document}
  \begin{proof}[Foobar]
    Some example text.
  \end{proof}
\end{document}

当我们重新定义proof环境时,我们实际上是在定义\proof\endproof。原始值\let变成\oldproof了最初表示的精确副本\\proof,因此我们可以使用它来定义\proof。否则,\proof将扩展为\proof[...],这将扩展为\proof[...],等等,无限循环。

编辑:修改了最后一段代码片段,该代码片段完全是错误的。

答案3

一个更好更简单的解决方案是重新定义\proofname

\usepackage{amsthm}
\let\oldproofname=\proofname
\renewcommand{\proofname}{\rm\bf{\oldproofname}}

这比重新定义环境要好,proof因为环境会花很大力气来\qed正确定位标记,并遵守定理中使用的缩进样式(不一定与普通段落相同)。它还可以与软件包配合使用,babel如果您使用多种语言,或者正在编写可能用于多种语言的样式文件,这将很有帮助。

答案4

如果您能够并且乐意修改您的 amsthm.sty,那么找到开始的命令\newenvironment{proof}(接近文件末尾),然后更改itshapebfseries

或者,只需将以下内容粘贴到文档的前言中:

\makeatletter \renewenvironment{proof}[1][\proofname] {\par\pushQED{\qed}\normalfont\topsep6\p@\@plus6\p@\relax\trivlist\item[\hskip\labelsep\bfseries#1\@addpunct{.}]\ignorespaces}{\popQED\endtrivlist\@endpefalse} \makeatother

然后,证明环境在间距、可选参数、\qedhere 等方面的行为将与以前完全相同,但您将使用粗体而不是斜体。

相关内容