使用 `enumerate` 和 `tabular` 进行分页

使用 `enumerate` 和 `tabular` 进行分页

我正在制作一份带有空白的讲义,希望学生填写,如下所示:

\documentclass{tufte-handout}
\begin{document}
\begin{enumerate}
    \item Caleb

    \renewcommand{\arraystretch}{2}
        \begin{fullwidth}
            \noindent \begin{tabular}{p{6in}}
                \dotfill\\\dotfill\\\dotfill
            \end{tabular}


        \end{fullwidth}

    \item Nathan

    \renewcommand{\arraystretch}{2}
        \begin{fullwidth}
            \noindent \begin{tabular}{p{6in}}
                \dotfill\\\dotfill\\\dotfill
            \end{tabular}


        \end{fullwidth}

    \item Ava

    \renewcommand{\arraystretch}{2}
        \begin{fullwidth}
            \noindent \begin{tabular}{p{6in}}
                \dotfill\\\dotfill\\\dotfill
            \end{tabular}


        \end{fullwidth}

\end{enumerate}
\end{document}

这种方法效果很好,但有时分页符会出现问题,如下所示: 在此处输入图片描述

除了手册之外,还有其他方法可以将枚举item和虚线放在同一页上吗\newpage?我确实看到了这个问题,这表明minipage,但这似乎是另一种情况。

注意:从技术上讲,上面的代码不是 MWE,因为它不会生成您在图像中看到的确切内容,但我认为它已经足够接近此目的。如果不是,请告诉我,我会修复它。

答案1

只需使用samepage环境:专门针对这种情况。

\documentclass{tufte-handout}
\usepackage{lipsum}
\begin{document}

\lipsum[1-3]
\begin{enumerate}
    \item Caleb

    \renewcommand{\arraystretch}{2}
        \begin{fullwidth}
            \noindent \begin{tabular}{p{6in}}
                \dotfill\\\dotfill\\\dotfill
            \end{tabular}


        \end{fullwidth}
\begin{samepage}
    \item Nathan

    \renewcommand{\arraystretch}{2}
        \begin{fullwidth}
            \noindent \begin{tabular}{p{6in}}
                \dotfill\\\dotfill\\\dotfill
            \end{tabular}


        \end{fullwidth}
\end{samepage}

    \item Ava

    \renewcommand{\arraystretch}{2}
        \begin{fullwidth}
            \noindent \begin{tabular}{p{6in}}
                \dotfill\\\dotfill\\\dotfill
            \end{tabular}


        \end{fullwidth}

\end{enumerate}
\end{document}

答案2

我将虚线放入保存框中,以便可以测量它们,但这样也更快。根据我能找到的文档,我使用了\rlap而不是。终止(空白行)似乎没有影响(我担心 包含)。fullwidth\par\item\par

需要注意的是\itemsep\parsep会根据环境而变化。

\documentclass{tufte-handout}
\usepackage{needspace}

\newsavebox{\dottedlines}
\savebox{\dottedlines}{\renewcommand{\arraystretch}{2}
  \begin{tabular}{p{6in}}
    \dotfill\\
    \dotfill\\ 
    \dotfill
  \end{tabular}%
}
\newlength{\itemsize}


\begin{document}
\rule{1pt}{22\baselineskip}% Ava will fit with 21
\begin{enumerate}
    \setlength{\itemsize}{\dimexpr \itemsep+\baselineskip+\parsep+\ht\dottedlines+\dp\dottedlines}
    \needspace{\itemsize}
    \item Caleb

    \noindent\rlap{\usebox{\dottedlines}}

    \needspace{\itemsize}
    \item Nathan

    \noindent\rlap{\usebox{\dottedlines}}

    \needspace{\itemsize}
    \item Ava

    \noindent\rlap{\usebox{\dottedlines}}

\end{enumerate}
\end{document}

相关内容