-
Notifications
You must be signed in to change notification settings - Fork 126
Home
- Added new option settings
minyearinitandminyearfullforuniquename - Added
\DeclareNamehashTemplateand supporting macros to allow customisation of the nameparts used in name hash construction. - Added facility for custom namehash ids in extended name format.
- Added new field
fullhashraw. - Added
\@doendpeand\parcall to\printbibliographyand\printbiblist. This means that\printbibliographyand\printbiblistnow force text after them to start a new paragraph. This is probably usually desired. Since most people will use bibliography environments that come with an implicit\paror at least a new line, this should hopefully not change the output in too many cases.
- Added
\AtNextRefsection. - Added
\DeclareExtradateContext.
- Reenable
\MakeUppercase/\MakeLowercase"patches" for\bibstringbased on\CaseSwitch.
- Disable
\MakeUppercase/\MakeLowercasepatches as emergency fix for LaTeX 2022-06-01-PL4 compatibility.
- New sorting name key generation macro
\visibilitywhich allows application of sorting name key generation to apply only to sorting within citations. - New sorting macro
\intciteorderwhich allows sorting by order internal to a cite command like\cite{a,b,c}. - New option
pluralothersto force "et al." to be plural (i.e. only replace two or more names). This is required for some styles (e.g. APA) - Added
\localrefcontextas a local alternative to the global\newrefcontext.\localrefcontextcan be nested and is only active in the current group.
- INCOMPATIBLE CHANGE The behaviour of index-less granular xdata references to list fields has changed. Before, a reference to an XDATA list field would select the first element in the XDATA field list if no index was given but now this will splice in all elements of the XDATA list field. To ensure the previous behaviour, simply add "-1" (assuming the default value of "-" for the biber 'xdatasep' option) to the end of all granaular list XDATA references.
- Added helper macros to enable calculations with non-ASCII numerals.
This is necessary to properly support languages like Marathi.
At the moment the 'translation' is very basic and uses a one-to-one
correspondence of US-ASCII (Arabic) digits and non-ASCII digits.
The translation also needs additional post-processing steps.
Use
\blx@defcomputableequivalent{<numeral digit>}{<ASCII digit>}to make<numeral digit>an equivalent of<ASCII digit>(presumably this command will be used in.lbxfiles if the language requires it).\hascomputableequivalent{<string>}can be used to check if<string>is a number that can be converted to a number with ASCII digits.\getcomputableequivalent{<string>}{<macro>}does the conversion and saves the number in<macro>. There is\ifiscomputable{<string>}to check if a<string>is an ASCII number OR has a computable equivalent. There are analogous macros for fields instead of strings. - Added
\textouterlangto select the last active language that was not selected bybiblatexitself. This may help in multilingual setups wherebiblatexalso changes the language quite heavily. - Added
\DeclareBibstringSet,\DeclareBibstringSetFormatetc. to allow injecting additional formatting for a set of bibstrings. Sets can be defined arbitrarily. These commands are primarily intended for use in localisation modules. - Changed the definition of
\bibnamedelimito\isdot\addnbspace. Previously the definition was just\addnbspace, which meant the.would be treated as a period/full stop. -
BREAKING CHANGE
\DeclareDelimFormatno longer accepts a list of names as argument. It only accepts a single delimiter name. A list of contexts is still supported. Note that previously the optional argument would not work correctly with a list of names. -
CRITICAL CHANGE
biblatexno longer writes tracking and refsection initialisation code to aux files. Instead the\...citecommands are redefined locally to do that on demand. This should keep the auxiliary files much cleaner ofbiblatexintervention. -
CRITICAL CHANGE
Generalised
seasondate part toyeardivision. It can now also hold quarter, quadrimester, semestral or seasons with hemisphere designation. Helper macros have been renamed accordingly. Limited backwards compatibility is in place. -
(Possibly) CRITICAL CHANGE
\noteciteand friends no longer issue an explicit\nocite. Since the commands are defined with\DeclareCiteCommand, they already issue a normal cite request. The additional\nocitefrom the loop code was superfluous and would result in slightly instable.bcffiles.
- Fixed an infinite loop caused by excessive aliasing of the
volcitepagesformat. Reverted the alias\DeclareFieldAlias{volcitepages}{postnote}and again defineexplicitly.\DeclareFieldFormat{volcitepages}{\mkpageprefix[pagination][\mknormrange]{#1}} - Fixed
.lbxfile loading behaviour. All.lbxfiles are now loaded\AtBeginDocument. Languages that were not requested explicitly by packages are recorded in the.auxfile and loaded on the next run. This may require a further LaTeX run in some situations, but now we can be sure when.lbxfiles are read. - Added
labeloption to\printbibliography. - Added more name wrapper aliases to make name aliasing smoother.
- Deprecate
\mainlangswitch in favour of the text macro\textmainlang. - Deprecate
\mkrelatedstring(which is defined as\mainlang) in favour of\mkrelatestringtext(defined as\textmainlang).
- Fixed bug with long argument for
\DeclareFieldFormatand friends.
-
Fixed a long-standing issue with
\intitlepunct. The old definition\newbibmacro*{in:}{% \printtext{% \bibstring{in}\intitlepunct}}would print
\intitlepunctdirectly and not via the punctuation buffer. Since the\add...punctuation macros guard against undesired double punctuation, this would usually not show as an issue (except in edge cases https://tex.stackexchange.com/q/175730/, https://github.com/plk/biblatex/issues/943). The new definition uses the punctuation tracker to print\intitlepunct.\newbibmacro*{in:}{% \bibstring{in}% \printunit{\intitlepunct}}\printunitis needed instead of\setunitto stop subsequent\setunits from overriding\intitlepunctin case of missing fields. -
Define
volcitepagesandmultipostnoteas a field alias ofpostnoteandmultiprenoteas an alias ofprenote. That should make it easier to change all post- and prenote formats at once. A change topostnotewill automatically apply tomultipostnoteandvolcitepagesas well. Similarly formultiprenote. In case that is not desired, the original definitions can be restored with\DeclareFieldFormat{volcitepages}{\mkpageprefix[pagination][\mknormrange]{#1}} \DeclareFieldFormat{multiprenote}{#1\isdot} \DeclareFieldFormat{multipostnote}{\mkpageprefix[pagination][\mknormrange]{#1}} -
Unified DOI, eprint and URL printing across all entry types. The fields
doi,eprint,eprintclass,eprinttypeandurlare now valid for all entry types.@onlineand@unpublishednow also use the bibmacrodoi+eprint+url. This means@onlinenow responds to theurloption. That does not mean, however, that a globalurl=false,suppresses URLs for@onlineentries, sinceurl=true,is set on a per-type level to ensure backwards compatibility as far as possible. In case eprint information should be suppressed for@onlineand@unpublished, add\ExecuteBibliographyOptions[online,unpublished]{eprint=false} -
Added
eidto more entry types. To avoid issues with backwards compatibility of widely used bibmacros, the bibmacrochapter+pageswas redefined from\newbibmacro*{chapter+pages}{% \printfield{chapter}% \setunit{\bibpagespunct}% \printfield{pages}% \newunit}to
\newbibmacro*{chapter+pages}{% \printfield{chapter}% \setunit{\bibeidpunct}% \printfield{eid}% \setunit{\bibpagespunct}% \printfield{pages}% \newunit} -
Added
\bibeidpunctin analogy to\bibpagespunct. -
Added
issuetitleaddonandjournaltitleaddonfields. -
Added options
backreffloatsandtrackfloatsto enable/disable citation tracking and back references in floats. Note that citation tracking in floats can lead to undesirable results in case the float objects floats too far from its "natural" position. -
INCOMPATIBLE CHANGE
numeric-compcompresses subentry set references now. This behaviour can be disabled withsubentrycomp=false. -
Added
subentrycompoption tonumeric-compcitation style. The option is only relevant withsubentry=true. Withsubentrycomp=trueset citations will be compressed to "1a-c" instead of "1a; 1b; 1c". The option is mainly intended for backwards compatibility; the behaviour of previousbiblatexversions can be restored withsubentrycomp=false. -
Added
\multiciterangedelim,\multicitesubentrydelim,\multicitesubentryrangedelim,\superciterangedelim,\supercitesubentrydelim, and\supercitesubentryrangedelimfor finer control over (compressed) subentry citations innumeric-comp. -
CRITICAL CHANGE The structure of the bibmacros in
numeric-comphas been reworked to make it easier to customise the printed output. Documents that relied on patching internal bibmacros or heavily redefined them may have to adapt. -
CRITICAL CHANGE Implemented better
@setsupport for BibTeX,@sets should now sort properly. This is achieved with a two-pass structure and (hidden) copies of the set entries. The two-pass structure means that the compilation sequence becomes LaTeX, BibTeX, LaTeX, BibTeX, LaTeX, LaTeX. -
CRITICAL CHANGE The case change functions now make use of the
expl3modulel3textif the availableexpl3version is recent enough. Ifexpl3is too old the old LaTeX2e implementation is used. If desired the implementation of the case changing functions can be selected at load-time with thecasechangeroption, which accepts the valuesexpl3,latex2eandauto(which selectsexpl3if theexpl3version not older than 2020-04-06, this is the default).The
expl3implementation of the case changer is slightly more robust than the home-grownlatex2ecode. -
The option
bibtexcaseprotectioncan be used to turn off the case protection via curly braces. This allows for a saner approach to case protection where text is protected solely via a macro like\NoCaseChange, e.g.title = {The Story of \NoCaseChange{HMS \emph{Erebus}} in \emph{Really} Strong Wind},instead of
title = {The Story of {HMS} \emph{Erebus} in {\emph{Really}} Strong Wind}, -
Added
\mautociteand\Mautocite. -
Added
\NumsCheckSetupand\PagesCheckSetupfor finer control of the\ifnumeralsand\ifpageschecks. -
Deprecate the starred
\DeclareDelimAlias*in favour of\DeclareDelimAliaswith optional arguments. -
INCOMPATIBLE CHANGE
biblatexno longer falls back to English for unknown languages. Warnings will be triggered if undefined language strings or extras are used. -
INCOMPATIBLE CHANGE Bibliography strings and bibliography extras can now be written either to
\captions<language>or to\extras<language>(this is controlled with thelanghookoption). Previously, they were written to\extras<language>, but upon reflection\captions<language>appears to be a more sensible place for these definitions. The new default is to write to\captions<language>(i.e.langhook=captions). The previous behaviour can be restored withlanghook=extras. -
INCOMPATIBLE CHANGE Moved
\delimcontext{bib}to\AtUsedriver, this makes it easier to override the delimiter context in\usedrivercalls.\AtUsedriver*calls may have to be amended to include\delimcontext{bib}. The new default is\AtUsedriver{% \delimcontext{bib}% \let\finentry\blx@finentry@usedrv \let\newblock\relax \let\abx@macro@bibindex\@empty \let\abx@macro@pageref\@empty}Note that this definition is backwards compatible and can be used in older versions as well (down to v3.4 2016-05-10).
-
biblatexnow tests if a requested backend (re)run happened by comparing the MD5 hashes of the new and old.bblfiles. -
Added file hooks
\blx@filehook@preload@<filename>,\blx@filehook@postload@<filename>and\blx@filehook@failure@<filename>to execute hooks before or after a file is loaded or if the loading fails.\blx@lbxfilehook@simple@preload@<filename>,\blx@lbxfilehook@simple@postload@<filename>and\blx@lbxfilehook@simple@failure@<filename>as well as\blx@lbxfilehook@once@preload@<filename>,\blx@lbxfilehook@once@postload@<filename>and\blx@lbxfilehook@once@failure@<filename>are the equivalents for.lbxloading, where files may be loaded several times in some situations. -
Added limited support for 'nodate' with BibTeX.
-
Improved
babelandpolyglossiainterfacing (avoids more or less unsupported patches). This should work withbabelat least v3.9r (2016/04/23) and polyglossiapolyglossiav1.49 (2020/04/08) or later. -
INCOMPATIBLE CHANGE Removed list and name index wrappers (
\DeclareIndexNameWrapperFormat,\DeclareIndexListWrapperFormatand friends). Those wrappers make no sense, since the indexed names are not printed 'together' in any useful sense of the word and were never working anyway. -
CRITICAL CHANGE Generalised some keyval macros.
biblatex-related uses of\define@keyshould ideally replaced with\blx@kv@defkey. Style authors are advised not to rely too much on the internal implementation of certain keyval interfaces. Users who want to experiment with using a different underlying keyval parser need only provide replacements of the\blx@kv@...macros (which are defined via\provide...so that they will not overwrite existing definitions; in particular users can define those replacements before loadingbiblatex). -
Deprecate
\ifkomabibtotocand\ifkomabibtotocnumbered. With newer versions of KOMA-Script these tests are no longer used and their implementation was always a bit shifty (they would only pick up globally set options).
- biber from version 2.14 has extended, granular XDATA functionality to allow referencing from and to parts of fields. This makes XDATA entries into more general data sharing containers.
- Biber applies Perl's Unicode case folding to normalise the
capitalisation of field names and entry types when reading from the
.bibfile. The output in the.bbl(what comes out on thebiblatexside uses the capitalisation from the data model; the only exception are unknown entry types which are passed on exactly as they are given in the.bibfile - of course it is strongly recommended to define all entry types one intends to use in the data model). -
biblatexnow interfaces withpolyglossiamuch better and can deal with language variants. Note thatpolyglossiav1.45 (2019/10/27) is required for this to work properly, it is strongly recommended to updatepolyglossiato this or a later (current) version.
-
INCOMPATIBLE CHANGE Any custom per-entry options in datasources must
be defined with
\DeclareEntryOptionin order for biber to recognise them and pass them out in the.bbl. This should not adversely affect any code using the documented\Decalare...Optioninterface, so should be uncritical for most users. - Added
\DeclareBiblatexOptionas a convenient interface to declare the same option in different scopes. This should help avoid code duplication. For examplecan be replaced with\DeclareBibliographyOption[boolean]{noroman}[true]{% \settoggle{blx@noroman}{#1}} \DeclareTypeOption[boolean]{noroman}[true]{% \settoggle{blx@noroman}{#1}} \DeclareEntryOption[boolean]{noroman}[true]{% \settoggle{blx@noroman}{#1}}\DeclareBiblatexOption{global,type,entry}[boolean]{noroman}[true]{% \settoggle{blx@noroman}{#1}} - Following the introduction of
\DeclareBiblatexOptionextend 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,skipbiblabterseinits,uniquelist,uniquename,uniquetitle,uniquebaretitle,uniquework,uniqueprimaryauthor). - Furthermore, the standard style options
doi,eprint,isbn,url,relatedare now available also on a per-type and per-entry level. The same holds formergedate,subentryand the options ofreading.bbx. This change has the potential to clash with custom styles that already define the standard options at these scopes. - Promote
@softwareto regular entry type and define@dataset.@softwareis aliased to the@miscdriver,@datasethas a dedicated driver. - Add
\ifvolcitetest to check if the current citation is in a\volcitecontext. - Add the special fields
volcitevolumeandvolcitepagesfor finer control over the\volcitepostnote. - Add
\AtVolcitehook to initialise\volcitecommands. - Add
\mkbibcompletenameas 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
multiprenotedelimandmultipostnotedelimand make all(pre|post)notedelim-like commands context sensitive. - Add rudimentary support for
labelprefixwith BibTeX backend. Biber implementslabelprefixviarefcontexts, but BibTeX does not actually supportrefcontexts. The user interface is retained, but BibTeX's "refcontexts" support only the emulation oflabelprefixand nothing more. There might be subtle differences between Biber's and BibTeX'slabelprefixbehaviour, but it should be better than nothing. If you need fulllabelprefixsupport, please consider switching to Biber. - Add
\thefirstlistitem,\strfirstlistitemand\usefirstlistitemto grab and use the first item of a field. - Add
\isdotto the format forjournaltitleso that.s at the end of thejournal(title)field are automatically treated as abbreviation dots and not sentence-ending periods. To restore the old behaviour addto the preamble.\DeclareFieldFormat{journaltitle}{\mkbibemph{#1}} - Add second optional item post processing argument to
\mkcomprange,\mknormrangeand\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\urlcommand (mainly URLs and DOIs). It is now possible to add a bit of stretchable space after characters withbiburlnumskip,biburlucskipandbiburlucskip. The previously hard-coded (stretacheble) space\biburlbigskipas well as the penaltiesbiburlbigbreakpenaltyandbiburlbreakpenaltyare also configurable now. - Add
\DeclarePrintbibliographyDefaultsto set default values for some option keys to\printbibliographyand friends. -
\nociteis 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@refcontextand\abx@aux@biblistare 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. -
\nohyphenationand\textnohyphenationnow 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 withbabelwithin those commands removes the hyphenation protection. - Allow
doifield for@onlineentries. This field was previously not printed in the@onlinedriver. In case DOIs appear where they should not appear the output of earlier versions can be recreated withsince the\ExecuteBibliographyOptions[online]{doi=false}doioption is now available on a per-type level.
-
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
\translitcommand is now mandatory to allow for a new optional argument which restricts transliteration to entries with particularlangidfields. -
The field
sortyearis an integer field now and not a literal. This is because thesortXfields should be the same datatype as theXfield as sorting depends on this. This fixes an issue where years were not sorted properly as integers.sortyearwas 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,volumedoes 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 suchsortyearabuses and the sorting is not impacted as they examples using this already have eithervolumeorsorttitlewhich made this abuse ofsortyearunnecessary anyway. -
The field
numberis 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 bynumberand only have integers in there, you should consider using a custom data model to turnnumberback 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 loadnoerroretextoolsnow, you need to define the macro\blx@noerroretextoolsinstead. 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
biblatexare restored to theiretoolboxdefinitions before loadingbiblatex. -
New macro
\abx@missing@entryto style missing entrykeys in citations. -
Added field format deprecation macros
\DeprecateFieldFormatWithReplacementand friends. -
Add
\ifdateyearsequalto check if two dates have the same year and era date part. Sinceyears are always non-negative integers and the 'sign' is stored as theera, you should use\ifdateyearsequalinstead 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+andsubsection+for 'section'- valued optionsrefsection,refsegmentandcitereset. 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
\labelnamepunctin favour of the context-sensitivenametitledelim. For compatibility reasons\labelnamepunctstill pops up in the code here and there, butnametitledelimshould be preferred now. -
The
xstringpackage is not loaded by default any more. Style developers whose styles make use of that package should load it explicitly. -
authoryear.bbxnow has a macrobbx:ifmergeddatethat can be used to check whether the date has been printed at the beginning of an entry and can thus be suppressed later in thedateandissue+datemacros. 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\printdateshould then be issued if and only if the test yields false.This change means that the definition of the
datemacro can be the same for all mergedate settings and that onlybbx:ifmergeddateis 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
biblatexhas defined\enquoteifcsquoteswas not loaded. This behaviour was not documented, the official command intended for quotation marks was always\mkbibquote. Becausebiblatexshould not (re)define user-level commands that are not primarily associated with citations or the bibliography, from this release on\enquoteis not defined any more, instead the internal command\blx@enquoteis defined and used. The same holds for\initoquote,\initiquote,\textooquote,\textcoquote,\textoiquote,\textciquote.biblatexstill defines the internal commands\@quotelevel,\@quoteresetand\@setquotesfcodesifcsquotesis not loaded.Users are encouraged to use
csquotesfor proper quotation marks, but can get back the old behaviour with\makeatletter \providerobustcmd*{\enquote}{\blx@enquote} \makeatotheror
\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. -
\DeclareCitePunctuationPositioncan be used to configure the punctuation position for citation commands similar to the optionalpositionargument of\DeclareAutoCiteCommand. -
If the
\pdfmdfivesumprimitive is available (viapdftexcmds'\pdf@mdfivesum) thelabelprefixvalue 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@mdfivesumis unavailable is\let\blx@mdfivesum\@firstofoneAs before the labelprefix value is fully expanded before use. If its contents are unexpandable you need to avoid expansion with
\detokenize.
-
\printbiblistnow supportsdriverandbiblistfilteroptions to change the defaults set by the biblistname. - Add
\mknormrangeto normalise page ranges without compressing them. -
INCOMPATIBLE CHANGE The format for
postnote(multipostnote,volcitepages) normalises page ranges with\mknormrange. Since\mknormrangeacts 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\bibrangedashanyway, 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.Style developers may note that the field format for\DeclareFieldFormat{postnote}{\mkpageprefix[pagination]{#1}} \DeclareFieldFormat{volcitepages}{\mkpageprefix[pagination]{#1}} \DeclareFieldFormat{multipostnote}{\mkpageprefix[pagination]{#1}}pageswas not changed to include\mknormrangebecause 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
@unpublishedentry type now also supportstype,eventtitle,eventdateandvenue. - A long-standing bug with punctuation before
eventdateandvenuewas 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. -
\DeclareSourcemapcan 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}, loadingngermanlocalisation causesngerman-apa.lbxto be read. If that file inherits fromgerman,german-apa.lbxwill be read. Previously onlygerman.lbxwould have been read at that point. Of course ifgerman-apa.lbxinherits fromgerman,german.lbxis 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
\begrelateddelimand\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
locallabelwidthoption 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.
-
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
noerroretextoolsdemotes the incompatibility error foretextoolsto a mere warning if set totrue. Users still need to make sure that\forlistloophas the definition frometoolboxand not the completely incompatible definition frometextools. This option is meant as a last resort for people who must at all costs loadetextoolsor a package that uses it.noerroretextools=truewill always cause a warning even ifetextoolsis not loaded.
- 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
uis nowX - An approximate+uncertain date is now indicated with
%rather than?~ - Open dates are now marked with
..instead ofopenor blank start/end dates. - Unknown dates are now indicated by blank start/end dates rather than
unknownor*
- The "unspecified" marker
- Documentation version fix and loop fix in certain styles
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"
-
\DeclareSortingSchemeis now\DeclareSortingTemplate -
\DeclareSortingNamekeySchemeis now\DeclareSortingNamekeyTemplate - The "sortingnamekeyscheme" option is now "sortingnamekeytemplate"
-
INCOMPATIBLE CHANGE The optional first argument to
\DeclareLabelalphaNameTemplatewas 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.
-
INCOMPATIBLE CHANGE Since this is mostly used to generate localisation strings like
'Translated from the ' via the internal macros
lbx@lfromlangand\lbx@sfromlang, users and style authors should not see any differences. However, if your style printsoriglanguagedirectly using\printfield, this will need to be changed to\printlist.
- 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
\DeclareUniquenameTemplateand\DeclareLabelalphaNameTemplatemay 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 enhanced93-nameparts.texexample file.
-
INCOMPATIBLE CHANGE
extrayearis calledextradatenow. Limited backwards compatibility is in place to allow a smooth transition, but style developers should use the new name. - The new
\DeclareExtradatecommand 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
authoryearstyle family were renamed,cite:labelyear+extrayearbecomescite:labeldate+extradate,cite:extrayeariscite:extradatenow, anddate+extrayearisdate+extradate. Some backwards compatibility code is present, but developers should make sure their code works as expected.
- The
mergedateoutput 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,\ifdatehastimeand\ifdateshavedifferentprecision. - The
authoryearcitation styles now use\printlabeldateextrainstead 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.
- 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. PLEASE NOTE that this means that citing sets directly in default styles not based on labels (authoryear,authortitle,verboseetc.) 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
sortsetsoption. By default the option is set to false and set members appear in the order given in the data source. - The
alphabeticstyle family now also supports thesubentryoption.
- Styles which supply their own location strings in
.lbxfiles typically use\DeclareLanguageMappingto 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:so that the style supplied\DeclareLanguageMapping{american}{american-apa}america-apa.lbxfile is loaded. In a document using the German language, the user would have to use:A new macro\DeclareLanguageMapping{german}{german-apa}\DeclareLanguageMappingSuffixis 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\DeclareLanguageMappingin 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 inapa.bbx:which means that for a given document language\DeclareLanguageMappingSuffix{-apa}<lang>the localisation file<lang>-apa.lbxwill be loaded.\DeclareLanguageMapping, if present, will override\DeclareLanguageMappingSuffix.
- 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\DeclareDelimFormatand\printdelim. - Three new delimiters are introduced.
authortypedelim,editortypedelim, andtranslatortypedelimcontrol 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. -
\DeclareDelimAliasallows one to alias one delimiter to another. E.g.\DeclareDelimAlias{finalnamedelim}{multinamedelim}will makefinalnamedeliman alias formultinamedelim. The starred version\DeclareDelimAlias*is local to the specified contexts.
- The initialisation code for
\usedrivercan now be modified via\AtUsedriver, the code can be executed with\UseUsedriverHook. The default settings retain backwards compatibility with earlier versions. - The field
urlrawcontains the unencoded, raw version of the URL. If the URL includes Unicode characters,urlrawwill show them unencoded while the standardurlfield will contain them in percent-encoded form. -
\mkpagetotalnow has its own bibstrings<pagination>total(s)Previously it relied on the<pagination>(s)bibstrings. -
sortyearis now a literal field and not an integer. - The
etextoolspackage is now officially incompatible. -
bidi-support for footnotes was improved. -
\ifentryseen,\ifentryinbib,\ifentrycategoryand\ifentrykeywordcan now be used outside ofbiblatexmacros directly in the document. -
\letbibmacrocan be used to create bibmacro aliases as if using\let. -
\DeprecateFieldWithReplacement,\DeprecateListWithReplacementand\DeprecateNameWithReplacementcan be used to deprecate a field, name or list and replace it with a new one.
Biber version 2.7 is required for biblatex 3.7
Bugfix release.
Biber version 2.6 is required for biblatex 3.6
This is a minor bugfix release.
Biber version 2.6 is required for biblatex 3.5
-
INCOMPATIBLE CHANGE The labelling system has been generalised
to be able to deal better with names.
\DeclareLabelalphaTemplateno longer uses hard-coded name parts (prefix, family) when extracting label parts from name fields. Name field label extraction now obeys the new\DeclareLabelalphaNameTemplatespecification 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\DeclareLabelalphaTemplatespecifications, you should note that the "pcompound" and "pstrwidth" options to\fieldare now gone and replaced with the relevant settings on\namepartin\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.
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
iso8601date output format is now callededtf. The old name will automatically useedtfand issue a deprecation warning. -
\bibdatedashis now\bibdaterangesepas 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
\nameand\listare now deprecated with warnings. -
INCOMPATIBLE CHANGE The
labeldateoption is renamed tolabeldateparts. Thedatelabeloption is renamed tolabeldateto 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+extrayearmacros in any of the default authoryear styles. - The
labelyearfield 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(labelyearcan contain a literal/bibstring or non date field too). A new fieldlabelendyearwill 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
datezeroswas 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,datezerosenforces leading zeros and also handles all date parts. -
\mkdatezeroshas been replaced with\mkyearzeros,\mkmonthzerosand\mkdayzerosdue to the date internals changes which are more consistent about integer formats of date parts.\mkdatezerosnow generates a deprecation warning and calls\mkmonthzeroswhich is backwards compatible with its old behaviour. -
INCOMPATIBLE CHANGE The .bbl field
datelabelsourcehas been renamed tolabeldatesourceto 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
\printdatelabelhas been renamed to\printlabeldatein 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
\printdatelabelextrahas been renamed to\printlabeldateextrain line with the naming of all other date printing macros. Please use the new name. The old one will issue a deprecation warning.
-
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
singletitleoption 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
sortgiveninitsoption has been deprecated and the functionality generalised. It is replaced by the "inits" option to\namepartin\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.