Alessandro T.
Posted on May 19, 2024
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:
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}%
}
% 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}
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
-
pull request da giocic2: corretta la definizione di
bfseries
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
)
Posted on May 19, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.