DEV Community

Alessandro T.
Alessandro T.

Posted on • Edited on • Originally published at trinca.tornidor.com

TwentyOneSeconds - un template per CV scritto in LaTeX

TwentyOneSeconds - un template per cv scritto in LaTeX

Ho iniziato dal tema LaTeX di twentyseconds perché penso che un CV in LaTeX sembri più professionale. E' anche possibile fare cose come questa:

a-bad-justification

Mi piace il layout a due colonne ma non la colonna di sinistra creata all'esterno del documento (fatto che imporrebbe di scrivere il testo nella colonna di sinistra specificando esattamente le dimensioni del frame contenente il testo, rendendo di fatto inutile l'utilizzo di LaTeX).
Per replicare questa configurazione a due colonne ho pensato di usare questa soluzione basata sul pacchetto tcolorbox.

Ho iniziato creando questa configurazione LaTeX di base:

% twentyonesecondcv.cls
\ProvidesClass{twentyonesecondcv}[2017/01/08 CV class]
\documentclass{article}
\usepackage{blindtext}
\usepackage{xcolor}
\usepackage{geometry}
\usepackage[most]{tcolorbox}
\geometry{margin=0pt}

\definecolor{gray}{HTML}{4D4D4D}
\definecolor{sidecolor}{HTML}{E7E7E7}
\definecolor{mainblue}{HTML}{0E5484}
\definecolor{maingray}{HTML}{B9B9B9}
\newtcolorbox{bgbox}[1][]{nobeforeafter,leftright skip=0pt,boxrule=0pt,enhanced jigsaw,sharp corners,#1}

\newcommand{\sidesection}[1]{
    \noindent
    \begin{bgbox}[height=\paperheight,colback=sidecolor,width=0.33\textwidth]
    #1
    \end{bgbox}%
}
\newcommand{\mainsection}[1]{%
    \noindent
    \begin{bgbox}[height=\paperheight,colback=white,width=0.67\textwidth]
    #1
    \end{bgbox}%
}
Enter fullscreen mode Exit fullscreen mode
% tex document
\documentclass[letterpaper]{twentyonesecondcv} % a4paper for A4

\begin{document}
\noindent
\sidesection{col 1, pag 1:: \lipsum[1-3]}
\mainsection{col 2, pag 1:: \textit{\lipsum[1-5]}}
\newpage

\noindent
\sidesection{col 1, pag2:: \lipsum[3-5]}
\mainsection{col 2, pag2:: \textit{\lipsum[3-7]}}
\end{document}
Enter fullscreen mode Exit fullscreen mode

Si può notare che l'esempio è già su due pagine: va bene mantenere il CV semplice e facile da leggere, ma cosa fare con una lista di esperienze lavorative da mostrare più lunga di una pagina?

Latex è vantaggioso da usare perché permette di pensare al solo contenuto testuale, senza sprecare tempo con l'impaginazione.
Il mio più grande problema era riempire l'eventuale spazio vuoto fra l'ultimo paragrafo ed il fondo della colonna: comandi come \vfill non funzionano all'interno di newtcolorbox perché il frame non ha un'altezza fissa.

Fortunatamente (dovrebbe essere dalla versione 3.70 di newtcolorbox) è possibile modificare questo comportamento; per questo serviranno le opzioni

  • height=<value>
  • text fill

Come già detto, il frame non può usare \vfill perché inizialmente non ha un'altezza fissa. Per imporre l'altezza del contenitore del testo uguale all'altezza dell'intera pagina serve height=\heigthpage.

L'ultima precauzione è evitare comandi che impongano valori fissi come quello tikzpicture usato all'interno del comando personalizzato \makeheaderprofile.

Per qualche ragione invece i comandi personalizzati usati per creare le sezioni delle abilità (\skills e \skillstext) funzionano bene.

Finalmente qui il risultato ed il repository GitHub!

Ho pubblicato il template LaTeX di esempio qui su overleaf.

Aggiornamenti

2023-01-24

04-01-2023

  • corretto il comando \cvlinkedin

31-12-2023

Aggiunte opzioni per trasformare indirizzi Skype in URL

01-09-2023

  • ora è possibile aggiungere un numero arbitrario di sezioni della barra delle skill con titoli di sezione personalizzabili, legende e skill personalizzabili (vedi comando \customskills)
  • migliorata la chiarezza del comando \skills
  • aggiunte alcune spiegazioni sulle sezioni dell'intestazione e del profilo informativo
  • rinominato \cvdate in \cvbirthdate, cambiata la sua icona in faCalendar
  • accettato una pull request da JeromeHen

2023-05-15

Aggiunte alcune opzioni:

  • un modo per nascondere l'immagine e visualizzare solo la riga con nome/cognome ed descrizione della mansione lavorativa
  • sezioni laterali personalizzabili
  • rimosso un comando non funzionante (\skillstext)

realizzato-con-latex

Licenziatario pubblico del progetto LaTeX

repository github

Dona

Top comments (0)