usando \def para meu próprio \newenvironment

usando \def para meu próprio \newenvironment

Estou tentando escrever um comando que abrevie um comando para escrever prova. No momento eu costumava usar

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

Agora estou cansado de escrever \begin{proof}o tempo todo, então quero mudar para \pf{ ...content... }ou \pf[ ...content... ].

Eu tentei fazer

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

Não gostou disso. Devo mencionar que já tenho

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

for align, é por isso que não usei isso for proof.

Responder1

Eu recomendo fortementenãoFazendo isso. No entanto, provavelmente não é tão ruim quanto o que você fez align, se for necessário:

\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}

prova abreviada

EDITAR:Lide um pouco melhor com quebras de linha/página. [Mas, como eu disse acima, esta não é realmente uma boa maneira de fazer isso. Existem pacotes e ambientes projetados para acertar essas coisas e, ao mesmo tempo, manter seu código inteligível!]

Responder2

Eu não aconselharia isso, mas funciona (sem qualquer garantia)

\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}

insira a descrição da imagem aqui

É melhor

  1. usar o amsthm e seus ambientes para proofetc.
  2. usar \newcommandem vez \defdo anterior é a maneira do LaTeX de definir novas macros que verifica a existência da macro.

informação relacionada