My idea is to get the same output as in this previous post but with a different approach as the previous has some limitations.

So the goal is to have the first reference of each year in my bibliography showing the correspondent year on the left, as it was a normal cventry.

enter image description here

The problem is I have multiple bibliographies and I use multibib with \newcites so I can have different headings in each one of them (ex, "oral presentations", "poster presentations", etc). But because the previous approach removes the thebibliography environment I loss the heading information as well.

I know that I could just simply insert a new heading manually but I would prefer a different solution (more automatic lets say).

The previous post (one of the answers) suggested this code "If you want each year to appear only for the first paper of that year"

STRINGS {oldyear}

FUNCTION {year.or.none}
{ 's :=
    oldyear empty$
     { s 'oldyear := s }
     { s oldyear =
         { "" }
         { s 'oldyear := s }

I was wondering if one could use the year.or.none function and biblabel together and display the year (or none) in the following code line:



Here is a mock-up of what I want to achieve: enter image description here

Please let me know if you need the code I am using. Note that the years shown were added manually on Photoshop.


The .bst file I used can be found here. I have made some modifications to achieve the final style I wanted. Below is a link to the actual bibliography style in use (because there is a limitation to the number of characters that can be used in this post I could not paste it here).


  • Some feedback would be kind Mar 6, 2013 at 19:40

2 Answers 2


After playing with it a bit myself, I found two solutions:

  1. Use the previous post you mentioned with a bit more tweaking to match multibib.
  2. Use biblatex (I prefer this solution).

For the first solution, see answer to Sorted list of publications in moderncv from bibtex and plainyr-rev bibliography style (by Christian Plessl, see here). I used the combination of the two solutions as none of them worked by itself. Basically, I used the solution given in the answer, added the reverse sorting by year, and change one thing in the original answer - instead of leaving the FUNCTION {begin.bib} empty, use the following:

FUNCTION {begin.bib}
{ preamble$ empty$
    { preamble$ write$ newline$ }
  "\bibliographyhead{\refname}" write$ newline$

Now, you can use multibib normally, and you can remove the thebibliography environment defined in moderncv.cls.

The second solution is more elegant, and uses biblatex functionality. You can look at the answer given in Sorted list of publications in moderncv from bibtex to setup biblatex and moderncv, and use the answer in Multibib reverse label or sort order to understand how to use sectioned multi-bibliography with biblatex.

It simply works "out of the box". The only disadvantage I can think of is that this solution does not use the \cvitem environment provided by moderncv, but I don't think this is a real issue.

  • 1
    Do you know how to use the \cvitem environment provided by moderncv when using biblatex?
    – Legend
    Aug 11, 2013 at 22:35

The package usebib will help you. Use the following code:


The labeled is replaced by the field year which is extracted by the package usebib.

Here a complete MWE:

   author = {L[eslie] A. Aamport},
   title = {The Gnats and Gnus Document Preparation System},
   journal = {\mbox{G-Animal's} Journal},
   year = 1986,
   volume = 41,
   number = 7,
   pages = "73+",
   month = jul,
   note = "This is a full ARTICLE entry",
   author = "Donald E. Knuth",
   title = "Seminumerical Algorithms",
   volume = 2,
   series = "The Art of Computer Programming",
   publisher = "Addison-Wesley",
   address = "Reading, Massachusetts",
   edition = "Second",
   month = "10~" # jan,
   year = 1981,
   note = "This is a full BOOK entry",



% personal data
% personal data
\title{Resumé title}                  
\address{street and number}{postcode city}{country}
\email{[email protected]}                           
\extrainfo{additional information}    
\photo[64pt][0.4pt]{example-image-a} % change image name 
\quote{Some quote}    
%\photo[64pt][0.4pt]{example-image-a} % change image name 
\quote{Some quote}   

\bibinput{\jobname}%name of the bib file


enter image description here

  • Sorry for the late reply. I tried this solution as it is but it does not work as expected. I mean, if I use your MWE it does work but in my model it doesn't. That's why I was taking some time to reply because I wanted to figure out where the problem was. In my preamble I use three packages to setup the bibliography jabbrv (not in CTAN) and multibib and I don't use unsrtdin for bibliography style.
    – Katuyci
    Mar 6, 2013 at 23:48
  • it seems that the problem is with my bibliography style as it does not show anything on the left of each reference entry (even without this hack).
    – Katuyci
    Mar 8, 2013 at 0:03
  • @Katuyci: What's your style? Please add a full minimal example to your previous question or ask a new one which references to this question. Mar 8, 2013 at 9:35
  • When I use this, for some reason, it shows me only the item numbers but not the years as shown here. Is there a reason why this might be happening? Thanks!
    – Legend
    Aug 10, 2013 at 23:44

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .