我的代码:
\documentclass{article}
\usepackage{amsthm}
\usepackage{enumerate}
\newenvironment{mypro}{\begin{proof}\hfill\par\noindent}{\end{proof}}
\begin{document}
\begin{mypro}
1\\
2
\end{mypro}
\begin{mypro}%
1\\
2
\end{mypro}
\begin{proof}
\hfill\par\noindent
1\\
2
\end{proof}
\end{document}
我得到了 你可以看到我标记的地方没有对齐。但如果我在“\begin{mypro}”后面添加“%”,那就没问题了。我想知道原因。谢谢你的帮助。
答案1
第二个例子显示了问题所在:在“begin”部分末尾\begin{mypro}
添加了 . Add之后的结束行。\ignorespaces
但我建议进一步进行两项更改:添加一个可选参数以及“非分页换行符”(您不希望“证明”位于一页的末尾而测试位于下一页)。
\documentclass{article}
\usepackage{amsthm}
\newenvironment{mypro}[1][\proofname]
{\begin{proof}[#1]\mbox{}\\*\ignorespaces}
{\end{proof}}
\begin{document}
\begin{mypro}
1\\
2
\end{mypro}
\end{document}
您也可以修补\proof
并使用该proof
环境。
\documentclass{article}
\usepackage{amsthm}
\usepackage{xpatch}
\xpatchcmd{\proof}{\ignorespaces}{\mbox{}\\*\ignorespaces}{}{}
\begin{document}
\begin{proof}
1\\
2
\end{proof}
\end{document}
答案2
我想添加一个简单的解释。
换行符会被解释为空格。如果添加%
,则会注释掉换行符,从而注释掉空格。您可以看到
A
B
C
vs.
A%
B%
C
因此,如果您定义自己的环境或长定义,则应该以 . 结尾每一行%
。