证明环境:\popQED 和 \pushQED​​{\qed} 的问题

证明环境:\popQED 和 \pushQED​​{\qed} 的问题

我试图在证明环境中替换.:在尝试了很多在这里回答的问题之后,我得到了[我正在使用 amsmath]

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

但这对我来说不太管用。经过几十次尝试,我想出了

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

\pushQED{\qed}那么,和有什么问题\popQED?如果没有它们两个,代码可以工作,但我无法得到 qed 平方。

答案1

这似乎没有任何问题;请注意必须加载amsthm

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[brazil]{babel}

\usepackage{amsthm} % for the proof environment

\addto\captionsbrazil{\renewcommand{\proofname}{Demonstra\c{c}\~ao:}}

\begin{document}

\begin{proof}
Exercise for the reader.
\end{proof}

\end{document}

在此处输入图片描述

替代的并且可能更好的版本:

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[brazil]{babel}

\usepackage{amsthm} % for the proof environment

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

\begin{document}

\begin{proof}
Exercise for the reader.
\end{proof}

\end{document}

另一个带有修补的不同版本(但它与之前的版本相同)。

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[brazil]{babel}

\usepackage{amsthm} % for the proof environment

\usepackage{xpatch}
\makeatletter
\xpatchcmd{\proof}{\@addpunct{.}}{\@addpunct{:}}{}{}
\makeatother

\begin{document}

\begin{proof}
Exercise for the reader.
\end{proof}

\end{document}

相关内容