From 3f8d04d759930b75cbaa53ee6df6491394f59e8d Mon Sep 17 00:00:00 2001 From: Mads Lorentzen Date: Tue, 28 Apr 2026 20:46:32 +0200 Subject: [PATCH 1/3] fix(cv): override moderncv banking colors and remove inter-item \vspace Two fixes for the moderncv banking + lualatex + MiKTeX combination that the README documents as the recommended setup: 1. **Color overrides for names and section headings.** Default banking on modern MiKTeX renders firstname, lastname, and \section headings in black, which clashes with the rest of the blue accent scheme (links, bullets, contact icons). Add three \renewcommand* lines that force firstnamestyle, lastnamestyle, and sectionstyle to use \color{color1}. Both names render bold in matching blue, and every \section heading renders blue with the standard horizontal underline. No effect for users on a setup where the defaults already render blue. 2. **Remove \vspace{1pt} between \item entries in itemize lists.** This pattern (used 21 times in the template) intermittently produces an oversized gap before a single item: every adjacent pair has the same separator in the source, but LaTeX renders one of them noticeably wider because the inter-item \vspace creates a paragraph break that interacts with the list's internal \itemsep. Removing the inter-item \vspace lets itemize use its native uniform spacing, which renders consistently. \vspace{1pt} immediately after \section{...} (between header and first item) and \vspace{3pt} between top-level \cventry blocks are kept - those are different patterns and render fine. Also updated the file's compile-comment from "pdflatex" to "lualatex" to match the README. Co-Authored-By: Claude Opus 4.7 (1M context) --- cv/main_example.tex | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/cv/main_example.tex b/cv/main_example.tex index 7601be8..c60ba03 100644 --- a/cv/main_example.tex +++ b/cv/main_example.tex @@ -3,12 +3,20 @@ %% Use as a master reference when tailoring role-specific CVs. %% %% SETUP: Run /setup to populate this with your actual information. -%% Compile with: pdflatex main_example.tex +%% Compile with: lualatex main_example.tex +%% (pdflatex often fails on modern MiKTeX with fontawesome5 font-expansion errors.) \documentclass[11pt,a4paper,sans]{moderncv} \moderncvstyle{banking} \moderncvcolor{blue} +% Force both first and last name AND section headings to render in moderncv +% blue (color1). Default banking on lualatex+MiKTeX leaves these black, which +% looks inconsistent with the rest of the blue accent scheme. +\renewcommand*{\firstnamestyle}[1]{{\fontsize{34}{36}\bfseries\upshape\color{color1}#1}} +\renewcommand*{\lastnamestyle}[1]{{\fontsize{34}{36}\bfseries\upshape\color{color1}#1}} +\renewcommand*{\sectionstyle}[1]{{\sectionfont\color{color1}#1}} + \usepackage[utf8]{inputenc} \usepackage{hyperref} \hypersetup{ @@ -49,16 +57,12 @@ \begin{itemize} \item \textbf{[Skill Category 1]}: [Specific skills, frameworks, tools. Be concrete.] -\vspace{1pt} \item \textbf{[Skill Category 2]}: [Specific skills, frameworks, tools.] -\vspace{1pt} \item \textbf{[Skill Category 3]}: [Specific skills, frameworks, tools.] -\vspace{1pt} \item \textbf{[Skill Category 4]}: [Domain expertise, methods, approaches.] -\vspace{1pt} \item \textbf{[Skill Category 5]}: [Tools, platforms, software.] @@ -76,11 +80,8 @@ \item{\cventry{[YYYY--Present]}{[Job Title]}{[Company]}{[City, Country]}{}{\vspace{1pt} \begin{itemize} \item [Achievement or responsibility 1 - be specific, use numbers where possible] - \vspace{1pt} \item [Achievement or responsibility 2] - \vspace{1pt} \item [Achievement or responsibility 3] - \vspace{1pt} \item [Achievement or responsibility 4] \end{itemize}}} @@ -90,9 +91,7 @@ \item{\cventry{[YYYY--YYYY]}{[Job Title]}{[Company]}{[City, Country]}{}{\vspace{1pt} \begin{itemize} \item [Achievement or responsibility 1] - \vspace{1pt} \item [Achievement or responsibility 2] - \vspace{1pt} \item [Achievement or responsibility 3] \end{itemize}}} @@ -102,7 +101,6 @@ \item{\cventry{[YYYY--YYYY]}{[Job Title]}{[Company]}{[City, Country]}{}{\vspace{1pt} \begin{itemize} \item [Achievement or responsibility 1] - \vspace{1pt} \item [Achievement or responsibility 2] \end{itemize}}} From 465c429f945e7b8cf9739a1f8dba0b4b6f24f72c Mon Sep 17 00:00:00 2001 From: Mads Lorentzen Date: Tue, 28 Apr 2026 21:03:02 +0200 Subject: [PATCH 2/3] docs(skill): document moderncv color overrides and itemize spacing rule Two additions to 05-cv-templates.md so the /apply workflow follows the same patterns as cv/main_example.tex: 1. Add the three \renewcommand* lines to the documented preamble so downstream CVs inherit the color1 overrides for firstname, lastname, and section headings. Includes a short paragraph explaining the reason and a note for users who prefer regular-weight firstname. 2. Add a "Spacing inside itemize lists" subsection that calls out the inter-item \vspace anti-pattern with a wrong/right example and explicitly preserves the two related patterns that DO render fine (post-section spacer, inter-cventry \vspace{3pt}). Co-Authored-By: Claude Opus 4.7 (1M context) --- .../05-cv-templates.md | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/.claude/skills/job-application-assistant/05-cv-templates.md b/.claude/skills/job-application-assistant/05-cv-templates.md index 090a34e..a911a6d 100644 --- a/.claude/skills/job-application-assistant/05-cv-templates.md +++ b/.claude/skills/job-application-assistant/05-cv-templates.md @@ -25,6 +25,13 @@ Expected output: `Output written on main_.pdf (2 pages, ...)`. Any page \moderncvstyle{banking} \moderncvcolor{blue} +% Force both first and last name AND section headings to render in moderncv +% blue (color1). Default banking on lualatex+MiKTeX leaves these black, which +% looks inconsistent with the rest of the blue accent scheme. +\renewcommand*{\firstnamestyle}[1]{{\fontsize{34}{36}\bfseries\upshape\color{color1}#1}} +\renewcommand*{\lastnamestyle}[1]{{\fontsize{34}{36}\bfseries\upshape\color{color1}#1}} +\renewcommand*{\sectionstyle}[1]{{\sectionfont\color{color1}#1}} + \usepackage[utf8]{inputenc} \usepackage{hyperref} \hypersetup{ @@ -59,6 +66,36 @@ Expected output: `Output written on main_.pdf (2 pages, ...)`. Any page \end{document} ``` +### Color overrides + +The three `\renewcommand*` lines in the preamble are required on lualatex+MiKTeX. Without them the firstname, lastname, and section headings render in black even though `\moderncvcolor{blue}` is set, which looks inconsistent with the rest of the blue accent scheme (links, bullet markers, contact icons). The override forces all three to use `color1` (moderncv's accent colour, which becomes blue under `\moderncvcolor{blue}`). Both names render bold; if you prefer the firstname in regular weight, change the firstnamestyle override from `\bfseries` to `\mdseries`. Don't drop the override - on most modern installs the defaults render visibly wrong. + +### Spacing inside itemize lists (important) + +**Do not place `\vspace{...}` between `\item` entries in an `itemize` list.** Even though the source looks symmetric, this pattern occasionally produces a noticeably oversized gap before a single item: the inter-item `\vspace` creates a paragraph break that interacts unpredictably with the list's internal `\itemsep`, so LaTeX renders one of the gaps wider than the rest. Remove the inter-item `\vspace` and let `itemize` use its native uniform spacing. + +```latex +% WRONG - intermittently produces an oversized gap before one bullet +\begin{itemize} +\item \textbf{Foo}: ... +\vspace{1pt} +\item \textbf{Bar}: ... +\vspace{1pt} +\item \textbf{Baz}: ... +\end{itemize} + +% RIGHT - uniform spacing using the list's native itemsep +\begin{itemize} +\item \textbf{Foo}: ... +\item \textbf{Bar}: ... +\item \textbf{Baz}: ... +\end{itemize} +``` + +Two related patterns are fine and should be kept: +- `\vspace{1pt}` immediately after `\section{...}` (between section heading and first item) - this is between the heading and the list, not between list items. +- `\vspace{3pt}` between top-level `\cventry` blocks in Professional Experience or Education - this gives breathing room between roles and renders consistently. + ## Section-by-Section Tailoring ### Profile Statement / Elevator Pitch (Best Practice) From 83ca0a855721f20127049b276d2b3fef5d988abe Mon Sep 17 00:00:00 2001 From: Mads Lorentzen Date: Tue, 28 Apr 2026 21:03:20 +0200 Subject: [PATCH 3/3] docs(setup): fix stale pdflatex references to lualatex Two stragglers in SETUP.md still recommended pdflatex even though the README, CLAUDE.md, and 05-cv-templates.md all correctly say lualatex. The compile snippet in section 7 used pdflatex, and the troubleshooting section described the CV compile as "standard LaTeX." Both updated to match the rest of the documentation. Co-Authored-By: Claude Opus 4.7 (1M context) --- SETUP.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SETUP.md b/SETUP.md index 029e0eb..0421164 100644 --- a/SETUP.md +++ b/SETUP.md @@ -143,7 +143,7 @@ After `/apply` creates the LaTeX files: ```bash # Compile CV -cd cv && pdflatex main_.tex && cd .. +cd cv && lualatex main_.tex && cd .. # Compile cover letter cd cover_letters && xelatex cover__.tex && cd .. @@ -158,7 +158,7 @@ This is expected if you haven't set up salary benchmarking. The `/apply` workflo Make sure Bun is installed and you ran `bun install` in each CLI directory. The tools require network access to fetch job listings. ### LaTeX compilation errors -- CV: uses `pdflatex` (standard LaTeX) +- CV: uses `lualatex` (pdflatex often fails on modern MiKTeX with `fontawesome5` font-expansion errors; lualatex handles the same sources cleanly) - Cover letter: uses `xelatex` (for custom fonts in `OpenFonts/fonts/`) - Make sure your LaTeX distribution includes the `moderncv` package