我使用该enumitem
包创建问题列表,并自动留出答案空间。
itemsep
和选项的组合after
,以及可伸缩空间(我的文档使用\flushbottom
)可以完美地实现这一点。除了列表跨页的情况。
我认为以下 MWE 示例涵盖了我的用例。在不更改文档正文中的任何内容的情况下,我希望以下内容:
itemsep
下面应该添加空格第 6 项,以便第 2 页上的所有项目(包括页面底部的项目之后)之间都有相等的空间。- 理想情况下,第 10 项(目前位于页面底部)应被推至第 4 页,因为
itemsep
此页面上没有足够的空间来放置额外的空间。
\documentclass{article}
\usepackage[a6paper]{geometry}
\usepackage{enumitem}
\newlength{\mylen}\setlength{\mylen}{3.25cm plus 2cm minus 1cm}
\setlist[enumerate]{resume,itemsep=\mylen,after=\vspace{\mylen}}
\flushbottom
\begin{document}
\begin{enumerate}
\item Item 1.
\item Item 2.
\item Item 3.
\end{enumerate}
Filler text.
\begin{enumerate}
\item Item 4.
\item Item 5.
\item Item 6.
\item Item 7.
\item Item 8.\vspace{-1.7cm}
\item Item 9.
\end{enumerate}
Filler text.
\begin{enumerate}
\item Item 10.
\item Item 11.
\end{enumerate}
Filler text.
\end{document}
答案1
也许你可以使用needspace
和etoolbox
然后添加before={\preto\item{\Needspace{\mylen}}}
你的\setlist[enumerate]
?它似乎满足了两个请求的操作。
\documentclass{article}
\usepackage[a6paper]{geometry}
\usepackage{enumitem,needspace,etoolbox}
\newlength{\mylen}\setlength{\mylen}{3.25cm plus 2cm minus 1cm}
\setlist[enumerate]{resume,itemsep=\mylen,after=\vspace{\mylen},before={\preto\item{\Needspace{\mylen}}}}
\flushbottom
\begin{document}
\begin{enumerate}
\item Item 1.
\item Item 2.
\item Item 3.
\end{enumerate}
Filler text.
\begin{enumerate}
\item Item 4.
\item Item 5.
\item Item 6.
\item Item 7.
\item Item 8.\vspace{-1.7cm}
\item Item 9.
\end{enumerate}
Filler text.
\begin{enumerate}
\item Item 10.
\item Item 11.
\end{enumerate}
Filler text.
\end{document}