
Quero criar basicamente um atalho para
\begin{sometheorem}[optional parameter]
\leavevmode \vspace{-\baselineskip}\vspace{-\baselineskip}\vspace{3pt} %some space adjustments
\begin{leftbar}
some text
\end{leftbar}
\end{sometheorem}
então eu tentei:
\newenvironment{defi}[1]
{
\begin{definition}[#1]
\leavevmode \vspace{-\baselineskip}\vspace{-\baselineskip}\vspace{3pt}
\begin{leftbar}\noindent
}
{
\end{leftbar}
\end{definition}
}
Mas isso me dá
Teorema(])
Parâmetro opcional] algum texto
O que posso fazer para passar o parâmetro corretamente?
Editar: estou usando o pacote emoldurado para a barra esquerda e amsthm para os teoremas.
Responder1
Você precisa decidir se o argumento opcional é fornecido ou não.
\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}