Я пытаюсь написать команду, которая является сокращением для команды для написания доказательства. В данный момент я использовал
\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}
Лучше
- использовать amsthm и его окружение для
proof
и т. д. - использовать
\newcommand
вместо\def
прежнего — это способ определения новых макросов в LaTeX, который проверяет существование макроса.