Latest commit

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Make an academic CV using LaTeX and Biber with LaTeX + Biber. Rather than adding new publications, working papers, or presentations by hand over time, store your work products in a .bib file---just as you would a bibliography of references for a paper---and compile your CV to update.

Through selective use of the Keywords field in your .bib file (e.g., article, presentation, working, submitted) and corresponding reference sections in your .tex file, automagically compile and update your CV in a consistent manner.

Example setup

Using an entry in the .bib file that looks like this:

# cv.bib @article{me2016paper_one,
Author = {Last, First M.},
Journal = {Journal of Academic Studies and Work},
Keywords = {article}, <!-- KEYWORD TO FILTER BY -->
Number = {2},
Pages = {30--45},
Title = {Paper one},
Url = {https://github.com/btskinner/tex_cv/blob/master/papers/last_paper_one.pdf},
Volume = {45},
Year = {2016}}

And a section in the .tex file that looks like this:

# cv.tex
\begin{refsection}
\section*{Publications}
\nocite{*} % cite everything
\printbibliography[heading = none, % no heading (e.g., "References")
keyword = article, % FILTER BY < article > KEYWORD
env = mybib] % Use mybib style
\end{refsection}

You can get an entry in the complied .pdf file that looks like this (note the link color: the title in the compiled CV links to the paper):

example

Feel free to use and modify this template to suit your needs and/or the norms of your field. Move sections around, add or delete them. Regardless of the specific style, hopefully the core setup will be useful and save you time as you update your CV in the future.

For reference, I don't edit my .bib by hand, but instead use BibDesk, which comes with the MacTeX distribution. JabRef is another one that works across platforms.

Features

  • Name is added to header of pages after the first along with the page number.
  • A footer with the date of the last compilation will let you and others know when it was last updated.
  • Citations are in reverse chronological order, including by month if included (e.g., October will be higher than May, even though it comes first alphabetically).
  • Citations convert links in Url field (and Doi and ISBN) to linked titles in citation. Put links to your publications or working papers here and anyone with a digital copy of your CV will be able to click on the title to access them.
  • Works can be limited to only recent publications, presentations, etc., using the \recentyear{} macro in the top of the file.
  • Non-automated sections use lists or tables to make clean layout.
  • Comments throughout cv.tex to help you know what to change in order to personalize.

Numbered entries

If you want numbered entries, you can switch to the numbered branch. The changes noted in issue 1 have been made to cv.tex in this branch. Just switch to the other branch first using:

git checkout numbered

Compile

Manually

Compile the example using the following commands in the terminal:

pdflatex cv.tex
biber cv
pdflatex cv.tex
pdflatex cv.tex

Makefile

You can also build this example CV using make.

make all

or simply

make

You can clean up the auxilary files made by pdflatex and biber using

make clean

To clean these files and delete the compiled pdf file, use

make cleanall

Integrate with GitHub pages

