summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/biblatex/CHANGES.md
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/biblatex/CHANGES.md')
-rw-r--r--macros/latex/contrib/biblatex/CHANGES.md619
1 files changed, 619 insertions, 0 deletions
diff --git a/macros/latex/contrib/biblatex/CHANGES.md b/macros/latex/contrib/biblatex/CHANGES.md
new file mode 100644
index 0000000000..437b096306
--- /dev/null
+++ b/macros/latex/contrib/biblatex/CHANGES.md
@@ -0,0 +1,619 @@
+# 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 `refcontext`s, but BibTeX does not
+ actually support `refcontext`s. The user interface is retained, but BibTeX's
+ "`refcontext`s" 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 `year`s 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
+- 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 <language>' 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.
+ *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.
+
+