usando \def para mi propio \newenvironment

usando \def para mi propio \newenvironment

Estoy intentando escribir un comando que se acorte a un comando para escribir pruebas. En este momento solía usar

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

Ahora me he cansado de escribir \begin{proof}todo el tiempo, así que quiero cambiar a \pf{ ...content... }o \pf[ ...content... ].

Intenté hacer

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

Eso no le gustó. Debo mencionar que ya tengo

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

para align, es por eso que no lo usé para proof.

Respuesta1

lo recomiendo muy fuertementenohaciendo esto. Sin embargo, probablemente no sea tan malo como lo que ha hecho align, si es necesario:

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

prueba taquigráfica

EDITAR:Trate un poco mejor los saltos de línea/página. [Pero, como dije anteriormente, esta realmente no es una buena manera de hacerlo. ¡Hay paquetes y entornos diseñados para hacer esto bien y al mismo tiempo mantener su código inteligible!]

Respuesta2

No recomendaría esto, pero funciona (sin garantía)

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

ingrese la descripción de la imagen aquí

Es mejor

  1. utilizar amsthm y sus entornos para proofetc.
  2. Usar \newcommanden lugar de \defcomo antes es la forma LaTeX de definir nuevas macros que verifica la existencia de la macro.

información relacionada