An added benefit of building your CV this way is that you can reuse your .bib file to build your academic website and keep everything in sync. For example, if you use GitHub Pages + Jekyll to build your site, you can use the jekyll-scholar extension to build a similar CV on your site (it's how I do it).

About

Build CV using TeX + Biber

Topics

Resources

Stars

15 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Make an academic CV using LaTeX and Biber with LaTeX + Biber. Rather than adding new publications, working papers, or presentations by hand over time, store your work products in a .bib file---just as you would a bibliography of references for a paper---and compile your CV to update.

Through selective use of the Keywords field in your .bib file (e.g., article, presentation, working, submitted) and corresponding reference sections in your .tex file, automagically compile and update your CV in a consistent manner.

Example setup

Using an entry in the .bib file that looks like this:

# cv.bib @article{me2016paper_one,
Author = {Last, First M.},
Journal = {Journal of Academic Studies and Work},
Keywords = {article}, <!-- KEYWORD TO FILTER BY -->
Number = {2},
Pages = {30--45},
Title = {Paper one},
Url = {https://github.com/btskinner/tex_cv/blob/master/papers/last_paper_one.pdf},
Volume = {45},
Year = {2016}}

And a section in the .tex file that looks like this:

# cv.tex
\begin{refsection}
\section*{Publications}
\nocite{*} % cite everything
\printbibliography[heading = none, % no heading (e.g., "References")
keyword = article, % FILTER BY < article > KEYWORD
env = mybib] % Use mybib style
\end{refsection}

You can get an entry in the complied .pdf file that looks like this (note the link color: the title in the compiled CV links to the paper):

example

Feel free to use and modify this template to suit your needs and/or the norms of your field. Move sections around, add or delete them. Regardless of the specific style, hopefully the core setup will be useful and save you time as you update your CV in the future.

For reference, I don't edit my .bib by hand, but instead use BibDesk, which comes with the MacTeX distribution. JabRef is another one that works across platforms.

Features

  • Name is added to header of pages after the first along with the page number.
  • A footer with the date of the last compilation will let you and others know when it was last updated.
  • Citations are in reverse chronological order, including by month if included (e.g., October will be higher than May, even though it comes first alphabetically).
  • Citations convert links in Url field (and Doi and ISBN) to linked titles in citation. Put links to your publications or working papers here and anyone with a digital copy of your CV will be able to click on the title to access them.
  • Works can be limited to only recent publications, presentations, etc., using the \recentyear{} macro in the top of the file.
  • Non-automated sections use lists or tables to make clean layout.
  • Comments throughout cv.tex to help you know what to change in order to personalize.

Numbered entries

If you want numbered entries, you can switch to the numbered branch. The changes noted in issue 1 have been made to cv.tex in this branch. Just switch to the other branch first using:

git checkout numbered

Compile

Manually

Compile the example using the following commands in the terminal:

pdflatex cv.tex
biber cv
pdflatex cv.tex
pdflatex cv.tex

Makefile

You can also build this example CV using make.

make all

or simply

make

You can clean up the auxilary files made by pdflatex and biber using

make clean

To clean these files and delete the compiled pdf file, use

make cleanall

Integrate with GitHub pages

An added benefit of building your CV this way is that you can reuse your .bib file to build your academic website and keep everything in sync. For example, if you use GitHub Pages + Jekyll to build your site, you can use the jekyll-scholar extension to build a similar CV on your site (it's how I do it).

About

Build CV using TeX + Biber

Topics

Resources

Stars

15 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Make an academic CV using LaTeX and Biber with LaTeX + Biber. Rather than adding new publications, working papers, or presentations by hand over time, store your work products in a .bib file---just as you would a bibliography of references for a paper---and compile your CV to update.

Through selective use of the Keywords field in your .bib file (e.g., article, presentation, working, submitted) and corresponding reference sections in your .tex file, automagically compile and update your CV in a consistent manner.

Example setup

Using an entry in the .bib file that looks like this:

# cv.bib @article{me2016paper_one,
Author = {Last, First M.},
Journal = {Journal of Academic Studies and Work},
Keywords = {article}, <!-- KEYWORD TO FILTER BY -->
Number = {2},
Pages = {30--45},
Title = {Paper one},
Url = {https://github.com/btskinner/tex_cv/blob/master/papers/last_paper_one.pdf},
Volume = {45},
Year = {2016}}

And a section in the .tex file that looks like this:

# cv.tex
\begin{refsection}
\section*{Publications}
\nocite{*} % cite everything
\printbibliography[heading = none, % no heading (e.g., "References")
keyword = article, % FILTER BY < article > KEYWORD
env = mybib] % Use mybib style
\end{refsection}

You can get an entry in the complied .pdf file that looks like this (note the link color: the title in the compiled CV links to the paper):

example

Feel free to use and modify this template to suit your needs and/or the norms of your field. Move sections around, add or delete them. Regardless of the specific style, hopefully the core setup will be useful and save you time as you update your CV in the future.

For reference, I don't edit my .bib by hand, but instead use BibDesk, which comes with the MacTeX distribution. JabRef is another one that works across platforms.

Features

  • Name is added to header of pages after the first along with the page number.
  • A footer with the date of the last compilation will let you and others know when it was last updated.
  • Citations are in reverse chronological order, including by month if included (e.g., October will be higher than May, even though it comes first alphabetically).
  • Citations convert links in Url field (and Doi and ISBN) to linked titles in citation. Put links to your publications or working papers here and anyone with a digital copy of your CV will be able to click on the title to access them.
  • Works can be limited to only recent publications, presentations, etc., using the \recentyear{} macro in the top of the file.
  • Non-automated sections use lists or tables to make clean layout.
  • Comments throughout cv.tex to help you know what to change in order to personalize.

Numbered entries

If you want numbered entries, you can switch to the numbered branch. The changes noted in issue 1 have been made to cv.tex in this branch. Just switch to the other branch first using:

git checkout numbered

Compile

Manually

Compile the example using the following commands in the terminal:

pdflatex cv.tex
biber cv
pdflatex cv.tex
pdflatex cv.tex

Makefile

You can also build this example CV using make.

make all

or simply

make

You can clean up the auxilary files made by pdflatex and biber using

make clean

To clean these files and delete the compiled pdf file, use

make cleanall

Integrate with GitHub pages

An added benefit of building your CV this way is that you can reuse your .bib file to build your academic website and keep everything in sync. For example, if you use GitHub Pages + Jekyll to build your site, you can use the jekyll-scholar extension to build a similar CV on your site (it's how I do it).

About

Build CV using TeX + Biber

Topics

Resources

Stars

15 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Make an academic CV using LaTeX and Biber with LaTeX + Biber. Rather than adding new publications, working papers, or presentations by hand over time, store your work products in a .bib file---just as you would a bibliography of references for a paper---and compile your CV to update.

Through selective use of the Keywords field in your .bib file (e.g., article, presentation, working, submitted) and corresponding reference sections in your .tex file, automagically compile and update your CV in a consistent manner.

Example setup

Using an entry in the .bib file that looks like this:

# cv.bib @article{me2016paper_one,
Author = {Last, First M.},
Journal = {Journal of Academic Studies and Work},
Keywords = {article}, <!-- KEYWORD TO FILTER BY -->
Number = {2},
Pages = {30--45},
Title = {Paper one},
Url = {https://github.com/btskinner/tex_cv/blob/master/papers/last_paper_one.pdf},
Volume = {45},
Year = {2016}}

And a section in the .tex file that looks like this:

# cv.tex
\begin{refsection}
\section*{Publications}
\nocite{*} % cite everything
\printbibliography[heading = none, % no heading (e.g., "References")
keyword = article, % FILTER BY < article > KEYWORD
env = mybib] % Use mybib style
\end{refsection}

You can get an entry in the complied .pdf file that looks like this (note the link color: the title in the compiled CV links to the paper):

example

Feel free to use and modify this template to suit your needs and/or the norms of your field. Move sections around, add or delete them. Regardless of the specific style, hopefully the core setup will be useful and save you time as you update your CV in the future.

For reference, I don't edit my .bib by hand, but instead use BibDesk, which comes with the MacTeX distribution. JabRef is another one that works across platforms.

Features

  • Name is added to header of pages after the first along with the page number.
  • A footer with the date of the last compilation will let you and others know when it was last updated.
  • Citations are in reverse chronological order, including by month if included (e.g., October will be higher than May, even though it comes first alphabetically).
  • Citations convert links in Url field (and Doi and ISBN) to linked titles in citation. Put links to your publications or working papers here and anyone with a digital copy of your CV will be able to click on the title to access them.
  • Works can be limited to only recent publications, presentations, etc., using the \recentyear{} macro in the top of the file.
  • Non-automated sections use lists or tables to make clean layout.
  • Comments throughout cv.tex to help you know what to change in order to personalize.

Numbered entries

If you want numbered entries, you can switch to the numbered branch. The changes noted in issue 1 have been made to cv.tex in this branch. Just switch to the other branch first using:

git checkout numbered

Compile

Manually

Compile the example using the following commands in the terminal:

pdflatex cv.tex
biber cv
pdflatex cv.tex
pdflatex cv.tex

Makefile

You can also build this example CV using make.

make all

or simply

make

You can clean up the auxilary files made by pdflatex and biber using

make clean

To clean these files and delete the compiled pdf file, use

make cleanall

Integrate with GitHub pages

An added benefit of building your CV this way is that you can reuse your .bib file to build your academic website and keep everything in sync. For example, if you use GitHub Pages + Jekyll to build your site, you can use the jekyll-scholar extension to build a similar CV on your site (it's how I do it).

About

Build CV using TeX + Biber

Topics

Resources

Stars

15 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Make an academic CV using LaTeX and Biber with LaTeX + Biber. Rather than adding new publications, working papers, or presentations by hand over time, store your work products in a .bib file---just as you would a bibliography of references for a paper---and compile your CV to update.

Through selective use of the Keywords field in your .bib file (e.g., article, presentation, working, submitted) and corresponding reference sections in your .tex file, automagically compile and update your CV in a consistent manner.

Example setup

Using an entry in the .bib file that looks like this:

# cv.bib @article{me2016paper_one,
Author = {Last, First M.},
Journal = {Journal of Academic Studies and Work},
Keywords = {article}, <!-- KEYWORD TO FILTER BY -->
Number = {2},
Pages = {30--45},
Title = {Paper one},
Url = {https://github.com/btskinner/tex_cv/blob/master/papers/last_paper_one.pdf},
Volume = {45},
Year = {2016}}

And a section in the .tex file that looks like this:

# cv.tex
\begin{refsection}
\section*{Publications}
\nocite{*} % cite everything
\printbibliography[heading = none, % no heading (e.g., "References")
keyword = article, % FILTER BY < article > KEYWORD
env = mybib] % Use mybib style
\end{refsection}

You can get an entry in the complied .pdf file that looks like this (note the link color: the title in the compiled CV links to the paper):

example

Feel free to use and modify this template to suit your needs and/or the norms of your field. Move sections around, add or delete them. Regardless of the specific style, hopefully the core setup will be useful and save you time as you update your CV in the future.

For reference, I don't edit my .bib by hand, but instead use BibDesk, which comes with the MacTeX distribution. JabRef is another one that works across platforms.

Features

  • Name is added to header of pages after the first along with the page number.
  • A footer with the date of the last compilation will let you and others know when it was last updated.
  • Citations are in reverse chronological order, including by month if included (e.g., October will be higher than May, even though it comes first alphabetically).
  • Citations convert links in Url field (and Doi and ISBN) to linked titles in citation. Put links to your publications or working papers here and anyone with a digital copy of your CV will be able to click on the title to access them.
  • Works can be limited to only recent publications, presentations, etc., using the \recentyear{} macro in the top of the file.
  • Non-automated sections use lists or tables to make clean layout.
  • Comments throughout cv.tex to help you know what to change in order to personalize.

Numbered entries

If you want numbered entries, you can switch to the numbered branch. The changes noted in issue 1 have been made to cv.tex in this branch. Just switch to the other branch first using:

git checkout numbered

Compile

Manually

Compile the example using the following commands in the terminal:

pdflatex cv.tex
biber cv
pdflatex cv.tex
pdflatex cv.tex

Makefile

You can also build this example CV using make.

make all

or simply

make

You can clean up the auxilary files made by pdflatex and biber using

make clean

To clean these files and delete the compiled pdf file, use

make cleanall

Integrate with GitHub pages

An added benefit of building your CV this way is that you can reuse your .bib file to build your academic website and keep everything in sync. For example, if you use GitHub Pages + Jekyll to build your site, you can use the jekyll-scholar extension to build a similar CV on your site (it's how I do it).

About

Build CV using TeX + Biber

Topics

Resources

Stars

15 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Make an academic CV using LaTeX and Biber with LaTeX + Biber. Rather than adding new publications, working papers, or presentations by hand over time, store your work products in a .bib file---just as you would a bibliography of references for a paper---and compile your CV to update.

Through selective use of the Keywords field in your .bib file (e.g., article, presentation, working, submitted) and corresponding reference sections in your .tex file, automagically compile and update your CV in a consistent manner.

Example setup

Using an entry in the .bib file that looks like this:

# cv.bib @article{me2016paper_one,
Author = {Last, First M.},
Journal = {Journal of Academic Studies and Work},
Keywords = {article}, <!-- KEYWORD TO FILTER BY -->
Number = {2},
Pages = {30--45},
Title = {Paper one},
Url = {https://github.com/btskinner/tex_cv/blob/master/papers/last_paper_one.pdf},
Volume = {45},
Year = {2016}}

And a section in the .tex file that looks like this:

# cv.tex
\begin{refsection}
\section*{Publications}
\nocite{*} % cite everything
\printbibliography[heading = none, % no heading (e.g., "References")
keyword = article, % FILTER BY < article > KEYWORD
env = mybib] % Use mybib style
\end{refsection}

You can get an entry in the complied .pdf file that looks like this (note the link color: the title in the compiled CV links to the paper):

example

Feel free to use and modify this template to suit your needs and/or the norms of your field. Move sections around, add or delete them. Regardless of the specific style, hopefully the core setup will be useful and save you time as you update your CV in the future.

For reference, I don't edit my .bib by hand, but instead use BibDesk, which comes with the MacTeX distribution. JabRef is another one that works across platforms.

Features

  • Name is added to header of pages after the first along with the page number.
  • A footer with the date of the last compilation will let you and others know when it was last updated.
  • Citations are in reverse chronological order, including by month if included (e.g., October will be higher than May, even though it comes first alphabetically).
  • Citations convert links in Url field (and Doi and ISBN) to linked titles in citation. Put links to your publications or working papers here and anyone with a digital copy of your CV will be able to click on the title to access them.
  • Works can be limited to only recent publications, presentations, etc., using the \recentyear{} macro in the top of the file.
  • Non-automated sections use lists or tables to make clean layout.
  • Comments throughout cv.tex to help you know what to change in order to personalize.

Numbered entries

If you want numbered entries, you can switch to the numbered branch. The changes noted in issue 1 have been made to cv.tex in this branch. Just switch to the other branch first using:

git checkout numbered

Compile

Manually

Compile the example using the following commands in the terminal:

pdflatex cv.tex
biber cv
pdflatex cv.tex
pdflatex cv.tex

Makefile

You can also build this example CV using make.

make all

or simply

make

You can clean up the auxilary files made by pdflatex and biber using

make clean

To clean these files and delete the compiled pdf file, use

make cleanall

Integrate with GitHub pages

An added benefit of building your CV this way is that you can reuse your .bib file to build your academic website and keep everything in sync. For example, if you use GitHub Pages + Jekyll to build your site, you can use the jekyll-scholar extension to build a similar CV on your site (it's how I do it).

About

Build CV using TeX + Biber

Topics

Resources

Stars

15 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Make an academic CV using LaTeX and Biber with LaTeX + Biber. Rather than adding new publications, working papers, or presentations by hand over time, store your work products in a .bib file---just as you would a bibliography of references for a paper---and compile your CV to update.

Through selective use of the Keywords field in your .bib file (e.g., article, presentation, working, submitted) and corresponding reference sections in your .tex file, automagically compile and update your CV in a consistent manner.

Example setup

Using an entry in the .bib file that looks like this:

# cv.bib @article{me2016paper_one,
Author = {Last, First M.},
Journal = {Journal of Academic Studies and Work},
Keywords = {article}, <!-- KEYWORD TO FILTER BY -->
Number = {2},
Pages = {30--45},
Title = {Paper one},
Url = {https://github.com/btskinner/tex_cv/blob/master/papers/last_paper_one.pdf},
Volume = {45},
Year = {2016}}

And a section in the .tex file that looks like this:

# cv.tex
\begin{refsection}
\section*{Publications}
\nocite{*} % cite everything
\printbibliography[heading = none, % no heading (e.g., "References")
keyword = article, % FILTER BY < article > KEYWORD
env = mybib] % Use mybib style
\end{refsection}

You can get an entry in the complied .pdf file that looks like this (note the link color: the title in the compiled CV links to the paper):

example

Feel free to use and modify this template to suit your needs and/or the norms of your field. Move sections around, add or delete them. Regardless of the specific style, hopefully the core setup will be useful and save you time as you update your CV in the future.

For reference, I don't edit my .bib by hand, but instead use BibDesk, which comes with the MacTeX distribution. JabRef is another one that works across platforms.

Features

  • Name is added to header of pages after the first along with the page number.
  • A footer with the date of the last compilation will let you and others know when it was last updated.
  • Citations are in reverse chronological order, including by month if included (e.g., October will be higher than May, even though it comes first alphabetically).
  • Citations convert links in Url field (and Doi and ISBN) to linked titles in citation. Put links to your publications or working papers here and anyone with a digital copy of your CV will be able to click on the title to access them.
  • Works can be limited to only recent publications, presentations, etc., using the \recentyear{} macro in the top of the file.
  • Non-automated sections use lists or tables to make clean layout.
  • Comments throughout cv.tex to help you know what to change in order to personalize.

Numbered entries

If you want numbered entries, you can switch to the numbered branch. The changes noted in issue 1 have been made to cv.tex in this branch. Just switch to the other branch first using:

git checkout numbered

Compile

Manually

Compile the example using the following commands in the terminal:

pdflatex cv.tex
biber cv
pdflatex cv.tex
pdflatex cv.tex

Makefile

You can also build this example CV using make.

make all

or simply

make

You can clean up the auxilary files made by pdflatex and biber using

make clean

To clean these files and delete the compiled pdf file, use

make cleanall

Integrate with GitHub pages

An added benefit of building your CV this way is that you can reuse your .bib file to build your academic website and keep everything in sync. For example, if you use GitHub Pages + Jekyll to build your site, you can use the jekyll-scholar extension to build a similar CV on your site (it's how I do it).

About

Build CV using TeX + Biber

Topics

Resources

Stars

15 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Make an academic CV using LaTeX and Biber with LaTeX + Biber. Rather than adding new publications, working papers, or presentations by hand over time, store your work products in a .bib file---just as you would a bibliography of references for a paper---and compile your CV to update.

Through selective use of the Keywords field in your .bib file (e.g., article, presentation, working, submitted) and corresponding reference sections in your .tex file, automagically compile and update your CV in a consistent manner.

Example setup

Using an entry in the .bib file that looks like this:

# cv.bib @article{me2016paper_one,
Author = {Last, First M.},
Journal = {Journal of Academic Studies and Work},
Keywords = {article}, <!-- KEYWORD TO FILTER BY -->
Number = {2},
Pages = {30--45},
Title = {Paper one},
Url = {https://github.com/btskinner/tex_cv/blob/master/papers/last_paper_one.pdf},
Volume = {45},
Year = {2016}}

And a section in the .tex file that looks like this:

# cv.tex
\begin{refsection}
\section*{Publications}
\nocite{*} % cite everything
\printbibliography[heading = none, % no heading (e.g., "References")
keyword = article, % FILTER BY < article > KEYWORD
env = mybib] % Use mybib style
\end{refsection}

You can get an entry in the complied .pdf file that looks like this (note the link color: the title in the compiled CV links to the paper):

example

Feel free to use and modify this template to suit your needs and/or the norms of your field. Move sections around, add or delete them. Regardless of the specific style, hopefully the core setup will be useful and save you time as you update your CV in the future.

For reference, I don't edit my .bib by hand, but instead use BibDesk, which comes with the MacTeX distribution. JabRef is another one that works across platforms.

Features

  • Name is added to header of pages after the first along with the page number.
  • A footer with the date of the last compilation will let you and others know when it was last updated.
  • Citations are in reverse chronological order, including by month if included (e.g., October will be higher than May, even though it comes first alphabetically).
  • Citations convert links in Url field (and Doi and ISBN) to linked titles in citation. Put links to your publications or working papers here and anyone with a digital copy of your CV will be able to click on the title to access them.
  • Works can be limited to only recent publications, presentations, etc., using the \recentyear{} macro in the top of the file.
  • Non-automated sections use lists or tables to make clean layout.
  • Comments throughout cv.tex to help you know what to change in order to personalize.

Numbered entries

If you want numbered entries, you can switch to the numbered branch. The changes noted in issue 1 have been made to cv.tex in this branch. Just switch to the other branch first using:

git checkout numbered

Compile

Manually

Compile the example using the following commands in the terminal:

pdflatex cv.tex
biber cv
pdflatex cv.tex
pdflatex cv.tex

Makefile

You can also build this example CV using make.

make all

or simply

make

You can clean up the auxilary files made by pdflatex and biber using

make clean

To clean these files and delete the compiled pdf file, use

make cleanall

Integrate with GitHub pages

An added benefit of building your CV this way is that you can reuse your .bib file to build your academic website and keep everything in sync. For example, if you use GitHub Pages + Jekyll to build your site, you can use the jekyll-scholar extension to build a similar CV on your site (it's how I do it).

About

Build CV using TeX + Biber

Topics

Resources

Stars

15 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages