这个问题与如何更改 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}