시험 클래스를 사용하여 \fullwidth{}에 입력된 텍스트가 페이지 나누기를 엉망으로 만듭니다.

시험 클래스를 사용하여 \fullwidth{}에 입력된 텍스트가 페이지 나누기를 엉망으로 만듭니다.

나는 exam질문이 있는 문서를 작성하기 위해 수업을 사용하고 있지만 질문 사이에 긴 텍스트 구절이 있습니다. 들여쓰기를 정확하게 하기 위해 \fullwidth{}긴 텍스트 구절을 사용했습니다 .

그러나 이로 인해 페이지 나누기가 엉망이 됩니다. 질문이 끝나고 시작되면 LaTeX는 전체 텍스트를 한 페이지에 \fullwidth{}유지하려고 시도하는 것 같습니다 . \fullwidth{}따라서 대부분의 페이지에 공백이 남아 있더라도 질문 직후에 페이지 나누기가 발생하고 전체 너비 텍스트가 다음 페이지에서 시작됩니다.

내 추측으로는 \fullwidth{}최대 한두 문장의 텍스트용으로만 설계되었기 때문에 이 문제를 해결할 수 있는 방법을 찾고 있습니다.

아래의 최소 작동 예는 다음과 같습니다.

\documentclass{exam}            

\title{A minimally working example} 
\author{Confused Classicist}

\begin{document}
\maketitle
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor    incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\begin{questions}
%%%%
\question  Translate the above passage.
%%%%%
\fullwidth{  All of this text is within one fullwidth command, up until the next question.  You only see the effect when you put in enough text to fill up the first page.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.


Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Here ends the fullwidth command.
}
\question Do you value ancient languages?

\fullwidth{This fullwidth command does not have enough text here to fill up this page, so there's no problem. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.}

\end{questions}
\end{document}

답변1

Exam.cls를 살펴보면 페이지 나누기를 방지하기 위해 \fullwidth거의 전적으로 텍스트를 래핑하는 것으로 구성된 매우 간단한 매크로가 있습니다 .vbox

\long\def\fullwidth#1{%
  \par\bigskip
  \vbox{%
    % We entered internal vertical mode, and so we get \parshape=0.
    \leftskip=0pt \rightskip=0pt
    \advance\linewidth\@totalleftmargin
    \@totalleftmargin=0pt
    #1%
  }% vbox
  \nobreak
}

아마도 이것은 동일하지만 깨짐을 허용합니다.

\long\def\xfullwidth#1{%
  \par\bigskip
 % \vbox{%
     \begingroup
     \parshape=0
    % We entered internal vertical mode, and so we get \parshape=0.
    \leftskip=0pt \rightskip=0pt
    \advance\linewidth\@totalleftmargin
    \@totalleftmargin=0pt
    #1%
 %  }% vbox
 % \nobreak
   \par\endgroup
}

귀하의 질문에 예제가 포함되어 있지 않으므로 테스트되지 않았습니다. 또한 이것은 작업을 수행하는 라텍스 방식이 아니지만(여백을 변경하려면 항상 목록 환경을 사용해야 함) 원래 정의에서 해당 형식을 사용한 이유를 모르므로 여기에 보관했습니다.

관련 정보