filbreak 增加了额外的垂直空间

filbreak 增加了额外的垂直空间

我正在写一本书,里面有很多问题。大多数问题都是分部分提出的。

在页面底部,它在打印问题编号之后但在打印各个部分之前就断掉了,这显然不是我想要的结果:

第 1 页 第2页

我认为最简单的解决方法是\filbreak在每个问题后添加一个。但这会在项目之间增加一些额外的空间。

再次回到第 1 页 再次回到第 2 页

您可以看到,在之前的版本中,第 1 页应该可以容纳 8 个问题,但现在只能容纳 7 个。

这是我正在写的书中的一个实际问题,因为5mm每个问题可能都有额外的空间。我该如何解决这个问题?

请注意,我无法使用,minipage因为它不能与任务很好地交互。

    \documentclass[a5paper]{article}
    \usepackage{tasks}
    \begin{document}


    \section*{Here are some questions: }
    \begin{enumerate}
        \item \begin{tasks}(2) \task $1$ \task $2$ \task $3$ \task $4$ \end{tasks} \filbreak
        \item \begin{tasks}(2) \task $1$ \task $2$ \task $3$ \task $4$ \end{tasks} \filbreak
        \item \begin{tasks}(2) \task $1$ \task $2$ \task $3$ \task $4$ \end{tasks} \filbreak
        \item \begin{tasks}(2) \task $1$ \task $2$ \task $3$ \task $4$ \end{tasks} \filbreak
        \item \begin{tasks}(2) \task $1$ \task $2$ \task $3$ \task $4$ \end{tasks} \filbreak
        \item \begin{tasks}(2) \task $1$ \task $2$ \task $3$ \task $4$ \end{tasks} \filbreak
        \item \begin{tasks}(2) \task $1$ \task $2$ \task $3$ \task $4$ \end{tasks} \filbreak
        \item \begin{tasks}(2) \task $1$ \task $2$ \task $3$ \task $4$ \end{tasks} \filbreak
        \item \begin{tasks}(2) \task $1$ \task $2$ \task $3$ \task $4$ \end{tasks} \filbreak
        \item \begin{tasks}(2) \task $1$ \task $2$ \task $3$ \task $4$ \end{tasks} \filbreak
        \item \begin{tasks}(2) \task $1$ \task $2$ \task $3$ \task $4$ \end{tasks} \filbreak
        \item \begin{tasks}(2) \task $1$ \task $2$ \task $3$ \task $4$ \end{tasks} \filbreak
        \item \begin{tasks}(2) \task $1$ \task $2$ \task $3$ \task $4$ \end{tasks} \filbreak
        \item \begin{tasks}(2) \task $1$ \task $2$ \task $3$ \task $4$ \end{tasks} \filbreak
        \item \begin{tasks}(2) \task $1$ \task $2$ \task $3$ \task $4$ \end{tasks} \filbreak
        \item \begin{tasks}(2) \task $1$ \task $2$ \task $3$ \task $4$ \end{tasks} \filbreak
    \end{enumerate}

    \end{document}

答案1

您可以尝试以下操作:

\documentclass[a5paper]{article}
\usepackage{tasks}
\ExplSyntaxOn\makeatletter
\RenewEnviron {__tasks_env:} [3]
  {
    \if@inlabel
      \@beginparpenalty=10000 %new
      \noindent\par\nobreak\vskip-\parskip\vskip-\baselineskip\hrule\@height\z@
    \fi
    \dim_compare:nNnF { \l__tasks_before_list_skip } = { 0pt }
      { \vspace {\l__tasks_before_list_skip} }
    \list {}
      {
        \keys_set:nn {tasks/list} {#2}
        \dim_set:Nn \leftmargin  {0pt}
        \dim_set:Nn \rightmargin {0pt}
      }
    \item \scan_stop:
    \int_incr:N \l__tasks_depth_int
    \__tasks:VnnV \l__tasks_instance_tl {#3} {#1} \BODY
    \endlist
    \dim_compare:nNnF { \l__tasks_after_list_skip } = { 0pt }
      { \vspace {\l__tasks_after_list_skip} }
  }

\ExplSyntaxOff
    \begin{document}


    \section*{Here are some questions: }
    \begin{enumerate}
        \item \begin{tasks}(2) \task $1$ \task $2$ \task $3$ \task $4$ \end{tasks} 
        \item \begin{tasks}(2) \task $1$ \task $2$ \task $3$ \task $4$ \end{tasks} 
        \item \begin{tasks}(2) \task $1$ \task $2$ \task $3$ \task $4$ \end{tasks} 
        \item \begin{tasks}(2) \task $1$ \task $2$ \task $3$ \task $4$ \end{tasks} 
        \item \begin{tasks}(2) \task $1$ \task $2$ \task $3$ \task $4$ \end{tasks} 
        \item \begin{tasks}(2) \task $1$ \task $2$ \task $3$ \task $4$ \end{tasks} 
        \item \begin{tasks}(2) \task $1$ \task $2$ \task $3$ \task $4$ \end{tasks} 
        \item \begin{tasks}(2) \task $1$ \task $2$ \task $3$ \task $4$ \end{tasks} 
        \item \begin{tasks}(2) \task $1$ \task $2$ \task $3$ \task $4$ \end{tasks} 
        \item \begin{tasks}(2) \task $1$ \task $2$ \task $3$ \task $4$ \end{tasks} 
        \item \begin{tasks}(2) \task $1$ \task $2$ \task $3$ \task $4$ \end{tasks} 
        \item \begin{tasks}(2) \task $1$ \task $2$ \task $3$ \task $4$ \end{tasks} 
        \item \begin{tasks}(2) \task $1$ \task $2$ \task $3$ \task $4$ \end{tasks} 
        \item \begin{tasks}(2) \task $1$ \task $2$ \task $3$ \task $4$ \end{tasks} 
        \item \begin{tasks}(2) \task $1$ \task $2$ \task $3$ \task $4$ \end{tasks} 
        \item \begin{tasks}(2) \task $1$ \task $2$ \task $3$ \task $4$ \end{tasks} 
    \end{enumerate}

    \end{document}

相关内容