避免在修改后的“证明”环境末尾出现额外的换行符

避免在修改后的“证明”环境末尾出现额外的换行符

这个问题与如何更改 proof 环境中的“Proof”一词?。我希望我的文档中的校样以“证明。---”,而不是默认的标准“证明。”但是,如果我尝试修改此设置,无论我尝试哪种解决方案,在证明的末尾都会出现一个额外的换行符(并且 \qed 放在额外的空白行上)。

以下是 MWE:

\documentclass[a4paper,11pt]{article}
\usepackage[french]{babel}
\usepackage[latin1]{inputenc} 
\usepackage[T1]{fontenc} 
\usepackage{amsthm}
\usepackage{enumitem}

\newtheorem{theo}{Theorem}[section]
\renewenvironment{proof}{{\noindent \itshape Proof. ---}}{\qed}

\begin{document}

\begin{theo}
  My theorem.
\end{theo}

\begin{proof} In two steps:
  \begin{enumerate}[label=(\roman*)]
  \item The first step
  \item The second step
  \qedhere
  \end{enumerate}
\end{proof}

\end{document}

正如您在本 MWE 中看到的,“证明。 - -“”设置正确,但我得到了一个额外的新行。我尝试了一些解决方案(在 SE 上找到)来删除额外的新行,但似乎它们都不兼容证明环境的“重命名”。我该如何同时做到这两点?

谢谢!

答案1

解决方案:使用xpatch包仅修改\@addpunct指令。这是可行的:

\documentclass[a4paper,11pt]{article}
\usepackage[french]{babel}
\usepackage[latin1]{inputenc} 
\usepackage[T1]{fontenc} 
\usepackage{amsthm}
\usepackage{enumitem}
\usepackage{xpatch}

\makeatletter
\xpatchcmd\proof{\@addpunct{.}}{\@addpunct{.} ---}{}{}
\makeatother

\newtheorem{theo}{Theorem}[section]

\begin{document}

\begin{theo}
  My theorem.
\end{theo}

\begin{proof} In two steps:
  \begin{enumerate}[label=(\roman*)]
  \item The first step
  \item The second step
  \qedhere
  \end{enumerate}
\end{proof}

\end{document}

相关内容