summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2024-03-22 21:39:41 +0000
committerKarl Berry <karl@freefriends.org>2024-03-22 21:39:41 +0000
commitb6cb67f6a2515f12a192600424bcdcc3ae784551 (patch)
treea923b3f7aa25000585d278f0b965bf2d0480991e /Master/texmf-dist/doc
parentcc7c54c499848884914ca85db9890c6945e20bdd (diff)
biblatex (22mar24)
git-svn-id: svn://tug.org/texlive/trunk@70725 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc')
-rw-r--r--Master/texmf-dist/doc/latex/biblatex/CHANGES.md16
-rw-r--r--Master/texmf-dist/doc/latex/biblatex/README2
-rw-r--r--Master/texmf-dist/doc/latex/biblatex/biblatex.pdfbin1641916 -> 1664500 bytes
-rw-r--r--Master/texmf-dist/doc/latex/biblatex/biblatex.tex268
-rw-r--r--Master/texmf-dist/doc/latex/biblatex/examples/82-style-debug-biber.pdfbin149679 -> 156537 bytes
-rw-r--r--Master/texmf-dist/doc/latex/biblatex/examples/92-bibliographylists-biber.pdfbin63347 -> 63376 bytes
-rw-r--r--Master/texmf-dist/doc/latex/biblatex/examples/93-nameparts.tex25
-rw-r--r--Master/texmf-dist/doc/latex/biblatex/examples/94-labelprefix.tex30
8 files changed, 273 insertions, 68 deletions
diff --git a/Master/texmf-dist/doc/latex/biblatex/CHANGES.md b/Master/texmf-dist/doc/latex/biblatex/CHANGES.md
index c8d35de4ec1..3bcc0e66d6c 100644
--- a/Master/texmf-dist/doc/latex/biblatex/CHANGES.md
+++ b/Master/texmf-dist/doc/latex/biblatex/CHANGES.md
@@ -1,3 +1,19 @@
+# RELEASE NOTES FOR VERSION 3.20
+- Added new option settings `minyearinit` and `minyearfull` for
+ `uniquename`
+- Added `\DeclareNamehashTemplate` and 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 `\@doendpe` and `\par` call to `\printbibliography` and
+ `\printbiblist`.
+ This means that `\printbibliography` and `\printbiblist`
+ now 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 `\par`
+ or at least a new line, this should hopefully not change the output
+ in too many cases.
+
# RELEASE NOTES FOR VERSION 3.19
- Added `\AtNextRefsection`.
- Added `\DeclareExtradateContext`.
diff --git a/Master/texmf-dist/doc/latex/biblatex/README b/Master/texmf-dist/doc/latex/biblatex/README
index 6b3b1bf430c..36eba1192f6 100644
--- a/Master/texmf-dist/doc/latex/biblatex/README
+++ b/Master/texmf-dist/doc/latex/biblatex/README
@@ -3,7 +3,7 @@ ABOUT
The biblatex package is a complete reimplementation of the
bibliographic facilities provided by LaTeX. A custom backend "biber"
by default is used which processed the BibTeX format data files and
-them performs all sorting, label generation (and a great deal
+then performs all sorting, label generation (and a great deal
more). Legacy BibTeX is also supported as a backend, albeit with a
reduced feature set. Biblatex does not use the backend to format the
bibliography information as with traditional BibTeX: instead of being
diff --git a/Master/texmf-dist/doc/latex/biblatex/biblatex.pdf b/Master/texmf-dist/doc/latex/biblatex/biblatex.pdf
index fde8bee5372..4db6023bdad 100644
--- a/Master/texmf-dist/doc/latex/biblatex/biblatex.pdf
+++ b/Master/texmf-dist/doc/latex/biblatex/biblatex.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/biblatex/biblatex.tex b/Master/texmf-dist/doc/latex/biblatex/biblatex.tex
index 6c4e147b7bd..d91a71b5f72 100644
--- a/Master/texmf-dist/doc/latex/biblatex/biblatex.tex
+++ b/Master/texmf-dist/doc/latex/biblatex/biblatex.tex
@@ -21,6 +21,8 @@
\usepackage{microtype}
\usepackage{typearea}
\usepackage{mdframed}
+\usepackage{enumitem}
+\setlist[itemize]{labelsep=1em}
\areaset[current]{370pt}{700pt}
\lstset{
basicstyle=\ttfamily,
@@ -68,7 +70,7 @@
url={\biblatexhome},
author={Philip Kime, Moritz Wemheuer, Philipp Lehman},
email={},
- revision={3.19},
+ revision={3.20},
date={\today}}
\hypersetup{%
@@ -183,7 +185,7 @@ For a quick start guide, browse \secref{int:abt, bib:typ, bib:fld, bib:use, use:
\subsection[About]{About \biblatex}
\label{int:abt}
-This package provides advanced bibliographic facilities for use with \latex. The package is a complete reimplementation of the bibliographic facilities provided by \latex. The \biblatex\ package works with the \enquote{backend} (program) \biber, which is used to process \bibtex\ format data files and them performs all sorting, label generation (and a great deal more). Formatting of the bibliography is entirely controlled by \tex\ macros. Good working knowledge in \latex should be sufficient to design new bibliography and citation styles. This package also supports subdivided bibliographies, multiple bibliographies within one document, and separate lists of bibliographic information such as abbreviations of various fields. Bibliographies may be subdivided into parts and\slash or segmented by topics. Just like the bibliography styles, all citation commands may be freely defined. Features such as full Unicode support for bibliography data, customisable sorting, multiple bibliographies with different sorting, customisable labels and dynamic data modification are available. Please refer to \secref{int:pre:bibercompat} for information on \biber/\biblatex version compatibility. The package is completely localised and can interface with the \sty{babel} and \sty{polyglossia} packages. Please refer to \tabref{bib:fld:tab1} for a list of languages currently supported by this package.
+This package provides advanced bibliographic facilities for use with \latex. The package is a complete reimplementation of the bibliographic facilities provided by \latex. The \biblatex\ package works with the \enquote{backend} (program) \biber, which is used to process \bibtex\ format data files and then performs all sorting, label generation (and a great deal more). Formatting of the bibliography is entirely controlled by \tex\ macros. Good working knowledge in \latex should be sufficient to design new bibliography and citation styles. This package also supports subdivided bibliographies, multiple bibliographies within one document, and separate lists of bibliographic information such as abbreviations of various fields. Bibliographies may be subdivided into parts and\slash or segmented by topics. Just like the bibliography styles, all citation commands may be freely defined. Features such as full Unicode support for bibliography data, customisable sorting, multiple bibliographies with different sorting, customisable labels and dynamic data modification are available. Please refer to \secref{int:pre:bibercompat} for information on \biber/\biblatex version compatibility. The package is completely localised and can interface with the \sty{babel} and \sty{polyglossia} packages. Please refer to \tabref{bib:fld:tab1} for a list of languages currently supported by this package.
\subsection{License}
@@ -252,7 +254,7 @@ The resources listed in this section are strictly required for \biblatex to func
The \biblatex package requires \etex. \tex distributions have been providing \etex binaries for quite some time, the popular distributions use them by default these days. The \biblatex package checks if it is running under \etex. Simply try compiling your documents as you usually do, the chances are that it just works. If you get an error message, try compiling the document with \bin{elatex} instead of \bin{latex} or \bin{pdfelatex} instead of \bin{pdflatex}, respectively.
\item[\biber]
-\biber is the backend of \biblatex used to transfer data from source files to the \latex code. \biber comes with TeX Live and is also available from SourceForge.\fnurl{https://biblatex-biber.sourceforge.net/}. \biber uses the \texttt{btparse} C library for \bibtex format file parsing which aimed to be compatible with \bibtex's parsing rules but also aimed at correcting some of the common problems. For details, see the manual page for the Perl \texttt{Text::BibTeX} module\fnurl{https://metacpan.org/release/Text-BibTeX}.
+\biber is the backend of \biblatex used to transfer data from source files to the \latex code. \biber comes with TeX Live and is also available from SourceForge.\fnurl{https://biblatex-biber.sourceforge.net/} \biber uses the \texttt{btparse} C library for \bibtex format file parsing which aimed to be compatible with \bibtex's parsing rules but also aimed at correcting some of the common problems. For details, see the manual page for the Perl \texttt{Text::BibTeX} module.\fnurl{https://metacpan.org/release/Text-BibTeX}
\item[etoolbox]
This \latex package, which is loaded automatically, provides generic programming facilities required by \biblatex. It is available from \acr{CTAN}.\fnurl{https://ctan.org/pkg/etoolbox}
@@ -270,7 +272,7 @@ This \latex package, which is loaded automatically, implements \pdftex primitive
\end{marglist}
-Apart from the above resources, \biblatex also requires the standard \latex packages \sty{keyval} and \sty{ifthen} as well as the \sty{url} package. These package are included in all common \tex distributions and will be loaded automatically.
+Apart from the above resources, \biblatex also requires the standard \latex packages \sty{keyval} and \sty{ifthen} as well as the \sty{url} package. These packages are included in all common \tex distributions and will be loaded automatically.
\subsubsection{Recommended Packages}
\label{int:pre:rec}
@@ -280,7 +282,7 @@ The packages listed in this section are not strictly required for \biblatex to f
\begin{marglist}
\item[babel/polyglossia]
-The \sty{babel} and \sty{polyglossia} packages provides the core architecture for multilingual typesetting. If you are writing in a language other than American English, using one of these packages is strongly recommended. You should load \sty{babel} or \sty{polyglossia} before \biblatex and then \biblatex will detect \sty{babel} or \sty{polyglossia} automatically. (While \sty{babel} may be loaded after \biblatex if so desired, \sty{polyglossia} must always be loaded before \biblatex.)
+The \sty{babel} and \sty{polyglossia} packages provide the core architecture for multilingual typesetting. If you are writing in a language other than American English, using one of these packages is strongly recommended. You should load \sty{babel} or \sty{polyglossia} before \biblatex and then \biblatex will detect \sty{babel} or \sty{polyglossia} automatically. (While \sty{babel} may be loaded after \biblatex if so desired, \sty{polyglossia} must always be loaded before \biblatex.)
\biblatex has only limited support for \sty{polyglossia} versions prior to~v1.45 (2019/10/27). Additional useful features for \biblatex were added in version~1.49. If \sty{polyglossia} is used, it should be updated to version~1.49 (2020/04/08) or above.
@@ -320,7 +322,7 @@ The \sty{showkeys} package prints the internal keys of, among other things, cita
When using the \sty{memoir} class, the default bibliography headings are adapted such that they blend well with the default layout of this class. See \secref{use:cav:mem} for further usage hints.
\item[\acr{KOMA}-Script]
-When using any of the \sty{scrartcl}, \sty{scrbook}, or \sty{scrreprt} classes, the default bibliography headings are adapted such that they blend with the default layout of these classes. See \secref{use:cav:scr} for further usage hints.
+When using any of the \sty{scrartcl}, \sty{scrbook}, or \sty{scrreprt} classes, the default bibliography headings are adapted such that they blend well with the default layout of these classes. See \secref{use:cav:scr} for further usage hints.
If available \biblatex makes use of some of the more recent of \acr{KOMA}-Script's \emph{do-hooks}. The relevant hooks are present from version~3.27 (2019/10/12) onwards, which is therefore the minimum version recommendation.
@@ -413,6 +415,7 @@ compatibility matrix for the recent versions.
\sffamily\bfseries\spotcolor Biber version
& \sffamily\bfseries\spotcolor \biblatex\ version\\
\midrule
+2.20 & 3.20\\
2.19 & 3.19\\
2.18 & 3.18\\
2.17 & 3.17\\
@@ -462,7 +465,7 @@ compatibility matrix for the recent versions.
This section describes the default data model defined in the \file{blx-dm.def} file which is part of \path{biblatex}. The data model is defined using the macros documented in \secref{aut:ctm:dm}. It is possible to redefine the data model which both \biblatex and \biber use so that datasources can contain new entrytypes and fields (which of course will need style support). The data model specification also allows for constraints to be defined so that data sources can be validated against the data model (using \biber's \opt{--validate-datamodel} option). Users who want to customise the data model need to look at the \file{blx-dm.def} file and to read \secref{aut:ctm:dm}.
-All entry types and field names are given in all-lowercase form here. This is how the entry types and field names are given in the data model. While the \biber/\bibtex input side is case insensitive, the \latex side is case sensitive and uses the exact capitalisation from the data model. This means that the input in the \file{bib} file may use any capitalisation of entry types and field names, but when the fields are used in the \latex document---for example in \cmd{citefield}---the capitalisation must match the captalisation in the data model, for standard types and fields that would be all lowercase.
+All entry types and field names are given in all-lowercase form here. This is how the entry types and field names are given in the data model. While the \biber/\bibtex input side is case insensitive, the \latex side is case sensitive and uses the exact capitalisation from the data model. This means that the input in the \file{bib} file may use any capitalisation of entry types and field names, but when the fields are used in the \latex document---for example in \cmd{citefield}---the capitalisation must match the capitalisation in the data model, for standard types and fields that would be all lowercase.
\subsection{Entry Types}
\label{bib:typ}
@@ -770,7 +773,7 @@ In datasources such as a \file{bib} file, all bibliographic data is specified in
\item[Name lists] are parsed and split up into the individual items at the \texttt{and} delimiter. Each item in the list is then dissected into the name part components: by default the given name, the name prefix (von, van, of, da, de, della, \dots), the family name, and the name suffix (junior, senior, \dots). The valid name parts can be customised by changing the datamodel definition described in \secref{aut:bbx:drv}. Name lists may be truncated in the \file{bib} file with the keyword <\texttt{and others}>. Typical examples of name lists are \bibfield{author} and \bibfield{editor}.
-Name list fields automatically have an \cmd{ifuse*} test created as per the name lists in the default data model (see \secref{aut:aux:tst}). They are also automatically have a \opt{ifuse*} option created which controls labelling and sorting behaviour with the name (see \secref{use:opt:bib:hyb}). \biber supports a customisable set of name parts but currently this is defined to be the same set of parts as supported by traditional \bibtex:
+Name list fields automatically have an \cmd{ifuse*} test created as per the name lists in the default data model (see \secref{aut:aux:tst}). They also automatically have an \opt{ifuse*} option created which controls labelling and sorting behaviour with the name (see \secref{use:opt:bib:hyb}). \biber supports a customisable set of name parts but currently this is defined to be the same set of parts as supported by traditional \bibtex:
\begin{itemize}
\item Family name (also known as <last> part)
@@ -1435,7 +1438,7 @@ Custom lists for special bibliography styles. Not used by the standard bibliogra
Custom fields for special bibliography styles. Not used by the standard bibliography styles.
-\fielditem{verb{[a--c]}}{literal}
+\fielditem{verb{[a--c]}}{verbatim}
Similar to the custom fields above except that these are verbatim fields. Not used by the standard bibliography styles.
@@ -2110,18 +2113,25 @@ The following options may be used in the optional argument to \cmd{usepackage} a
\begin{optionlist}
-\optitem[nty]{sorting}{\opt{nty}, \opt{nyt}, \opt{nyvt}, \opt{anyt}, \opt{anyvt}, \opt{ynt}, \opt{ydnt}, \opt{none}, \opt{count}, \opt{debug}, \prm{name}}
+\optitem[nty]{sorting}{\opt{nty}, \opt{ntd}, \opt{nyt}, \opt{ndt}, \opt{nyvt}, \opt{ndvt}, \opt{anyt}, \opt{andt}, \opt{anyvt}, opt{andvt}, \opt{ynt}, \opt{dnt}, \opt{ydnt}, \opt{ddnt}, \opt{none}, \opt{count}, \opt{debug}, \prm{name}}
The sorting order of the bibliography. Unless stated otherwise, the entries are sorted in ascending order. The following choices are available by default:
\begin{valuelist}
\item[nty] Sort by name, title, year.
+\item[ntd] Sort by name, title, full date.
\item[nyt] Sort by name, year, title.
+\item[ndt] Sort by name, full date, title.
\item[nyvt] Sort by name, year, volume, title.
+\item[ndvt] Sort by name, full date, volume, title.
\item[anyt] Sort by alphabetic label, name, year, title.
+\item[andt] Sort by alphabetic label, name, full date, title.
\item[anyvt] Sort by alphabetic label, name, year, volume, title.
+\item[andvt] Sort by alphabetic label, name, full date, volume, title.
\item[ynt] Sort by year, name, title.
+\item[dnt] Sort by full date, name, title.
\item[ydnt] Sort by year (descending), name, title.
+\item[ddnt] Sort by full date (descending), name, title.
\item[none] Do not sort at all. All entries are processed in citation order.
\item[count] Sort in descending order of number of times cited
\item[debug] Sort by entry key. This is intended for debugging only.
@@ -2362,8 +2372,6 @@ This option automatically starts a new reference section at a document division
\item[subsection] Start a reference section at every \cmd{subsection} command.
\item[subsection+] Start a reference section at every \cmd{subsection} and every higher level of sectioning, i.e. \cmd{part}, \cmd{chapter} (if available) and \cmd{section}.
\end{valuelist}
-%
-The starred versions of these commands will not start a new reference section.
\optitem[none]{refsegment}{\opt{none}, \opt{part}, \opt{chapter}, \opt{chapter+}, \opt{section}, \opt{section+}, \opt{subsection}, \opt{subsection+}}
@@ -2599,7 +2607,8 @@ As \opt{mincrossrefs} but for \bibfield{xref} fields.
\boolitem[true]{bibtexcaseprotection}
-This option only has an effect when the \sty{expl3} implementation of the case changing functions is selected. If the option is set to \opt{true}, \cmd{MakeSentenceCase*} supports brace protection of words from case change as in classical \bibtex. If the option is set to \opt{false}, pairs of braces no longer imply case protection, which can now be enforced by wrapping the relevant word in \cmd{NoCaseChange}---this makes for a less confusing, if more verbose, markup of case protection.
+This option only has an effect when the \sty{expl3} implementation of the case changing functions is selected. If the option is set to \opt{true}, \cmd{MakeSentenceCase*} supports brace protection of words from case change as in classical \bibtex. If the option is set to \opt{false}, pairs of braces no longer imply case protection, which can now be achieved by wrapping the relevant word in \cmd{NoCaseChange}---this makes for a less confusing, if more verbose, markup of case protection.
+For examples of the effect of this option refer to the documentation of \cmd{MakeSentenceCase*} in \secref{aut:aux:msc}.
\end{optionlist}
@@ -2704,7 +2713,7 @@ Whether \emph{ibidem} without page reference means <same work> or <same work + s
\optitem[permit]{citepages}{\opt{permit}, \opt{suppress}, \opt{omit}, \opt{separate}}
-This option controls the output of the \bibfield{page}\slash\bibfield{pagetotal} field in the full citation in combination with a postnote containing a page range. The option can be used to suppress references to two page ranges in full citations like the following
+This option controls the output of the \bibfield{pages}\slash\bibfield{pagetotal} field in the full citation in combination with a postnote containing a page range. The option can be used to suppress references to two page ranges in full citations like the following
\begin{quote}
Author. \enquote{Title.} In: \emph{Book,} pp.\,100--150, p.\,125.
@@ -2713,10 +2722,10 @@ Author. \enquote{Title.} In: \emph{Book,} pp.\,100--150, p.\,125.
Here <p.\,125> is the \bibfield{postnote} argument and <pp.\,100--150> is the value of the \bibfield{pages} field.
\begin{valuelist}
-\item[permit] Allow duplication of page specifications, i.e.\ print both \bibfield{page}\slash\bibfield{pagetotal} and \bibfield{postnote}.
-\item[suppress] Unconditionally suppress the \bibfield{pages}\slash \bibfield{pagetotal} fields in citations, regardless of the \bibfield{postnote}.
+\item[permit] Allow duplication of page specifications, i.e.\ print both \bibfield{pages}\slash\bibfield{pagetotal} and \bibfield{postnote}.
+\item[suppress] Unconditionally suppress the \bibfield{pages}\slash\bibfield{pagetotal} fields in citations, regardless of the \bibfield{postnote}.
\item[omit] Suppress the \bibfield{pages}\slash \bibfield{pagetotal} if the \bibfield{postnote} contains a page range. They are still printed if there is no \bibfield{postnote} or if the \bibfield{postnote} is not a number or range.
-\item[separate] Separate the \bibfield{pages}\slash \bibfield{pagetotal} from the \bibfield{postnote} if the latter contains a page range. The string \texttt{thiscite} is added to separate the two page ranges.
+\item[separate] Separate the \bibfield{pages}\slash\bibfield{pagetotal} from the \bibfield{postnote} if the latter contains a page range. The string \texttt{thiscite} is added to separate the two page ranges.
\end{valuelist}
\end{optionlist}
@@ -2895,7 +2904,7 @@ Whether or not to provide the special field \bibfield{extratitle}, see \secref{a
\boolitem[false]{labeltitleyear}
-Whether or not to provide the special field \bibfield{extratitleyear}, see \secref{aut:bbx:fld} for details. Note that the special field \bibfield{labeltitle} is always provided and this option controls rather whether \bibfield{labeltitle} is used to generate \bibfield{extratitleyear} information. This option is also settable on a per-type and per-entry basis. Table \ref{use:opt:tab1} summarises the various \opt{extra*} disambiguation counters and what they track.
+Whether or not to provide the special field \bibfield{extratitleyear}, see \secref{aut:bbx:fld} for details. Note that the special field \bibfield{labeltitleyear} is always provided and this option controls rather whether \bibfield{labeltitleyear} is used to generate \bibfield{extratitleyear} information. This option is also settable on a per-type and per-entry basis. Table \ref{use:opt:tab1} summarises the various \opt{extra*} disambiguation counters and what they track.
\boolitem[false]{labeldateparts}
@@ -2948,7 +2957,7 @@ Whether or not to provide the data required by the \cmd{ifuniqueprimaryauthor} t
This option is also settable on a per-type and per-entry basis.
\optitem[false]{uniquename}{\opt{true}, \opt{false}, \opt{init}, \opt{full}, \opt{allinit}, \opt{allfull},
-\opt{mininit}, \opt{minfull}}
+\opt{mininit}, \opt{minfull}, \opt{minyearinit}, \opt{minyearfull}}
Whether or not to update the \cnt{uniquename} counter, see \secref{aut:aux:tst} for details. This feature will disambiguate individual names in the \bibfield{labelname} list. This option is also settable on a per-type, per-entry, per-namelist and per-name basis. The possible choices are:
@@ -2961,6 +2970,8 @@ Whether or not to update the \cnt{uniquename} counter, see \secref{aut:aux:tst}
\item[allfull] Similar to \opt{full} but disambiguates all names in the \bibfield{labelname} list, beyond \opt{maxnames}\slash \opt{minnames}\slash \opt{uniquelist}.
\item[mininit] A variant of \texttt{init} which only disambiguates names in identical lists of base nameparts (by default, lists of family names).
\item[minfull] A variant of \texttt{full} which only disambiguates names in identical lists of base nameparts (by default, lists of family names).
+\item[minyearinit] A variant of \texttt{mininit} which only disambiguates names in identical lists of base nameparts plus labelyear.
+\item[minyearfull] A variant of \texttt{minfull} which only disambiguates names in identical lists of base nameparts plus labelyear.
\end{valuelist}
%
Note that the \opt{uniquename} option will also affect \opt{uniquelist}, the \cmd{ifsingletitle} test, and the \bibfield{extradate} and \bibfield{extraname} fields. See \secref{aut:cav:amb} for further details and practical examples.
@@ -3124,7 +3135,8 @@ Whether the default data model name part <prefix> (von, van, of, da, de, della,
\item Generating name uniqueness information
\item Formatting aspects of the bibliography
\end{itemize}
-%
+
+%
For example, if this option is enabled, \biblatex precedes the family name with the prefix---Ludwig van Beethoven would be cited as «van Beethoven» and alphabetized as «Van Beethoven, Ludwig». If this option is disabled (the default), he is cited as «Beethoven» and alphabetized as «Beethoven, Ludwig van» instead.
This option is also settable on a per-type scope. With \biblatexml datasources and the \bibtex extended name format supported by \biber (see \secref{use:enf}), this is also settable on per-namelist and per-name scopes.
@@ -3394,6 +3406,13 @@ format, see \secref{use:opt:bib:hyb}:
AUTHOR = {nosortothers=true and Hans Harman and
given=Simon, family=Beumont, prefix=de, useprefix=true}
\end{lstlisting}
+%
+A special \prm{id} parameter may also be used for any name and this will be used to override the hash used to detect identical names, for example, a gender change could be handled like this (see also \secref{aut:cav:ni}):
+
+\begin{lstlisting}[style=bibtex]{}
+ AUTHOR = {id=person1, given=Simon, family=Beumont}
+ AUTHOR = {id=person1, given=Simone, family=Beumont}
+\end{lstlisting}
\subsection{Related Entries}
\label{use:rel}
@@ -3477,6 +3496,8 @@ The first item considered in the sorting process is always the \bibfield{presort
The chronological sorting templates presented in \apxref{apx:srt:chr} also make use of the \bibfield{presort} and \bibfield{sortkey} fields, if defined. The next item considered is the \bibfield{sortyear} or the \bibfield{year} field, depending on availability. The \opt{ynt} template extracts the first four Arabic figures from the field. If both fields are undefined, the string \texttt{9999} is used as a fallback value. This means that all entries without a year will be moved to the end of the list. The \opt{ydnt} template is similar in concept but sorts the year in descending order. As with the \opt{ynt} template, the string \texttt{9999} is used as a fallback value. The remaining items are similar to the alphabetic sorting templates discussed above. Note that the \opt{ydnt} sorting template will only sort the date in descending order. All other items are sorted in ascending order as usual.
+Most built-in sorting templates have a variant which sorts on all of the available parts of a full ISO8601 date right down to \bibfield{seconds} instead of only the year, see \secref{use:opt:pre}.
+
Using special fields such as \bibfield{sortkey}, \bibfield{sortname}, or \bibfield{sorttitle} is usually not required. The \biblatex package is quite capable of working out the desired sorting order by using the data found in the regular fields of an entry. You will only need them if you want to manually modify the sorting order of the bibliography or if any data required for sorting is missing. Please refer to the field descriptions in \secref{bib:fld:spc} for details on possible uses of the special fields.
\subsection{Data Annotations}
@@ -3796,8 +3817,17 @@ The prenote is an arbitrary piece of text to be printed after the heading but be
\valitem{postnote}{name}
+
The postnote is an arbitrary piece of text to be printed after the list of references. This option selects the postnote \prm{name}, as defined with \cmd{defbibnote}. By default, no postnote is printed. The note is printed in the standard text font. It is not affected by \cmd{bibsetup} and \cmd{bibfont} but it may contain its own font declarations. See \secref{use:bib:nts} for details.
+\end{optionlist*}
+
+The following options can be used to <filter> the entries printed in the bibliography.
+If several <filtering options> are used---including cases where the same option is used multiple times with different values---,
+an entry will only be printed if it satisfies all filtering conditions.
+In other words, <filtering options> are connected via a logic \emph{and}.
+
+\begin{optionlist*}
\intitem[\normalfont\em current section]{section}
Print only entries cited in reference section \prm{integer}. The reference sections are numbered starting at~1. All citations given outside a \env{refsection} environment are assigned to section~0. See \secref{use:bib:sec} for details and \secref{use:use:mlt} for usage examples.
@@ -3846,6 +3876,13 @@ Filter the entries with filter \prm{name}, as defined with \cmd{defbibfilter}. S
Filter the entries with check \prm{name}, as defined with \cmd{defbibcheck}. See \secref{use:bib:flt} for details.
+\end{optionlist*}
+
+The following options are useful in <split bibliography> setups, where several bibliographies (with different filtering options)
+are printed in the same document.
+
+\begin{optionlist*}
+
\valitem{resetnumbers}{true,false,number}
This option applies to numerical citation\slash bibliography styles only and requires that the \opt{defernumbers} option from \secref{use:opt:pre:gen} be enabled globally. If enabled, it will reset the numerical labels assigned to the entries in the respective bibliography, \ie the numbering will restart at~1. You can also pass a number to this option, for example: \texttt{resetnumbers=10} to reset numbering to the specified number to aid numbering continuity across documents. Use this option with care as \biblatex can not guarantee unique labels globally if they are reset manually.
@@ -3876,7 +3913,7 @@ This command loops over all bibliography categories. This is equivalent to givin
\cmditem{printbibheading}[key=value, \dots]
-This command prints a bibliography heading defined with \cmd{defbibheading}. It takes one optional argument, which is a list of options given in \keyval notation. The options are a small subset of those supported by \cmd{printbibliography}. Valid options are \opt{heading}, \opt{title} and \opt{label}. By default, this command uses the heading \texttt{bibliography}. See \secref{use:bib:hdg} for details. Also see \secref{use:use:mlt,use:use:div} for usage examples.
+This command prints a bibliography heading defined with \cmd{defbibheading}. It takes one optional argument, which is a list of options given in \keyval notation. The options are a small subset of those supported by \cmd{printbibliography}. Valid options are \opt{heading}, \opt{title}, \opt{label}, \opt{prenote} and \opt{postnote}. Note that both the \opt{prenote} and \opt{postnote} argument are printed after the heading. Their behaviour exactly mirrors that of \cmd{printbibliography}, except that no bibliography is created in between the two notes. By default, this command uses the heading \texttt{bibliography}. See \secref{use:bib:hdg} for details. Also see \secref{use:use:mlt,use:use:div} for usage examples.
\cmditem{DeclarePrintbibliographyDefaults}{key=value, \dots}
@@ -3912,7 +3949,7 @@ This command prints a bibliography list. It takes an optional argument, which is
The \prm{biblistname} is a mandatory argument which names the bibliography list. This name is used to identify:
\begin{itemize}
\item The default bibliography driver used to print the list entries
-\item A default bibliography list filter declared with \cmd{DeclareBiblistFilter} (see \secref{aut:ctm:bibfilt}) used to filter the entries returned from \biber
+\item A default bibliography list filter declared with \cmd{DeclareBiblistFilter} (see \secref{aut:ctm:bibfilt}) used to filter the entries returned by \biber in the \file{.bbl}
\item A default check declared with \cmd{defbibcheck} (see \secref{use:bib:flt}) used to post-process the list entries
\item The default bib environment to use
\item The default sorting template to use
@@ -4336,9 +4373,13 @@ Specify a uniquename template defined previously with \cmd{DeclareUniquenameTemp
Specify a template defined previously with \cmd{DeclareLabelalphaNameTemplate} (see \secref{aut:ctm:lab}). This template is used to construct name parts of alphabetic labels for names inside the context. The template name can also be specified (in increasing order of preference) per"=entry, per"=name list and per"=name. See \secref{apx:opt} for information on setting per"=option, per"=namelist and per"=name options.
+\valitem{namehashtemplatename}{name}
+
+Specify a template defined previously with \cmd{DeclareNamehashTemplate} (see \secref{aut:cav:ni}). This template is used to construct name hashes used to determine whether names refer to the same person. The template name can also be specified (in increasing order of preference) per"=entry, per"=name list and per"=name. See \secref{apx:opt} for information on setting per"=option, per"=namelist and per"=name options.
+
\valitem{nametemplates}{name}
-A convenience meta-option which sets \opt{sortingnamekeytemplate}, \opt{uniquenametemplate} and \opt{labelalphanametemplate} to the same template name. This option can also be specified (in increasing order of preference) per"=entry, per"=name list and per"=name. See \secref{apx:opt} for information on setting per"=option, per"=namelist and per"=name options.
+A convenience meta-option which sets \opt{sortingnamekeytemplate}, \opt{uniquenametemplate}, \opt{labelalphanametemplate} and \opt{namehashtemplate} to the same template name. This option can also be specified (in increasing order of preference) per"=entry, per"=name list and per"=name. See \secref{apx:opt} for information on setting per"=option, per"=namelist and per"=name options.
\valitem{labelprefix}{string}
@@ -4715,7 +4756,7 @@ Similar to \cmd{fullcite} but puts the entire citation in a footnote and adds a
\cmditem{volcite}[prenote]{volume}[pages]{key}
\cmditem{Volcite}[prenote]{volume}[pages]{key}
-These commands are similar to \cmd{cite} and \cmd{Cite} but intended for references to multi"=volume works which are cited by volume and page number. Instead of the \prm{postnote}, they take a mandatory \prm{volume} and an optional \prm{pages} argument. Since they merely compose the postnote and pass it to the \cmd{cite} command provided by the citation style as a \prm{postnote} argument, these commands are style independent. The volume and pages/text portion are formatted with the macro \cmd{mkvolcitenote} when they are passed on to the citation command. Additionally they are made available in the special fields \bibfield{volcitevolume} and \bibfield{volcitevolume} (\secref{aut:cbx:fld}) The format of the volume portion is controlled by the field formatting directive \opt{volcitevolume}, the format of the pages/text portion is controlled by the field formatting directive \opt{volcitepages} (\secref{aut:fmt:ich}). The delimiter printed between the volume portion and the pages/text portion may be modified by redefining the macro \cmd{volcitedelim} (\secref{aut:fmt:fmt}).
+These commands are similar to \cmd{cite} and \cmd{Cite} but intended for references to multi"=volume works which are cited by volume and page number. Instead of the \prm{postnote}, they take a mandatory \prm{volume} and an optional \prm{pages} argument. Since they merely compose the postnote and pass it to the \cmd{cite} command provided by the citation style as a \prm{postnote} argument, these commands are style independent. The volume and pages/text portion are formatted with the macro \cmd{mkvolcitenote} when they are passed on to the citation command. Additionally they are made available in the special fields \bibfield{volcitevolume} and \bibfield{volcitepages} (\secref{aut:cbx:fld}) The format of the volume portion is controlled by the field formatting directive \opt{volcitevolume}, the format of the pages/text portion is controlled by the field formatting directive \opt{volcitepages} (\secref{aut:fmt:ich}). The delimiter printed between the volume portion and the pages/text portion may be modified by redefining the macro \cmd{volcitedelim} (\secref{aut:fmt:fmt}).
\cmditem{volcites}(multiprenote)(multipostnote)[prenote]{volume}[pages]{key}|\\...|[prenote]{volume}[pages]{key}
\cmditem{Volcites}(multiprenote)(multipostnote)[prenote]{volume}[pages]{key}|\\...|[prenote]{volume}[pages]{key}
@@ -5470,7 +5511,11 @@ The language specific separator to be used between multiple ranges. Defaults to
\csitem{bibdatesep}
-The language specific separator used between date components in terse date formats. Defaults to \cmd{hyphen}.
+The language specific separator used between date components in terse/short date formats. Defaults to \cmd{hyphen}.
+
+\csitem{bibdatendsep}
+
+The language specific separator used between date components in terse/short date formats when there is no day part of the date (usually meaning month and year only). Defaults to \cmd{hyphen}.
\csitem{bibdaterangesep}
@@ -7021,18 +7066,15 @@ This field holds an integer indicating the position of a set member in the entry
\fielditem{hash}{string}
-This field is special in that it is only available locally in name formatting directives. It holds a hash string which uniquely identifies individual names in a name list. This information is available for all names in all name lists. See also \bibfield{namehash} and \bibfield{fullhash}.
+This field is special in that it is only available locally in name formatting directives. It holds a hash string which uniquely identifies individual names in a name list. This information is available for all names in all name lists. See also \bibfield{namehash} and \bibfield{fullhash}. Sensitive to the hash customisations described in \secref{aut:cav:ni}.
\fielditem{namehash}{string}
-A hash string which uniquely identifies the \bibfield{labelname} list. This is useful for recurrence checks. For example, a citation style which replaces recurrent authors or editors with a string like <idem> could save the \bibfield{namehash} field with \cmd{savefield} and use it in a comparison with \cmd{iffieldequals} later (see \secref{aut:aux:dat, aut:aux:tst}). The \bibfield{namehash} is derived from the truncated \bibfield{labelname} list, \ie it is responsive to \opt{maxcitenames} and \opt{mincitenames}. See also \bibfield{hash} and \bibfield{fullhash}.
+A hash string which uniquely identifies the \bibfield{labelname} list. This is useful for recurrence checks. For example, a citation style which replaces recurrent authors or editors with a string like <idem> could save the \bibfield{namehash} field with \cmd{savefield} and use it in a comparison with \cmd{iffieldequals} later (see \secref{aut:aux:dat, aut:aux:tst}). The \bibfield{namehash} is derived from the truncated \bibfield{labelname} list, \ie it is responsive to \opt{maxcitenames} and \opt{mincitenames}. See also \bibfield{hash} and \bibfield{fullhash}. Sensitive to the hash customisations described in \secref{aut:cav:ni}.
\fielditem{bibnamehash}{string}
-As \bibfield{namehash} but responsive to \opt{maxbibnames} and
-\opt{minbibnames}. This is not used in standard styles but may be used to
-make tests in bibliography lists (such as those used to determine whether
-dashes should replace repeated authors) behave differently.
+As \bibfield{namehash} but responsive to \opt{maxbibnames} and \opt{minbibnames}. This is not used in standard styles but may be used to make tests in bibliography lists (such as those used to determine whether dashes should replace repeated authors) behave differently. Sensitive to the hash customisations described in \secref{aut:cav:ni}.
\fielditem{$<$namelist$>$namehash}{string}
@@ -7044,12 +7086,20 @@ As \bibfield{bibnamehash} for the name list called <namelist>.
\fielditem{fullhash}{string}
-A hash string which uniquely identifies the \bibfield{labelname} list. This fields differs from \bibfield{namehash} in two details: 1) The \bibfield{shortauthor} and \bibfield{shorteditor} lists are ignored when generating the hash. 2) The hash always refers to the full list, ignoring \opt{maxnames} and \opt{minnames}. See also \bibfield{hash} and \bibfield{namehash}.
+A hash string which uniquely identifies the \bibfield{labelname} list. This fields differs from \bibfield{namehash} in two details: 1) The \bibfield{shortauthor} and \bibfield{shorteditor} lists are ignored when generating the hash. 2) The hash always refers to the full list, ignoring \opt{maxnames} and \opt{minnames}. See also \bibfield{hash} and \bibfield{namehash}. Sensitive to the hash customisations described in \secref{aut:cav:ni}.
+
+\fielditem{fullhashraw}{string}
+
+As \bibfield{fullhash} but not sensitive to the hash customisations described in \secref{aut:cav:ni}. Basically a hash of all of the full nameparts of a name as it appears in the data. Not used in the default styles but could be used to discriminate between the literal given glyphs of a name and the name as it is desired to be identified for name matching purposes.
\fielditem{$<$namelist$>$fullhash}{string}
As \bibfield{fullhash} for the name list called <namelist>.
+\fielditem{$<$namelist$>$fullhashraw}{string}
+
+As \bibfield{fullhashraw} for the name list called <namelist>.
+
\listitem{pageref}{literal}
If the \opt{backref} package option is enabled, this list holds the page numbers of the pages on which the respective bibliography entry is cited. If there are \env{refsection} environments in the document, the back references are local to the reference sections.
@@ -7654,7 +7704,7 @@ Specifies arbitrary \prm{code} required for a partial reset of the citation styl
\cmditem{DeclareCiteCommand}{command}[wrapper]{precode}{loopcode}{sepcode}{postcode} \cmditem*{DeclareCiteCommand*}{command}[wrapper]{precode}{loopcode}{sepcode}{postcode}
-This is the core command used to define all citation commands. It takes one optional and five mandatory arguments. The \prm{command} is the command to be defined, for example \cmd{cite}. If the optional \prm{wrapper} argument is given, the entire citation will be passed to the \prm{wrapper} as an argument, \ie the wrapper command must take one mandatory argument.\footnote{Typical examples of wrapper commands are \cmd{mkbibparens} and \cmd{mkbibfootnote}.} The \prm{precode} is arbitrary code to be executed at the beginning of the citation. It will typically handle the \prm{prenote} argument which is available in the \bibfield{prenote} field. It may also be used to initialize macros required by the \prm{loopcode}. The \prm{loopcode} is arbitrary code to be executed for each entry key passed to the \prm{command}. This is the core code which prints the citation labels or any other data. The \prm{sepcode} is arbitrary code to be executed after each iteration of the \prm{loopcode}. It will only be executed if a list of entry keys is passed to the \prm{command}. The \prm{sepcode} will usually insert some kind of separator, such as a comma or a semicolon. The \prm{postcode} is arbitrary code to be executed at the end of the citation. The \prm{postcode} will typically handle the \prm{postnote} argument which is available in the \bibfield{postnote} field.\footnote{The bibliographic data available to the \prm{loopcode} is the data of the entry currently being processed. In addition to that, the data of the first entry is available to the \prm{precode} and the data of the last one is available to the \prm{postcode}. <First> and <last> refer to the order in which the citations are printed. If the \opt{sortcites} package option is active, this is the order of the list after sorting. Note that no bibliographic data is available to the \prm{sepcode}.} The starred variant of \cmd{DeclareCiteCommand} defines a starred \prm{command}. For example, |\DeclareCiteCommand*{cite}| would define |\cite*|.\footnote{Note that the regular variant of \cmd{DeclareCiteCommand} defines a starred version of the \prm{command} implicitly, unless the starred version has been defined before. This is intended as a fallback. The implicit definition is an alias for the regular variant.}
+This is the core command used to define all citation commands. It takes one optional and five mandatory arguments. The \prm{command} is the command to be defined, for example \cmd{cite}. If the optional \prm{wrapper} argument is given, the entire citation will be passed to the \prm{wrapper} as an argument, \ie the wrapper command must take one mandatory argument.\footnote{Typical examples of wrapper commands are \cmd{mkbibparens} and \cmd{mkbibfootnote}.} The \prm{precode} is arbitrary code to be executed at the beginning of the citation. It will typically handle the \prm{prenote} argument which is available in the \bibfield{prenote} field. It may also be used to initialize macros required by the \prm{loopcode}. The \prm{loopcode} is arbitrary code to be executed for each entry key passed to the \prm{command}. This is the core code which prints the citation labels or any other data. The \prm{sepcode} is arbitrary code to be executed after each iteration of the \prm{loopcode}. It will only be executed if a list of entry keys is passed to the \prm{command}. The \prm{sepcode} will usually insert some kind of separator, such as a comma or a semicolon. The \prm{postcode} is arbitrary code to be executed at the end of the citation. The \prm{postcode} will typically handle the \prm{postnote} argument which is available in the \bibfield{postnote} field.\footnote{The bibliographic data available to the \prm{loopcode} is the data of the entry currently being processed. In addition to that, the data of the first entry is available to the \prm{precode} and the data of the last one is available to the \prm{postcode}. <First> and <last> refer to the order in which the citations are printed. If the \opt{sortcites} package option is active, this is the order of the list after sorting. Note that no bibliographic data is available to the \prm{sepcode}.} The starred variant of \cmd{DeclareCiteCommand} defines a starred \prm{command}. For example, |\DeclareCiteCommand*{\cite}| would define |\cite*|.\footnote{Note that the regular variant of \cmd{DeclareCiteCommand} defines a starred version of the \prm{command} implicitly, unless the starred version has been defined before. This is intended as a fallback. The implicit definition is an alias for the regular variant.}
\cmditem{DeclareMultiCiteCommand}{command}[wrapper]{cite}{delimiter}
@@ -8321,7 +8371,7 @@ option to the \cmd{map} command above).
\texttt{match} regular expression (logic is reversed if you use \texttt{notmatch} and case-insensitive if you use the versions ending in <i>)\footnote{Regular expressions are full Perl 5.16 regular expressions. This means you may need to deal with special characters, see examples.}. You may use capture parenthesis as usual and refer to these (\$1\ldots\$9) in later \texttt{fieldvalue} specifications. This allows you to pull out parts of some fields and put these parts in other fields.
\item Perform a regular expression match and replace on the value of the \texttt{fieldsource} \prm{entryfield} if \texttt{match} and \texttt{replace} are defined.
\item If \texttt{matches} is defined, it should be a comma-separated list of literal strings which are replaced by corresponding locations in a comma-separated list provided in \texttt{replace}. The lists must have the same number of elements or the step will be skipped. \texttt{matchesi} is the same but case-insensitive.
-\item If \texttt{fieldset} is defined, then its value is \prm{entryfield} which will be set to a value specified by further options. If \texttt{overwrite} is false for this step and the field to set already exists then the map step is ignored. If \texttt{final} is also true when \texttt{overwrite} is false for this step, then processing of the parent map stops at this point. If \texttt{append} is true, then the value to set is appended to the current value of \prm{entryfield}. \texttt{appendstrict} only appends to \prm{entryfield} if \prm{entryfield} is not empty. The value to set is specified by a mandatory one and only one of the following options:
+\item If \texttt{fieldset} is defined, then its value is \prm{entryfield} which will be set to a value specified by further options. If \texttt{overwrite} is false for this step and the field to set already exists then the map step is ignored and if \texttt{final} is also true, then processing of the parent map stops at this point. If \texttt{append} is true, then the value to set is appended to the current value of \prm{entryfield}. \texttt{appendstrict} only appends to \prm{entryfield} if \prm{entryfield} is not empty. The value to set is specified by a mandatory one and only one of the following options:
\begin{itemize}
\item\ \texttt{fieldvalue} --- The \texttt{fieldset} \prm{entryfield} is set to the \texttt{fieldvalue} \prm{string}
\item\ \texttt{null} --- The \texttt{fieldset} \prm{entryfield} is ignored, as if it did not exist in the datasource
@@ -9768,17 +9818,17 @@ When using customisable bibliography lists (See \secref{use:bib:biblist}), usual
Defines a bibliography list filter with \prm{name}. The \prm{specification} consists of one or more \cmd{filter} or \cmd{filteror} macros, all of which must be satisfied for the entry to pass the filter:
-\cmditem{filter}[filterspec]{filter}
+\cmditem{filter}[filterspec]
-Filter entries according to the \prm{filterspec} and \prm{filter}. \prm{filterspec} can be one of:
+Filter entries according to the \prm{filterspec}. \prm{filterspec} can be one of:
\end{ltxsyntax}
\begin{description}
-\item[type/nottype] Entry is/is not of \bibfield{entrytype} \prm{filter}
-\item[subtype/notsubtype] Entry is/is not of \bibfield{subtype} \prm{filter}
-\item[keyword/notkeyword] Entry has/does not have \bibfield{keyword} \prm{filter}
-\item[field/notfield] Entry has/does not have a field called \prm{filter}
+\item[type=type/nottype, filter=\prm{entrytype}] Entry is/is not of \bibfield{entrytype}
+\item[type=subtype/notsubtype, filter=\prm{subtype}] Entry is/is not of \bibfield{subtype}
+\item[type=keyword/notkeyword, filter=\prm{keyword}] Entry has/does not have \bibfield{keyword}
+\item[type=field/notfield, filter=\prm{field}] Entry has/does not have a field called \bibfield{field}
\end{description}
\begin{ltxsyntax}
@@ -9877,7 +9927,7 @@ Or if you wanted to ignore «The» at the beginning of any title field:
\cmditem{DeclareNonamestring}{specification}
Defines regular expressions to strip from name fields when
-generating \bibfield{fullhash} and \bibfield{uniquename}. The \prm{specification} is an undelimited list of \cmd{nonamestring} directives which specify the regular expressions to remove from particular name fields. Spaces, tabs and line endings may be used freely to visually arrange the \prm{specification}. Blank lines are not permissible. This command may only be used in the preamble.
+generating \bibfield{fullhash}, \bibfield{fullhashraw} and \bibfield{uniquename}. The \prm{specification} is an undelimited list of \cmd{nonamestring} directives which specify the regular expressions to remove from particular name fields. Spaces, tabs and line endings may be used freely to visually arrange the \prm{specification}. Blank lines are not permissible. This command may only be used in the preamble.
\cmditem{nonamestring}{namefield or datafield name set}{regexp}
@@ -10496,6 +10546,10 @@ Expands to \prm{true} if the \prm{string} is equal to the current in scope uniqu
Expands to \prm{true} if the \prm{string} is equal to the current in scope alphabetic label name template name (see \ref{aut:ctm:srt}), and to \prm{false} otherwise.
+\cmditem{ifnamehashtemplatename}{string}{true}{false}
+
+Expands to \prm{true} if the \prm{string} is equal to the current in scope name hash template name (see \ref{aut:cav:ni}), and to \prm{false} otherwise.
+
\cmditem{iffieldundef}{field}{true}{false}
Expands to \prm{true} if the \prm{field} is undefined, and to \prm{false} otherwise.
@@ -10834,7 +10888,7 @@ This counter indicates how many times the entry currently being processed is cit
This counter holds the maximum value of \cnt{citecounter} across all entries in the current reference section. Like \cnt{citecounter} it is only available if the \opt{citecounter} option is enabled and tracks footnotes and text separately if the option is set to \texttt{context}.
\cntitem{uniquename}
-This counter refers to the \bibfield{labelname} list. It is set on a per-name basis. Its value is \texttt{0} if the base parts of the name (by default just the <family> part of the name) are unique, \texttt{1} if adding the other non-base parts of the name (as specified in the uniquename template defined by \cmd{DeclareUniquenameTemplate}) as initials will make it unique, and \texttt{2} if adding the full form of the non-base parts of the name are required to disambiguate the name. This information is required by author-year and author-title citation schemes which add additional parts of the name when citing different authors with the same family name. For example, (given the default \cmd{DeclareUniquenameTemplate} definition) if there is one <John Doe> and one <Edward Doe> in the list of references, this counter will be set to \texttt{1}. If there is one <John Doe> and one <Jane Doe>, the value of the counter will be \texttt{2}. If the option is set to \texttt{init}\slash \texttt{allinit}\slash \texttt{mininit}, the counter will be limited to \texttt{1}. This is useful for citations styles which use initials to disambiguate names but never print the full name in citations. If adding the initials is not sufficient to disambiguate the name, \cnt{uniquename} will also be set to \texttt{0} for that name. This feature needs to be enabled explicitly with the package option \opt{uniquename}. Note that the \cnt{uniquename} counter is local to \cmd{printnames} and that it is only set for the \bibfield{labelname} list and for the name list that \bibfield{labelname} has been derived from (typically \bibfield{author} or \bibfield{editor}). Its value is zero in any other context, i.e., it must be evaluated in the name formatting directives handling name lists. See \secref{aut:cav:amb} for further details and practical examples. This counter can be overridden on a per-namepart basis by consulting the \cmd{namepart<namepart>un} macros during name formatting, see \secref{aut:bbx:drv}.
+This counter refers to the \bibfield{labelname} list. It is set on a per-name basis. Its value is \texttt{0} if the base parts of the name (by default just the <family> part of the name) are unique, \texttt{1} if adding the other non-base parts of the name (as specified in the uniquename template defined by \cmd{DeclareUniquenameTemplate}) as initials will make it unique, and \texttt{2} if adding the full form of the non-base parts of the name are required to disambiguate the name. This information is required by author-year and author-title citation schemes which add additional parts of the name when citing different authors with the same family name. For example, (given the default \cmd{DeclareUniquenameTemplate} definition) if there is one <John Doe> and one <Edward Doe> in the list of references, this counter will be set to \texttt{1}. If there is one <John Doe> and one <Jane Doe>, the value of the counter will be \texttt{2}. If the option is set to \texttt{init}\slash \texttt{allinit}\slash \texttt{mininit}\slash \texttt{minyearinit}, the counter will be limited to \texttt{1}. This is useful for citations styles which use initials to disambiguate names but never print the full name in citations. If adding the initials is not sufficient to disambiguate the name, \cnt{uniquename} will also be set to \texttt{0} for that name. This feature needs to be enabled explicitly with the package option \opt{uniquename}. Note that the \cnt{uniquename} counter is local to \cmd{printnames} and that it is only set for the \bibfield{labelname} list and for the name list that \bibfield{labelname} has been derived from (typically \bibfield{author} or \bibfield{editor}). Its value is zero in any other context, i.e., it must be evaluated in the name formatting directives handling name lists. See \secref{aut:cav:amb} for further details and practical examples. This counter can be overridden on a per-namepart basis by consulting the \cmd{namepart<namepart>un} macros during name formatting, see \secref{aut:bbx:drv}.
\cntitem{uniquelist}
This counter refers to the \bibfield{labelname} list. It is set on a per-field basis. Its value indicates the number of names required to disambiguate the name list if automatic \cnt{maxnames}\slash \cnt{minnames} truncation would lead to ambiguous citations. For example, if there is one work by <Doe\slash Smith\slash Johnson> and another one by <Doe\slash Edwards\slash Williams>, setting \kvopt{maxnames}{1} would lead to <Doe et al.> in both cases. In this case, \cnt{uniquelist} would be set to \texttt{2} on the \bibfield{labelname} lists of both entries because at least the first two names are required to disambiguate them. Note that the \cnt{uniquelist} counter is local to \cmd{printnames} and that it is only set for the \bibfield{labelname} list and to the name list \bibfield{labelname} has been derived from (typically \bibfield{author} or \bibfield{editor}). Its value is zero in any other context. If available, the \cnt{uniquelist} value will be used automatically by \cmd{printnames} when processing the name list, \ie it will automatically override \cnt{maxnames}\slash \cnt{minnames}. This feature needs to be enabled explicitly with the package option \opt{uniquelist}. See \secref{aut:cav:amb} for further details and practical examples.
@@ -11338,7 +11392,7 @@ This command is similar to \cmd{PackageWarning} but prints the entry key of the
\boolitem{pagetracker}
\leavevmode\vspace{\numexpr2\baselineskip}% fix margin spilling into the text
-These commands activate or deactivate the citation tracker locally (this will affect the \cmd{iffirstonpage} and \cmd{ifsamepage} test from \secref{aut:aux:tst}). They are intended for use in the definition of citation commands or anywhere in the document body. If a citation command is to be excluded from page tracking, use \cmd{pagetrackerfalse} in the \prm{precode} argument of \cmd{DeclareCiteCommand}. See \secref{aut:cbx:cbx} for details. Note that these commands have no effect if page tracking has been disabled globally.
+These commands activate or deactivate the page tracker locally (this will affect the \cmd{iffirstonpage} and \cmd{ifsamepage} test from \secref{aut:aux:tst}). They are intended for use in the definition of citation commands or anywhere in the document body. If a citation command is to be excluded from page tracking, use \cmd{pagetrackerfalse} in the \prm{precode} argument of \cmd{DeclareCiteCommand}. See \secref{aut:cbx:cbx} for details. Note that these commands have no effect if page tracking has been disabled globally.
\boolitem{citetracker}
\leavevmode\vspace{\numexpr2\baselineskip}% fix margin spilling into the text
@@ -11455,6 +11509,10 @@ Adds an exclamation mark unless it is preceded by any punctuation mark except fo
Adds a question mark unless it is preceded by any punctuation mark except for an abbreviation dot.
+\csitem{addslash}
+
+Adds a breakable slash. This command differs from the \cmd{slash} command in the \latex kernel in that a linebreak after the slash is not penalized at all.
+
\csitem{isdot}
Turns a previously inserted literal period into an abbreviation dot. In contrast to \cmd{adddot}, nothing is inserted if this command is not preceded by a period.
@@ -11520,10 +11578,6 @@ Similar to \cmd{addabbrvspace} but using a thin space.
Executes \cmd{adddot} and adds a space penalized by the value of the \cnt{abbrvpenalty} counter, see \secref{use:fmt:len, aut:fmt:len} for details.
-\csitem{addslash}
-
-Adds a breakable slash. This command differs from the \cmd{slash} command in the \latex kernel in that a linebreak after the slash is not penalized at all.
-
\end{ltxsyntax}
Note that the commands in this section implicitly execute \cmd{unspace} to remove spurious whitespace, hence they may be used to override each other. For example, you may use \cmd{addnbspace} to transform a previously inserted interword space into a non"=breakable one and \cmd{addspace} to turn a non"=breakable space into a breakable one.
@@ -11747,13 +11801,13 @@ Remove all existing bibliography string sets with \cmd{UndeclareBibstringSet}.
Defines the bibliography string format for \prm{setname}. The format works exactly like an additional \prm{wrapper} format for \cmd{bibstring}. \prm{code} is executed whenever a bibliography string of \prm{setname} is printed. The text of the bibliography string is passed to \prm{code} as first and only argument.
-\cmditem{UneclareBibstringSetFormat}{setname}
+\cmditem{UndeclareBibstringSetFormat}{setname}
Remove any bibliography string set format defined for \prm{setname}.
\end{ltxsyntax}
-Bibliography string sets can be useful to apply additional formatting to a number of bibliography strings at the same time. These commands are intended for use in language modules. For example in French typography it is customary to italicise Latin terms. The French language module can define a new bibliography string set called \texttt{latin} for all Latin strings and apply additional formatting only to these strings. It is not recommended to apply the formatting dierctly in the bibliography string definitions, since that can interfere with the capitalisation function. Assuming that the French language \texttt{.lbx} file only defines two Latin strings, \texttt{andothers} and \texttt{andothers}, the \texttt{.lbx} file would contain.
+Bibliography string sets can be useful to apply additional formatting to a number of bibliography strings at the same time. These commands are intended for use in language modules. For example in French typography it is customary to italicise Latin terms. The French language module can define a new bibliography string set called \texttt{latin} for all Latin strings and apply additional formatting only to these strings. It is not recommended to apply the formatting directly in the bibliography string definitions, since that can interfere with the capitalisation function. Assuming that the French language \texttt{.lbx} file only defines two Latin strings, \texttt{andothers} and \texttt{ibidem}, the \texttt{.lbx} file would contain the following.
\begin{ltxexample}[escapeinside={(*@}{@*)}]
\DeclareBibliographyExtras{%
@@ -13285,6 +13339,10 @@ Appends the \prm{code} to an internal hook executed at the beginning of every re
Appends the \prm{code} to an internal hook executed at the beginning of the next reference section. The \prm{code} is executed just after setting the reference section number.
+\cmditem{AtFollowingRefsections}{code}
+
+Appends the \prm{code} to an internal hook executed at the beginning of all reference sections following this command. The \prm{code} is executed just after setting the reference section number and just before any code executed via \cmd{AtNextRefsection}.
+
\cmditem{AtBeginBibliography}{code}
Appends the \prm{code} to an internal hook executed at the beginning of the bibliography. The \prm{code} is executed at the beginning of the list of references, immediately after the \prm{begin code} of \cmd{defbibenvironment}. This command may only be used in the preamble.
@@ -13580,7 +13638,7 @@ Name disambiguation works by taking a <base> which is composed of one or more na
\cmditem{DeclareUniquenameTemplate}[name]{specification}
-Defines the \opt{uniquename} template \prm{name}. The \prm{name} is optional and defaults to \prm{<global>}.
+Defines the \opt{uniquename} template \prm{name}. The \prm{name} is optional and defaults to <global>.
The \prm{specification} is an ordered list of \cmd{namepart} commands which define the nameparts to use in determining the uniquename information.
@@ -13746,6 +13804,35 @@ Doe
%
Because the lists differ in the <et al.>, the names are not disambiguated.
+The options \kvopt{uniquename}{minyearinit/minyearfull} are similar to \texttt{mininit\slash minfull} but they will disambiguate individual names only if they occur in identical lists of base nameparts and labelyear. Consider the following data:
+
+\begin{lstlisting}{}
+ John Smith 2000
+ John Smith 2001
+ Ian Smith 2020
+ Brian Smith 2020
+\end{lstlisting}
+%
+With \kvopt{uniquename}{init/full/mininit/minfull} or , we would get:
+
+\begin{lstlisting}{}
+ J. Smith 2000
+ J. Smith 2001
+ I. Smith 2020
+ B. Smith 2020
+\end{lstlisting}
+%
+With \kvopt{uniquename}{minyearinit/minyearfull}:
+
+\begin{lstlisting}{}
+ Smith 2000
+ Smith 2001
+ I. Smith 2020
+ B. Smith 2020
+\end{lstlisting}
+%
+Here, as with \kvopt{uniquelist}{minyear}, the emphasis is on unique references to the bibliography items rather than unique name/person representations in the citations themselves. The two <John Smith> citations are unique within the list of basename+labelyear combinations and so need no initials. The other two citations are not unique in such a list and so have initials added.
+
\paragraph{Lists of Names (\opt{uniquelist})}
Ambiguity is also an issue with name lists. If the \bibfield{labelname} list is truncated by the \opt{maxnames}\slash \opt{minnames} options, it may become ambiguous. This type of ambiguity is addressed by the \opt{uniquelist} option. Consider the following data:
@@ -13855,6 +13942,73 @@ Vogel et al. 2001
%
In the last citation, \kvopt{uniquelist}{minyear} does not override \opt{maxnames}\slash \opt{minnames} as the citation does not need disambiguating from the other two because the year is different.
+\subsubsection{Name Identity}
+\label{aut:cav:ni}
+A lot depends on whether several names in a bibliography refer to the same person or not. By default, this is determined purely syntactically by whether or not all of the full parts of a name are identical. This can be changed however by altering the algorithm that \biber uses to calculate various hashes for names via the following command:
+
+\begin{ltxsyntax}
+
+\cmditem{DeclareNamehashTemplate}[name]{specification}
+
+Defines the template \prm{name} used to construct the hashes from the parts of a name. The \prm{name} is optional and defaults to <global>.
+
+The \prm{specification} is an ordered list of \cmd{namepart} commands which define the nameparts to use in constructing name hashes.
+
+\cmditem{namepart}[options]{namepart}
+
+\prm{namepart} is one of the datamodel nameparts defined with the \cmd{DeclareDatamodelConstant} command (see \secref{aut:bbx:drv}). The \prm{options} are:
+
+\begin{optionlist*}
+
+\choitem{hashscope}{init, full}
+
+The \prm{namepart} will be used in the construction of the hash for the name and the data used from the namepart to do this is one of:
+
+\begin{description}
+\item[init]~Use only the initials of the \prm{namepart} in the hash construction
+\item[full]~Use the full \prm{namepart} in the hash construction
+\end{description}
+
+\end{optionlist*}
+
+\end{ltxsyntax}
+%
+The default namehash template is:
+
+\begin{ltxexample}
+\DeclareNamehashTemplate{
+ \namepart[hashscope=full]{family}
+ \namepart[hashscope=full]{given}
+ \namepart[hashscope=full]{prefix}
+ \namepart[hashscope=full]{suffix}
+}
+\end{ltxexample}
+%
+This means that these nameparts (which all must be valid datamodel nameparts declared by \cmd{DeclareDatamodelConstant}) will be used in the order specified to construct name hashes. The full namepart will be used for all nameparts.
+
+If there was a bibliography including, for example, several syntactic variations of a name where sometimes the full given name was present and sometimes only the initial but these referred to the same person, you could set:
+
+\begin{ltxexample}
+\DeclareNamehashTemplate{
+ \namepart[hashscope=full]{family}
+ \namepart[hashscope=init]{given}
+ \namepart[hashscope=full]{prefix}
+ \namepart[hashscope=full]{suffix}
+}
+\end{ltxexample}
+%
+Which would generate hashes using only the initials of the given name, thus treating <John Smith> and <J. Smith> as the same person for hashing purposes. This would prevent \biblatex from treating these as different people even though based on syntax alone (which is the default), they would be.
+
+\paragraph{Custom name hashes via the extended name format}
+
+Another way of customising name hash generation is by overriding completely the name hash construction algorithm by passing an identifier string for the name using the extended name format (\secref{use:enf}). This string will be turned into a hash as given and any name hash template will be ignored for this name. For example, to have <John Smith> and <J. Smith> seen as the same person for name identity purposes, an alternative to the above would be:
+
+\begin{lstlisting}[style=bibtex]{}
+ AUTHOR = {id=jshash, family=Smith, given=J. and id=jshash, family=Smith, given=John}
+\end{lstlisting}
+%
+Here, the identical \prm{id} parameters of the extended name format ensure that the hashes for the two names will be the same. This has the same effect as the above example using \cmd{DeclareNamehashTemplate} and is intended for trickier situations where people change names and there is therefore no mere syntactic difference between different name forms for the same person.
+
\subsubsection{Trackers in Floats and \acr{TOC}/\acr{LOT}/\acr{LOF}}
\label{aut:cav:flt}
@@ -14821,6 +14975,7 @@ mincrossrefs &\+&\+&\_&\_&\_&\_&\_\\
minxrefs &\+&\+&\_&\_&\_&\_&\_\\
minitems &\+&\+&\_&\+&\+&\_&\_\\
minnames &\+&\+&\_&\+&\+&\_&\_\\
+namehashtemplatename &\_&\_&\+&\_&\+&\+&\+\\
nametemplates &\_&\_&\+&\_&\+&\+&\+\\
natbib &\+&\_&\_&\_&\_&\_&\_\\
nohashothers &\+&\+&\_&\+&\+&\+&\_\\
@@ -14873,13 +15028,22 @@ use$<$name$>$ &\+&\+&\_&\+&\+&\_&\_\\
This revision history is a list of changes relevant to users of this package. Changes of a more technical nature which do not affect the user interface or the behavior of the package are not included in the list. More technical details are to be found in the \file{CHANGES.md} file. The numbers on the right indicate the relevant section of this manual.
\begin{changelog}
+\begin{release}{3.20}{2024-03-22}
+\item Added new \opt{uniquename} options \see{use:opt:pre:int}
+\item Added default full date sorting templates\see{use:opt:pre}
+\item Added \opt{bibdatendsep}\see{use:fmt:lng}
+\item Added \cmd{AtFollowingRefsections}\see{aut:fmt:hok}
+\item Added \cmd{DeclareNamehashTemplate}\see{aut:cav:ni}
+\item Added \bibfield{fullhashraw}\see{aut:bbx:fld:gen}
+\item Augmented Extended Name Format to enable override of name hashes\see{use:enf}
+\end{release}
\begin{release}{3.19}{2023-03-05}
\item Added \cmd{AtNextRefsection}\see{aut:fmt:hok}
\item Added \cmd{DeclareExtradateContext} option\see{aut:ctm:fld}
\item Modified warning for using bibtex backend
\item Enhanced \bibfield{extradate} tracking to fallback on \bibfield{labeltitle} when there is no author
\end{release}
- \begin{release}{3.18b}{2022-07-12}
+\begin{release}{3.18b}{2022-07-12}
\item Reenable \cmd{MakeUppercase}/\cmd{MakeLowercase} <patches>
based on \cmd{CaseSwitch}
\end{release}
@@ -16644,10 +16808,10 @@ This revision history is a list of changes relevant to users of this package. Ch
%\end{release}
\end{changelog}
-
\end{document}
%%% Local Variables:
%%% coding: utf-8
%%% eval: (auto-fill-mode -1)
%%% eval: (visual-line-mode)
+%%% TeX-engine: luatex
%%% End:
diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/82-style-debug-biber.pdf b/Master/texmf-dist/doc/latex/biblatex/examples/82-style-debug-biber.pdf
index d737632db1c..256cdd4df46 100644
--- a/Master/texmf-dist/doc/latex/biblatex/examples/82-style-debug-biber.pdf
+++ b/Master/texmf-dist/doc/latex/biblatex/examples/82-style-debug-biber.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/92-bibliographylists-biber.pdf b/Master/texmf-dist/doc/latex/biblatex/examples/92-bibliographylists-biber.pdf
index b37b7639032..70db5400470 100644
--- a/Master/texmf-dist/doc/latex/biblatex/examples/92-bibliographylists-biber.pdf
+++ b/Master/texmf-dist/doc/latex/biblatex/examples/92-bibliographylists-biber.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/93-nameparts.tex b/Master/texmf-dist/doc/latex/biblatex/examples/93-nameparts.tex
index 44115b6acdc..1d761e372a4 100644
--- a/Master/texmf-dist/doc/latex/biblatex/examples/93-nameparts.tex
+++ b/Master/texmf-dist/doc/latex/biblatex/examples/93-nameparts.tex
@@ -132,6 +132,31 @@
}
}
+\DeclareNamehashTemplate[russian]{
+ \namepart[hashscope=full]{prefix}
+ \namepart[hashscope=full]{family}
+ \namepart[hashscope=full]{suffix}
+ \namepart[hashscope=full]{given}
+ \namepart[hashscope=full]{patronymic}
+}
+
+\DeclareNamehashTemplate[ethiopian]{
+ \namepart[hashscope=full]{prefix}
+ \namepart[hashscope=full]{family}
+ \namepart[hashscope=full]{suffix}
+ \namepart[hashscope=full]{given}
+ \namepart[hashscope=full]{patronymic}
+ \namepart[hashscope=full]{papponymic}
+}
+
+\DeclareNamehashTemplate[cjk]{
+ \namepart[hashscope=full]{prefix}
+ \namepart[hashscope=full]{family}
+ \namepart[hashscope=full]{suffix}
+ \namepart[hashscope=full]{given}
+ \namepart[hashscope=full]{cjk}
+}
+
\DeclareUniquenameTemplate[cjk]{
\namepart[base=true]{family}
\namepart[disambiguation=full]{given}
diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/94-labelprefix.tex b/Master/texmf-dist/doc/latex/biblatex/examples/94-labelprefix.tex
index e8f025078cb..730817697ba 100644
--- a/Master/texmf-dist/doc/latex/biblatex/examples/94-labelprefix.tex
+++ b/Master/texmf-dist/doc/latex/biblatex/examples/94-labelprefix.tex
@@ -27,26 +27,26 @@ the last bibliography in which it appears. This can be overridden by
explicit assignment to particular refcontexts with the
\cmd{assignrefcontext*} macros.\\
-% refcontext=none/global//global/global
+% refcontext=none/global//global/global/global
This is a publication by Aristotle:
-\cite{aristotle:anima} % comes from refcontext=none/global/R/global/global
+\cite{aristotle:anima} % comes from refcontext=none/global/R/global/global/global
These are not publications by Aristotle:
-\cite{yoon} % comes from default refcontext=none/global/Q/global/global due
+\cite{yoon} % comes from default refcontext=none/global/Q/global/global/global due
% to \assignrefcontextentries
-\cite{worman} % comes from default refcontext=nty/global//global/global and not from
- % nty/global/T/global/global in next refsection even though that is the
+\cite{worman} % comes from default refcontext=nty/global//global/global/global and not from
+ % nty/global/T/global/global/global in next refsection even though that is the
% last printed bib/biblist with worman in it. This is because
% refcontext defaults are local to refcontexts
-\cite{piccato} % comes from refcontext=none/global/Q/global/global due to \assignrefcontextcats
-\cite{nussbaum} % comes from refcontext=none/global/S/global/global due to \assignrefcontextkeyws*
+\cite{piccato} % comes from refcontext=none/global/Q/global/global/global due to \assignrefcontextcats
+\cite{nussbaum} % comes from refcontext=none/global/S/global/global/global due to \assignrefcontextkeyws*
This is another publication by Aristotle:
-\cite{aristotle:physics} % comes from refcontext=none/global/R/global/global
+\cite{aristotle:physics} % comes from refcontext=none/global/R/global/global/global
\begin{refcontext}{rcone}
-% refcontext=none/global/R/global/global
+% refcontext=none/global/R/global/global/global
\printbibliography[keyword=primary, title={Aristotle Publications}]
% aristotle:anima and aristotle:physics default refcontext is this one
\end{refcontext}
@@ -55,30 +55,30 @@ This is another publication by Aristotle:
% Note here that the optional argument to \newrefcontext overrides the
% value set with the named refcontext
\newrefcontext[labelprefix=S]{rctwo}
-% refcontext=none/global/S/global/global
+% refcontext=none/global/S/global/global/global
\printbibliography[notkeyword=primary, title={Other publications}]
\endrefcontext
\begin{refcontext}[labelprefix=Q]
-% refcontext=none/global/Q/global/global
+% refcontext=none/global/Q/global/global/global
\printbibliography[filter=cats, title={Other publications}]
\end{refcontext}
\begin{refcontext}[sorting=nty]
-% refcontext=nty/global//global/global
+% refcontext=nty/global//global/global/global
\printbibliography[resetnumbers, notkeyword=primary, title={More Other publications}]
% Nussbaum default refcontext is this one
% piccato default refcontext is this one
% yoon default refcontext is this one
% worman default refcontext is this one
-\cite{nussbaum} % comes from refcontext=nty/global//global/global due to weak \assignrefcontextkeyws*
+\cite{nussbaum} % comes from refcontext=nty/global//global/global/global due to weak \assignrefcontextkeyws*
\end{refcontext}
\section*{New Refsection}
\newrefsection
-\cite{worman} % comes from default refcontext=nty/global/T/global/global
+\cite{worman} % comes from default refcontext=nty/global/T/global/global/global
\begin{refcontext}[labelprefix=T]{rcone}
-% refcontext=nty/global//global/global
+% refcontext=nty/global//global/global/global
\printbibliography[resetnumbers, notkeyword=primary, title={More Other publications}]
\end{refcontext}