использую \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, который проверяет существование макроса.

Связанный контент