diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex/biblatex/biblatex.tex')
-rw-r--r-- | Master/texmf-dist/doc/latex/biblatex/biblatex.tex | 1047 |
1 files changed, 730 insertions, 317 deletions
diff --git a/Master/texmf-dist/doc/latex/biblatex/biblatex.tex b/Master/texmf-dist/doc/latex/biblatex/biblatex.tex index 25adb732d7f..ce8eb5e7e23 100644 --- a/Master/texmf-dist/doc/latex/biblatex/biblatex.tex +++ b/Master/texmf-dist/doc/latex/biblatex/biblatex.tex @@ -60,7 +60,7 @@ url={\biblatexhome}, author={Philipp Lehman \\(with Philip Kime, Audrey Boruvka and Joseph Wright)}, email={}, - revision={3.7}, + revision={3.8}, date={\today}} \hypersetup{% @@ -158,7 +158,7 @@ \section{Introduction} \label{int} -This document is a systematic reference manual for the \biblatex package. Look at the sample documents which ship with \biblatex to get a first impression.\fnurl{\biblatexctan doc/examples} +This document is a systematic reference manual for the \biblatex package. Look at the sample documents which come with \biblatex to get a first impression.\fnurl{\biblatexctan doc/examples} For a quick start guide, browse \secref{int:abt, bib:typ, bib:fld, bib:use, use:opt, use:xbx, use:bib, use:cit, use:use}. \subsection[About]{About \biblatex} @@ -178,13 +178,15 @@ Please use the \biblatex project page on GitHub to report bugs and submit featur \subsection{Acknowledgements} The language modules of this package are made possible thanks to the following contributors: -Augusto Ritter Stoffel, Mateus Araújo (Brazilian); +Augusto Ritter Stoffel, Mateus Araújo, Gustavo Barros (Brazilian); +Kaloyan Ganev (Bulgarian); Sebastià Vila-Marta (Catalan); Ivo Pletikosić (Croatian); Michal Hoftich (Czech); Jonas Nyrup (Danish); Johannes Wilm (Danish\slash Norwegian); Alexander van Loon, Pieter Belmans, Hendrik Maryns (Dutch); +Benson Muite (Estonian); Hannu Väisänen, Janne Kujanpää (Finnish); Denis Bitouzé (French); Apostolos Syropoulos, Prokopis (Greek); @@ -194,12 +196,13 @@ Håkon Malmedal (Norwegian); Anastasia Kandulina, Yuriy Chernyshov (Polish); José Carlos Santos (Portuguese); Oleg Domanov (Russian); +Martin Vrábel, Dávid Lupták (Slovak); Tea Tušar and Bogdan Filipič (Slovene); Ignacio Fernández Galván (Spanish); Per Starbäck, Carl-Gustav Werner, Filip Åsblom (Swedish); -Martin Vrábel, Dávid Lupták (Slovak); -Benson Muite (Estonian); - +Sergiy M. Ponomarenko (Ukrainian); +Hans Fredrik Nordhaug (Norwegian) + \subsection{Prerequisites} \label{int:pre} @@ -213,7 +216,7 @@ The resources listed in this section are strictly required for \biblatex to func \begin{marglist} \item[\etex] -The \biblatex package requires \etex. \tex distributions have been shipping \etex binaries for quite some time, the popular distributions use them by default these days. The \biblatex package checks if it is running under \etex. Simply try compiling your documents as you usually do, the chances are that it just works. If you get an error message, try compiling the document with \bin{elatex} instead of \bin{latex} or \bin{pdfelatex} instead of \bin{pdflatex}, respectively. +The \biblatex package requires \etex. \tex distributions have been providing \etex binaries for quite some time, the popular distributions use them by default these days. The \biblatex package checks if it is running under \etex. Simply try compiling your documents as you usually do, the chances are that it just works. If you get an error message, try compiling the document with \bin{elatex} instead of \bin{latex} or \bin{pdfelatex} instead of \bin{pdflatex}, respectively. \item[\biber] \biber is the backend of \biblatex used to transfer data from source files to the \latex code. \biber comes with TeX Live and is also available from SourceForge.\fnurl{http://biblatex-biber.sourceforge.net/}. \biber uses the \texttt{btparse} C library for \bibtex format file parsing which aimed to be compatible with \bibtex's parsing rules but also aimed at correcting some of the common problems. For details, see the manual page for the Perl \texttt{Text::BibTeX} module\fnurl{http://search.cpan.org/~ambs/Text-BibTeX}. @@ -328,6 +331,10 @@ The \sty{titlesec} package redefines user-level document division commands such \item[ucs] The \sty{ucs} package provides support for \utf encoded input. Either use \sty{inputenc}'s standard \file{utf8} module or a Unicode enabled engine such as \xetex or \luatex instead. +\item[etextools] +The \sty{etextools} package provides enhancements to list macros defined by \sty{etoolbox} and a few other tools for command definitions. +The package redefines list handling macros in a way incompatible with \biblatex. + \end{marglist} \subsubsection{Compatibility Matrix for \biber} @@ -346,6 +353,8 @@ compatibility matrix for the recent versions. \sffamily\bfseries\spotcolor Biber version & \sffamily\bfseries\spotcolor \biblatex\ version\\ \midrule +2.8 & 3.8\\ +2.7 & 3.7\\ 2.6 & 3.5, 3.6\\ 2.5 & 3.4\\ 2.4 & 3.3\\ @@ -392,7 +401,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 \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. +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 come 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} @@ -713,9 +722,9 @@ 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 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[Integer fields] hold integers which may be converted to ordinals or strings as they are printed. A typical example is the \bibfield{extradate} 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{$<$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}. $<$datetype$>$ is the string preceding <date> for any datamodel field of \kvopt{datatype}{date}. For example, in the default datamodel, <event>, <orig>, <url> and the empty string <> for the date field \bibfield{date}. +\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 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}. $<$datetype$>$ is the string preceding <date> for any datamodel field of \kvopt{datatype}{date}. For example, in the default datamodel, <event>, <orig>, <url> and the empty string <> for the date field \bibfield{date}. \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. @@ -829,7 +838,7 @@ Another secondary editor performing a different role. Use the \bibfield{editorct \fielditem{editortype}{key} -The type of editorial role performed by the \bibfield{editor}. Roles supported by default are \texttt{editor}, \texttt{compiler}, \texttt{founder}, \texttt{continuator}, \texttt{redactor}, \texttt{reviser}, \texttt{collaborator}. The role <\texttt{editor}> is the default. In this case, the field is omissible. See \secref{bib:use:edr} for further hints. +The type of editorial role performed by the \bibfield{editor}. Roles supported by default are \texttt{editor}, \texttt{compiler}, \texttt{founder}, \texttt{continuator}, \texttt{redactor}, \texttt{reviser}, \texttt{collaborator}, \texttt{organizer}. The role <\texttt{editor}> is the default. In this case, the field is omissible. See \secref{bib:use:edr} for further hints. \fielditem{editoratype}{key} @@ -975,9 +984,11 @@ The main title of a multi"=volume book, such as \emph{Collected Works}. If the \ An annex to the \bibfield{maintitle}, to be printed in a different font. -\fielditem{month}{datepart} +\fielditem{month}{literal} -The publication month. This must be an integer, not an ordinal or a string. Don't say |month={January}| but |month={1}|. The bibliography style converts this to a language dependent string or ordinal where required. See also \bibfield{date} as well as \secref{bib:use:iss, bib:use:dat}. +The publication month. This must be an integer, not an ordinal or a string. Don't say |month={January}| but |month={1}|. The bibliography style converts this to a language dependent string or ordinal where required. This field is a literal field only when given +explicitly in the data (for plain \bibtex compatibility for example). It is +however better to use the \bibfield{date} field as this supports many more features. See \secref{bib:use:dat}. \fielditem{nameaddon}{literal} @@ -999,9 +1010,9 @@ The organization(s) that published a \bibtype{manual} or an \bibtype{online} res If the work is a translation, a reprint, or something similar, the publication date of the original edition. Not used by the standard bibliography styles. See also \bibfield{date}. -\fielditem{origlanguage}{key} +\listitem{origlanguage}{key} -If the work is a translation, the language of the original work. See also \bibfield{language}. +If the work is a translation, the language(s) of the original work. See also \bibfield{language}. \listitem{origlocation}{literal} @@ -1121,7 +1132,10 @@ The total number of volumes of a multi"=volume work. Depending on the entry type \fielditem{year}{literal} -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}. +The year of publication. This field is a literal field only when given +explicitly in the data (for plain \bibtex compatibility for example). It is +however better to use the \bibfield{date} field as this is compatible with +plain years too and supports many more features. See \secref{bib:use:dat}. \end{fieldlist} @@ -1156,6 +1170,7 @@ The gender of the author or the gender of the editor, if there is no author. The \multicolumn{1}{@{}H}{Region/Dialect} & \multicolumn{1}{@{}H}{Identifiers} \\ \cmidrule(r){1-1}\cmidrule(r){2-2}\cmidrule{3-3} +Bulgarian & Bulgaria & \opt{bulgarian} \\ Catalan & Spain, France, Andorra, Italy & \opt{catalan} \\ Croatian & Croatia, Bosnia and Herzegovina, Serbia & \opt{croatian} \\ Czech & Czech Republic & \opt{czech} \\ @@ -1177,15 +1192,16 @@ German (new) & Germany & \opt{ngerman} \\ & Switzerland & \opt{nswissgerman} \\ Greek & Greece & \opt{greek} \\ Italian & Italy & \opt{italian} \\ -Norwegian & Norway & \opt{norwegian}, \opt{norsk}, \opt{nynorsk} \\ +Norwegian & Norway & \opt{norsk}, \opt{nynorsk} \\ Polish & Poland & \opt{polish} \\ Portuguese & Brazil & \opt{brazil} \\ & Portugal & \opt{portuguese}, \opt{portuges} \\ Russian & Russia & \opt{russian} \\ Slovak & Slovakia & \opt{slovak} \\ -Slovene & Slovenia & \opt{slovene} \\ +Slovene & Slovenia & \opt{slovene}, \opt{slovenian} \\ Spanish & Spain & \opt{spanish} \\ Swedish & Sweden & \opt{swedish} \\ +Ukrainian & Ukraine & \opt{ukrainian} \\ \bottomrule \end{tabularx} \caption{Supported Languages} @@ -1276,9 +1292,9 @@ 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}{integer} +\fielditem{sortyear}{literal} -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}. +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}. Note that this is not an integer but rather a literal field as sometimes things like «1984-1» are used to modify temporal sorting. \fielditem{xdata}{separated list of entrykeys} @@ -1387,7 +1403,7 @@ Use the \bibtype{inbook} entry type for a self"=contained part of a book with it \subsubsection{Missing and Omissible Data} \label{bib:use:key} -The fields marked as <required> in \secref{bib:typ:blx} are not strictly required in all cases. The bibliography styles which ship with this package can get by with as little as a \bibfield{title} field for most entry types. A book published anonymously, a periodical without an explicit editor, or a software manual without an explicit author should pose no problem as far as the bibliography is concerned. Citation styles, however, may have different requirements. For example, an author"=year citation scheme obviously requires an \bibfield{author}\slash \bibfield{editor} and a \bibfield{year} field. +The fields marked as <required> in \secref{bib:typ:blx} are not strictly required in all cases. The bibliography styles which come with this package can get by with as little as a \bibfield{title} field for most entry types. A book published anonymously, a periodical without an explicit editor, or a software manual without an explicit author should pose no problem as far as the bibliography is concerned. Citation styles, however, may have different requirements. For example, an author"=year citation scheme obviously requires an \bibfield{author}\slash \bibfield{editor} and a \bibfield{year} field. You may generally use the \bibfield{label} field to provide a substitute for any missing data required for citations. How the \bibfield{label} field is employed depends on the citation style. The author"=year citation styles which come with this package use the \bibfield{label} field as a fallback if either the \bibfield{author}\slash \bibfield{editor} or the \bibfield{year} is missing. The numeric styles, on the other hand, do not use it at all since the numeric scheme is independent of the available data. The author"=title styles ignore it as well, because the bare \bibfield{title} is usually sufficient to form a unique citation and a title is expected to be available in any case. The \bibfield{label} field may also be used to override the non"=numeric portion of the automatically generated \bibfield{labelalpha} field used by alphabetic citation styles. See \secref{aut:bbx:fld} for details. @@ -1517,6 +1533,7 @@ The type of editorial role performed by an editor in one of the \bibfield{editor \item[redactor] A secondary editor whose task is redacting the work. \item[reviser] A secondary editor whose task is revising the work. \item[collaborator] A secondary editor or a consultant to the editor. +\item[organizer] Similar to \texttt{editor} but used if the task of the editor is mainly organizing. \end{marglist} % For example, if the task of the editor is compiling, you may indicate that in the corresponding \bibfield{editortype} field: @@ -1640,7 +1657,7 @@ open/1997 & --1997 & --1997 \\ 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. Also supported are the open-ended range specifications in section 4.5 of the current working draft of ISO8601-2\footnote{\url{http://www.loc.gov/standards/datetime/iso-tc154-wg5_n0039_iso_wd_8601-2_2016-02-16.pdf}}. \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/start date range by giving the range separator and omitting the end/start date (\eg \texttt{YYYY/}, \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}. +\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 \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. @@ -1989,10 +2006,10 @@ The sorting order of the bibliography. Unless stated otherwise, the entries are \item[ydnt] Sort by year (descending), name, title. \item[none] Do not sort at all. All entries are processed in citation order. \item[debug] Sort by entry key. This is intended for debugging only. -\item[\prm{name}] Use \prm{name}, as defined with \cmd{DeclareSortingScheme} (\secref{aut:ctm:srt}) +\item[\prm{name}] Use \prm{name}, as defined with \cmd{DeclareSortingTemplate} (\secref{aut:ctm:srt}) \end{valuelist} -Using any of the <alphabetic> sorting schemes only makes sense in conjunction with a bibliography style which prints the corresponding labels. Note that some bibliography styles initialize this package option to a value different from the package default (\opt{nty}). See \secref{use:xbx:bbx} for details. Please refer to \secref{use:srt} for an in"=depth explanation of the above sorting options as well as the fields considered in the sorting process. See also \secref{aut:ctm:srt} on how to adapt the predefined schemes or define new ones. +Using any of the <alphabetic> sorting templates only makes sense in conjunction with a bibliography style which prints the corresponding labels. Note that some bibliography styles initialize this package option to a value different from the package default (\opt{nty}). See \secref{use:xbx:bbx} for details. Please refer to \secref{use:srt} for an in"=depth explanation of the above sorting options as well as the fields considered in the sorting process. See also \secref{aut:ctm:srt} on how to adapt the predefined templates or define new ones. \boolitem[true]{sortcase} @@ -2004,7 +2021,7 @@ This option corresponds to \biber's \opt{--sortupper} command-line option. If en \optitem{sortlocale}{\opt{auto}, \prm{locale}} -This option sets the global sorting locale. Every sorting scheme inherits this locale if none is specified using the \prm{locale} option to \cmd{printbibliography}. Setting this to \opt{auto} requests that it be set to the \sty{babel}/\sty{polyglossia} main document language identifier, if these packages are used and \texttt{en\_US} otherwise. \biber will map \sty{babel}/\sty{polyglossia} language identifiers into sensible locale identifiers (see the \biber documentation). You can therefore specify either a normal locale identifier like \texttt{de\_DE\_phonebook}, \texttt{es\_ES} or one of the supported \sty{babel}/\sty{polyglossia} language identifiers if the mapping \biber makes of this is fine for you. +This option sets the global sorting locale. Every sorting template inherits this locale if none is specified using the \prm{locale} option to \cmd{printbibliography}. Setting this to \opt{auto} requests that it be set to the \sty{babel}/\sty{polyglossia} main document language identifier, if these packages are used and \texttt{en\_US} otherwise. \biber will map \sty{babel}/\sty{polyglossia} language identifiers into sensible locale identifiers (see the \biber documentation). You can therefore specify either a normal locale identifier like \texttt{de\_DE\_phonebook}, \texttt{es\_ES} or one of the supported \sty{babel}/\sty{polyglossia} language identifiers if the mapping \biber makes of this is fine for you. \boolitem[true]{related} @@ -2012,7 +2029,11 @@ Whether or not to use information from related entries or not. See \secref{use:r \boolitem[false]{sortcites} -Whether or not to sort citations if multiple entry keys are passed to a citation command. If this option is enabled, citations are sorted according to the current bibliography context sorting scheme (see \secref{use:bib:context}). This feature works with all citation styles. +Whether or not to sort citations if multiple entry keys are passed to a citation command. If this option is enabled, citations are sorted according to the current bibliography context sorting template (see \secref{use:bib:context}). This feature works with all citation styles. + +\boolitem[false]{sortsets} + +Whether or not to sort set members according to the active reference context sorting scheme. By default this is false and set members appear in the order given in the data source. \intitem[3]{maxnames} @@ -2072,7 +2093,7 @@ This option controls which \sty{babel} language environment\footnote{\sty{polygl Disable this feature, \ie do not use any language environment at all. \item[hyphen] -Enclose the entry in a \env{hyphenrules} environment. This will load hyphenation patterns for the language specified in the \env{hyphenation} field of the entry, if available. +Enclose the entry in a \env{hyphenrules} environment. This will load hyphenation patterns for the language specified in the \bibfield{langid} field of the entry, if available. \item[other] Enclose the entry in an \env{otherlanguage} environment. This will load hyphenation patterns for the specified language, enable all extra definitions which \sty{babel}/\sty{polyglossia} and \biblatex provide for the respective language, and translate key terms such as <editor> and <volume>. The extra definitions include localisations of the date format, of ordinals, and similar things. @@ -2115,13 +2136,13 @@ This option controls the behavior of \cmd{mkbibfootnote}, \cmd{mkbibendnote}, an \item[endonly] Force endnotes, \ie make \cmd{mkbibfootnote} generate endnotes. \end{valuelist} -\optitem[auto]{hyperref}{\opt{true}, \opt{false}, \opt{auto}} +\optitem[auto]{hyperref}{\opt{true}, \opt{false}, \opt{auto}, \opt{manual}} -Whether or not to transform citations and back references into clickable hyperlinks. This feature requires the \sty{hyperref} package. It also requires support by the selected citation style. All standard styles which ship with this package support hyperlinks. \kvopt{hyperref}{auto} automatically detects if the \sty{hyperref} package has been loaded. +Whether or not to transform citations and back references into clickable hyperlinks. This feature requires the \sty{hyperref} package. It also requires support by the selected citation style. All standard styles which ship with this package support hyperlinks. \kvopt{hyperref}{auto} automatically detects if the \sty{hyperref} package has been loaded. This is the default setting. \kvopt{hyperref}{false} explicitly disables links even if \sty{hyperref} is loaded. \kvopt{hyperref}{true} enables links when \sty{hyperref} is loaded, it cannot explicitly enable links if \sty{hyperref} is not loaded, as such it works exactly like \kvopt{hyperref}{auto} except that it will issue a warning if \sty{hyperref} is not loaded. \kvopt{hyperref}{manual} gives full manual control over \sty{hyperref} interaction, it should only be needed by package authors in very special circumstances. With the \kvopt{hyperref}{manual} setting you are responsible to enable or disable \sty{hyperref} support manually with \cmd{BiblatexManualHyperrefOn} or \cmd{BiblatexManualHyperrefOff} yourself. One of the two commands must be called exactly once; \cmd{BiblatexManualHyperrefOn} can only be called after \sty{hyperref} is loaded. \boolitem[false]{backref} -Whether or not to print back references in the bibliography. The back references are a list of page numbers indicating 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. Strictly speaking, this option only controls whether the \biblatex package collects the data required to print such references. This feature still has to be supported by the selected bibliography style. All standard styles which ship with this package do so. +Whether or not to print back references in the bibliography. The back references are a list of page numbers indicating 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. Strictly speaking, this option only controls whether the \biblatex package collects the data required to print such references. This feature still has to be supported by the selected bibliography style. All standard styles which come with this package do so. \optitem[three]{backrefstyle}{\opt{none}, \opt{three}, \opt{two}, \opt{two+}, \opt{three+}, \opt{all+}} @@ -2176,7 +2197,7 @@ This option controls indexing in citations and in the bibliography. More precise \item[bib] Enable indexing in the bibliography only. \end{valuelist} -This feature requires support by the selected citation style. All standard styles which ship with this package support indexing of both citations and entries in the bibliography. Note that you still need to enable indexing globally with \cmd{makeindex} to get an index. +This feature requires support by the selected citation style. All standard styles which come with this package support indexing of both citations and entries in the bibliography. Note that you still need to enable indexing globally with \cmd{makeindex} to get an index. \boolitem[false]{loadfiles} @@ -2362,7 +2383,7 @@ Sets \opt{labeldateusetime} and the \opt{$<$datetype$>$dateusetime} option for a \boolitem[false]{defernumbers} -In contrast to standard \latex, the numeric labels generated by this package are normally assigned to the full list of references at the beginning of the document body. If this option is enabled, numeric labels (\ie the \bibfield{labelnumber} field discussed in \secref{aut:bbx:fld}) are assigned the first time an entry is printed in any bibliography. See \secref{use:cav:lab} for further explanation. This option requires two \latex runs after the data has been exported to the \file{bbl} file by the backend (in addition to any other runs required by page breaks changing etc.). An important thing to note is that if you change the value of this option in your document (or the value of options which depend on this like some of the options to the \cmd{printbibliography} macro, see \secref{use:bib:bib}), then it is likely that you will need to delete your current \file{aux} file and re-run \latex to obtain the correct numbering. See \secref{aut:int}. +In contrast to standard \latex, the numeric labels generated by this package are normally assigned to the full list of references at the beginning of the document body. If this option is enabled, numeric labels (\ie the \bibfield{labelnumber} field discussed in \secref{aut:bbx:fld}) are assigned the first time an entry is printed in any bibliography. See \secref{use:cav:lab} for further explanation. This option requires two \latex runs after the data has been exported to the \file{bbl} file by the backend (in addition to any other runs required by page breaks changing etc.). An important thing to note is that if you are using this option, then changes to options, the \file{bib} file or certain commands like \cmd{printbibliography} will usually require that you delete your current \file{aux} file and re-run \latex to obtain the correct numbering. See \secref{aut:int}. \boolitem[false]{punctfont} @@ -2596,7 +2617,7 @@ Whether or not to provide the special field \bibfield{extratitleyear}, see \secr \boolitem[false]{labeldateparts} -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. +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{extradate}, 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} @@ -2655,11 +2676,11 @@ Whether or not to update the \cnt{uniquename} counter, see \secref{aut:aux:tst} \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. -\item[minfull] A variant of \texttt{full} which only disambiguates names in lists with identical last names. +\item[mininit] A variant of \texttt{init} which only disambiguates names in identical lists of base nameparts (by default, lists of family names). +\item[minfull] A variant of \texttt{full} which only disambiguates names in identical lists of base nameparts (by default, lists of family names). \end{valuelist} % -Note that the \opt{uniquename} option will also affect \opt{uniquelist}, the \cmd{ifsingletitle} test, and the \bibfield{extrayear} field. See \secref{aut:cav:amb} for further details and practical examples. +Note that the \opt{uniquename} option will also affect \opt{uniquelist}, the \cmd{ifsingletitle} test, and the \bibfield{extradate} field. See \secref{aut:cav:amb} for further details and practical examples. \optitem[false]{uniquelist}{\opt{true}, \opt{false}, \opt{minyear}} @@ -2671,7 +2692,7 @@ Whether or not to update the \cnt{uniquelist} counter, see \secref{aut:aux:tst} \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. +Note that the \opt{uniquelist} option will also affect the \cmd{ifsingletitle} test and the \bibfield{extradate} field. See \secref{aut:cav:amb} for further details and practical examples. \end{optionlist} @@ -2687,7 +2708,7 @@ Note that the \opt{uniquelist} option will also affect the \cmd{ifsingletitle} t \multicolumn{1}{@{}H}{Counter tracks} \\ \cmidrule(r){1-1}\cmidrule(r){2-2}\cmidrule(r){3-3}\cmidrule{4-4} labelalpha & labelalpha & extraalpha & label\\ -labeldateparts & labelyear & extrayear & labelname+\\ +labeldateparts & labelyear & extradate & labelname+\\ & labelmonth & & labelyear\\ & labelday & & \\ & labelendyear & & \\ @@ -2758,14 +2779,14 @@ defined. Global, per-type and per-entry options called <use$<$name$>$>are automa 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 Printing the family 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. +For example, if this option is enabled, \biblatex precedes the family name with the prefix---Ludwig van Beethoven would be cited as «van Beethoven» and alphabetized as «Van Beethoven, Ludwig». If this option is disabled (the default), he is cited as «Beethoven» and alphabetized as «Beethoven, Ludwig van» instead. This option is also settable on a per-type scope. With \biblatexml datasources and the \bibtex extended name format supported by \biber, this is also settable on per-namelist and per-name scopes. \optitem{indexing}{\opt{true}, \opt{false}, \opt{cite}, \opt{bib}} @@ -2829,7 +2850,7 @@ The following legacy option may be used globally in the optional argument to \cm \subsection{Global Customization} \label{use:cfg} -Apart from writing new citation and bibliography styles, there are numerous ways to customize the styles which ship with this package. Customization will usually take place in the preamble, but there is also a configuration file for permanent adaptions. The configuration file may also be used to initialize the package options to a value different from the package default. +Apart from writing new citation and bibliography styles, there are numerous ways to customize the styles which come with this package. Customization will usually take place in the preamble, but there is also a configuration file for permanent adaptions. The configuration file may also be used to initialize the package options to a value different from the package default. \subsubsection{Configuration File} \label{use:cfg:cfg} @@ -2852,7 +2873,7 @@ This command may also be used in the configuration file to modify the default se \subsection{Standard Styles} \label{use:xbx} -This section provides a short description of all bibliography and citation styles which ship with the \biblatex package. If you want to write your own styles, see \secref{aut}. +This section provides a short description of all bibliography and citation styles which come with the \biblatex package. If you want to write your own styles, see \secref{aut}. \subsubsection{Citation Styles} \label{use:xbx:cbx} @@ -2871,10 +2892,10 @@ A compact variant of the \texttt{numeric} style which prints a list of more than A verbose variant of the \texttt{numeric} 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 «[2, 5, 6]» this style would print «[2]; [5]; [6]». It is intended for in-text citations. The style will set the following package options at load time: \kvopt{autocite}{inline}, \kvopt{labelnumber}{true}. It also provides the \opt{subentry} option. \item[alphabetic] -This style implements an alphabetic citation scheme similar to the \path{alpha.bst} style of traditional \bibtex. The alphabetic labels resemble a compact author"=year style to some extent, but the way they are employed is similar to a numeric citation scheme. For example, instead of «Jones 1995» this style would use the label «[Jon95]». «Jones and Williams 1986» would be rendered as «[JW86]». This style should be employed in conjunction with an alphabetic bibliography style which prints the corresponding labels in the bibliography. It is intended for in-text citations. The style will set the following package options at load time: \kvopt{autocite}{inline}, \kvopt{labelalpha}{true}. +This style implements an alphabetic citation scheme similar to the \path{alpha.bst} style of traditional \bibtex. The alphabetic labels resemble a compact author"=year style to some extent, but the way they are employed is similar to a numeric citation scheme. For example, instead of «Jones 1995» this style would use the label «[Jon95]». «Jones and Williams 1986» would be rendered as «[JW86]». This style should be employed in conjunction with an alphabetic bibliography style which prints the corresponding labels in the bibliography. It is intended for in-text citations. The style will set the following package options at load time: \kvopt{autocite}{inline}, \kvopt{labelalpha}{true}. This style also provides an additional preamble option called \opt{subentry} which affects the handling of entry sets. If this option is disabled, citations referring to a member of a set will point to the entire set. If it is enabled, the style supports citations like «[SGW(c)]» which point to a subentry in a set (the third one in this example). See the style example for details. \item[alphabetic-verb] -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}. +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}. It also provides the subentry option. \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{labeldateparts}{true}, \kvopt{uniquename}{full}, \kvopt{uniquelist}{true}. @@ -3062,11 +3083,11 @@ You can use the \bibfield{relatedoptions} to set options on the related entry da \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. +This package supports fully customisable sorting templates for the bibliography. The default global sorting template 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 default alphabetic sorting templates supported by \biblatex. Chronological sorting templates are listed in \apxref{apx:srt:chr}. A few explanations concerning the default templates 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. 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 templates 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 templates 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. +The chronological sorting templates presented in \apxref{apx:srt:chr} also make use of the \bibfield{presort} and \bibfield{sortkey} fields, if defined. The next item considered is the \bibfield{sortyear} or the \bibfield{year} field, depending on availability. The \opt{ynt} template extracts the first four Arabic figures from the field. If both fields are undefined, the string \texttt{9999} is used as a fallback value. This means that all entries without a year will be moved to the end of the list. The \opt{ydnt} template is similar in concept but sorts the year in descending order. As with the \opt{ynt} template, the string \texttt{9999} is used as a fallback value. The remaining items are similar to the alphabetic sorting templates discussed above. Note that the \opt{ydnt} sorting template will only sort the date in descending order. All other items are sorted in ascending order as usual. Using special fields such as \bibfield{sortkey}, \bibfield{sortname}, or \bibfield{sorttitle} is usually not required. The \biblatex package is quite capable of working out the desired sorting order by using the data found in the regular fields of an entry. You will only need them if you want to manually modify the sorting order of the bibliography or if any data required for sorting is missing. Please refer to the field descriptions in \secref{bib:fld:spc} for details on possible uses of the special fields. @@ -3197,7 +3218,7 @@ To put the given and family names of name list items annotated as «correspondin \cmditem{addbibresource}[options]{resource} -Adds a \prm{resource}, such as a \file{.bib} file, to the default resource list. This command is only available in the preamble. It replaces the \cmd{bibliography} legacy command. Note that files must be specified with their full name, including the extension. Do not omit the \file{.bib} extension from the filename. Also note that the \prm{resource} is a single resource. Invoke \cmd{addbibresource} multiple times to add more resources, for example: +Adds a \prm{resource}, such as a \file{.bib} file, to the default resource list. This command is only available in the preamble. It replaces the \cmd{bibliography} legacy command. Note that files must be specified with their full name, including the extension. Do not omit the \file{.bib} extension from the filename. Also note that the \prm{resource} is a single resource. If the resources contain duplicate entries (that is, duplicate \bibfield{entrykey}s), it is backend dependent what then happens. For example, by default \biber will ignore further occurrence of \bibfield{entrykey}s unless its \opt{--noskipduplicates} options is used. Invoke \cmd{addbibresource} multiple times to add more resources, for example: \begin{ltxexample} \addbibresource{bibfile1.bib} @@ -3244,7 +3265,7 @@ This command differs from \cmd{addbibresource} in that the \prm{resource} is add This command differs from \cmd{addbibresource} in that the resource \prm{options} are registered but the \prm{resource} not added to any resource list. This is only required for resources which 1) are given exclusively in the optional argument of \env{refsection} (\secref{use:bib:sec}) and 2) require options different from the default settings. In this case, \cmd{addsectionbib} is employed to qualify the \prm{resource} prior to using it by setting the appropriate \prm{options} in the preamble. The \opt{label} option may be useful to assign a short name to the resource. -\cmditem{bibliography}{bibfile, \dots}|\DeprecatedMark| +\cmditem{bibliography}{bibfile, \dots}\DeprecatedMark The legacy command for adding bibliographic resources, supported for backwards compatibility. Like \cmd{addbibresource}, this command is only available in the preamble and adds resources to the default resource list. Its argument is a comma"=separated list of \file{bib} files. The \file{.bib} extension may be omitted from the filename. Invoking this command multiple times to add more files is permissible. This command is deprecated. Please consider using \cmd{addbibresource} instead. @@ -3341,15 +3362,15 @@ This option applies to numerical citation\slash bibliography styles only and req \cmditem{bibbysection}[key=value, \dots] -This command automatically loops over all reference sections. This is equivalent to giving one \cmd{printbibliography} command for every section but has the additional benefit of automatically skipping sections without references. Note that \cmd{bibbysection} starts looking for references in section \texttt{1}. It will ignore references given outside of \env{refsection} environments since they are assigned to section~0. See \secref{use:use:mlt} for usage examples. The options are a subset of those supported by \cmd{printbibliography}. Valid options are \opt{env}, \opt{heading}, \opt{prenote}, \opt{postnote}. The current bibliography context sorting scheme is used for all sections (see \secref{use:bib:context}). +This command automatically loops over all reference sections. This is equivalent to giving one \cmd{printbibliography} command for every section but has the additional benefit of automatically skipping sections without references. Note that \cmd{bibbysection} starts looking for references in section \texttt{1}. It will ignore references given outside of \env{refsection} environments since they are assigned to section~0. See \secref{use:use:mlt} for usage examples. The options are a subset of those supported by \cmd{printbibliography}. Valid options are \opt{env}, \opt{heading}, \opt{prenote}, \opt{postnote}. The current bibliography context sorting template is used for all sections (see \secref{use:bib:context}). \cmditem{bibbysegment}[key=value, \dots] -This command automatically loops over all reference segments. This is equivalent to giving one \cmd{printbibliography} command for every segment in the current \env{refsection} but has the additional benefit of automatically skipping segments without references. Note that \cmd{bibbysegment} starts looking for references in segment \texttt{1}. It will ignore references given outside of \env{refsegment} environments since they are assigned to segment~0. See \secref{use:use:mlt} for usage examples. The options are a subset of those supported by \cmd{printbibliography}. Valid options are \opt{env}, \opt{heading}, \opt{prenote}, \opt{postnote}. The current bibliography context sorting scheme is used for all segments (see \secref{use:bib:context}). +This command automatically loops over all reference segments. This is equivalent to giving one \cmd{printbibliography} command for every segment in the current \env{refsection} but has the additional benefit of automatically skipping segments without references. Note that \cmd{bibbysegment} starts looking for references in segment \texttt{1}. It will ignore references given outside of \env{refsegment} environments since they are assigned to segment~0. See \secref{use:use:mlt} for usage examples. The options are a subset of those supported by \cmd{printbibliography}. Valid options are \opt{env}, \opt{heading}, \opt{prenote}, \opt{postnote}. The current bibliography context sorting template is used for all segments (see \secref{use:bib:context}). \cmditem{bibbycategory}[key=value, \dots] -This command loops over all bibliography categories. This is equivalent to giving one \cmd{printbibliography} command for every category but has the additional benefit of automatically skipping empty categories. The categories are processed in the order in which they were declared. See \secref{use:use:mlt} for usage examples. The options are a subset of those supported by \cmd{printbibliography}. Valid options are \opt{env}, \opt{prenote}, \opt{postnote}, \opt{section}. Note that \opt{heading} is not available with this command. The name of the current category is automatically used as the heading name. This is equivalent to passing \texttt{heading=\prm{category}} to \cmd{printbibliography} and implies that there must be a matching heading definition for every category. The current bibliography context sorting scheme is used for all categories (see \secref{use:bib:context}). +This command loops over all bibliography categories. This is equivalent to giving one \cmd{printbibliography} command for every category but has the additional benefit of automatically skipping empty categories. The categories are processed in the order in which they were declared. See \secref{use:use:mlt} for usage examples. The options are a subset of those supported by \cmd{printbibliography}. Valid options are \opt{env}, \opt{prenote}, \opt{postnote}, \opt{section}. Note that \opt{heading} is not available with this command. The name of the current category is automatically used as the heading name. This is equivalent to passing \texttt{heading=\prm{category}} to \cmd{printbibliography} and implies that there must be a matching heading definition for every category. The current bibliography context sorting template is used for all categories (see \secref{use:bib:context}). \cmditem{printbibheading}[key=value, \dots] @@ -3357,7 +3378,7 @@ This command prints a bibliography heading defined with \cmd{defbibheading}. It \end{ltxsyntax} % -To print a bibliography with a different sorting scheme than the global sorting scheme, use the bibliography context switching commands from \secref{use:bib:context}. +To print a bibliography with a different sorting template than the global sorting template, use the bibliography context switching commands from \secref{use:bib:context}. \subsubsection{Bibliography Lists} \label{use:bib:biblist} @@ -3378,10 +3399,10 @@ The \prm{biblistname} is a mandatory argument which names the bibliography list. \item A default filter declared with \cmd{DeclareBiblistFilter} (see \secref{aut:ctm:bibfilt}) used to filter the entries returned from \biber \item A default check declared with \cmd{defbibcheck} (see \secref{use:bib:flt}) used to post-process the list entries \item The default bib environment to use -\item The default sorting scheme name to use +\item The default sorting template to use \end{itemize} -In terms of sorting the list, the default is to sort use the sorting scheme named after the bibliography list (if it exists) and only then to fall back to the current context sorting scheme is this is not defined (see \secref{use:bib:context}). +In terms of sorting the list, the default is to sort use the sorting template named after the bibliography list (if it exists) and only then to fall back to the current context sorting template is this is not defined (see \secref{use:bib:context}). The most common bibliography list is a list of shorthand abbreviations for certain entries and so this has a convenience alias \cmd{printshorthands[\dots]} for backwards compatibility which is defined as: @@ -3416,13 +3437,13 @@ Since \bibfield{shortjournal} is defined in the default data model as a <Label f \item Uses the automatically created <shortjournal> bibliography list filter to return only entries with a \bibfield{shortjournal} field in the \file{.bbl} \item Uses the defined <shortjournal> bibliography driver to print the entries \item Uses the default <biblist> heading but overrides the title with <Journal Shorthands> -\item Uses the current bibliography context sorting scheme if no scheme exists with the name \bibfield{shortjournal} +\item Uses the current bibliography context sorting template if no template exists with the name \bibfield{shortjournal} \end{itemize} % -Often, you will want to sort on the label field of the list and since a sorting scheme is automatically picked up if it is named after the list, in this case you could simply do: +Often, you will want to sort on the label field of the list and since a sorting template is automatically picked up if it is named after the list, in this case you could simply do: \begin{ltxexample} -\DeclareSortingScheme{shortjournal}{ +\DeclareSortingTemplate{shortjournal}{ \sort{ \field{shortjournal} } @@ -3438,11 +3459,11 @@ Bibliography lists are often used to print lists of various kinds of shorthands \defbibcheck{shortjournal}{% \iffieldundef{shortjournal} {\skipentry} - {\iffieldundef{journal} + {\iffieldundef{journaltitle} {\skipentry} - {\ifcsdef{\strfield{shortjournal}=\strfield{journal}} + {\ifcsdef{\strfield{shortjournal}=\strfield{journaltitle}} {\skipentry} - {\savefieldcs{journal}{\strfield{shortjournal}=\strfield{journal}}}}}} + {\savefieldcs{journaltitle}{\strfield{shortjournal}=\strfield{journaltitle}}}}}} \end{ltxexample} \subsubsection{Bibliography Sections} @@ -3672,16 +3693,17 @@ See the author guide, in particular \secref{aut:aux:tst,aut:aux:ife}, for furthe \subsubsection{Reference Contexts} \label{use:bib:context} -References in a bibliography are cited and printed in a <context>. The context determines the data which is actually used to cite or provide bibliographic data for an entry. A context consists of the following information (the <context> concept is designed for future extensibility): +References in a bibliography are cited and printed in a <context>. The context determines the data which is actually used to cite or provide bibliographic data for an entry. A context consists of the following information: \begin{itemize} - \item A sorting scheme - \item A scheme for constructing the sorting keys for names - \item A string prefix for citation schemes which use alphabetic or numeric - labels + \item A sorting template + \item A template for constructing the sorting keys for names + \item A string prefix for citation schemes which use alphabetic or numeric labels + \item A template for calculating name uniqueness information + \item A template for constructing alphabetic labels for names \end{itemize} % -The point of bibliography contexts is twofold. Firstly, they are used to set options which influence a printed bibliography and secondly to influence the data printed by citation commands. +The purpose of bibliography contexts is twofold. Firstly, they are used to set options which influence a printed bibliography and secondly to influence the data printed by citation commands. The former use is the most common when one needs to print more than one bibliography list with different, for example, sorting. \begin{ltxexample} @@ -3694,13 +3716,13 @@ The former use is the most common when one needs to print more than one bibliogr \printbibliography \end{ltxexample} % -Here we print two bibliographies, one with the default <nyt> sorting scheme and one with the <ydnt> sorting scheme. +Here we print two bibliographies, one with the default <nyt> sorting template and one with the <ydnt> sorting template. -To demonstrate the second type of use of bibliography contexts, we have to understand that the actual data for an entry can vary depending on the context. This is most obvious in the case of the \opt{extra*} fields like \opt{extrayear} which are generated by the backend according to the order of entries \emph{after} sorting so that they come out in the expected <a, b, c> order. This clearly shows that the \emph{data} in an entry can be different between sorting schemes. If a document contains more than one bibliography list with different sorting schemes, it can happen then that the \file{.bbl} contains sorting lists with the same entry but containing different data (a different value for \bibfield{extrayear}, for example). The purpose of bibliography contexts is to encapsulate things inside a context so that \biblatex can use the correct entry data. An example is printing a bibliography list with a different sorting order to the global sorting order where the \opt{extra*} fields are different for the same entry between sorting lists: +To demonstrate the second type of use of bibliography contexts, we have to understand that the actual data for an entry can vary depending on the context. This is most obvious in the case of the \bibfield{extra*} fields like \bibfield{extradate} which are generated by the backend according to the order of entries \emph{after} sorting so that they come out in the expected <a, b, c> order. This clearly shows that the \emph{data} in an entry can be different between sorting templates. If a document contains more than one bibliography list with different sorting templates, it can happen then that the \file{.bbl} contains sorting lists with the same entry but containing different data (a different value for \bibfield{extradate}, for example). The purpose of bibliography contexts is to encapsulate things inside a context so that \biblatex can use the correct entry data. An example is printing a bibliography list with a different sorting order to the global sorting order where the \opt{extra*} fields are different for the same entry between sorting lists: \begin{ltxexample} \usepackage[sorting=nyt,style=authoryear]{biblatex} -\DeclareSortingScheme{yntd}{ +\DeclareSortingTemplate{yntd}{ \sort{ \field[strside=left,strwidth=4]{sortyear} \field[strside=left,strwidth=4]{year} @@ -3726,7 +3748,7 @@ To demonstrate the second type of use of bibliography contexts, we have to under \printbibliography \end{ltxexample} % -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. +Here, the second use of the citations, along with the \cmd{printbibliography} command will use data from the context of the custom <yntd> sorting template which may well be different from the data associated with the default <nyt> template. That is, the citation labels (in an authoryear style which uses \opt{extradate}) may be different \emph{for the exact same entries} between different bibliography contexts and so the citations themselves may look different. Reference contexts can be declared with \cmd{DeclareRefcontext} and referred to by name, see below. @@ -3769,11 +3791,23 @@ Declares a named reference context with name \prm{name}. The \prm{key=value} opt \valitem{sorting}{name} -Specify a sorting scheme defined previously with \cmd{DeclareSortingScheme}. This scheme is used to determine which data to retrieve and/or print for an entry in the commands inside the context. +Specify a sorting template defined previously with \cmd{DeclareSortingTemplate}. This template is used to determine which data to retrieve and/or print for an entry in the commands inside the context. + +\valitem{sortingnamekeytemplatename}{name} + +Specify a sorting name key template defined previously with \cmd{DeclareSortingNamekeyTemplate}. This template is used to construct sorting keys for names inside the context. The template name can also be specified (in increasing order of preference) per"=entry, per"=name list and per"=name. See \secref{apx:opt} for information on setting per"=option, per"=namelist and per"=name options. -\valitem{sortingnamekeyscheme}{name} +\valitem{uniquenametemplatename}{name} -Specify a sorting name key scheme defined previously with \cmd{DeclareSortingNamekeyScheme}. This scheme is used to construct sorting keys for names inside the context. +Specify a uniquename template defined previously with \cmd{DeclareUniquenameTemplate} (see \secref{aut:cav:amb}). This template is used to calculate uniqueness information for names inside the context. The template name can also be specified (in increasing order of preference) per"=entry, per"=name list and per"=name. See \secref{apx:opt} for information on setting per"=option, per"=namelist and per"=name options. + +\valitem{labelalphanametemplatename}{name} + +Specify a template defined previously with \cmd{DeclareLabelalphaNameTemplate} (see \secref{aut:ctm:lab}). This template is used to construct name parts of alphabetic labels for names inside the context. The template name can also be specified (in increasing order of preference) per"=entry, per"=name list and per"=name. See \secref{apx:opt} for information on setting per"=option, per"=namelist and per"=name options. + +\valitem{nametemplates}{name} + +A convenience meta-option which sets \opt{sortingnamekeytemplate}, \opt{uniquenametemplate} and \opt{labelalphanametemplate} to the same template name. This option can also be specified (in increasing order of preference) per"=entry, per"=name list and per"=name. See \secref{apx:opt} for information on setting per"=option, per"=namelist and per"=name options. \valitem{labelprefix}{string} @@ -3802,7 +3836,7 @@ At the beginning of the document, there is always a global context containing gl % Global reference context: % sorting=nty -% sortingnamekeyscheme=global +% sortingnamekeytemplate=global % labelprefix= \begin{document} @@ -3810,35 +3844,35 @@ At the beginning of the document, there is always a global context containing gl \begin{refcontext}{testrc} % reference context: % sorting=nyt -% sortingnamekeyscheme=global +% sortingnamekeytemplate=global % labelprefix= \end{refcontext} \begin{refcontext}[labelprefix=A]{testrc} % reference context: % sorting=nyt -% sortingnamekeyscheme=global +% sortingnamekeytemplate=global % labelprefix=A \end{refcontext} \begin{refcontext}[sorting=ydnt,labelprefix=A] % reference context: % sorting=ydnt -% sortingnamekeyscheme=global +% sortingnamekeytemplate=global % labelprefix=A \end{refcontext} \newrefcontext}[labelprefix=B] % reference context: % sorting=nty -% sortingnamekeyscheme=global +% sortingnamekeytemplate=global % labelprefix=B \endrefcontext \newrefcontext}[sorting=ynt,labelprefix=C]{testrc} % reference context: % sorting=ynt -% sortingnamekeyscheme=global +% sortingnamekeytemplate=global % labelprefix=C \endrefcontext \end{ltxexample} @@ -3855,7 +3889,7 @@ At the beginning of the document, there is always a global context containing gl \cmditem{assignrefcontextentries*}[key=value, \dots]{*} \end{ltxsyntax} -These commands automate putting citations into refcontexts when the default behaviour is not sufficient. The default behaviour is that the data for a citation is drawn from the refcontext of the last bibliography in which it was printed. For citations that are used in some way but not printed in a bibliography or bibliography list, they default to drawing their data from the global refcontext established at the beginning of the document. To override this behaviour, instead of manually wrapping citation commands in \env{refcontext} environments, which might be error-prone and tedious, you can register a comma"=separated list of \prm{keywords}, \prm{categories} or \prm{entrykeys} which, respectively, make the entries with any of the specified keywords, entries in any of the specified categories (see \secref{use:use:div}) or entries with any of the specified citation keys draw their data from a particular refcontext specified by the \prm{refcontext key/values} which are parsed as the per the corresponding \env{refcontext} options. Such refcontext auto-assignments are specific to the current refsection. You may specify the same citation key in any of these commands but be aware that assignment is done in the order \prm{keywords}, \prm{categories}, \prm{entrykeys} with the later specifications overriding the earlier. \cmd{assignrefcontextentries} accepts a single asterisk instead of a list of entrykeys which allows the assignment of all keys in a refsection to a refcontext with having to explicitly list them. An example: +These commands automate putting citations into refcontexts when the default behaviour is not sufficient. The \prm{key=value} options are as for \cmd{DeclareRefcontext}. The default behaviour is that the data for a citation is drawn from the refcontext of the last bibliography in which it was printed. For citations that are used in some way but not printed in a bibliography or bibliography list, they default to drawing their data from the global refcontext established at the beginning of the document. To override this behaviour, instead of manually wrapping citation commands in \env{refcontext} environments, which might be error-prone and tedious, you can register a comma"=separated list of \prm{keywords}, \prm{categories} or \prm{entrykeys} which, respectively, make the entries with any of the specified keywords, entries in any of the specified categories (see \secref{use:use:div}) or entries with any of the specified citation keys draw their data from a particular refcontext specified by the \prm{refcontext key/values} which are parsed as the per the corresponding \env{refcontext} options. Such refcontext auto-assignments are specific to the current refsection. You may specify the same citation key in any of these commands but be aware that assignment is done in the order \prm{keywords}, \prm{categories}, \prm{entrykeys} with the later specifications overriding the earlier. \cmd{assignrefcontextentries} accepts a single asterisk instead of a list of entrykeys which allows the assignment of all keys in a refsection to a refcontext with having to explicitly list them. An example: \begin{ltxexample}[style=latex]{} \assignrefcontextentries[labelprefix=A]{key2} @@ -3931,14 +3965,14 @@ These command use a format similar to \cmd{cite} but put the entire citation in \subsubsection{Style-specific Commands} \label{use:cit:cbx} -The following additional citation commands are only provided by some of the citation styles which ship with this package. +The following additional citation commands are only provided by some of the citation styles which come with this package. \begin{ltxsyntax} \cmditem{textcite}[prenote][postnote]{key} \cmditem{Textcite}[prenote][postnote]{key} -These citation commands are provided by all styles that ship with this package. They are intended for use in the flow of text, replacing the subject of a sentence. They print the authors or editors followed by a citation label which is enclosed in parentheses. Depending on the citation style, the label may be a number, the year of publication, an abridged version of the title, or something else. The numeric and alphabetic styles use square brackets instead of parentheses. In the verbose styles, the label is provided in a footnote. Trailing punctuation is moved between the author or editor names and the footnote mark. \cmd{Textcite} is similar to \cmd{textcite} but capitalizes the name prefix of the first name in the citation if the \opt{useprefix} option is enabled, provided that there is a name prefix. +These citation commands are provided by all styles that come with this package. They are intended for use in the flow of text, replacing the subject of a sentence. They print the authors or editors followed by a citation label which is enclosed in parentheses. Depending on the citation style, the label may be a number, the year of publication, an abridged version of the title, or something else. The numeric and alphabetic styles use square brackets instead of parentheses. In the verbose styles, the label is provided in a footnote. Trailing punctuation is moved between the author or editor names and the footnote mark. \cmd{Textcite} is similar to \cmd{textcite} but capitalizes the name prefix of the first name in the citation if the \opt{useprefix} option is enabled, provided that there is a name prefix. \cmditem{smartcite}[prenote][postnote]{key} \cmditem{Smartcite}[prenote][postnote]{key} @@ -4071,12 +4105,12 @@ This command prints the title. It will use the abridged title in the \bibfield{s \cmditem{citeyear}[prenote][postnote]{key} \cmditem*{citeyear*}[prenote][postnote]{key} -This command prints the year (\bibfield{year} field or year component of \bibfield{date}). The starred variant includes the \bibfield{extrayear} information, if any. +This command prints the year (\bibfield{year} field or year component of \bibfield{date}). The starred variant includes the \bibfield{extradate} information, if any. \cmditem{citedate}[prenote][postnote]{key} \cmditem*{citedate*}[prenote][postnote]{key} -This command prints the full date (\bibfield{date} or \bibfield{year}). The starred variant includes the \bibfield{extrayear} information, if any. +This command prints the full date (\bibfield{date} or \bibfield{year}). The starred variant includes the \bibfield{extradate} information, if any. \cmditem{citeurl}[prenote][postnote]{key} @@ -4329,11 +4363,11 @@ consists of three entries and the entry key of the first one also serves as iden \mcite{<<set1>>,*glashow,*salam,*weinberg} \end{ltxexample} % -Once defined, an entry set is handled like any regular entry in a \file{bib} file. When using one of the \texttt{numeric} styles which ship with \texttt{biblatex} and activating its \opt{subentry} option, it is even possible to refer to set members. See \tabref{use:cit:mct:tab2} for some examples. Restating the original definition of the set is redundant, but permissible. In contrast to \sty{mciteplus}, however, restating a part of the original definition is invalid. Use the entry key of the set instead. +Once defined, an entry set is handled like any regular entry in a \file{bib} file. When using one of the \texttt{numeric} styles which come with \texttt{biblatex} and activating its \opt{subentry} option, it is even possible to refer to set members. See \tabref{use:cit:mct:tab2} for some examples. Restating the original definition of the set is redundant, but permissible. In contrast to \sty{mciteplus}, however, restating a part of the original definition is invalid. Use the entry key of the set instead. \begin{table} \tablesetup -\begin{tabular}{@{}V{0.5\textwidth}@{}V{0.1\textwidth}@{}p{0.4\textwidth}@{}} +\begin{tabular}{@{}V{0.6\textwidth}@{}V{0.1\textwidth}@{}p{0.3\textwidth}@{}} \toprule \multicolumn{1}{@{}H}{Input} & \multicolumn{1}{@{}H}{Output} & @@ -4401,6 +4435,17 @@ list of key names. The keys listed in \secref{aut:lng:key} are defined by defaul \end{ltxsyntax} +\subsection{Entry Querying Commands} +\label{use:eq} +The commands in this section are user-facing equivalents of the identically-named commands in section \secref{aut:aux:tst}. They can be used to test for the presence and attributes of specific bibliography entries. See section \secref{aut:aux:tst} for usage. + +\begin{ltxsyntax} +\cmditem{ifentryseen}{entrykey}{true}{false} +\cmditem{ifentryinbib}{entrykey}{true}{false} +\cmditem{ifentrycategory}{entrykey}{category}{true}{false} +\cmditem{ifentrykeyword}{entrykey}{keyword}{true}{false} +\end{ltxsyntax} + \subsection{Formatting Commands} \label{use:fmt} @@ -4441,7 +4486,7 @@ This delimiter controls the spacing between the elements which make up a name pa This delimiter is inserted between the elements which make up a name part where \cmd{bibnamedelima} does not apply. The default definition is an interword space penalized by the value of the \cnt{lownamepenalty} counter (\secref{use:fmt:len}). Please refer to \secref{use:cav:nam} for further details. \csitem{bibnamedelimc} -This delimiter controls the spacing between name parts. It is inserted between the name prefix and the last name if \kvopt{useprefix}{true}. The default definition is an interword space penalized by the value of the \cnt{highnamepenalty} counter (\secref{use:fmt:len}). Please refer to \secref{use:cav:nam} for further details. +This delimiter controls the spacing between name parts. It is inserted between the name prefix and the family name if \kvopt{useprefix}{true}. The default definition is an interword space penalized by the value of the \cnt{highnamepenalty} counter (\secref{use:fmt:len}). Please refer to \secref{use:cav:nam} for further details. \csitem{bibnamedelimd} This delimiter is inserted between all name parts where \cmd{bibnamedelimc} does not apply. The default definition is an interword space penalized by the value of the \cnt{lownamepenalty} counter (\secref{use:fmt:len}). Please refer to \secref{use:cav:nam} for further details. @@ -4483,7 +4528,7 @@ Replaces \cmd{bibinitdelim} in the index. Replaces \cmd{bibinithyphendelim} in the index. \csitem{revsdnamepunct} -The punctuation to be printed between the first and last name parts when a name is reversed. Here is an example showing a name with the default comma as \cmd{revsdnamedelim}: +The punctuation to be printed between the first and family name parts when a name is reversed. Here is an example showing a name with the default comma as \cmd{revsdnamedelim}: \begin{ltxexample} Jones<<,>> Edward @@ -4495,7 +4540,7 @@ This command should be used with \cmd{bibnamedelimd} as a reversed-name separato The dash to be used as a replacement for recurrent authors or editors in the bibliography. The default is an <em> or an <en> dash, depending on the indentation of the list of references. \csitem{labelnamepunct} -The separator printed after the name used for alphabetizing in the bibliography (\bibfield{author} or \bibfield{editor}, if the \bibfield{author} field is undefined). With the default styles, this separator replaces \cmd{newunitpunct} at this location. The default definition is \cmd{newunitpunct}, \ie it is not handled differently from regular unit punctuation. +The separator printed after the name used for alphabetizing in the bibliography (\bibfield{author} or \bibfield{editor}, if the \bibfield{author} field is undefined). With the default styles, this separator replaces \cmd{newunitpunct} at this location. The default definition is \cmd{newunitpunct}, \ie it is not handled differently from regular unit punctuation. See also \cmd{nametitledelim} \secref{use:fmt:csd}. \csitem{subtitlepunct} The separator printed between the fields \bibfield{title} and \bibfield{subtitle}, \bibfield{booktitle} and \bibfield{booksubtitle}, as well as \bibfield{maintitle} and \bibfield{mainsubtitle}. With the default styles, this separator replaces \cmd{newunitpunct} at this location. The default definition is \cmd{newunitpunct}, \ie it is not handled differently from regular unit punctuation. @@ -4509,10 +4554,10 @@ The separator printed before the \bibfield{pages} field. The default is a comma \csitem{bibpagerefpunct} The separator printed before the \bibfield{pageref} field. The default is an interword space. -\csitem{multinamedelim} +\csitem{multinamedelim}\CSdelimMark The delimiter printed between multiple items in a name list like \bibfield{author} or \bibfield{editor} if there are more than two names in the list. The default is a comma plus an interword space. See \cmd{finalnamedelim} for an example.\footnote{Note that \cmd{multinamedelim} is not used at all if there are only two names in the list. In this case, the default styles use the \cmd{finalnamedelim}.} -\csitem{finalnamedelim} +\csitem{finalnamedelim}\CSdelimMark The delimiter printed instead of \cmd{multinamedelim} before the final name in a name list. The default is the localised term <and>, separated by interword spaces. Here is an example: \begin{ltxexample} @@ -4522,7 +4567,7 @@ Edward Jones <<and>> Joe Williams % The comma in the first example is the \cmd{multinamedelim} whereas the string <and> in both examples is the \cmd{finalnamedelim}. See also \cmd{finalandcomma} in \secref{use:fmt:lng}. -\csitem{revsdnamedelim} +\csitem{revsdnamedelim}\CSdelimMark An extra delimiter printed after the first name in a name list if the first name is reversed (only in lists with two names). The default is an empty string, \ie no extra delimiter will be printed. Here is an example showing a name list with a comma as \cmd{revsdnamedelim}: \begin{ltxexample} @@ -4531,16 +4576,16 @@ Jones, Edward<<, and>> Joe Williams % In this example, the comma after <Edward> is the \cmd{revsdnamedelim} whereas the string <and> is the \cmd{finalnamedelim}, printed in addition to the former. -\csitem{andothersdelim} +\csitem{andothersdelim}\CSdelimMark The delimiter printed before the localisation string <\texttt{andothers}> if a name list like \bibfield{author} or \bibfield{editor} is truncated. The default is an interword space. -\csitem{multilistdelim} +\csitem{multilistdelim}\CSdelimMark The delimiter printed between multiple items in a literal list like \bibfield{publisher} or \bibfield{location} if there are more than two items in the list. The default is a comma plus an interword space. See \cmd{multinamedelim} for further explanation. -\csitem{finallistdelim} +\csitem{finallistdelim}\CSdelimMark The delimiter printed instead of \cmd{multilistdelim} before the final item in a literal list. The default is the localised term <and>, separated by interword spaces. See \cmd{finalnamedelim} for further explanation. -\csitem{andmoredelim} +\csitem{andmoredelim}\CSdelimMark The delimiter printed before the localisation string <\texttt{andmore}> if a literal list like \bibfield{publisher} or \bibfield{location} is truncated. The default is an interword space. \csitem{multicitedelim} @@ -4597,6 +4642,15 @@ The delimiter printed between the name\slash title and the label by alphabetic a \csitem{nonameyeardelim}\CSdelimMark The delimiter printed between the substitute for the labelname when it does not exist (usually the label or title in standard styles) and the year in author-year citation styles. This is only used when there is no labelname since when the labelname exists, \cmd{nameyeardelim} is used. The default definition is an interword space. +\csitem{authortypedelim}\CSdelimMark +The delimiter printed between the author and the \texttt{authortype}. + +\csitem{editortypedelim}\CSdelimMark +The delimiter printed between the editor and the \texttt{editor} or \texttt{editortype} string. + +\csitem{translatortypedelim}\CSdelimMark +The delimiter printed between the translator and the \texttt{translator} string. + \csitem{labelalphaothers} A string to be appended to the non"=numeric portion of the \bibfield{labelalpha} field (\ie the field holding the citation label used by alphabetic citation styles) if the number of authors\slash editors exceeds the \opt{maxalphanames} threshold or the \bibfield{author}\slash \bibfield{editor} list was truncated in the \file{bib} file with the keyword <\texttt{and others}>. This will typically be a single character such as a plus sign or an asterisk. The default is a plus sign. This command may also be redefined to an empty string to disable this feature. In any case, it must be redefined in the preamble. @@ -4673,6 +4727,12 @@ The delimiters described in \secref{use:fmt:fmt} are globally defined. That is, Declares the delimiter macros in the comma"=separated list \prm{names} with the replacement test \prm{code}. If the optional comma"=separated list of \prm{contexts} is given, declare the \prm{names} only for those contexts. \prm{names} defined without any \prm{contexts} behave just like the global delimiter definitions which \cmd{newcommand} gives---just a plain macro with a replacement which can be used as \cmd{name}. However, you can also call delimiter macros defined in this way by using \cmd{printdelim}, which is context-aware. The starred version clears all \prm{context} specific declarations for all \prm{names} first. +\cmditem{DeclareDelimAlias}{alias}{delim} +\cmditem*{DeclareDelimAlias}*[context, \dots]{alias}{delim} + +Declares \prm{alias} to be an alias for the delimiter \prm{delim}. The assigment is valid for all existing contexts of \prm{alias}. +The starred version assigns the alias for the given \opt{contexts} only---if the optional argument is empty, assigment is for the global/empty context. + \cmditem{printdelim}[context]{name} Prints a delimiter with name \prm{name}, locally establishing a optional \prm{context} first. Without the optional \prm{context}, \cmd{printdelim} uses the currently active delimiter context. @@ -4932,7 +4992,7 @@ Similar to \cmd{nohyphenation} but restricted to the \prm{text} argument. \cmditem{mknumalph}{integer} -Takes an integer in the range 1--702 as its argument and converts it to a string as follows: 1=a, \textellipsis, 26=z, 27=aa, \textellipsis, 702=zz. This is intended for use in formatting directives for the \bibfield{extrayear} and \bibfield{extraalpha} fields. +Takes an integer in the range 1--702 as its argument and converts it to a string as follows: 1=a, \textellipsis, 26=z, 27=aa, \textellipsis, 702=zz. This is intended for use in formatting directives for the \bibfield{extradate} and \bibfield{extraalpha} fields. \cmditem{mkbibacro}{text} @@ -4967,6 +5027,11 @@ This will yield <Œuvres> or <œuvres>. The facilities discussed in this section are specific to certain localisation modules. +\subsubsection{Bulgarian} +\label{use:loc:bul} + +Like the Greek localisation module, the Bulgarian module also requires \utf support. It will not work with any other encoding. + \subsubsection{American} \label{use:loc:us} @@ -5265,7 +5330,7 @@ The handling of the headings is different from \cmd{bibbysection} and \cmd{bibby \subsubsection{Entry Sets} \label{use:use:set} -An entry set is a group of entries which are cited as a single reference and listed as a single item in the bibliography. The individual entries in the set are separated by \cmd{entrysetpunct} (\secref{aut:fmt:fmt}). The \biblatex package supports two types of entry sets. Static entry sets are defined in the \file{bib} file like any other entry. Dynamic entry sets are defined with \cmd{defbibentryset} (\secref{use:bib:set}) on a per-document\slash per-refsection basis in the document preamble or the document body. This section deals with the definition of entry sets; style authors should also see \secref{aut:cav:set} for further information. +An entry set is a group of entries which are cited as a single reference and listed as a single item in the bibliography. The individual entries in the set are separated by \cmd{entrysetpunct} (\secref{aut:fmt:fmt}). The \biblatex package supports two types of entry sets. Static entry sets are defined in the \file{bib} file like any other entry. Dynamic entry sets are defined with \cmd{defbibentryset} (\secref{use:bib:set}) on a per-document\slash per-refsection basis in the document preamble or the document body. This section deals with the definition of entry sets; style authors should also see \secref{aut:cav:set} for further information. Please note that entry sets only make sense for styles which refer to entries by labels such as the provided \texttt{numeric} and \texttt{alphabetic} styles. Styles which refer to entries via names, titles etc. (\texttt{authoryear}, \texttt{authortitle}, \texttt{verbose} etc.) rarely employ sets and do not support them by default when they are cited directly. Custom styles may of course choose to implement some manner of set citation support in any manner they choose. \paragraph{Static entry sets} @@ -5277,7 +5342,7 @@ Static entry sets are defined in the \file{bib} file like any other entry. Defin } \end{lstlisting} % -Entries may be part of a set in one document\slash refsection and stand-alone references in another one, depending on the presence of the \bibtype{set} entry. If the \bibtype{set} entry is cited, the set members are grouped automatically. If not, they will work like any regular entry. +Entries may be part of a set in one document\slash refsection and stand-alone references in another one, depending on the presence of the \bibtype{set} entry. If the \bibtype{set} entry is cited, the set members are grouped automatically. If not, they will work like any regular entry. Note that with \bibtex as the backend, there must also be an \bibfield{entryset} field in the set members which point to the set parent. With \biber, this is not necessary. \paragraph[Dynamic entry sets]{Dynamic entry sets} @@ -5418,9 +5483,9 @@ Styles which print the fields \bibfield{abstract} and\slash or \bibfield{annotat \begin{ltxexample}[style=bibtex] @Article{key1, ... - abstract = {This is an abstract of entry `key1'.} + abstract = {This is an abstract of entry `key1'.} } -\end{lstlisting} +\end{ltxexample} % in the \file{bib} file, you may create a file named \path{bibabstract-key1.tex} and put the abstract in this file: @@ -5987,13 +6052,24 @@ Names depend on the datamodel constant <nameparts> which has the default definit % 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: +Inside name formats, the nameparts constant declaration makes available two or three macros for each name part defined in the datamodel: \begin{ltxexample} -\namepart<namepart> -\namepart<namepart>i +\namepart<namepart> \% The full <namepart> +\namepart<namepart>i \% The initials of the <namepart> +\namepart<namepart>un \% Numeric value indicating uniqueness level for <namepart> \end{ltxexample} % +\cmd{namepart<namepart>un} only exists if the package option \opt{uniquename} is not set to <false> and can take the following values. + +\begin{argumentlist}{00} +\item[0] <namepart> was not used in disambiguating the name (because \opt{disambiguation=none} was set in \cmd{DeclareUniquenameTemplate}, see \secref{aut:cav:amb}). In this case the style should decide what to print for this <namepart> +\item[1] Initials only should be printed for <namepart> to ensure uniqueness according to the \opt{uniquename} package option setting +\item[2] The full <namepart> should be printed to ensure uniqueness according to the \opt{uniquename} package option setting +\end{argumentlist} + +Note these per-namepart uniqueness macros are essentially an override of the \opt{uniquename} value (see \secref{aut:aux:tst}) for the name as a whole. Styles can choose to use either the less granular \opt{uniquename} value or the more detailed per-namepart values. Usually the general \opt{uniquename} value is enough for ordinary Western names but the more granular information per-namepart is provided to allow sophisticated name uniqueness processing for more complex name schemata. + The name formatting directive is executed once for each name in the name list. Here is an example: \begin{ltxexample} @@ -6008,7 +6084,7 @@ The name formatting directive is executed once for each name in the name list. H {}} \end{ltxexample} % -The above directive reverses the name of the first author («Last, First») and prints the remaining names in their regular sequence («First Last»). Note that the only component which is guaranteed to be available is the last name, hence we have to check which parts of the name are actually present. If a certain name part is not available, the corresponding macro will be empty. As with directives for literal lists, the separator to be inserted between the individual items in the name list is also handled by the formatting directive, hence we have to check whether we are in the middle of the list or at the end when inserting it. This is what the second \cmd{ifthenelse} test does. +The above directive reverses the name of the first author («Family, Given») and prints the remaining names in their regular sequence («Given Family»). Note that the only component which is guaranteed to be available is the family name, hence we have to check which parts of the name are actually present. If a certain name part is not available, the corresponding macro will be empty. As with directives for literal lists, the separator to be inserted between the individual items in the name list is also handled by the formatting directive, hence we have to check whether we are in the middle of the list or at the end when inserting it. This is what the second \cmd{ifthenelse} test does. \subsubsection{Special Fields} \label{aut:bbx:fld} @@ -6045,9 +6121,11 @@ but would additionally have the field \bibfield{dateunspecified} set to <yearinc 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. -\fielditem{childentrykey}{string} +\fielditem{childentrykey}{string}\DeprecatedMark -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. +This field is no longer necessary or recommended. For backwards +compatibility, it is merely a copy of the \bibfield{entrykey} field in any +set children. \fielditem{labelnamesource}{literal} @@ -6092,9 +6170,11 @@ Normally holds the prefix coming before <date> of the date field name chosen by The entry type (\bibtype{book}, \bibtype{inbook}, etc.), given in lowercase letters. -\fielditem{childentrytype}{string} +\fielditem{childentrytype}{string}\DeprecatedMark -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{entrytype} field holds the entry type of the parent. The entry type of the child entry being cited is provided in the \bibfield{childentrytype} field. This field is only available when citing a subentry of an entry set. +This field is no longer necessary or recommended. For backwards +compatibility, it is merely a copy of the \bibfield{entrytype} field in any +set children. \fielditem{entrysetcount}{integer} @@ -6106,12 +6186,23 @@ This field is special in that it is only available locally in name formatting di \fielditem{namehash}{string} -A hash string which uniquely identifies the \bibfield{labelname} list. This is useful for recurrence checks. For example, a citation style which replaces recurrent authors or editors with a string like <idem> could save the \bibfield{namehash} field with \cmd{savefield} and use it in a comparison with \cmd{iffieldequals} later (see \secref{aut:aux:dat, aut:aux:tst}). The \bibfield{namehash} is derived from the truncated \bibfield{labelname} list, \ie it is responsive to \opt{maxnames} and \opt{minnames}. See also \bibfield{hash} and \bibfield{fullhash}. +A hash string which uniquely identifies the \bibfield{labelname} list. This is useful for recurrence checks. For example, a citation style which replaces recurrent authors or editors with a string like <idem> could save the \bibfield{namehash} field with \cmd{savefield} and use it in a comparison with \cmd{iffieldequals} later (see \secref{aut:aux:dat, aut:aux:tst}). The \bibfield{namehash} is derived from the truncated \bibfield{labelname} list, \ie it is responsive to \opt{maxcitenames} and \opt{mincitenames}. See also \bibfield{hash} and \bibfield{fullhash}. + +\fielditem{bibnamehash}{string} + +As \bibfield{namehash} but responsive to \opt{maxbibnames} and +\opt{minbibnames}. This is not used in standard styles but may be used to +make tests in bibliography lists (such as those used to determine whether +dashes should replace repeated authors) behave differently. \fielditem{$<$namelist$>$namehash}{string} As \bibfield{namehash} for the name list called <namelist>. +\fielditem{$<$namelist$>$bibnamehash}{string} + +As \bibfield{bibnamehash} for the name list called <namelist>. + \fielditem{fullhash}{string} A hash string which uniquely identifies the \bibfield{labelname} list. This fields differs from \bibfield{namehash} in two details: 1) The \bibfield{shortauthor} and \bibfield{shorteditor} lists are ignored when generating the hash. 2) The hash always refers to the full list, ignoring \opt{maxnames} and \opt{minnames}. See also \bibfield{hash} and \bibfield{namehash}. @@ -6137,6 +6228,9 @@ This field holds a hash of the (locale-specific) Unicode Collation Algorithm pri This field holds the entry key of the entry from which an entry was cloned. Clones are created for entries which are mentioned in \bibfield{related} fields as part of related entry processing, for example. +\fielditem{urlraw}{verbatim} + +This is the unencoded, raw version of any \bibfield{url}. This is intended for use when the display version and clickable link version of a URL are different. This can be the case when the URL contains special or Unicode characters. In the case where no such characters occur, may be identical to the \bibfield{url}. \end{fieldlist} \paragraph{Fields for Use in Citation Labels} @@ -6150,7 +6244,7 @@ A label similar to the labels generated by the \path{alpha.bst} style of traditi \fielditem{extraalpha}{integer} -The <alphabetic> citation scheme usually requires a letter to be appended to the label 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{extraalpha} field holds an integer which may be converted to a letter with \cmd{mknumalph} or formatted in some other way. This field is similar to the role of \bibfield{extrayear} in the author"=year scheme. A complete <alphabetic> label consists of the fields \bibfield{labelalpha} plus \bibfield{extraalpha}. Note that the \bibfield{labelalpha} and \bibfield{extraalpha} fields need to be requested with the package option \opt{labelalpha}, see \secref{use:opt:pre:int} for details. See also \bibfield{labelalpha} as well as \cmd{labelalphaothers} in \secref{use:fmt:fmt}. Table \ref{use:opt:tab1} summarises the various \opt{extra*} disambiguation counters and what they track. +The <alphabetic> citation scheme usually requires a letter to be appended to the label 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{extraalpha} field holds an integer which may be converted to a letter with \cmd{mknumalph} or formatted in some other way. This field is similar to the role of \bibfield{extradate} in the author"=year scheme. A complete <alphabetic> label consists of the fields \bibfield{labelalpha} plus \bibfield{extraalpha}. Note that the \bibfield{labelalpha} and \bibfield{extraalpha} fields need to be requested with the package option \opt{labelalpha}, see \secref{use:opt:pre:int} for details. See also \bibfield{labelalpha} as well as \cmd{labelalphaothers} in \secref{use:fmt:fmt}. Table \ref{use:opt:tab1} summarises the various \opt{extra*} disambiguation counters and what they track. \listitem{labelname}{name} @@ -6179,7 +6273,7 @@ It is sometimes useful, for example in author"=title citation schemes, to be abl \fielditem{labelyear}{literal} -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}. +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{extradate}. Note that the \bibfield{labelyear} and \bibfield{extradate} fields need to be requested with the package option \opt{labeldateparts}, see \secref{use:opt:pre:int} for details. See also \bibfield{extradate}. \fielditem{labelendyear}{literal} @@ -6201,9 +6295,13 @@ The month of the date field selected by \cmd{DeclareLabeldate} (\secref{aut:ctm: 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} +\fielditem{extradate}{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{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. +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{extradate} 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{extradate}. Note that the \bibfield{labelyear} and \bibfield{extradate} 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. + +\fielditem{extradatescope}{literal} + +This field contains the name of the most specific field which determined the value of \bibfield{extradate}. It is not used by the standard styles but may be useful in controlling the placement of the \bibfield{extradate} field value. \end{fieldlist} @@ -6763,6 +6861,23 @@ deprecated item must no longer be defined in the datamodel for this work; \prm{field}, \prm{list} or \prm{name} cannot be listed anywhere as an argument to \cmd{DeclareDatamodelFields}. +\cmditem{DeprecateFieldWithReplacement}{field}{replacement} +\cmditem{DeprecateListWithReplacement}{list}{replacement} +\cmditem{DeprecateNameWithReplacement}{name}{replacement} + +Similar to \cmd{DeprecateField}, \cmd{DeprecateList} and \cmd{DeprecateName}. +The commands do not only issue a deprecation warning, +they try to define a replacement for the deprecated field +that is printed in its stead. +The \cmd{replacement} must be of the same type as the deprecated +\prm{field}, \prm{list} or \prm{name}. +If the formatting of \prm{replacement} should be applied when printing +the deprecated field, that needs to be requested with \cmd{DeclareFieldAlias} +(see \secref{aut:bib:fmt}). +Note that the deprecated item must no longer be defined in the datamodel +for this work; \prm{field}, \prm{list} or \prm{name} cannot be listed +anywhere as an argument to \cmd{DeclareDatamodelFields}. + \cmditem{printfield}[format]{field} This command prints a \prm{field} using the formatting directive \prm{format}, as defined with \cmd{DeclareFieldFormat}. If a type"=specific \prm{format} has been declared, the type"=specific formatting directive takes precedence over the generic one. If the \prm{field} is undefined, nothing is printed. If the \prm{format} is omitted, \cmd{printfield} tries using the name of the field as a format name. For example, if the \bibfield{title} field is to be printed and the \prm{format} is not specified, it will try to use the field format \texttt{title}.\footnote{In other words, \texttt{\textbackslash printfield\{title\}} is equivalent to \texttt{\textbackslash printfield[title]\{title\}}.} In this case, any type"=specific formatting directive will also take precedence over the generic one. If all of these formats are undefined, it falls back to \texttt{default} as a last resort. Note that \cmd{printfield} provides the name of the field currently being processed in \cmd{currentfield} for use in field formatting directives. @@ -6809,7 +6924,7 @@ This command prints the date of the entry, as specified in the fields \bibfield{ \csitem{printdateextra} -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. +Similar to \cmd{printdate} but incorporates the \bibfield{extradate} field in the date specification. This is useful for bibliography styles designed for author-year citations. \csitem{printlabeldate} @@ -6817,7 +6932,7 @@ Similar to \cmd{printdate} but prints the date field determined by \cmd{DeclareL \csitem{printlabeldateextra} -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. +Similar to \cmd{printlabeldate} but incorporates the \bibfield{extradate} field in the date specification. This is useful for bibliography styles designed for author-year citations. \csitem{print$<$datetype$>$date} @@ -6884,12 +6999,13 @@ This section introduces the commands used to define the formatting directives re \cmditem{DeclareFieldFormat}[entrytype, \dots]{format}{code} \cmditem*{DeclareFieldFormat}*{format}{code} -Defines the field format \prm{format}. This formatting directive is arbitrary \prm{code} to be executed by \cmd{printfield}. The value of the field will be passed to the \prm{code} as its first and only argument. The name of the field currently being processed is available to the \prm{code} as \cmd{currentfield}. If an \prm{entrytype} is specified, the format is specific to that type. The \prm{entrytype} argument may be a comma"=separated list of values. The starred variant of this command is similar to the regular version, except that all type-specific formats are cleared. +Defines the field format \prm{format}. This formatting directive is arbitrary \prm{code} to be executed by \cmd{printfield}. The value of the field will be passed to the \prm{code} as its first and only argument. The name of the field currently being processed is available to the \prm{code} as \cmd{currentfield}. If an \prm{entrytype} is specified, the format is specific to that type. The \prm{entrytype} argument may be a comma"=separated list of values. The starred variant of this command is similar to the regular version, except that all type-specific formats are cleared. \emph{Do not put any whitespace between the arguments to this macro as the definitions are quite complex and you will get unexpected results}. \cmditem{DeclareListFormat}[entrytype, \dots]{format}{code} \cmditem*{DeclareListFormat}*{format}{code} -Defines the literal list format \prm{format}. This formatting directive is arbitrary \prm{code} to be executed for every item in a list processed by \cmd{printlist}. The current item will be passed to the \prm{code} as its first and only argument. The name of the literal list currently being processed is available to the \prm{code} as \cmd{currentlist}. If an \prm{entrytype} is specified, the format is specific to that type. The \prm{entrytype} argument may be a comma"=separated list of values. Note that the formatting directive also handles the punctuation to be inserted between the individual items in the list. You need to check whether you are in the middle of or at the end of the list, \ie whether \cnt{listcount} is smaller than or equal to \cnt{liststop}. The starred variant of this command is similar to the regular version, except that all type-specific formats are cleared. +Defines the literal list format \prm{format}. This formatting directive is arbitrary \prm{code} to be executed for every item in a list processed by \cmd{printlist}. The current item will be passed to the \prm{code} as its first and only argument. The name of the literal list currently being processed is available to the \prm{code} as \cmd{currentlist}. If an \prm{entrytype} is specified, the format is specific to that type. The \prm{entrytype} argument may be a comma"=separated list of values. Note that the formatting directive also handles the punctuation to be inserted between the individual items in the list. You need to check whether you are in the middle of or at the end of the list, \ie whether \cnt{listcount} is smaller than or equal to \cnt{liststop}. The starred variant of this command is similar to the regular version, except that all type-specific formats are cleared. \emph{Do not put any whitespace between the arguments to this macro as the definitions are quite complex and you will get unexpected results}. + \cmditem{DeclareNameFormat}[entrytype, \dots]{format}{code} \cmditem*{DeclareNameFormat}*{format}{code} @@ -6916,7 +7032,7 @@ The value of the datamodel <nameparts> constant (see \secref{aut:bbx:drv}) creat \namepartgiveni \end{ltxexample} % -If a certain part of a name is not available, the corresponding macro will be empty, hence you may use, for example, the \sty{etoolbox} tests like \cmd{ifdefvoid} to check for the individual parts of a name. The name of the name list currently being processed is available to the \prm{code} as \cmd{currentname}. Note that the formatting directive also handles the punctuation to be inserted between separate names and between the individual parts of a name. You need to check whether you are in the middle of or at the end of the list, \ie whether \cnt{listcount} is smaller than or equal to \cnt{liststop}. See also \secref{use:cav:nam}. The starred variant of this command is similar to the regular version, except that all type-specific formats are cleared. +If a certain part of a name is not available, the corresponding macro will be empty, hence you may use, for example, the \sty{etoolbox} tests like \cmd{ifdefvoid} to check for the individual parts of a name. The name of the name list currently being processed is available to the \prm{code} as \cmd{currentname}. Note that the formatting directive also handles the punctuation to be inserted between separate names and between the individual parts of a name. You need to check whether you are in the middle of or at the end of the list, \ie whether \cnt{listcount} is smaller than or equal to \cnt{liststop}. See also \secref{use:cav:nam}. The starred variant of this command is similar to the regular version, except that all type-specific formats are cleared. \emph{Do not put any whitespace between the arguments to this macro as the definitions are quite complex and you will get unexpected results}. \cmditem{DeclareIndexFieldFormat}[entrytype, \dots]{format}{code} \cmditem*{DeclareIndexFieldFormat}*{format}{code} @@ -7535,7 +7651,7 @@ Any entry which is not a \bibtype{book} or \bibtype{article} will be ignored. } \end{ltxexample} % -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. +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{extradate}. 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\ 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: @@ -7823,7 +7939,7 @@ Alphabetic styles use a label to identify bibliography entries. This label is co \begin{ltxsyntax} -\cmditem{DeclareLabelalphaTemplate}[entrytype, \dots]{specification} +\cmditem{DeclareLabelalphaTemplate}[]{specification} Defines the alphabetic label template for the given entrytypes. If no entrytypes are specified in the first argument, then the global label template is defined. The \prm{specification} is an undelimited list of \cmd{labelelement} directives which specify the elements used to build the label. 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. @@ -7928,13 +8044,15 @@ When a name list \cmd{field} is specified, the method of extracting the string i \begin{ltxsyntax} -\cmditem{DeclareLabelalphaNameTemplate}[entrytype, \dots]{specification} +\cmditem{DeclareLabelalphaNameTemplate}[name]{specification} + +Defines the \opt{labelalphaname} template \prm{name}. The \prm{name} is optional and defaults to \prm{<global>}. -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. +Such templates specify how to extract a label string from a name list when a \cmd{field} specification in \cmd{DeclareLabelalphaTemplate} contains a name list. \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: +\prm{namepart} is one of the datamodel nameparts defined with the \cmd{DeclareDatamodelConstant} command (see \secref{aut:bbx:drv}). The \prm{options} are: \begin{optionlist*} @@ -8202,19 +8320,19 @@ this setting is only taken into account when using fixed-width substrings \subsubsection{Sorting} \label{aut:ctm:srt} -In addition to the predefined sorting schemes discussed in \secref{use:srt}, it is possible to define new ones or modify the default definitions. The sorting process may be customized further by excluding certain fields from sorting on a per-type basis and by automatically populating the \bibfield{presort} field on a per-type basis. +In addition to the predefined sorting templates discussed in \secref{use:srt}, it is possible to define new ones or modify the default definitions. The sorting process may be customized further by excluding certain fields from sorting on a per-type basis and by automatically populating the \bibfield{presort} field on a per-type basis. \begin{ltxsyntax} -\cmditem{DeclareSortingScheme}[options]{name}{specification} +\cmditem{DeclareSortingTemplate}[options]{name}{specification} -Defines the sorting scheme \prm{name}. The \prm{name} is the identifier passed to the \opt{sorting} option (\secref{use:opt:pre:gen}) when selecting the sorting scheme. The \cmd{DeclareSortingScheme} command supports the following optional arguments: +Defines the sorting template \prm{name}. The \prm{name} is the identifier passed to the \opt{sorting} option (\secref{use:opt:pre:gen}) when selecting the sorting template. The \cmd{DeclareSortingTemplate} command supports the following optional arguments: \begin{optionlist*} \choitem{locale}{\prm{locale}} -The locale for the sorting scheme which then overrides the global sorting locale in the \opt{sortlocale} option discussed in \secref{use:opt:pre:gen}. +The locale for the sorting template which then overrides the global sorting locale in the \opt{sortlocale} option discussed in \secref{use:opt:pre:gen}. \end{optionlist*} @@ -8228,7 +8346,7 @@ Specifies the elements considered in the sorting process. The \prm{elements} are \choitem{locale}{\prm{locale}} -Override the locale used for sorting at the level of a particular set of sorting elements. If specified, the locale overrides the locale set at the level of \cmd{DeclareSortingScheme} and also the global setting. See also the discussion of the global sorting locale option \opt{sortlocale} in \secref{use:opt:pre:gen}. +Override the locale used for sorting at the level of a particular set of sorting elements. If specified, the locale overrides the locale set at the level of \cmd{DeclareSortingTemplate} and also the global setting. See also the discussion of the global sorting locale option \opt{sortlocale} in \secref{use:opt:pre:gen}. \choitem[ascending]{direction}{ascending, descending} @@ -8288,10 +8406,10 @@ The \cmd{citeorder} element has a special meaning. It requests a sort based on t \cite{one,two} \end{ltxexample} % -there is a distinction between the lexical order and the semantic order. Here «one» and «two» have the same semantic order but a unique lexical order. The semantic order only matters if you specify further sorting to disambiguate entries with the same semantic order. For example, this is the definition of the \opt{none} sorting scheme: +there is a distinction between the lexical order and the semantic order. Here «one» and «two» have the same semantic order but a unique lexical order. The semantic order only matters if you specify further sorting to disambiguate entries with the same semantic order. For example, this is the definition of the \opt{none} sorting template: \begin{ltxexample} -\DeclareSortingScheme{none}{ +\DeclareSortingTemplate{none}{ \sort{\citeorder} } \end{ltxexample} @@ -8299,30 +8417,30 @@ there is a distinction between the lexical order and the semantic order. Here « This sorts the bibliography purely lexically by the order of the keys in the citation commands. In the example above, it sorts «one» before «two». However, suppose that you consider «one» and «two» to have the same order (semantic order) since they are cited at the same time and want to further sort these by year. Suppose «two» has an earlier \bibfield{year} than «one»: \begin{ltxexample} -\DeclareSortingScheme{noneyear}{ +\DeclareSortingTemplate{noneyear}{ \sort{\citeorder} \sort{<<year>>} } \end{ltxexample} % -This sorts «two» before «one», even though lexically, «one» would sort before «two». This is possible because the semantic order can be disambiguated by the further sorting on year. With the standard \opt{none} sorting scheme, the lexical order and semantic order are identical because there is nothing further to disambiguate them. This means that you can use \cmd{citeorder} just like any other sorting specification element, choosing how to further sort entries cited at the same time (in the same citation command). +This sorts «two» before «one», even though lexically, «one» would sort before «two». This is possible because the semantic order can be disambiguated by the further sorting on year. With the standard \opt{none} sorting template, the lexical order and semantic order are identical because there is nothing further to disambiguate them. This means that you can use \cmd{citeorder} just like any other sorting specification element, choosing how to further sort entries cited at the same time (in the same citation command). -\cmditem{DeclareSortingNamekeyScheme}[schemename]{specification} +\cmditem{DeclareSortingNamekeyTemplate}[name]{specification} -Defines how the sorting keys for names are constructed. This can change the sorting order of names arbitrarily because you can choose how to put together the name parts when constructing the string to compare when sorting. The sorting key construction scheme so defined is called \prm{schemename} which defaults to «global» if this optional parameter is absent. When constructing the sorting key for a name, a sorting key for each name part is constructed and the key for each name is formed into an ordered key list with a special internal separator. The point of this option is to accommodate languages or situations where sorting of names needs to be customised (for example, Icelandic names are sometimes sorted by given names rather than by family names). This macro may be used multiple times to define schemes with different names which can then be referred to later. Sorting name key schemes can have the following scopes, in order of increasing precedence: +Defines how the sorting keys for names are constructed. This can change the sorting order of names arbitrarily because you can choose how to put together the name parts when constructing the string to compare when sorting. The sorting key construction template so defined is called \prm{name} which defaults to «global» if this optional parameter is absent. When constructing the sorting key for a name, a sorting key for each name part is constructed and the key for each name is formed into an ordered key list with a special internal separator. The point of this option is to accommodate languages or situations where sorting of names needs to be customised (for example, Icelandic names are sometimes sorted by given names rather than by family names). This macro may be used multiple times to define templates with different names which can then be referred to later. Sorting name key templates can be specified at the following scopes, in order of increasing precedence: \begin{itemize} -\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} -\item Given as a per-name option \opt{sortnamekeyscheme} +\item The default template defined without the optional name argument +\item Given as the \opt{sortingnamekeytemplate} option to a reference context (see \secref{use:bib:context}) +\item Given as a per-entry option \opt{sortnamekeytemplate} in a bibliography data source entry +\item Given as a per-namelist option \opt{sortnamekeytemplate} +\item Given as a per-name option \opt{sortnamekeytemplate} \end{itemize} -By default there is only a global scheme which has the following \prm{specification}: +By default there is only a global template which has the following \prm{specification}: \begin{ltxexample} -\DeclareSortingNamekeyScheme{ +\DeclareSortingNamekeyTemplate{ \keypart{ \namepart[use=true]{<<prefix>>} } @@ -8370,10 +8488,10 @@ constructing the sorting specification. \end{ltxsyntax} -As an example, suppose you wanted to be able to sort names by given name rather than family name, you could define a sorting name key scheme like this: +As an example, suppose you wanted to be able to sort names by given name rather than family name, you could define a sorting name key template like this: \begin{ltxexample} -\DeclareSortingNamekeyScheme[givenfirst]{ +\DeclareSortingNamekeyTemplate[givenfirst]{ \keypart{ \namepart{<<given>>} } @@ -8389,10 +8507,10 @@ As an example, suppose you wanted to be able to sort names by given name rather } \end{ltxexample} % -You can then use the name \opt{givenfirst} at the appropriate scope in order to make \biber use this scheme when constructing sorting name keys. For example, you could enable this for one bibliography list like this: +You can then use the name \opt{givenfirst} at the appropriate scope in order to make \biber use this template when constructing sorting name keys. For example, you could enable this for one bibliography list like this: \begin{ltxexample} -\begin{refcontext}[sortnamekeyscheme=givenfirst] +\begin{refcontext}[sortnamekeytemplate=givenfirst] \printbibliography \end{refcontext} \end{ltxexample} @@ -8401,7 +8519,7 @@ or perhaps you only want to do this for a particular entry: \begin{lstlisting}[style=bibtex]{} @BOOK{key, - OPTIONS = {sortnamekeyscheme=givenfirst}, + OPTIONS = {sortnamekeytemplate=givenfirst}, AUTHOR = {Arnar Vigfusson} } \end{lstlisting} @@ -8410,7 +8528,7 @@ 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} + AUTHOR = {sortnamekeytemplate=givenfirst and Arnar Vigfusson} } \end{lstlisting} % @@ -8419,14 +8537,14 @@ format which \biber supports (see \biber doc): \begin{lstlisting}[style=bibtex]{} @BOOK{key, - AUTHOR = {given=Arnar, family=Vigfusson, sortnamekeyscheme=givenfirst} + AUTHOR = {given=Arnar, family=Vigfusson, sortnamekeytemplate=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: +Now we give some examples of sorting templates. In the first example, we define a simple name\slash title\slash year template. 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} -\DeclareSortingScheme{sample}{ +\DeclareSortingTemplate{sample}{ \sort{ \field{<<author>>} \field{<<editor>>} @@ -8441,10 +8559,10 @@ Now we give some examples of sorting schemes. In the first example, we define a } \end{ltxexample} % -In the next example, we define the same scheme in a more elaborate way, considering special fields such as \bibfield{presort}, \bibfield{sortkey}, \bibfield{sortname}, etc. Since the \bibfield{sortkey} field specifies the master sort key, it needs to override all other elements except for \bibfield{presort}. This is indicated by the \opt{final} option. If the \bibfield{sortkey} field is available, processing will stop at this point. If not, the sorting routine continues with the next \cmd{sort} directive. This setup corresponds to the default definition of the \texttt{nty} scheme: +In the next example, we define the same template in a more elaborate way, considering special fields such as \bibfield{presort}, \bibfield{sortkey}, \bibfield{sortname}, etc. Since the \bibfield{sortkey} field specifies the master sort key, it needs to override all other elements except for \bibfield{presort}. This is indicated by the \opt{final} option. If the \bibfield{sortkey} field is available, processing will stop at this point. If not, the sorting routine continues with the next \cmd{sort} directive. This setup corresponds to the default definition of the \texttt{nty} template: \begin{ltxexample} -\DeclareSortingScheme{nty}{ +\DeclareSortingTemplate{nty}{ \sort{ \field{<<presort>>} } @@ -8470,10 +8588,10 @@ In the next example, we define the same scheme in a more elaborate way, consider } \end{ltxexample} % -Finally, here is an example of a sorting scheme which overrides the global sorting locale and additionally overrides again when sorting by the \bibfield{origtitle} field. Note the use in the scheme-level override of a babel/polyglossia language name instead of a real locale identifier. \biber will map this to a suitable, real locale identifier (in this case, \texttt{sv\_SE}): +Finally, here is an example of a sorting template which overrides the global sorting locale and additionally overrides again when sorting by the \bibfield{origtitle} field. Note the use in the template-level override of a babel/polyglossia language name instead of a real locale identifier. \biber will map this to a suitable, real locale identifier (in this case, \texttt{sv\_SE}): \begin{ltxexample} -\DeclareSortingScheme[locale=swedish]{custom}{ +\DeclareSortingTemplate[locale=swedish]{custom}{ \sort{ \field{<<sortname>>} \field{<<author>>} @@ -8510,7 +8628,7 @@ Specifies a string to be used to automatically populate the \bibfield{presort} f \cmditem{DeclareSortTranslit}[entrytype]{specification} Languages which can be written in different scripts or alphabets often only have CLDR sorting tailoring for one script and it is expected that you transliterate into the supported script for sorting purposes. A common example is Sanskrit which is often written in academic contexts in IAST -romanised script but which needs to be sorted in the <sa> locale which expects the Devanāgarī script. This means that it is necessary to transliterate into the sorting script internally. \cmd{DeclareSortTranslit} declares which parts of an entry you would like to transliterate for sorting purposes. Without the \prm{entrytype} parameter, the \prm{specification} applies to all entrytypes. The \prm{specification} is one or more \cmd{translit} commands: +romanised script but which needs to be sorted in the <sa> locale which expects the Devanāgarī script. Another common case is transliteration of Russian Cyrillic into Latin as defined by the ALA-LC standard. Such requirement means that it is necessary to transliterate into the sorting script internally. \cmd{DeclareSortTranslit} declares which parts of an entry you would like to transliterate for sorting purposes. Without the \prm{entrytype} parameter, the \prm{specification} applies to all entrytypes. The \prm{specification} is one or more \cmd{translit} commands: \cmditem{translit}{field or fieldset}{from}{to} @@ -8545,7 +8663,9 @@ An example of transliterating titles so that they sort correctly in Sanskrit: & Description\\ \midrule iast & devanagari & Sanskrit IAST\footnote{International Alphabet of Sanskrit Transliteration} to Devanāgarī\\ -\bottomrule +russian & ala-lc & ALA-LC\footnote{American Library Association---Library of Congress} romanisation for Russian\\ +russian & bgn/pcgn-standard & BGN/PCGN:1947 (Standard Variant), Cyrillic to Latin, Russian\\ + \bottomrule \end{tabular} \caption{Valid transliteration pairs} \label{tab:translit} @@ -8742,6 +8862,121 @@ Defines the date components to consider when generating \bibfield{labelyear}, \b 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{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{DeclareExtradate}{specification} + +Defines how \biber tracks information used to construct the \bibfield{extradate} field. This field (see \secref{aut:bbx:fld:lab}) is printed to disambiguate works by the same author which occur in the same date scope. By default, the date scope is the year and so two works by the same author within the same year will have different \bibfield{extradate} values which are used to disambiguate the works in the bibliography in the usual manner seen in many authoryear type styles. The \prm{specification} is one or more \cmd{scope} specifications which can contain one or more \cmd{field} specifications. Within a \cmd{scope}, the existence of each \cmd{field} will be checked and if found, the first \cmd{field} is used and the rest are ignored. This allows a fallback in case certain fields are not available in all entries. All \cmd{scope}s are used to track information and \cmd{scope}s should be specified in decreasing order of generality (e.g. year then month then day etc) The default definition is: + +\begin{ltxexample} +\DeclareExtradate{% + \scope{ + \field{labelyear} + \field{year} + } +} +\end{ltxexample} +% +This means that the \bibfield{labelyear} field only (or \bibfield{year} if this does not exist) will be used to track works by the same author. With the following datasource entries: + +\begin{lstlisting}[style=bibtex]{} +@BOOK{extra1, + AUTHOR = {John Doe}, + DATE = {2001-01} +} + +@BOOK{extra2, + AUTHOR = {John Doe}, + DATE = {2001-02} +} +\end{lstlisting} +% +The default definition would result in: + +\begin{lstlisting}{} +Doe 2001a +Doe 2001b +\end{lstlisting} +% +Here, \bibfield{extradate} only considers the \bibfield((label)year) information and since this is identical, disambiguation is required. However, consider the following definition: +\begin{ltxexample} +\DeclareExtradate{% + \scope{ + \field{labelyear} + \field{year} + } + \scope{ + \field{labelmonth} + } +} +\end{ltxexample} +% +The result would be: +\begin{lstlisting}{} +Doe 2001 +Doe 2001 +\end{lstlisting} +% +If only years were printed, this would be ambiguous because \bibfield{extradate} now considers \bibfield{labelmonth} and since this differs, no disambiguation is necessary. Care should therefore be taken to synchronise the printed information with the \bibfield{extradate} disambiguation settings. Notice that the second definition is <month-in-year> disambiguation and quite different from: +\begin{ltxexample} +\DeclareExtradate{% + \scope{ + \field{labelmonth} + } +} +\end{ltxexample} +% +which is just plain <month> disambiguation which is very unlikely to be what you ever want to do since this disambiguation only based on month and ignores the year entirely. \bibfield{extradate} calculation should almost always be based on all information down to the resolution you require. For example, if you wish to disambiguate right down to the hour level (perhaps useful in large bibliographies of rapidly changing online material), you would specify something like this: +\begin{ltxexample} +\DeclareExtradate{% + \scope{ + \field{labelyear} + \field{year} + } + \scope{ + \field{labelmonth} + } + \scope{ + \field{labelday} + } + \scope{ + \field{labelhour} + } +} +\end{ltxexample} +% +Entries without the specified granularity of information will disambiguate at the lowest granularity they contain, so, for example, with: +\begin{ltxexample} +\DeclareExtradate{% + \scope{ + \field{labelyear} + \field{year} + } + \scope{ + \field{labelmonth} + } +} +\end{ltxexample} +% +\begin{lstlisting}[style=bibtex]{} +@BOOK{extra1, + AUTHOR = {John Doe}, + DATE = {2001} +} + +@BOOK{extra2, + AUTHOR = {John Doe}, + DATE = {2001} +} +\end{lstlisting} +% +The result would still be: + +\begin{lstlisting}{} +Doe 2001a +Doe 2001b +\end{lstlisting} +% +This command may only be used in the preamble. + \cmditem{DeclareLabeltitle}[entrytype, \dots]{specification} Defines the fields to consider when generating the \bibfield{labeltitle} field (see \secref{aut:bbx:fld:lab}). The \prm{specification} is an ordered list of \cmd{field} commands. The fields are checked in the order listed and the first field which is available will be used as \bibfield{labeltitle}. This is the default definition: @@ -9058,8 +9293,8 @@ As \cmd{if$<$datetype$>$julian} but for use in \cmd{mkbibdate*} formatting comma 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 +\item[bce]~BCE/BC era +\item[ce]~CE/AD era \end{description} This command is useful for determining whether to print the location @@ -9089,6 +9324,23 @@ As \cmd{if$<$datetype$>$dateuncertain} but for use in \cmd{mkbibdate*} formattin As \cmd{ifend$<$datetype$>$dateuncertain} but for use in \cmd{mkbibdate*} formatting commands (\secref{aut:fmt:lng}) inside which the appropriate \cmd{ifend$<$datetype$>$dateuncertain} command is aliased to this command. +\cmditem{iflabeldateisdate}{true}{false} + +Expands to \prm{true} if labeldate is defined and was obtained from date, and to \prm{false} otherwise. + +\cmditem{ifdatehasyearonlyprecision}{datetype}{true}{false} + +Expands to \prm{true} if the \prm{datetype}date is defined and would be shown with year precision \cmd{print$<$datetype$>$date}, and to false otherwise. + +\cmditem{ifdatehastime}{datetype}{true}{false} + +Expands to \prm{true} if the \prm{datetype}date is defined, has a time component and \opt{$<$datetype$>$dateusetime} is true, and to false otherwise. + +\cmditem{ifdateshavedifferentprecision}{datetype1}{datetype2}{true}{false} + +Expands to \prm{true} if the two dates \prm{datetype1} and \prm{datetype2} would show in different precision when printed with \cmd{print$<$datetype1$>$date} and \cmd{print$<$datetype2$>$date} respectively, and to \prm{false} otherwise. + + \cmditem{ifcaselang}[language]{true}{false} Expands to \prm{true} if the the optional \prm{language} is one of those @@ -9096,9 +9348,17 @@ declared by \cmd{DeclareCaseLangs} (see \secref{aut:aux:msc}) and to \prm{false} otherwise. Without the optional argument, checks the current value of \cmd{currentlang}. -\cmditem{ifsortnamekeyscheme}{string}{true}{false} +\cmditem{ifsortingnamekeytemplatename}{string}{true}{false} + +Expands to \prm{true} if the \prm{string} is equal to the current in scope sorting name key template name (see \ref{aut:ctm:srt}), and to \prm{false} otherwise. + +\cmditem{ifuniquenametemplatename}{string}{true}{false} + +Expands to \prm{true} if the \prm{string} is equal to the current in scope uniqueness name key template name (see \ref{aut:ctm:srt}), and to \prm{false} otherwise. -Expands to \prm{true} if the \prm{string} is equal to the current in scope sorting name key scheme name (see \ref{aut:ctm:srt}), and to \prm{false} otherwise. +\cmditem{iflabelalphanametemplatename}{string}{true}{false} + +Expands to \prm{true} if the \prm{string} is equal to the current in scope alphabetic label name template name (see \ref{aut:ctm:srt}), and to \prm{false} otherwise. \cmditem{iffieldundef}{field}{true}{false} @@ -9221,9 +9481,8 @@ Expands to \prm{true} if \bibfield{labelname} is empty and there is only one wor 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}. + +Expands to \prm{true} if there is only one work by the the primary (first) author name of \opt{labelname} and to \prm{false} otherwise. Only the base name parts of the author name are considered, as defined by \cmd{DeclareUniquenameTemplate} see \secref{aut:cav:amb}. 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}. \cmditem{ifandothers}{list}{true}{false} @@ -9255,7 +9514,7 @@ Executes \prm{true} if the \prm{keyword} is found in the \bibfield{keywords} fie \cmditem{ifentrykeyword}{entrykey}{keyword}{true}{false} -A variant of \cmd{ifkeyword} which takes an entry key as its first argument. This is useful for testing an entry other than the one currently processed. +A variant of \cmd{ifkeyword} which takes an entry key as its first argument. This is useful for testing an entry other than the one currently processed. A user-facing version of this command is available for use in documents see \secref{use:eq}. \cmditem{ifcategory}{category}{true}{false} @@ -9263,7 +9522,7 @@ Executes \prm{true} if the entry currently being processed has been assigned to \cmditem{ifentrycategory}{entrykey}{category}{true}{false} -A variant of \cmd{ifcategory} which takes an entry key as its first argument. This is useful for testing an entry other than the one currently processed. +A variant of \cmd{ifcategory} which takes an entry key as its first argument. This is useful for testing an entry other than the one currently processed. A user-facing version of this command is available for use in documents see \secref{use:eq} \cmditem{ifciteseen}{true}{false} @@ -9277,11 +9536,11 @@ A variant of \cmd{ifciteseen} which takes an entry key as its first argument. Si \ifentryseen{<<\thefield{xref}>>}{true}{false} \end{ltxexample} % -Apart from the additional argument, \cmd{ifentryseen} behaves like \cmd{ifciteseen}. +Apart from the additional argument, \cmd{ifentryseen} behaves like \cmd{ifciteseen}. A user-facing version of this command is available for use in documents see \secref{use:eq}. \cmditem{ifentryinbib}{entrykey}{true}{false} -Executes \prm{true} if the entry \prm{entrykey} appears in the current bibliography, and \prm{false} otherwise. This command is intended for use in bibliography styles. +Executes \prm{true} if the entry \prm{entrykey} appears in the current bibliography, and \prm{false} otherwise. A user-facing version of this command is available for use in documents see \secref{use:eq}. \cmditem{iffirstcitekey}{true}{false} @@ -9402,7 +9661,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 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. +This counter refers to the \bibfield{labelname} list. It is set on a per-name basis. Its value is \texttt{0} if the base parts of the name (by default just the <family> part of the name) are unique, \texttt{1} if adding the other non-base parts of the name (as specified in the uniquename template defined by \cmd{DeclareUniquenameTemplate}) as initials will make it unique, and \texttt{2} if adding the full form of the non-base parts of the name are required to disambiguate the name. This information is required by author-year and author-title citation schemes which add additional parts of the name when citing different authors with the same family name. For example, (given the default \cmd{DeclareUniquenameTemplate} definition) if there is one <John Doe> and one <Edward Doe> in the list of references, this counter will be set to \texttt{1}. If there is one <John Doe> and one <Jane Doe>, the value of the counter will be \texttt{2}. If the option is set to \texttt{init}\slash \texttt{allinit}\slash \texttt{mininit}, the counter will be limited to \texttt{1}. This is useful for citations styles which use initials to disambiguate names but never print the full name in citations. If adding the initials is not sufficient to disambiguate the name, \cnt{uniquename} will also be set to \texttt{0} for that name. This feature needs to be enabled explicitly with the package option \opt{uniquename}. Note that the \cnt{uniquename} counter is local to \cmd{printnames} and that it is only set for the \bibfield{labelname} list and for the name list that \bibfield{labelname} has been derived from (typically \bibfield{author} or \bibfield{editor}). Its value is zero in any other context, i.e., it must be evaluated in the name formatting directives handling name lists. See \secref{aut:cav:amb} for further details and practical examples. This counter can be overridden on a per-namepart basis by consulting the \cmd{namepart<namepart>un} macros during name formatting, see \secref{aut:bbx:drv}. \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. @@ -9478,6 +9737,13 @@ Similar to \cmd{newbibmacro} but redefines \prm{name}. In contrast to \cmd{renew Similar to \cmd{newbibmacro} but only defines \prm{name} if it is undefined. This command is similar in concept to \cmd{providecommand}. +\cmditem{letbibmacro}{alias}{name} +\cmditem*{letbibmacro*}{alias}{name} + +This command defines the macro \prm{alias} to be an alias of the macro \prm{name}. The definition is perfomed by \cmd{csletcs}. +An error is issued if \prm{name} is undefined. +The regular variant of this command sanitizes \prm{name} while the starred variant does not. + \cmditem{usebibmacro}{name} \cmditem*{usebibmacro*}{name} @@ -9522,7 +9788,7 @@ otherwise. \cmditem{usedriver}{code}{entrytype} -Executes the bibliography driver for an \prm{entrytype}. Calling this command in the \prm{loopcode} of a citation command defined with \cmd{DeclareCiteCommand} is a simple way to print full citations similar to a bibliography entry. Commands such as \cmd{newblock}, which are not applicable in a citation, are disabled automatically. Additional initialization commands may be passed as the \prm{code} argument. This argument is executed inside the group in which \cmd{usedriver} runs the respective driver. Note that it is mandatory in terms of the syntax but may be left empty. Also note that this command will automatically switch languages if the \opt{autolang} package option is enabled. +Executes the bibliography driver for an \prm{entrytype}. Calling this command in the \prm{loopcode} of a citation command defined with \cmd{DeclareCiteCommand} is a simple way to print full citations similar to a bibliography entry. Commands such as \cmd{newblock}, which are not applicable in a citation, are disabled automatically by default. The global initialization can be changed with \cmd{AtUsedriver}, see \secref{aut:fmt:hok}. Additional local initialization commands may be passed as the \prm{code} argument. This argument is executed inside the group in which \cmd{usedriver} runs the respective driver. Note that it is mandatory in terms of the syntax but may be left empty. Also note that this command will automatically switch languages if the \opt{autolang} package option is enabled. \cmditem{bibhypertarget}{name}{text} @@ -9597,6 +9863,7 @@ This command is similar to \cmd{mkpageprefix} except that it is intended for the \end{ltxexample} % The optional argument \bibfield{bookpagination} is omissible in this case. +The pagination strings are taken from \texttt{$<$pagination$>$total} and \texttt{$<$pagination$>$totals}. \begin{table} \tablesetup\lnstyle @@ -9637,7 +9904,7 @@ The optional argument \bibfield{bookpagination} is omissible in this case. \cmditem{mkcomprange}[postpro]{text} \cmditem*{mkcomprange*}[postpro]{text} -This command, which is intended for use in field formatting directives, will parse its \prm{text} argument for page ranges and compress them. For example, «125--129» may be formatted as «125--9». You may configure the behavior of \cmd{mkcomprange} by adjusting the \latex counters \cnt{mincomprange}, \cnt{maxcomprange}, and \cnt{mincompwidth}, as illustrated in \tabref{aut:aux:tab1}. The default settings are \texttt{10}, \texttt{100000}, and \texttt{1}, respectively. This means that the command tries to compress as much as possible by default. Use \cmd{setcounter} to adjust the parameters. The scanner recognizes \cmd{bibrangedash} and hyphens as range dashes. It will normalize the dash by replacing any number of consecutive hyphens with \cmd{bibrangedash}. Lists of ranges delimited with \cmd{bibrangessep} are also supported. The backend will normalise any comma or semi-colons surrounded by optional space by replacing them with \cmd{bibrangessep}. If you want to hide a character from the list/range scanner for some reason, wrap the character or the entire string in curly braces. The optional \prm{postpro} argument specifies a macro to be used for post-processing the \prm{text}. This is important if you want to combine \cmd{mkcomprange} with other formatting macros which also need to parse their \prm{text} argument, such as \cmd{mkpageprefix}. Simply nesting these commands will not work as expected. Use the \prm{postpro} argument to set up the processing chain as follows: +This command, which is intended for use in field formatting directives, will parse its \prm{text} argument for page ranges and compress them. For example, «125--129» may be formatted as «125--9». You may configure the behavior of \cmd{mkcomprange} by adjusting the \latex counters \cnt{mincomprange}, \cnt{maxcomprange}, and \cnt{mincompwidth}, as illustrated in \tabref{aut:aux:tab1}. The default settings are \texttt{10}, \texttt{100000}, and \texttt{1}, respectively. This means that the command tries to compress as much as possible by default. Use \cmd{setcounter} to adjust the parameters. The scanner recognises \cmd{bibrangedash} and hyphens as range dashes. It will normalize the dash by replacing any number of consecutive hyphens with \cmd{bibrangedash}. Lists of ranges delimited with \cmd{bibrangessep} are also supported. The backend will normalise any comma or semi-colons surrounded by optional space by replacing them with \cmd{bibrangessep}. If you want to hide a character from the list/range scanner for some reason, wrap the character or the entire string in curly braces. The optional \prm{postpro} argument specifies a macro to be used for post-processing the \prm{text}. This is important if you want to combine \cmd{mkcomprange} with other formatting macros which also need to parse their \prm{text} argument, such as \cmd{mkpageprefix}. Simply nesting these commands will not work as expected. Use the \prm{postpro} argument to set up the processing chain as follows: \begin{ltxexample} \DeclareFieldFormat{postnote}{\mkcomprange[<<{>>\mkpageprefix[pagination]<<}>>]{#1}} @@ -9970,7 +10237,7 @@ The following commands configure various features related to punctuation and aut This command declares characters that are to be treated specially when testing to see if \cmd{bibnamedelimc} is to be inserted between a name prefix and a family name. If a character is in the list of \prm{characters}, \cmd{bibnamedelimc} is not inserted. It is used to allow abbreviated name prefices like <d'Argent> where no space should be inserted after the apostrophe. The default setting is: \begin{ltxexample} -\DeclarePrefChars{'} +\DeclarePrefChars{'’-} \end{ltxexample} \cmditem{DeclareAutoPunctuation}{characters} @@ -10217,6 +10484,18 @@ Note that this feature needs to be enabled globally with the \opt{clearlang} opt This command maps a \sty{babel}/\sty{polyglossia} language identifier to an \file{lbx} file. The \prm{language} must be a language name known to the \sty{babel}/\sty{polyglossia} package, \ie one of the identifiers listed in \tabref{bib:fld:tab1}. The \prm{file} argument is the name of an alternative \file{lbx} file without the \texttt{.lbx} suffix. Declaring the same mapping more than once is possible. Subsequent declarations will simply overwrite any previous ones. This command may only be used in the preamble. See \secref{aut:cav:lng} for further details. +\cmditem{DeclareLanguageMappingSuffix}{suffix} + +This command defines a language file suffix which will be added when looking for \file{.lbx} language string definition files. This is intended for styles which provide their own \file{.lbx} files so that they will be used automatically. For example, the APA style defines: + +\begin{ltxexample} +\DeclareLanguageMappingSuffix{-apa} +\end{ltxexample} +% +When the document language is <german>, \biblatex will look for the file \file{german-apa.lbx} which defines some APA specific strings and in turn loads \file{german.lbx}. If \cmd{DeclareLanguageMapping} is defined for a language, this overrides \cmd{DeclareLanguageMappingSuffix}. + +Note that the suffix will not be applied to language files loaded recursively by the loading of a language file. For example, given the suffix defined above, when loading <ngerman>, \biblatex will look for the file \file{ngerman-apa.lbx} and if this recursively loads <german>, then biblatex will look for \file{german.lbx} and \emph{not} \file{german-apa.lbx}. + \cmditem{NewBibliographyString}{key} This command, which may be used in the preamble (including \file{cbx} and \file{bbx} files) as well as in \file{lbx} files, declares new localisation strings, \ie it initializes a new \prm{key} to be used in the \prm{definitions} of \cmd{DefineBibliographyStrings} or \cmd{DeclareBibliographyStrings}. The \prm{key} argument may also be a comma"=separated list of key names. When used in an \file{lbx}, the \prm{key} is initialized only for the language specified by the name of the \file{lbx} file. The keys listed in \secref{aut:lng:key} are defined by default. @@ -10265,6 +10544,9 @@ The following keys refer to roles which are expressed as a function (<editor>, < \item[commentators] The plural form of \texttt{commentators}. \item[annotator] The term <annotator>, referring to the author of annotations to a work. \item[annotators] The plural form of \texttt{annotators}. +\item[organizer] The term <organizer>, referring to the organizer of an + event or work. +\item[organizers] The plural form of \texttt{organizer}. \end{keymarglist} \paragraph{Concatenated Editor Roles, Expressed as Functions} @@ -10404,6 +10686,7 @@ The following keys refer to roles which are expressed as an action (<edited by>, \item[bytranslator] The expression <translated by \prm{name}> or <translated from \prm{language} by \prm{name}>. \item[bycommentator] The expression <commented by \prm{name}>. \item[byannotator] The expression <annotated by \prm{name}>. +\item[byorganizer] The expression <[organized] by \prm{name}>. \end{keymarglist} \paragraph{Concatenated Editor Roles, Expressed as Actions} @@ -10577,6 +10860,18 @@ Roles which are related to supplementary material may also be expressed as objec \item[verses] The plural form of \texttt{verse}. \item[line] The term <line> as used when referring to a work which is cited by line numbers. \item[lines] The plural form of \texttt{line}. +\item[pagetotal] The term <page> as used in \cmd{mkpageprefix}. +\item[pagetotals] The plural form of \texttt{pagetotal}. +\item[columntotal] The term <column>, referring to a column on a page, as used in \cmd{mkpageprefix}. +\item[columntotals] The plural form of \texttt{columntotal}. +\item[sectiontotal] The term <section>, referring to a document division (usually abbreviated as \S), as used in \cmd{mkpageprefix}. +\item[sectiontotals] The plural form of \texttt{sectiontotal} (usually abbreviated as \S\S). +\item[paragraphtotal] The term <paragraph> (\ie a block of text, not to be confused with \texttt{section}) as used in \cmd{mkpageprefix}. +\item[paragraphtotals] The plural form of \texttt{paragraphtotal}. +\item[versetotal] The term <verse> as used when referring to a work which is cited by verse numbers when used in \cmd{mkpageprefix}. +\item[versetotals] The plural form of \texttt{versetotal}. +\item[linetotal] The term <line> as used when referring to a work which is cited by line numbers when used in \cmd{mkpageprefix}. +\item[linetotals] The plural form of \texttt{linetotal}. \end{keymarglist} \paragraph{Types} @@ -10680,6 +10975,7 @@ Other expressions frequently used in citations: \begin{keymarglist} \item[langamerican] The language <American> or <American English>. \item[langbrazilian] The language <Brazilian> or <Brazilian Portuguese>. +\item[langbulgarian] The language <Bulgarian>. \item[langcatalan] The language <Catalan>. \item[langcroatian] The language <Croatian>. \item[langczech] The language <Czech>. @@ -10702,6 +10998,7 @@ Other expressions frequently used in citations: \item[langslovene] The language <Slovene>. \item[langspanish] The language <Spanish>. \item[langswedish] The language <Swedish>. +\item[langukrainian] The language <Ukrainian>. \end{keymarglist} % The following strings are intended for use in phrases like <translated from [the] English by \prm{translator}>: @@ -10709,6 +11006,7 @@ The following strings are intended for use in phrases like <translated from [the \begin{keymarglist} \item[fromamerican] The expression <from [the] American> or <from [the] American English>. \item[frombrazilian] The expression <from [the] Brazilian> or <from [the] Brazilian Portuguese>. +\item[frombulgarian] The expression <from [the] Bulgarian>. \item[fromcatalan] The expression <from [the] Catalan>. \item[fromcroatian] The expression <from [the] Croatian>. \item[fromczech] The expression <from [the] Czech>. @@ -10731,6 +11029,7 @@ The following strings are intended for use in phrases like <translated from [the \item[fromslovene] The expression <from [the] Slovene>. \item[fromspanish] The expression <from [the] Spanish>. \item[fromswedish] The expression <from [the] Swedish>. +\item[fromukrainian] The expression <from [the] Ukrainian>. \end{keymarglist} \paragraph{Country Names} @@ -10826,7 +11125,7 @@ This delimiter controls the spacing between the elements which make up a name pa This delimiter controls the spacing between the elements which make up a name part. It is inserted automatically by the backend between all name elements where \cmd{bibnamedelima} does not apply. The default definition is \cmd{addlowpenspace}, \ie a space penalized by the value of the \cnt{lownamepenalty} counter (\secref{use:fmt:len}). Please refer to \secref{use:cav:nam} for further details. \csitem{bibnamedelimc} -This delimiter controls the spacing between name parts. The default name formats use it between the name prefix and the last name if \kvopt{useprefix}{true}. The default definition is \cmd{addhighpenspace}, \ie a space penalized by the value of the \cnt{highnamepenalty} counter (\secref{use:fmt:len}). Please refer to \secref{use:cav:nam} for further details. +This delimiter controls the spacing between name parts. The default name formats use it between the name prefix and the family name if \kvopt{useprefix}{true}. The default definition is \cmd{addhighpenspace}, \ie a space penalized by the value of the \cnt{highnamepenalty} counter (\secref{use:fmt:len}). Please refer to \secref{use:cav:nam} for further details. \csitem{bibnamedelimd} This delimiter controls the spacing between name parts. The default name formats use it between all name parts where \cmd{bibnamedelimc} does not apply. The default definition is \cmd{addlowpenspace}, \ie a space penalized by the value of the \cnt{lownamepenalty} counter (\secref{use:fmt:len}). Please refer to \secref{use:cav:nam} for further details. @@ -10868,13 +11167,13 @@ Replaces \cmd{bibinitdelim} in the index. Replaces \cmd{bibinithyphendelim} in the index. \csitem{revsdnamepunct} -The punctuation to be printed between the first and last name parts when a name is reversed. The default is a comma. This command should be incorporated in formatting directives for name lists. Please refer to \secref{use:cav:nam} for further details. +The punctuation to be printed between the given and family name parts when a name is reversed. The default is a comma. This command should be incorporated in formatting directives for name lists. Please refer to \secref{use:cav:nam} for further details. \csitem{bibnamedash} The dash to be used as a replacement for recurrent authors or editors in the bibliography. The default is an <em> or an <en> dash, depending on the indentation of the list of references. \csitem{labelnamepunct} -The separator to be printed after the name used for alphabetizing in the bibliography (\bibfield{author} or \bibfield{editor}, if the \bibfield{author} field is undefined). Use this separator instead of \cmd{newunitpunct} at this location. The default is \cmd{newunitpunct}, \ie it is not handled differently from regular unit punctuation but permits convenient reconfiguration. +The separator to be printed after the name used for alphabetizing in the bibliography (\bibfield{author} or \bibfield{editor}, if the \bibfield{author} field is undefined). Use this separator instead of \cmd{newunitpunct} at this location. The default is \cmd{newunitpunct}, \ie it is not handled differently from regular unit punctuation but permits convenient reconfiguration. See also \cmd{nametitledelim} \secref{use:fmt:csd}. \csitem{subtitlepunct} The separator to be printed between the fields \bibfield{title} and \bibfield{subtitle}, \bibfield{booktitle} and \bibfield{booksubtitle}, as well as \bibfield{maintitle} and \bibfield{mainsubtitle}. Use this separator instead of \cmd{newunitpunct} at this location. The default is \cmd{newunitpunct}, \ie it is not handled differently from regular unit punctuation but permits convenient reconfiguration. @@ -10933,6 +11232,15 @@ The delimiter printed between the name\slash title and the label. This command s \csitem{nonameyeardelim} The delimiter printed between the substitute for the labelname when it does not exist (usually the label or title in standard styles) and the year in author-year citation styles. This is only used when there is no labelname since when the labelname exists, \cmd{nameyeardelim} is used. +\csitem{authortypedelim} +The delimiter printed between the author and the \texttt{authortype}. + +\csitem{editortypedelim} +The delimiter printed between the editor and the \texttt{editor} or \texttt{editortype} string. + +\csitem{translatortypedelim} +The delimiter printed between the translator and the \texttt{translator} string. + \csitem{volcitedelim} The delimiter to be printed between the volume portion and the page/text portion of \cmd{volcite} and related commands (\secref{use:cit:spc}). @@ -11312,9 +11620,9 @@ This length register indicates the width of the widest \bibfield{labelalpha}. Al This counter holds the highest number found in any \bibfield{extraalpha} field. -\cntitem{maxextrayear} +\cntitem{maxextradate} -This counter holds the highest number found in any \bibfield{extrayear} field. +This counter holds the highest number found in any \bibfield{extradate} field. \cntitem{refsection} @@ -11443,6 +11751,20 @@ Appends the \prm{code} to an internal hook executed at the beginning of every it Similar to \cmd{AtBeginBibliography} but only affecting the next \cmd{printbibliography}. The internal hook is cleared after being executed once. This command may be used in the document body. +\cmditem{AtUsedriver}{code} +\cmditem*{AtUsedriver}*{code} + +Appends the \prm{code} to an internal hook executed when initializing \cmd{uisedriver}. The starred variant of the command clears the initialisation hook, so the defaults can be overwritten. This command may only be used in the preamble. +The default setting is: + +\begin{ltxexample} +\AtUsedriver{% + \let\finentry\blx@finentry@usedrv + \let\newblock\relax + \let\abx@macro@bibindex\@empty + \let\abx@macro@pageref\@empty} +\end{ltxexample} + \cmditem{AtEveryCite}{code} Appends the \prm{code} to an internal hook executed at the beginning of every citation command. The \prm{code} is executed immediately before the \prm{precode} of the command (see \secref{aut:cbx:cbx}). No bibliographic data is available at this point. This command may only be used in the preamble. @@ -11473,12 +11795,16 @@ Similar to \cmd{AtEveryMultiCite} but only affecting the next multicite command. \cmditem{AtDataInput}[entrytype]{code} -Appends the \prm{code} to an internal hook executed once for every entry as the bibliographic data is imported from the \file{bbl} file. The \prm{entrytype} is the entry type the \prm{code} applies to. If it applies to all entry types, omit the optional argument. The \prm{code} is executed immediately after the entry has been imported. This command may only be used in the preamble. Note that \prm{code} may be executed multiple times for an entry. This occurs when the same entry is cited in different \env{refsection} environments or the \opt{sorting} option settings incorporate more than one sorting scheme. The \cnt{refsection} counter holds the number of the respective reference section while the data is imported. +Appends the \prm{code} to an internal hook executed once for every entry as the bibliographic data is imported from the \file{bbl} file. The \prm{entrytype} is the entry type the \prm{code} applies to. If it applies to all entry types, omit the optional argument. The \prm{code} is executed immediately after the entry has been imported. This command may only be used in the preamble. Note that \prm{code} may be executed multiple times for an entry. This occurs when the same entry is cited in different \env{refsection} environments or the \opt{sorting} option settings incorporate more than one sorting template. The \cnt{refsection} counter holds the number of the respective reference section while the data is imported. \cmditem{UseBibitemHook} Executes the internal hook corresponding to \cmd{AtEveryBibitem}. +\cmditem{UseUsedriverHook} + +Executes the internal hook corresponding to \cmd{AtUsedriver}. + \cmditem{UseEveryCiteHook} Executes the internal hook corresponding to \cmd{AtEveryCite}. @@ -11525,7 +11851,7 @@ Entry sets have already been introduced in \secref{use:use:set}. This section di \finentry} \end{ltxexample} % -You may have noticed that the \texttt{numeric} styles which ship with this package support subdivided entry sets, \ie the members of the set are marked with a letter or some other marker such that citations may either refer to the entire set or to a specific set member. The markers are generated as follows by the bibliography style: +You may have noticed that the \texttt{numeric} styles which come with this package support subdivided entry sets, \ie the members of the set are marked with a letter or some other marker such that citations may either refer to the entire set or to a specific set member. The markers are generated as follows by the bibliography style: \begin{ltxexample} \DeclareBibliographyDriver{set}{% @@ -11544,6 +11870,8 @@ The \bibfield{entrysetcount} field holds an integer indicating the position of a % Since this field is only defined when processing citations referring to a set member, there is no need to add any additional tests. +Citing entry sets directly requires that a meaningful way of identifying sets is available in the style. This is obvious for styles based on numeric or alphabetic labels but not obvious (and rarely required) in styles which construct citations based on textual names/titles/dates etc. The default provided styles which no not construct citations based on labels (\texttt{authoryear}, \texttt{authortitle}, \texttt{verbose} etc.) therefore do not support citing sets directly as there is no obvious default identifier to use in such cases and such styles rarely, if ever, employ sets anyway. Custom styles may of course choose to define and print a citation identifier for directly cited sets. + \subsubsection{Electronic Publishing Information} \label{aut:cav:epr} @@ -11594,13 +11922,15 @@ Name disambiguation works by taking a <base> which is composed of one or more na \begin{ltxsyntax} -\cmditem{DeclareUniquenameTemplate}{specification} +\cmditem{DeclareUniquenameTemplate}[name]{specification} -The \prm{specification} is a list of \cmd{namepart} commands which define the nameparts to use in determining the uniquename information +Defines the \opt{uniquename} template \prm{name}. The \prm{name} is optional and defaults to \prm{<global>}. + +The \prm{specification} is an ordered 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: +\prm{namepart} is one of the datamodel nameparts defined with the \cmd{DeclareDatamodelConstant} command (see \secref{aut:bbx:drv}). The \prm{options} are: \begin{optionlist*} @@ -11610,7 +11940,19 @@ Only use the \prm{namepart} in constructing the uniquename information if there \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. +The \prm{namepart} is part of the <base> which is the main piece of namepart(s) information which is being disambiguated by uniqueness information. For example, a family name which may be disambiguated by further given names. <base> \prm{namepart}s must occur before any non-<base> \prm{nameparts}. + +\choitem{disambiguation}{none, init, initorfull, full} + +The \prm{namepart} will be disambiguated at most by information at the given value. If this option is not present then the default is inferred from the \opt{uniquename} package option setting (see \secref{use:opt:wu}). The <disambiguation> option is ignored for \prm{namepart}s which have the <base> option set to <true> since it is these nameparts which are being disambiguated by the value of the non-base \prm{namepart}s and therefore <disambiguation> does not apply. + +\begin{description} +\item[none]~Do not use the \prm{namepart} to perform any name disambiguation +\item[init]~Use only the initials of the \prm{namepart} to perform name disambiguation +\item[initorfull]~Use initials and if necessary the full \prm{namepart} to perform name disambiguation +\item[full]~Use only the full \prm{namepart} to perform name + disambiguation even if initials would suffice +\end{description} \end{optionlist*} @@ -11626,7 +11968,7 @@ The default uniquename template is: } \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. +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 anything up to the full namepart of any non <base> nameparts in the specification, here just the <given> namepart. \paragraph{Individual Names (\opt{uniquename})} @@ -11682,7 +12024,7 @@ Doe Smith \end{lstlisting} % -When disambiguating names, \kvopt{uniquename}{init/full} only consider the visible names. Since all visible last names are distinct in this example, no further name parts are added. Let's compare that to the output of \kvopt{uniquename}{allinit}: +When disambiguating names, \kvopt{uniquename}{init/full} only consider the visible names. Since all visible family names are distinct in this example, no further name parts are added. Let's compare that to the output of \kvopt{uniquename}{allinit}: \begin{lstlisting}{} Jones et al. @@ -11698,7 +12040,7 @@ J. Doe John Smith \end{lstlisting} % -The options \kvopt{uniquename}{mininit/minfull} are similar to \texttt{init\slash full} in that they only consider visible names, but they perform minimal disambiguation. That is, they will disambiguate individual names only if they occur in identical lists of last names. Consider the following data: +The options \kvopt{uniquename}{mininit/minfull} are similar to \texttt{init\slash full} in that they only consider visible names, but they perform minimal disambiguation. That is, they will disambiguate individual names only if they occur in identical lists of base nameparts (for the concept of <base> nameparts, see \cmd{DeclareUniquenameTemplate in \secref{aut:cav:amb}}). Consider the following data: \begin{lstlisting}{} John Doe/William Jones @@ -11725,7 +12067,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 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: +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 base namepart lists only. Another way of looking at this is that they globally disambiguate base namepart 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 @@ -12170,7 +12512,7 @@ Since the alternative \file{lbx} file can inherit strings from the standard \pat % Alternative \file{lbx} files must ensure that the localisation module is complete. They should do so by inheriting data from the corresponding standard module. If the language \texttt{american} is mapped to \path{american-mla.lbx}, \biblatex will not load \path{american.lbx} unless this module is requested explicitly. In the above example, inheriting <strings> and <extras> will cause \biblatex to load \path{american.lbx} before applying the modifications in \path{american-mla.lbx}. -Note that \cmd{DeclareLanguageMapping} is not intended to handle language variants (\eg American English vs. British English) or \sty{babel}/\sty{polyglossia} language aliases (\eg \texttt{USenglish} vs. \texttt{american}). For example, \sty{babel}/\sty{polyglossia} offers the \texttt{USenglish} option which is similar to \texttt{american}. Therefore, \biblatex ships with an \path{USenglish.lbx} file which simply inherits all data from \path{american.lbx} (which in turn gets the <strings> from \path{english.lbx}). In other words, the mapping of language variants and \sty{babel}/\sty{polyglossia} language aliases happens on the file level, the point being that \biblatex's language support can be extended simply by adding additional \file{lbx} files. There is no need for centralized mapping. If you need support for, say, Portuguese (babel/polyglossia: \file{portuges}), you create a file named \path{portuges.lbx}. If \sty{babel}/\sty{polyglossia} offered an alias named \texttt{brasil}, you would create \path{brasil.lbx} and inherit the data from \path{portuges.lbx}. In contrast to that, the point of \cmd{DeclareLanguageMapping} is handling \emph{stylistic} variants like <humanities vs. natural sciences> or <\acr{mla} vs. \acr{apa}> etc. which will typically be built on top of existing \file{lbx} files. +Note that \cmd{DeclareLanguageMapping} is not intended to handle language variants (\eg American English vs. British English) or \sty{babel}/\sty{polyglossia} language aliases (\eg \texttt{USenglish} vs. \texttt{american}). For example, \sty{babel}/\sty{polyglossia} offers the \texttt{USenglish} option which is similar to \texttt{american}. Therefore, \biblatex comes with an \path{USenglish.lbx} file which simply inherits all data from \path{american.lbx} (which in turn gets the <strings> from \path{english.lbx}). In other words, the mapping of language variants and \sty{babel}/\sty{polyglossia} language aliases happens on the file level, the point being that \biblatex's language support can be extended simply by adding additional \file{lbx} files. There is no need for centralized mapping. If you need support for, say, Portuguese (babel/polyglossia: \file{portuges}), you create a file named \path{portuges.lbx}. If \sty{babel}/\sty{polyglossia} offered an alias named \texttt{brasil}, you would create \path{brasil.lbx} and inherit the data from \path{portuges.lbx}. In contrast to that, the point of \cmd{DeclareLanguageMapping} is handling \emph{stylistic} variants like <humanities vs. natural sciences> or <\acr{mla} vs. \acr{apa}> etc. which will typically be built on top of existing \file{lbx} files. \subsubsection{Grouping} \label{aut:cav:grp} @@ -12353,13 +12695,13 @@ periodical & \end{longtable} \endgroup -\section{Default Sorting Schemes} +\section{Default Sorting Templates} \label{apx:srt} -\subsection[Alphabetic 1]{Alphabetic Schemes 1} +\subsection[Alphabetic 1]{Alphabetic Templates 1} \label{apx:srt:a1} -The following table shows the standard alphabetic sorting schemes defined by default. Please refer to \secref{use:srt} for explanation. +The following table shows the standard alphabetic sorting templates defined by default. Please refer to \secref{use:srt} for explanation. \begingroup \sorttablesetup @@ -12371,7 +12713,7 @@ The following table shows the standard alphabetic sorting schemes defined by def L{0.150\textwidth}@{}% L{0.300\textwidth}@{}} \toprule -\multicolumn{1}{@{}H}{Option} & \multicolumn{5}{@{}H}{Sorting scheme} \\ +\multicolumn{1}{@{}H}{Option} & \multicolumn{5}{@{}H}{Template name} \\ \cmidrule(r){1-1}\cmidrule{2-6} \endhead \bottomrule @@ -12396,10 +12738,10 @@ nyvt & presort\alt mm & \end{longtable} \endgroup -\subsection[Alphabetic 2]{Alphabetic Schemes 2} +\subsection[Alphabetic 2]{Alphabetic Templates 2} \label{apx:srt:a2} -The following table shows the alphabetic sorting schemes for \texttt{alphabetic} styles defined by default. Please refer to \secref{use:srt} for explanation. +The following table shows the alphabetic sorting templates for \texttt{alphabetic} styles defined by default. Please refer to \secref{use:srt} for explanation. \begingroup \sorttablesetup @@ -12412,7 +12754,7 @@ The following table shows the alphabetic sorting schemes for \texttt{alphabetic} L{0.150\textwidth}@{}% L{0.150\textwidth}@{}} \toprule -\multicolumn{1}{@{}H}{Option} & \multicolumn{6}{@{}H}{Sorting scheme} \\ +\multicolumn{1}{@{}H}{Option} & \multicolumn{6}{@{}H}{Template name} \\ \cmidrule(r){1-1}\cmidrule{2-7} \endhead \bottomrule @@ -12435,10 +12777,10 @@ anyvt & presort\alt mm & \end{longtable} \endgroup -\subsection[Chronological]{Chronological Schemes} +\subsection[Chronological]{Chronological Templates} \label{apx:srt:chr} -The following table shows the chronological sorting schemes defined by default. Please refer to \secref{use:srt} for explanation. +The following table shows the chronological sorting templates defined by default. Please refer to \secref{use:srt} for explanation. \begingroup \sorttablesetup @@ -12449,7 +12791,7 @@ The following table shows the chronological sorting schemes defined by default. L{0.175\textwidth}@{}% L{0.400\textwidth}@{}} \toprule -\multicolumn{1}{@{}H}{Option} & \multicolumn{4}{@{}H}{Sorting scheme} \\ +\multicolumn{1}{@{}H}{Option} & \multicolumn{4}{@{}H}{Template name} \\ \cmidrule(r){1-1}\cmidrule{2-5} \endhead \bottomrule @@ -12685,138 +13027,176 @@ As per \secref{aut:ctm:rel}, the \bibfield{string} and \bibfield{options} attrib \section{Option Scope} \label{apx:opt} -The following table provides an overview of the scope (global\slash per-type\slash per-entry) of various package options. +The following table provides an overview of the scope of various options. + +Per-entry, per-namelist and per-name options are set in the datasource, for +example, in a \file{.bib}file. See the \biber documentation for details +but here are a few examples. Per-entry: + +\begin{lstlisting}[style=bibtex]{} +@BOOK{key, + OPTIONS = {sortingnamekeytemplatename=template1}, +} +\end{lstlisting} +% +Per-namelist and per-name options require either the \biblatexml datasource +format or the extend \bibtex name format supported by \biber (see the +\biber documentation for details). Per-namelist: + +\begin{lstlisting}[style=bibtex]{} +@BOOK{key, + AUTHOR = {sortingnamekeytemplatename=template1 and Arthur Smith and Bill Brown}, +} +\end{lstlisting} +% +Per-name: + +\begin{lstlisting}[style=bibtex]{} +@BOOK{key, + AUTHOR = {sortingnamekeytemplatename=template1, family=Smith, given=Arthur and Bill Brown}, +} +\end{lstlisting} \begingroup \tablesetup \let\+\tickmarkyes \let\_\tickmarkno \begin{longtable}[l]{@{}% - V{0.4\textwidth}@{}% - C{0.15\textwidth}@{}% - C{0.15\textwidth}@{}% - C{0.15\textwidth}@{}% - C{0.15\textwidth}@{}} + V{0.3\textwidth}@{}% + C{0.1\textwidth}@{}% + C{0.1\textwidth}@{}% + C{0.1\textwidth}@{}% + C{0.1\textwidth}@{}% + C{0.1\textwidth}@{}% + C{0.1\textwidth}@{}% + C{0.1\textwidth}@{}} \toprule \multicolumn{1}{@{}H}{Option} & -\multicolumn{4}{@{}H}{Scope} \\ -\cmidrule{2-5} +\multicolumn{7}{@{}H}{Scope} \\ +\cmidrule{2-8} & \multicolumn{1}{@{}H}{Load-time} & \multicolumn{1}{@{}H}{Global} & +\multicolumn{1}{@{}H}{Per-refcontext} & \multicolumn{1}{@{}H}{Per-type} & -\multicolumn{1}{@{}H}{Per-entry} \\ -\cmidrule(r){1-1}\cmidrule(r){2-2}\cmidrule(r){3-3}\cmidrule(r){4-4}\cmidrule{5-5} +\multicolumn{1}{@{}H}{Per-entry} & +\multicolumn{1}{@{}H}{Per-namelist} & +\multicolumn{1}{@{}H}{Per-name} \\ +\cmidrule(r){1-1}\cmidrule(r){2-2}\cmidrule(r){3-3}\cmidrule(r){4-4}\cmidrule(r){5-5}\cmidrule(r){6-6}\cmidrule(r){7-7}\cmidrule(r){8-8} \endhead \bottomrule \endfoot -abbreviate &\+&\+&\_&\_\\ -alldates &\+&\+&\_&\_\\ -alldatesusetime &\+&\+&\_&\_\\ -alltimes &\+&\+&\_&\_\\ -arxiv &\+&\+&\_&\_\\ -autocite &\+&\+&\_&\_\\ -autopunct &\+&\+&\_&\_\\ -autolang &\+&\+&\_&\_\\ -backend &\+&\_&\_&\_\\ -backref &\+&\+&\_&\_\\ -backrefsetstyle &\+&\+&\_&\_\\ -backrefstyle &\+&\+&\_&\_\\ -bibencoding &\+&\+&\_&\_\\ -bibstyle &\+&\_&\_&\_\\ -bibwarn &\+&\+&\_&\_\\ -block &\+&\+&\_&\_\\ -citecounter &\+&\+&\_&\_\\ -citereset &\+&\+&\_&\_\\ -citestyle &\+&\_&\_&\_\\ -citetracker &\+&\+&\_&\_\\ -clearlang &\+&\+&\_&\_\\ -datamodel &\+&\_&\_&\_\\ -dataonly &\_&\_&\+&\+\\ -date &\+&\+&\_&\_\\ -labeldate &\+&\+&\_&\_\\ -$<$datetype$>$date &\+&\+&\_&\_\\ -dateabbrev &\+&\+&\_&\_\\ -datecirca &\+&\+&\_&\_\\ -dateera &\+&\+&\_&\_\\ -dateerauto &\+&\+&\_&\_\\ -dateuncertain &\+&\+&\_&\_\\ -datezeros &\+&\+&\_&\_\\ -defernumbers &\+&\+&\_&\_\\ -doi &\+&\+&\_&\_\\ % style -eprint &\+&\+&\_&\_\\ % style -$<$namepart$>$inits &\+&\+&\_&\_\\ -gregorianstart &\+&\+&\_&\_\\ -hyperref &\+&\+&\_&\_\\ -ibidtracker &\+&\+&\_&\_\\ -idemtracker &\+&\+&\_&\_\\ -indexing &\+&\+&\+&\+\\ -isbn &\+&\+&\_&\_\\ % style -julian &\+&\+&\_&\_\\ -labelalpha &\+&\+&\+&\_\\ -labelnamefield &\_&\_&\_&\+\\ -labelnumber &\+&\+&\+&\_\\ -labeltitle &\+&\+&\+&\_\\ -labeltitlefield &\_&\_&\_&\+\\ -labeltitleyear &\+&\+&\+&\_\\ -labeldateparts &\+&\+&\+&\_\\ -labeltime &\+&\+&\_&\_\\ -labeldateusetime &\+&\+&\_&\_\\ -$<$datetype$>$time &\+&\+&\_&\_\\ -$<$datetype$>$dateusetime &\+&\+&\_&\_\\ -language &\+&\+&\_&\_\\ -loadfiles &\+&\+&\_&\_\\ -loccittracker &\+&\+&\_&\_\\ -maxalphanames &\+&\+&\+&\+\\ -maxbibnames &\+&\+&\+&\+\\ -maxcitenames &\+&\+&\+&\+\\ -maxitems &\+&\+&\+&\+\\ -maxnames &\+&\+&\+&\+\\ -maxparens &\+&\+&\_&\_\\ -mcite &\+&\_&\_&\_\\ -minalphanames &\+&\+&\+&\+\\ -minbibnames &\+&\+&\+&\+\\ -mincitenames &\+&\+&\+&\+\\ -mincrossrefs &\+&\+&\_&\_\\ -minxrefs &\+&\+&\_&\_\\ -minitems &\+&\+&\+&\+\\ -minnames &\+&\+&\+&\+\\ -natbib &\+&\_&\_&\_\\ -noinherit &\_&\_&\_&\+\\ -notetype &\+&\+&\_&\_\\ -opcittracker &\+&\+&\_&\_\\ -openbib &\+&\+&\_&\_\\ -pagetracker &\+&\+&\_&\_\\ -parentracker &\+&\+&\_&\_\\ -punctfont &\+&\+&\_&\_\\ -refsection &\+&\+&\_&\_\\ -refsegment &\+&\+&\_&\_\\ -safeinputenc &\+&\+&\_&\_\\ -seconds &\+&\+&\_&\_\\ -singletitle &\+&\+&\+&\_\\ -skipbib &\_&\_&\+&\+\\ -skipbiblist &\_&\_&\+&\+\\ -skiplab &\_&\_&\+&\+\\ -sortcase &\+&\+&\_&\_\\ -sortcites &\+&\+&\_&\_\\ -sorting &\+&\+&\_&\_\\ -sortnamekeyscheme &\_&\_&\_&\+\\ -sortlocale &\+&\+&\_&\_\\ -sortlos &\+&\+&\_&\_\\ -sortupper &\+&\+&\_&\_\\ -style &\+&\_&\_&\_\\ -terseinits &\+&\+&\_&\_\\ -texencoding &\+&\+&\_&\_\\ -timezeros &\+&\+&\_&\_\\ -timezones &\+&\+&\_&\_\\ -uniquelist &\+&\+&\+&\+\\ -uniquename &\+&\+&\+&\+\\ -uniquetitle &\+&\+&\+&\_\\ -uniquebaretitle &\+&\+&\+&\_\\ -uniquework &\+&\+&\+&\_\\ -uniqueprimaryauthor &\+&\+&\_&\_\\ -url &\+&\+&\_&\_\\ -useprefix &\+&\+&\+&\+\\ -use$<$name$>$ &\+&\+&\+&\+\\ +abbreviate &\+&\+&\_&\_&\_&\_&\_\\ +alldates &\+&\+&\_&\_&\_&\_&\_\\ +alldatesusetime &\+&\+&\_&\_&\_&\_&\_\\ +alltimes &\+&\+&\_&\_&\_&\_&\_\\ +arxiv &\+&\+&\_&\_&\_&\_&\_\\ +autocite &\+&\+&\_&\_&\_&\_&\_\\ +autopunct &\+&\+&\_&\_&\_&\_&\_\\ +autolang &\+&\+&\_&\_&\_&\_&\_\\ +backend &\+&\_&\_&\_&\_&\_&\_\\ +backref &\+&\+&\_&\_&\_&\_&\_\\ +backrefsetstyle &\+&\+&\_&\_&\_&\_&\_\\ +backrefstyle &\+&\+&\_&\_&\_&\_&\_\\ +bibencoding &\+&\+&\_&\_&\_&\_&\_\\ +bibstyle &\+&\_&\_&\_&\_&\_&\_\\ +bibwarn &\+&\+&\_&\_&\_&\_&\_\\ +block &\+&\+&\_&\_&\_&\_&\_\\ +citecounter &\+&\+&\_&\_&\_&\_&\_\\ +citereset &\+&\+&\_&\_&\_&\_&\_\\ +citestyle &\+&\_&\_&\_&\_&\_&\_\\ +citetracker &\+&\+&\_&\_&\_&\_&\_\\ +clearlang &\+&\+&\_&\_&\_&\_&\_\\ +datamodel &\+&\_&\_&\_&\_&\_&\_\\ +dataonly &\_&\_&\_&\+&\+&\_&\_\\ +date &\+&\+&\_&\_&\_&\_&\_\\ +labeldate &\+&\+&\_&\_&\_&\_&\_\\ +$<$datetype$>$date &\+&\+&\_&\_&\_&\_&\_\\ +dateabbrev &\+&\+&\_&\_&\_&\_&\_\\ +datecirca &\+&\+&\_&\_&\_&\_&\_\\ +dateera &\+&\+&\_&\_&\_&\_&\_\\ +dateerauto &\+&\+&\_&\_&\_&\_&\_\\ +dateuncertain &\+&\+&\_&\_&\_&\_&\_\\ +datezeros &\+&\+&\_&\_&\_&\_&\_\\ +defernumbers &\+&\+&\_&\_&\_&\_&\_\\ +doi &\+&\+&\_&\_&\_&\_&\_\\ % style +eprint &\+&\+&\_&\_&\_&\_&\_\\ % style +$<$namepart$>$inits &\+&\+&\_&\_&\_&\_&\_\\ +gregorianstart &\+&\+&\_&\_&\_&\_&\_\\ +hyperref &\+&\+&\_&\_&\_&\_&\_\\ +ibidtracker &\+&\+&\_&\_&\_&\_&\_\\ +idemtracker &\+&\+&\_&\_&\_&\_&\_\\ +indexing &\+&\+&\_&\+&\+&\_&\_\\ +isbn &\+&\+&\_&\_&\_&\_&\_\\ % style +julian &\+&\+&\_&\_&\_&\_&\_\\ +labelalpha &\+&\+&\_&\+&\_&\_&\_\\ +labelalphanametemplatename &\_&\_&\+&\_&\+&\+&\+\\ +labelnamefield &\_&\_&\_&\_&\+&\_&\_\\ +labelnumber &\+&\+&\_&\+&\_&\_&\_\\ +labeltitle &\+&\+&\_&\+&\_&\_&\_\\ +labeltitlefield &\_&\_&\_&\_&\+&\_&\_\\ +labeltitleyear &\+&\+&\_&\+&\_&\_&\_\\ +labeldateparts &\+&\+&\_&\+&\_&\_&\_\\ +labeltime &\+&\+&\_&\_&\_&\_&\_\\ +labeldateusetime &\+&\+&\_&\_&\_&\_&\_\\ +labelprefix &\_&\_&\+&\_&\_&\_&\_\\ +$<$datetype$>$time &\+&\+&\_&\_&\_&\_&\_\\ +$<$datetype$>$dateusetime &\+&\+&\_&\_&\_&\_&\_\\ +language &\+&\+&\_&\_&\_&\_&\_\\ +loadfiles &\+&\+&\_&\_&\_&\_&\_\\ +loccittracker &\+&\+&\_&\_&\_&\_&\_\\ +maxalphanames &\+&\+&\_&\+&\+&\_&\_\\ +maxbibnames &\+&\+&\_&\+&\+&\_&\_\\ +maxcitenames &\+&\+&\_&\+&\+&\_&\_\\ +maxitems &\+&\+&\_&\+&\+&\_&\_\\ +maxnames &\+&\+&\_&\+&\+&\_&\_\\ +maxparens &\+&\+&\_&\_&\_&\_&\_\\ +mcite &\+&\_&\_&\_&\_&\_&\_\\ +minalphanames &\+&\+&\_&\+&\+&\_&\_\\ +minbibnames &\+&\+&\_&\+&\+&\_&\_\\ +mincitenames &\+&\+&\_&\+&\+&\_&\_\\ +mincrossrefs &\+&\+&\_&\_&\_&\_&\_\\ +minxrefs &\+&\+&\_&\_&\_&\_&\_\\ +minitems &\+&\+&\_&\+&\+&\_&\_\\ +minnames &\+&\+&\_&\+&\+&\_&\_\\ +nametemplates &\_&\_&\+&\_&\+&\+&\+\\ +natbib &\+&\_&\_&\_&\_&\_&\_\\ +noinherit &\_&\_&\_&\_&\+&\_&\_\\ +notetype &\+&\+&\_&\_&\_&\_&\_\\ +opcittracker &\+&\+&\_&\_&\_&\_&\_\\ +openbib &\+&\+&\_&\_&\_&\_&\_\\ +pagetracker &\+&\+&\_&\_&\_&\_&\_\\ +parentracker &\+&\+&\_&\_&\_&\_&\_\\ +punctfont &\+&\+&\_&\_&\_&\_&\_\\ +refsection &\+&\+&\_&\_&\_&\_&\_\\ +refsegment &\+&\+&\_&\_&\_&\_&\_\\ +safeinputenc &\+&\+&\_&\_&\_&\_&\_\\ +seconds &\+&\+&\_&\_&\_&\_&\_\\ +singletitle &\+&\+&\_&\+&\_&\_&\_\\ +skipbib &\_&\_&\_&\+&\+&\_&\_\\ +skipbiblist &\_&\_&\_&\+&\+&\_&\_\\ +skiplab &\_&\_&\_&\+&\+&\_&\_\\ +sortcase &\+&\+&\_&\_&\_&\_&\_\\ +sortcites &\+&\+&\_&\_&\_&\_&\_\\ +sorting &\+&\+&\_&\_&\_&\_&\_\\ +sortingnamekeytemplatename &\_&\_&\+&\_&\+&\+&\+\\ +sortlocale &\+&\+&\_&\_&\_&\_&\_\\ +sortlos &\+&\+&\_&\_&\_&\_&\_\\ +sortupper &\+&\+&\_&\_&\_&\_&\_\\ +style &\+&\_&\_&\_&\_&\_&\_\\ +terseinits &\+&\+&\_&\_&\_&\_&\_\\ +texencoding &\+&\+&\_&\_&\_&\_&\_\\ +timezeros &\+&\+&\_&\_&\_&\_&\_\\ +timezones &\+&\+&\_&\_&\_&\_&\_\\ +uniquelist &\+&\+&\_&\+&\+&\_&\_\\ +uniquename &\+&\+&\_&\+&\+&\_&\_\\ +uniquenametemplatename &\_&\_&\+&\_&\+&\+&\+\\ +uniquetitle &\+&\+&\_&\+&\_&\_&\_\\ +uniquebaretitle &\+&\+&\_&\+&\_&\_&\_\\ +uniquework &\+&\+&\_&\+&\_&\_&\_\\ +uniqueprimaryauthor &\+&\+&\_&\_&\_&\_&\_\\ +url &\+&\+&\_&\_&\_&\_&\_\\ +useprefix &\+&\+&\_&\+&\+&\+&\+\\ +use$<$name$>$ &\+&\+&\_&\+&\+&\_&\_\\ \end{longtable} \endgroup @@ -12827,6 +13207,39 @@ This revision history is a list of changes relevant to users of this package. Ch \begin{changelog} +\begin{release}{3.8}{2017-11-04} +\item Added \kvopt{hyperref}{manual} option\see{use:opt:pre:gen} +\item Added field \bibfield{extradatescope}\see{aut:bbx:fld:lab} +\item Added \cmd{DeclareExtradate}\see{aut:ctm:fld} +\item Added \cmd{DeprecateFieldWithReplacement}, \cmd{DeprecateListWithReplacement} and \cmd{DeprecateNameWithReplacement}\see{aut:bib:dat} +\item Added \cmd{letbibmacro}\see{aut:aux:msc} +\item Renamed \opt{extrayear} to \opt{extradate}\see{aut:bbx:fld:lab} +\item Added \opt{sortsets} global option\see{use:opt:pre:gen} +\item Added \cmd{iflabelalphanametemplatename} and \cmd{uniquenametemplatename}\see{aut:aux:tst} +\item Renamed \cmd{ifsortingnamescheme} to \cmd{ifsortingnamekeytemplatename}\see{aut:aux:tst} +\item Renamed \opt{sortingnamekeyscheme} to \opt{sortingnamekeytemplate}\see{use:bib:context} +\item Renamed \cmd{DeclareSortingNamekeyScheme} to \cmd{DeclareSortingNamekeyTemplate}\see{aut:ctm:srt} +\item Renamed \cmd{DeclareSortingScheme} to \cmd{DeclareSortingTemplate}\see{aut:ctm:srt} +\item Changes to \cmd{DeclareUniquenameTemplate} and \cmd{DeclareLabelalphaNameTemplate} scopes\see{aut:cav:amb} and \see{aut:ctm:lab} +\item Added new \opt{disambiguation} option to \cmd{DeclareUniquenameTemplate}\see{aut:cav:amb} +\item Added new user-facing versions of some entry-querying commands\see{use:eq} +\item Changed \bibfield{origlanguage} to a list in line with \bibfield{language}\see{bib:fld:dat} +\item Deprecated \bibfield{childentrykey} and \bibfield{childentrytype}\see{aut:bbx:fld:gen} +\item Added \bibfield{bibnamehash} and name list specific variants\see{aut:bbx:fld:gen} +\item Added ALA-LC Russian romanisation transliteration support\see{aut:ctm:srt} +\item Added \bibfield{urlraw}\see{aut:bbx:fld:gen} +\item Added \cmd{AtUsedriver}\see{aut:fmt:hok} +\item Added Bulgarian localisation (Kaloyan Ganev) +\item \bibfield{sortyear} is now a literal, not an integer\see{bib:fld:spc} +\item Added \cmd{DeclareLanguageMappingSuffix}\see{aut:lng:cmd} +\item Changed default for \cmd{DeclarePrefChars}\see{aut:pct:cfg} +\item Added \cmd{authortypedelim}, \cmd{editortypedelim} and \cmd{translatortypedelim}\see{use:fmt:fmt} +\item Added \cmd{DeclareDelimAlias}\see{use:fmt:csd} +\item Added \opt{slovenian} as alias for \opt{slovene} due to Polyglossia + name for the language\see{bib:fld:spc} +\item Added Ukrainian localisation (Sergiy M. Ponomarenko) +\end{release} + \begin{release}{3.7}{2016-12-08} \item Corrected default for \cmd{bibdateeraprefix}\see{aut:fmt:lng} \item Added \cmd{DeclareSortInclusion}\see{aut:ctm:srt} |