
Ich möchte für einen – möglicherweise mehrseitigen – Lebenslauf ein Side-by-Side-Layout mit zwei Spalten definieren.
Die linke Spalte soll auf der ersten Seite einige statische Informationen enthalten (z. B. persönliche Daten und Kontaktdaten) und dann für die folgenden Seiten in der Größe angepasst werden (z. B. nur den Namen oder die Seite enthalten).
Die rechte Spalte muss umteilbar sein, um möglicherweise mehrere Seiten mit Inhalten aufzunehmen (z. B. für Ausbildung, Berufserfahrung usw.).
Ich habe versucht, dies tcolorbox
mit breakable
Parametern für die rechte Spalte und overlay
s für die linke Spalte zu implementieren. Ich verwende overlay first
/ overlay middle and last
Hooks, um die Größe der linken Spalte zu ändern.
Das Problem besteht darin, dass nur die linke Spalte richtig skaliert wird. Darüber hinaus ist die Trennbox nicht richtig ausgerichtet und der Textinhalt läuft über.
Gibt es eine Möglichkeit, die Kästchen auszurichten und die Textbreite für alle Seiten nach der ersten Seite mit anzupassen tcolorbox
? Wenn dies mit nicht möglich ist tcolorbox
, wie sähe dann eine bessere Lösung aus?
MWE
\documentclass[a4paper, 12pt]{article}
%
%! Dependencies
%
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{geometry}
\usepackage{titleps}
\usepackage{tikz}
\usepackage{tcolorbox}
\usepackage{blindtext}
%
%! Settings
%
\usetikzlibrary{positioning}
\tcbuselibrary{skins, breakable}
%! blank page style
\newpagestyle{blank}{%
\setheadrule{0pt}%
\setfootrule{0pt}%
\sethead{}{}{}%
\setfoot{}{}{}%
}
%! blank page geometry
\newgeometry{%
%! ignore header, footer, margin par
noheadfoot%
, nomarginpar%
, ignoreall%
, width=\paperwidth%
, height=\paperheight%
}
\savegeometry{blank}
\pagestyle{blank}
\loadgeometry{blank}
%
%! Document
%
\begin{document}
\begin{tcolorbox}[%
show bounding box%
, colback=white%
, colframe=white
, borderline={0pt}{0pt}{white}%
, sharp corners%
, breakable%
, height fixed for=all%
, text width=0.65\paperwidth%
, overlay first={%
\tikz{%
\draw[use as bounding box, fill=black] rectangle (0.3\paperwidth, \paperheight);%
\node[text=white, below right=0pt and 0pt of current bounding box.north west] {%
\begin{tabular}{l}
0.3\textbackslash paperwidth\\
side\\
bar
\end{tabular}
};%
}%
}%
, overlay middle and last={%
\tikz{%
\draw[use as bounding box, fill=black] rectangle (0.15\paperwidth, \paperheight);%
\node[text=white, below right=0pt and 0pt of current bounding box.north west] {%
\begin{tabular}{l}
0.15\\
\textbackslash paperwidth\\
side\\
bar
\end{tabular}
};%
}%
}%
]%
\blindtext[10]
\end{tcolorbox}
\end{document}
Antwort1
Der Hauptunterschied flowfram
besteht darin, dass der Rahmen mit Text gefüllt wird, während tcolorbox
innere Trennränder hinzugefügt werden. Sie müssen nur daran denken, die Ränder selbst hinzuzufügen, entweder indem Sie die Größe des Rahmens verringern oder Dinge wie \leftskip
und hinzufügen \rightskip
.
Beachten Sie den Absatz, bei dem die Seite umgebrochen wurde.
\documentclass[a4paper, 12pt]{article}
%
%! Dependencies
%
%\usepackage[utf8]{inputenc}
%\usepackage[T1]{fontenc}
\usepackage[margin=0pt]{geometry}% use entire page
\usepackage{flowfram}
\usepackage{tikz}
\usepackage{lipsum}
\AtBeginDocument{\pagestyle{empty}}
%
%! Settings
%
\newstaticframe[1]{0.3\paperwidth}{\paperheight}{0pt}{0pt}[first]
\newstaticframe[>1]{0.15\paperwidth}{\paperheight}{0pt}{0pt}[second]
\setstaticframe*{first,second}{backcolor=black,textcolor=white}
\begin{staticcontents*}{first}
\begin{center}
default is vertically centered
\end{center}
\end{staticcontents*}
\begin{staticcontents*}{second}
But you can use \verb$\vspace*{\fill}}$ to force text to the top or bottom.
\vspace*{\fill}
\end{staticcontents*}
\newflowframe[1]{0.65\paperwidth}{\paperheight}{.35\paperwidth}{0pt}
\newflowframe[>1]{0.8\paperwidth}{\paperheight}{.2\paperwidth}{0pt}
\begin{document}
\lipsum[1-12]
\end{document}