Here is a proof of concept (no support for the optional argument, and something similar is needed for \citep
and other cite commands), and also it assumes that the .bst
style use "et al" for references for more that a single author.
The idea is to create something similar to \ifciteseen
in biblatex
. Thus we can create a list of references already cited in the document (and we exploit the list facilities of etoolbox
). Then, if the reference has not been used before we use \citet*
, and we add the key to the list of seen references. Otherwise, we use \citet
.
\documentclass{article}
\usepackage{etoolbox}
\usepackage{natbib}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{test1,
author = {Author, A. and Buthor, B and Cuthor, C and Duthor, D},
title = {Title},
journal = {Journal},
year = 2013
}
@article{test2,
author = {Author, A. and Buthor, B and Cuthor, C and Duthor, D},
title = {Title},
journal = {Journal},
year = 2012
}
\end{filecontents}
\newcommand{\citelist}{}
\newcounter{currentcite}
\newcounter{currentcitetotal}
\newcommand{\mycite}[1]{
\setcounter{currentcitetotal}{0}
\renewcommand{\do}[1]{\addtocounter{currentcitetotal}{1}}
\docsvlist{#1}
\renewcommand{\do}[1]{%
\addtocounter{currentcite}{1}%
\ifinlist{##1}{\citelist}
{\citet{##1}}
{\citet*{##1}\listadd{\citelist}{##1}}%
\ifnumcomp{\value{currentcitetotal}}{>}{\value{currentcite}}
{, }
{}%
}
\docsvlist{#1}
}
\begin{document}
\mycite{test1,test2}
\mycite{test1}
\mycite{test2}
\bibliographystyle{plainnat}
\bibliography{\jobname}
\end{document}

This uses a modified version of friggeri-cv.cls
. Open the file, go to the Bibliography part and add the option backend=biber
to the biblatex
package option.
Then, comment out the part where the command \printbibsection
is being defined. Below the sorting scheme definition add
\newcommand*{\makebibcategory}[2]{\DeclareBibliographyCategory{#1}\defbibheading{#1}[#2]{\subsection*{#2}}}
\makebibcategory{books}{Books}
\makebibcategory{papers}{Refereed research papers}
\makebibcategory{chapters}{Book chapters}
\makebibcategory{conferences}{Papers in conference proceedings}
\makebibcategory{techreports}{Unpublished working papers}
\makebibcategory{bookreviews}{Book reviews}
\makebibcategory{editorials}{Editorials}
\makebibcategory{phd}{PhD thesis}
\makebibcategory{subpapers}{Submitted papers}
\makebibcategory{curpapers}{Current projects}
\newcommand*{\printbib}[1]{\printbibliography[sorting=chronological,category=#1,heading=#1]}
By the way, I changed the \def
s to \newcommands
, because of this tip.
Then, in the preamble of your actual CV file (I again based it on Friggeri's template), just add the command \addbibresource{example.bib}
to add your .bib
file (this command replaces the \bibliography
command in recent versions of biblatex
).
Under the section Publications, take out everything and add
\nocite{*}
\addtocategory{books}{Griebel.etal-Numericalsimulationin1998}
\addtocategory{papers}{Akervik.etal-Globaltwo-dimensionalstability2008}
\addtocategory{chapters}{Grisvard-Ellipticproblemsin1985}
\addtocategory{conferences}{Rham.Albone-EvolutionaryFarField1196}
\addtocategory{techreports}{Abdulrahim.Cocquyt-Developmentofmission-capable2000,Adoua.etal-Reversaloflift2009}
\addtocategory{bookreviews}{Skalak.Kucera-notecouplingof2004}
\addtocategory{editorials}{Sverak-LandausSolutionsNavier2011}
\addtocategory{phd}{Grote-Nonreflectingboundaryconditions1995}
\addtocategory{subpapers}{Sohr-specialclassof1999}
\addtocategory{curpapers}{BVPswithsingularitiesinphasevariables}
\printbib{books}
\printbib{papers}
\printbib{chapters}
\printbib{conferences}
\printbib{techreports}
\printbib{bookreviews}
\printbib{editorials}
Of course, you'll want to adapt your keys to what makes sense in your case. This patchwork of Friggeri's and your own propositions seems to work decently over on my side. Tell me how it works.
Best Answer
In the
@misc
type all fields are optional. Use a suitablekey
field.