two-column – Advanced Layout with Independent Side Column for Resumes

resumetwo-column

I'm creating a CV and I'm rather specific about my layout.

I want a constant header on each page. On the left side of the page I want a column containing my personal presentation. It starts with a picture and my personal letter follows. If it doesn't fit on the first page I want it to continue on the following pages.

To the right of the column is my actual CV area, where I write about previous jobs, educations etc in a structured manner. That part also continues on following pages until everything has been included. For clearity I've create a picture of the layout which is mostly correct, the only exception is that I don't want a ragged right:

Desired CV layout

I've used quite a bit of LaTeX but I don't know how to realize this layout. I am not tied to LaTeX, as long as it is TeX based I'm happy. Perhaps it's easier with ConTeX? Or even plain TeX?

I have considered using Scribus and having rendered frames containing LaTeX output. It will become a bit messy as I'll have to cut and paste manually at the page start & break.

Best Answer

My initial thought was to use flowfram. It's definitely doable, but I don't think it's the best way to do it. Regardless, here's a solution using flowfram:

enter image description here

\documentclass{article}
\usepackage[margin=1in]{geometry}% http://ctan.org/pkg/geometry
\usepackage[draft]{flowfram}% http://ctan.org/pkg/flowfram
\usepackage{graphicx,lipsum}% http://ctan.org/pkg/{graphicx,lipsum}

% First page setup
\newstaticframe{\textwidth}{0.1\textheight}
  {0pt}{.9\textheight}[headertext]
\newdynamicframe[1]{0.30\textwidth}{0.85\textheight}
  {0pt}{0pt}[leftcolumn1]
\newdynamicframe[2]{0.30\textwidth}{0.85\textheight}
  {0pt}{0pt}[leftcolumn2]
\newdynamicframe[3]{0.30\textwidth}{0.85\textheight}
  {0pt}{0pt}[leftcolumn3]
\newflowframe{0.65\textwidth}{0.85\textheight}
  {0.35\textwidth}{0pt}[rightcolumn]

\begin{document}

\begin{staticcontents*}{headertext}
This is your header text. This is your header text. This is your header text. 
This is your header text. This is your header text. This is your header text. 
This is your header text. This is your header text. This is your header text. 
\end{staticcontents*}

\begin{dynamiccontents*}{leftcolumn1}
  \centering\includegraphics[width=.8\linewidth]{example-image-a}\par\bigskip
  \raggedright Lorem ipsum dolor sit amet, consectetuer adipiscing
    elit. Ut purus elit, vestibulum ut, placerat ac, 
    adipiscing vitae, felis. Curabitur dictum gravida 
    mauris. Nam arcu libero, nonummy eget, consectetuer
    id, vulputate a, magna. Donec vehicula augue eu
    neque. Pellentesque habitant morbi tristique 
    senectus et netus et malesuada fames ac turpis egestas.
    Mauris ut leo. Cras viverra metus rhoncus sem.
    Nulla et lectus vestibulum urna fringilla ultrices.
    Phasellus eu tellus sit amet tortor gravida placerat.
    Integer sapien est, iaculis in, pretium quis, viverra
    ac, nunc. Praesent eget sem vel leo ultrices 
    bibendum. Aenean faucibus. Morbi dolor nulla, 
    malesuada eu, pulvinar at, mollis ac, nulla. Curabitur
    auctor semper nulla. Donec varius orci eget risus.
    Duis nibh mi, congue eu, accumsan eleifend, 
    sagittis quis, diam. Duis eget orci sit amet orci dignissim
    rutrum. Nam dui ligula, fringilla a, euismod sodales, 
    sollicitudin vel, wisi. Morbi auctor lorem non justo. Nam
    lacus libero, pretium at, lobortis vitae, ultricies et,
    tellus.
    \continueonframe[\textit{\small \ldots continued}]{leftcolumn2}
    \raggedright Donec aliquet, tortor sed accumsan 
    bibendum, erat ligula aliquet magna, vitae ornare odio
    metus a mi. Morbi ac orci et nisl hendrerit mollis.
    Suspendisse ut massa. Cras nec ante. Pellentesque
    a nulla. Cum sociis natoque penatibus et magnis
    dis parturient montes, nascetur ridiculus mus. 
    Aliquam tincidunt urna. Nulla ullamcorper vestibulum
    turpis. Pellentesque cursus luctus mauris. 
    Nulla malesuada porttitor diam. Donec felis erat,
    congue non, volutpat at, tincidunt tristique, libero.
    Vivamus viverra fermentum felis. Donec nonummy
    pellentesque ante. Phasellus adipiscing semper elit.
    Proin fermentum massa ac quam. Sed diam turpis,
    molestie vitae, placerat a, molestie nec, leo. Maece-
    nas lacinia. Nam ipsum ligula, eleifend at, accumsan
    nec, suscipit a, ipsum. Morbi blandit ligula feugiat
    magna. Nunc eleifend consequat lorem. Sed lacinia
    nulla vitae enim. Pellentesque tincidunt purus vel
    magna. Integer non enim. Praesent euismod nunc
    eu purus. Donec bibendum quam in tellus. Nullam
    cursus pulvinar lectus. Donec et mi. Nam vulpu-
    tate metus eu enim. Vestibulum pellentesque felis
    eu massa.\par
\end{dynamiccontents*}

\section{Some heading}\lipsum[1]
\section{Some heading}\lipsum[2]
\section{Some heading}\lipsum[3]
\section{Some heading}\lipsum[4]
\section{Some heading}\lipsum[5]

\end{document}

The header is set in a staticframe, while the left-hand column is a set of dynamicframes. The actual "structured manner" contents is contained with a regular flowframe. A manual break is decided for the "personal presentation" to flow from one page to the next. Note the use of \par to "finish" the last paragraph and obtain a \raggedright setting.

I've used geometry to increase the text block while also activating the draft package option for flowfram to show the grid layout.

An additional reference for flowfram usage: Three-columns text with figures of 2\columnwidth

Related Question