重新定义证明环境而不丢失换行符

重新定义证明环境而不丢失换行符

我正在尝试重新定义证明环境,因为我希望“证明”一词为粗体,而不是斜体。通常,你会得到这样的结果 在此处输入图片描述 证明完成后,有一个漂亮的换行符。我尝试用

\renewenvironment{proof}{{\noindent \bfseries Demonstração.}}{\qed \linebreak}

但换行符要么不执行任何操作,要么使格式变得奇怪,如下所示:

在此处输入图片描述 证明完成后,文本中没有换行符,出于某种原因,文本上有一个类似 \noindent 的东西。此外,QED 框消失了,所以我必须也输入 \qed 命令。我该如何解决这个问题?我也尝试过其他解决方案来使“证明”加粗,但结果更糟或根本不起作用。仅供参考,Teorema = Theorem 和 Demonstração = Proof。提前致谢!

答案1

我能想到两种可以让你实现格式化目标的方法。

  • 你可以跑

    \AtBeginDocument{\renewcommand\proofname{\textbf{\upshape Demonstração}}}
    

    在序言中,正在加载babelamsthm包。

    \upshape与 相对\itshape\slshape我想也是 ),因为它指示 LaTeX 使用直立字母而不是倾斜字母。\AtBeginDocument包装器指示 LaTeX 推迟执行命令的参数,直到document环境启动。包装器是必需的babel,因为 也将其某些操作(包括选择英语单词“Proof”的葡萄牙语对应词)推迟到环境document启动。

  • 或者,您可以找到文件amsthm.sty,在文本编辑器中打开它,找到其环境定义proof,将代码复制到文档的前言中(amsthm最好在加载包后立即复制),然后替换\itshape\bfseries。(请执行不是直接修改文件amsthm.sty

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

    通过这种方法,你不需要\AtBeginEnvironment指令,也无需修改\proofname。如果您决定用西班牙语(或英语!)而不是葡萄牙语编写文档,这可能会派上用场。:-)

相关内容