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}
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}
Es mejor
- utilizar amsthm y sus entornos para
proof
etc. - Usar
\newcommand
en lugar de\def
como antes es la forma LaTeX de definir nuevas macros que verifica la existencia de la macro.