Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

I use BibTeX and BibDesk to manage my bibliography. What I would like to do is cite a series of articles with only one citation in the bibliography. This seems to have become fairly standard practice amongst other authors citing this series of articles. The series of articles all occur in the same journal but spread over different volumes. The method of citation I have currently seen is

G. Lusztig, Character Sheaves I-V, Adv. in Math. 56 (1985), no. 3, 193-237; 57 (1985), no. 3, 226-265; 57 (1985), no. 3, 266-315; 59 (1986), no. 1, 1-63; 61 (1986), no. 2, 103-155.

Is this achievable with BibTeX? Slightly less preferable but acceptable would be to list all of the papers individually in the bibliography with the same reference key. For instance something like

[Lus85] G. Lusztig, Character Sheaves I, Adv. in Math. 56 (1985), no. 3, 193-237.

[Lus85] G. Lusztig, Character Sheaves II, Adv. in Math. 57 (1985), no. 3, 226-265.

[Lus85] G. Lusztig, Character Sheaves III, Adv. in Math. 57 (1985), no. 3, 266-315.

[Lus85] G. Lusztig, Character Sheaves IV, Adv. in Math. 59 (1986), no. 1, 1-63.

[Lus85] G. Lusztig, Character Sheaves V, Adv. in Math. 61 (1986), no. 2, 103-155.

Are either of these two options achievable?

share|improve this question
2  
biblatex offers an @Set entry type, which combines several entry keys into one citation. It is doable with BibTeX (as the backend to biblatex); the problem is whether the bibliography style you use implements the @Set driver. I imagine all the styles that ship with biblatex do, but third-party contributions may or may not. –  jon Mar 12 '13 at 15:55

2 Answers 2

This is not a full solution, but it partially does what you want.

Check out the style apsrev4-1. It allows to cite several references by adding an asterisk to the ones you don't want to index, eg. \cite{ref1,*ref2,*ref3} will produce a single entry with the various references separated by a semicolon.

share|improve this answer

I investigated the apsrev4-1 style suggested by Alex Monras but it seemed clunky in the end and not quite what I wanted. For me it seems BibTeX is just not quite equipped to handle sets like biblatex. With this revelation I have decided to switch to biblatex and the following is an implementation of the above in biblatex. As suggested by locksteps answer on how to modify biblatex styles I have done this by changing 'biblatex.cfg' on top of the alphabetic style. The complete solution is as follows

\ExecuteBibliographyOptions{firstinits=true,isbn=false}

% Use Commas instead of Fullstops
\renewcommand*{\newunitpunct}{\addcomma\space}

% Turn off use of 'In: '
\renewbibmacro{in:}{}

% Suppress pagetotals and pages.
\AtEveryBibitem{%
  \clearfield{pagetotal}%
}


% Dashed Author Names In Repeats
\InitializeBibliographyStyle{\global\undef\bbx@lasthash}
\renewcommand*\bibnamedash{\hbox to3em{\hrulefill}}
\providecommand*{\mkibid}[1]{#1}

\DeclareBibliographyDriver{set}{%
  \entryset
    {}
    {\ifnumequal{\thefield{entrysetcount}}{1}
       {\savefield{fullhash}{\bbx@lasthash}%
        \savefield{journaltitle}{\bbx@lastjournal}}
       {}}%
  \newunit\newblock
  \usebibmacro{setpageref}%
  \finentry}

\renewbibmacro*{author}{%
  \ifboolexpr{ test \ifuseauthor and not test {\ifnameundef{author}} }
    {\iffieldequals{fullhash}{\bbx@lasthash}
        {\iffieldundef{entrysetcount}
           {\bibnamedash\addcomma\space}
           {\ifnumequal{\thefield{entrysetcount}}{1}
              {\bibnamedash\addcomma\space}
              {\entrysetpunct}}}
        {\printnames{author}}%
      \savefield{fullhash}{\bbx@lasthash}%  
      \iffieldundef{authortype}
        {}
        {\setunit{\addcomma\space}%
         \usebibmacro{authorstrg}%
        }}
    {\global\undef\bbx@lasthash}%
}

\renewbibmacro*{journal}{%
  \iffieldundef{journaltitle}
    {}
    {\iffieldequals{journaltitle}{\bbx@lastjournal}
       {\bibstring[\mkibid]{ibidem}} 
       {\global\undef\bbx@lastjournal
         \printtext[journaltitle]{%
         \printfield[titlecase]{journaltitle}%
         \setunit{\subtitlepunct}%
         \printfield[titlecase]{journalsubtitle}}}}
}

% Change the formats of certain fields
\DeclareFieldFormat{pages}{#1}
\DeclareFieldFormat[article]{volume}{\textbf{#1}}
\DeclareFieldFormat[article,periodical]{number}{no.\ #1}
\DeclareFieldFormat[article,inbook,incollection,inproceedings,patent,thesis,unpublished]   {title}{\mkbibemph{#1}\isdot}
\DeclareFieldFormat{journaltitle}{#1}

\renewbibmacro*{journal+issuetitle}{%
  \usebibmacro{journal}%
  \setunit*{\addspace}%
  \iffieldundef{series}
    {}
    {\newunit
     \printfield{series}%
     \setunit{\addspace}}%
  \usebibmacro{issue+date}%
  \setunit{\addspace}%
  \usebibmacro{volume+number+eid}%
  \setunit{\addcolon\space}%
  \usebibmacro{issue}%
  \newunit}

\renewbibmacro*{volume+number+eid}{%
  \setunit*{\addcomma\space}%
  \printfield{number}%
  \setunit{\addcomma\space}%
  \printfield{eid}}

\renewbibmacro*{issue+date}{%
\printfield{volume}%
  \setunit{\space}%
  \printtext[parens]{%
    \iffieldundef{issue}
      {\usebibmacro{date}}
      {\printfield{issue}%
       \setunit*{\addspace}%
       \usebibmacro{date}}}%
  \newunit}

The main changes for the solution are contained under the 'Dashed Author Names In Repeats' comment. The others just make sure the items are formatted to my taste. The solution is based on an answer of Audrey. In particular when the author is the same as the previous item in the set then the author name is omitted. If the journal is the same then the 'ibid' convention is used.

Picture of the New References

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.