我想在两个不同的页面上定义两个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
如果您已经知道页面上的可用空间,则可以使用magazine
库tcolorbox
并将每个片段放在不同的页面上,即使顺序错误。
\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}