mdframed로 인해 페이지 하단에 잘못된 정렬이 발생합니다.

mdframed로 인해 페이지 하단에 잘못된 정렬이 발생합니다.

이 LaTeX 문서를 컴파일해 주시고 싶으시다면:

\documentclass[a4paper,11pt]{book}

\usepackage[paper=a4paper,twoside=true,lmargin=4cm,
rmargin=4cm,bindingoffset=0cm]{geometry}

\usepackage{mdframed,lipsum,kantlipsum}
\mdfsetup{font=\small}

\begin{document}
\kant[1-8]


\begin{mdframed}
\kant[1-5]
\end{mdframed}

\end{document}

2페이지와 3페이지의 하단이 다음과 같이 잘못 정렬되어 있음을 알 수 있습니다.

잘못 정렬된 페이지

질문:

  1. 3페이지의 단락과 프레임 사이의 공간이 아래쪽이 정렬되도록 확장되어야 하지 않나요? 왜 이런 일이 일어나지 않습니까?

  2. mdframed 상자 위에도 유연한(0, 필요한 경우 단락 간격과 마찬가지로 유연한 공간 추가) 공간을 추가하려면 어떻게 해야 합니까? 위의 질문 1을 해결했다고 가정하면 단락 사이의 공간에 부담이 덜해질 것입니다.

답변1

이해할 수 없는 이유로 또는 (기본값은 ) 구성 mdframed여부에 관계없이 페이지 하단이 울퉁불퉁해지는 방식으로 첫 번째 (분할) 상자를 출력합니다 .\raggedbottom\flushbottombook

다음 패치를 사용하면 보다 정상적인 동작을 얻을 수 있습니다.

\usepackage{mdframed}

\makeatletter

\patchcmd\mdf@put@frame@i{\hrule \@height\z@ \@width\hsize\vfill}{}{}{}
\patchcmd\mdf@put@frame@i{\hrule \@height\z@ \@width\hsize\vfill}{}{}{}
\patchcmd\mdf@put@frame@i{\hrule \@height\z@ \@width\hsize\vfill}{}{}{}

\makeatother

이것이 무엇을 달성해야 하는지 정말로 모르기 때문에 아마도 뭔가 문제가 생길 수 있지만 적어도 페이지 하단은 이제 정렬되었습니다 ;-)

상자 위의 공간은 mdframed로 구성되어 있으므로 skipabove유연한 접착제를 얻을 수 있습니다.

\mdfsetup{font=\small,skipabove=\parskip}

예

관련 정보