myCV/preamble.tex
Giorgio Gilestro 7e30ed5b48 Modular LaTeX CV: scaffolding, 13 chapters, altacv styling
Replace the monolithic ODT with a modular LaTeX source tree that becomes
the canonical full CV:

- preamble.tex: altacv color/font overrides + compact-row macros
  (\cvrow, \cvgrant, \cvtalk, \cvalum, \cvpub) so dense lists keep
  baseline-aligned dates without the tabularx misalignment the
  custom v1 had.
- cv-full.tex: driver including the 13 chapters in order.
- chapters/*.tex: header, positions, education, grants, teaching,
  examinations, service, talks, collaborators, alumni, publications,
  products (solo-founded flyRoom + Berengar), software.
- tex-vendor/altacv.cls (v1.7.4): vendored, not in TeX Live.
- Makefile: dockerised xelatex build via texlive/texlive:latest,
  with TEXINPUTS=.:./tex-vendor: so the vendored class resolves.

Output: 6-page build/cv-full.pdf (down from 10 in the first pass).
2026-05-13 15:56:51 +01:00

113 lines
3.6 KiB
TeX

% ============================================================
% Preamble for the modular CV (altacv class)
% - geometry / colors / fonts overrides
% - compact macros for dense list-style entries (talks, grants, pubs)
% ============================================================
\geometry{left=1.4cm,right=1.4cm,top=1.5cm,bottom=1.5cm,columnsep=1.2cm}
% --- Colors --------------------------------------------------
\definecolor{SlateGrey}{HTML}{2E2E2E}
\definecolor{LightGrey}{HTML}{666666}
\definecolor{Accent}{HTML}{1F4E79} % deep blue
\definecolor{Subtle}{HTML}{A0A0A0}
\colorlet{name}{SlateGrey}
\colorlet{tagline}{Accent}
\colorlet{heading}{Accent}
\colorlet{headingrule}{Accent}
\colorlet{subheading}{Accent}
\colorlet{accent}{Accent}
\colorlet{emphasis}{SlateGrey}
\colorlet{body}{SlateGrey}
% --- Fonts ---------------------------------------------------
% Use Lato if installed (texlive ships it), otherwise default serif.
\IfFontExistsTF{Lato}{%
\setmainfont{Lato}[
Path = ,
UprightFont = *-Regular,
BoldFont = *-Bold,
ItalicFont = *-Italic,
BoldItalicFont = *-BoldItalic,
]
}{}
% --- Tighter section / paragraph spacing ---------------------
% altacv's defaults are already tight; nudge a tiny bit further.
\setlength{\parskip}{2pt}
% --- Extra info fields for the header ------------------------
% \blog{host} → faBlog icon + linked https://host
\NewInfoField{blog}{\faBlog}[https://]
% --- Hyperref tweaks (the class loads it via withhyper) ------
\hypersetup{
colorlinks=true,
urlcolor=Accent,
linkcolor=Accent,
pdfauthor={Giorgio F. Gilestro},
pdftitle={Curriculum Vitae - Giorgio F. Gilestro},
}
% ============================================================
% Custom semantic macros for dense list-style chapters.
% These complement altacv's \cvevent / \cvachievement / \divider.
% Layout: a left "tag" column (date or amount) baseline-aligned
% with the description on the right.
% ============================================================
% Two-column compact row: left tag (date/amount), right description.
% Baseline-aligned via \parbox[t]+\strut so the date never sits below
% the start of the description.
\newcommand{\cvrow}[2]{%
\par\noindent
\parbox[t]{0.16\linewidth}{\raggedright\strut\small\color{LightGrey}#1}%
\hspace{0.5em}%
\parbox[t]{0.81\linewidth}{\raggedright\strut #2}%
\par\vspace{2pt}%
}
% Grant entry: year | amount | description (three columns).
\newcommand{\cvgrant}[3]{%
\par\noindent
\parbox[t]{0.07\linewidth}{\raggedright\strut\small\color{LightGrey}#1}%
\hspace{0.3em}%
\parbox[t]{0.10\linewidth}{\raggedright\strut\bfseries#2}%
\hspace{0.3em}%
\parbox[t]{0.80\linewidth}{\raggedright\strut #3}%
\par\vspace{2pt}%
}
% Talk entry: date | kind | venue.
\newcommand{\cvtalk}[3]{%
\par\noindent
\parbox[t]{0.10\linewidth}{\raggedright\strut\small\color{LightGrey}#1}%
\hspace{0.3em}%
\parbox[t]{0.08\linewidth}{\raggedright\strut\small\itshape#2}%
\hspace{0.3em}%
\parbox[t]{0.79\linewidth}{\raggedright\strut #3}%
\par\vspace{2pt}%
}
% Alumnus: name+degree (bold) | current position.
\newcommand{\cvalum}[2]{%
\par\noindent
\parbox[t]{0.38\linewidth}{\raggedright\strut\bfseries #1}%
\hspace{0.5em}%
\parbox[t]{0.59\linewidth}{\raggedright\strut\small #2}%
\par\vspace{2pt}%
}
% Senior-author marker for publications (✉)
\newcommand{\senior}{{\color{Accent}\faEnvelope}\,}
% Publication: authors / title / venue / marker (or empty)
\newcommand{\cvpub}[4]{%
\par\noindent
\parbox[t]{0.04\linewidth}{\strut #4}%
\parbox[t]{0.95\linewidth}{\raggedright\strut #1\\
\textit{#2}\\
{\small\color{LightGrey}#3}}%
\par\vspace{4pt}%
}