2

Hopefully somebody has come across this before....

I want to cite a paper that was published under a pseudonym, naturally I would put this in quotes. Namely 'Student' (1908). However, in the printed bibliography at the end, 'Student' (1908) is now at the top of the list instead of being down with the other S-entries. Is there a command I can use to tell LaTeX to sort my references alphabetically and ignore punctuation?

Mack
  • 21
  • 1
    you have tagged this biblatex, so you are using biblatex/biber, not bibtex? (it is biber or bibtex that sorts, not latex) – David Carlisle Feb 26 '20 at 20:00
  • 1
    Sometimes people use biblatex as a generic tag for bibliographies, so an explicit acknowledgement in the question body that you indeed load biblatex would help. Ideal would be a short example document that shows your current bibliography setup and an example entry that we can play with: That is the best way to avoid misunderstandings and makes it extremely easy for people to get started helping you (it also helps ensure that people test their solutions with your setup): https://tex.meta.stackexchange.com/q/228/35864 – moewe Feb 26 '20 at 20:13

2 Answers2

3

The following two-step solution works with both BibTeX and biber.

  • Insert the instruction

    @preamble{ "\providecommand{\noopsort}[1]{} " }
    

at the start of the bib file. Alternatively, insert the instruction

    \providecommand{\noopsort}[1]{}

in the preamble of your main tex file.

  • Change the author field of the entry in question from

    author = {`Student'},
    

    to

    author = {\noopsort{Student}`Student'},
    

    The argument of \noopsort must be the form of the name you want BibTeX or biber to perform the sort on.

After making these changes, be sure to perform a full recompile cycle: either latex-bibtex-latex-latex or latex-biber-latex.

Mico
  • 506,678
  • The \noopsort{} has other uses. Say there is a book in 3 volumes that came out 1969, 1990, 1995. If the author has published a lot in between, they will (obviously) come out mixed in between the rest. Use e.g. \noopsort{1969a}1969, \noopsort{1969b}1995 and so on as dates to keep them together. – vonbrand Feb 27 '20 at 13:00
3

biblatex has the sortname field for that. sortname is only used for sorting purposes and can replace author and editor if the printed name should not be the same as the sorting name.

The biblatex documentation explains the field as follows

[sortname] A name or a list of names used to modify the sorting order of the bibliography. If present, this list is used instead of author or editor when sorting the bibliography. Please refer to §3.5 for further details. This field is consumed by the backend processing and does not appear in the .bbl.

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[style=authoryear, backend=biber]{biblatex}


\begin{filecontents}{\jobname.bib}
@book{student,
  author    = {{\enquote{Student}}},
  sortname  = {Student},
  title     = {On the Importance of the Civil Service},
  date      = {1980},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}


\begin{document}
\cite{sigfridsson,nussbaum,worman,student}
\printbibliography
\end{document}

Nussbaum - Sigfridsson - ‘Student’ - Worman

moewe
  • 175,683