Skip to content
moewew edited this page Sep 9, 2019 · 44 revisions

RELEASE NOTES FOR VERSION 3.13a

  • Bugfix release.

RELEASE NOTES FOR VERSION 3.13

  • INCOMPATIBLE CHANGE Any custom per-entry options in datasources must be defined with \DeclareEntryOption in order for biber to recognise them and pass them out in the .bbl. This should not adversely affect any code using the documented \Decalare...Option interface, so should be uncritical for most users.
  • Add \DeclareBiblatexOption as a convenient interface to declare the same option in different scopes. This should help avoid code duplication. For example
    \DeclareBibliographyOption[boolean]{noroman}[true]{%
      \settoggle{blx@noroman}{#1}}
    \DeclareTypeOption[boolean]{noroman}[true]{%
      \settoggle{blx@noroman}{#1}}
    \DeclareEntryOption[boolean]{noroman}[true]{%
      \settoggle{blx@noroman}{#1}}
    
    can be replaced with
    \DeclareBiblatexOption{global,type,entry}[boolean]{noroman}[true]{%
      \settoggle{blx@noroman}{#1}}
    
  • Following the introduction of \DeclareBiblatexOption extend the scope of a few options (abbreviate, citetracker, clearlang, dataonly, dateabbrev, <namepart>inits, ibidtracker, idemtracker, labelalpha, labelnumber, labeltitle, labeltitleyear, labeldateparts, loccittracker, opcittracker, singletitle, skipbib, skipbiblist, skipbiblab terseinits, uniquelist, uniquename, uniquetitle, uniquebaretitle, uniquework, uniqueprimaryauthor).
  • Furthermore, the standard style options doi, eprint, isbn, url, related are now available also on a per-type and per-entry level. The same holds for mergedate, subentry and the options of reading.bbx. This change has the potential to clash with custom styles that already define the standard options at these scopes.
  • Promote @software to regular entry type and define @dataset. @software is aliased to the @misc driver, @dataset has a dedicated driver.
  • Add \ifvolcite test to check if the current citation is in a \volcite context.
  • Add the special fields volcitevolume and volcitepages for finer control over the \volcite postnote.
  • Add \AtVolcite hook to initialise \volcite commands.
  • Add \mkbibcompletename as well as \mkbibcompletename<formatorder> to format complete names. The commands are analogous to \mkbibname<namepart> but apply to the entire name printed in format order <formatorder>. By default the predefined macros all expand to \mkbibcompletename.
  • Add multiprenotedelim and multipostnotedelim and make all (pre|post)notedelim-like commands context sensitive.
  • Add rudimentary support for labelprefix with BibTeX backend. Biber implements labelprefix via refcontexts, but BibTeX does not actually support refcontexts. The user interface is retained, but BibTeX's "refcontexts" support only the emulation of labelprefix and nothing more. There might be subtle differences between Biber's and BibTeX's labelprefix behaviour, but it should be better than nothing. If you need full labelprefix support, please consider switching to Biber.
  • Add \thefirstlistitem, \strfirstlistitem and \usefirstlistitem to grab and use the first item of a field.
  • Add \isdot to the format for journaltitle so that .s at the end of the journal(title) field are automatically treated as abbreviation dots and not sentence-ending periods. To restore the old behaviour add
    \DeclareFieldFormat{journaltitle}{\mkbibemph{#1}}
    
    to the preamble.
  • Add second optional item post processing argument to \mkcomprange, \mknormrange and \mkfirstpage. It can be used to post process every number item in the formatted range separately. It can for example turn cardinal ranges into ordinal ranges (this is done in the Latvian localisation module).
  • Add further customisation options for strings typeset with url's \url command (mainly URLs and DOIs). It is now possible to add a bit of stretchable space after characters with biburlnumskip, biburlucskip and biburlucskip. The previously hard-coded (stretacheble) space \biburlbigskip as well as the penalties biburlbigbreakpenalty and biburlbreakpenalty are also configurable now.
  • Add \DeclarePrintbibliographyDefaults to set default values for some option keys to \printbibliography and friends.
  • \nocite is now enabled in the bibliography (previously it was deactivated in the bibliography). Please report any issues that this may cause.
  • The internals macros \abx@aux@cite, \abx@aux@refcontext and \abx@aux@biblist are now called every time an entry is cite (and appears in a bibliography or biblist, respectively). This helps to avoid unwanted side-effects when writing to aux files is disabled.
  • \nohyphenation and \textnohyphenation now rely on a (fake) language without hyphenation patterns instead of \lefthyphenmin, which means that the command can now be used anywhere in a paragraph, see also https://texfaq.org/FAQ-hyphoff. Note that switching languages with babel within those commands removes the hyphenation protection.
  • Allow doi field for @online entries. This field was previously not printed in the @online driver. In case DOIs appear where they should not appear the output of earlier versions can be recreated with
    \ExecuteBibliographyOptions[online]{doi=false}
    
    since the doi option is now available on a per-type level.

RELEASE NOTES FOR VERSION 3.12

  • INCOMPATIBLE CHANGE The syntax for defining data annotations in the BibLaTeXML data source format has changed to accommodate named annotations. Annotations are no longer attributes but are fully-fledged elements. It is not expected that this will impact any current users.

  • INCOMPATIBLE CHANGE The field/fieldset argument to the \translit command is now mandatory to allow for a new optional argument which restricts transliteration to entries with particular langid fields.

  • The field sortyear is an integer field now and not a literal. This is because the sortX fields should be the same datatype as the X field as sorting depends on this. This fixes an issue where years were not sorted properly as integers. sortyear was sometimes used to tune date sorting as in "1984-1", "1984-2" etc. for multi-volume collections with the same year. However, this is really an abuse of the sorting template system since this should be done by having a semantically more granular sorting item to differentiate below the year level (typically, volume does this for multi-volume works and this is already part of all default sorting templates). The example .bib that comes with biblatex has been changed to remove such sortyear abuses and the sorting is not impacted as they examples using this already have either volume or sorttitle which made this abuse of sortyear unnecessary anyway.

  • The field number is a literal field now and not an integer. This allows for a wider range of possible input such as "S1", "Suppl. 1", "1-3". If you want to sort by number and only have integers in there, you should consider using a custom data model to turn number back into an integer type field, since sorting integers as literals has performance implications and might lead to undesired sorting such as "1", "10", "2".

  • INCOMPATIBLE CHANGE Removed the 'semi-hidden' option noerroretextools. If you want to load noerroretextools now, you need to define the macro \blx@noerroretextools instead. This can for example be done with

    \usepackage{etoolbox}
    \cslet{blx@noerroretextools}\empty
    \usepackage{biblatex}
    

    or

    \makeatletter
    \let\blx@noerroretextools\@empty
    \makeatother
    \usepackage{biblatex}
    

    You still need to make sure that all macros used by biblatex are restored to their etoolbox definitions before loading biblatex.

  • New macro \abx@missing@entry to style missing entrykeys in citations.

  • Added field format deprecation macros \DeprecateFieldFormatWithReplacement and friends.

  • Add \ifdateyearsequal to check if two dates have the same year and era date part. Since years are always non-negative integers and the 'sign' is stored as the era, you should use \ifdateyearsequal instead of a simple \iffieldequals{#1year}{#2year} to compare years. The latter can lead to undesired results if the years have opposite signs, but are otherwise the same.

  • New values part+, chapter+, section+ and subsection+ for 'section'- valued options refsection, refsegment and citereset. These options are then executed at not only the specified level of sectioning, but also all higher levels.

  • Add second optional argument to \DeclareDelimAlias*.

  • Allow keywords for dataonly/skipped entries as well.

  • Added maxcitecounter.

  • Deprecate \labelnamepunct in favour of the context-sensitive nametitledelim. For compatibility reasons \labelnamepunct still pops up in the code here and there, but nametitledelim should be preferred now.

  • The xstring package is not loaded by default any more. Style developers whose styles make use of that package should load it explicitly.

  • authoryear.bbx now has a macro bbx:ifmergeddate that can be used to check whether the date has been printed at the beginning of an entry and can thus be suppressed later in the date and issue+date macros. The macro works like a test and expands to the <true> branch if the date has been merged and can be suppressed, it expands to <false> if the date has not been merged. In practice \printdate should then be issued if and only if the test yields false.

    This change means that the definition of the date macro can be the same for all mergedate settings and that only bbx:ifmergeddate is redefined for each different value. No backwards compatibility issues are expected, but style authors are encouraged to test the changes and see if the new macro could be useful for their styles.

  • For a long time biblatex has defined \enquote if csquotes was not loaded. This behaviour was not documented, the official command intended for quotation marks was always \mkbibquote. Because biblatex should not (re)define user-level commands that are not primarily associated with citations or the bibliography, from this release on \enquote is not defined any more, instead the internal command \blx@enquote is defined and used. The same holds for \initoquote, \initiquote, \textooquote, \textcoquote, \textoiquote, \textciquote. biblatex still defines the internal commands \@quotelevel, \@quotereset and \@setquotesfcodes if csquotes is not loaded.

    Users are encouraged to use csquotes for proper quotation marks, but can get back the old behaviour with

    \makeatletter
    \providerobustcmd*{\enquote}{\blx@enquote}
    \makeatother
    

    or

    \newrobustcmd*{\enquote}{\mkbibquote}
    
  • Add new list wrapper and name wrapper formats (\DeclareListWrapperFormat, \DeclareNameWrapperFormat) to style a (name) lists in its entirety. This is useful because name and lists formats normally style only one particular item of the list. The wrapper format can be used to easily format the entire list in italics, for example.

  • \DeclareCitePunctuationPosition can be used to configure the punctuation position for citation commands similar to the optional position argument of \DeclareAutoCiteCommand.

  • If the \pdfmdfivesum primitive is available (via pdftexcmds' \pdf@mdfivesum) the labelprefix value is hashed for internal use, making it safer for construction of macro names and the like. If you don't like that you can turn off the behaviour by redefining \blx@mdfivesum. The fallback in case \pdf@mdfivesum is unavailable is

    \let\blx@mdfivesum\@firstofone
    

    As before the labelprefix value is fully expanded before use. If its contents are unexpandable you need to avoid expansion with \detokenize.

RELEASE NOTES FOR VERSION 3.11

  • \printbiblist now supports driver and biblistfilter options to change the defaults set by the biblistname.
  • Add \mknormrange to normalise page ranges without compressing them.
  • INCOMPATIBLE CHANGE The format for postnote (multipostnote, volcitepages) normalises page ranges with \mknormrange. Since \mknormrange acts only on page ranges as detected by \ifpages, this does not affect text other than page ranges. Hyphens and dashes in page ranges will be transformed to \bibrangedash, commas and semi-colons to \bibrangesep. This is analogous to Biber's treatment of page-like fields. If you always separated page ranges with -- or \bibrangedash anyway, this should not change the output you get. If you used a single hyphen to separate page ranges (e.g., 23-27) you will now get the arguably more aesthetically pleasing output with \bibrangedash. In case you want to restore the old behaviour where page ranges were not normalised add the following three lines to your preamble.
    \DeclareFieldFormat{postnote}{\mkpageprefix[pagination]{#1}}
    \DeclareFieldFormat{volcitepages}{\mkpageprefix[pagination]{#1}}
    \DeclareFieldFormat{multipostnote}{\mkpageprefix[pagination]{#1}}
    
    Style developers may note that the field format for pages was not changed to include \mknormrange because the contents of that field are prepared by the backend and Biber already does the page range normalisation out of the box.
  • The standard definitions for headings were changed to be as close to the defaults of the standard document classes or KOMA/memoir as possible. PLEASE CHECK if your document headers relied on the behaviour of older versions.
  • The @unpublished entry type now also supports type, eventtitle, eventdate and venue.
  • A long-standing bug with punctuation before eventdate and venue was fixed. Originally the round brackets were supposed to be preceded only by a space, the addition of other fields caused this space to be replaced by new unit punctuation. PLEASE CHECK if you can accept the changed output.
  • Added \ifdateannotation. Added optional argument for field and item to \iffieldannotation, \ifitemannotation, and \ifpartannotation.
  • \DeclareSourcemap can now be used multiple times.
  • INCOMPATIBLE CHANGE Language aliases are now also resolved when loading localisation files, only infinite recursion is avoided. Assuming \DeclareLanguageMappingSuffix{-apa}, loading ngerman localisation causes ngerman-apa.lbx to be read. If that file inherits from german, german-apa.lbx will be read. Previously only german.lbx would have been read at that point. Of course if german-apa.lbx inherits from german, german.lbx is loaded at that point, so infinite recursion is avoided.
  • CRITICAL CHANGE The code to load localisation files was changed. This is a an internal change and should not influence document output, save for a few bug fixes. Style authors should check if the changes introduce any bugs for their localisation handling and report them.
  • Added \begrelateddelim and \begrelateddelim<relatedtype> for punctuation before the related block. PLEASE CHECK that this change does not interfere with your punctuation settings. The change should be backwards compatible, but might give different results if \usebibmacro{related} is used in unusual positions.
  • Added locallabelwidth option to control the label spacing in bibliographies, if set to true, the label width will be calculated locally for the current bibliography and not globally from a list of all citation.

RELEASE NOTES FOR VERSION 3.10

  • INCOMPATIBLE CHANGE The recent ISO8601:201x standard supersedes the draft EDTF (Extended Date Time Format) extensions. Biblatex therefore now supports the ISO8601-2 Clause 4, Level 1 Extended Format which is equivalent to the draft EDTF standard but with different syntax. This syntax is in some cases not backwards compatible. Biblatex will not support backwards compatibility for the draft EDTF syntax because it is too messy to do so and few people were using this anyway since it is a relatively new and specialised feature. Please note these syntax changes which effect only the formatting of DATE fields in bibliography datasources:
    • The "unspecified" marker "u" is now "X"
    • An approximate+uncertain date is now indicated with "%" rather than "?~"
    • Open dates are now marked with ".." instead of "open" or blank start/end dates.
    • Unknown dates are now indicated by blank start/end dates rather than "unknown" or "*"
  • Unicode support code that is problematic for non-Unicode engines, but useful for XeTeX and LuaTeX now resides in blx-unicode.def. That file is only read by XeTeX and LuaTeX.
  • The option noerroretextools demotes the incompatibility error for etextools to a mere warning if set to true. Users still need to make sure that \forlistloop has the definition from etoolbox and not the completely incompatible definition from etextools. This option is meant as a last resort for people who must at all costs load etextools or a package that uses it. noerroretextools=true will always cause a warning even if etextools is not loaded.

RELEASE NOTES FOR VERSION 3.9

Bug fix release

  • Biber 2.9 with a few bug fixes was also released. Biber 2.9 is not strictly required, but recommended.
  • Fix \mkpagetotal
  • Fix issue with refcontexts not appearing in some circumstances
  • DEPRECATION NOTICE The coming update to the ISO8601 standard supercedes the draft EDTF (Extended Date Time Format) extensions. When the new ISO8601 standard is public, biblatex will therefore support the ISO8601-2 Clause 4, Level 1 Extended Format which is equivalent to the draft EDTF standard but with different syntax. This syntax is in some cases not backwards compatible. Biblatex will not support backwards compatibility for the draft EDTF syntax because it is too messy to do so and few people were using this anyway since it is a relatively new and specialised feature. Please note these syntax changes which will effect only the formatting of DATE fields in bibliography datasources:
    • The "unspecified" marker u is now X
    • An approximate+uncertain date is now indicated with % rather than ?~
    • Open dates are now marked with .. instead of open or blank start/end dates.
    • Unknown dates are now indicated by blank start/end dates rather than unknown or *

RELEASE NOTES FOR VERSION 3.8a

Bug fix release

  • Documentation version fix and loop fix in certain styles

RELEASE NOTES FOR VERSION 3.8

Requirements

Biber version 2.8 is required for biblatex 3.8

In order to standardise terminology, some commands and options have dropped the "scheme" naming convention and switched to "template"

  • \DeclareSortingScheme is now \DeclareSortingTemplate
  • \DeclareSortingNamekeyScheme is now \DeclareSortingNamekeyTemplate
  • The "sortingnamekeyscheme" option is now "sortingnamekeytemplate"

\DeclareLabelalphaNameTemplate no longer has entrytype scope

  • INCOMPATIBLE CHANGE The optional first argument to \DeclareLabelalphaNameTemplate was previously an entrytype but is now an arbitrary template name, as with \DeclareUniquenameTemplate. This is to allow multiple definitions which can be referred to at different scopes. It is unlikely that anyone used this with entrytype scope anyway.

origlanguage is now a list instead of a field.

  • INCOMPATIBLE CHANGE Since this is mostly used to generate localisation strings like 'Translated from the ' via the internal macros lbx@lfromlang and \lbx@sfromlang, users and style authors should not see any differences. However, if your style prints origlanguage directly using \printfield, this will need to be changed to \printlist.

Name handling enhancements

  • Name handling is now fully generalised to cover arbitrary name parts. The final few pieces have been completed to allow fully customisable name handling, allowing for better internationalisation. The code for name uniqueness calculation and label generation for names is now fully abstracted: templates created with \DeclareUniquenameTemplate and \DeclareLabelalphaNameTemplate may now be specified at per-refcontext, per-entry, per-namelist and per-name scope, which allows complete control over all aspects of name usage. See the comments in the enhanced 93-nameparts.tex example file.

extrayear is now extradate and the information used to track this can be customised

  • INCOMPATIBLE CHANGE extrayear is called extradate now. Limited backwards compatibility is in place to allow a smooth transition, but style developers should use the new name.
  • The new \DeclareExtradate command allows users to track authoryear disambiguation in arbitrary ways now, for example allowing disambiguation at month or day level instead of just year. See the PDF doc for details.
  • INCOMPATIBLE CHANGE Some bibmacros from the authoryear style family were renamed, cite:labelyear+extrayear becomes cite:labeldate+extradate, cite:extrayear is cite:extradate now, and date+extrayear is date+extradate. Some backwards compatibility code is present, but developers should make sure their code works as expected.

Date formatting

  • The mergedate output has been restored to its earlier form, it has also been extended to cover all EDTF date parts. In order to facilitate this, a few date-related tests were introduced \iflabeldateisdate, \ifdatehasyearonlyprecision, \ifdatehastime and \ifdateshavedifferentprecision.
  • The authoryear citation styles now use \printlabeldateextra instead of \printfield{labelyear}\printfield{extrayear}. This should have no consequences for end users (except that dates in citations and bibliography don't differ any more - previously there were subtle differences when many EDTF features were used), but style developers should check if they assume anything about the bibmacros that have now changed. Style developers are invited to have a look at the changes and to get inspired to offer full EDTF format for their styles as well.

Set handling

  • Static entry sets used to have the behaviour that when citing a member of a set, the data for the citation came from the set parent which was in turn taken from the first member of the set. In most use cases, the only part of the set parent data that was actually used was the labels but in certain edge cases, other data was used which results in confusing citations for set members. This has been refactored so that when citing set members, the member data is used along with some labelling data injected from the set parent. This means that things like \citeauthor{somesetmember} now give the expected results. INCOMPATIBLE CHANGE: PLEASE NOTE that this means that citing sets directly in default styles not based on labels (authoryear, authortitle, verbose etc.) will result in blank citations as it is not envisaged that sets are useful in such styles.
  • The members of a set can now be sorted according to the active sorting scheme, this is enabled via the sortsets option. By default the option is set to false and set members appear in the order given in the data source.
  • The alphabetic style family now also supports the subentry option.

Localisation and styles

  • Styles which supply their own location strings in .lbx files typically use \DeclareLanguageMapping to map a document language to the supplied language files. This is not ideal because the mapping has to be done by the user depending on the specific language. For example, for the APA style, in a document using American English, this line is necessary in every document:
    \DeclareLanguageMapping{american}{american-apa}
    
    so that the style supplied america-apa.lbx file is loaded. In a document using the German language, the user would have to use:
    \DeclareLanguageMapping{german}{german-apa}
    
    A new macro \DeclareLanguageMappingSuffix is now supplied which allows styles to register a global localisation file suffix which is appended to any document language automatically. This removes the need for \DeclareLanguageMapping in user documents as it ensures that the correct localisation file will be read nomatter what the document language. For example, the APA style (from version v7.5) now has this in apa.bbx:
    \DeclareLanguageMappingSuffix{-apa}
    
    which means that for a given document language <lang> the localisation file <lang>-apa.lbx will be loaded. \DeclareLanguageMapping, if present, will override \DeclareLanguageMappingSuffix.

Context-sensitive delimiters

  • Several delimiter macros now use the context-sensitive delimiter interface introduced in version 3.4 (\DeclareDelimFormat). This change is fully backwards compatible, but style developers should feel encouraged to use the new commands \DeclareDelimFormat and \printdelim.
  • Three new delimiters are introduced. authortypedelim, editortypedelim, and translatortypedelim control the delimiter between the respective name and the following <name> bibstring. This together with \DeclareFieldFormat{<name>type} allows one to go from 'E. Ditor, ed.' to 'E. Ditor (ed.)' more easily without the need to redefine entire bibmacros.
  • \DeclareDelimAlias allows one to alias one delimiter to another. E.g. \DeclareDelimAlias{finalnamedelim}{multinamedelim} will make finalnamedelim an alias for multinamedelim. The starred version \DeclareDelimAlias* is local to the specified contexts.

Misc changes

  • The initialisation code for \usedriver can now be modified via \AtUsedriver, the code can be executed with \UseUsedriverHook. The default settings retain backwards compatibility with earlier versions.
  • The field urlraw contains the unencoded, raw version of the URL. If the URL includes Unicode characters, urlraw will show them unencoded while the standard url field will contain them in percent-encoded form.
  • \mkpagetotal now has its own bibstrings <pagination>total(s) Previously it relied on the <pagination>(s) bibstrings.
  • sortyear is now a literal field and not an integer.
  • The etextools package is now officially incompatible.
  • bidi-support for footnotes was improved.
  • \ifentryseen, \ifentryinbib, \ifentrycategory and \ifentrykeyword can now be used outside of biblatex macros directly in the document.
  • \letbibmacro can be used to create bibmacro aliases as if using \let.
  • \DeprecateFieldWithReplacement, \DeprecateListWithReplacement and \DeprecateNameWithReplacement can be used to deprecate a field, name or list and replace it with a new one.

RELEASE NOTES FOR VERSION 3.7

Requirements

Biber version 2.7 is required for biblatex 3.7

Bugfix release.

RELEASE NOTES FOR VERSION 3.6

Requirements

Biber version 2.6 is required for biblatex 3.6

This is a minor bugfix release.

RELEASE NOTES FOR VERSION 3.5

Requirements

Biber version 2.6 is required for biblatex 3.5

Name support

  • INCOMPATIBLE CHANGE The labelling system has been generalised to be able to deal better with names. \DeclareLabelalphaTemplate no longer uses hard-coded name parts (prefix, family) when extracting label parts from name fields. Name field label extraction now obeys the new \DeclareLabelalphaNameTemplate specification which details how to extract label information from each namepart known to the data model. The default setting is backwards compatible with the old hard-coded behaviour. However, if you have custom \DeclareLabelalphaTemplate specifications, you should note that the "pcompound" and "pstrwidth" options to \field are now gone and replaced with the relevant settings on \namepart in \DeclareLabelalphaNameTemplate. The old options will generate warnings. It is too complex to provide backwards compat for this, sorry - please update your templates if necessary. This is one of the last changes needed to fully generalise name handling.

Date input and output

Major enhancements to the dates parsed by biblatex and the output formats available. Biblatex now supports [[http://www.loc.gov/standards/datetime/pre-submission.html][EDTF]] level 0 and 1. This is an enhanced ISO8601v2004 format suitable for bibliographic data. The new support is a superset of the previous limited ISO8601 support. Times are now fully supported in various formats as online sources become more common and time specifications for such sources are increasingly important. Tests and localisation strings are provided to use EDTF information about date uncertainty, era, approximation etc. in styles. A new example document (96-dates.tex) is provided which demonstrates the new features. See the PDF manual and its changelog for details of usage. The new date format functionality is backwards compatible. The following changes are more detailed and mostly of interest to style authors:

  • The iso8601 date output format is now called edtf. The old name will automatically use edtf and issue a deprecation warning.
  • \bibdatedash is now \bibdaterangesep as this name is more informative and more descriptive of how it is actually used. A backwards compat alias is provided.
  • Pre-biblatex 2.0 legacy sorting scheme definition macros \name and \list are now deprecated with warnings.
  • INCOMPATIBLE CHANGE The labeldate option is renamed to labeldateparts. The datelabel option is renamed to labeldate to provide consistency with all other date options. Backwards compatibility is provided and warnings will be issued.
  • The new date system necessitated changes to the default year printing routine for citations in the default authoryear styles. If you wish to take advantage of the new date features like circa, uncertainty and eras, when printing citations in authoryear styles, see the enhanced cite:labelyear+extrayear macros in any of the default authoryear styles.
  • The labelyear field was inconsistently implemented and in fact could sometimes contain a date range which made handling it rather difficult. It is now guaranteed to contain only one year, when it is a copy of an existing datepart field found by \DeclareLabeldate (labelyear can contain a literal/bibstring or non date field too). A new field labelendyear will contain the end of the labeldate year range. The same applies to labelmonth and labelday.
  • The internal macros \mkbibrange* have all been changed to \mkdaterange* to make the name more obvious (since they only deal with dates) and for consistency with the new \mktimerange* macros. These macros are usually only used in style .lbx files and the old names will generate a deprecation warning.
  • The option datezeros was inconsistent as it did not enforce zeros when set to 'true', it merely preserved the field. In the new date internals, leading zeros are not present after date parsing as this should always be a formatting/style decision. Now, datezeros enforces leading zeros and also handles all date parts.
  • \mkdatezeros has been replaced with \mkyearzeros, \mkmonthzeros and \mkdayzeros due to the date internals changes which are more consistent about integer formats of date parts. \mkdatezeros now generates a deprecation warning and calls \mkmonthzeros which is backwards compatible with its old behaviour.
  • INCOMPATIBLE CHANGE The .bbl field datelabelsource has been renamed to labeldatesource to prevent confusion with other fields. In the unlikely event that you referenced this field in a style, please change the name.
  • INCOMPATIBLE CHANGE The macro \printdatelabel has been renamed to \printlabeldate in line with the naming of all other date printing macros. Please use the new name. The old one will issue a deprecation warning.
  • INCOMPATIBLE CHANGE The macro \printdatelabelextra has been renamed to \printlabeldateextra in line with the naming of all other date printing macros. Please use the new name. The old one will issue a deprecation warning.

Misc changes

  • The experimental RIS format support is no longer available as it was rarely used and made biber maintenance more complicated. RIS is a very primitive format and not much use anyway.

  • INCOMPATIBLE CHANGE The singletitle option no longer considers the presence of labeltitle if labelname does not exist. This has always been potentially confusing. For several versions now, there has been a separate test and option for labeltitle called "uniquetitle".

  • INCOMPATIBLE CHANGE The sortgiveninits option has been deprecated and the functionality generalised. It is replaced by the "inits" option to \namepart in \DeclareSortingNamekeyScheme. Any nameparts may now therefore be sorted using initials only.

  • INCOMPATIBLE CHANGE The sorting subsystem in biber has been completely re-engineered to support better sorting of different datatypes. Previously, due to bibtex limitations, all sorting was lexical, even for numbers. This is why the padding options for things like volume in the default sorting specifications existed - so that lexical sorts for numbers would work. With the enhancement of the date parsing routines to include negative years, in order to sort these properly, it was time to switch to a better sorting method. As a result, the datatypes of fields is now a bit stricter, as it should be. Expect more changes in this direction but for this release, the datatype of the following fields in the default data model have been changed to 'integer':

    • number
    • sortyear
    • volume
    • volumes

    Integer datatypes no longer need padding or literal fallbacks in the sorting scheme definitions since they are now sorted properly as integers. Such datatype changes only effect sorting.