使用 \def 作为我自己的 \newenvironment

使用 \def 作为我自己的 \newenvironment

我正在尝试编写一个命令来缩短书写证明的命令。目前,我曾经使用

\newenvironment{proof}%
{\textbf{Proof:}}%
{\begin{flushright} $\blacksquare$ \end{flushright}}

现在我已经厌倦了\begin{proof}一直写作,所以我想切换到\pf{ ...content... }\pf[ ...content... ]

我尝试过

\def\pf[#2\]{\begin{proof} #2 \end{proof}}

它不喜欢那样。我应该说我已经

\def\[#1\]{\begin{align}#1\end{align}}

因为align,这就是为什么我没有使用它proof

答案1

我非常强烈推荐不是这样做。但是,这可能并不像你之前所做的那么糟糕align,所以,如果你必须:

\documentclass{article}
\usepackage{xparse,amssymb}
\NewDocumentCommand \pf { +r[] } {%
  \noindent\textbf{Proof:}
    #1\hspace*{\fill}\nolinebreak$\blacksquare$}

\begin{document}

 \pf[
   Alice saw Nobody on the road, whereas the King did not.\\
   So, Alice has sharper eyes than the King and Nobody is travelling on the road.]
 \pf[
   Alice saw Nobody on the road, whereas the King did not.\\
   Hence, Alice has sharper eyes than the King.]

\end{document}

简写证明

编辑:处理换行符/分页符会稍微好一些。[但是,正如我上面所说,这确实不是一个好方法。有些软件包和环境可以正确处理这些内容,同时保持代码的可理解性!]

答案2

我不会建议这样做,但这确实有效(没有任何保证)

\documentclass{article}
\usepackage{amsmath,amssymb}
\newenvironment{proof}%
{\textbf{Proof:}}%
{\hfill$\blacksquare$}
\def\pf#1{\begin{proof} #1 \end{proof}}
\begin{document}
  \pf{some proof here}
\end{document}

在此处输入图片描述

这个比较好

  1. 使用 amsthm 及其环境proof等等。
  2. 使用\newcommand而不是\def前者是 LaTeX 定义新宏的方式,用于检查宏的存在。

相关内容