我想将两列(主要是)文本跨越多页(以创建简历)。我在如何制作跨多个页面的迷你页面这几乎正是我想要做的。
然而,在 statet 解决方案中,左列仅跨越第一页,因此
+-----------------+
| Header |
+------+----------+
| | |
| | |
| side | Body |
| bar | |
| | |
| | |
| | |
+------+----------+
~pagebreak~
+----------+
| |
| |
| |
| |
+----------+
如果侧边栏的内容超出一页的空间,则不会分页到下一页。我该如何修改代码(覆盖部分)的状态解决方案
\documentclass{article}
\usepackage[skins,breakable]{tcolorbox}
\usepackage{lipsum}% example texts
\begin{document}
\textcolor{red}{Header} % <------------------------
\lipsum[1]
\begin{tcolorbox}[
blanker,
width=0.64\textwidth,enlarge left by=0.36\textwidth,
before skip=6pt,
breakable,
overlay unbroken and first={%
\node[inner sep=0pt,outer sep=0pt,text width=0.33\textwidth,
align=none,
below right]
at ([xshift=-0.36\textwidth]frame.north west)
{%
\textcolor{red}{Sidebar} % <------------------------
\lipsum[2]
};}]
\textcolor{red}{Body}: % <------------------------
\lipsum[3-7]
\textcolor{red}{End of body}
\end{tcolorbox}
\end{document}
将侧边栏的内容分成两列(或多列),使其看起来像
+-----------------+
| Header |
+------+----------+
| | |
| | |
| side | Body |
| bar | |
| | |
| | |
| | |
+------+----------+
~pagebreak~
+------+----------+
| | |
| | |
| | |
| | |
+------+----------+
答案1
这是一个手动解决方案,当机身仅断成两部分时有效。
它使用magazine
库将文本分成几部分并存储起来以供以后使用(参见它的起源tcolorbox:可以存储可破坏的 tcolorbox 的各个部分以供日后使用吗?)。
我不知道如何知道主体第一个片段的高度,以便在分割侧边栏时使用。因此,我进行了一些反复试验,直到找到最终值。当侧边栏被分成两个片段并存储到数组中时,我们可以在覆盖节点unbroken and first
和last
覆盖选项中使用这些片段。
\documentclass{article}
\usepackage[most]{tcolorbox} %<--- change to most to include magazine.
\usepackage{lipsum}% example texts
\begin{document}
\begin{tcolorbox}[
blanker,
width=0.33\textwidth,
breakable,
break at=14cm/0pt,
reset box array,
store to box array]
\textcolor{red}{Sidebar} % <------------------------
\lipsum[2-3]
\end{tcolorbox}
\textcolor{red}{Header} % <------------------------
\lipsum[1]
\begin{tcolorbox}[
blanker,
width=0.64\textwidth,enlarge left by=0.36\textwidth,
before skip=6pt,
breakable,
overlay unbroken and first={%
\node[inner sep=0pt,outer sep=0pt,text width=0.33\textwidth,
align=none,
below right]
at ([xshift=-0.36\textwidth]frame.north west)
{%
\useboxarray{1}
};},
overlay last={%
\node[inner sep=0pt,outer sep=0pt,text width=0.33\textwidth,
align=none,
below right]
at ([xshift=-0.36\textwidth]frame.north west)
{%
\useboxarray{2}
};},
]
\textcolor{red}{Body}: % <------------------------
\lipsum[3-7]
\textcolor{red}{End of body}
\end{tcolorbox}
\end{document}
答案2
我最终使用了彩色盒子对于两列,嵌套在帕拉科尔环境,例如
\documentclass[10pt, a4paper]{report}
\usepackage{lipsum}
\usepackage{geometry}
\usepackage[skins,breakable]{tcolorbox}
\usepackage{paracol}
\geometry{a4paper, left=5mm, right=20mm, top=15mm, bottom=25mm}
\begin{document}
\setcolumnwidth{34mm, 10cm}
\setlength{\columnsep}{7mm}
\begin{paracol}{2}
\begin{tcolorbox}[blanker, breakable, width=\linewidth]
\lipsum[1-5]
\end{tcolorbox}
\switchcolumn
\begin{tcolorbox}[blanker, breakable, width=\linewidth]
\lipsum[1-10]
\end{tcolorbox}
\end{paracol}
\end{document}