如何在一行文本后绘制一个垂直高度可变的矩形?

如何在一行文本后绘制一个垂直高度可变的矩形?

我需要在几页文本块后绘制一个矩形(或一个框架框)。矩形必须在\linewidth文本后水平跨越整个页面,在垂直方向上跨越到该页面文本区域的末尾。还必须根据之前的文本量动态调整高度以适应可用空间。我尝试使用蒂克兹包,但老实说,这远远超出了我的 tex 知识。

平均能量损失

\documentclass[]{article}

\usepackage{lipsum}

\begin{document}

\section{Section 1}

\lipsum[1]

% Draw rectangle here with linewidth and that spans vertically 
% until the end of the area text of this page

\newpage

\lipsum[2]

% Draw rectangle here with linewidth and that spans vertically 
% until the end of the area text of this page

\end{document}

答案1

这是一个解决方案tikz

\documentclass[]{article}

\usepackage{tikzpagenodes}
\usepackage{lipsum}

\newcommand{\bfill}{%
\noindent
\begin{tikzpicture}[remember picture, overlay]
\fill[color = blue!30] (0, 0) rectangle (current page text area.south east);
\end{tikzpicture}
}

\begin{document}

\section{Section 1}

\lipsum[1]

\bfill

\newpage
\lipsum[2]

\bfill

\end{document}

在此处输入图片描述

答案2

您可以使用tcolorbox它的height fill选项——它将用给定颜色的框填充页面的剩余文本部分。

用途和一些选项以及一些空内容。这些选项\filltobottom在这里至关重要,同时也是为了强制框使用线宽(而不是“实际”内容)\NewTotalTCBoxbreakable,height filltcbox width=forced center,width=\linewidth

\documentclass[]{article}

\usepackage{lipsum}

\usepackage[most]{tcolorbox}
\usepackage{showframe}
\usepackage[verbose,bmargin=2cm]{geometry}

\NewTotalTCBox{\filltobottom}{O{}}{breakable, enhanced,colback=yellow,sharp corners,height fill,tcbox width=forced center,width={\linewidth},#1}{}

\begin{document}

\section{Section 1}

\lipsum[1]

\filltobottom[colback=green]

\clearpage

\lipsum[2]

\filltobottom


\end{document}

在此处输入图片描述

相关内容