summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/biblatex/biblatex.tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2016-09-14 22:21:10 +0000
committerKarl Berry <karl@freefriends.org>2016-09-14 22:21:10 +0000
commit255f0a58d9bae0f193b4bd7d07885325f2fe8585 (patch)
tree1023130a997bd4b06c760600b892fcaa73fcaa30 /Master/texmf-dist/doc/latex/biblatex/biblatex.tex
parentada185c4b489c295d97a94e2a8095efa22bf711e (diff)
biblatex (14sep16)
git-svn-id: svn://tug.org/texlive/trunk@42063 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/biblatex/biblatex.tex')
-rw-r--r--Master/texmf-dist/doc/latex/biblatex/biblatex.tex1530
1 files changed, 1234 insertions, 296 deletions
diff --git a/Master/texmf-dist/doc/latex/biblatex/biblatex.tex b/Master/texmf-dist/doc/latex/biblatex/biblatex.tex
index dce955d9c86..f3131cbed3e 100644
--- a/Master/texmf-dist/doc/latex/biblatex/biblatex.tex
+++ b/Master/texmf-dist/doc/latex/biblatex/biblatex.tex
@@ -1,6 +1,9 @@
\documentclass{ltxdockit}[2011/03/25]
\usepackage{btxdockit}
\usepackage{fontspec}
+\usepackage{hyperref}
+\usepackage{zref-xr}
+
\setmonofont{Courier New}
\setmainfont[Ligatures=TeX]{Linux Libertine O}
\setsansfont[Ligatures=TeX]{Linux Biolinum O}
@@ -48,7 +51,6 @@
\newcommand*{\biber}{\sty{biber}\xspace}
\newcommand*{\biblatex}{\sty{biblatex}\xspace}
\newcommand*{\biblatexml}{\sty{biblatexml}\xspace}
-\newcommand*{\ris}{\sty{RIS}\xspace}
\newcommand*{\biblatexhome}{http://sourceforge.net/projects/biblatex/}
\newcommand*{\biblatexctan}{http://ctan.org/pkg/biblatex/}
@@ -58,7 +60,7 @@
url={\biblatexhome},
author={Philipp Lehman \\(with Philip Kime, Audrey Boruvka and Joseph Wright)},
email={},
- revision={3.4},
+ revision={3.5},
date={\today}}
\hypersetup{%
@@ -194,8 +196,9 @@ José Carlos Santos (Portuguese);
Oleg Domanov (Russian);
Tea Tušar and Bogdan Filipič (Slovene);
Ignacio Fernández Galván (Spanish);
-Per Starbäck, Carl-Gustav Werner, Filip Åsblom (Swedish).
+Per Starbäck, Carl-Gustav Werner, Filip Åsblom (Swedish);
Martin Vrábel, Dávid Lupták (Slovak);
+Benson Muite (Estonian);
\subsection{Prerequisites}
\label{int:pre}
@@ -224,6 +227,9 @@ This \latex package, which is also loaded automatically, is used for internal op
\item[logreq]
This \latex package, which is also loaded automatically, provides a frontend for writing machine-readable messages to an auxiliary log file. It is available from \acr{CTAN}.\fnurl{http://ctan.org/pkg/logreq/}
+\item[xstring]
+This \latex package, which is also loaded automatically, provides advanced string processing macros It is available from \acr{CTAN}.\fnurl{http://ctan.org/pkg/xstring/}
+
\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.
@@ -340,6 +346,7 @@ compatibility matrix for the recent versions.
\sffamily\bfseries\spotcolor Biber version
& \sffamily\bfseries\spotcolor \biblatex\ version\\
\midrule
+2.6 & 3.5\\
2.5 & 3.4\\
2.4 & 3.3\\
2.3 & 3.2\\
@@ -375,7 +382,7 @@ compatibility matrix for the recent versions.
\section{Database Guide}
\label{bib}
-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 \path{--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}.
+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}.
\subsection{Entry Types}
\label{bib:typ}
@@ -385,7 +392,7 @@ This section gives an overview of the entry types supported by the default \bibl
\subsubsection{Regular Types}
\label{bib:typ:blx}
-The lists below indicate the fields supported by each entry type. Note that the mapping of fields to an entry type is ultimately at the discretion of the bibliography style. The lists below therefore serve two purposes. They indicate the fields supported by the standard styles which ship with this package and they also serve as a model for custom styles. Note that the <required> fields are not strictly required in all cases, see \secref{bib:use:key} for details. The fields marked as <optional> are optional in a technical sense. Bibliographical formatting rules usually require more than just the <required> fields. The default data model defined a few constraints for the format of date fields, ISBNs and some special fields like \bibfield{gender} but the constraints are only used if validating against the data model with \biber's \path{--validate_datamodel} option. Generic fields like \bibfield{abstract} and \bibfield{annotation} or \bibfield{label} and \bibfield{shorthand} are not included in the lists below because they are independent of the entry type. The special fields discussed in \secref{bib:fld:spc}, which are also independent of the entry type, are not included in the lists either. See the default data model specification in the file \file{blx-dm.def} which comes with \biblatex for a complete specification.
+The lists below indicate the fields supported by each entry type. Note that the mapping of fields to an entry type is ultimately at the discretion of the bibliography style. The lists below therefore serve two purposes. They indicate the fields supported by the standard styles which ship with this package and they also serve as a model for custom styles. Note that the <required> fields are not strictly required in all cases, see \secref{bib:use:key} for details. The fields marked as <optional> are optional in a technical sense. Bibliographical formatting rules usually require more than just the <required> fields. The default data model defined a few constraints for the format of date fields, ISBNs and some special fields like \bibfield{gender} but the constraints are only used if validating against the data model with \biber's \opt{--validate-datamodel} option. Generic fields like \bibfield{abstract} and \bibfield{annotation} or \bibfield{label} and \bibfield{shorthand} are not included in the lists below because they are independent of the entry type. The special fields discussed in \secref{bib:fld:spc}, which are also independent of the entry type, are not included in the lists either. See the default data model specification in the file \file{blx-dm.def} which comes with \biblatex for a complete specification.
\begin{typelist}
@@ -672,9 +679,9 @@ In datasources such as a \file{bib} file, all bibliographic data is specified in
\begin{description}
-\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 four name components: the given name, the name prefix (von, van, of, da, de, della, \dots), the family name, and the name suffix (junior, senior, \dots). 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}.
+\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 list of name parts but current 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 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:
\begin{itemize}
\item Family name (also known as <last> part)
@@ -683,7 +690,7 @@ Name list fields automatically have an \cmd{ifuse*} test created as per the name
\item Name suffix (also known as <Jr> part)
\end{itemize}
-The supported list of name parts is defined as a constant list in the default data model using the \cmd{DeclareDatamodelConstant} command (see \ref{aut:ctm:dm}). However, it is not enough to simply add to this list in order to add support for another name part as name parts typically have to be hard coded into bibliography drivers and the backend processing. This constant is used as much as possible and is intended as a basis for future generalisation and extension.
+The supported list of name parts is defined as a constant list in the default data model using the \cmd{DeclareDatamodelConstant} command (see \ref{aut:ctm:dm}). However, it is not enough to simply add to this list in order to add support for another name part as name parts typically have to be hard coded into bibliography drivers and the backend processing. See the example file \file{93-nameparts.tex} for details on how to define and use custom name parts. Also see \cmd{DeclareUniquenameTemplate} in \secref{aut:cav:amb} for information on how to customise name disambiguation using custom name parts.
\item[Literal lists] are parsed and split up into the individual items at the \texttt{and} delimiter but not dissected further. Literal lists may be truncated in the \file{bib} file with the keyword <\texttt{and others}>. There are two subtypes:
@@ -706,11 +713,11 @@ The supported list of name parts is defined as a constant list in the default da
\item[Range fields] consist of one or more ranges where all dashes are normalized and replaced by the command \cmd{bibrangedash}. A range is something optionally followed by one or more dashes optionally followed by some non-dash (e.g. \texttt{5--7}). Any number of consecutive dashes will only yield a single range dash. A typical example of a range field is the \bibfield{pages} field. See also the \cmd{bibrangessep} command which can be used to customise the separator between multiple ranges. Range fields will be skipped and will generate a warning if they do not consist of one or more ranges. You can normalise messy range fields before they are parsed using \cmd{DeclareSourcemap} (see \secref{aut:ctm:map}).
-\item[Integer fields] hold unformatted integers which may be converted to ordinals or strings as they are printed. A typical example is the \bibfield{extrayear} field.
+\item[Integer fields] hold integers which may be converted to ordinals or strings as they are printed. A typical example is the \bibfield{extrayear} or \bibfield{volume} field. Such fields are sorted as integers. \biber makes a (quite serious) effort to map non-arabic representations (roman numerals for example) to integers for sorting purposes.
-\item[Datepart fields] hold unformatted integers which may be converted to ordinals or strings as they are printed. A typical example is the \bibfield{month} field. For every field X of datatype \bibfield{date} in the datamodel, datepart fields are automatically created with the following names: \bibfield{Xyear}, \bibfield{Xendyear}, \bibfield{Xmonth}, \bibfield{Xendmonth}, \bibfield{Xday}, \bibfield{Xendday}.
+\item[Datepart fields] hold unformatted integers which may be converted to ordinals or strings as they are printed. A typical example is the \bibfield{month} field. For every field X of datatype \bibfield{date} in the datamodel, datepart fields are automatically created with the following names: \bibfield{$<$datetype$>$year}, \bibfield{$<$datetype$>$endyear}, \bibfield{$<$datetype$>$month}, \bibfield{$<$datetype$>$endmonth}, \bibfield{$<$datetype$>$day}, \bibfield{$<$datetype$>$endday}, \bibfield{$<$datetype$>$hour}, \bibfield{$<$datetype$>$endhour}, \bibfield{$<$datetype$>$minute}, \bibfield{$<$datetype$>$endminute}, \bibfield{$<$datetype$>$second}, \bibfield{$<$datetype$>$endsecond}, \bibfield{$<$datetype$>$timezone}, \bibfield{$<$datetype$>$endtimezone}.
-\item[Date fields] hold a date specification in \texttt{yyyy-mm-dd} format or a date range in \texttt{yyyy-mm-dd/yyyy-mm-dd} format. Date fields are special in that the date is parsed and split up into its datepart type components. The \bibfield{datepart} components (see above) are automatically defined and recognised when a field of datatype \bibfield{date} is defined in the datamodel. See \secref{bib:use:dat} for details. A typical example is the \bibfield{date} field.
+\item[Date fields] hold a date specification in \texttt{yyyy-mm-ddThh:nn[+|-][hh[:nn]|Z]} format or a date range in \texttt{yyyy-mm-ddThh:nn[+|-][hh[:nn]|Z]/yyyy-mm-ddThh:nn[+|-][hh[:nn]|Z]} format and other formats permitted by EDTF level 1, see \secref{bib:use:dat}. Date fields are special in that the date is parsed and split up into its datepart type components. The \bibfield{datepart} components (see above) are automatically defined and recognised when a field of datatype \bibfield{date} is defined in the datamodel. A typical example is the \bibfield{date} field.
\item[Verbatim fields] are processed in verbatim mode and may contain special characters. Typical examples of verbatim fields are \bibfield{file} and \bibfield{doi}.
@@ -732,7 +739,7 @@ The supported list of name parts is defined as a constant list in the default da
The fields listed in this section are the regular ones holding printable data in the default data model. The name on the left is the default data model name of the field as used by \biblatex and its backend. The \biblatex data type is given to the right of the name. See \secref{bib:fld:typ} for explanation of the various data types.
-Some fields are marked as <Label fields> which means that they are often used as abbreviation labels when printing bibliography lists in the sense of section \secref{use:bib:biblist}. \biblatex automatically creates supporting macros for such fields. See \secref{use:bib:biblist}.
+Some fields are marked as <label> fields which means that they are often used as abbreviation labels when printing bibliography lists in the sense of section \secref{use:bib:biblist}. \biblatex automatically creates supporting macros for such fields. See \secref{use:bib:biblist}.
\begin{fieldlist}
@@ -980,9 +987,9 @@ An addon to be printed immediately after the author name in the bibliography. No
Miscellaneous bibliographic data which does not fit into any other field. The \bibfield{note} field may be used to record bibliographic data in a free format. Publication facts such as «Reprint of the edition London 1831» are typical candidates for the \bibfield{note} field. See also \bibfield{addendum}.
-\fielditem{number}{literal}
+\fielditem{number}{integer}
-The number of a journal or the volume\slash number of a book in a \bibfield{series}. See also \bibfield{issue} as well as \secref{bib:use:ser, bib:use:iss}. With \bibtype{patent} entries, this is the number or record token of a patent or patent request.
+The number of a journal or the volume\slash number of a book in a \bibfield{series}. See also \bibfield{issue} as well as \secref{bib:use:ser, bib:use:iss}. With \bibtype{patent} entries, this is the number or record token of a patent or patent request. It is expected to be an integer, not necessarily in arabic numerals since \biber will automatically from roman numerals or arabic letter to integers internally for sorting purposes.
\listitem{organization}{literal}
@@ -1104,17 +1111,17 @@ The location of a conference, a symposium, or some other event in \bibtype{proce
The revision number of a piece of software, a manual, etc.
-\fielditem{volume}{literal}
+\fielditem{volume}{integer}
-The volume of a multi"=volume book or a periodical. See also \bibfield{part}.
+The volume of a multi"=volume book or a periodical. It is expected to be an integer, not necessarily in arabic numerals since \biber will automatically from roman numerals or arabic letter to integers internally for sorting purposes. See also \bibfield{part}.
-\fielditem{volumes}{literal}
+\fielditem{volumes}{integer}
-The total number of volumes of a multi"=volume work. Depending on the entry type, this field refers to \bibfield{title} or \bibfield{maintitle}.
+The total number of volumes of a multi"=volume work. Depending on the entry type, this field refers to \bibfield{title} or \bibfield{maintitle}. It is expected to be an integer, not necessarily in arabic numerals since \biber will automatically from roman numerals or arabic letter to integers internally for sorting purposes.
\fielditem{year}{literal}
-The year of publication. See also \bibfield{date} and \secref{bib:use:dat}.
+The year of publication. It is better to use the \bibfield{date} field as this is compatible with plain years too. See \secref{bib:use:dat}.
\end{fieldlist}
@@ -1159,6 +1166,7 @@ English & USA & \opt{american}, \opt{USenglish}, \opt{english} \
& Canada & \opt{canadian} \\
& Australia & \opt{australian} \\
& New Zealand & \opt{newzealand} \\
+Estonian & Estonia & \opt{estonian} \\
Finnish & Finland & \opt{finnish} \\
French & France, Canada & \opt{french} \\
German & Germany & \opt{german} \\
@@ -1266,7 +1274,7 @@ Similar to \bibfield{sortkey} but used in the list of shorthands. If present, \b
A field used to modify the sorting order of the bibliography. If present, this field is used instead of the \bibfield{title} field when sorting the bibliography. The \bibfield{sorttitle} field may come in handy if you have an entry with a title like «An Introduction to\dots» and want that alphabetized under <I> rather than <A>. In this case, you could put «Introduction to\dots» in the \bibfield{sorttitle} field. Please refer to \secref{use:srt} for further details. This field is consumed by the backend processing and does not appear in the \path{.bbl}.
-\fielditem{sortyear}{literal}
+\fielditem{sortyear}{integer}
A field used to modify the sorting order of the bibliography. If present, this field is used instead of the \bibfield{year} field when sorting the bibliography. Please refer to \secref{use:srt} for further details. This field is consumed by the backend processing and does not appear in the \path{.bbl}.
@@ -1593,7 +1601,7 @@ This entry will be printed as «\emph{Journal Name}. 3rd ser. 15.7 (1995)». Som
%
This entry will be printed as «\emph{Journal Name}. New ser. 9 (1998)». See \secref{aut:lng:key} for a list of localisation keys defined by default.
-\subsubsection{Date Specifications}
+\subsubsection{Date and Time Specifications}
\label{bib:use:dat}
\begin{table}
@@ -1604,23 +1612,84 @@ This entry will be printed as «\emph{Journal Name}. New ser. 9 (1998)». See \s
\multicolumn{2}{H}{Formatted Date (Examples)} \\
\cmidrule(l){2-3}
&
-\multicolumn{1}{H}{Short Format} &
-\multicolumn{1}{H}{Long Format} \\
+\multicolumn{1}{H}{Short/12-hour Format} &
+\multicolumn{1}{H}{Long/24-hour Format} \\
\cmidrule{1-1}\cmidrule(l){2-2}\cmidrule(l){3-3}
1850 & 1850 & 1850 \\
1997/ & 1997-- & 1997-- \\
+1997/unknown & 1997-- & 1997-- \\
+1997/open & 1997-- & 1997-- \\
1967-02 & 02/1967 & February 1967 \\
2009-01-31 & 31/01/2009 & 31st January 2009 \\
1988/1992 & 1988--1992 & 1988--1992 \\
2002-01/2002-02 & 01/2002--02/2002 & January 2002--February 2002 \\
1995-03-30/1995-04-05 & 30/03/1995--05/04/1995 & 30th March 1995--5th April 1995 \\
+2004-04-05T14:34:00 & 05/04/2004 2:34 PM & 5th April 2004 14:34:00\\
\bottomrule
\end{tabularx}
\caption{Date Specifications}
\label{bib:use:tab1}
\end{table}
-The date fields \bibfield{date}, \bibfield{origdate}, \bibfield{eventdate}, and \bibfield{urldate} require a date specification in \texttt{yyyy-mm-dd} format. Date ranges are given as \texttt{yyyy-mm-dd\slash yyyy-mm-dd}. Partial dates are valid provided that date components are omitted at the end only. You may specify an open ended date range by giving the range separator and omitting the end date (\eg \texttt{yyyy/}). See \tabref{bib:use:tab1} for some examples of valid date specifications and the formatted date automatically generated by \biblatex. The formatted date is language specific and will be adapted automatically. If there is no \bibfield{date} field in an entry, \biblatex will also consider the fields \bibfield{year} and \bibfield{month} for backwards compatibility with traditional \bibtex. Style author should note that date fields like \bibfield{date} or \bibfield{origdate} are only available in the \file{bib} file. All dates are parsed and dissected into their components as the \file{bib} file is processed. The date components are made available to styles by way of the special fields discussed in \secref{aut:bbx:fld:dat}. See this section and \tabref{aut:bbx:fld:tab1} on page~\pageref{aut:bbx:fld:tab1} for further information.
+Date fields such as the default data model dates \bibfield{date}, \bibfield{origdate}, \bibfield{eventdate}, and \bibfield{urldate} adhere to \acr{EDTF}\footnote{\url{https://www.loc.gov/standards/datetime/pre-submission.html}} (Extended Date/Time Format) specification levels 0 and 1. \acr{EDTF} is a stricter subset of the somewhat messy formats allowed by \acr{ISO8601v2004} and is better suited to bibliographic data. In addition to the \acr{EDTF} empty date range markers, you may also specify an open ended date range by giving the range separator and omitting the end date (\eg \texttt{YYYY/}). See \tabref{bib:use:tab1} for some examples of valid date specifications and the formatted dates automatically generated by \biblatex. The formatted date is language specific and will be adapted automatically. If there is no \bibfield{date} field in an entry, \biblatex will also consider the fields \bibfield{year} and \bibfield{month} for backwards compatibility with traditional \bibtex but this is not encouraged as explicit \bibfield{year} and \bibfield{month} are not parsed for date meta-information markers or times and are used as-is. Style authors should note that date fields like \bibfield{date} or \bibfield{origdate} are only available in the \file{bib} file. All dates are parsed and dissected into their components as the \file{bib} file is processed. The date and time components are made available to styles by way of the special fields discussed in \secref{aut:bbx:fld:dat}. See this section and \tabref{aut:bbx:fld:tab1} on page~\pageref{aut:bbx:fld:tab1} for further information.
+
+\acr{EDTF} dates are astronomical dates in which year <0> exists. When outputting dates in BCE or BC era (see the \opt{dateera} option below), note that they will typically be one year earlier since BCE/BC era do not have a year 0 (year 0 is 1 BCE/BC). This conversion is automatic. See examples in table \tabref{bib:use:tab2}.
+
+Date field names \emph{must} end with the string <date>, as with the default date fields. Bear this in mind when adding new date fields to the datamodel (see \secref{aut:ctm:dm}). \biblatex will check all date fields after reading the date model and will exit with an error if it finds a date field which does not adhere to this naming convention.
+
+\acr{EDTF} supports dates before common era (BCE/BC) by way of a negative date format and supports <approximate> (circa) and uncertain dates. Such date formats set internal markers which can be tested for so that appropriate localised markers (such as \opt{circa} or \opt{beforecommonera}) can be inserted. Also supported are <uncertain> dates (\acr{EDTF} 5.2.2) which are automatically expanded into appropriate data ranges accompanied by a field \bibfield{$<$datetype$>$dateunspecified} which details the granularity of the unspecified data. Styles may use this information to format such dates appropriately but the standard styles do not do this. See \tabref{bib:use:tab3} on page~\pageref{bib:use:tab3} for the allowed \acr{EDTF} <unspecified> formats, their range expansions and \bibfield{$<$datetype$>$dateunspecified} values (see \secref{aut:bbx:fld:gen}).
+
+\begin{table}
+\tablesetup
+\begin{tabularx}{\textwidth}{@{}>{\ttfamily}llX@{}}
+\toprule
+\multicolumn{1}{@{}H}{Date Specification} &
+\multicolumn{1}{H}{Expanded Range} &
+\multicolumn{1}{H}{Meta-information} \\
+\cmidrule{1-1}\cmidrule(l){2-2}\cmidrule(l){3-3}
+199u & 1990/1999 & yearindecade \\
+19uu & 1900/1999 & yearincentury \\
+1999-uu & 1999-01/1999-12 & monthinyear \\
+1999-01-uu & 1999-01-01/1999-01-31 & dayinmonth \\
+1999-uu-uu & 1999-01-01/1999-12-31 & dayinyear \\
+\bottomrule
+\end{tabularx}
+\caption{EDTF 5.2.2 Unspecified Date Parsing}
+\label{bib:use:tab3}
+\end{table}
+
+\tabref{bib:use:tab2} shows formats which use appropriate tests and formatting. See the date meta-information tests in \secref{aut:aux:tst} and the localisation strings in in \secref{aut:lng:key:dt}. See also the \file{96-dates.tex} example file for complete examples of the tests and localisation strings use.
+
+The output of <circa>, uncertainty and era information in standard styles (or custom styles not customising the internal \cmd{mkdaterange*} macros) is controlled by the package options \opt{datecirca}, \opt{dateuncertain}, \opt{dateera} and \opt{dateeraauto} (see \secref{use:opt:pre:gen}). See \tabref{bib:use:tab2} on page~\pageref{bib:use:tab2} for examples which assumes these options are all used.
+
+\begin{table}
+\tablesetup
+\begin{tabularx}{\textwidth}{@{}>{\ttfamily}llX@{}}
+\toprule
+\multicolumn{1}{@{}H}{Date Specification} &
+\multicolumn{2}{H}{Formatted Date (Examples)} \\
+\cmidrule(l){2-3}
+&
+\multicolumn{1}{H}{Output Format} &
+\multicolumn{1}{H}{Output Format Notes} \\
+\cmidrule{1-1}\cmidrule(l){2-2}\cmidrule(l){3-3}
+0000 & 1 BC & \kvopt{dateera}{christian} prints \opt{beforechrist} localisation\\
+-0876 & 877 BCE & \kvopt{dateera}{secular} prints \opt{beforecommonera} localisation string\\
+-0877/-0866 & 878 BC--867 BC & using \cmd{ifdateera} test and \opt{beforechrist} localisation string\\
+0768 & 0768 CE & using \opt{dateeraauto} set to <1000> and \opt{commonera} localisation string\\
+-0343-02 & 344-02 BCE & \\
+0343-02-03 & 343-02-03 CE & with \opt{dateeraauto=400} \\
+0343-02-03 & 343-02-02 CE & with \opt{dateeraauto=400} and \opt{julian} \\
+1723\textasciitilde & circa 1723 & using \cmd{ifdatecirca} test\\
+1723? & 1723? & using \cmd{ifdateuncertain} test\\
+1723?\textasciitilde & circa 1723? & using \cmd{ifdateuncertain} and \cmd{ifdatecirca} tests\\
+2004-22 & 2004 & also, \bibfield{season} is set to the localisation string <summer>\\
+2004-24 & 2004 & also, \bibfield{season} is set to the localisation string <winter>\\
+\bottomrule
+\end{tabularx}
+\caption{Enhanced Date Specifications}
+\label{bib:use:tab2}
+\end{table}
\subsubsection{Months and Journal Issues}
\label{bib:use:iss}
@@ -1924,7 +1993,7 @@ Whether or not to sort the bibliography and the list of shorthands case"=sensiti
\boolitem[true]{sortupper}
-This option corresponds to \biber's |--sortupper| command-line option. If enabled, the bibliography is sorted in <uppercase before lowercase> order. Disabling this option means <lowercase before uppercase> order.
+This option corresponds to \biber's \opt{--sortupper} command-line option. If enabled, the bibliography is sorted in <uppercase before lowercase> order. Disabling this option means <lowercase before uppercase> order.
\optitem{sortlocale}{\opt{auto}, \prm{locale}}
@@ -2005,7 +2074,7 @@ Enclose the entry in an \env{otherlanguage} environment. This will load hyphenat
Enclose the entry in an \env{otherlanguage*} environment. Please note that \biblatex treats \env{otherlanguage*} like \env{otherlanguage} but other packages may make a distinction in this case.
\item[langname]
-\sty{polyglossia} only. Enclose the entry in a \env{<languagename>} environment. The benefit of this option value for \sty{polyglossia} users is that it takes note of the \bibfield{langidopts} field so that you can add per-language options to an entry (like selecting a language variant). When using \sty{babel}, this option does the same as the \opt{other} option value.
+\sty{polyglossia} only. Enclose the entry in a \env{$<$languagename$>$} environment. The benefit of this option value for \sty{polyglossia} users is that it takes note of the \bibfield{langidopts} field so that you can add per-language options to an entry (like selecting a language variant). When using \sty{babel}, this option does the same as the \opt{other} option value.
\end{valuelist}
@@ -2142,7 +2211,7 @@ The starred versions of these commands will not trigger a reset.
Whether or not to use long or abbreviated strings in citations and in the bibliography. This option affects the localisation modules. If this option is enabled, key terms such as <editor> are abbreviated. If not, they are written out.
-\optitem[comp]{date}{\opt{year}, \opt{short}, \opt{long}, \opt{terse}, \opt{comp}, \opt{iso8601}}
+\optitem[comp]{date}{\opt{year}, \opt{short}, \opt{long}, \opt{terse}, \opt{comp}, \opt{ymd}, \opt{edtf}}
This option controls the basic format of printed date specifications. The following choices are available:
@@ -2164,40 +2233,125 @@ January 21, 2010--January 30, 2010\par
\item[comp] Use the long format with compact ranges, for example:\par
21st--30th January 2010\par
January 21--30, 2010\par
-\item[iso8601] Use extended \acr{ISO-8601} format (\texttt{yyyy-mm-dd}), for example:\par
+\item[edtf] Use strict Extended Date/Time Format\footnote{\url{https://www.loc.gov/standards/datetime/pre-submission.html}} (\texttt{yyyy-mm-dd}), for example:\par
2010-01-01\par
2010-01-21/2010-01-30
+\item[ymd] A year-month-day format which can be modified by other options unlike strict EDTF, for example:\par
+2010-1-1\par
+2010-1-21/2010-1-30
\end{valuelist}
%
-As seen in the above examples, the actual date format is language specific. Note that the month name in all long formats is responsive to the \opt{abbreviate} package option. The leading zeros in all short formats may be controlled separately with the \opt{datezeros} package option.
+Note that \opt{edtf} format will enforce \kvopt{dateera}{astronomical}, \kvopt{datezeros}{true}, \kvopt{timezeros}{true}, \kvopt{seconds}{true}, \kvopt{$<$datetype$>$time}{24h} and \kvopt{julian}{false}. \opt{ymd} is an ETFT-like format but which can change the various options which the strict \opt{edtf} option does not allow for.
-\optitem[year]{datelabel}{\opt{year}, \opt{short}, \opt{long}, \opt{terse}, \opt{comp}, \opt{iso8601}}
+As seen in the above examples, the actual date format is language specific. Note that the month name in all long formats is responsive to the \opt{abbreviate} package option. The leading zeros for months and days in all short formats may be controlled separately with the \opt{datezeros} package option. The leading zeros for hours, minutes and seconds in all short formats may be controlled separately with the \opt{timezeros} package option. If outputting times, the printing of seconds and timezones is controlled by the \opt{seconds} and \opt{timezones} options respectively.
+
+The options \opt{julian} and \opt{gregorianstart} may be used to control when to output Julian Calendar dates.
+
+\optitem[year]{labeldate}{\opt{year}, \opt{short}, \opt{long}, \opt{terse}, \opt{comp}, \opt{ymd}, \opt{edtf}}
Similar to the \opt{date} option but controls the format of the date field selected with \cmd{DeclareLabeldate}.
-\optitem[comp]{origdate}{\opt{year}, \opt{short}, \opt{long}, \opt{terse}, \opt{comp}, \opt{iso8601}}
+\optitem[comp]{$<$datetype$>$date}{\opt{year}, \opt{short}, \opt{long}, \opt{terse}, \opt{comp}, \opt{ymd}, \opt{edtf}}
-Similar to the \opt{date} option but controls the format of the \bibfield{origdate}.
+Similar to the \opt{date} option but controls the format of the \bibfield{$<$datetype$>$date} field in the datamodel.
-\optitem[comp]{eventdate}{\opt{year}, \opt{short}, \opt{long}, \opt{terse}, \opt{comp}, \opt{iso8601}}
+\optitem{alldates}{\opt{year}, \opt{short}, \opt{long}, \opt{terse}, \opt{comp}, \opt{edtf}}
-Similar to the \opt{date} option but controls the format of the \bibfield{eventdate}.
+Sets the option for all dates in the datamodel to the same value. The date fields in the default data model are \bibfield{date}, \bibfield{origdate}, \bibfield{eventdate} and \bibfield{urldate}.
-\optitem[short]{urldate}{\opt{year}, \opt{short}, \opt{long}, \opt{terse}, \opt{comp}, \opt{iso8601}}
+\boolitem[false]{julian}
-Similar to the \opt{date} option but controls the format of the \bibfield{urldate}.
+This option controls whether dates before the date specified in the \opt{gregorianstart} option will be converted automatically to the Julian Calendar. Dates so changed will return <true> for the \cmd{ifdatejulian} and \cmd{if$<$datetype$>$datejulian} tests (see \secref{aut:aux:tst}). Please bear in mind that dates consisting of just a year like <1565> will never be converted to a Julian Calendar date because a date without a month and day has an ambiguous Julian Calendar representation\footnote{This is potentially true for dates missing times too but this is not relevant for bibliographic work.}. For example, in the case of <1565>, this is Julian year <1564> until after the Gregorian date <10th January 1565> when the Julian year becomes <1565>.
-\optitem{alldates}{\opt{year}, \opt{short}, \opt{long}, \opt{terse}, \opt{comp}, \opt{iso8601}}
+\valitem{gregorianstart}{YYYY-MM-DD}
-Sets all of the above date options to the same value.
+This option controls the date before which dates are converted to the Julian Calendar. It is a strict format string, 4-digit year, 2-digit month and day, separated by a single dash character (any valid Unicode character with the <Dash> property). The default is '1582-10-15', the date of the instigation of the standard Gregorian Calendar. This option does not nothing unless \opt{julian} is set to <true>.
\boolitem[true]{datezeros}
-This option controls whether \texttt{short} and \texttt{terse} dates are printed with leading zeros.
+This option controls whether \texttt{short} and \texttt{terse} date components are printed with leading zeros unless overridden by specific formatting.
+
+\boolitem[true]{timezeros}
+
+This option controls whether time components are printed with leading zeros unless overridden by specific formatting.
+
+\boolitem[false]{timezones}
+
+This option controls whether timezones are printed when printing times.
+
+\boolitem[false]{seconds}
+
+This option controls whether seconds are printed when printing times.
\boolitem[true]{dateabbrev}
-This option controls whether \texttt{long} and \texttt{comp} dates are printed with long or abbreviated month names. The option is similar to the generic \opt{abbreviate} option but specific to the date formatting.
+This option controls whether \texttt{long} and \texttt{comp} dates are printed with long or abbreviated month/season names. The option is similar to the generic \opt{abbreviate} option but specific to the date formatting.
+
+\boolitem[false]{datecirca}
+
+This option controls whether to output <circa> information about dates. If set to \opt{true}, dates will be preceded by the expansion of the \cmd{datecircaprint} macro (\secref{use:fmt:fmt}).
+
+\boolitem[false]{dateuncertain}
+
+This option controls whether to output uncertainty information about dates. If set to \opt{true}, dates will be followed by the expansion of the \cmd{dateuncertainprint} macro (\secref{use:fmt:fmt}).
+
+\optitem[astronomical]{dateera}{\opt{astronomical}, \opt{secular}, \opt{christian}}
+
+This option controls how date era information is printed. <astronomical> uses \cmd{dateeraprintpre} to print era information \emph{before} start/end dates. <secular> and <christian> uses \cmd{dateeraprint} to print era information \emph{after} the start/end/dates. By default <astronomical> results in a minus sign before BCE/BC dates and <secular>/<christian> results in the relevant localisation strings like <BCE> or <BC> after BCE/BC dates. See the relevant comments in \secref{use:fmt:fmt} and the localisation strings in \secref{aut:lng:key:dt}.
+
+\intitem[0]{dateeraauto}
+
+This option sets the astronomical year, below which era localisation strings are automatically added. This option does nothing without \opt{dateera} being set to <secular> or <christian>.
+
+\optitem[24h]{time}{\opt{12h}, \opt{24h}, \opt{24hcomp}}
+
+This option controls the basic format of printed time specifications. The following choices are available:
+
+\begin{valuelist}
+\item[24h] 24-hour format, for example:\par
+14:03:23\par
+14:3:23\par
+14:03:23+05:00\par
+14:03:23Z\par
+14:21:23--14:23:45\par
+14:23:23--14:23:45\par
+\item[24hcomp] 24-hour format with compressed ranges, for example:\par
+14:21--23 (hours are the same)\par
+14:23:23--45 (hour and minute are the same)\par
+\item[12h] 12-hour format with (localised) AM/PM markers, for example:\par
+2:34 PM\par
+2:34 PM--3:50 PM\par
+\end{valuelist}
+%
+As seen in the above examples, the actual time format is language specific. Note that the AM/PM string is responsive to the \opt{abbreviate} package option, if this makes a difference in the specific locale. The leading zeros in the 24-hour formats may be controlled separately with the \opt{timezeros} package option. The separator between time components (\cmd{bibtimesep} and \cmd{bibtzminsep})and between the time and any timezone (\cmd{bibtimezonesep}) are also language specific and customisable, see \secref{use:fmt:lng}. There are global package options which determine whether seconds and timezones are printed (\opt{seconds} and \opt{timezones}, respectively, see \secref{use:opt:pre:gen}). Timezones, if present, are either <Z> or a numeric positive or negative offset. No default styles print time information. Custom styles may print times by using the \cmd{print<datetype>time} commands, see \secref{aut:bib:dat}.
+
+\optitem[24h]{labeltime}{\opt{12h}, \opt{24h}, \opt{24hcomp}}
+
+Similar to the \opt{time} option but controls the format of the time part fields obtained from the field selected with \cmd{DeclareLabeldate}.
+
+\optitem[24h]{$<$datetype$>$time}{\opt{12h}, \opt{24h}, \opt{24hcomp}}
+
+Similar to the \opt{time} option but controls the format of the time part fields obtained from the \bibfield{$<$datetype$>$date} field in the datamodel.
+
+\optitem{alltimes}{\opt{12h}, \opt{24h}, \opt{24hcomp}}
+
+Sets \opt{labeltime} and the \opt{$<$datetype$>$time} option for all times in the datamodel to the same value. The date fields supporting time parts in the default data model are \bibfield{date}, \bibfield{origdate}, \bibfield{eventdate} and \bibfield{urldate}.
+
+\boolitem[false]{dateusetime}
+
+Specifies whether to print any time component of a date field after the date component. The separator between the date and time components is \cmd{bibdatetimesep} from \secref{use:fmt:lng}. This option does nothing if a compact date format is being used (see \secref{use:opt:pre:gen}) as this would be very confusing.
+
+\boolitem[false]{labeldateusetime}
+
+Similar to the \opt{dateusetime} option but controls the whether to print time components for the field selected with \cmd{DeclareLabeldate}.
+
+\boolitem[false]{$<$datetype$>$dateusetime}
+
+Similar to the \opt{dateusetime} option but controls the whether to print time components for the \bibfield{$<$datetype$>$date} field in the datamodel.
+
+\boolitem[false]{alldatesusetime}
+
+Sets \opt{labeldateusetime} and the \opt{$<$datetype$>$dateusetime} option for all \bibfield{$<$datetype$>$date} fields in the datamoel.
\boolitem[false]{defernumbers}
@@ -2222,7 +2376,7 @@ See \secref{use:use:epr} for details on support for arXiv and electronic publish
\optitem[auto]{texencoding}{\opt{auto}, \prm{encoding}}
-Specifies the encoding of the \file{tex} file. This option affects the data transferred from the backend to \biblatex. This corresponds to \biber's |--output_encoding| option. The following choices are available:
+Specifies the encoding of the \file{tex} file. This option affects the data transferred from the backend to \biblatex. This corresponds to \biber's \opt{--output-encoding} option. The following choices are available:
\begin{valuelist}
@@ -2236,7 +2390,7 @@ Note that setting \kvopt{texencoding}{\prm{encoding}} will also affect the \opt{
\optitem[auto]{bibencoding}{\opt{auto}, \prm{encoding}}
-Specifies the encoding of the \file{bib} files. This corresponds to \biber's |--input_encoding| option. The following choices are available:
+Specifies the encoding of the \file{bib} files. This corresponds to \biber's \opt{--input-encoding} option. The following choices are available:
\begin{valuelist}
@@ -2294,7 +2448,7 @@ This option controls whether \bibfield{eprint} information is printed.
\paragraph{Internal}
\label{use:opt:pre:int}
-The default settings of the following preamble options are controlled by bibliography and citation styles. Apart from the \opt{pagetracker} and \opt{giveninits} options, which you may want to adapt, there is normally no need to set them explicitly.
+The default settings of the following preamble options are controlled by bibliography and citation styles. Apart from the \opt{pagetracker} and \opt{$<$name$>$inits} options, which you may want to adapt, there is normally no need to set them explicitly.
\begin{optionlist}
@@ -2399,17 +2553,13 @@ This option controls the parenthesis tracker which keeps track of nested parenth
The maximum permitted nesting level of parentheses and brackets. If parentheses and brackets are nested deeper than this value, \biblatex will issue errors.
-\boolitem[false]{giveninits}
-
-When enabled, all first and middle names will be rendered as initials. The option will affect the \cmd{ifgiveninits} test from \secref{aut:aux:tst}.
+\boolitem[false]{$<$namepart$>$inits}
-\boolitem[false]{sortgiveninits}
-
-When enabled, sorting names will only use their initials. This is separate from \opt{giveninits} in case users want to show only inits but sort on full names, for example.
+When enabled, all $<$namepart$>$ name parts will be rendered as initials. The option will affect the \cmd{if$<$namepart$>$inits} test from \secref{aut:aux:tst}. The valid name parts are defined in the data model by the \cmd{DeclareDatamodelConstant} command (\secref{aut:bbx:drv}).
\boolitem[false]{terseinits}
-This option controls the format of initials generated by \biblatex. If enabled, initials are rendered using a terse format without dots and spaces. For example, the initials of Donald Ervin Knuth would be rendered as <D.~E.> by default, and as <DE> if this option is enabled. The option will affect the \cmd{ifterseinits} test from \secref{aut:aux:tst}. The option works by redefining some macros which control the format of initials. See \secref{use:cav:nam} for details.
+This option controls the format of all initials generated by \biblatex. If enabled, initials are rendered using a terse format without dots and spaces. For example, the initials of Donald Ervin Knuth would be rendered as <D.~E.> by default, and as <DE> if this option is enabled. The option will affect the \cmd{ifterseinits} test from \secref{aut:aux:tst}. The option works by redefining some macros which control the format of initials. See \secref{use:cav:nam} for details.
\boolitem[false]{labelalpha}
@@ -2437,19 +2587,49 @@ Whether or not to provide the special field \bibfield{extratitle}, see \secref{a
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 basis. Table \ref{use:opt:tab1} summarises the various \opt{extra*} disambiguation counters and what they track.
-\boolitem[false]{labeldate}
+\boolitem[false]{labeldateparts}
-Whether or not to provide the special fields \bibfield{labelyear}, \bibfield{labelmonth}, \bibfield{labelday} and \bibfield{extrayear}, see \secref{aut:bbx:fld} for details.
+Whether or not to provide the special fields \bibfield{labelyear}, \bibfield{labelmonth}, \bibfield{labelday}, \bibfield{labelendyear}, \bibfield{labelendmonth}, \bibfield{labelendday}, \bibfield{labelhour}, \bibfield{labelendhour}, \bibfield{labelminute}, \bibfield{labelendminute}, \bibfield{labelsecond}, \bibfield{labelendsecond}, \bibfield{labelseason}, \bibfield{labelendseason}, \bibfield{labeltimezone}, \bibfield{labelendtimeone} and \bibfield{extrayear}, see \secref{aut:bbx:fld} for details.
This option is also settable on a per-type basis. Table \ref{use:opt:tab1} summarises the various \opt{extra*} disambiguation counters and what they track.
+\begin{table}
+\footnotesize
+\ttfamily
+\tablesetup
+\begin{tabularx}{\textwidth}{XXX}
+\toprule
+\multicolumn{1}{@{}H}{Option} &
+\multicolumn{1}{@{}H}{Test} &
+\multicolumn{1}{@{}H}{Tracks} \\
+\cmidrule(r){1-1}\cmidrule(r){2-2}\cmidrule(r){3-3}
+singletitle & \cmd{ifsingletitle} & labelname\\
+uniquetitle & \cmd{ifuniquetitle} & labeltitle\\
+uniquebaretitle & \cmd{ifuniquebaretitle} & labeltitle when labelname is null\\
+uniquework & \cmd{ifuniquework} & labelname+labeltitle\\
+\bottomrule
+\end{tabularx}
+\caption{Work Uniqueness options}
+\label{use:opt:wu}
+\end{table}
+
\boolitem[false]{singletitle}
-Whether or not to provide the data required by the \cmd{ifsingletitle} test, see \secref{aut:aux:tst} for details.
+Whether or not to provide the data required by the \cmd{ifsingletitle} test, see \secref{aut:aux:tst} for details. See \tabref{use:opt:wu} for details on what determines the data for this test.
This option is also settable on a per-type basis.
\boolitem[false]{uniquetitle}
-Whether or not to provide the data required by the \cmd{ifuniquetitle} test, see \secref{aut:aux:tst} for details.
+Whether or not to provide the data required by the \cmd{ifuniquetitle} test, see \secref{aut:aux:tst} for details. See \tabref{use:opt:wu} for details on what determines the data for this test.
+This option is also settable on a per-type basis.
+
+\boolitem[false]{uniquebaretitle}
+
+Whether or not to provide the data required by the \cmd{ifuniquebaretitle} test, see \secref{aut:aux:tst} for details. See \tabref{use:opt:wu} for details on what determines the data for this test.
+This option is also settable on a per-type basis.
+
+\boolitem[false]{uniquework}
+
+Whether or not to provide the data required by the \cmd{ifuniquework} test, see \secref{aut:aux:tst} for details. See \tabref{use:opt:wu} for details on what determines the data for this test.
This option is also settable on a per-type basis.
\boolitem[false]{uniqueprimaryauthor}
@@ -2464,8 +2644,8 @@ Whether or not to update the \cnt{uniquename} counter, see \secref{aut:aux:tst}
\begin{valuelist}
\item[true] An alias for \opt{full}.
\item[false] Disable this feature.
-\item[init] Disambiguate names using initials only.
-\item[full] Disambiguate names using initials or full names, as required.
+\item[init] Disambiguate using initials only.
+\item[full] Disambiguate using initials or full names, as required.
\item[allinit] Similar to \opt{init} but disambiguates all names in the \bibfield{labelname} list, beyond \opt{maxnames}\slash \opt{minnames}\slash \opt{uniquelist}.
\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 lists with identical last names.
@@ -2481,7 +2661,7 @@ Whether or not to update the \cnt{uniquelist} counter, see \secref{aut:aux:tst}
\begin{valuelist}
\item[true] Disambiguate the \bibfield{labelname} list.
\item[false] Disable this feature.
-\item[minyear] Disambiguate the \bibfield{labelname} list only if the truncated list is identical to another one with the same \bibfield{labelyear}. This mode of operation is useful for author-year styles and requires \kvopt{labeldate}{true}.
+\item[minyear] Disambiguate the \bibfield{labelname} list only if the truncated list is identical to another one with the same \bibfield{labelyear}. This mode of operation is useful for author-year styles and requires \kvopt{labeldateparts}{true}.
\end{valuelist}
%
Note that the \opt{uniquelist} option will also affect the \cmd{ifsingletitle} test and the \bibfield{extrayear} field. See \secref{aut:cav:amb} for further details and practical examples.
@@ -2489,19 +2669,35 @@ Note that the \opt{uniquelist} option will also affect the \cmd{ifsingletitle} t
\end{optionlist}
\begin{table}
+\footnotesize
\ttfamily
\tablesetup
-\begin{tabularx}{\textwidth}{@{}p{100pt}@{}p{100pt}@{}p{100pt}@{}p{100pt}@{}}
+\begin{tabularx}{\textwidth}{XXXX}
\toprule
\multicolumn{1}{@{}H}{Option} &
-\multicolumn{1}{@{}H}{Enabled field} &
+\multicolumn{1}{@{}H}{Enabled field(s)} &
\multicolumn{1}{@{}H}{Enabled counter} &
\multicolumn{1}{@{}H}{Counter tracks} \\
\cmidrule(r){1-1}\cmidrule(r){2-2}\cmidrule(r){3-3}\cmidrule{4-4}
-labelalpha & labelalpha & extraalpha & label\\
-labeldate & labelyear & extrayear & labelname+labelyear\\
-labeltitle & --- & extratitle & labelname+labeltitle\\
-labeltitleyear & --- & extratitleyear & labeltitle+labelyear\\
+labelalpha & labelalpha & extraalpha & label\\
+labeldateparts & labelyear & extrayear & labelname+\\
+ & labelmonth & & labelyear\\
+ & labelday & & \\
+ & labelendyear & & \\
+ & labelendmonth & & \\
+ & labelendday & & \\
+ & labelhour & & \\
+ & labelminute & & \\
+ & labelsecond & & \\
+ & labelendhour & & \\
+ & labelendminute & & \\
+ & labelendsecond & & \\
+ & labelseason & & \\
+ & labelendseason & & \\
+ & labeltimezone & & \\
+ & labelendtimezone & & \\
+labeltitle & \rmfamily{---} & extratitle & labelname+labeltitle\\
+labeltitleyear & \rmfamily{---} & extratitleyear & labeltitle+labelyear\\
\bottomrule
\end{tabularx}
\caption{Disambiguation counters}
@@ -2552,8 +2748,18 @@ defined. Global, per-type and per-entry options called <use$<$name$>$>are automa
\boolitem[false]{useprefix}
-Whether the name prefix (von, van, of, da, de, della, etc.) is considered when printing the last name in citations. This also affects the sorting and formatting of the bibliography as well as the generation of certain types of labels. If this option is enabled, \biblatex always precedes the last name with the prefix. For example, Ludwig van Beethoven would be cited as «Beethoven» and alphabetized as «Beethoven, Ludwig van» by default. If this option is enabled, he is cited as «van Beethoven» and alphabetized as «Van Beethoven, Ludwig» instead.
-This option is also settable on a per-type scope. With \biblatexml datasources, this is settable on per-namelist and per-name scopes.
+Whether the default date model name part <prefix> (von, van, of, da, de, della, etc.) is considered when:
+
+\begin{itemize}
+\item Printing the last name in citations
+\item Sorting
+\item Generation of certain types of labels
+\item Generating name uniqueness information
+\item Formatting aspects of the bibliography
+\end{itemize}
+%
+For example, if this option is enabled, \biblatex precedes the last 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, this is also settable on per-namelist and per-name scopes.
\optitem{indexing}{\opt{true}, \opt{false}, \opt{cite}, \opt{bib}}
@@ -2585,7 +2791,7 @@ This option is also settable on a per-type basis.
\boolitem[false]{dataonly}
-Setting this option is equivalent to \kvopt{uniquename}{false}, \kvopt{uniquelist}{false, }\opt{skipbib}, \opt{skiplos}/\opt{skipbiblist}, and \opt{skiplab}. It is not required for normal operation. Use it with care.
+Setting this option is equivalent to \kvopt{uniquename}{false}, \kvopt{uniquelist}{false, }\opt{skipbib}, \opt{skipbiblist}, and \opt{skiplab}. It is not required for normal operation. Use it with care.
This option is also settable on a per-type basis.
\paragraph{Entry Only Options}
@@ -2664,16 +2870,16 @@ This style implements an alphabetic citation scheme similar to the \path{alpha.b
A verbose variant of the \texttt{alphabetic} style. The difference affects the handling of a list of citations and is only apparent when multiple entry keys are passed to a single citation command. For example, instead of «[Doe92; Doe95; Jon98]» this style would print «[Doe92]; [Doe95]; [Jon98]». It is intended for in-text citations. The style will set the following package options at load time: \kvopt{autocite}{inline}, \kvopt{labelalpha}{true}.
\item[authoryear]
-This style implements an author"=year citation scheme. If the bibliography contains two or more works by the same author which were all published in the same year, a letter is appended to the year. For example, this style would print citations such as «Doe 1995a; Doe 1995b; Jones 1998». This style should be employed in conjunction with an author"=year bibliography style which prints the corresponding labels in the bibliography. It is primarily intended for in-text citations, but it could also be used with citations given in footnotes. The style will set the following package options at load time: \kvopt{autocite}{inline}, \kvopt{labeldate}{true}, \kvopt{uniquename}{full}, \kvopt{uniquelist}{true}.
+This style implements an author"=year citation scheme. If the bibliography contains two or more works by the same author which were all published in the same year, a letter is appended to the year. For example, this style would print citations such as «Doe 1995a; Doe 1995b; Jones 1998». This style should be employed in conjunction with an author"=year bibliography style which prints the corresponding labels in the bibliography. It is primarily intended for in-text citations, but it could also be used with citations given in footnotes. The style will set the following package options at load time: \kvopt{autocite}{inline}, \kvopt{labeldateparts}{true}, \kvopt{uniquename}{full}, \kvopt{uniquelist}{true}.
\item[authoryear-comp]
-A compact variant of the \texttt{authoryear} style which prints the author only once if subsequent references passed to a single citation command share the same author. If they share the same year as well, the year is also printed only once. For example, instead of «Doe 1995b; Doe 1992; Jones 1998; Doe 1995a» this style would print «Doe 1992, 1995a,b; Jones 1998». It is primarily intended for in-text citations, but it could also be used with citations given in footnotes. The style will set the following package options at load time: \kvopt{autocite}{inline}, \kvopt{sortcites}{true}, \kvopt{labeldate}{true}, \kvopt{uniquename}{full}, \kvopt{uniquelist}{true}.
+A compact variant of the \texttt{authoryear} style which prints the author only once if subsequent references passed to a single citation command share the same author. If they share the same year as well, the year is also printed only once. For example, instead of «Doe 1995b; Doe 1992; Jones 1998; Doe 1995a» this style would print «Doe 1992, 1995a,b; Jones 1998». It is primarily intended for in-text citations, but it could also be used with citations given in footnotes. The style will set the following package options at load time: \kvopt{autocite}{inline}, \kvopt{sortcites}{true}, \kvopt{labeldateparts}{true}, \kvopt{uniquename}{full}, \kvopt{uniquelist}{true}.
\item[authoryear-ibid]
-A variant of the \texttt{authoryear} style which replaces repeated citations by the abbreviation \emph{ibidem} unless the citation is the first one on the current page or double-page spread, or the \emph{ibidem} would be ambiguous in the sense of the package option \kvopt{ibidtracker}{constrict}. The style will set the following package options at load time: \kvopt{autocite}{inline}, \kvopt{labeldate}{true}, \kvopt{uniquename}{full}, \kvopt{uniquelist}{true}, \kvopt{ibidtracker}{constrict}, \kvopt{pagetracker}{true}. This style also provides an additional preamble option called \opt{ibidpage}. See the style example for details.
+A variant of the \texttt{authoryear} style which replaces repeated citations by the abbreviation \emph{ibidem} unless the citation is the first one on the current page or double-page spread, or the \emph{ibidem} would be ambiguous in the sense of the package option \kvopt{ibidtracker}{constrict}. The style will set the following package options at load time: \kvopt{autocite}{inline}, \kvopt{labeldateparts}{true}, \kvopt{uniquename}{full}, \kvopt{uniquelist}{true}, \kvopt{ibidtracker}{constrict}, \kvopt{pagetracker}{true}. This style also provides an additional preamble option called \opt{ibidpage}. See the style example for details.
\item[authoryear-icomp]
-A style combining \texttt{authoryear-comp} and \texttt{authoryear-ibid}. The style will set the following package options at load time: \kvopt{autocite}{inline}, \kvopt{labeldate}{true}, \kvopt{uniquename}{full}, \kvopt{uniquelist}{true}, \kvopt{ibidtracker}{constrict}, \kvopt{pagetracker}{true}, \kvopt{sortcites}{true}. This style also provides an additional preamble option called \opt{ibidpage}. See the style example for details.
+A style combining \texttt{authoryear-comp} and \texttt{authoryear-ibid}. The style will set the following package options at load time: \kvopt{autocite}{inline}, \kvopt{labeldateparts}{true}, \kvopt{uniquename}{full}, \kvopt{uniquelist}{true}, \kvopt{ibidtracker}{constrict}, \kvopt{pagetracker}{true}, \kvopt{sortcites}{true}. This style also provides an additional preamble option called \opt{ibidpage}. See the style example for details.
\item[authortitle]
This style implements a simple author"=title citation scheme. It will make use of the \bibfield{shorttitle} field, if available. It is intended for citations given in footnotes. The style will set the following package options at load time: \kvopt{autocite}{footnote}, \kvopt{uniquename}{full}, \kvopt{uniquelist}{true}.
@@ -2748,7 +2954,7 @@ This style prints a numeric label similar to the standard bibliographic faciliti
This style prints an alphabetic label similar to the \path{alpha.bst} style of traditional \bibtex. It is intended for use in conjunction with an alphabetic citation style. Note that the \bibfield{shorthand} field overrides the default label. The style will set the following package options at load time: \kvopt{labelalpha}{true}, \kvopt{sorting}{anyt}.
\item[authoryear]
-This style differs from the other styles in that the publication date is not printed towards the end of the entry but rather after the author\slash editor. It is intended for use in conjunction with an author"=year citation style. Recurring author and editor names are replaced by a dash unless the entry is the first one on the current page or double-page spread. This style provides an additional preamble option called \opt{dashed} which controls this feature. It also provided a preamble option called \opt{mergedate}. See the style example for details. The style will set the following package options at load time: \kvopt{labeldate}{true}, \kvopt{sorting}{nyt}, \kvopt{pagetracker}{true}, \kvopt{mergedate}{true}.
+This style differs from the other styles in that the publication date is not printed towards the end of the entry but rather after the author\slash editor. It is intended for use in conjunction with an author"=year citation style. Recurring author and editor names are replaced by a dash unless the entry is the first one on the current page or double-page spread. This style provides an additional preamble option called \opt{dashed} which controls this feature. It also provided a preamble option called \opt{mergedate}. See the style example for details. The style will set the following package options at load time: \kvopt{labeldateparts}{true}, \kvopt{sorting}{nyt}, \kvopt{pagetracker}{true}, \kvopt{mergedate}{true}.
\item[authortitle]
This style does not print any label at all. It is intended for use in conjunction with an author"=title citation style. Recurring author and editor names are replaced by a dash unless the entry is the first one on the current page or double-page spread. This style also provides an additional preamble option called \opt{dashed} which controls this feature. See the style example for details. The style will set the following package options at load time: \kvopt{pagetracker}{true}.
@@ -2844,14 +3050,14 @@ Multiple relations to the same entry are also possible:
%
Note the the order of the keys in lists of multiple related entries is important. The data from multiple related entries is printed in the order of the keys listed in this field. See \secref{aut:ctm:rel} for a more details on the mechanisms behind this feature. You can turn this feature off using the package option \opt{related} from \secref{use:opt:pre:gen}.
-You can use the \bibfield{relatedoptions} to set options on the related entry data clone. This is useful if you need to override the \opt{dataonly} option which is set by default on all related entry clones. For example, if you will expose some of the names in the related clone in your document, you may want to have them disambiguated from names in other entries but normally this won't happen as related clones have the per"=entry \opt{dataonly} option set and this in turn sets \kvopt{uniquename}{false} and \kvopt{uniquelist}{false}. In such a case, you can set \bibfield{relatedoptions} to just \opt{skiplab, skipbib, skiplos/skipbiblist}.
+You can use the \bibfield{relatedoptions} to set options on the related entry data clone. This is useful if you need to override the \opt{dataonly} option which is set by default on all related entry clones. For example, if you will expose some of the names in the related clone in your document, you may want to have them disambiguated from names in other entries but normally this won't happen as related clones have the per"=entry \opt{dataonly} option set and this in turn sets \kvopt{uniquename}{false} and \kvopt{uniquelist}{false}. In such a case, you can set \bibfield{relatedoptions} to just \opt{skiplab, skipbib, skipbiblist}.
\subsection{Sorting Options}
\label{use:srt}
This package supports various sorting schemes for the bibliography. The sorting scheme is selected with the \opt{sorting} package option from \secref{use:opt:pre:gen}. Apart from the regular data fields there are also some special fields which may be used to optimize the sorting of the bibliography. \Apxref{apx:srt:a1, apx:srt:a2} give an outline of the alphabetic sorting schemes supported by \biblatex. Chronological sorting schemes are listed in \apxref{apx:srt:chr}. A few explanations concerning these schemes are in order.
-The first item considered in the sorting process is always the \bibfield{presort} field of the entry. If this field is undefined, \biblatex will use the default value <\texttt{mm}> as a presort string. The next item considered is the \bibfield{sortkey} field. If this field is defined, it serves as the master sort key. Apart from the \bibfield{presort} field, no further data is considered in this case. If the \bibfield{sortkey} field is undefined, sorting continues with the name. The package will try using the \bibfield{sortname}, \bibfield{author}, \bibfield{editor}, and \bibfield{translator} fields, in this order. Which fields are considered also depends on the setting of the \opt{use$<$name$>$} options. If all such options are disabled, the \bibfield{sortname} field is ignored as well. Note that all name fields are responsive to \opt{maxnames} and \opt{minnames}. If no name field is available, either because all of them are undefined or because all \opt{use$<$name$>$} options are disabled, \biblatex will fall back to the \bibfield{sorttitle} and \bibfield{title} fields as a last resort. The remaining items are, in various order: the \bibfield{sortyear} field, if defined, or the first four digits of the \bibfield{year} field otherwise; the \bibfield{sorttitle} field, if defined, or the \bibfield{title} field otherwise; the \bibfield{volume} field, which is padded to four digits with leading zeros, or the string \texttt{0000} otherwise. Note that the sorting schemes shown in \apxref{apx:srt:a2} include an additional item: \bibfield{labelalpha} is the label used by <alphabetic> bibliography styles. Strictly speaking, the string used for sorting is \bibfield{labelalpha}~+ \bibfield{extraalpha}. The sorting schemes in \apxref{apx:srt:a2} are intended to be used in conjunction with alphabetic styles only.
+The first item considered in the sorting process is always the \bibfield{presort} field of the entry. If this field is undefined, \biblatex will use the default value <\texttt{mm}> as a presort string. The next item considered is the \bibfield{sortkey} field. If this field is defined, it serves as the master sort key. Apart from the \bibfield{presort} field, no further data is considered in this case. If the \bibfield{sortkey} field is undefined, sorting continues with the name. The package will try using the \bibfield{sortname}, \bibfield{author}, \bibfield{editor}, and \bibfield{translator} fields, in this order. Which fields are considered also depends on the setting of the \opt{use$<$name$>$} options. If all such options are disabled, the \bibfield{sortname} field is ignored as well. Note that all name fields are responsive to \opt{maxnames} and \opt{minnames}. If no name field is available, either because all of them are undefined or because all \opt{use$<$name$>$} options are disabled, \biblatex will fall back to the \bibfield{sorttitle} and \bibfield{title} fields as a last resort. The remaining items are, in various order: the \bibfield{sortyear} field, if defined, or the first four digits of the \bibfield{year} field otherwise; the \bibfield{sorttitle} field, if defined, or the \bibfield{title} field otherwise; the \bibfield{volume} field. Note that the sorting schemes shown in \apxref{apx:srt:a2} include an additional item: \bibfield{labelalpha} is the label used by <alphabetic> bibliography styles. Strictly speaking, the string used for sorting is \bibfield{labelalpha}~+ \bibfield{extraalpha}. The sorting schemes in \apxref{apx:srt:a2} are intended to be used in conjunction with alphabetic styles only.
The chronological sorting schemes 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} scheme 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} scheme is similar in concept but sorts the year in descending order. As with the \opt{ynt} scheme, the string \texttt{9999} is used as a fallback value. The remaining items are similar to the alphabetic sorting schemes discussed above. Note that the \opt{ydnt} sorting scheme will only sort the date in descending order. All other items are sorted in ascending order as usual.
@@ -3019,8 +3225,6 @@ The data type (format) of the resource. The following formats are currently supp
\item[biblatexml] Experimental XML format for \biblatex. See \secref{apx:biblatexml}.
-\item[ris] Research Information Systems (\acr{RIS}) format.\fnurl{http://en.wikipedia.org/wiki/RIS_(file_format)} Note that an \texttt{ID} tag is required in all \acr{RIS} records. The \texttt{ID} value corresponds to the entry key. Support for this format is experimental.
-
\end{valuelist}
\end{optionlist*}
@@ -3157,7 +3361,7 @@ A bibliography list differs from a normal bibliography in that the same bibliogr
\begin{ltxsyntax}
-\cmditem{printbiblist}[key=value, \dots]{<biblistname>}
+\cmditem{printbiblist}[key=value, \dots]{$<$biblistname$>$}
This command prints a bibliography list. It takes an optional argument, which is a list of options given in \keyval notation. Valid options are all options supported by \cmd{printbibliography} (\secref{use:bib:bib}) except \opt{resetnumbers} and \opt{omitnumbers}. If there are any \env{refsection} environments in the document, the bibliography list will be local to these environments; see \secref{use:bib:sec} for details. By default, this command uses the heading \texttt{biblist}. See \secref{use:bib:hdg} for details.
@@ -3517,25 +3721,28 @@ To demonstrate the second type of use of bibliography contexts, we have to under
%
Here, the second use of the citations, along with the \cmd{printbibliography} command will use data from the context of the custom <yntd> sorting scheme which may well be different from the data associated with the default <nyt> scheme. That is, the citation labels (in an authoryear style which uses \opt{extrayear}) may be different \emph{for the exact same entries} between different bibliography contexts and so the citations themselves may look different.
-By default, data for a citation is drawn from the reference context of the last bibliography in which it was printed. For example, in the fragment:
+Reference contexts can be declared with \cmd{DeclareRefcontext} and referred to by name, see below.
+
+By default, data for a citation is drawn from the reference context of the last bibliography in which it was printed. For example:
\begin{ltxexample}[style=latex]{}
+\DeclareRefcontext{ap}{labelprefix=A}
\begin{document}
\cite{book, article, misc}
\printbibliography[type=book]
-\newrefcontext[labelprefix=A]
+\newrefcontext{ap}
\printbibliography[type=article]
-\newrefcontext[sorting=ydnt, resetnumbers]
+\newrefcontext[sorting=ydnt]
\printbibliography[type=misc]
\end{document}
\end{ltxexample}
%
-Assuming the entrykeys are indicative of their entrytypes, this is the default situation for the citations which corresponds to what users normally expect:
+This example also shows the declaration and use of a named reference context. Assuming the entrykeys are indicative of their entrytypes, this is the default situation for the citations which corresponds to what users normally expect:
\begin{itemize}
\item The citation of entry \bibfield{book} would draw its data from the global reference context, because the last bibliography in which it was printed was the one in the global reference context.
@@ -3547,9 +3754,9 @@ In cases where the user has entries which occur in multiple bibliographies in di
\begin{ltxsyntax}
-\envitem{refcontext}[key=value, \dots]
+\cmditem{DeclareRefcontext}{name}{key=value, \dots}
-Wraps a bibliography context environment. The options define the context attributes. All context attributes are optional and default to the global settings if absent. The current options are:
+Declares a named reference context with name \prm{name}. The \prm{key=value} options define the context attributes. All context attributes are optional and default to the global settings if absent. The valid options are:
\begin{optionlist*}
@@ -3563,18 +3770,71 @@ Specify a sorting name key scheme defined previously with \cmd{DeclareSortingNam
\valitem{labelprefix}{string}
-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. Setting this option will implicitly enable \opt{resetnumbers} for the any \cmd{printbibliography} in the scope of the context. The option assigns the \prm{string} as a prefix to all entries in the reference context. For example, if the \prm{string} is \texttt{A}, the numerical labels printed will be \texttt{[A1]}, \texttt{[A2]}, \texttt{[A3]}, etc. This is useful for subdivided numerical bibliographies where each subbibliography uses a different prefix. The \prm{string} is available to styles in the \bibfield{labelprefix} field of all affected entries. See \secref{aut:bbx:fld:lab} for details.
+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. Setting this option will implicitly enable \opt{resetnumbers} for the any \cmd{printbibliography} in the scope of the context (unless overridden by a user-specified value for \opt{resetnumbers}). The option assigns the \prm{string} as a prefix to all entries in the reference context. For example, if the \prm{string} is \texttt{A}, the numerical labels printed will be \texttt{[A1]}, \texttt{[A2]}, \texttt{[A3]}, etc. This is useful for subdivided numerical bibliographies where each subbibliography uses a different prefix. The \prm{string} is available to styles in the \bibfield{labelprefix} field of all affected entries. See \secref{aut:bbx:fld:lab} for details.
\end{optionlist*}
%
+
+\envitem{refcontext}[key=value, \dots]{name}
+
+Wraps a reference context environment. The possible \prm{key=value} optional arguments are as for \cmd{DeclareRefcontext} and override options given for the named reference context \prm{name}. \prm{name} can also be omitted as \verb+{}+ or by omitting even the empty braces\footnote{This slightly odd syntax possibility is a result of backwards compatibility with \biblatex $<$3.5}.
+
The \opt{refcontext} environment cannot be nested and \biblatex will generate an error if you try to do so.
-\cmditem{newrefcontext}[key=value, \dots]
+\cmditem{newrefcontext}[key=value, \dots]{name}
-This command is similar to the \env{refcontext} environment except that it is a stand"=alone command rather than an environment. It automatically ends the previous context section (if any) and immediately starts a new one. Note that the context section started by the last \cmd{newrefcontext} command in the document will extend to the very end of the document. Use \cmd{endrefcontext} if you want to terminate it earlier.
+This command is similar to the \env{refcontext} environment except that it is a stand"=alone command rather than an environment. It automatically ends any previous reference context section begun with \cmd{newrefcontext} (if any) and immediately starts a new one. Note that the context section started by the last \cmd{newrefcontext} command in the document will extend to the very end of the document. Use \cmd{endrefcontext} if you want to terminate it earlier.
\end{ltxsyntax}
%
-At the beginning of the document, there is always a global context containing global settings for each of the reference context options.
+At the beginning of the document, there is always a global context containing global settings for each of the reference context options. Here is an example summarising the reference contexts with various settings:
+
+\begin{ltxexample}[style=latex]{}
+\usepackage[sorting=nty]{biblatex}
+
+\DeclareRefcontext{testrc}{sorting=nyt}
+
+% Global reference context:
+% sorting=nty
+% sortingnamekeyscheme=global
+% labelprefix=
+
+\begin{document}
+
+\begin{refcontext}{testrc}
+% reference context:
+% sorting=nyt
+% sortingnamekeyscheme=global
+% labelprefix=
+\end{refcontext}
+
+\begin{refcontext}[labelprefix=A]{testrc}
+% reference context:
+% sorting=nyt
+% sortingnamekeyscheme=global
+% labelprefix=A
+\end{refcontext}
+
+\begin{refcontext}[sorting=ydnt,labelprefix=A]
+% reference context:
+% sorting=ydnt
+% sortingnamekeyscheme=global
+% labelprefix=A
+\end{refcontext}
+
+\newfcontext}[labelprefix=B]
+% reference context:
+% sorting=nty
+% sortingnamekeyscheme=global
+% labelprefix=B
+\endrefcontext
+
+\newfcontext}[sorting=ynt,labelprefix=C]{testrc}
+% reference context:
+% sorting=ynt
+% sortingnamekeyscheme=global
+% labelprefix=C
+\endrefcontext
+\end{ltxexample}
\begin{ltxsyntax}
@@ -4140,7 +4400,7 @@ The commands and facilities presented in this section may be used to adapt the f
\subsubsection{Generic Commands and Hooks}
\label{use:fmt:fmt}
-The commands in this section may be redefined with \cmd{renewcommand} in the document preamble. Those marked as <Context Sensitive> in the margin can also be customised with \cmd{DeclareDelimFormat} and are printed with \cmd{printdelim} (\secref{use:fmt:csd}). Note that all commands starting with \cmd{mk\dots} take one argument. All of these commands are defined in \path{biblatex$_$.def}.
+The commands in this section may be redefined with \cmd{renewcommand} in the document preamble. Those marked as <Context Sensitive> in the margin can also be customised with \cmd{DeclareDelimFormat} and are printed with \cmd{printdelim} (\secref{use:fmt:csd}). Note that all commands starting with \cmd{mk\dots} take one argument. All of these commands are defined in \path{biblatex.def}.
\begin{ltxsyntax}
@@ -4283,6 +4543,24 @@ Similar to \cmd{multicitedelim}, but used by the \cmd{supercite} command only. T
\csitem{compcitedelim}
Similar to \cmd{multicitedelim}, but used by certain citation styles when <compressing> multiple citations. The default definition is a comma plus an interword space.
+\csitem{datecircadelim}\CSdelimMark
+When formatting dates with the global option \opt{datecirca} enabled, the delimiter printed after any localised <circa> term. Defaults to interword space.
+
+\csitem{dateeradelim}\CSdelimMark
+When formatting dates with the global option \opt{dateera} set, the delimiter printed before the localisation era term. Defaults to interword space.
+
+\csitem{dateuncertainprint}
+Prints date uncertainty information when the global option \opt{dateuncertain} is enabled. By default, prints the language specific \cmd{bibdateuncertain} string (\secref{use:fmt:lng}).
+
+\csitem{datecircaprint}
+Prints date uncertainty information when the global option \opt{datecirca} is enabled. By default, prints the <circa> localised term (\secref{aut:lng:key:dt}) and the \opt{datecircadelim} delimiter.
+
+\csitem{dateeraprint}{yearfield}
+Prints date era information when the global option \opt{dateera} is set to <secular> or <christian>. By default, prints the \opt{dateeradelim} delimiter and the appropriate localised era term (\secref{aut:lng:key:dt}). If the \opt{dateeraauto} option is set, then the passed \prm{yearfield} (which is the name of a year field such as <year>, <origyear>, <endeventyear> etc.) is tested to see if its value is earlier than the \opt{dateeraauto} threshold and if so, then the BCE/CE localisation will be output too. The default setting for \opt{dateeraauto} is 0 and so only BCE/BC localisation strings are candidates for output. Detects whether the start or end year era information is to be printed by looking at the \prm{yearfield} name passed to it.
+
+\csitem{dateeraprintpre}
+Prints date era information when the global option \opt{dateera} is set to <astronomical>. By default, prints \opt{bibdataeraprefix}. Detects whether the start or end year era information is to be printed by looking at the \prm{yearfield} name passed to it.
+
\csitem{textcitedelim}
Similar to \cmd{multicitedelim}, but used by \cmd{textcite} and related commands (\secref{use:cit:cbx}). The default is a comma plus an interword space. The standard styles modify this provisional definition to ensure that the delimiter before the final citation is the localised term <and>, separated by interword spaces. See also \cmd{finalandcomma} and \cmd{finalandsemicolon} in \secref{use:fmt:lng}.
@@ -4382,6 +4660,30 @@ Delimiter contexts are simply a string, the value of the internal macro \cmd{blx
Set the delimiter context to \prm{context}. This setting is not global so that delimiter contexts can be nested using the usual \latex group method.
+\cmditem{DeclareDelimcontextAlias}{alias}{name}
+
+The context-sensitive delimiter system creates delimiter contexts based on
+the name of citation commands (<parencite>, <textcite> etc.) passed to
+\cmd{DeclareCiteCommand}. In certain cases where there are nested
+definitions of citation commands where \cmd{DeclareCiteCommand} calls
+itself (see the definition of \cmd{textcite} in \sty{authoryear-icomp}
+for example). The delimiter context is then usually incorrect and the
+delimiter specifications do not work. For example, the definition of
+\cmd{textcite} in fact defines and uses \cmd{cbx@textcite} and so the
+context is automatically set to \opt{cbx@textcite} when printing the
+citation. Delimiter definitions expecting to see the context \opt{textcite}
+therefore do not work. Therefore this command is provided for style authors
+which aliases the context \prm{alias} to the context \prm{name}. For
+example:
+
+\begin{ltxexample}[style=latex]{}
+\DeclareDelimcontextAlias{cbx@textcite}{textcite}
+\end{ltxexample}
+%
+This (which is a default setting), makes sure that when inside the
+\cmd{cbx@textcite} citation command, the context is in fact \opt{textcite}
+as expected.
+
\end{ltxsyntax}
%
\biblatex\ has several default contexts which are established automatically in various places:
@@ -4411,7 +4713,7 @@ Would print \cmd{addspace} regardless of the surrounding context of the \cmd{pri
\begin{ltxexample}[style=latex]{}
\DeclareDelimFormat{delima}{X}
\DeclareDelimFormat[textcite]{delima}{Y}
-\renewcommand*{delima}{Z}
+\renewcommand*{\delima}{Z}
\end{ltxexample}
%
Here, \cmd{delima} always prints <Z>. \verb+\printdelim{delima}+ in any context other than <textcite> also prints \cmd{delima} and hence <Z> but in a <textcite> context prints <Y>. See the \file{04-delimiters.tex} example file that comes with \biblatex\ for more information.
@@ -4425,15 +4727,19 @@ The commands in this section are language specific. When redefining them, you ne
\csitem{bibrangedash}
-The language specific dash to be used for ranges of numbers.
+The language specific dash to be used for ranges of numbers. Defaults to \cmd{textendash}.
\csitem{bibrangessep}
-The language specific separator to be used between multiple ranges.
+The language specific separator to be used between multiple ranges. Defaults to a comma followed by a space.
+
+\csitem{bibdatesep}
-\csitem{bibdatedash}
+The language specific separator used between date components in terse date formats. Defaults to \cmd{hyphen}.
-The language specific dash to be used for date ranges.
+\csitem{bibdaterangesep}
+
+The language specific separator to be used for date ranges. Defaults to \cmd{textendash} for all date formats apart from \opt{ymd} which defaults to a \cmd{slash}. The date format option \opt{edtf} is hard-coded to \cmd{slash} since this is a standards compliant format.
\csitem{mkbibdatelong}
@@ -4443,6 +4749,38 @@ Takes the names of three field as arguments which correspond to three date compo
Similar to \cmd{mkbibdatelong} but using the language specific short date format.
+\csitem{mkbibtimezone}
+
+Modifies a timezone string passed in as the only argument. By default this changes <Z> to the value of \cmd{bibtimezone}.
+
+\csitem{bibdateuncertain}
+
+The language specific marker to be used after uncertain dates when the global option \opt{dateuncertain} is enabled. Defaults to a space followed by a question mark.
+
+\csitem{bibdateeraprefix}
+
+The language specific marker which is printed as a prefix to beginning BCE/BC dates in a date range when the option \opt{dateera} is set to <astronomical>. Defaults to \cmd{textminus}.
+
+\csitem{bibdateeraendprefix}
+
+The language specific marker which is printed as a prefix to end BCE/BC dates in a date range when the option \opt{dateera} is set to <astronomical>. Defaults to a thin space followed by \cmd{bibdateeraprefix} when \cmd{bibdaterangesep} is set to a dash and to \cmd{bibdateeraprefix} otherwise. This is a separate macro so that you may add extra space before a negative date marker which, for example follows a dash date range marker as this can look a little odd.
+
+\csitem{bibtimesep}
+
+The language specific marker which separates time components. Defaults to a colon.
+
+\csitem{bibtimezonesep}
+
+The language specific marker which separates an optional time zone component from a time. Empty by default.
+
+\csitem{bibtzminsep}
+
+The language specific marker which separates hour and minute component of offset timezones. Defaults to a \cmd{bibtimesep}.
+
+\csitem{bibdatetimesep}
+
+The language specific separator printed between date and time components when printing time components along with date components (see the \opt{$<$datetype$>$dateusetime} option in \secref{use:opt:pre:gen}). Defaults to a space for non-EDTF output formats, and 'T' for EDTF output format.
+
\csitem{finalandcomma}
Prints the comma to be inserted before the final <and> in a list, if applicable in the respective language. Here is an example:
@@ -5442,7 +5780,7 @@ As seen in this example, the data is presented in a structured format that resem
\subsection{Bibliography Styles}
\label{aut:bbx}
-A bibliography style is a set of macros which print the entries in the bibliography. Such styles are defined in files with the suffix \file{bbx}. The \biblatex package loads the selected bibliography style file at the end of the package. Note that a small repertory of frequently used macros shared by several of the standard bibliography styles is included in \path{biblatex$_$.def}. This file is loaded at the end of the package as well, prior to the selected bibliography style.
+A bibliography style is a set of macros which print the entries in the bibliography. Such styles are defined in files with the suffix \file{bbx}. The \biblatex package loads the selected bibliography style file at the end of the package. Note that a small repertory of frequently used macros shared by several of the standard bibliography styles is included in \path{biblatex.def}. This file is loaded at the end of the package as well, prior to the selected bibliography style.
\subsubsection{Bibliography Style Files}
\label{aut:bbx:bbx}
@@ -5624,7 +5962,9 @@ Names depend on the datamodel constant <nameparts> which has the default definit
{prefix,family,suffix,given}
\end{ltxexample}
%
-Inside name formats, this makes available two macros for each name part defined in the datamodel:
+This can be customised to add more name parts to deal with things like patronymics (see the example file \file{93-nameparts.tex}). Naturally this needs an extended name format for data sources. \biblatexml (\secref{apx:biblatexml}) handles this natively and there is an extended name format which can handle custom nameparts available when using \biber (see \biber documentation).
+
+Inside name formats, the nameparts constant declaration makes available two macros for each name part defined in the datamodel:
\begin{ltxexample}
\namepart<namepart>
@@ -5657,6 +5997,27 @@ The following lists and fields are used by \biblatex to pass data to bibliograph
\begin{fieldlist}
+\fielditem{$<$datetype$>$dateunspecified}{string}
+
+If $<$datetype$>$date held an EDTF 5.2.2 <unspecified>, this field will be set to one of \opt{yearindecade}, \opt{yearincentury}, \opt{monthinyear}, \opt{dayinmonth} or \opt{dayinyear} which specifies the granularity of the unspecified information. These strings can be tested for and along with the date ranges which are automatically created for such <unspecified> dates, a style may choose to format the date in a special way. See \secref{bib:use:dat}. For example, an entry with dates such as:
+
+\begin{lstlisting}[style=bibtex]{}
+@book{key,
+ date = {19uu},
+ origdate = {199u}
+}
+\end{lstlisting}
+%
+would result in the same information in the \file{.bbl} as:
+\begin{lstlisting}[style=bibtex]{}
+@book{key,
+ date = {1900/1999},
+ origdate = {1990/1999}
+}
+\end{lstlisting}
+%
+but would additionally have the field \bibfield{dateunspecified} set to <yearincentury> and \bibfield{origdateunspecified} set to <yearindecade>. This information could be used to render the \bibfield{date} as perhaps <20th century> and \bibfield{origdate} as <The 1990s>, information which cannot be derived from the date ranges alone. Since such auto-generated ranges have a know values, given the <unspecified> meta-information, it is relatively easy to use the range values to format special cases. While the standard styles not do this, examples are given in the file \file{96-dates.tex}.
+
\fielditem{entrykey}{string}
The entry key of an item in the \file{bib} file. This is the string used by \biblatex and the backend to identify an entry in the \file{bib} file.
@@ -5665,25 +6026,42 @@ The entry key of an item in the \file{bib} file. This is the string used by \bib
When citing a subentry of an entry set, \biblatex provides the data of the parent \bibtype{set} entry to citation commands. This implies that the \bibfield{entrykey} field holds the entry key of the parent. The entry key of the child entry being cited is provided in the \bibfield{childentrykey} field. This field is only available when citing a subentry of an entry set.
-\fielditem{datelabelsource}{literal}
+\fielditem{labelnamesource}{literal}
+
+Holds the name of the field used to populate \bibfield{labelname},
+determined by \cmd{DeclareLabelname}.
+
+\fielditem{labeltitlesource}{literal}
+
+Holds the name of the field used to populate \bibfield{labeltitle},
+determined by \cmd{DeclareLabeltitle}.
-Holds the prefix coming before <date> of the date field name chosen by \cmd{DeclareLabeldate}. For example, if the label date field is \bibfield{eventdate}, then \bibfield{datelabelsource} will be <event>. In case \cmd{DeclareLabeldate} selects the \bibfield{date} field, then \bibfield{datelabelsource} will be defined but will be an empty string as the prefix coming before <date> in the date label name is empty. This is so that the contents of \bibfield{datelabelsource} can be used in constructing references to the field which \cmd{DeclareLabeldate} chooses. Since \cmd{DeclareLabeldate} can also select literal strings for fallbacks, if \bibfield{datelabelsource} is undefined, then either the \opt{labeldate} package option is set to false or \cmd{DeclareLabeldate} chose a literal string instead of a date field. Bear in mind that \cmd{DeclareLabeldate} can also be used to select non-date fields as a fallback and so \bibfield{datelabelsource} might contain a field name. So, in summary, the rules are
+\fielditem{labeldatesource}{literal}
+
+Holds one of:
+
+\begin{itemize}
+\item The prefix coming before <date> of the date field name chosen by
+ \cmd{DeclareLabeldate}
+\item The name of a field
+\item A literal or localisation string
+\end{itemize}
+%
+Normally holds the prefix coming before <date> of the date field name chosen by \cmd{DeclareLabeldate}. For example, if the labeldate field is \bibfield{eventdate}, then \bibfield{labeldatesource} will be <event>. In case \cmd{DeclareLabeldate} selects the \bibfield{date} field, then \bibfield{labeldatesource} will be defined but will be an empty string as the prefix coming before <date> in the date label name is empty. This is so that the contents of \bibfield{labeldatesource} can be used in constructing references to the field which \cmd{DeclareLabeldate} chooses. Since \cmd{DeclareLabeldate} can also select literal strings for fallbacks, \bibfield{labeldatesource} may not refer to a field or may be undefined. Bear in mind that \cmd{DeclareLabeldate} can also be used to select non-date fields as a fallback and so \bibfield{labeldatesource} might contain a field name. So, in summary, the rules are
\begin{ltxexample}
-\iffieldundef{datelabelsource}
- {
- % labeldate package option is not set or
- % \DeclareLabeldate resolved to a literal string
- }
- {
- \iffieldundef{\thefield{datelabelsource}date}
- {
- % datelabelsource contains a date field name
- % prefix like "", "event", "url" or "orig"
- }
- {
- % datelabelsource contains a non-date field
- }
+\iffieldundef{labeldatesource}
+ {}% labeldate package option is not set
+ {\iffieldundef{\thefield{labeldatesource}year}
+ % \DeclareLabeldate resolved to either a literal/localisation
+ % string or a non-date field since
+ % if a date is defined by a date field, there is
+ % at least a year
+ {\iffieldundef{\thefield{labeldatesource}}
+ {}% \DeclareLabeldate resolved to a literal/localisation string
+ {}% \DeclareLabeldate resolved to a non-date field
+ }
+ {} % \DeclareLabeldate resolved a date field name prefix like "" or "orig"
}
\end{ltxexample}
@@ -5707,10 +6085,18 @@ This field is special in that it is only available locally in name formatting di
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{maxnames} and \opt{minnames}. See also \bibfield{hash} and \bibfield{fullhash}.
+\fielditem{$<$namelist$>$namehash}{string}
+
+As \bibfield{namehash} 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}.
+\fielditem{$<$namelist$>$fullhash}{string}
+
+As \bibfield{fullhash} 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.
@@ -5770,22 +6156,31 @@ It is sometimes useful, for example in author"=title citation schemes, to be abl
\fielditem{labelyear}{literal}
-The publication year, as specified in the \bibfield{date} or the \bibfield{year} field, for use in author-year labels. A complete author-year label consists of the fields \bibfield{labelyear} plus \bibfield{extrayear}. Note that the \bibfield{labelyear} and \bibfield{extrayear} fields need to be requested with the package option \opt{labeldate}, see \secref{use:opt:pre:int} for details. See also \bibfield{extrayear}.
-The source date field for this may be customized. See \secref{aut:ctm:fld} for details.
+The year of the date field selected by \cmd{DeclareLabeldate} (\secref{aut:ctm:fld}) or the \bibfield{year} field, for use in author-year labels. A complete author-year label consists of the fields \bibfield{labelyear} plus \bibfield{extrayear}. Note that the \bibfield{labelyear} and \bibfield{extrayear} fields need to be requested with the package option \opt{labeldateparts}, see \secref{use:opt:pre:int} for details. See also \bibfield{extrayear}.
+
+\fielditem{labelendyear}{literal}
+
+The end year of the date field selected by \cmd{DeclareLabeldate} (\secref{aut:ctm:fld}) if the selected date is a range.
\fielditem{labelmonth}{datepart}
-The publication month, as specified in the \bibfield{date} or the \bibfield{month} field, for use in author-year labels. Note that the \bibfield{labelmonth} field needs to be requested with the package option \opt{labeldate}, see \secref{use:opt:pre:int} for details.
-The source date field for this may be customized. See \secref{aut:ctm:fld} for details.
+The month of the date field selected by \cmd{DeclareLabeldate} (\secref{aut:ctm:fld}), or the \bibfield{month} field for use in author-year labels. Note that the \bibfield{labelmonth} field needs to be requested with the package option \opt{labeldateparts}, see \secref{use:opt:pre:int} for details.
+
+\fielditem{labelendmonth}{datepart}
+
+The end month of the date field selected by \cmd{DeclareLabeldate} (\secref{aut:ctm:fld}) if the selected date is a range.
\fielditem{labelday}{datepart}
-The publication day, as specified in the \bibfield{date}, for use in author-year labels. Note that the \bibfield{labelday} field needs to be requested with the package option \opt{labeldate}, see \secref{use:opt:pre:int} for details.
-The source date field for this may be customized. See \secref{aut:ctm:fld} for details.
+The month of the date field selected by \cmd{DeclareLabeldate} (\secref{aut:ctm:fld}) for use in author-year labels. Note that the \bibfield{labelday} field needs to be requested with the package option \opt{labeldateparts}, see \secref{use:opt:pre:int} for details.
+
+\fielditem{labelendday}{datepart}
+
+The end day of the date field selected by \cmd{DeclareLabeldate} (\secref{aut:ctm:fld}) if the selected date is a range.
\fielditem{extrayear}{integer}
-The author"=year citation scheme usually requires a letter to be appended to the year if the bibliography contains two or more works by the same author which were all published in the same year. In this case, the \bibfield{extrayear} field holds an integer which may be converted to a letter with \cmd{mknumalph} or formatted in some other way. This field is undefined if there is only one work by the author in the bibliography or if all works by the author have different publication years. A complete author-year label consists of the fields \bibfield{labelyear} plus \bibfield{extrayear}. Note that the \bibfield{labelyear} and \bibfield{extrayear} fields need to be requested with the package option \opt{labeldate}, see \secref{use:opt:pre:int} for details. See also \bibfield{labelyear}. Table \ref{use:opt:tab1} summarises the various \opt{extra*} disambiguation counters and what they track.
+The author"=year citation scheme usually requires a letter to be appended to the year if the bibliography contains two or more works by the same author which were all published in the same year. In this case, the \bibfield{extrayear} field holds an integer which may be converted to a letter with \cmd{mknumalph} or formatted in some other way. This field is undefined if there is only one work by the author in the bibliography or if all works by the author have different publication years. A complete author-year label consists of the fields \bibfield{labelyear} plus \bibfield{extrayear}. Note that the \bibfield{labelyear} and \bibfield{extrayear} fields need to be requested with the package option \opt{labeldateparts}, see \secref{use:opt:pre:int} for details. See also \bibfield{labelyear}. Table \ref{use:opt:tab1} summarises the various \opt{extra*} disambiguation counters and what they track.
\end{fieldlist}
@@ -5814,9 +6209,12 @@ will tell you if the corresponding date is defined and a (fully specified) range
%
will tell you if the corresponding date is defined and an open"=ended range. Open"=ended ranges are indicated by an empty \texttt{endyear} component (as opposed to an undefined \texttt{endyear} component). See \secref{bib:use:dat} and \tabref{bib:use:tab1} on page~\pageref{bib:use:tab1} for further examples.
-\begin{table}
\tablesetup
-\begin{tabularx}{\textwidth}{@{}>{\ttfamily}lX>{\ttfamily}lX@{}}
+\begin{longtable}[l]{%
+ @{}V{0.15\textwidth}%
+ @{}V{0.4\textwidth}%
+ @{}V{0.3\textwidth}%
+ @{}V{0.2\textwidth}@{}}
\toprule
\multicolumn{2}{@{}H}{\file{bib} File} &
\multicolumn{2}{H}{Data Interface} \\
@@ -5829,41 +6227,155 @@ will tell you if the corresponding date is defined and an open"=ended range. Ope
date & 1988 & day & undefined \\
& & month & undefined \\
& & year & 1988 \\
+ & & season & undefined \\
& & endday & undefined \\
& & endmonth & undefined \\
& & endyear & undefined \\
+ & & endseason & undefined \\
+ & & hour & undefined \\
+ & & minute & undefined \\
+ & & second & undefined \\
+ & & timezone & undefined \\
+ & & endhour & undefined \\
+ & & endminute & undefined \\
+ & & endsecond & undefined \\
+ & & endtimezone & undefined \\
date & 1997/ & day & undefined \\
& & month & undefined \\
& & year & 1997 \\
+ & & season & undefined \\
& & endday & undefined \\
& & endmonth & undefined \\
& & endyear & empty \\
+ & & endseason & undefined \\
+ & & hour & undefined \\
+ & & minute & undefined \\
+ & & second & undefined \\
+ & & timezone & undefined \\
+ & & endhour & undefined \\
+ & & endminute & undefined \\
+ & & endsecond & undefined \\
+ & & endtimezone & undefined \\
urldate & 2009-01-31 & urlday & 31 \\
& & urlmonth & 01 \\
& & urlyear & 2009 \\
+ & & urlseason & undefined \\
+ & & urlendday & undefined \\
+ & & urlendmonth & undefined \\
+ & & urlendyear & undefined \\
+ & & urlendseason & undefined \\
+ & & urlhour & undefined \\
+ & & urlminute & undefined \\
+ & & urlsecond & undefined \\
+ & & urltimezone & undefined \\
+ & & urlendhour & undefined \\
+ & & urlendminute & undefined \\
+ & & urlendsecond & undefined \\
+ & & urlendtimezone & undefined \\
+urldate & 2009-01-31T15:34:04Z & urlday & 31 \\
+ & & urlmonth & 01 \\
+ & & urlyear & 2009 \\
+ & & urlseason & undefined \\
+ & & urlendday & undefined \\
+ & & urlendmonth & undefined \\
+ & & urlendyear & undefined \\
+ & & urlendseason & undefined \\
+ & & urlhour & 15 \\
+ & & urlminute & 34 \\
+ & & urlsecond & 04 \\
+ & & urltimezone & Z \\
+ & & urlendhour & undefined \\
+ & & urlendminute & undefined \\
+ & & urlendsecond & undefined \\
+ & & urlendtimezone & undefined \\
+urldate & 2009-01-31T15:34:04+05:00 & urlday & 31 \\
+ & & urlmonth & 01 \\
+ & & urlyear & 2009 \\
+ & & urlseason & undefined \\
& & urlendday & undefined \\
& & urlendmonth & undefined \\
& & urlendyear & undefined \\
-origdate & 2002-01/2002-02 & origday & undefined \\
+ & & urlendseason & undefined \\
+ & & urlhour & 15 \\
+ & & urlminute & 34 \\
+ & & urlsecond & 04 \\
+ & & urltimezone & +0500 \\
+ & & urlendhour & undefined \\
+ & & urlendminute & undefined \\
+ & & urlendsecond & undefined \\
+ & & urlendtimezone & undefined \\
+urldate & \parbox[t]{0.4\textwidth}{2009-01-31T15:34:04/\\2009-01-31T16:04:34}& urlday & 31 \\
+ & & urlmonth & 1 \\
+ & & urlyear & 2009 \\
+ & & urlseason & undefined \\
+ & & urlendday & 31 \\
+ & & urlendmonth & 1 \\
+ & & urlendyear & 2009 \\
+ & & urlendseason & undefined \\
+ & & urlhour & 15 \\
+ & & urlminute & 34 \\
+ & & urlsecond & 4 \\
+ & & urltimezone & floating \\
+ & & urlendhour & 16 \\
+ & & urlendminute & 4 \\
+ & & urlendsecond & 34 \\
+ & & urlendtimezone & floating \\
+origdate & 2002-21/2002-23 & origday & undefined \\
& & origmonth & 01 \\
& & origyear & 2002 \\
+ & & origseason & spring \\
& & origendday & undefined \\
& & origendmonth & 02 \\
& & origendyear & 2002 \\
+ & & origendseason & autumn \\
+ & & orighour & undefined \\
+ & & origminute & undefined \\
+ & & origsecond & undefined \\
+ & & origtimezone & undefined \\
+ & & origendhour & undefined \\
+ & & origendminute & undefined \\
+ & & origendsecond & undefined \\
+ & & origendtimezone & undefined \\
eventdate & 1995-01-31/1995-02-05 & eventday & 31 \\
& & eventmonth & 01 \\
& & eventyear & 1995 \\
+ & & eventseason & undefined \\
& & eventendday & 05 \\
& & eventendmonth & 02 \\
& & eventendyear & 1995 \\
+ & & eventendseason & undefined \\
+ & & eventhour & undefined \\
+ & & eventminute & undefined \\
+ & & eventsecond & undefined \\
+ & & eventtimezone & undefined \\
+ & & eventendhour & undefined \\
+ & & eventendminute & undefined \\
+ & & eventendsecond & undefined \\
+ & & eventendtimezone & undefined \\
\bottomrule
-\end{tabularx}
+%\end{tabularx}
\caption{Date Interface}
\label{aut:bbx:fld:tab1}
-\end{table}
+\end{longtable}
\begin{fieldlist}
+\fielditem{hour}{datepart}
+
+This field holds the hour component of the \bibfield{date} field. If the date is a range, it holds the hour component of the start date.
+
+\fielditem{minute}{datepart}
+
+This field holds the minute component of the \bibfield{date} field. If the date is a range, it holds the minute component of the start date.
+
+\fielditem{second}{datepart}
+
+This field holds the second component of the \bibfield{date} field. If the date is a range, it holds the second component of the start date.
+
+\fielditem{timezone}{datepart}
+
+This field holds the timezone component of the \bibfield{date} field. If the date is a range, it holds the timezone component of the start date.
+
\fielditem{day}{datepart}
This field holds the day component of the \bibfield{date} field. If the date is a range, it holds the day component of the start date.
@@ -5876,6 +6388,26 @@ This field is the \bibfield{month} as given in the database file or it holds the
This field is the \bibfield{year} as given in the database file or it holds the year component of the \bibfield{date} field. If the date is a range, it holds the year component of the start date.
+\fielditem{season}{datepart}
+
+This field holds the season component of the \bibfield{date} field as specified by \acr{EDTF} 5.2.5 (\secref{bib:use:dat}). It contains a season localisation string (\secref{aut:lng:key:dt}). If the date is a range, it holds the season component of the start date.
+
+\fielditem{endhour}{datepart}
+
+If the date specification in the \bibfield{date} field is a range, this field holds the hour component of the end date.
+
+\fielditem{endminute}{datepart}
+
+If the date specification in the \bibfield{date} field is a range, this field holds the minute component of the end date.
+
+\fielditem{endsecond}{datepart}
+
+If the date specification in the \bibfield{date} field is a range, this field holds the second component of the end date.
+
+\fielditem{endtimezone}{datepart}
+
+If the date specification in the \bibfield{date} field is a range, this field holds the timezone component of the end date.
+
\fielditem{endday}{datepart}
If the date specification in the \bibfield{date} field is a range, this field holds the day component of the end date.
@@ -5888,6 +6420,26 @@ If the date specification in the \bibfield{date} field is a range, this field ho
If the date specification in the \bibfield{date} field is a range, this field holds the year component of the end date. A blank (but defined) \bibfield{endyear} component indicates an open ended \bibfield{date} range.
+\fielditem{endseason}{datepart}
+
+If the date specification in the \bibfield{date} field is a range, this field holds the season component of the end date as specified by \acr{EDTF} 5.2.5 (\secref{bib:use:dat}). It contains a season localisation string (\secref{aut:lng:key:dt}). A blank (but defined) \bibfield{endseason} component indicates an open ended \bibfield{date} range.
+
+\fielditem{orighour}{datepart}
+
+This field holds the hour component of the \bibfield{origdate} field. If the date is a range, it holds the hour component of the start date.
+
+\fielditem{origminute}{datepart}
+
+This field holds the minute component of the \bibfield{origdate} field. If the date is a range, it holds the minute component of the start date.
+
+\fielditem{origsecond}{datepart}
+
+This field holds the second component of the \bibfield{origdate} field. If the date is a range, it holds the second component of the start date.
+
+\fielditem{origtimezone}{datepart}
+
+This field holds the timezone component of the \bibfield{origdate} field. If the date is a range, it holds the timezone component of the start date.
+
\fielditem{origday}{datepart}
This field holds the day component of the \bibfield{origdate} field. If the date is a range, it holds the day component of the start date.
@@ -5900,6 +6452,26 @@ This field holds the month component of the \bibfield{origdate} field. If the da
This field holds the year component of the \bibfield{origdate} field. If the date is a range, it holds the year component of the start date.
+\fielditem{origseason}{datepart}
+
+This field holds the season component of the \bibfield{origdate} field as specified by \acr{EDTF} 5.2.5 (\secref{bib:use:dat}). It contains a season localisation string (\secref{aut:lng:key:dt}). If the date is a range, it holds the season component of the start date.
+
+\fielditem{origendhour}{datepart}
+
+If the date specification in the \bibfield{origdate} field is a range, this field holds the hour component of the end date.
+
+\fielditem{origendminute}{datepart}
+
+If the date specification in the \bibfield{origdate} field is a range, this field holds the minute component of the end date.
+
+\fielditem{origendsecond}{datepart}
+
+If the date specification in the \bibfield{origdate} field is a range, this field holds the second component of the end date.
+
+\fielditem{origendtimezone}{datepart}
+
+If the date specification in the \bibfield{origdate} field is a range, this field holds the timezone component of the end date.
+
\fielditem{origendday}{datepart}
If the date specification in the \bibfield{origdate} field is a range, this field holds the day component of the end date.
@@ -5912,6 +6484,26 @@ If the date specification in the \bibfield{origdate} field is a range, this fiel
If the date specification in the \bibfield{origdate} field is a range, this field holds the year component of the end date. A blank (but defined) \bibfield{origendyear} component indicates an open ended \bibfield{origdate} range.
+\fielditem{origendseason}{datepart}
+
+If the date specification in the \bibfield{origdate} field is a range, this field holds the season component of the end date as specified by \acr{EDTF} 5.2.5 (\secref{bib:use:dat}). It contains a season localisation string (\secref{aut:lng:key:dt}). A blank (but defined) \bibfield{origendseason} component indicates an open ended \bibfield{origdate} range.
+
+\fielditem{eventhour}{datepart}
+
+This field holds the hour component of the \bibfield{eventdate} field. If the date is a range, it holds the hour component of the start date.
+
+\fielditem{eventminute}{datepart}
+
+This field holds the minute component of the \bibfield{eventdate} field. If the date is a range, it holds the minute component of the start date.
+
+\fielditem{eventsecond}{datepart}
+
+This field holds the second component of the \bibfield{eventdate} field. If the date is a range, it holds the second component of the start date.
+
+\fielditem{eventtimezone}{datepart}
+
+This field holds the timezone component of the \bibfield{eventdate} field. If the date is a range, it holds the timezone component of the start date.
+
\fielditem{eventday}{datepart}
This field holds the day component of the \bibfield{eventdate} field. If the date is a range, it holds the day component of the start date.
@@ -5924,6 +6516,26 @@ This field holds the month component of the \bibfield{eventdate} field. If the d
This field holds the year component of the \bibfield{eventdate} field. If the date is a range, it holds the year component of the start date.
+\fielditem{eventseason}{datepart}
+
+This field holds the season component of the \bibfield{eventdate} field as specified by \acr{EDTF} 5.2.5 (\secref{bib:use:dat}). It contains a season localisation string (\secref{aut:lng:key:dt}). If the date is a range, it holds the season component of the start date.
+
+\fielditem{eventendhour}{datepart}
+
+If the date specification in the \bibfield{eventdate} field is a range, this field holds the hour component of the end date.
+
+\fielditem{eventendminute}{datepart}
+
+If the date specification in the \bibfield{eventdate} field is a range, this field holds the minute component of the end date.
+
+\fielditem{eventendsecond}{datepart}
+
+If the date specification in the \bibfield{eventdate} field is a range, this field holds the second component of the end date.
+
+\fielditem{eventendtimezone}{datepart}
+
+If the date specification in the \bibfield{eventdate} field is a range, this field holds the timezone component of the end date.
+
\fielditem{eventendday}{datepart}
If the date specification in the \bibfield{eventdate} field is a range, this field holds the day component of the end date.
@@ -5936,6 +6548,26 @@ If the date specification in the \bibfield{eventdate} field is a range, this fie
If the date specification in the \bibfield{eventdate} field is a range, this field holds the year component of the end date. A blank (but defined) \bibfield{eventendyear} component indicates an open ended \bibfield{eventdate} range.
+\fielditem{eventendseason}{datepart}
+
+If the date specification in the \bibfield{eventdate} field is a range, this field holds the season component of the end date as specified by \acr{EDTF} 5.2.5 (\secref{bib:use:dat}). It contains a season localisation string (\secref{aut:lng:key:dt}). A blank (but defined) \bibfield{eventendseason} component indicates an open ended \bibfield{eventdate} range.
+
+\fielditem{urlhour}{datepart}
+
+This field holds the hour component of the \bibfield{urldate} field. If the date is a range, it holds the hour component of the start date.
+
+\fielditem{urlminute}{datepart}
+
+This field holds the minute component of the \bibfield{urldate} field. If the date is a range, it holds the minute component of the start date.
+
+\fielditem{urlsecond}{datepart}
+
+This field holds the second component of the \bibfield{urldate} field. If the date is a range, it holds the second component of the start date.
+
+\fielditem{timezone}{urldatepart}
+
+This field holds the timezone component of the \bibfield{urldate} field. If the date is a range, it holds the timezone component of the start date.
+
\fielditem{urlday}{datepart}
This field holds the day component of the \bibfield{urldate} field.
@@ -5948,6 +6580,26 @@ This field holds the month component of the \bibfield{urldate} field.
This field holds the year component of the \bibfield{urldate} field.
+\fielditem{urlseason}{datepart}
+
+This field holds the season component of the \bibfield{urldate} field as specified by \acr{EDTF} 5.2.5 (\secref{bib:use:dat}). It contains a season localisation string (\secref{aut:lng:key:dt}). If the date is a range, it holds the season component of the start date.
+
+\fielditem{urlendhour}{datepart}
+
+If the date specification in the \bibfield{urldate} field is a range, this field holds the hour component of the end date.
+
+\fielditem{urlendminute}{datepart}
+
+If the date specification in the \bibfield{urldate} field is a range, this field holds the minute component of the end date.
+
+\fielditem{urlendsecond}{datepart}
+
+If the date specification in the \bibfield{urldate} field is a range, this field holds the second component of the end date.
+
+\fielditem{urlendtimezone}{datepart}
+
+If the date specification in the \bibfield{urldate} field is a range, this field holds the timezone component of the end date.
+
\fielditem{urlendday}{datepart}
If the date specification in the \bibfield{urldate} field is a range, this field holds the day component of the end date.
@@ -5960,12 +6612,16 @@ If the date specification in the \bibfield{urldate} field is a range, this field
If the date specification in the \bibfield{urldate} field is a range, this field holds the year component of the end date. A blank (but defined) \bibfield{urlendyear} component indicates an open ended \bibfield{urldate} range.
+\fielditem{urlendseason}{datepart}
+
+If the date specification in the \bibfield{urldate} field is a range, this field holds the season component of the end date as specified by \acr{EDTF} 5.2.5 (\secref{bib:use:dat}). It contains a season localisation string (\secref{aut:lng:key:dt}). A blank (but defined) \bibfield{urlendseason} component indicates an open ended \bibfield{urldate} range.
+
\end{fieldlist}
\subsection{Citation Styles}
\label{aut:cbx}
-A citation style is a set of commands such as \cmd{cite} which print different types of citations. Such styles are defined in files with the suffix \file{cbx}. The \biblatex package loads the selected citation style file at the end of the package. Note that a small repertory of frequently used macros shared by several of the standard citation styles is also included in \path{biblatex$_$.def}. This file is loaded at the end of the package as well, prior to the selected citation style. It also contains the definitions of the commands from \secref{use:cit:txt}.
+A citation style is a set of commands such as \cmd{cite} which print different types of citations. Such styles are defined in files with the suffix \file{cbx}. The \biblatex package loads the selected citation style file at the end of the package. Note that a small repertory of frequently used macros shared by several of the standard citation styles is also included in \path{biblatex.def}. This file is loaded at the end of the package as well, prior to the selected citation style. It also contains the definitions of the commands from \secref{use:cit:txt}.
\subsubsection{Citation Style Files}
\label{aut:cbx:cbx}
@@ -6002,7 +6658,7 @@ This is the core command used to define all citation commands. It takes one opti
\cmditem{DeclareMultiCiteCommand}{command}[wrapper]{cite}{delimiter}
-This command defines <multicite> commands (\secref{use:cit:mlt}). The \prm{command} is the multicite command to be defined, for example \cmd{cites}. It is automatically made robust. Multicite commands are built on top of backend commands defined with \cmd{DeclareCiteCommand} and the \prm{cite} argument specifies the name of the backend command to be used. Note that the wrapper of the backend command (\ie the \prm{wrapper} argument passed to \cmd{DeclareCiteCommand}) is ignored. Use the optional \prm{wrapper} argument to specify an alternative wrapper. The \prm{delimiter} is the string to be printed as a separator between the individual citations in the list. This will typically be \cmd{multicitedelim}. The following examples are real definitions taken from \path{biblatex$_$.def}:
+This command defines <multicite> commands (\secref{use:cit:mlt}). The \prm{command} is the multicite command to be defined, for example \cmd{cites}. It is automatically made robust. Multicite commands are built on top of backend commands defined with \cmd{DeclareCiteCommand} and the \prm{cite} argument specifies the name of the backend command to be used. Note that the wrapper of the backend command (\ie the \prm{wrapper} argument passed to \cmd{DeclareCiteCommand}) is ignored. Use the optional \prm{wrapper} argument to specify an alternative wrapper. The \prm{delimiter} is the string to be printed as a separator between the individual citations in the list. This will typically be \cmd{multicitedelim}. The following examples are real definitions taken from \path{biblatex.def}:
\begin{ltxexample}
\DeclareMultiCiteCommand{\cites}%
@@ -6015,7 +6671,7 @@ This command defines <multicite> commands (\secref{use:cit:mlt}). The \prm{comma
\cmditem{DeclareAutoCiteCommand}{name}[position]{cite}{multicite}
-This command provides definitions for the \cmd{autocite} and \cmd{autocites} commands from \secref{use:cit:aut}. The definitions are enabled with the \opt{autocite} package option from \secref{use:opt:pre:gen}. The \prm{name} is an identifier which serves as the value passed to the package option. The autocite commands are built on top of backend commands like \cmd{parencite} and \cmd{parencites}. The arguments \prm{cite} and \prm{multicite} specify the backend commands to use. The \prm{cite} argument refers to \cmd{autocite} and \prm{multicite} refers to \cmd{autocites}. The \prm{position} argument controls the handling of any punctuation marks after the citation. Possible values are \texttt{l}, \texttt{r}, \texttt{f}. \texttt{r} means that the punctuation is placed to the right of the citation, \ie it will not be moved around. \texttt{l} means that any punctuation after the citation is moved to the left of the citation. \texttt{f} is like \texttt{r} in a footnote and like \texttt{l} otherwise. This argument is optional and defaults to \texttt{r}. See also \cmd{DeclareAutoPunctuation} in \secref{aut:pct:cfg} and the \opt{autopunct} package option in \secref{use:opt:pre:gen}. The following examples are real definitions taken from \path{biblatex$_$.def}:
+This command provides definitions for the \cmd{autocite} and \cmd{autocites} commands from \secref{use:cit:aut}. The definitions are enabled with the \opt{autocite} package option from \secref{use:opt:pre:gen}. The \prm{name} is an identifier which serves as the value passed to the package option. The autocite commands are built on top of backend commands like \cmd{parencite} and \cmd{parencites}. The arguments \prm{cite} and \prm{multicite} specify the backend commands to use. The \prm{cite} argument refers to \cmd{autocite} and \prm{multicite} refers to \cmd{autocites}. The \prm{position} argument controls the handling of any punctuation marks after the citation. Possible values are \texttt{l}, \texttt{r}, \texttt{f}. \texttt{r} means that the punctuation is placed to the right of the citation, \ie it will not be moved around. \texttt{l} means that any punctuation after the citation is moved to the left of the citation. \texttt{f} is like \texttt{r} in a footnote and like \texttt{l} otherwise. This argument is optional and defaults to \texttt{r}. See also \cmd{DeclareAutoPunctuation} in \secref{aut:pct:cfg} and the \opt{autopunct} package option in \secref{use:opt:pre:gen}. The following examples are real definitions taken from \path{biblatex.def}:
\begin{ltxexample}
\DeclareAutoCiteCommand{plain}{\cite}{\cites}
@@ -6132,25 +6788,25 @@ This command prints the date of the entry, as specified in the fields \bibfield{
Similar to \cmd{printdate} but incorporates the \bibfield{extrayear} field in the date specification. This is useful for bibliography styles designed for author-year citations.
-\csitem{printdatelabel}
+\csitem{printlabeldate}
-Similar to \cmd{printdate} but prints the date field determined by \cmd{DeclareLabeldate}. The date format is controlled by the package option \opt{datelabel} from \secref{use:opt:pre:gen}. Additional formatting may be applied by adjusting the field format \texttt{datelabel} (\secref{aut:fmt:ich}).
+Similar to \cmd{printdate} but prints the date field determined by \cmd{DeclareLabeldate}. The date format is controlled by the package option \opt{labeldate} from \secref{use:opt:pre:gen}. Additional formatting may be applied by adjusting the field format \texttt{labeldate} (\secref{aut:fmt:ich}).
-\csitem{printdateextralabel}
+\csitem{printlabeldateextra}
-Similar to \cmd{printdatelabel} but incorporates the \bibfield{extrayear} field in the date specification. This is useful for bibliography styles designed for author-year citations.
+Similar to \cmd{printlabeldate} but incorporates the \bibfield{extrayear} field in the date specification. This is useful for bibliography styles designed for author-year citations.
-\csitem{printurldate}
+\csitem{print$<$datetype$>$date}
-Similar to \cmd{printdate} but prints the \bibfield{urldate} of the entry. The date format is controlled by the package option \opt{urldate} from \secref{use:opt:pre:gen}. Additional formatting may be applied by adjusting the field format \texttt{urldate} (\secref{aut:fmt:ich}).
+As \cmd{printdate} but prints the \bibfield{$<$datetype$>$date} of the entry. The date format is controlled by the package option \opt{$<$datetype$>$date} from \secref{use:opt:pre:gen}. Additional formatting may be applied by adjusting the field format \texttt{$<$datetype$>$date} (\secref{aut:fmt:ich}). The $<$datetype$>$s in the default data model are <> (for the main \bibfield{date} field), <orig>, <event> and <url>.
-\csitem{printorigdate}
+\csitem{printtime}
-Similar to \cmd{printdate} but prints the \bibfield{origdate} of the entry. The date format is controlled by the package option \opt{origdate} from \secref{use:opt:pre:gen}. Additional formatting may be applied by adjusting the field format \texttt{origdate} (\secref{aut:fmt:ich}).
+This command prints the time range of the entry, as specified in the \bibfield{date} field (see \secref{bib:use:dat}). The time format is controlled by the package option \opt{time} from \secref{use:opt:pre:gen}. Additional formatting (fonts etc.) may be applied by adjusting the field format \texttt{time} (\secref{aut:fmt:ich}). Relevant to time formatting are the \opt{timezeros} option and the \cmd{bibtimesep} and \cmd{bibtimezonesep} macros (\secref{use:fmt:lng}). Note that this command interfaces with the punctuation tracker. There is no need to wrap it in a \cmd{printtext} command. Note that this command prints a stand-alone time range apart from the date elements. With the \opt{$<$datepart$>$dateusetime} option, you can have the printed along with a date when printing a date range instead of printing the time range completely separately, which is what this command allows for.
-\csitem{printeventdate}
+\csitem{print$<$datetype$>$time}
-Similar to \cmd{printdate} but prints the \bibfield{eventdate} of the entry. The date format is controlled by the package option \opt{eventdate} from \secref{use:opt:pre:gen}. Additional formatting may be applied by adjusting the field format \texttt{eventdate} (\secref{aut:fmt:ich}).
+As \cmd{printtime} but prints the \bibfield{$<$datetype$>$time} of the entry. The time format is controlled by the package option \opt{$<$datetype$>$time} from \secref{use:opt:pre:gen}. Additional formatting may be applied by adjusting the field format \texttt{$<$datetype$>$time} (\secref{aut:fmt:ich}). The $<$datetype$>$s in the default data model are <> (for the main \bibfield{date} field), <orig>, <event> and <url>.
\cmditem{indexfield}[format]{field}
@@ -6301,7 +6957,7 @@ The special fields are \bibfield{related}, \bibfield{relatedtype}, \bibfield{rel
\item[relatedoptions] A list of per"=entry options to set on the related entry (actually on the clone of the related entry which is used as a data source---the actual related entry is not modified because it might be cited directly itself).
\end{keymarglist}
-The related entry feature is enabled by default by the package option \opt{related} from \secref{use:opt:pre:gen}. The related information entry data from the related entries is included via a \cmd{usebibmacro\{related\}} call. Standard styles call this macro towards the end of each driver. Style authors should ensure the existence of (or take note of existing) localisation strings which are useful as values for the \bibfield{relatedtype} field, such as \texttt{translationof} or perhaps \texttt{translatedas}. A plural variant can be identified with the localisation key \prm{relatedtype}\texttt{s}. This key's corresponding string is printed whenever more than one entry is specified in \bibfield{related}. Bibliography macros and formatting directives for printing entries related by \prm{relatedtype} should be defined using the name \texttt{related:\prm{relatedtype}}. The file \path{biblatex$_$.def} contains macros and formats for some common relation types which can be used as templates. In particular, the \cmd{entrydata*} command is essential in such macros in order to make the data of the related entries available. Examples of entries using this feature can be found in the \biblatex distribution examples file \path{biblatex-examples.bib}. There are some specific formatting macros for this feature which control delimiters and separators in related entry information, see \secref{aut:fmt:fmt}.
+The related entry feature is enabled by default by the package option \opt{related} from \secref{use:opt:pre:gen}. The related information entry data from the related entries is included via a \cmd{usebibmacro\{related\}} call. Standard styles call this macro towards the end of each driver. Style authors should ensure the existence of (or take note of existing) localisation strings which are useful as values for the \bibfield{relatedtype} field, such as \texttt{translationof} or perhaps \texttt{translatedas}. A plural variant can be identified with the localisation key \prm{relatedtype}\texttt{s}. This key's corresponding string is printed whenever more than one entry is specified in \bibfield{related}. Bibliography macros and formatting directives for printing entries related by \prm{relatedtype} should be defined using the name \texttt{related:\prm{relatedtype}}. The file \path{biblatex.def} contains macros and formats for some common relation types which can be used as templates. In particular, the \cmd{entrydata*} command is essential in such macros in order to make the data of the related entries available. Examples of entries using this feature can be found in the \biblatex distribution examples file \path{biblatex-examples.bib}. There are some specific formatting macros for this feature which control delimiters and separators in related entry information, see \secref{aut:fmt:fmt}.
\subsubsection{Datasource Sets}
\label{aut:ctm:dsets}
@@ -6389,6 +7045,8 @@ Defines source data modification (mapping) rules which can be used to perform an
particular datasources which you defined in \cmd{addresource} macros
\item Restrict any of the above operations to entries only of a certain
entrytype
+\item Restrict any of the above operations to entries in a particular
+ reference section
\end{itemize}
The \prm{specification} is an undelimited list of \cmd{maps} directives which specify containers for mappings rules applying to a particular data source type (\secref{use:bib:res}). 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 and may only be used once---subsequent uses will overwrite earlier definitions.
@@ -6399,7 +7057,7 @@ Contains an ordered set of \cmd{map} elements each of which is a logically relat
\begin{optionlist*}
-\choitem[bibtex]{datatype}{bibtex, biblatexml, ris}
+\choitem[bibtex]{datatype}{bibtex, biblatexml}
Data source type to which the contained \cmd{map} directives apply (\secref{use:bib:res}).
@@ -6434,7 +7092,11 @@ may also be used the \cmd{step}s to generate a random unique string. This can be
}
}
\end{ltxexample}
-% This loops over several name fields, making some textual replacememts.
+%$<- to stop emacs highlighting breaking
+
+\intitem{refsection}
+
+Only apply the contained \cmd{step} commands to entries in the reference section with number \prm{refsection}.
\end{optionlist*}
@@ -6450,15 +7112,16 @@ Restricts all \cmd{step}s in this \cmd{map} element to entries of the named \prm
Restricts all \cmd{step}s in this \cmd{map} element to entries not of the named \prm{entrytype}. Multiple \cmd{pernottype} restrictions are allowed within a \cmd{map} element.
-\cmditem{step}
+\cmditem{step}[options]
-A mapping step. Each step is applied sequentially to every relevant entry where <relevant> means those entries which correspond to the data source type, entrytype and data source name restrictions mentioned above. Each step is applied to the entry as it appears after the application of all previous steps. The mapping performed by the step is determined by the following options:
+A mapping step. Each step is applied sequentially to every relevant entry where <relevant> means those entries which correspond to the data source type, entrytype and data source name restrictions mentioned above. Each step is applied to the entry as it appears after the application of all previous steps. The mapping performed by the step is determined by the following \prm{option}s:
\begin{optionlist*}
\valitem{typesource}{entrytype}
\valitem{typetarget}{entrytype}
\valitem{fieldsource}{entryfield}
+\valitem{notfield}{entryfield}
\valitem{fieldtarget}{entryfield}
\valitem{match}{regexp}
\valitem{notmatch}{regexp}
@@ -6507,6 +7170,7 @@ For all boolean \cmd{step} options, the short form \opt{option} is equivalent to
\item Change the \texttt{fieldsource} \prm{entryfield} to
\texttt{fieldtarget}, if defined. If
\texttt{final} is \texttt{true} then if there is no \texttt{fieldsource} \prm{entryfield} in the entry, processing of the parent \cmd{map} immediately terminates.
+\item If \texttt{notfield} is used then only apply the step if the \prm{entryfield} does not exist.
\item If \texttt{match} is defined but
\texttt{replace} is not, only apply the step if the \texttt{fieldsource} \prm{entryfield} matches the
\texttt{match} regular expression (logic is reversed if you use \texttt{notmatch} instead)\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.
@@ -6532,7 +7196,7 @@ For all boolean \cmd{step} options, the short form \opt{option} is equivalent to
\end{ltxsyntax}
-\noindent With \bibtex\ and RIS datasources, you may specify the
+\noindent With \bibtex\ datasources, you may specify the
pseudo-field \bibfield{entrykey} for \texttt{fieldsource}
which is the citation key of the entry. With \biblatexml\ the \bibfield{entrykey} is a normal attribute and can be reference like any other attribute. Naturally, this <field> cannot
be changed (used as \texttt{fieldset}, \texttt{fieldtarget} or changed using \texttt{replace}).
@@ -6541,7 +7205,7 @@ be changed (used as \texttt{fieldset}, \texttt{fieldtarget} or changed using \te
\cmditem{DeclareStyleSourcemap}{specification}
-This command sets the source mappings used by a style. Such mappings are conceptually separate from user mappings defined with \cmd{DeclareSourcemap} and are applied directly after user maps. The syntax is identical to \cmd{DeclareSourcemap}. This command is provided for style authors so that any maps defined for the style do not interfere with user maps or the default driver maps defined with \cmd{DeclareDriverSourcemap}. This command is for use in style files and can only be used once---subsequent uses will overwrite earlier definitions.
+This command sets the source mappings used by a style. Such mappings are conceptually separate from user mappings defined with \cmd{DeclareSourcemap} and are applied directly after user maps. The syntax is identical to \cmd{DeclareSourcemap}. This command is provided for style authors so that any maps defined for the style do not interfere with user maps or the default driver maps defined with \cmd{DeclareDriverSourcemap}. This command is for use in style files and can be used multiple times, the maps being run in order of definition.
\end{ltxsyntax}
@@ -6848,7 +7512,7 @@ Any entry which is not a \bibtype{book} or \bibtype{article} will be ignored.
%
Here, a clone of an entry from the specified data source will be created. The entry key of the clone will be the same as the original but prefixed by the value of the \texttt{entryclone} parameter. The cloned entry would still need to be cited in the document using its new entry key. This type of mapping step should be used with care as it may produce labelling problems in authoryear styles which use, for example, \opt{extrayear}. One use case is for numeric styles which contain multiple bibliographies containing the same entry. In this case, you may need different bibliography number labeld for the same entry and this is very tricky when there is only one entry which needs different labels. Creating clones with different entry keys solves this problem.
-\biblatexml\ datasources are more structured than \bibtex\ or \ris\ since they are XML. Sourcemapping is possible with \biblatexml\ too but the specifications of source and target fields etc. also support XPath 1.0 paths in order to be able to work with the structured data. Fields can be specified as per the \bibtex\ examples above and these are converted into XPath 1.0 queries internally as necessary. For example:
+\biblatexml\ datasources are more structured than \bibtex\ since they are XML. Sourcemapping is possible with \biblatexml\ too but the specifications of source and target fields etc. also support XPath 1.0 paths in order to be able to work with the structured data. Fields can be specified as per the \bibtex\ examples above and these are converted into XPath 1.0 queries internally as necessary. For example:
\begin{ltxexample}
\DeclareSourcemap{
@@ -6879,7 +7543,7 @@ These maps, respectively,
\item Replace the family name <Smith> of the second \bibfield{author} name with <Jones>
\item Move the \bibfield{editor} to \bibfield{translator}
\item Move the \bibfield{editor} to \bibfield{translator} but with explicit XPaths
-\item Set the pre-namelist \opt{useprefix} option on the \bibfield{author} name list to <false>
+\item Set the per-namelist \opt{useprefix} option on the \bibfield{author} name list to <false>
\end{itemize}
\subsubsection{Data Model Specification}
@@ -6905,13 +7569,13 @@ Validation against the data model means that after mapping your data sources int
\item Whether the fields obey various constraints on their format which you specify
\end{itemize}
%
-Redefining the data model can be done in several places. Style authors can create a \file{.dbx} file which contains the data model macros required and this will be loaded automatically when using the \biblatex package \opt{style} option by looking for a file named after the style with a \file{.dbx} extension (just like the \file{.cbx} and \file{.bbx} files for a style). If the \opt{style} option is not used but rather the \opt{citestyle} and \opt{bibstyle} options, then the package will try to load \file{.dbx} files called \file{<citestyle>.dbx} and \file{<bibstyle>.dbx}.
+Redefining the data model can be done in several places. Style authors can create a \file{.dbx} file which contains the data model macros required and this will be loaded automatically when using the \biblatex package \opt{style} option by looking for a file named after the style with a \file{.dbx} extension (just like the \file{.cbx} and \file{.bbx} files for a style). If the \opt{style} option is not used but rather the \opt{citestyle} and \opt{bibstyle} options, then the package will try to load \file{.dbx} files called \file{$<$citestyle$>$.dbx} and \file{$<$bibstyle$>$.dbx}.
Alternatively, the name of the data model file can be different from any of the style option names by specifying the name (without \file{.dbx} extension) to the package \opt{datamodel} option. After loading the style data model file, \biblatex then loads, if present, a users \file{biblatex-dm.cfg} which should be put somewhere \biblatex can find it, just like the main configuration file \sty{biblatex.cfg}. To summarise, the data model is determined by adding to the data model from each of these locations, in order:\\
\noindent\file{blx-dm.def}$\rightarrow$\\
-\hspace*{1em}\file{<datamodel option>.dbx} $\rightarrow$\\
-\hspace*{2em}\file{<style option>.dbx} $\rightarrow$\\
-\hspace*{3em}\file{<citestyle option>.dbx} and \file{<bibstyle option>.dbx} $\rightarrow$\\
+\hspace*{1em}\file{$<$datamodel option$>$.dbx} $\rightarrow$\\
+\hspace*{2em}\file{$<$style option$>$.dbx} $\rightarrow$\\
+\hspace*{3em}\file{$<$citestyle option$>$.dbx} and \file{$<$bibstyle option$>$.dbx} $\rightarrow$\\
\hspace*{4em}\file{biblatex-dm.cfg}\\
\noindent It is not possible to add to a loaded data model by using the macros below in your preamble as the preamble is read after \biblatex has defined critical internal macros based on the data model. If any data model macro is used in a document, it will be ignored and a warning will be generated. The data model is defined using the following macros:
@@ -7130,7 +7794,7 @@ This model specifies:
\subsubsection{Labels}
\label{aut:ctm:lab}
-Alphabetic styles use a label to identify bibliography entries. This label is constructed from components of the entry using a template which describes how to build the label. The template can be customised on a global or per-type basis.
+Alphabetic styles use a label to identify bibliography entries. This label is constructed from components of the entry using a template which describes how to build the label. The template can be customised on a global or per-type basis. A separate template is used to specify how to extract parts of name fields for labels, since names can be quite complex fields.
\begin{ltxsyntax}
@@ -7144,7 +7808,7 @@ Specifies the elements used to build the label. The \prm{elements} are an undeli
\cmditem{field}[options]{field}
-If \prm{field} is non-empty, use it as the current label \cmd{labelelement}, subject to the options below. Useful values for \prm{field} are typically the name list type fields, date fields, and title fields. You may also use the `citekey' pseudo-field to specify the citation key as part of the label. Name list fields are treated specially and the options which take substrings of the \prm{field} to use in the \cmd{labelelement} are applied to the family name of every name in a name list (see below).
+If \prm{field} is non-empty, use it as the current label \cmd{labelelement}, subject to the options below. Useful values for \prm{field} are typically the name list type fields, date fields, and title fields. You may also use the `citekey' pseudo-field to specify the citation key as part of the label. Name list fields are treated specially and when a name list field is specified, the template defined with \cmd{DeclareLabelalphaNameTemplate} is used to extract parts from the name which then returns the string that the \cmd{field} option uses.
\begin{optionlist*}
@@ -7158,15 +7822,11 @@ Forces the label part derived from the field to lowercase. By default, the case
\intitem[1]{strwidth}
-The number of characters of the \prm{field} to use.
-
-\intitem[1]{pstrwidth}
-
-For name list fields only, the number of characters of any name prefix to prepend to the label part derived from the last name. Only applies if the \biblatex option \kvopt{useprefix}{true}.
+The number of characters of the \prm{field} to use. This setting may be overridden by an individual name part when extracting characters from a name. See \cmd{DeclareLabelalphaNameTemplate} below.
\choitem[left]{strside}{left, right}
-The side of the string from which to take the \texttt{strwidth} number of characters.
+The side of the string from which to take the \texttt{strwidth} number of characters. This setting may be overridden by an individual name part when extracting characters from a name. See \cmd{DeclareLabelalphaNameTemplate} below.
\choitem[right]{padside}{left, right}
@@ -7182,7 +7842,7 @@ Forces the label part derived from the field to uppercase. By default, the case
\boolitem[false]{varwidth}
-Use a variable width, left-side substring of characters from the \prm{field} (each family name in name list fields). The length of the string is determined by the minimum length needed to disambiguate the substring from all other \prm{field} elements in the same position in the label. For name list fields, this means that each name substring is disambiguated from all other name substrings which occur in the same position in the name list (see examples below). This option overrides \texttt{strwidth} if both are used. The short form \opt{varwidth} is equivalent to \kvopt{varwidth}{true}. For name list fields, if \kvopt{useprefix}{true}, the first character of the name prefix is prepended to the substring.
+Use a variable width, left-side substring of characters from the string returned for \prm{field}. The length of the string is determined by the minimum length needed to disambiguate the substring from all other \prm{field} elements in the same position in the label. For name list fields, this means that each name substring is disambiguated from all other name substrings which occur in the same position in the name list (see examples below). This option overrides \texttt{strwidth} if both are used. The short form \opt{varwidth} is equivalent to \kvopt{varwidth}{true}. For name list fields, the \cmd{namepart}s with the \opt{pre} option set are prepended to the string returned from this disambiguation.
\boolitem[false]{varwidthnorm}
@@ -7190,7 +7850,7 @@ As \texttt{varwidth} but will force the disambiguated substrings for the \prm{fi
\boolitem[false]{varwidthlist}
-Alternative method of automatic label disambiguation where the field as a whole is disambiguated from all other fields in the same label position. For non-name list fields, this is equivalent to \texttt{varwidth}. For name list fields, names in a name list are not disambiguated from other names in the same position in their name lists but instead the entire name list is disambiguated as a whole from other name lists (see examples below). This option overrides \texttt{strwidth} if both are used. The short form \opt{varwidthlist} is equivalent to \kvopt{varwidthlist}{true}. For name list fields, if \kvopt{useprefix}{true}, the first character of the name prefix is prepended to the substring.
+Alternative method of automatic label disambiguation where the field as a whole is disambiguated from all other fields in the same label position. For non-name list fields, this is equivalent to \texttt{varwidth}. For name list fields, names in a name list are not disambiguated from other names in the same position in their name lists but instead the entire name list is disambiguated as a whole from other name lists (see examples below). This option overrides \texttt{strwidth} if both are used. The short form \opt{varwidthlist} is equivalent to \kvopt{varwidthlist}{true}. For name list fields, the \cmd{namepart}s with the \opt{pre} option set are prepended to the string returned from this disambiguation.
\intitem{strwidthmax}
@@ -7200,14 +7860,6 @@ When using \texttt{varwidth}, this option sets a limit (in number of characters)
When using \texttt{varwidthnorm}, there must be at least \texttt{strfixedcount} disambiguated substrings with the same, maximal length to trigger the forcing of all disambiguated substrings to this same maximal length.
-\boolitem[false]{compound}
-
-For static (non-varwidth) disambiguation, treat family name name components separated by whitespace or hyphens (compound last names) as separate names for label generation. This means that when forming a label out of, for example the surname <Ballam Forsyth> with a 1 character, left-side substring, this name would give <BF> with \kvopt{compound}{true} and <B> with \kvopt{compound}{false}. The short form \opt{compound} is equivalent to \kvopt{compound}{true}.
-
-\boolitem[false]{pcompound}
-
-As \opt{compound} but applies to name prefices. Only applies if the \biblatex option \kvopt{useprefix}{true}.
-
\valitem{ifnames}{range}
Only use this \cmd{field} specification if it is a name list field with a number of names matching the \texttt{ifnames} range value. This allows a \cmd{labelelement} to be conditionalised on name length (see below). The range can specified as in the following examples:
@@ -7231,7 +7883,7 @@ name={2-} -> Use all names starting with the second name (ignoring max/minalpha
name={2-+} -> Use all names starting with the second name (respecting max/minalphanames truncation)
\end{lstlisting}
-\valitem{namessep}[empty]{string}
+\valitem[empty]{namessep}{string}
An arbitrary string separator to put between names in a namelist.
@@ -7246,23 +7898,69 @@ By default, \cmd{labelalphaothers} is appended to label parts derived from name
Insert the literal \prm{characters} into the label at this point.
\end{ltxsyntax}
+%
+When a name list \cmd{field} is specified, the method of extracting the string is specified by a separate template specified by the following command:
+
+\begin{ltxsyntax}
+
+\cmditem{DeclareLabelalphaNameTemplate}[entrytype, \dots]{specification}
+
+Specifies the template to use to extract a label string from a name list when a \cmd{field} specification in \cmd{DeclareLabelalphaTemplate} contains a name list. The template can be specified per"=entrytype.
+
+\cmditem{namepart}[options]{namepart}
+
+\prm{namepart} is one of the datamodel nameparts defined with the \cmd{DeclareDatamodelConstant} command (see \secref{aut:bbx:drv}). The \opt{options} are:
+
+\begin{optionlist*}
+
+\boolitem[false]{use}
+
+Only use the \prm{namepart} in constructing the label information if there is a corresponding option \opt{use<namepart>} and that option is true.
+
+\boolitem[false]{pre}
+
+When constructing label strings from names, the \cmd{namepart} \emph{without} a \opt{pre} option will be used to construct label string, passing through disambiguation, substring etc. operations as specified by the \cmd{field} options in \cmd{DeclareLabelalpaTemplate}. Then the \cmd{namepart} options \emph{with} the \opt{pre} option set will be prepended to the result, (in the order given, if there are more than one such \cmd{namepart}s). This allows to unconditionally prepend certain namepart information to name label strings, like name prefices. Note that the \opt{uppercase} and \opt{lowercase} options of \cmd{field} in \cmd{DeclareLabelalphaTemplate} are applied to the entire label returned from \cmd{DeclareLabelalphaTemplate}, both \opt{pre} parts and non \opt{pre}.
+
+\boolitem[false]{compound}
+
+For static (non-varwidth) disambiguation in \cmd{DeclareLabelalphaTemplate}, nameparts separated by whitespace or hyphens (compound names) as separate names for label generation. This means that when forming a label out of, for example the surname <Ballam Forsyth> with a 1 character, left-side substring, this name would give <BF> with \kvopt{compound}{true} and <B> with \kvopt{compound}{false}. The short form \opt{compound} is equivalent to \kvopt{compound}{true}.
+
+\intitem[1]{strwidth}
+
+The number of characters of the \prm{namepart} to use.
+
+\choitem[left]{strside}{left, right}
+
+The side of the string from which to take the \texttt{strwidth} number of characters.
+
+\end{optionlist*}
+
+\end{ltxsyntax}
-Note that the template for labels can be defined per-type and you should be aware of this when using the automatically disambiguated label functionality. Disambiguation is not per-type as this might lead to ambiguity due to different label formats for different types being isolated from each others disambiguation process. Normally, you will want to use very different label formats for different types to make the type obvious by the label.
+Note that the templates for labels can be defined per-type and you should be aware of this when using the automatically disambiguated label functionality. Disambiguation is not per-type as this might lead to ambiguity due to different label formats for different types being isolated from each others disambiguation process. Normally, you will want to use very different label formats for different types to make the type obvious by the label.
Here are some examples. The default global \biblatex alphabetic label template is defined below. Firstly, \bibfield{shorthand} has \kvopt{final}{true} and so if there is a \bibfield{shorthand} field, it is used as the label and nothing more of the template is considered. Next, the \bibfield{label} field is used as the first label element if it exists. Otherwise, if there is only one name (\kvopt{ifnames}{1}) in the \bibfield{labelname} list, then three characters from the left side of the family name in the \bibfield{labelname} are used as the first label element. If the \bibfield{labelname} has more than one name in it, one character from the left side of each family name is used as the first label element. The second label element consists of 2 characters from the right side of the \bibfield{year} field.
+The default template for constructing labels from names is also shown. This prepends the first character from the left side of any prefix (if the \opt{useprefix} option is true) to a label extracted from the family name (according to the options on the calling \cmd{field} option from \cmd{DeclareLabelalphaTemplate}), allowing for compound family names.
+
\begin{ltxexample}
\DeclareLabelalphaTemplate{
\labelelement{
\field[final]{<<shorthand>>}
\field{<<label>>}
- \field[strwidth=3,strside=left,ifnames=1,pcompound=true]{<<labelname>>}
- \field[strwidth=1,strside=left,pcompound=true]{<<labelname>>}
+ \field[strwidth=3,strside=left,ifnames=1]{<<labelname>>}
+ \field[strwidth=1,strside=left]{<<labelname>>}
}
\labelelement{
\field[strwidth=2,strside=right]{<<year>>}
}
}
+
+\DeclareLabelalphaNameTemplate{
+ \namepart[use=true, pre=true, strwidth=1, compound=true]{prefix}
+ \namepart{family}
+}
+
\end{ltxexample}
%
To get an idea of how the label automatic disambiguation works, consider the following author lists:
@@ -7499,7 +8197,7 @@ The \prm{specification} is an undelimited list of \cmd{sort} directives which sp
\cmditem{sort}{elements}
-Specifies the elements considered in the sorting process. The \prm{elements} are an undelimited list of \cmd{field}, \cmd{literal}, and \cmd{citeorder} commands which are evaluated in the order in which they are given. If an element is defined, it is added to the sort key and the sorting routine skips to the next \cmd{sort} directive. If it is undefined, the next element is evaluated. Since literal strings are always defined, any \cmd{literal} commands should be the sole or the last element in a \cmd{sort} directive. The \cmd{sort} command supports the following optional arguments:
+Specifies the elements considered in the sorting process. The \prm{elements} are an undelimited list of \cmd{field}, \cmd{literal}, and \cmd{citeorder} commands which are evaluated in the order in which they are given. If an element is defined, it is added to the sort key and the sorting routine skips to the next \cmd{sort} directive. If it is undefined, the next element is evaluated. Since literal strings are always defined, any \cmd{literal} commands should be the sole or the last element in a \cmd{sort} directive. All \prm{elements} should be the same datatype as described in \secref{bib:fld:dat} since they will be potentially compared to any of the other \prm{elements} in other entries.. The \cmd{sort} command supports the following optional arguments:
\begin{optionlist*}
@@ -7533,13 +8231,7 @@ The \cmd{field} element adds a \prm{field} to the sorting specification. If the
\choitem[left]{padside}{left, right}
-Pads a field on the \texttt{left} or \texttt{right} side using \opt{padchar} so that its width is \opt{padwidth}. If no padding option is set, no padding is done at all. If any padding option is specified, then padding is performed and the missing options are assigned built-in default values. If padding and substring matching are both specified, the substring match is performed first. Padding is particularly useful with numeric fields. For example, the command
-
-\begin{ltxexample}
-\field[padside=left,padwidth=2,padchar=0]{<<volume>>}
-\end{ltxexample}
-%
-will pad the \bibfield{volume} field with leading zeros to a width of two characters. This way, volumes are sorted by numeric value (\texttt{01\slash 02\slash 11\slash 12}) rather than in alphabetic order (\texttt{1\slash 11\slash 12\slash 2}).
+Pads a field on the \texttt{left} or \texttt{right} side using \opt{padchar} so that its width is \opt{padwidth}. If no padding option is set, no padding is done at all. If any padding option is specified, then padding is performed and the missing options are assigned built-in default values. If padding and substring matching are both specified, the substring match is performed first.
\intitem[4]{padwidth}
@@ -7598,8 +8290,8 @@ Defines how the sorting keys for names are constructed. This can change the sort
\item The default scheme defined without the optional name argument
\item Given as the \opt{sortingnamekeyscheme} option to a reference context (see \secref{use:bib:context})
\item Given as a per-entry option \opt{sortnamekeyscheme} in a bibliography data source entry
-\item Given as a per-namelist option \opt{sortnamekeyscheme} in datasources which support this\footnote{Current only the \biblatexml data source format support this.}
-\item Given as a per-name option \opt{sortnamekeyscheme} in datasources which support this\footnote{Current only the \biblatexml data source format support this.}
+\item Given as a per-namelist option \opt{sortnamekeyscheme}
+\item Given as a per-name option \opt{sortnamekeyscheme}
\end{itemize}
By default there is only a global scheme which has the following \prm{specification}:
@@ -7644,6 +8336,11 @@ Specifies the \prm{name} of a namepart to use in constructing the name sorting k
Indicates that the namepart \prm{name} is only to be used in this concatenation position if the corresponding \opt{use<name>} option is set to the specified boolean value.
+\boolitem[true]{inits}
+
+Indicates that only the initials of namepart \prm{name} are to be used in
+constructing the sorting specification.
+
\end{optionlist*}
\end{ltxsyntax}
@@ -7684,6 +8381,23 @@ or perhaps you only want to do this for a particular entry:
}
\end{lstlisting}
%
+or just a name list by using the option as a pseudo-name which will be ignored:
+
+\begin{lstlisting}[style=bibtex]{}
+@BOOK{key,
+ AUTHOR = {sortnamekeyscheme=givenfirst and Arnar Vigfusson}
+}
+\end{lstlisting}
+%
+or just a single name by passing the option as part of the extended name information
+format which \biber supports (see \biber doc):
+
+\begin{lstlisting}[style=bibtex]{}
+@BOOK{key,
+ AUTHOR = {given=Arnar, family=Vigfusson, sortnamekeyscheme=givenfirst}
+}
+\end{lstlisting}
+%
Now we give some examples of sorting schemes. In the first example, we define a simple name\slash title\slash year scheme. The name element may be either the \bibfield{author}, the \bibfield{editor}, or the \bibfield{translator}. Given this specification, the sorting routine will use the first element which is available and continue with the \bibfield{title}. Note that the options \opt{use$<$name$>$} options are considered automatically in the sorting process:
\begin{ltxexample}
@@ -7888,7 +8602,7 @@ Any number of \cmd{nosort} commands can be given each of which specifies to remo
\end{ltxsyntax}
-If there is no \cmd{DeclareNosort} specification, \biber will default to:
+The default is:
\begin{ltxexample}
\DeclareNosort{
@@ -7978,11 +8692,12 @@ The \bibfield{labelname} field may be customized globally or on a per-type basis
\cmditem{DeclareLabeldate}[entrytype, \dots]{specification}
-Defines the date components to consider when generating \bibfield{labelyear}, \bibfield{labelmonth} and \bibfield{labelday} fields (see \secref{aut:bbx:fld:lab}). The \prm{specification} is an ordered list of \cmd{field} or \cmd{literal} commands. The items are checked in the order listed and the first item which is available will be used to popluate the \bibfield{labelyear}, \bibfield{labelmonth} and \bibfield{labelday} fields. Note that the \cmd{field} items do not have to be datetype <date> in the data model so that you can create pseudo-year labels by, for example, using a \bibfield{pubstate} field contents, if available, as the year label by defining \cmd{DeclareLabeldate} suitably. Note also that a \cmd{literal} command will always be used when found and so this should always be the last thing in the list. If the value of a \cmd{literal} command is a valid localisation string, then this will be resolved in the current language, otherwise the value is used as a literal string as-is. This is the default definition:
+Defines the date components to consider when generating \bibfield{labelyear}, \bibfield{labelmonth}, \bibfield{labelday}, \bibfield{labelendyear}, \bibfield{labelendmonth} and \bibfield{labelendday} fields (see \secref{aut:bbx:fld:lab}). The \prm{specification} is an ordered list of \cmd{field} or \cmd{literal} commands. The items are checked in the order listed and the first item which is available will be used to popluate the mentioned fields. Note that the \cmd{field} items do not have to be datetype <date> in the data model so that you can create pseudo-year labels by, for example, using a \bibfield{pubstate} field contents, if available, as the year label by defining \cmd{DeclareLabeldate} suitably. Note also that a \cmd{literal} command will always be used when found and so this should always be the last thing in the list. If the value of a \cmd{literal} command is a valid localisation string, then this will be resolved in the current language, otherwise the value is used as a literal string as-is. This is the default definition:
\begin{ltxexample}
\DeclareLabeldate{%
\field{date}
+ \field{year}
\field{eventdate}
\field{origdate}
\field{urldate}
@@ -7991,7 +8706,7 @@ Defines the date components to consider when generating \bibfield{labelyear}, \b
\end{ltxexample}
%
Note that the \bibfield{date} field is split by the backend into \bibfield{year}, \bibfield{month} which are also valid fields in the default data model. In order to support legacy data which directly sets \bibfield{year} and/or \bibfield{month}, the specification <\bibfield{date}> in \cmd{DeclareLabeldate} will also match \bibfield{year} and \bibfield{month} fields, if present.
-The \bibfield{labelyear}, \bibfield{labelmonth} and \bibfield{labelday} fields may be customized globally or on a per-type basis. If the optional \prm{entrytype} argument is given, the specification applies to the respective entry type. If not, it is applied globally. The \prm{entrytype} argument may be a comma"=separated list of values. This command may only be used in the preamble. See also \secref{aut:bbx:fld:dat}.
+The \bibfield{label*} fields may be customized globally or on a per-type basis. If the optional \prm{entrytype} argument is given, the specification applies to the respective entry type. If not, it is applied globally. The \prm{entrytype} argument may be a comma"=separated list of values. This command may only be used in the preamble. See also \secref{aut:bbx:fld:dat}.
\cmditem{DeclareLabeltitle}[entrytype, \dots]{specification}
@@ -8021,25 +8736,59 @@ Configures the default inheritance behavior. This command may only be used in th
\begin{optionlist*}
-\boolitem[true]{all} Whether or not to inherit all fields from the parent by default. \kvopt{all}{true} means that the child entry inherits all fields from the parent, unless a more specific inheritance rule has been set up with \cmd{DeclareDataInheritance}. If an inheritance rule is defined for a field, data inheritance is controlled by that rule. \kvopt{all}{false} means that no data is inherited from the parent by default. Each field to be inherited requires an explicit inheritance rule set up with \cmd{DeclareDataInheritance}. The package default is \kvopt{all}{true}.
+\boolitem[true]{all} Whether or not to inherit all fields from the parent by default.
+
+\kvopt{all}{true} means that the child entry inherits all fields from the parent, unless a more specific inheritance rule has been set up with \cmd{DeclareDataInheritance}. If an inheritance rule is defined for a field, data inheritance is controlled by that rule. \kvopt{all}{false} means that no data is inherited from the parent by default and each field to be inherited requires an explicit inheritance rule set up with \cmd{DeclareDataInheritance}. The package default is \kvopt{all}{true}.
\boolitem[false]{override} Whether or not to overwrite target fields with source fields if both are defined. This applies both to automatic inheritance and to explicit inheritance rules. The package default is \kvopt{override}{false}, \ie existing fields of the child entry are not overwritten.
+\valitem{ignore}{csv list of uniqueness options}
+
+This option takes a comma-separated list of one of more of <singletitle>, <uniquetitle>, <uniquebaretitle> and/or <uniquework>. The purpose of this option is to ignore tracking information for these three options when the field which would trigger the tracking (\tabref{use:opt:wu}) is inherited. An example---Suppose that you have several \bibtype{book} entries which all crossref a \bibtype{mvbook} from which they get their \bibfield{author} field. You might reasonably want the \cmd{ifsingletitle} test to return <true> for this author as their only <work> is the \bibtype{mvbook}. Similar comments would apply to situations involving the \cmd{ifuniquetitle}, \cmd{ifuniquebaretitle} and \cmd{ifuniquework} tests. The \opt{ignore} option lists which of these should have their tracking information ignored when the fields which would trigger them are inherited. The idea is that the presence of an inherited field does not contribute towards the determination of whether some combination of name/title is unique in the bibliographic data. For example, this modified default setting would ignore \opt{singletitle} and \opt{uniquetitle} tracking:
+
+\begin{ltxexample}
+\DefaultInheritance{ignore={singletitle,uniquetitle}, all=true, override=false}
+\end{ltxexample}
+%
+Of course, the ignoring of tracking does nothing if the fields inherited do not play a role in tracking. Only the fields listed in \tabref{use:opt:wu} are relevant to this option.
+
\end{optionlist*}
The optional \prm{exceptions} are an undelimited list of \cmd{except} directives. Spaces, tabs, and line endings may be used freely to visually arrange the \prm{exceptions}. Blank lines are not permissible.
\cmditem{except}{source}{target}{options}
-Sets the \prm{options} for a specific \prm{source} and \prm{target} combination. The \prm{source} and \prm{target} arguments specify the parent and the child entry type. The asterisk matches all types and is permissible in either argument.
+Defines an exception to the default inheritance rules.
+
+\cmd{DeclareDataInheritance} sets the inheritance \prm{options} for a specific \prm{source} and \prm{target} combination. The \prm{source} and \prm{target} arguments specify the parent and the child entry type. The asterisk matches all types and is permissible in either argument.
-\cmditem{DeclareDataInheritance}{source, \dots}{target, \dots}{rules}
+\cmditem{DeclareDataInheritance}[options]{source, \dots}{target, \dots}{rules}
-Declares inheritance rules. The \prm{source} and \prm{target} arguments specify the parent and the child entry type. Either argument may be a single entry type, a comma"=separated list of types, or an asterisk. The asterisk matches all entry types. The \prm{rules} are an undelimited list of \cmd{inherit} and\slash or \cmd{noinherit} directives. Spaces, tabs, and line endings may be used freely to visually arrange the \prm{rules}. Blank lines are not permissible. This command may only be used in the preamble.
+Declares inheritance rules. The \prm{source} and \prm{target} arguments specify the parent and the child entry type. Either argument may be a single entry type, a comma"=separated list of types, or an asterisk. The asterisk matches all entry types. The \prm{rules} are an undelimited list of \cmd{inherit} and\slash or \cmd{noinherit} directives. Spaces, tabs, and line endings may be used freely to visually arrange the \prm{rules}. Blank lines are not permissible. This command may only be used in the preamble. The options are:
+
+\begin{optionlist*}
+
+\valitem{ignore}{csv list of uniqueness options}
+
+As the \opt{ignore} option on \cmd{DefaultInheritance} explained above. When set here, it takes precedence over any global options set with \cmd{DefaultInheritance}. For example, this would ignore \opt{singletitle} and \opt{uniquetitle} tracking for a \bibtype{book} inheriting from a \bibtype{mvbook}.
+
+\begin{ltxexample}
+\DeclareDataInheritance[ignore={singletitle,uniquetitle}]{mvbook}{book}{<<...>>}
+\end{ltxexample}
+
+\end{optionlist*}
\cmditem{inherit}[option]{source}{target}
-Defines an inheritance rule by mapping a \prm{source} field to a \prm{target} field. The \prm{option} is the \opt{override} option explained above. When set locally, it takes precedence over any global options set with \cmd{DefaultInheritance}.
+Defines an inheritance rule by mapping a \prm{source} field to a \prm{target} field. \prm{option} can be one of
+
+\begin{optionlist*}
+
+\boolitem[false]{override}
+
+As the \opt{override} option for \cmd{DefaultInheritance} explained above. When set here, it takes precedence over any global options set with \cmd{DefaultInheritance}.
+
+\end{optionlist*}
\cmditem{noinherit}{source}
@@ -8075,7 +8824,7 @@ This example is similar to the one above but adds one exception: entries of type
}
\end{ltxexample}
%
-So far we have looked at setting up the defaults. For example, \kvopt{all}{true} means that the \bibfield{publisher} field of a source entry is copied to the \bibfield{publisher} field of the target entry. In some cases, however, asymmetric mappings are required. They are defined with \cmd{DeclareDataInheritance}. The above example sets up three typical rules for \bibtype{incollection} entries referencing a \bibtype{collection}. We map the \bibfield{title} and related fields of the source to the corresponding \bibfield{booktitle} fields of the target.
+So far we have looked at setting up standard inheritance. For example, \kvopt{all}{true} means that the \bibfield{publisher} field of a source entry is copied to the \bibfield{publisher} field of the target entry. In some cases, however, asymmetric mappings are required. They are defined with \cmd{DeclareDataInheritance}. The above example sets up three typical rules for \bibtype{incollection} entries referencing a \bibtype{collection}. We map the \bibfield{title} and related fields of the source to the corresponding \bibfield{booktitle} fields of the target.
\begin{ltxexample}
\DeclareDataInheritance{<<mvbook,book>>}{<<inbook,bookinbook>>}{
@@ -8136,6 +8885,24 @@ set on a per-entry basis. For example:
Here, \bibfield{s1} will not inherit the \bibfield{TITLE} of \bibfield{s2}
as \bibfield{BOOKTITLE} as this is blocked by the datafield set given as
the value to the \opt{noinherit} option.
+%
+One important thing to note is that children will never inherit any dateparts of a given type if they already contain a datepart of that type. So, for example:
+
+\begin{lstlisting}[style=bibtex]{}
+@INBOOK{b1,
+ DATE = {2004-03-03},
+ ORIGDATE = {2004-03},
+ CROSSREF = {b2}
+}
+
+@BOOK{b2,
+ DATE = {2004-03-03/2005-08-09},
+ ORIGDATE = {2004-03/2005-08},
+ EVENTDATE = {2004-03/2005-08},
+}
+\end{lstlisting}
+%
+Here, \bibfield{b1} will not inherit any of \bibfield{endyear}, \bibfield{endmonth}, \bibfield{endday}, \bibfield{origendyear} or \bibfield{origendmonth} as this would make a mess of its own dates. It will, given the inheritance defaults, inherit all of the \bibfield{event*} date parts.
\subsection{Auxiliary Commands}
\label{aut:aux}
@@ -8244,6 +9011,46 @@ The commands in this section are various kinds of stand"=alone tests for use in
\begin{ltxsyntax}
+\cmditem{if$<$datetype$>$julian}{true}{false}
+
+Expands to \prm{true} if the date <datetype>date (\opt{date}, \opt{urldate}, \opt{eventdate} etc.) Was converted to the Julian Calendar due to the settings of the \opt{julian}and \opt{gregorianstart} options.
+
+\cmditem{ifdatejulian}{true}{false}
+
+As \cmd{if$<$datetype$>$julian} but for use in \cmd{mkbibdate*} formatting commands (\secref{aut:fmt:lng}) inside which the appropriate \cmd{if$<$datetype$>$julian} command is aliased to this command.
+
+\cmditem{if$<$datetype$>$dateera}{era}{true}{false}
+
+Expands to \prm{true} if the date <datetype>date (\opt{date}, \opt{urldate}, \opt{eventdate} etc.) has an era specification equal to \prm{era} and \prm{false} otherwise. The supported \prm{era} strings which \biber determines and passes in the \file{.bbl} are:
+
+\begin{description}
+\item[bce] BCE/BC era
+\item[ce] CE/AD era
+\end{description}
+
+This command is useful for determining whether to print the location
+strings in \secref{aut:lng:key:dt}.
+
+\cmditem{ifdateera}{era}{true}{false}
+
+As \cmd{if$<$datetype$>$dateera} but for use in \cmd{mkbibdate*} formatting commands (\secref{aut:fmt:lng}) inside which the appropriate \cmd{if$<$datetype$>$dateera} command is aliased to this command.
+
+\cmditem{if$<$datetype$>$datecirca}{true}{false}
+
+Expands to \prm{true} if the date <datetype>date (\opt{date}, \opt{urldate}, \opt{eventdate} etc.) had a <circa> marker in the source and \prm{false} otherwise. See \secref{bib:use:dat}. This command is useful for determining whether to print the location strings in \secref{aut:lng:key:dt}.
+
+\cmditem{ifdatecirca}{true}{false}
+
+As \cmd{if$<$datetype$>$datecirca} but for use in \cmd{mkbibdate*} formatting commands (\secref{aut:fmt:lng}) inside which the appropriate \cmd{if$<$datetype$>$datecirca} command is aliased to this command.
+
+\cmditem{ifdate<datetype>uncertain}{true}{false}
+
+Expands to \prm{true} if the date <datetype>date (\opt{date}, \opt{urldate}, \opt{eventdate} etc.) had an uncertainty marker in the source and \prm{false} otherwise. See \secref{bib:use:dat}. This command is useful for determining whether to print, for example, a question mark after a year.
+
+\cmditem{ifdateuncertain}{true}{false}
+
+As \cmd{if$<$datetype$>$dateuncertain} but for use in \cmd{mkbibdate*} formatting commands (\secref{aut:fmt:lng}) inside which the appropriate \cmd{if$<$datetype$>$dateuncertain} command is aliased to this command.
+
\cmditem{ifcaselang}[language]{true}{false}
Expands to \prm{true} if the the optional \prm{language} is one of those
@@ -8361,14 +9168,22 @@ Expands to \prm{true} if the entry was inclued in the \file{.bbl} due to being r
\cmditem{ifsingletitle}{true}{false}
-Expands to \prm{true} if there is only one work by the \opt{labelname} name in the bibliography, and to \prm{false} otherwise. If there is no \opt{labelname} name at all for the entry, then this expands to \prm{true} if there is only one work with the \opt{labeltitle} title in the bibliography and \prm{false} otherwise. If neither \opt{labelname} nor \opt{labeltitle} are set for an entry, this will always expand to \prm{false}. Note that this feature needs to be enabled explicitly with the package option \opt{singletitle}.
+Expands to \prm{true} if there is only one work by the \opt{labelname} name in the bibliography, and to \prm{false} otherwise. If \opt{labelname} is not set for an entry, this will always expand to \prm{false}. Note that this feature needs to be enabled explicitly with the package option \opt{singletitle}.
\cmditem{ifuniquetitle}{true}{false}
Expands to \prm{true} if there is only one work with the title \opt{labeltitle} and to \prm{false} otherwise. If \opt{labeltitle} is not set for an entry, this will always expand to \prm{false}. Note that this feature needs to be enabled explicitly with the package option \opt{uniquetitle}.
-\cmditem{ifuniqueprimaryauthor}{true}{false}
+\cmditem{ifuniquebaretitle}{true}{false}
+
+Expands to \prm{true} if \bibfield{labelname} is empty and there is only one work with the title \opt{labeltitle} and to \prm{false} otherwise. If \opt{labeltitle} is not set for an entry, this will always expand to \prm{false}. Note that this feature needs to be enabled explicitly with the package option \opt{uniquebaretitle}.
+
+\cmditem{ifuniquework}{true}{false}
+Expands to \prm{true} if there is only one work by the \opt{labelname} name with the \opt{labeltitle} title in the bibliography, and to \prm{false} otherwise. If neither \opt{labelname} nor \opt{labeltitle} are set for an entry, this will always expand to \prm{false}. Note that this feature needs to be enabled explicitly with the package option \opt{uniquework}. If both \bibfield{singletitle} and \bibfield{uniquetitle} are false for the same entry, this could be because another entry has the same \bibfield{labdlname} and yet another, different, entry has the same \bibfield{labeltitle}. \bibfield{uniquework} would let you know that there is another entry that has \emph{both} the same \bibfield{labelname} \emph{and} the same \bibfield{labeltitle}. This could be helpful in cases where multiple people maintain bibliography datasources and there is a risk of adding the same work with different keys without other parties realising this. This test could help to find such duplicates.
+
+\cmditem{ifuniqueprimaryauthor}{true}{false}
+x
Expands to \prm{true} if there is only one work by the primary (first) author family
name of \opt{labelname} and to \prm{false} otherwise. If \opt{labelname} is not set for an entry, this will always expand to \prm{false}. Note that this feature needs to be enabled explicitly with the package option \opt{uniqueprimaryauthor}.
@@ -8384,9 +9199,9 @@ Expands to \prm{true} if the current name list has been or will be truncated, an
This command is similar to \cmd{ifmorenames} but checks the current literal list. It is intended for use in formatting directives for literal lists. It will always expand to \prm{false} when used elsewhere.
-\cmditem{ifgiveninits}{true}{false}
+\cmditem{if$<$namepart$>$inits}{true}{false}
-Expands to \prm{true} or \prm{false}, depending on the state of the \opt{giveninits} package option (see \secref{use:opt:pre:int}). This command is intended for use in formatting directives for name lists.
+Expands to \prm{true} or \prm{false}, depending on the state of the \opt{$<$namepart$>$inits} package option (see \secref{use:opt:pre:int}). This command is intended for use in formatting directives for name lists.
\cmditem{ifterseinits}{true}{false}
@@ -8549,7 +9364,7 @@ Expands to \prm{true} when located in a footnote, and to \prm{false} otherwise.
This counter indicates how many times the entry currently being processed is cited in the current reference section. Note that this feature needs to be enabled explicitly with the package option \opt{citecounter}. If the option is set to \texttt{context}, citations in the body text and in footnotes are counted separately. In this case, \cnt{citecounter} will hold the value of the context it is used in.
\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 last name is unique, \texttt{1} if adding the other parts of the name (first name, prefix, suffix) as initials will make it unique, and \texttt{2} if the full name is 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 last name. For example, 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 to the name list \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 refers to the \bibfield{labelname} list. It is set on a per-name basis. Its value is \texttt{0} if the base name (by default the <family> part of the name) is unique, \texttt{1} if adding the other parts of the name (as specified in the uniquename template defined by \cmd{DeclareUniquenameTemplate})as initials will make it unique, and \texttt{2} if the full name is 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 last 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 to the name list \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.
\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.
@@ -8613,7 +9428,7 @@ The section introduced miscellaneous commands and little helpers for use in bibl
\cmditem{newbibmacro}{name}[arguments][optional]{definition}
\cmditem*{newbibmacro*}{name}[arguments][optional]{definition}
-Defines a macro to be executed via \cmd{usebibmacro} later. The syntax of this command is very similar to \cmd{newcommand} except that \prm{name} may contain characters such as numbers and punctuation marks and does not start with a backslash. The optional argument \prm{arguments} is an integer specifying the number of arguments taken by the macro. If \prm{optional} is given, it specifies a default value for the first argument of the macro, which automatically becomes an optional argument. In contrast to \cmd{newcommand}, \cmd{newbibmacro} issues a warning message if the macro is already defined, and automatically falls back to \cmd{renewbibmacro}. As with \cmd{newcommand}, the regular variant of this command uses the \cmd{long} prefix in the definition while the starred one does not. If a macro has been declared to be long, it may take arguments containing \cmd{par} tokens. \cmd{newbibmacro} and \cmd{renewbibmacro} are provided for convenience. Style authors are free to use \cmd{newcommand} or \cmd{def} instead. However, note that most shared definitions found in \path{biblatex$_$.def} are defined with \cmd{newbibmacro}, hence they must be used and modified accordingly.
+Defines a macro to be executed via \cmd{usebibmacro} later. The syntax of this command is very similar to \cmd{newcommand} except that \prm{name} may contain characters such as numbers and punctuation marks and does not start with a backslash. The optional argument \prm{arguments} is an integer specifying the number of arguments taken by the macro. If \prm{optional} is given, it specifies a default value for the first argument of the macro, which automatically becomes an optional argument. In contrast to \cmd{newcommand}, \cmd{newbibmacro} issues a warning message if the macro is already defined, and automatically falls back to \cmd{renewbibmacro}. As with \cmd{newcommand}, the regular variant of this command uses the \cmd{long} prefix in the definition while the starred one does not. If a macro has been declared to be long, it may take arguments containing \cmd{par} tokens. \cmd{newbibmacro} and \cmd{renewbibmacro} are provided for convenience. Style authors are free to use \cmd{newcommand} or \cmd{def} instead. However, note that most shared definitions found in \path{biblatex.def} are defined with \cmd{newbibmacro}, hence they must be used and modified accordingly.
\cmditem{renewbibmacro}{name}[arguments][optional]{definition}
\cmditem*{renewbibmacro*}{name}[arguments][optional]{definition}
@@ -9832,6 +10647,7 @@ Other expressions frequently used in citations:
\item[langdanish] The language <Danish>.
\item[langdutch] The language <Dutch>.
\item[langenglish] The language <English>.
+\item[langestonian] The language <Estonian>.
\item[langfinnish] The language <Finnish>.
\item[langfrench] The language <French>.
\item[langgerman] The language <German>.
@@ -9860,6 +10676,7 @@ The following strings are intended for use in phrases like <translated from [the
\item[fromdanish] The expression <from [the] Danish>.
\item[fromdutch] The expression <from [the] Dutch>.
\item[fromenglish] The expression <from [the] English>.
+\item[fromestonian] The expression <from [the] Estonian>.
\item[fromfinnish] The expression <from [the] Finnish>.
\item[fromfrench] The expression <from [the] French>.
\item[fromgerman] The expression <from [the] German>.
@@ -9916,6 +10733,41 @@ Patent requests are handled in a similar way, using the string \texttt{patreq} a
\item[patrequs] The expression <U.S. patent request>.
\end{keymarglist}
+\paragraph{Dates and Times}
+\label{aut:lng:key:dt}
+
+Abbreviation strings for standard eras. Both secular and Christian variants
+are supported.
+
+\begin{keymarglist}
+\item[commonera] The era <CE>
+\item[beforecommonera] The era <BCE>
+\item[annodomini] The era <AD>
+\item[beforechrist] The era <BC>
+\end{keymarglist}
+
+Abbreviation strings for <circa> dates:
+
+\begin{keymarglist}
+\item[circa] The string <circa>
+\end{keymarglist}
+
+Abbreviation strings for seasons parsed from \acr{EDTF} dates:
+
+\begin{keymarglist}
+\item[spring] The string <spring>
+\item[summer] The string <summer>
+\item[autumn] The string <autumn>
+\item[winter] The string <winter>
+\end{keymarglist}
+
+Abbreviation strings for AM/PM:
+
+\begin{keymarglist}
+\item[am] The string <AM>
+\item[pm] The string <PM>
+\end{keymarglist}
+
\subsection{Formatting Commands}
\label{aut:fmt}
@@ -9924,7 +10776,7 @@ This section corresponds to \secref{use:fmt} in the user part of this manual. Bi
\subsubsection{User-definable Commands and Hooks}
\label{aut:fmt:fmt}
-This section corresponds to \secref{use:fmt:fmt} in the user part of the manual. The commands and hooks discussed here are meant to be redefined by users, but bibliography and citation styles may provide a default definition which is different from the package default. These commands are defined in \path{biblatex$_$.def}. Note that all commands starting with \cmd{mk\dots} take one mandatory argument.
+This section corresponds to \secref{use:fmt:fmt} in the user part of the manual. The commands and hooks discussed here are meant to be redefined by users, but bibliography and citation styles may provide a default definition which is different from the package default. These commands are defined in \path{biblatex.def}. Note that all commands starting with \cmd{mk\dots} take one mandatory argument.
\begin{ltxsyntax}
@@ -10061,7 +10913,7 @@ Formatting hook for the family name, to be used in all formatting directives for
Similar to \cmd{mkbibnamefamily}, but intended for the given name.
\cmditem{mkbibnameprefix}{text}
-Similar to \cmd{mkbibnamelast}, but intended for the name prefix.
+Similar to \cmd{mkbibnamefamily}, but intended for the name prefix.
\cmditem{mkbibnamesuffix}{text}
Similar to \cmd{mkbibnamefamily}, but intended for the name suffix.
@@ -10083,11 +10935,19 @@ This section corresponds to \secref{use:fmt:lng} in the user part of the manual.
\csitem{bibrangedash}
-The language specific range dash.
+The language specific range dash. Defaults to \cmd{textendash}.
+
+\csitem{bibrangessep}
+
+The language specific separator to be used between multiple ranges. Defaults to a comma followed by a space.
-\csitem{bibdatedash}
+\csitem{bibdatesep}
-The language specific date range dash.
+The language specific separator used between date components in terse date formats. Defaults to \cmd{hyphen}.
+
+\csitem{bibdaterangesep}
+
+The language specific separator to be used for date ranges. Defaults to \cmd{textendash} for all date formats apart from \opt{ymd} which defaults to a \cmd{slash}. The date format option \opt{edtf} is hard-coded to \cmd{slash} since this is a standards compliant format.
\csitem{mkbibdatelong}
@@ -10097,6 +10957,39 @@ Takes the names of three field as arguments which correspond to three date compo
Similar to \cmd{mkbibdatelong} but using the language specific short date format.
+\csitem{mkbibtimezone}
+
+Modifies a timezone string passed in as the only argument. By default this changes <Z> to the value of \cmd{bibtimezone}.
+
+\csitem{bibdateuncertain}
+
+The language specific marker to be used after uncertain dates when the global option \opt{dateuncertain} is enabled. Defaults to a space followed by a question mark.
+
+
+\csitem{bibdateeraprefix}
+
+The language specific marker which is printed as a prefix to beginning BCE/BC dates in a date range when the option \opt{dateera} is set to <astronomical>. Defaults to \cmd{textminus}.
+
+\csitem{bibdateeraendprefix}
+
+The language specific marker which is printed as a prefix to end BCE/BC dates in a date range when the option \opt{dateera} is set to <astronomical>. Defaults to a thin space followed by \cmd{bibdateeraprefix} when \cmd{bibdaterangesep} is set to a dash and to \cmd{bibdateeraprefix} otherwise. This is a separate macro so that you may add extra space before a negative date marker which, for example follows a dash date range marker as this can look a little odd.
+
+\csitem{bibtimesep}
+
+The language specific marker which separates time components. Default to a colon.
+
+\csitem{bibutctimezone}
+
+The language specific string printed for the UTC timezone. Defaults to <Z>.
+
+\csitem{bibtimezonesep}
+
+The language specific marker which separates an optional time zone component from a time. Empty by default.
+
+\csitem{bibdatetimesep}
+
+The language specific separator printed between date and time components when printing time components along with date components (see the \opt{$<$datetype$>$dateusetime} option in \secref{use:opt:pre:gen}). Defaults to a space for non-EDTF output formats, and 'T' for EDTF output format.
+
\csitem{finalandcomma}
Prints the comma to be inserted before the final <and> in an enumeration, if applicable in the respective language.
@@ -10263,15 +11156,39 @@ A generic command which prints its argument as superscripted text. This is a sim
This command takes an integer argument and prints it as a month name. Even though the output of this command is language specific, its definition is not, hence it is normally not redefined in localisation modules.
-\cmditem{mkdatezeros}{integer}
+\cmditem{mkbibseason}{string}
+
+This command takes a season localisation string and prints the version of the string corresponding to the setting of the \opt{dateabbrev} package option. Even though the output of this command is language specific, its definition is not, hence it is normally not redefined in localisation modules.
+
+\cmditem{mkyearzeros}{integer}
+
+This command strips leading zeros from a year or enforces them, depending on the \opt{datezeros} package option (\secref{use:opt:pre:gen}). It is intended for use in the definition of date formatting macros.
+
+\cmditem{mkmonthzeros}{integer}
+
+This command strips leading zeros from a month or enforces them, depending on the \opt{datezeros} package option (\secref{use:opt:pre:gen}). It is intended for use in the definition of date formatting macros.
+
+\cmditem{mkdayzeros}{integer}
-This command strips leading zeros from a number or preserves them, depending on the \opt{datezeros} package option (\secref{use:opt:pre:gen}). It is intended for use in the definition of date formatting macros.
+This command strips leading zeros from a day or enforces them, depending on the \opt{datezeros} package option (\secref{use:opt:pre:gen}). It is intended for use in the definition of date formatting macros.
+
+\cmditem{mktimezeros}{integer}
+
+This command strips leading zeros from a number or preserves them, depending on the \opt{timezeros} package option (\secref{use:opt:pre:gen}). It is intended for use in the definition of time formatting macros.
+
+\cmditem{forcezerosy}{integer}
+
+This command adds zeros to a year (or any number supposed to be 4-digits). It is intended for date formatting and ordinals.
+
+\cmditem{forcezerosmdt}{integer}
+
+This command adds zeros to a month, day or time part (or any number supposed to be 2-digits). It is intended for date/time formatting and ordinals.
\cmditem{stripzeros}{integer}
This command strips leading zeros from a number. It is intended for date formatting and ordinals.
-\optitem{<labelfield>width}
+\optitem{$<$labelfield$>$width}
For every field marked as a <Label field> in the data model, a formatting directive is created as per \texttt{shorthandwidth} above. Since \bibfield{shorthand} is so marked in the default data model, this functionality is a superset of that described for \texttt{shorthandwidth}.
@@ -10307,21 +11224,25 @@ A special formatting directive which controls the format of the volume portion i
A special formatting directive which controls the format of \cmd{printdate} (\secref{aut:bib:dat}). Note that the date format (long/short etc.) is controlled by the package option \opt{date} from \secref{use:opt:pre:gen}. This formatting directive only controls additional formatting such as fonts etc.
-\optitem{datelabel}
+\optitem{labeldate}
+
+As \texttt{date} but controls the format of \cmd{printlabeldate}.
-Similar to \texttt{date} but controls the format of \cmd{printdatelabel}.
+\optitem{$<$datetype$>$date}
-\optitem{urldate}
+As \texttt{date} but controls the format of \cmd{print$<$datetype$>$date}.
-Similar to \texttt{date} but controls the format of \cmd{printurldate}.
+\optitem{time}
-\optitem{origdate}
+A special formatting directive which controls the format of \cmd{printtime} (\secref{aut:bib:dat}). Note that the time format (24h/12h etc.) is controlled by the package option \opt{time} from \secref{use:opt:pre:gen}. This formatting directive only controls additional formatting such as fonts etc.
-Similar to \texttt{date} but controls the format of \cmd{printorigdate}.
+\optitem{labeltime}
-\optitem{eventdate}
+As \texttt{time} but controls the format of \cmd{printlabeltime}.
-Similar to \texttt{date} but controls the format of \cmd{printeventdate}.
+\optitem{$<$datetype$>$time}
+
+As \texttt{time} but controls the format of \cmd{print$<$datetype$>$time}.
\end{ltxsyntax}
@@ -10332,9 +11253,9 @@ The length registers and counters discussed here are used by \biblatex to pass i
\begin{ltxsyntax}
-\lenitem{<labelfield>width}
+\lenitem{$<$labelfield$>$width}
-For every field marked as a <Label field> in the data model, a length register is created as per \texttt{shorthandwidth} above. Since \bibfield{shorthand} is so marked in the default data model, this functionality is a superset of that described for \texttt{shorthandwidth}.
+For every field marked as a <label> field in the data model, a length register is created as per \texttt{shorthandwidth} above. Since \bibfield{shorthand} is so marked in the default data model, this functionality is a superset of that described for \texttt{shorthandwidth}.
\lenitem{labelnumberwidth}
@@ -10604,7 +11525,7 @@ In other words, adding support for additional resources is as easy as defining a
\subsubsection{External Abstracts and Annotations}
\label{aut:cav:prf}
-External abstracts and annotations have been discussed in \secref{use:use:prf}. This section provides some more background for style authors. The standard styles use the following macros (from \path{biblatex$_$.def}) to handle abstracts and annotations:
+External abstracts and annotations have been discussed in \secref{use:use:prf}. This section provides some more background for style authors. The standard styles use the following macros (from \path{biblatex.def}) to handle abstracts and annotations:
\begin{ltxexample}
\newbibmacro*{annotation}{%
@@ -10627,6 +11548,44 @@ If the \bibfield{abstract}\slash \bibfield{annotation} field is undefined, the a
The \opt{uniquename} and \opt{uniquelist} options introduced in \secref{use:opt:pre:int} support various modes of operation. This section explains the differences between these modes by way of example. The \opt{uniquename} option disambiguates individual names in the \bibfield{labelname} list. The \opt{uniquelist} option disambiguates the \bibfield{labelname} list if it has become ambiguous after \opt{maxnames}\slash \opt{minnames} truncation. You can use either option stand-alone or combine both.
+Name disambiguation works by taking a <base> which is composed of one or more nameparts and then determining what needs to be added, if anything, to this <base> to make the name unique in the current refsection. Name disambiguation is controlled by the uniquename template declared with the following command:
+
+\begin{ltxsyntax}
+
+\cmditem{DeclareUniquenameTemplate}{specification}
+
+The \prm{specification} is a list of \cmd{namepart} commands which define the nameparts to use in determining the uniquename information
+
+\cmditem{namepart}[options]{namepart}
+
+\prm{namepart} is one of the datamodel nameparts defined with the \cmd{DeclareDatamodelConstant} command (see \secref{aut:bbx:drv}). The \opt{options} are:
+
+\begin{optionlist*}
+
+\boolitem[false]{use}
+
+Only use the \prm{namepart} in constructing the uniquename information if there is a corresponding option \opt{use<namepart>} and that option is true.
+
+\boolitem[false]{base}
+
+The \prm{namepart} is part of the <base> which is the main piece of namepart(s) information which is being disambiguated by uniqueness information.
+
+\end{optionlist*}
+
+\end{ltxsyntax}
+%
+The default uniquename template is:
+
+\begin{ltxexample}
+\DeclareUniquenameTemplate{
+ \namepart[use=true, base=true]{prefix}
+ \namepart[base=true]{family}
+ \namepart{given}
+}
+\end{ltxexample}
+%
+This means that the <base> to be disambiguated consists of the <family> namepart, along with any prefix, if the \opt{useprefix} option is true. The disambiguation is performed by adding aspects of any non <base> nameparts in the specification, here just the <given> namepart.
+
\paragraph{Individual Names (\opt{uniquename})}
Let's start off with some \opt{uniquename} examples. Consider the following data:
@@ -10647,7 +11606,7 @@ Smith 2008a
Smith 2008b
\end{lstlisting}
%
-Since the last names are ambiguous and all works have been published in the same year, an extra letter is appended to the year to disambiguate the citations. Many style guides, however, mandate that the extra letter be used to disambiguate works by the same authors only, not works by different authors with the same last name. In order to disambiguate the author's last name, you are expected to add additional parts of the name, either as initials or in full. This requirement is addressed by the \opt{uniquename} option. Here are the same citations with \kvopt{uniquename}{init}:
+Since the family names are ambiguous and all works have been published in the same year, an extra letter is appended to the year to disambiguate the citations. Many style guides, however, mandate that the extra letter be used to disambiguate works by the same authors only, not works by different authors with the same family name. In order to disambiguate the author's family name, you are expected to add additional parts of the name, either as initials or in full. This requirement is addressed by the \opt{uniquename} option. Here are the same citations with \kvopt{uniquename}{init}:
\begin{lstlisting}{}
J. Doe 2008
@@ -10724,7 +11683,7 @@ Smith and Edwards
Smith and Johnson
\end{lstlisting}
%
-The <Smiths> are not disambiguated because the visible name lists are not ambiguous and the \opt{mininit/minfull} options serve to disambiguate names occurring in identical last name lists only. Another way of looking at this is that they globally disambiguate last name lists. When it comes to ambiguous lists, note that a truncated list is considered to be distinct from an untruncated one even if the visible names are identical. For example, consider the following data:
+The <Smiths> are not disambiguated because the visible name lists are not ambiguous and the \opt{mininit/minfull} options serve to disambiguate names occurring in identical last name lists only. Another way of looking at this is that they globally disambiguate family name lists. When it comes to ambiguous lists, note that a truncated list is considered to be distinct from an untruncated one even if the visible names are identical. For example, consider the following data:
\begin{lstlisting}{}
John Doe/William Jones
@@ -11220,7 +12179,7 @@ In order to minimize the risk of name clashes, \latex packages typically prefix
\section{Default Driver Source Mappings}
\label{apx:maps}
-These are the driver default source mappings. For drivers other than \opt{bibtex} and \opt{ris}, they are highly experimental and subject to change (because the driver datatype itself is unstable or not well suited to bibliographic data).
+These are the driver default source mappings.
\subsection{\opt{bibtex}}
The \opt{bibtex} driver is of course the most comprehensive and mature of the \biblatex/\biber supported data formats. These source mapping defaults are how the aliases from sections \secref{bib:typ:als} and \secref{bib:fld:als} are implemented.
@@ -11257,72 +12216,6 @@ The \opt{bibtex} driver is of course the most comprehensive and mature of the \b
}
\end{ltxexample}
-\subsection{\opt{ris}}
-
-The \opt{ris} driver reflects the fact that \opt{ris} itself is a very simple and stable format. It is in fact so simple, it's hardly of any use for most \biblatex users. Again, here more as a proof of concept example.
-
-\begin{ltxexample}
-\DeclareDriverSourcemap[datatype=ris]{
- \map{
- \step[typesource=ART, typetarget=artwork]
- \step[typesource=BILL, typetarget=jurisdiction]
- \step[typesource=BOOK, typetarget=book]
- \step[typesource=CHAP, typetarget=inbook]
- \step[typesource=COMP, typetarget=software]
- \step[typesource=CONF, typetarget=proceedings]
- \step[typesource=GEN, typetarget=misc]
- \step[typesource=JFULL, typetarget=article]
- \step[typesource=JOUR, typetarget=article]
- \step[typesource=MGZN, typetarget=misc]
- \step[typesource=MPCT, typetarget=movie]
- \step[typesource=NEWS, typetarget=misc]
- \step[typesource=PAMP, typetarget=misc]
- \step[typesource=PAT, typetarget=patent]
- \step[typesource=PCOMM, typetarget=misc]
- \step[typesource=RPRT, typetarget=report]
- \step[typesource=SER, typetarget=misc]
- \step[typesource=SLIDE, typetarget=misc]
- \step[typesource=SOUND, typetarget=audio]
- \step[typesource=STAT, typetarget=legal]
- \step[typesource=THES, typetarget=thesis]
- \step[typesource=UNBILL, typetarget=jurisdiction]
- \step[typesource=UNPB, typetarget=unpublished]
- }
- \map{
- \step[fieldsource=Y1, fieldtarget=date]
- \step[fieldsource=PY, fieldtarget=date]
- \step[fieldsource=Y2, fieldtarget=eventdate]
- \step[fieldsource=A1, fieldtarget=author]
- \step[fieldsource=AU, fieldtarget=author]
- \step[fieldsource=A2, fieldtarget=editor]
- \step[fieldsource=A3, fieldtarget=editor]
- \step[fieldsource=ED, fieldtarget=editor]
- \step[fieldsource=SPEP, fieldtarget=pages]
- \step[fieldsource=N1, fieldtarget=note]
- \step[fieldsource=N2, fieldtarget=abstract]
- \step[fieldsource=AB, fieldtarget=abstract]
- \step[fieldsource=JO, fieldtarget=journaltitle]
- \step[fieldsource=JF, fieldtarget=journaltitle]
- \step[fieldsource=JA, fieldtarget=shortjournal]
- \step[fieldsource=VL, fieldtarget=volume]
- \step[fieldsource=IS, fieldtarget=issue]
- \step[fieldsource=CP, fieldtarget=issue]
- \step[fieldsource=CY, fieldtarget=location]
- \step[fieldsource=SN, fieldtarget=isbn]
- \step[fieldsource=PB, fieldtarget=publisher]
- \step[fieldsource=KW, fieldtarget=keywords]
- \step[fieldsource=TI, fieldtarget=title]
- \step[fieldsource=U1, fieldtarget=usera]
- \step[fieldsource=U2, fieldtarget=userb]
- \step[fieldsource=U3, fieldtarget=userc]
- \step[fieldsource=U4, fieldtarget=userd]
- \step[fieldsource=U5, fieldtarget=usere]
- \step[fieldsource=UR, fieldtarget=url]
- \step[fieldsource=L1, fieldtarget=file]
- }
-}
-\end{ltxexample}
-
\section{Default Inheritance Setup}
\label{apx:ref}
@@ -11445,16 +12338,16 @@ nty & presort\alt mm &
\new sortname\alt author\alt editor\alt translator\alt sorttitle\alt title &
\new sorttitle\alt title &
\new sortyear\alt year &
- \new volume\alt 0000 \\
+ \new volume\\
nyt & presort\alt mm &
\new sortname\alt author\alt editor\alt translator\alt sorttitle\alt title &
\new sortyear\alt year &
\new sorttitle\alt title &
- \new volume\alt 0000 \\
+ \new volume\\
nyvt & presort\alt mm &
\new sortname\alt author\alt editor\alt translator\alt sorttitle\alt title &
\new sortyear\alt year &
- \new volume\alt 0000 &
+ \new volume &
\new sorttitle\alt title \\
\textrm{all} & presort\alt mm &
\new sortkey \\
@@ -11487,12 +12380,12 @@ anyt & presort\alt mm &
\new sortname\alt author\alt editor\alt translator\alt sorttitle\alt title &
\new sortyear\alt year &
\new sorttitle\alt title &
- \new volume\alt 0000 \\
+ \new volume\\
anyvt & presort\alt mm &
\new labelalpha &
\new sortname\alt author\alt editor\alt translator\alt sorttitle\alt title &
\new sortyear\alt year &
- \new volume\alt 0000 &
+ \new volume &
\new sorttitle\alt title \\
\textrm{all} & presort\alt mm &
\new labelalpha &
@@ -11776,6 +12669,8 @@ The following table provides an overview of the scope (global\slash per-type\sla
\endfoot
abbreviate &\+&\+&\_&\_\\
alldates &\+&\+&\_&\_\\
+alldatesusetime &\+&\+&\_&\_\\
+alltimes &\+&\+&\_&\_\\
arxiv &\+&\+&\_&\_\\
autocite &\+&\+&\_&\_\\
autopunct &\+&\+&\_&\_\\
@@ -11796,25 +12691,36 @@ clearlang &\+&\+&\_&\_\\
datamodel &\+&\_&\_&\_\\
dataonly &\_&\_&\+&\+\\
date &\+&\+&\_&\_\\
+labeldate &\+&\+&\_&\_\\
+$<$datetype$>$date &\+&\+&\_&\_\\
dateabbrev &\+&\+&\_&\_\\
+datecirca &\+&\+&\_&\_\\
+dateera &\+&\+&\_&\_\\
+dateerauto &\+&\+&\_&\_\\
+dateuncertain &\+&\+&\_&\_\\
datezeros &\+&\+&\_&\_\\
defernumbers &\+&\+&\_&\_\\
doi &\+&\+&\_&\_\\ % style
eprint &\+&\+&\_&\_\\ % style
-eventdate &\+&\+&\_&\_\\
-giveninits &\+&\+&\_&\_\\
+$<$namepart$>$inits &\+&\+&\_&\_\\
+gregorianstart &\+&\+&\_&\_\\
hyperref &\+&\+&\_&\_\\
ibidtracker &\+&\+&\_&\_\\
idemtracker &\+&\+&\_&\_\\
indexing &\+&\+&\+&\+\\
isbn &\+&\+&\_&\_\\ % style
+julian &\+&\+&\_&\_\\
labelalpha &\+&\+&\+&\_\\
labelnamefield &\_&\_&\_&\+\\
labelnumber &\+&\+&\+&\_\\
labeltitle &\+&\+&\+&\_\\
labeltitlefield &\_&\_&\_&\+\\
labeltitleyear &\+&\+&\+&\_\\
-labeldate &\+&\+&\+&\_\\
+labeldateparts &\+&\+&\+&\_\\
+labeltime &\+&\+&\_&\_\\
+labeldateusetime &\+&\+&\_&\_\\
+$<$datetype$>$time &\+&\+&\_&\_\\
+$<$datetype$>$dateusetime &\+&\+&\_&\_\\
language &\+&\+&\_&\_\\
loadfiles &\+&\+&\_&\_\\
loccittracker &\+&\+&\_&\_\\
@@ -11837,21 +12743,19 @@ noinherit &\_&\_&\_&\+\\
notetype &\+&\+&\_&\_\\
opcittracker &\+&\+&\_&\_\\
openbib &\+&\+&\_&\_\\
-origdate &\+&\+&\_&\_\\
pagetracker &\+&\+&\_&\_\\
parentracker &\+&\+&\_&\_\\
punctfont &\+&\+&\_&\_\\
refsection &\+&\+&\_&\_\\
refsegment &\+&\+&\_&\_\\
safeinputenc &\+&\+&\_&\_\\
+seconds &\+&\+&\_&\_\\
singletitle &\+&\+&\+&\_\\
skipbib &\_&\_&\+&\+\\
skipbiblist &\_&\_&\+&\+\\
skiplab &\_&\_&\+&\+\\
-skiplos &\_&\_&\+&\+\\
sortcase &\+&\+&\_&\_\\
sortcites &\+&\+&\_&\_\\
-sortgiveninits &\+&\+&\_&\_\\
sorting &\+&\+&\_&\_\\
sortnamekeyscheme &\_&\_&\_&\+\\
sortlocale &\+&\+&\_&\_\\
@@ -11860,10 +12764,14 @@ sortupper &\+&\+&\_&\_\\
style &\+&\_&\_&\_\\
terseinits &\+&\+&\_&\_\\
texencoding &\+&\+&\_&\_\\
+timezeros &\+&\+&\_&\_\\
+timezones &\+&\+&\_&\_\\
uniquelist &\+&\+&\+&\+\\
uniquename &\+&\+&\+&\+\\
uniquetitle &\+&\+&\+&\_\\
-urldate &\+&\+&\_&\_\\
+uniquebaretitle &\+&\+&\+&\_\\
+uniquework &\+&\+&\+&\_\\
+uniqueprimaryauthor &\+&\+&\_&\_\\
url &\+&\+&\_&\_\\
useprefix &\+&\+&\+&\+\\
use$<$name$>$ &\+&\+&\+&\+\\
@@ -11873,10 +12781,40 @@ use$<$name$>$ &\+&\+&\+&\+\\
\section{Revision History}
\label{apx:log}
-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 CHANGES file. The numbers on the right indicate the relevant section of this manual.
+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.org} file. The numbers on the right indicate the relevant section of this manual.
\begin{changelog}
+\begin{release}{3.5}{2016-09-10}
+\item Added \opt{uniquebaretitle} test\see{aut:aux:tst}
+\item Documented \cmd{labelnamesource} and \cmd{labeltitlesource}\see{aut:bbx:fld:gen}
+\item Added \cmd{bibdaterangesep}\see{use:fmt:lng}
+\item Added \opt{refsection} option to \cmd{DeclareSourcemap}\see{aut:ctm:map}
+\item Added \opt{suppress} option to inheritance specifications\see{aut:ctm:ref}
+\item Added \cmd{ifuniquework}\see{aut:aux:tst}
+\item Changed \cmd{DeclareStyleSourcemap} so that it can be used multiple times\see{aut:ctm:map}
+\item Added \cmd{forcezerosy} and \cmd{forcezerosmdt}\see{aut:fmt:ich}
+\item Changed \cmd{mkdatezeros} to \cmd{mkyearzeros}, \cmd{mkmonthszeros}
+ and \cmd{mkdayzeros}\see{aut:fmt:ich}
+\item Added \bibfield{namehash} and \bibfield{fullhash} for all name list fields\see{aut:bbx:fld:gen}
+\item Generalised \opt{giveninits} option to all nameparts\see{use:opt:pre:int}
+\item Added \opt{inits} option to \cmd{DeclareSortingNamekeyScheme}\see{aut:ctm:srt}
+\item Added \cmd{DeclareLabelalphaNameTemplate}\see{aut:ctm:lab}
+\item Added full \acr{EDTF} Levels 0 and 1 compliance for parsing and printing times\see{bib:use:dat}
+\item Changed dates to be fully \acr{EDTF} Levels 0 and 1 compliant. Associated tests and localisation strings\see{bib:use:dat}
+\item Added \opt{timezeros}\see{use:opt:pre:gen}
+\item Added \opt{mktimezeros}\see{aut:fmt:ich}
+\item Changed \opt{iso8601} to \opt{edtf}\see{use:opt:pre:gen}
+\item Added \cmd{DeclareUniquenameTemplate}\see{aut:cav:amb}
+\item Removed experimental RIS support
+\item \opt{sortnamekeyscheme} and \opt{useprefix} can be now be set per-namelist and per-name for
+ \bibtex datasources\see{aut:ctm:srt}
+\item Added \cmd{DeclareDelimcontextAlias}\see{use:fmt:csd}
+\item Added Estonian localisation (Benson Muite)
+\item Reference contexts may now be named\see{use:bib:context}
+\item Added \opt{notfield} step in Sourcemaps\see{aut:ctm:map}
+\end{release}
+
\begin{release}{3.4}{2016-05-10}
\item Added \cmd{ifcrossrefsource} and \cmd{ifxrefsource}\see{aut:aux:tst}
\item Added data annotation feature\see{use:annote}