
Quero definir um layout lado a lado com duas colunas para um currículo - potencialmente com várias páginas.
A coluna da esquerda deverá conter algumas informações estáticas na primeira página (por exemplo, dados pessoais e de contato) e depois deverá ser redimensionada para as páginas seguintes (por exemplo, contendo apenas o nome ou a página).
A coluna da direita precisa ser quebrável para acomodar possíveis múltiplas páginas de conteúdo (por exemplo, para educação, experiência profissional, ...).
Eu estava tentando implementar isso usando o parâmetro tcolorbox
with breakable
para implementar a coluna da direita e overlay
s para a coluna da esquerda. Estou usando overlay first
/ overlay middle and last
hooks para redimensionar a coluna da esquerda.
O problema é que apenas a coluna da esquerda é redimensionada corretamente. Além disso, a caixa quebrável não está alinhada corretamente e o conteúdo do texto transborda.
Existe uma maneira de alinhar as caixas e redimensionar a largura do texto para todas as páginas após a primeira página tcolorbox
? Se não for possível tcolorbox
, como seria uma solução melhor?
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}
Responder1
A principal diferença flowfram
é que ele preenche o quadro com texto, enquanto tcolorbox
adiciona margens internas. Você só precisa se lembrar de adicionar as margens você mesmo, seja reduzindo o tamanho do quadro ou adicionando coisas como \leftskip
e \rightskip
.
Observe o parágrafo onde a página foi quebrada.
\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}