Poner una línea vertical al lado de un ejercicio.

Poner una línea vertical al lado de un ejercicio.

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

ingrese la descripción de la imagen aquí

información relacionada