如何保持同一页面上的元素组

如何保持同一页面上的元素组

我有一个带有动态内容的自定义标题。我的内容由表格、条目和段落组成。我在内容的每个部分中使用samepage带有多个的环境 ( ) ,以确保两者之间的内容将位于新页面上,或者至少将保留在两页上。\nopagebreak\nopagebreak

内容已正确分隔。问题是整个内容的标题没有跟随内容的开头。标题停留在第 2 页,内容从第 3 页开始。这是我用于标题的代码。

\documentclass[12pt]{article}
\usepackage{lipsum}
\usepackage[usenames,dvipsnames]{xcolor}
\usepackage{framed}
\usepackage[parfill]{parskip}
\definecolor{shadecolor}{RGB}{217,217,217}
\usepackage[left=0.75in,top=1.5in,right=0.75in,bottom=1in]{geometry}

\begin{document}
\lipsum[1]
\lipsum[2]
\lipsum[3]
\begin{samepage}
\nopagebreak
\begin{snugshade*}{\fontsize{13}{6}\selectfont\textbf{Testing}}\end{snugshade*}
\nopagebreak
\lipsum[4]
\nopagebreak
\lipsum[5]
\nopagebreak
\lipsum[6]
\end{samepage}

\end{document}

我看到有 minipage 和 needspace 可用于不可破坏的块,但问题是我有动态内容,所以我不知道它的长度。我也尝试将其放在\nopagebreak标题之后或之前,但它不起作用。

我的标题和动态内容位于一个samepage块内。

任何想法如何解决这一问题?

答案1

我在文档中看到过snugshade这里) 它使用了一种colorbox已定义颜色的名为 shadecolor 的控件。当我使用提供的代码中的颜色框时,内容被正确分离。因此,我尝试使用如下表格重新创建 snugshade:

\colorbox{shadecolor}{
\begin{tabular}{@{}>{}p{\linewidth}@{}}
\fontsize{13}{6}\selectfont\textbf{Testing}
\end{tabular}}\\

相关内容