Overleaf CV — linked-files setup

This is the one-time configuration that wires your Overleaf CV to fetch cv-pubs-*.tex from jamestompkin.com, so the publication sections become a thin view over _data/pubs.json instead of being hand-maintained.

Safety: this guide never instructs you to delete or overwrite your existing CV files. The procedure renames originals to _BACKUP first, then adds linked files at the original paths. If anything looks wrong, you can rename _BACKUP files back and Overleaf will use them again.

Step 1 — preamble additions (one-time)

In cv.tex, in the preamble (near the other \usepackage lines), add:

\usepackage{fontawesome5}
\usepackage{academicons}

% Icon-rendered link helpers, used by the auto-generated
% cv-pubs-*.tex files. Re-style the visible label or icon by editing
% this single block — every \cvline picks up the change.
\newcommand{\arxivlink}[1]{\httpslink[\aiarxiv\,arXiv]{#1}}
\newcommand{\projectlink}[1]{\httpslink[\faGlobe]{#1}}
\newcommand{\doilink}[1]{\httpslink[\aidoi\,doi]{#1}}
\newcommand{\githublink}[1]{\httpslink[\faGithub]{#1}}

Both packages ship with Overleaf’s preinstalled TeX distribution; no extra setup needed.

Recompile once to verify the preamble doesn’t error. Without the linked files yet, your CV still uses the hand-edited publications_*.tex files; the only visible change should be: nothing (the new macros aren’t called by anything yet).

Step 2 — back up the existing publication files

In Overleaf’s file tree (left sidebar), for each of:

  • tex/publications_conference.tex
  • tex/publications_journal.tex
  • tex/publications_workshop.tex
  • tex/publications_books_bookchapters.tex
  • tex/publications_preprints_insubmission.tex

right-click and choose Rename. Add _BACKUP before the .tex:

Original Backup
tex/publications_conference.tex tex/publications_conference_BACKUP.tex
tex/publications_journal.tex tex/publications_journal_BACKUP.tex
tex/publications_workshop.tex tex/publications_workshop_BACKUP.tex
tex/publications_books_bookchapters.tex tex/publications_books_bookchapters_BACKUP.tex
tex/publications_preprints_insubmission.tex tex/publications_preprints_insubmission_BACKUP.tex

cv.tex still \input{tex/publications_*} (without _BACKUP), so after the renames the build will fail to find those files. Don’t compile yet — proceed to Step 3.

Step 3 — add linked files at the original paths

In Overleaf’s file tree, click the upload icon (or + → New File menu, depending on Overleaf UI version) and choose From external URL. For each pub-section file, add:

Source URL Destination path
https://jamestompkin.com/cv-pubs-conference.tex tex/publications_conference.tex
https://jamestompkin.com/cv-pubs-journal.tex tex/publications_journal.tex
https://jamestompkin.com/cv-pubs-workshop.tex tex/publications_workshop.tex
https://jamestompkin.com/cv-pubs-books-bookchapters.tex tex/publications_books_bookchapters.tex
https://jamestompkin.com/cv-pubs-preprints-insubmission.tex tex/publications_preprints_insubmission.tex

After adding, each file gets a small link icon next to its name in the file tree.

Step 4 — first compile

Click Recompile. If everything works:

  • Each linked file fetches its current content from jamestompkin.com
  • LaTeX compiles using the new auto-generated files
  • The PDF shows the same publication sections, but with compact icon links instead of full URLs

Spot-check the PDF against your last known-good CV PDF (cv.pdf from before the change). Things to verify:

  • All sections present (Conferences, Journals, Workshops, Books, Preprints).
  • Author commands render correctly (small-caps for PhDs, etc.).
  • Multi-stage students render with the right role command (Aaron Gokaslan as ugrad / MSc / PhD per pub).
  • Icon links render as icons + short label, not as boxes (if you see unfilled boxes, the fontawesome5 / academicons fonts may not have loaded — recompile, or try pdfLaTeX engine if you were on LuaLaTeX or vice-versa).
  • Book chapter renders with \emph{book title}, Publisher, ISBN ... format.

If anything looks wrong, rename the _BACKUP files back to their original paths and the build returns to the previous state. The linked files remain in the project; you can delete them later.

Step 5 — refresh policy

By default a linked file in Overleaf does NOT auto-refresh on compile. To pull the latest from jamestompkin.com, click the file in the tree and hit the Refresh button.

To make it automatic, in the linked file’s settings (the small gear or menu next to the file in the tree), enable Refresh on every compile. This adds a small delay to each compile but means your CV is always up-to-date with pubs.json.

If you’re not sure which way you want yet, keep manual refresh. You can always switch to auto later. For “I just merged a pub edit to GitHub, recompile and pick it up” the manual button is one click.

Step 6 — once you’re confident

After a few weeks of the linked-files setup working without issues, delete the _BACKUP files. Or keep them around forever — they’re small and harmless.

What changes downstream

Every push to _data/pubs.json triggers the GitHub Actions workflow, which:

  1. Runs scripts/gen_bib.py and scripts/gen_cv_pubs.py.
  2. Builds the Jekyll site (which includes the generated .tex files as static assets).
  3. Deploys to https://jamestompkin.com/.

So the loop is:

Edit _data/pubs.json -> git push -> GH Action regenerates .tex files
  -> https://jamestompkin.com/cv-pubs-*.tex updated
  -> Overleaf "Refresh" (or auto-refresh on compile)
  -> CV PDF rebuilds with the change

Recovery

If at any point the build breaks or the PDF looks wrong:

  1. Rename tex/publications_*_BACKUP.tex back to tex/publications_*.tex (overwrites the linked file’s local copy).
  2. Recompile — back to your last hand-edited state.
  3. Open an issue or message me and we’ll debug what the generator got wrong.