I am using Biber/biblatex for the bibliography of my forthcoming book. I just received the last round of corrections from the copyeditor, and discovered that the sort order used in my bibliography is letter-by-letter, not word-by-word (as defined in The Chicago Manual of Style, 15th ed., 18.60). For example, the following two entries are sorted with Shapin appearing before Sha, because the following letter in Sha's name is "X", which comes after "p" in Shapin:

Shapin, Steven, and Simon Schaffer. Leviathan and the Air-Pump: Hobbes, Boyle, and the Experimental Life. Princeton, NJ: Princeton University Press, 1985.

Sha, Xin Wei. “Whitehead’s Poetical Mathematics.” Configurations 13, no. 1 (2007): 77–94.

In a bibliography, "Sha" should come before "Shapin."

The problem seems to be Biber: I tried two different styles for biblatex (style=mla, and the biblatex-chicago package) and in both "Shapin" came before "Sha"; when I used BibTeX instead of Biber, the order was correct, that is, "Sha" came before "Shapin."

I realize I can of course go in by hand and add sortkeys, which would not be too much trouble.

But is there an option I have overlooked, or a way to change this, in either biblatex-chicago, biblatex, or Biber?

  • I get the correct order when I use biber -f. You could probably also change the order by changing a collate-option but I get errors when I try to do it. – Ulrike Fischer Aug 9 '12 at 8:34
  • biber makes use of the Unicode Collation algorithm for sorting; you can change the used algorithm when calling biber. So the question is whether this specific sorting scheme conforms to an existing Unicode collation mode. Brief googling didn't bring up anyhing. – Simifilm Aug 9 '12 at 8:36
  • 1
    Can you post the biber output and log so we can see which locale it is using? – PLK Aug 9 '12 at 9:09
  • 1
    I made a bug report regarding my problems with --collate_options (I think alternate=>``non-ignorable`` (with single quotes. I have again forgotten how to input them)). would solve your problem): sourceforge.net/tracker/… – Ulrike Fischer Aug 9 '12 at 9:20
  • Looking at this collate-options issue now. – PLK Aug 9 '12 at 9:42

You are overriding all collate_options with the command-line so you need to provide the default level too (see the default setting in the biber manual):

--collate_options='variable => "non-ignorable", level => "4"'

"alternate" is an old compat alias for "variable" and it's this that causes the errors. I'll put in a check for this.

I have just updated biber 1.2 beta on SF now, you can just override what you need so:

biber --collate_options="variable => 'non-ignorable'" <bcf file>

Alternatively, as Mrs Fischer says, you can use biber -f <bcf file> instead as this uses standard OS collation which is probably fine if you have nothing special to sort in the way of accents etc. This Unicode Collation option is documented in UTS #10, section 3.6.2 "Variable Weighting". The default is a bit strange as it ignores weights for punctuation characters which are used to separate name parts so you have to set them to "non-ignorable" in such cases. You can always set this option in your biber.conf file so that it's always used:

    <option name="variable" value="non-ignorable"/>

This will no longer be necessary in biber 1.2 (now on SF in development folder) which sets "variable='non-ignorable'" by default as this makes more sense for bibliography sorting. So you can just run biber <bcf file> as normal and such cases should just work.

  • 1
    "You" means probably me. With level=>single quote 4 single quote and variable instead of alternate it works . It would be a good idea if you adapted the examples in the biber documentation. On windows I can't quote like you did: If I use single quotes around the whole option and double quotes around the "4" I get not output from biber. – Ulrike Fischer Aug 9 '12 at 10:45
  • 1
    I'm going to change this so that you don't need the "level" again and that the internal defaults are merged unless overwritten. I'm also going to change the internal sorting so that this workaround isn't necessary in such cases anyway. On Windows, try double-quotes around the whole thing and no other quotes? – PLK Aug 9 '12 at 10:56
  • Merging options is imho a good idea. If I add some configuration to a mysetting.conf and load it with biber -g=mysetting.conf will it be merged too? – Ulrike Fischer Aug 10 '12 at 7:41
  • Only with options which need merging - collate_options is a special case as it is an option with multiple options inside. – PLK Aug 10 '12 at 10:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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