
Quiero crear básicamente un atajo para
\begin{sometheorem}[optional parameter]
\leavevmode \vspace{-\baselineskip}\vspace{-\baselineskip}\vspace{3pt} %some space adjustments
\begin{leftbar}
some text
\end{leftbar}
\end{sometheorem}
entonces lo intenté:
\newenvironment{defi}[1]
{
\begin{definition}[#1]
\leavevmode \vspace{-\baselineskip}\vspace{-\baselineskip}\vspace{3pt}
\begin{leftbar}\noindent
}
{
\end{leftbar}
\end{definition}
}
Pero esto me da
Teorema(])
Parámetro opcional] algún texto
¿Qué puedo hacer para pasar correctamente el parámetro?
Editar: estoy usando el paquete enmarcado para la barra izquierda y amsthm para los teoremas.
Respuesta1
Debe decidir si se proporciona o no el argumento opcional.
\documentclass{article}
\usepackage{framed}
\newtheorem{innertheorem}{Theorem}
\newenvironment{theorem}[1][]
{\if\relax\detokenize{#1}\relax
\begin{innertheorem}%
\else
\begin{innertheorem}[#1]%
\fi
\mbox{}\par\nobreak
\vspace{-\baselineskip}\vspace{3pt}%
\begin{leftbar}\noindent\ignorespaces}
{\end{leftbar}\end{innertheorem}}
\begin{document}
\begin{theorem}
Some statement Some statement Some statement
Some statement Some statement Some statement
Some statement Some statement
\end{theorem}
\begin{theorem}[Something]
Some statement Some statement Some statement
Some statement Some statement Some statement
Some statement Some statement
\end{theorem}
\end{document}