使用 enumitem 控制页面底部的 itemsep

使用 enumitem 控制页面底部的 itemsep

我使用该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

也许你可以使用needspaceetoolbox然后添加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}

相关内容