From 67c15a831b5b776d5d0eb5739dfed0c7889b1e9b Mon Sep 17 00:00:00 2001 From: Amin Khan Date: Sun, 20 Feb 2022 09:02:18 +0000 Subject: [PATCH] List of Publications using BibTeX source - Generate publications section by running biber with xelatex - Add bibliography support in cls file - Add sample bib and tex files --- .gitignore | 5 ++ README.md | 17 ++++ awesome-cv.cls | 149 +++++++++++++++++++++++++++++++++++ examples/cv.tex | 7 ++ examples/cv/publications.tex | 35 ++++++++ examples/cv/references.bib | 3 + 6 files changed, 216 insertions(+) create mode 100644 examples/cv/publications.tex create mode 100644 examples/cv/references.bib diff --git a/.gitignore b/.gitignore index 38e66a8..4d8d416 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,11 @@ *.out *.toc +## BibLaTeX auxiliary files: +*.bbl +*.bcf +*.blg + ## Intermediate documents: *.dvi *-converted-to.* diff --git a/README.md b/README.md index 03d95e9..30d1bff 100644 --- a/README.md +++ b/README.md @@ -99,6 +99,23 @@ $ docker run --rm --user $(id -u):$(id -g) -i -w "/doc" -v "$PWD":/doc thomaswei In either case, this should result in the creation of ``{your-cv}.pdf`` +##### List of Publications + +You can generate list of publication from [**BibTeX**](http://www.bibtex.org/) source files. +[**BibLaTeX**](https://www.ctan.org/pkg/biblatex) and [**biber**](https://www.ctan.org/pkg/biber) should be available. + +To include your publications, add the entries to [`examples/cv/references.bib`](examples/cv/references.bib), +and cite them in [`examples/cv/publications.tex`](examples/cv/publications.tex). +Update the sections in [`examples/cv.tex`](examples/cv.tex) to include the publications. + +To generate document with the list of publications, at a command prompt, run + +```bash +$ xelatex {your-cv}.tex +$ biber {your-cv} +$ xelatex {your-cv}.tex +``` + ## Credit diff --git a/awesome-cv.cls b/awesome-cv.cls index 4d240e5..689964e 100644 --- a/awesome-cv.cls +++ b/awesome-cv.cls @@ -792,3 +792,152 @@ \letterenclosurestyle{\@letterenclname: \@letterenclosure} \\ } } + +%------------------------------------------------------------------------------- +% Bibliography +%------------------------------------------------------------------------------- +%\RequirePackage[style=verbose, maxnames=99, sorting=ydnt]{biblatex} +\RequirePackage[ % BibLaTeX + sorting=ydnt, % Sorts entries by year (descending order), name, title + style=verbose, + doi=false, + isbn=true, + url=false, + eprint=false, + backref = false, % include back references in bibliography + maxcitenames=3, % affects only the citations in the document body + maxbibnames=99, % affects only the bibliography, pass 99 to print all + hyperref=true, + block=none, + backend=biber % {Options: bibtex, biber} + ]{biblatex} + +% Avoid splitting entries across page break (only for 3 or fewer lines) +% Tip: http://tex.stackexchange.com/a/51261 +\AtBeginEnvironment{thebibliography}{% + \clubpenalty10000 + \@clubpenalty \clubpenalty + \widowpenalty10000 + \interlinepenalty5000} + +% Customized format, based on the Fancy CV template created by Adrien Friggeri +% See https://github.com/ashee/cv (MIT license) +\DeclareFieldFormat[article]{title}{#1\par} +\DeclareFieldFormat[inproceedings]{title}{#1\par} +\DeclareFieldFormat[misc]{title}{#1\par} +\DeclareFieldFormat[report]{title}{#1\par} +\DeclareFieldFormat[incollection]{title}{#1\par} + +\DeclareBibliographyDriver{article}{% + \fontsize{9pt}{1em}\bodyfont% + \printfield{title}% + \newblock% + \printnames{author}% + \par% + \newblock% + {% + \fontsize{8pt}{1em}\bodyfontlight\color{graytext}% + \usebibmacro{journal+issuetitle}% + \setunit{\space}% + \printfield{pages}% + \newunit% + \printlist{publisher}% + \setunit*{\addcomma\space}% + \printfield{year}% + \newunit% + } + \par\vspace{0.3\baselineskip} +} + +\DeclareBibliographyDriver{inproceedings}{% + \fontsize{9pt}{1em}\bodyfont% + \printfield{title}% + \newblock% + \printnames{author}% + \par% + \newblock% + {% + \fontsize{8pt}{1em}\bodyfontlight\color{graytext}% + \printfield{booktitle}% + \setunit{\addcomma\space}% + \printfield{year}% + \setunit{\addcomma\space}% + \printlist{location}% + \newunit% + } + \par\vspace{0.3\baselineskip} +} + +\DeclareBibliographyDriver{incollection}{% + \fontsize{9pt}{1em}\bodyfont% + \printfield{title}% + \newblock% + \printnames{author}% + \par% + \newblock% + {% + \fontsize{8pt}{1em}\bodyfontlight\color{graytext}% + \printfield{booktitle}% + \setunit{\addcomma\space}% + \printfield{year}% + \setunit{\addcomma\space}% + \printlist{location}% + \newunit% + } + \par\vspace{0.3\baselineskip} +} + +\DeclareBibliographyDriver{misc}{% + \fontsize{9pt}{1em}\bodyfont% + \printfield{title}% + \newblock% + \printnames{author}% + \par% + \newblock% + {% + \fontsize{8pt}{1em}\bodyfontlight\color{graytext}% + \printfield{booktitle}% + \setunit*{\addcomma\space}% + \printfield{note}% + \setunit*{\addcomma\space}% + \printfield{year}% + \setunit{\addcomma\space}% + \printlist{location}% + \newunit% + } + \par\vspace{0.3\baselineskip} +} + +\DeclareBibliographyDriver{report}{% + \fontsize{9pt}{1em}\bodyfont% + \printfield{title}% + \newblock% + \printnames{author}% + \par% + \newblock% + {% + \fontsize{8pt}{1em}\bodyfontlight\color{graytext}% + \printfield{type}% + \setunit{\space}% + \printfield{number}% + \setunit{\addcomma\space}% + \printfield{year}% + \newunit% + } + \par\vspace{0.3\baselineskip} +} + +% New syntax for flexible backend (BibLaTeX > v3.3) +\DeclareNameFormat{author}{% + \fontsize{9pt}{1em}\bodyfont% + \renewcommand*{\multinamedelim}{\addcomma\addspace}% + \nameparts{#1}% + \ifthenelse{\value{listcount}=1} + {\ifblank{\namepartgiven}{}{\namepartgiven\space}% + \namepartfamily}% + {\ifblank{\namepartgiven}{}{\namepartgiven\space}% + \namepartfamily}% + \ifthenelse{\value{listcount}<\value{liststop}} + {\addcomma\space} + {} +} diff --git a/examples/cv.tex b/examples/cv.tex index d049639..27862c4 100644 --- a/examples/cv.tex +++ b/examples/cv.tex @@ -78,6 +78,11 @@ \quote{``Be the change that you want to see in the world."} +%------------------------------------------------------------------------------- +% BIBLIOGRAPHY +%------------------------------------------------------------------------------- +\addbibresource{biblatex-examples.bib} +\addbibresource{cv/references.bib} %------------------------------------------------------------------------------- \begin{document} @@ -105,6 +110,8 @@ \input{cv/honors.tex} \input{cv/presentation.tex} \input{cv/writing.tex} +% For publications from bibtex, add to cv/references.bib and uncomment below +% \input{cv/publications.tex} \input{cv/committees.tex} diff --git a/examples/cv/publications.tex b/examples/cv/publications.tex new file mode 100644 index 0000000..a697d65 --- /dev/null +++ b/examples/cv/publications.tex @@ -0,0 +1,35 @@ +%------------------------------------------------------------------------------- +% SECTION TITLE +%------------------------------------------------------------------------------- +\cvsection{Publications} + +%------------------------------------------------------------------------------- +% SUBSECTION TITLE +%------------------------------------------------------------------------------- +\cvsubsection{Journal Articles} + +\begin{refsection} + \nocite{gillies} + \nocite{glashow} + \nocite{herrmann} + + \printbibliography[ + heading=none, + sorting=ydnt + ] +\end{refsection} + +%------------------------------------------------------------------------------- +% SUBSECTION TITLE +%------------------------------------------------------------------------------- +\cvsubsection{Conference Proceedings} + +\begin{refsection} + \nocite{salam} + \nocite{moraux} + + \printbibliography[ + heading=none, + sorting=ydnt + ] +\end{refsection} diff --git a/examples/cv/references.bib b/examples/cv/references.bib new file mode 100644 index 0000000..bac04d5 --- /dev/null +++ b/examples/cv/references.bib @@ -0,0 +1,3 @@ +%------------------------------------------------------------------------------- +% REPLACE WITH YOUR PUBLICATIONS +%-------------------------------------------------------------------------------