운동 옆에 수직선 놓기

운동 옆에 수직선 놓기

저는 svmono 문서 스타일(스프링거 논문)에서 제공하는 기존 환경(연습)을 사용하여 작업하고 있는데 때로는 연습이 끝나고 다음 단락이 시작되는 위치가 명확하지 않습니다.

이를 해결하기 위해 텍스트 왼쪽에 수직선을 추가하려고 합니다. .framedleftbar​어디서 얻은 것인지 잘 모르겠지만, 문제는 막대가 운동 양쪽에서 너무 높거나 낮은 선으로 확장된다는 것입니다. 따라서 이제 운동은 너무 많은 수직 공간을 차지하게 됩니다. 다음은 제공된 버전이 아닌 환경에 amsthm을 사용하는 예입니다.

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

막대로 인해 환경이 추가 수직 공간을 차지하지 않도록 수정할 수 있는 방법이 있나요? (또는 - 이것은XY 문제- 연습문제를 나머지 텍스트와 명확하게 구별할 수 있는 더 나은 대안이 있습니까?)

답변1

mdframed나는 사용자 정의가 쉬운 를 기반으로 한 솔루션을 제안합니다 . 그것이 당신이 원하는 것에 가깝기를 바랍니다.

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

여기에 이미지 설명을 입력하세요

관련 정보