问答:
通过列表定义选择题和选项,但由于自动换页,布局比较丑陋。
目的:
我想通过断页处的题目分配比例来自动修正选择题及其选项,下面是想自动修复题目的效果MWE
:
- (1) 题的布局是可以接受的。
- (2)题排版不可接受,孤行应该在3页的底部。(通过变量解决
\baselineskip
)
\baselineskip=1\baselineskip plus 0pt minus 5pt \relax
- (3) 问题的布局不可接受。选择题主体应位于 6 页的顶部。(未解决)
- (4) 问题的布局不可接受。选择题主体应位于 8 页的顶部。(未解决)
主意:
将问题主体和问题选项放入小页面,关闭 minipage 的自动分页,并为小页面通过项目数来改变页面。不知道这个想法是否可行,如果不行,还有其他解决方案吗?
平均能量损失:
\documentclass{book}
\usepackage{enumitem}
\textheight10.5\baselineskip
\usepackage{lipsum}
\newlist{ExampleQuestionEnumerate}{enumerate}{1}
\setlist[ExampleQuestionEnumerate, 1]{
fullwidth,
labelindent=0pt,
label=(\arabic*),
labelwidth=!,
labelsep = 0pt,
leftmargin=!,
topsep=0pt plus 2pt,
partopsep=0pt plus 1pt,
parsep=0pt,
itemsep=2pt plus 1pt minus 1pt,
resume
}
\NewDocumentCommand{\choiceQuestionBody}{ +m } {
\item #1
}
\newlist{PerLineOptions}{enumerate}{1}
\setlist[PerLineOptions, 1]{
label=\Alph*.,
labelsep=0.5em,
leftmargin=*,
align=left,
widest=D,
nosep
}
\NewDocumentCommand{\fourOptionsInFourLines}{+m +m +m +m}{
\begingroup
\begin{PerLineOptions}
\item #1
\item #2
\item #3
\item #4
\end{PerLineOptions}
\endgroup
}
\begin{document}
\begin{ExampleQuestionEnumerate}[start=1]
\choiceQuestionBody{\lipsum[2]\lipsum[1][1]}
\fourOptionsInFourLines
{option a}
{option b}
{option c}
{option d}
\end{ExampleQuestionEnumerate}
\newpage
\begin{ExampleQuestionEnumerate}[start=2]
\choiceQuestionBody{\lipsum[2]}
\fourOptionsInFourLines
{option a}
{option b}
{option c}
{option d}
\end{ExampleQuestionEnumerate}
\newpage
\begin{ExampleQuestionEnumerate}[start=3]
\choiceQuestionBody{\lipsum[2]\lipsum[1][1-4]}
\fourOptionsInFourLines
{option a}
{option b}
{option c}
{option d}
\end{ExampleQuestionEnumerate}
\newpage
\begin{ExampleQuestionEnumerate}[start=4]
\choiceQuestionBody{\lipsum[2]\lipsum[1][1-2]}
\fourOptionsInFourLines
{option a}
{option b}
{option c}
{option d}
\end{ExampleQuestionEnumerate}
\end{document}