
Quiero definir un diseño de lado a lado con dos columnas para un currículum (potencialmente de varias páginas).
Se supone que la columna de la izquierda contiene información estática en la primera página (por ejemplo, datos personales y de contacto) y luego se debe cambiar el tamaño para las páginas siguientes (por ejemplo, que contenga solo el nombre o la página).
La columna de la derecha debe poder dividirse para dar cabida a múltiples páginas de contenido potenciales (por ejemplo, para educación, experiencia laboral,...).
Estaba intentando implementar esto usando el parámetro tcolorbox
with breakable
para implementar la columna derecha y overlay
s para la columna izquierda. Estoy usando overlay first
/ overlay middle and last
hooks para cambiar el tamaño de la columna izquierda.
El problema es que sólo la columna de la izquierda cambia de tamaño correctamente. Además, el cuadro rompible no está alineado correctamente y el contenido del texto se desborda.
¿Hay alguna manera de alinear los cuadros y cambiar el tamaño del ancho del texto para todas las páginas después de la primera página con tcolorbox
? Si no es posible con tcolorbox
, ¿cuál sería una mejor solución?
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}
Respuesta1
La principal diferencia flowfram
es que llena el marco con texto, mientras que tcolorbox
agrega márgenes internos. Sólo debes acordarte de agregar tú mismo los márgenes, ya sea reduciendo el tamaño del marco o agregando cosas como \leftskip
y \rightskip
.
Tenga en cuenta el párrafo donde se rompió la página.
\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}