Einen senkrechten Strich neben eine Übung setzen

Einen senkrechten Strich neben eine Übung setzen

Ich arbeite mit einer vorhandenen Umgebung (Übung), die vom Dokumentstil svmono (Springer-Monographien) bereitgestellt wird, und manchmal ist unklar, wo eine Übung endet und der nächste Absatz beginnt.

Um dies zu lösen, versuche ich, links vom Text eine vertikale Linie hinzuzufügen. Ich verwende framedhierfür das Paket und verwende eine Modifikation von leftbar. Ich bin mir nicht ganz sicher, woher ich das habe, aber ein Problem, das ich habe, ist, dass die Leiste auf beiden Seiten der Übung etwa eine Linie zu hoch und zu niedrig verläuft. Daher nimmt die Übung jetzt zu viel vertikalen Platz ein. Hier ist ein Beispiel, bei dem amsthm für die Umgebung anstelle der bereitgestellten Version verwendet wird.

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

Gibt es eine Möglichkeit, dies so zu ändern, dass die Leiste nicht dazu führt, dass die Umgebung zusätzlichen vertikalen Platz einnimmt? (Alternativ - da dies einXY-Problem– gibt es eine bessere Alternative, um die Übung deutlich vom Rest des Textes abzugrenzen?)

Antwort1

Ich schlage eine Lösung vor, die auf basiert mdframedund leicht anzupassen ist. Ich hoffe, sie kommt dem nahe, was Sie wollen:

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

Bildbeschreibung hier eingeben

verwandte Informationen