Customizing Name Separators In Bibtex With Biber 1.5+

The Problem with Default Name Separators

The default BibTeX name separators used for author and editor names are limited to a comma and the word "and." This approach has some significant drawbacks:

  • The commas and "and" conjunction may not be appropriate for all languages and naming styles. Non-English names can appear awkward when formatted this way.
  • The BibTeX style lacks flexibility to accommodate different naming conventions. For example, some styles prefer an en-dash between multiple names instead of "and."

In many cases, the rigid name separation scheme used by default BibTeX fails to meet the needs of today's multilingual scientific community. Fortunately, beginning with version 1.5, the Biber BibTeX backend allows fully customizable name separators.

Introducing Custom Name Separators

One of the most powerful features introduced in Biber 1.5 is the ability to configure custom name separators through the "namesep" option. This option allows users to define separators globally for all entry types or on a per-datatype basis.

For example, the global separator can be set to an en-dash for a consistent separator across all BibTeX entry types. Additionally, the separator for editor names can be defined separately to allow more flexibility.

The custom separators configured via "namesep" override the default BibTeX behavior of separating with a comma and "and." This enables support for varied naming conventions needed for today's multilingual bibliographies.

Configuring Custom Name Separators

Global Customization

Setting the global name separator is straightforward - simply define "namesep" with the desired separator in your biber.conf or local config file:

namesep = {-}

This will replace the default comma+and separation with an en-dash for all entry types. Note that multiple separators can be given, as a comma-separated list. For example:

namesep = {, }

Per-Type Customization

The namesep option also allows defining custom separators per entry type. For example:

namesep = {
  article = {-}
  book = {, } 
}

This configures an en-dash separator for articles, while books retain the classic BibTeX comma-and approach. Each entry type can be specified independently.

Example Configurations

Here are some examples of custom namesep configurations in biber.conf:

namesep = { & } // separated by a space
namesep = {; } // separated by semicolon
namesep = {, and } // comma and text "and"
namesep = {
  book = {-} // en-dash
  article = {, } // comma only
} 

Custom Separators for Different Languages

Language-specific Needs

Custom name separators are especially useful for localization and adapting BibTeX for different languages. The strict "and" conjunction does not work well for all naming styles.

For example, French typography prefers a thin non-breaking space between author names rather than a comma or "and". German names are also best separated by spaces instead of commas or the English "and."

Common Customizations

Here are some examples of language-specific custom name separators in biber.conf:

namesep = {~} // French - thin unbreakable space
namesep = { } // German - regular space
namesep = {, y } // Spanish - comma and "y"

Examples in French, German, etc

With custom namesep options, BibTeX can properly format names for international documents:

% French
Camus, Albert → Camus~Albert

% German 
Kafka, Franz → Kafka Franz

% Spanish
Borges, Jorge y Sabato, Ernesto → Borges, Jorge y Sabato, Ernesto

Caveats and Compatibility Concerns

Customization Requires Biber 1.5+

The namesep functionality relies on Biber 1.5 features and will not work as expected on older TeX distributions. Be sure to upgrade your TeX install and use a recent Biber version.

Fallback Behavior in Older Versions

When running on an older Biber without namesep support, it will silently ignore the customization and fallback to default comma-separated behavior. So custom separators should still compile but will not be applied.

Troubleshooting Tips

If your custom separators are not working, first check that your log file shows "Biber version 1.5" - earlier versions lack support. Also check biber is finding your config file by specifying it directly with the "config" option.

Additional Customization Options

Fine-grained Control with Callbacks

Along with the simple global/per-type namesep configuration, Biber 1.5 allows callbacks for advanced customization. Callbacks enable formatting names dynamically based on entry metadata.

Modifying Order and Formatting

The callback functionality also provides access to customize name ordering, disable particular names, and apply additional formatting changes.

Advanced Usage

With the power of callbacks, virtually any name formatting can be achieved programmatically by introspecting each author/editor name and bibliographic entry itself. This takes customization to the next level for advanced users.

Leave a Reply

Your email address will not be published. Required fields are marked *