将文本分布在两个 minipage/tcolorbox 环境、两个不同的页面上

将文本分布在两个 minipage/tcolorbox 环境、两个不同的页面上

我想在两个不同的页面上定义两个minipage(或者tcolorbox,我没有太多限制)环境,我想用一些文本填充,并且我希望 LaTeXminipage自动在这两个环境之间传播文本。

换句话说,我想声明两个minipage环境,用命令分隔\newpage,并声明将minipage首先填充第一个环境的文本,然后,一旦第一个minipage环境已满,将剩余部分发送到第二个minipage环境。它会是这样的(这不是一个简化的例子,因为我不知道从哪里开始):

\begin{document}

\begin{minipage}[t][16cm][t]{18cm}
First part of my text.
\end{minipage}

~\newpage

\begin{minipage}[t][15cm][t]{18cm}
Second part of my text.
\end{minipage}

\end{document}

当然,我可以手动将文本分成两部分,在第一个minipage环境中编写第一部分,在第二个minipage环境中编写文本的第二部分。但是,我实际上希望 LaTeX 自动执行此操作(我正在编写一份月度报告的模板,并且必须适合这两个环境的文本是从一个大小可变的单个 .txt 文件中加载的 - 因此每次对该文件进行更改时,我都必须寻找应该将其拆分的正确位置)。

我还需要~\newpage命令来控制分页符,因为我必须texblock*在第一页和第二页上使用环境放置东西 - 所以如果我让 LaTeX 自己制作第二页,那么我的所有texblock*命令都将只放在第一页上。

它看起来是这样的:

Page 1:
 _______________________________________
|    Stuff positioned with textblock    |
|_______________________________________|

     _______________________________
    |                               |
    |                               |
    |     First part of my text     |
    |                               |
    |                               |
    |_______________________________|

 _______________________________________
| Other Stuff positioned with textblock |
|_______________________________________|

Page 2:
 _______________________________________
| Other Stuff positioned with textblock |
|_______________________________________|

     _______________________________
    |                               |
    |                               |
    |    Second part of my text     |
    |                               |
    |                               |
    |_______________________________|

 _______________________________________
| Other Stuff positioned with textblock |
|_______________________________________|

你知道该如何做吗?

答案1

我花了很长时间才找到这个链接如何制作跨多个页面的迷你页面 我发现了 flowfram 包,它应该可以满足您的需求。

如果每个页面上的文本块相同,则无需在 \newstaticframe[1]{\textwidth}{.25\texttheight}{0pt}{.75\texttheight}[p1]%head 中添加选项

    \documentclass{article}
    \usepackage[margin=.5in]{geometry}
    \usepackage{flowfram,lipsum}

    \newstaticframe{\textwidth}{.25\textheight}{0pt}{.75\textheight}[p]
    \newstaticframe[1]{\textwidth}{.25\textheight}{0pt}{.75\textheight}[p1]%head
    %\newstaticframe[1]{\textwidth}{.7\textheight}{0pt}{-15cm}[bp1]% bottom
    % if the same text on every page the option is not necessary
    \newstaticframe{\textwidth}{.7\textheight}{0pt}{-15cm}[bp]% bottom
    %% for the other pages (if not the same text)
    \newstaticframe[2]{\textwidth}{.25\textheight}{0pt}{.75\textheight}[p2]%head
    \newstaticframe[3]{\textwidth}{.25\textheight}{0pt}{.75\textheight}[p3]%head
    \newstaticframe[4]{\textwidth}{.25\textheight}{0pt}{.75\textheight}[p4]%head
    \setallstaticframes{valign=t}

    \newflowframe{0.7\textwidth}{0.5\textheight}{.2\textwidth}{5cm}
    %
    \pagestyle{empty}

    \begin{document}


    \begin{staticcontents*}{p1}
        \large{TEXT of the first page}
    \end{staticcontents*}

    \begin{staticcontents*}{p2}
        \large{TEXT of the second page}
    \end{staticcontents*}

    \begin{staticcontents*}{p3}
        \large{TEXT of the third page}
    \end{staticcontents*}

    \begin{staticcontents*}{p4}
        \large{TEXT of the fourth page}
    \end{staticcontents*}

    \begin{staticcontents*}{bp}
        \large{TEXT of the bottom of all pages}% it can change
    \end{staticcontents*}

    \lipsum[1-4]
    \framebreak
    \lipsum[5-10]
    \end{document}

答案2

如果您已经知道页面上的可用空间,则可以使用magazinetcolorbox并将每个片段放在不同的页面上,即使顺序错误。

\documentclass[a4paper]{article}
\usepackage[most]{tcolorbox}
\usepackage{lipsum}

\begin{document}

\begin{tcolorbox}[enhanced, breakable, 
    reset box array, store to box array, 
    empty,
    break at=10cm,
    height fixed for = all,
    valign=center]
    \lipsum[1-3]
\end{tcolorbox}

\consumetcboxarray{1}{colback=blue!30}

\newpage

\consumetcboxarray{2}{colback=red!30}

\end{document}

在此处输入图片描述

相关内容