如何强制 mdframed / tcolorbox 高度跨多个页面设置为 pageheight ?

如何强制 mdframed / tcolorbox 高度跨多个页面设置为 pageheight ?

我注意到,当使用mdframed和时tcolorbox,很难强制框拉伸到与页面完全相同的高度。

此外,虽然 和 似乎可以与 配合使用,但newpagepagebreak不能很好地配合使用。tcolorboxmdframed

如何实现一个多页彩色框来容纳强制为页面高度的内容?

答案1

基于答案这里,我相信最简单的方法是使用tcolorbox两个智能自定义命令:

\newcommand*{\fakebreak}{\par\vspace{\textheight minus \textheight}\pagebreak}
\newcommand*{\fakefill}{\par\vspace{\textheight minus \textheight}}
  • fakebreak允许您填充页面然后引发分页符(尽管下一页不会具有强制页面高度)。
  • fakefill可让您强制框具有与页面高度相等的高度(减去边距),而不会产生分页符。

这会给你这样的输出,我想这正是你想要的:

在此处输入图片描述

不幸的是,如果您坚持使用mdframed而不是tcolorbox,我还没有找到强制这样做的方法。


上述代码:

\documentclass{article}
\usepackage[margin=1in]{geometry}
\usepackage[utf8]{inputenc}
\usepackage[many]{tcolorbox}
\usepackage{tikz}

\begin{document}

\begin{tcolorbox}[%
parbox = false,
colback = white, colframe = black,
left = 0.5in, right = 0.5in, top = 0.5in, bottom = 0.5in,
height = \textheight,
sharp corners,
boxrule = 1pt,
breakable
]

\newcommand*{\fakebreak}{\par\vspace{\textheight minus \textheight}\pagebreak}
\newcommand*{\fakefill}{\par\vspace{\textheight minus \textheight}}

\begin{center}
\begin{tikzpicture}
\draw[rounded corners,thick, fill, fill opacity = 0.2] (-0.2,0) rectangle (2,2);
\end{tikzpicture}
\end{center}

\fakebreak


\begin{center}
    \begin{tikzpicture}
    \draw[rounded corners,thick, fill, fill opacity = 0.2] (-0.2,0) rectangle (2,2);
    \end{tikzpicture}
\end{center}

\fakefill

\end{tcolorbox}

\end{document}

相关内容