
나는 많은 목록(즉, 코드 샘플)을 포함하지만 텍스트는 많지 않은 문서를 작업하고 있습니다. 이러한 목록의 대부분은 길이가 몇 줄에 불과하며 일부는 여러 페이지에 걸쳐 있습니다. 페이지 끝에서 목록 중간에 나누기가 삽입됩니다.
(원천:Warmonkey.org)
나는 짧은 목록이 여러 페이지에 걸쳐 나누어지는 것을 원하지 않습니다. 오히려 짧은 목록은 이전 페이지 끝에 약간의 공백을 남겨두고 다음 페이지로 이동해야 합니다.이상적인 솔루션은 목록이 여러 페이지에 걸쳐 나누어지는 목록 크기에 대한 임계값을 정의할 수 있지만 그 미만에서는 목록이 자동으로 다음 페이지의 시작 부분으로 이동되는 것입니다.
(원천:Warmonkey.org)
나는 웹에서 이와 같은 것을 찾지 못했습니다.적어도 나는 단일 목록이 여러 페이지에 걸쳐 나누어지는 것을 방지하는 방법, 즉 미니페이지에 넣는 방법을 알아냈습니다.작은 목록을 미니페이지에 넣고 긴 목록을 그대로 (손으로) 남겨두면 내가 원하는 것을 거의 얻을 수 있습니다.
그러나 문제는 목록이 다음 페이지로 이동하면 이전 페이지의 목록(및 텍스트)이 페이지 하단으로 "빨려들어간다"는 것입니다.! 이로 인해 내용 끝과 페이지 끝 사이가 아닌 제목과 내용 시작 사이에 공백이 발생하는데 이는 전혀 이해가 되지 않습니다. 이를 방지할 수 있는 방법이 있다고 확신합니다. 어떻게 해야 할지 전혀 모르겠습니다...
(원천:Warmonkey.org)
아래는 샘플 코드입니다.(임의의 텍스트로 목록을 채울 방법을 찾지 못했기 때문에 너무 길었습니다. 그래서 많은 자리 표시자 텍스트를 수동으로 삽입해야 했습니다). 미니페이지 명령은 주석 처리되어 있으며 코드는 스크린샷 #1에 해당합니다. 미니페이지 명령의 주석 처리를 제거하면 결과는 스크린샷 #2와 같습니다. 내가 원하는 모습은 스크린샷 #3에 나와 있습니다(페이지 구분선의 주석 처리를 제거하면 달성됨).
편집하다: documentclass에 twoside를 추가했습니다.(초기 샘플 코드에서는 게시 직전에 twoside를 제거했기 때문에 주석을 재현할 수 없었습니다. 이제 실제로 문제가 발생했다는 것을 알 수 있습니다.).
%#############################################################################
\documentclass[11pt,twoside,a4paper]{article}
%#############################################################################
\usepackage{lipsum} % dummy text
\usepackage{fixltx2e} % textsubscript and textsuperscript
\usepackage{listings}
\lstset{frame=single}
%#############################################################################
\begin{document}
%#############################################################################
%""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
\section{A few listings}
%------------------------------------------------------------------------------
\lipsum[2]
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
%###\noindent\begin{minipage}{\hsize}
\begin{lstlisting}[caption=foo]
not
such
a
huge
listing
\end{lstlisting}
%###\end{minipage}
%###\noindent\begin{minipage}{\hsize}
\begin{lstlisting}[caption=foo]
yet
another
short
one
,
though
a
bit
longer
\end{lstlisting}
%###\end{minipage}
%###\newpage
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
%###\noindent\begin{minipage}{\hsize}
\begin{lstlisting}[caption=foo]
this
one
is
a
bit
larger
,
so
it
doesn
not
fit
onto
the
page
anymore
!
but
it
still
fits
on
one
page
!
\end{lstlisting}
%###\end{minipage}
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
\begin{lstlisting}[firstnumber=494,label=code:assoc494,caption=foo]
this
particular
listing
on
the
other
hand
is
a
lot
longer
than
the
one
before
!
...
finally
it
is
coming
to
an
end
!!
\end{lstlisting}
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
%#############################################################################
\end{document}
%#############################################################################
미리 감사드립니다!
답변1
이미지는 \flushbottom
와 사이의 차이점을 보여줍니다. 서문(단면 `기사의 기본값)에 \raggedbottom
추가하면 LaTeX가 페이지 하단에 확장 가능한 공간으로 짧은 페이지를 채웁니다.\raggedbottom