
Estoy trabajando con un entorno existente (ejercicio) proporcionado por el estilo de documento svmono (monografías de Springer) y, a veces, no está claro dónde termina un ejercicio y comienza el siguiente párrafo.
Para solucionar esto, intento agregar una línea vertical a la izquierda del texto. Estoy usando el framed
paquete para esto, usando una modificación de leftbar
. No estoy muy seguro de dónde saqué esto, pero un problema que tengo es que la barra se extiende sobre una línea demasiado alta y demasiado baja a ambos lados del ejercicio. Por tanto, el ejercicio ocupa ahora demasiado espacio vertical. A continuación se muestra un ejemplo que utiliza amsthm para el entorno en lugar de la versión proporcionada.
\documentclass{article}
\usepackage{amsthm}
\newtheorem{exercise}{Exercise}
\usepackage{framed}
\renewenvironment{leftbar}[1][\hsize]
{%
\def\FrameCommand
{%
{\hspace{-0.5ex}\vrule width 0.5pt}%
\hspace{0ex}%must no space.
\fboxsep=\FrameSep%
}%
\MakeFramed{\hsize#1\advance\hsize-\width\FrameRestore}%
}
{\endMakeFramed}
\let\oldexercise\exercise
\let\oldendexercise\endexercise
\def\exercise{\begingroup \begin{leftbar}\oldexercise}
\def\endexercise{\oldendexercise \end{leftbar}\endgroup}
\begin{document}
some text
\begin{exercise}
here is exercise 1.
\end{exercise}
more text
\end{document}
¿Hay alguna forma de modificar esto para que la barra no haga que el entorno ocupe espacio vertical adicional? (alternativamente, ya que esto puede ser unproblema xy- ¿Existe una alternativa mejor para diferenciar claramente el ejercicio del resto del texto?)
Respuesta1
Propongo una solución basada en mdframed
, que es fácil de personalizar. Espero que esté cerca de lo que quieres:
\documentclass{article}
\usepackage{amsthm}
\usepackage{mdframed}
\usepackage{lipsum}
\newmdtheoremenv[linewidth=0.5pt, topline=false, bottomline=false, rightline=false,%
leftmargin=0pt, innerleftmargin=0.4em, rightmargin=0pt, innerrightmargin=0pt, innertopmargin=-5pt ,%
innerbottommargin=3pt, splittopskip=\topskip, splitbottomskip=0.3\topskip, %
skipabove=0.6\topsep]%
{exercise}{Exercise}%
\begin{document}
\lipsum[11]
\begin{exercise}
Here is exercise 1. You must answer the following question: why is it that
\[ 1 + 1 = 2 \]%
\end{exercise}
more text
\end{document}