Overleaf CV — linked-files setup
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.textex/publications_journal.textex/publications_workshop.textex/publications_books_bookchapters.textex/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
pdfLaTeXengine if you were onLuaLaTeXor 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:
- Runs
scripts/gen_bib.pyandscripts/gen_cv_pubs.py. - Builds the Jekyll site (which includes the generated
.texfiles as static assets). - 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:
- Rename
tex/publications_*_BACKUP.texback totex/publications_*.tex(overwrites the linked file’s local copy). - Recompile — back to your last hand-edited state.
- Open an issue or message me and we’ll debug what the generator got wrong.