summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Master/texmf-dist/bibtex/bst/biblatex/biblatex.bst16
-rw-r--r--Master/texmf-dist/doc/latex/biblatex/CHANGES4272
-rw-r--r--Master/texmf-dist/doc/latex/biblatex/CHANGES.org117
-rw-r--r--Master/texmf-dist/doc/latex/biblatex/README2
-rw-r--r--Master/texmf-dist/doc/latex/biblatex/biber/bltxml/biblatex-examples.bltxml (renamed from Master/texmf-dist/bibtex/bib/biblatex/biblatex/biblatex-examples.bltxml)11
-rw-r--r--Master/texmf-dist/doc/latex/biblatex/biblatex.pdfbin1302425 -> 1337349 bytes
-rw-r--r--Master/texmf-dist/doc/latex/biblatex/biblatex.tex1530
-rw-r--r--Master/texmf-dist/doc/latex/biblatex/examples/03-localization-keys-biber.pdfbin241510 -> 243031 bytes
-rw-r--r--Master/texmf-dist/doc/latex/biblatex/examples/03-localization-keys-bibtex.pdfbin242507 -> 243337 bytes
-rw-r--r--Master/texmf-dist/doc/latex/biblatex/examples/03-localization-keys.tex16
-rw-r--r--Master/texmf-dist/doc/latex/biblatex/examples/13-references-by-keyword-biber.pdfbin175156 -> 175146 bytes
-rw-r--r--Master/texmf-dist/doc/latex/biblatex/examples/13-references-by-keyword-bibtex.pdfbin175156 -> 175146 bytes
-rw-r--r--Master/texmf-dist/doc/latex/biblatex/examples/14-references-by-category-biber.pdfbin174664 -> 174652 bytes
-rw-r--r--Master/texmf-dist/doc/latex/biblatex/examples/14-references-by-category-bibtex.pdfbin174664 -> 174652 bytes
-rw-r--r--Master/texmf-dist/doc/latex/biblatex/examples/19-alphabetic-prefixed-biber.pdfbin158240 -> 158236 bytes
-rw-r--r--Master/texmf-dist/doc/latex/biblatex/examples/19-alphabetic-prefixed.tex2
-rw-r--r--Master/texmf-dist/doc/latex/biblatex/examples/82-style-debug-biber.pdfbin149668 -> 149680 bytes
-rw-r--r--Master/texmf-dist/doc/latex/biblatex/examples/91-sorting-schemes-biber.pdfbin21546 -> 21532 bytes
-rw-r--r--Master/texmf-dist/doc/latex/biblatex/examples/93-nameparts.tex10
-rw-r--r--Master/texmf-dist/doc/latex/biblatex/examples/94-labelprefix.tex17
-rw-r--r--Master/texmf-dist/doc/latex/biblatex/examples/96-dates-biber.pdfbin0 -> 24831 bytes
-rw-r--r--Master/texmf-dist/doc/latex/biblatex/examples/96-dates.tex189
-rw-r--r--Master/texmf-dist/doc/latex/biblatex/examples/biblatex-examples.bltxml11
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/bbx/authoryear.bbx28
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/biblatex.def145
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/biblatex.sty1769
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/blx-bibtex.def19
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/blx-dm.def54
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/cbx/alphabetic.cbx4
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/cbx/authortitle-comp.cbx4
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/cbx/authortitle-icomp.cbx4
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/cbx/authoryear-comp.cbx36
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/cbx/authoryear-ibid.cbx32
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/cbx/authoryear-icomp.cbx36
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/cbx/authoryear.cbx38
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/cbx/numeric-comp.cbx4
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/cbx/numeric.cbx4
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/cbx/verbose-ibid.cbx4
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/cbx/verbose-inote.cbx4
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/cbx/verbose-note.cbx4
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/cbx/verbose-trad1.cbx4
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/cbx/verbose-trad2.cbx4
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/cbx/verbose-trad3.cbx4
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/cbx/verbose.cbx4
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/lbx/australian.lbx8
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/lbx/brazilian.lbx58
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/lbx/british.lbx46
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/lbx/catalan.lbx66
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/lbx/croatian.lbx50
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/lbx/czech.lbx59
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/lbx/danish.lbx58
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/lbx/dutch.lbx58
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/lbx/english.lbx225
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/lbx/estonian.lbx578
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/lbx/finnish.lbx58
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/lbx/french.lbx58
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/lbx/german.lbx208
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/lbx/greek.lbx54
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/lbx/icelandic.lbx58
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/lbx/italian.lbx56
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/lbx/newzealand.lbx12
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/lbx/norwegian.lbx58
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/lbx/nynorsk.lbx12
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/lbx/polish.lbx54
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/lbx/portuguese.lbx58
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/lbx/russian.lbx59
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/lbx/slovak.lbx57
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/lbx/slovene.lbx50
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/lbx/spanish.lbx68
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/lbx/swedish.lbx66
70 files changed, 5246 insertions, 5344 deletions
diff --git a/Master/texmf-dist/bibtex/bst/biblatex/biblatex.bst b/Master/texmf-dist/bibtex/bst/biblatex/biblatex.bst
index 557797bc3fd..1f498b29225 100644
--- a/Master/texmf-dist/bibtex/bst/biblatex/biblatex.bst
+++ b/Master/texmf-dist/bibtex/bst/biblatex/biblatex.bst
@@ -1201,8 +1201,8 @@ FUNCTION {output:write:verb} {
{ 'tempstrga :=
"\verb" swap$ wrap:braces * output:indent:field
{ tempstrga empty$ not }
- { "\verb " tempstrga #1 ctrl.maxline #8 - substring$ * output:indent:field
- tempstrga ctrl.maxline #7 - global.max$ substring$ 'tempstrga :=
+ { "\verb " tempstrga #1 ctrl.maxline #10 - substring$ * output:indent:field
+ tempstrga ctrl.maxline #9 - global.max$ substring$ 'tempstrga :=
}
while$
"\endverb" output:indent:field }
@@ -1226,7 +1226,7 @@ FUNCTION {output:write:name:last} {
'skip$
if$
format:name:initials
- "family_i" combine:key:value output:indent:subfield:keyval
+ "familyi" combine:key:value output:indent:subfield:keyval
}
if$
}
@@ -1244,7 +1244,7 @@ FUNCTION {output:write:name:first} {
'skip$
if$
format:name:initials
- "given_i" combine:key:value output:indent:subfield:keyval
+ "giveni" combine:key:value output:indent:subfield:keyval
}
if$
}
@@ -1270,7 +1270,7 @@ FUNCTION {output:write:name:prefix} {
}
if$
format:name:initials
- "prefix_i" combine:key:value output:indent:subfield:keyval
+ "prefixi" combine:key:value output:indent:subfield:keyval
}
if$
}
@@ -1288,7 +1288,7 @@ FUNCTION {output:write:name:suffix} {
'skip$
if$
format:name:initials
- "suffix_i" combine:key:value output:indent:subfield:keyval
+ "suffixi" combine:key:value output:indent:subfield:keyval
}
if$
}
@@ -1888,7 +1888,7 @@ FUNCTION {input:control:options} {
% This version corresponds to the .bbl version, *not* the biblatex version!
FUNCTION {input:control:version} {
input:control:parse
- "$Revision: 2.7 $"
+ "$Revision: 2.8 $"
#12 entry.max$ substring$
#-3 entry.max$ substring$
'tempstrga :=
@@ -2702,7 +2702,7 @@ SORT
% This version corresponds to the .bbl version, *not* the biblatex version!
FUNCTION {output:main:begin} {
"% $ biblatex auxiliary file $" write$ newline$
- "% $ biblatex bbl format version " "$Revision: 2.7 $"
+ "% $ biblatex bbl format version " "$Revision: 2.8 $"
#12 entry.max$ substring$ #-3 entry.max$ substring$ * " $" * write$ newline$
"% Do not modify the above lines!" write$ newline$
"%" write$ newline$
diff --git a/Master/texmf-dist/doc/latex/biblatex/CHANGES b/Master/texmf-dist/doc/latex/biblatex/CHANGES
deleted file mode 100644
index 85cd8ce9937..00000000000
--- a/Master/texmf-dist/doc/latex/biblatex/CHANGES
+++ /dev/null
@@ -1,4272 +0,0 @@
-RELEASE NOTES FOR VERSION 3.4
-
-* Biber version 2.5 is required for biblatex 3.4
-* INCOMPATIBLE CHANGE - There have been major changes to the support for
- bibtex as a backend. In order to facilitate future development, the
- bibtex and biber code paths have been merged and bibtex as a biblatex
- backend is now officially deprecated with a view to discontinued support
- in a future release. bibtex as a backend will still work currently with a
- reduced feature set. Of particular note are the labelprefix (formerly
- prefixnumbers) option and support for shorthand lists, neither of which
- will work with the bibtex backend any longer as it was deemed too
- difficult to maintain support for these with merged backend code paths.
- Please switch to using biber to use these features. The documentation no
- longer mentioned biber/bibtex specific features and should be taken as
- referring to biber features with limited fallback support for bibtex.
-* A new data annotations feature is available which allows attachment of
- semantic annotation markers to bibliographic data. Macros are provided
- for accessing the annotations during formatting. This allows, for
- example, highlighting of particular names in a name list without putting
- markup in the data. See the main documentation for details.
-* There is a new per-entry option "noinherit" which allows fine-grained
- blocking of data inheritance declared with \DeclareDataInheritance. See
- the docs for \DeclareDataInheritance.
-* A new context-sensitive delimiter interface (\DeclareDelimFormat) is now
- available. This is able to vary a delimiter based on where it occurs (in a
- citation, in a bib item etc.) A new sample file (04-delimiters) demonstrates the
- interface and how it interacts with the basic static delimiter definition interface.
-* Arbitrary sets of data fields can now be defined with
- \DeclareDatafieldSet. Such sets are now used to determine behaviour in
- various places - search the PDF doc for mention of this macro.
- Users/style authors can define their own sets of fields and access them
- with automatically generated etoolbox list macros.
-* Transliteration support during sorting is now possible via
- \DeclareSortTranslit. This is useful for sorting languages which are not
- directly supported by the UCA+CLDR. The only currently supported
- transliteration is for Sanskrit (IAST romanisation->Devanāgarī). Please
- open a github ticket if you think you require any other transliterations.
-* The \ifempty macro for testing namepart emptiness introduced in 3.3 was a
- mistake. If you used this, please use \ifdefvoid instead - this is standard etoolbox.
-* The "prefixnumbers" option has been renamed to "labelprefix" since it is
- not specific to numeric styles and may be used with alpha label styles
- too. Since this option can change citation labels, which are not
- contained in a bibliography list, it is no longer an option of
- \printbibliography and is now an option of reference contexts. This makes
- certain things now possible such as citing the same entry from different
- bibliographies with different prefices.
-* INCOMPATIBLE CHANGE - The internal field "prefixnumber" is now called
- "labelprefix" as the name was a legacy of originally only applying to
- numeric styles. If you refer to this field in your style, please change it.
- Using the field "prefixnumber" will issue a deprecation warning
-* With biber, for fields of datatype "date" in the datamodel, the internal
- macros, package options and datepart fields are automatically created.
- This makes defining custom date fields easier.
-* The \nameparts macro inside \DeclareNameFormat is no longer necessary.
- Name part macros will be automatically populated and \nameparts will be
- ignored if found.
-* Bugfixes
-
-RELEASE NOTES FOR VERSION 3.3
-
-* Biber version 2.4 is required for biblatex 3.3
-* The \Declare*Option commands have a new optional argument when using
- biber which declares the datatype of the option. It defaults to
- "boolean" if not specified. If you define any custom options in your
- style, you may want to specify the correct datatype (see docs). However,
- it is unlikely that this will impact anything at the moment as this option
- only used internally by biber for some checks.
-* INCOMPATIBLE CHANGE - There have been major changes to the handling of
- name lists in order to generalise name handling beyond the narrow
- confines of the legacy bibtex name parts of "last, first, prefix,
- suffix". These changes only apply when using biber as the backend and
- mainly affect style authors.
- * In general in macro names, "first" is now "given" and "last" is now "family":
-
- The option "firstinits" has been renamed to "giveninits" and the option "sortfirstinits"
- to "sortgiveninits". The old names are available as legacy aliases.
- Style authors using the internal toggles associated with these options will
- need to change "first" to "given" in their names.
-
- Name formats and the \mkbibname* macros have been internally renamed by
- replacing "first" with "given" and "last" with "family". There are aliases in place for the
- older names. Please use the new names in any custom styles.
-
- * The most significant change concerns the definition of name formats.
- Style authors will need to update any styles which use
- \DeclareNameFormat or \DeclareIndexNameFormat which no longer accept
- 8 arguments which are hard coded to the nameparts which bibtex
- understands. These macros now take one argument which is a
- comma-separated list which must be parsed with:
-
- \nameparts{#1}%
-
- All name formats should include this line, usually as the first line in
- the format. Valid nameparts are now defined by the datamodel and the
- default is compatible with standard bibtex with "last" renamed to
- "family" and "first" renamed to "given". The default datamodel
- declaration is:
-
- \DeclareDatamodelConstant[type=list]{nameparts}{prefix,family,suffix,given}
-
- This declaration automatically creates the \mkbibname<namepart> macros and the
- internal machinery for the \nameparts macro. After using the \nameparts macro
- as described above, each namepart will be available in two macros with
- the following name structure:
-
- \namepart<namepart>
- \namepart<namepart>i
-
- The macro ending in "i" is the macro contain the namepart initials.
- So, use of \nameparts{#1} in the default datamodel will result in these
- macros being defined for use:
-
- \namepartprefix
- \namepartprefixi
- \namepartfamily
- \namepartfamilyi
- \namepartsuffix
- \namepartsuffixi
- \namepartgiven
- \namepartgiveni
-
- As a further example, the name format:
-
- \DeclareNameFormat{first-last}{%
- \iffirstinits
- {\usebibmacro{name:first-last}{#1}{#4}{#5}{#7}}
- {\usebibmacro{name:first-last}{#1}{#3}{#5}{#7}}%
- \usebibmacro{name:andothers}}
-
- is now:
-
- \DeclareNameAlias{first-last}{given-family}% legacy alias
- \DeclareNameFormat{given-family}{%
- \nameparts{#1}%
- \ifgiveninits
- {\usebibmacro{name:given-family}
- {\namepartfamily}
- {\namepartgiveni}
- {\namepartprefix}
- {\namepartsuffix}}
- {\usebibmacro{name:given-family}
- {\namepartfamily}
- {\namepartgiven}
- {\namepartprefix}
- {\namepartsuffix}}%
- \usebibmacro{name:andothers}}
-
- See the example 93-nameparts.tex example file for an example of
- defining and using a custom namepart, which is now possible due to
- these changes.
-
-RELEASE NOTES FOR VERSION 3.2
-
-* Biber version 2.3 is required for biblatex 3.2
-* New label generation options which allow fine-tuning of how name prefices
- are handled (see pstrwidth and pcompound options in documentation).
-* Some internals have changed regarding prefix space handling in names.
- This shouldn't impact normal users but hackers please not that
- \blx@sf@apo has been renamed to \blx@sf@prefixchar to better suit the new
- \DeclarePrefChars command. Also note that in the standard name printing
- macros, \ifpunctmark{'} has been replaced by the more general \ifprefchar.
-
-RELEASE NOTES FOR VERSION 3.1
-
-* Biber version 2.2 is required for biblatex 3.1
-* Added new macros \DeclareNolabel and \DeclareNolabelwidthcount for fine-tuning label generation
-* Improved Finnish and Russian localisation
-* Many bug fixes
-
-RELEASE NOTES FOR VERSION 3.0
-
-* Biber version 2.0 is required for biblatex 3.0
-* A new reference context mechanism to allow for future extensions has been
- introduced. Effectively, this means the following. The 'sorting' option to
- \printbibliography and \printbiblist is deprecated. You should use the
- 'sorting' option to \newrefcontext or the
- \begin{refcontext}\end{refcontext} environment. This allows the sorting
- list context wider scope over citations etc. too. For example, some
- information in citations like extrayear depends on the sort list order
- but until this version, citation sorting was always determined by the
- global sorting specification. Therefore it was not too difficult to get
- into a situation where citations were incorrect for a bibliography list
- with a defined sorting scheme:
-
- \usepackage[sorting=nty]{biblatex}
- \cite{test1}
- \cite{test2}
- \printbibliography[sorting=nyt]
-
- In this case, the citation labels may not match the bibliography
- because the data used to generate the citations are drawn from a
- different sort list. This was a general issue that entry data was
- assumed to be the same over all bibliography lists. Only the order of
- entries was assumed to be different, which is incorrect. The order of
- items in a bibliography list can impact the actual data contents of
- items in the case of things like the extra* fields. Now, the above can
- be solved using the new refcontext mechanism which exposes the sorting
- context to biblatex:
-
- \usepackage[sorting=nty]{biblatex}
- \newrefcontext[sorting=nyt]
- \cite{test1}
- \cite{test2}
- \printbibliography
-
- In this case, the \cite commands pull their data from the "nyt" sorting
- list data which is also used by the following \printbibliography
- This is all for biber only.
-* labelname and labeltitle are now instantiated by biblatex dynamically at
- output time. Prior to this release, labelname and labeltitle were
- statically instantiated by biber and put into the .bbl. This does not allow
- for context-sensitive labelname/labeltitle determination which is
- foreseen in future extensions.
-* New "pernottype" and "entryclone" sourcemapping verbs allow for negated
- matches on entry types and the cloning of entries respectively. Requires
- biber.
-* Biber now calculates the length of ranges (like page ranges) so that the
- various range-length tests are far more accurate. See the "frangelen"
- field documentation. This is very robust and can deal with roman numerals
- in just about all of their Unicode and ASCII forms.
-* When a bibliography field is declared as a "name" field in the data
- model, all options and counters to decide whether to use it or not are
- automatically created. This effectively extends the existing "useauthor"
- and "useeditor" options to all data model name fields automatically. These
- options are now just special cases of the general data model name
- handling mechanism.
-
-RELEASE NOTES FOR VERSION 2.9a
-
-* Biber version 1.9 is required for biblatex 2.9a
-* Fixed some bugs with defernumbers option
-* With biber, the scanner for \mkcomprange will normalise any sequence of
- dashes with \bibrangedash and any (optionally space-surrounded) comma or
- semi-colon with \bibrangessep (see docs). Range compression now works
- properly in citation notes.
-
-RELEASE NOTES FOR VERSION 2.9
-
-* Biber version 1.9 is required for biblatex 2.9
-* With biber, the \printshorthands functionality is subsumed under a more
- general "bibliography list" functionality. See the documentation for
- \printbiblist and the new examples file "92-bibliographylists.tex".
- Previous list of shorthands macros have legacy aliases for backwards
- compatibility.
-* INCOMPATIBLE CHANGE - The generalisation of the \printshorthands facility
- into a bibliography list printing facility necessitated changing the
- default bibliography environment name for printing shorthands from
- "shorthands" to "shorthand" so that it matches the field name it uses.
- This allows the other relevant "short*" fields to be automatically
- available with environments, filters etc. for building bibliography lists
- of abbreviations. The same applies to the default "shorthands" driver
- which is now called "shorthand". If you (re)define either the "shorthands"
- bibliography environment or the "shorthands" driver in your style, please
- change the names to remove the "s" or you will pick up the internal
- defaults instead.
-* The data model defining macros are no longer valid in a document
- (including the preamble). They in fact only ever partially worked as
- biblatex uses the data model to define some internal macros before the
- preamble and document is read. Using these macros in a document would
- lead to strange behaviour sooner or later and so now they are disabled
- after the data model is loaded and will generate a warning.
-* The "sortlocale" option no longer passes its value to the biber option of
- the same name. Biblatex now has its own "sortlocale" option which is used
- to set the global sorting locale on sorting specifications which don't
- define one. The ability to define sorting locales per-sortscheme is new
- in this version. See the PDF documentation. This is unlikely to impact
- anyone. The biber "sortlocale" option can be use to override the
- biblatex-specified sorting locales if you need to.
-
-RELEASE NOTES FOR VERSION 2.8a
-
-* INCOMPATIBLE CHANGE - The "language" option has new values. "language=autobib" changes
- language for bibliography entries based on the LANGID field and the "autolang" option setting.
- As a new feature, "language=autocite" does the same for citations. "language=auto" sets
- both "autocite" and "autobib" and the default is "lanauge=autobib". This is a change from
- the previous default. If your style sets "language=auto" explicitly, you will get the new
- citation language switching behaviour and might want to use "language=autobib" to get the old
- behaviour back.
-
-RELEASE NOTES FOR VERSION 2.8
-
-* Biber version 1.8 is required for biblatex 2.8
-* Polyglossia is now better supported
-* The HYPHENATION field is now called LANGID. The old name still works for backwards compat. This
- field does a lot more than just selecting hyphenation patterns and was misleading.
-* New field LANGIDOPTS for Polyglossia users allows specification of
- language-specific options (like variants such as "american" english and
- babelshorthands etc.). See the biblatex-examples.bib file which has been
- converted to use the new field names and fields.
-* "babel" option renamed to "autolang". Old name generates a warning but
- still works. Since Polyglossia support now basically works, this name is now
- too package specific. There is a new value "langname" for this option
- which is Polyglossia only and allows the use of the main polyglossia language
- switching environment which can use the options given in the LANGIDOPTS field.
-* New value "year" for "datelabel" option
-* New internal field "datelabelsource" for package authors specifies which
- date field the datelabel was generated from.
-
-RELEASE NOTES FOR VERSION 2.7a
-
-* Bugfix release for 2.7
-
-RELEASE NOTES FOR VERSION 2.7
-
-* Biber version 1.7 is required for biblatex 2.7
-
-* New field EVENTTITLEADDON now part of default data model and default styles
-
-* Many citation command enhancements, better flow-of-text integration for
- \textcite et al. See changelog in PDF doc for details.
-
-RELEASE NOTES FOR VERSION 2.6
-
-* Biber version 1.6 is required for biblatex 2.6
-
-* INCOMPATIBLE CHANGE - \DeclareLabelyear is now \DeclareLabeldate so
- that the extra fields labelmonth and labelday can be generated by
- biber. The 'labelyear' package option is now called 'labeldate'. The
- old names will work but will generate warnings. The default
- definition for \DeclareLabeldate in biblatex.def results in the same
- behaviour as with the old \DeclareLabelyear.
-
-* Localised and fixed string fallbacks now possible as values for labelyear field
-
-* Cyclic and cascading RELATED entries now working properly.
-
-RELEASE NOTES FOR VERSION 2.5
-
-* Biber version 1.5 is required for biblatex 2.5
-
-* New sourcemap step "entrynull" can be used to completely skip an entry.
-
-RELEASE NOTES FOR VERSION 2.4
-
-* Biber version 1.4 is required for biblatex 2.4
-
-* New macro \DeclareStyleSourcemap for style authors who want to define source mappings which
- are not changed by users using \DeclareSourcemap. Style maps so defined are run after user
- mappings and before driver default mappings.
-
-* New RELATEDOPTIONS field giving more control over the exact options for related entry processing
-
-* INCOMPATIBLE CHANGE - \DeclareLabelname, \DeclareLabelTitle and \DeclareLabelyear now have
- a different syntax in order to prepare for future multi-script support. The change is minor -
- just wrap all fields in \field{} and don't use any commas to separate fields. For example, the
- default definition of \DeclareLabelname was:
-
- \DeclareLabelname{%
- shortauthor,
- author,
- shorteditor,
- editor,
- translator}
-
- and is now:
-
- \DeclareLabelname{%
- \field{shortauthor}
- \field{author}
- \field{shorteditor}
- \field{editor}
- \field{translator}
- }
-
-RELEASE NOTES FOR VERSION 2.3
-
-* Biber version 1.3 is required for biblatex 2.3
-
-* New "append" mode for \DeclareSourcemap so that fields can be combined
-
-* Detection of some situations which requires biber or latex reruns.
- Specifically, when sorting schemes are added or removed, when citations are added
- or removed, when sorting=none and citation order changes and the interactions of
- these situations when defernumbers=true. Biblatex should now report that a re-run is
- required in such situations.
-
-* Bugfixes
-
-RELEASE NOTES FOR VERSION 2.2
-
-* Biber version 1.2 is required for biblatex 2.2
-
-* Bugfixes
-
-RELEASE NOTES FOR VERSION 2.1
-
-* Biber version 1.1 is required for biblatex 2.1
-
-* Custom data models is now looked for in more places. See PDF
- documentation. Custom data model conflicts are now better processed by
- biber.
-
-* Some improved localisation (Norwegian) and doc fixes.
-
-RELEASE NOTES FOR VERSION 2.0
-
-* Biber is now the default backend. Biblatex 2.0 requires biber
- 1.0. It will not work with any earlier release of biber due to
- .bcf format changes required to support the new list-local sorting
- feature.
-
-* Biblatex with bibtex as the backend is now frozen at version 1.7. When
- using biblatex with the option "backend=bibtex" (which must be
- specified now, the default is backend=biber if no option is specified),
- biblatex 1.7 will be automatically used. Apart from important bug fixes,
- no more development will be done on the 1.7 branch which means that
- users must switch to backend=biber (or don't specify the backend at all)
- to get version 2.0 and future new features. All major new 2.0 features
- require biber anyway so this is no real change for bibtex users.
-
-* New options to enable counters which track different combinations of
- information. Here is a summary which contains all tracking options,
- including the new ones (row marked with with a star, table is also in
- the PDF documentation):
-
- Enabled Enabled Tracked
- Option field counter information
- -------------- ---------- -------------- -------------------
- labelalpha labelalpha extraalpha label
- labelyear labelyear extrayear labelname+labelyear
- *labeltitle --- extratitle labelname+labeltitle
- *labeltitleyear --- extratitleyear labeltitle+labelyear
-
- The naming of the options and counters is a little unintuitive because
- the original ones were named before requests for the new ones were made.
- The "Tracked information" column makes clear which information is tracked
- by the counters. The new counters will appear in the .bbl inside an entry
- and can be used just like "extraalpha" and "extrayear". The new options
- controlling the new counters are false by default and are not used by the
- standard styles.
-
-* The biblatex data model is now customisable using the \DeclareDatamodel*
- macros. This allows the use of new entrytypes and fields, as long as the
- style supports them.
-
-* Controlling initials generation
-
- A biblatex macro interface (\DeclareNoinit) is now available to declare
- regular expressions to strip from names before generating initials for
- them. This mirrors the Biber config file functionality on a per-document
- basis. A common use, for example, might be to strip certain prefices
- from names so that they do not end up as initials.
-
-* Fine tuning sorting strings
-
- A biblatex macro interface (\DeclareNosort) is now available to declare
- regular expressions to strip from fields or types of fields for sorting
- purposes. This mirrors the Biber config file functionality on a per-document
- basis. A common use, for example, might be to strip "The " from titles for
- sorting purposes.
-
-* Sorting option for bibliography/shorthand lists
-
- \printbibliography and \printshorthands now have a "sorting" option so
- you can choose a sorting scheme for each bibliography/shorthand list
- instead of using the global sorting scheme. This means that you can
- issue \printbibliography or \printshorthands as many times as you need
- to, anywhere in the document and have the resulting list sorted in the
- way required.
-
-* Dynamic datasource modification
-
- A biblatex macro interface (\DeclareSourcemap) is now available to
- allow users to dynamically modify data as it is read by Biber. This
- can be used to do many things like remove unwanted fields,
- regularise field contents, add new fields etc. all without write
- access to the datasource. The biblatex manual has a large section
- on this feature, with many examples. This feature is identical in
- functionality to Biber's "sourcemap" option but having a macro
- interface allows it to be used on a per-document basis. The default
- mappings for datasource drivers are definable too, using
- \DeclareDefaultSourcemap
-
-* Customisable labels
-
- A new macro interface is implemented (\DeclareLabelalphaTemplate)
- which allows customisation of the label used in alphanumeric
- styles. The previous static labels are now implemented in terms of
- the new interface. The biblatex manual has a section on this
- feature with examples. One edge-case has changed with the new
- definition of the previous default label generation behaviour: a
- name with a prefix will now include 3 characters after the prefix
- instead of 2 ("van Rompel" will be "vRom" instead of "vRo"). The
- previous behaviour was anomolous anyway. There are options to
- auto-disambiguate labels in several ways.
-
-* Related entries
-
- A general method to support "related entries" is implemented. This
- allows a localisable, flexible way to deal with relationships between
- entries like "reprint of", "translation of", "reprinted in" etc.
-
- Three new entry fields are available to support this - "related",
- "relatedtype" and "relatedstring". Biber will automatically create
- "dataonly" clones of the related entries so that their data can be
- accessed in styles without having to cite them. Related entries may
- also be cited themselves which does not interfere in any way with this
- mechanism. The standard styles have been updated to support the new
- fields. New punctuation macros are available to format the new fields
- in the bibliography ("relatedpunct", "relateddelim", "related").
-
-* Citation key aliases
-
- It is now possible to include a new field "ids" in an entry which
- is a comma-separated list of citation key aliases. The entry can be
- cited by any of the aliases, which helps when you updated your
- entry keys but don't want to change old documents.
-
-* Option to sort names only using initials
-
- The new option "sortfirstinits" allows users to specify that name
- sorting only uses initials instead of the full name. Previously,
- even if "firstinits" was true, sorting used full names.
-
-* New citation commands
-
- Starred variants of \citeyear and \citedate are now available which
- include the extrayear information.
-
-RELEASE NOTES FOR VERSION 1.7
-
-* Biber update, new features
-
- Biblatex 1.7 requires Biber 0.9.6. Biber is now based on Perl 5.14
- with full Unicode 6.0 support. There's a bunch of other
- improvements -- see the Biber manual for details.
-
-* XDATA containers [Biber only]
-
- This release introduces the new @xdata entry type and the
- corresponding xdata field. Essentially, the idea is that you can
- dump frequently used data into an @xdata entry and reference that
- where needed. It's a bit like crossref but doesn't imply any
- logical (parent/child) relation. Or, to put it differently, it's a
- bit like @string but covers more than one field. See the changelog
- for pointers.
-
-* Extended option scoping [Biber only]
-
- The package options related to name/list truncation and name
- disambiguation are now conveniently settable globally/per-type/
- per-entry. See the changelog for details. There's also a new
- appendix with an overview of the scope of all options.
-
-* Field formats for dates
-
- \printdate and friends now support 'virtual' field formats for all
- dates. So, even though there is no 'date' field on the LaTeX end
- of the workflow (only year/month/day and endyear/endmonth/endday),
- you may now say:
-
- \DeclareFieldFormat{date}{\textbf{#1}}
-
- to print the date in boldface, for example. Technically, this is
- equivalent to:
-
- \DeclareFieldFormat{date}{\textbf{#1}}
- \printtext[date]{\printdate}
-
- except that it is readily built into \printdate.
-
-* Last-resort breakpoints for \url
-
- URLs and DOIs consisting mostly or entirely of letters and numbers
- may run into the margin if the \url command can't find suitable
- breakpoints. I've introduced additional breakpoints after all
- numbers and letters in the previous biblatex release in order to
- deal with particularly nasty DOIS, but this turned out to be to
- brute a solution.
-
- To provide the best of both worlds, this release adds counters
- which control the penalties associated with the additional
- breakpoints. They are disabled by default but may be helpful (as a
- last resort) if you need to deal with long and/or tricky DOIs. See
- 'biburlnumpenalty' etc. in the manual for details. If you want to
- enable the additional breakpoints, use high penalties; e.g.:
-
- \setcounter{biburlnumpenalty}{9000}
-
-* Language support
-
- Oleg Domanov contributed support for Russian. Note that the
- Russian module requires UTF-8. Pieter Belmans updated the Dutch
- language module.
-
-RELEASE NOTES FOR VERSION 1.6
-
-* Biber update, new mapping feature
-
- Biblatex 1.6 requires Biber 0.9.4. It will not work with any
- previous release. Biber now supports user-space field mapping.
- This means that you can set up mapping rules in the Biber
- configuration file to deal with non-standard field names in .bib
- files by mapping them to known field names.
-
-* Revised maxnames/minnames options
-
- Biber now supports max/mincitenames and max/minbibnames as
- separate values. This improvement has prompted a refactoring of
- the corresponding package options. In previous versions, there
- were three sets of values:
-
- max/minnames -> backend+frontend default
- max/mincitenames -> frontend only
- max/minbibnames -> frontend only
-
- The backend would get max/minnames, the other values were only
- used on the LaTeX end, defaulting to max/minnames. Depending on
- the citation style, this could lead to ambiguous citations if
- max/minnames was out of sync with max/mincitenames. (This wasn't
- really obvious from reading the manual.)
-
- This can no longer happen. The new solution is simpler and
- error-proof in this respect. The max/mincitenames and
- max/minbibnames options do what their name indicates and are fully
- supported by Biber. The max/minnames options now serve as master
- options which set both max/minbibnames and max/mincitenames:
-
- max/minnames -> max/mincitenames
- -> max/minbibnames
- max/mincitenames -> frontend+backend
- max/minbibnames -> frontend+backend
-
- We didn't bother to update the BibTeX backend as it is due to be
- discontinued this fall anyway. The BibTeX backend will get the
- max/mincitenames values only.
-
-* [CAVEAT] Removed local max/minnames and max/minitems options
-
- As part of the above change, I've removed the local max/minnames
- and max/minitems options from \printbibliography and friends to
- enforce consistency. Please use the global options instead.
-
-* Added maxalphanames/minalphanames [Biber only]
-
- With Biber, the 'labelalpha' field may now be configured
- independently of max/mincitenames with the newly introduced
- package options max/minalphanames.
-
-* MD5 hashes, per-name hashes [Biber only]
-
- With Biber, the hashes provided in the namehash/fullhash fields
- are now standard MD5 hashes. This means that they are stable
- across multiple runs, multiple refsections, and multiple
- documents.
-
- We've also added per-name hashes. Every name in every name list
- gets an MD5 hash, which is available in the 'hash' field. Note
- that this field is only available locally in name formatting
- directives.
-
-* Range compression/truncation
-
- This release features a new command for range compression (i.e.,
- format "123-128" as "123-8"). The command is configurable, can
- handle lists of ranges separated by commas and/or semicolons, and
- also normalizes the dashes. Note that combining this with
- \mkpageprefix requires the field format to be set up in a specific
- way. See \mkcomprange in the manual for details.
-
- I've also overhauled the command which truncates ranges by only
- printing the starting page of the range. The original
- \mkpagefirst has been removed because of its awkward syntax. It is
- superseded by \mkfirstpage. Note that this change is not
- backwards-compatible because the syntax of the new command is
- slightly different. You may need to update some format
- definitions.
-
-RELEASE NOTES FOR VERSION 1.5
-
-* Biber update
-
- Biblatex 1.5 requires Biber 0.9.3. It will not work with any
- previous release.
-
-* More name disambiguation modes [Biber only]
-
- We've added some additional modes to the 'uniquename' and
- 'uniquelist' options. Roughly speaking, the new 'min*' modes aim
- for unambiguous citations (mainly author-year) rather than
- disambiguating names in a strict way. There's a section in the
- manual which discusses all the details. See the changelog for
- pointers to the relevant parts of the manual.
-
-RELEASE NOTES FOR VERSION 1.4
-
-* Biber update
-
- Biblatex 1.4 requires Biber 0.9 or higher. It will not work with
- any previous release.
-
-* Advanced name disambiguation in citations [Biber only]
-
- Name disambiguation in citations has been greatly improved and
- extended in this release. We're pretty excited about this feature
- because it has been in the pipeline for such a long time and
- because Biblatex/Biber is, to the best of my knowledge, the only
- bibliographic tool providing fully automated disambiguation of
- names in citations.
-
- There are now two options controlling name disambiguation,
- 'uniquename' and 'uniquelist'. You can use either option
- stand-alone or combine both. This is best explained by way of
- example. Consider the following data:
-
- John Smith/John Doe 2011
- John Smith/Jane Doe 2011
- John Smith/Edward Doe 2011
-
- Let's assume we're using the standard 'authoryear' style and set
- uniquename=false. In this case, we would get the following
- citations:
-
- Smith and Doe 2011a
- Smith and Doe 2011b
- Smith and Doe 2011c
-
- The extra letter appended to the year (that's the automatically
- generated 'extrayear' field provided by the 'labelyear' option)
- disambiguates the citations. Many style guides, however, mandate
- that the extra letter be used to disambiguate works by the same
- author(s) only, not works by different authors with the same last
- name. In order to disambiguate the author's last name, you're
- expected to add additional parts of the name, either as initials
- or in full. This is what the 'uniquename' option does. Here are
- the same citations with uniquename=init:
-
- Smith and J. Doe 2011a
- Smith and J. Doe 2011b
- Smith and E. Doe 2011
-
- 'uniquename=init' restricts name disambiguation to initials. Since
- the first two Does are still ambiguous at that point, we need to
- fall back to 'extrayear'. With uniquename=full, names are printed
- in full where required:
-
- Smith and John Doe 2011
- Smith and Jane Doe 2011
- Smith and E. Doe 2011
-
- In the past, this feature was of limited use since it only worked
- for entries with a single author/editor. It now works for any name
- at any point in the list. Since this is only possible with Biber,
- the feature has been removed entirely from the BibTeX backend.
-
- When it comes to lists of names, there's another aspect to
- ambiguity. Let's call it list ambiguity. Consider the following
- data:
-
- Doe/Jones/Smith 2011
- Smith/Johnson/Doe 2011
- Smith/Doe/Edwards 2011
- Smith/Doe/Jones 2011
-
- Most author-year and author-title styles will truncate long
- author/editor lists in citations. For example, with maxnames=1
- we'd get:
-
- Doe et al. 2011
- Smith et al. 2011a
- Smith et al. 2011b
- Smith et al. 2011c
-
- Since the author lists are ambiguous after truncation, the
- 'extrayear' marker is added by the style in order to ensure unique
- citations. Here again, many style guides mandate that the extra
- letter be used to disambiguate works by the same authors only. In
- order to disambiguate author lists, you're typically required to
- add more names, exceeding the maxnames/minnames truncation point.
- The new 'uniquelist' feature introduced in this release does that
- automatically. With maxnames=1 and uniquelist=true, we get:
-
- Doe et al. 2011
- Smith, Johnson et al. 2011
- Smith, Doe and Edwards 2011
- Smith, Doe and Jones 2011
-
- As seen above, the 'uniquelist' option overrides the 'maxnames'
- setting on a per-entry basis. Essentially, what happens is that
- the "et al." parts of the citations get expanded to the point of
- no ambiguity -- but no further than that.
-
- 'uniquename' and 'uniquelist' may also be combined. Consider the
- following data:
-
- John Doe/Jane Smith/William Jones 2011
- John Doe/John Smith/William Jones 2011
- John Doe/Edward Smith/William Jones 2011
- John Doe/John Edwards/William Jones 2011
- John Doe/John Edwards/Jack Johnson 2011
-
- With maxnames=1:
-
- Doe et al. 2011a
- Doe et al. 2011b
- Doe et al. 2011c
- Doe et al. 2011d
- Doe et al. 2011e
-
- With maxnames=1, uniquename=true, uniquelist=true:
-
- Doe, Jane Smith et al. 2011
- Doe, John Smith et al. 2011
- Doe, E. Smith et al. 2011
- Doe, Edwards and Jones 2011
- Doe, Edwards and Johnson 2011
-
- If multiple disambiguation options are active, names are
- disambiguated first and works last. The order is as follows:
-
- 1. uniquename
- 2. uniquelist
- 3. extrayear, singletitle
-
- Adding this feature to existing styles is simple. The 'uniquename'
- information needs to be evaluated in the name formatting directive
- which controls the formatting of the 'labelname' list. The default
- definition in biblatex.def is responsive to the 'uniquename'
- option. If you're using that, just enable the package option and
- that's it. If you're using a different format, check biblatex.def
- on how to incorporate the 'uniquename' feature.
-
- Adding support for 'uniquelist' is also trivial. If the second
- optional argument of \printnames is omitted (i.e., no explicit
- range is specified), \printnames{labelname} will print the
- 'labelname' list up to the truncation point defined with the
- 'maxnames'/'minnames' package options. If 'uniquelist' is enabled,
- it will simply override 'maxnames' on a per-entry basis, i.e.,
- \printnames will print the 'labelname' list up to point of no
- ambiguity. Unless you're specifying explicit ranges, all you need
- to do is enable the 'uniquelist' package option.
-
-* Name disambiguation in standard styles [Biber only]
-
- All standard author-year and author-title styles now enable
- uniquename/uniquelist disambiguation. Of course this only works
- when using Biber.
-
-RELEASE NOTES FOR VERSION 1.3
-
-The list of changes in Biblatex is fairly short this time. Most of
-the big feature improvements are found in Biber.
-
-* Biber 0.8.3, Biber in TeX Live main.
-
- Update Biber to version 0.8.3 when upgrading to biblatex 1.3. Note
- that Biber is now available from the main TeX Live repository.
- This means that you don't need to point tlmgr to TLContrib any
- more. It also implies that more architectures are supported.
-
-* Experimental Zotero and EndNote import [Biber only]
-
- Biber now features import support for the Zotero RDF/XML and
- EndNote XML formats. See the Biber manual for details and caveats.
-
-* Fine-grained name delimiter/spacing controls [Biber only]
-
- The spacing between name parts and line breaks in names can now be
- customized in great detail, especially with Biber. With BibTeX,
- customization is much more limited but still possible to some
- extent. See the manual for details.
-
-* Added citation counter
-
- As its name suggests, the new 'citecounter' feature counts
- citations, i.e., it indicates how many times an entry is cited in
- a reference section. The value of the 'citecounter' counter refers
- to the total per-entry/per-refsection citation count.
-
- The counter works much like the citation trackers. It is useful
- for styles which handle initial and repeated citations
- differently. For example, you may want to suppress the
- introduction of a shorthand of an entry in the initial citation if
- it is cited only once anyway.
-
-* Added \smartcite command
-
- I've added a new citation command called \smartcite (along with
- \Smartcite, \smartcites, etc.). Essentially, this is a \footcite
- command which behaves like \parencite when used in a footnote.
- It's particularly useful in conjunction with autocite=footnote as
- it makes \autocite even more versatile.
-
- Style authors should note that the default setup for
- autocite=footnote has been modified and now uses \smartcite
- instead of \footcite. Providing a \smartcite command is
- straightforward. In most cases, all you need to do in your style
- is duplicate the definition of \footcite and adapt the wrapper
- code like so:
-
- \DeclareCiteCommand{\smartcite}
- [\iffootnote{\mkbibparens}{\mkbibfootnote}]
- {...}
- {...}
- {...}
- {...}
-
-RELEASE NOTES FOR VERSION 1.2
-
-* Remote resources, experimental RIS import [Biber only]
-
- Biber 0.8 features support for remote .bib files (HTTP/FTP) and
- experimental RIS file import. See the Biber manual and
- \addbibresource in the biblatex manual for details.
-
-* \bibliography superseded by \addbibresource
-
- As Biber development opens new possibilities, I've refactored the
- user interface for specifying bibliographic resources.
- \bibliography is superseded by \addbibresource. There are two
- differences when using \addbibresource:
-
- 1) Always give the full file name, do not omit the .bib extension.
- 2) No comma-separated lists, use one \addbibresource per bib file.
-
- For example, the old form:
-
- \bibliography{file1,file2}
-
- is superseded by:
-
- \addbibresource{file1.bib}
- \addbibresource{file2.bib}
-
- \addbibresource also supports options:
-
- \addbibresource[location=local,type=file,datatype=bibtex]{file1.bib}
-
- You only need to specify options which differ from the defaults
- (local/file/bibtex), e.g.:
-
- \addbibresource[datatype=ris]{file.ris}
- \addbibresource[location=remote]{ftp://192.168.3.57/~fred/file1.bib}
-
- The change is fully backwards compatible since \bibliography is
- still available. There is no need to update existing files but
- \addbibresource is the recommended way for new files.
-
-* Smart/customizable 'crossref' data inheritance [Biber only]
-
- Biber has been supporting 'crossref' customization for some time
- but the biblatex user interface was still missing. This release
- finally adds a user interface. This means that you may configure
- how the data is inherited from the entry the 'crossref' field
- refers to. The manual has all the details, including the default
- settings.
-
- If you're using the 'crossref' field, this change is a significant
- one since the smart data inheritance is set up by default. By
- 'smart' I mean a sensible parent/child field mapping which
- replaces BibTeX's symmetric mapping. There is no need any more to
- duplicate fields.
-
- BibTeX crossref:
-
- book -> inbook
- -----------------------------------
- title -> title
- booktitle -> booktitle
-
- Biber crossref:
-
- book -> inbook
- -----------------------------------
- title -> booktitle
-
-* New multi-volume entry types
-
- There are four new entry types in this release: mvbook,
- mvcollection, mvproceedings, mvreference. They are similar to the
- established types without the 'mv' prefix but indicate a
- multi-volume work explicitly.
-
- This difference is crucial of you want to leverage Biber's
- 'crossref' support because titles are inherited differently in
- this case:
-
- book -> inbook
- -----------------------------------
- title -> booktitle
- subtitle -> booksubtitle
- titleaddon -> booktitleaddon
-
- mvbook -> inbook
- -----------------------------------
- title -> maintitle
- subtitle -> mainsubtitle
- titleaddon -> maintitleaddon
-
-RELEASE NOTES FOR VERSION 1.1
-
-Starting with this release, we'll leverage the possibilities of Biber
-to support features not possible with BibTeX. That's why most major
-new features in this release are 'Biber only'.
-
-* Biber update
-
- Update Biber to version 0.7 when installing Biblatex 1.1. The
- latest Biber is available from this location:
-
- http://sourceforge.net/projects/biblatex-biber/files/
- biblatex-biber/current/
-
- Ready-to-run binaries are here:
-
- http://sourceforge.net/projects/biblatex-biber/files/
- biblatex-biber/current/binaries/
-
-* Configurable sorting schemes [Biber only]
-
- This release introduces configurable sorting schemes. With Biber,
- you may now set up arbitrary sorting specs. The new custom sorting
- specs are very powerful and come with a flexible user interface.
- See \DeclareSortingScheme, \DeclareSortExclusion, and
- \DeclarePresort in the manual for details. Like the predefined
- sorting specs, new ones are activated with the 'sorting' option.
-
- If you are using Biber, all known sorting schemes are still
- available by default, but they are now defined in biblatex.def
- instead of being hard-coded in the backend.
-
- If you are using BibTeX, note that the old hard-coded schemes in
- biblatex.bst have not been altered. They continue to work as they
- did before, but you can't modify them or define new ones.
-
-* Configurable 'labelname'/'labelyear' [Biber only]
-
- The special fields 'labelname'/'labelyear' may now be customized
- by style authors. In conjunction with the configurable sorting
- schemes, this dramatically increases biblatex's flexibility,
- especially with author-year, author-title, and verbose styles. See
- \DeclareLabelname and \DeclareLabelyear in the manual for details.
-
-* Introducing per-type package options
-
- Starting with this release, certain package options may be set on
- a per-type basis. Use the new optional argument of
- \ExecuteBibliographyOptions to specify the type. Note that most
- per-type options are 'Biber only'. For details, see the rather
- lengthy list of per-type options in the changelog.
-
-* Improved static entry sets [Biber only]
-
- Static entry sets (i.e., @set entries in the bib file) are now
- natively supported by Biber. This means that instead of the rather
- convoluted old setup:
-
- @Set{set1,
- entryset = {key1,key2,key3},
- crossref = {key1},
- }
- @Article{key1,
- entryset = {set1},
- author = {...},
- title = {...},
- ...
- }
- @InCollection{key2,
- entryset = {set1},
- author = {...},
- title = {...},
- ...
- }
- @Article{key3,
- entryset = {set1},
- author = {...},
- title = {...},
- ...
- }
-
- defining a static set is now as simple as this:
-
- @Set{set1,
- entryset = {key1,key2,key3},
- }
-
- The 'crossref' in the @set head entry and the 'entryset' pointers
- in the member entries are no longer required. Defining a static
- set is now as simple as adding a @set entry with an 'entryset'
- field specifying the set. That's all.
-
- Since there are no 'entryset' pointers in the member entries, the
- members may be part of a set in one document/refsection and
- stand-alone references in another one, depending on the presence
- of the @set entry. If the @set entry is cited, the set members are
- grouped automatically. If not, they behave like regular entries.
-
-* Introducing dynamic entry sets [Biber only]
-
- Dynamic entry sets are a new way of grouping entries. They differ
- from static ones in that they are not defined in the bib file but
- declared in the document, i.e., they work on a per-document/
- per-refsection basis. Instead of defining a set in the bib file:
-
- @Set{set1,
- entryset = {key1,key2,key3},
- }
-
- you declare it like that in the document:
-
- \defbibentryset{set1}{key1,key2,key3}
-
- This works anywhere in the document, including the document body.
- Apart from that, dynamic entry sets work exactly like static ones.
- See the manual for more information.
-
-* mcite/mciteplus-like citation commands [Biber only]
-
- Users of the mcite/mciteplus packages are already familiar with
- the concept of a dynamic entry set. With mcite/mciteplus, sets are
- defined as they are cited. To facilitate migration to biblatex,
- this release comes with a special citation module which provides
- mcite/mciteplus-like citation commands on top of the commands
- provided by the main citation style. For example, the following
- command:
-
- \mcite{setA,*keyA1,*keyA2,*keyA3}
-
- is equivalent to this:
-
- \defbibentryset{setA}{keyA1,keyA2,keyA3}\cite{setA}
-
- Note that there is a syntactical difference between biblatex's
- dynamic entry sets and the citation grouping of mcite/mciteplus.
- With mcite/mciteplus, the first set member plays double-duty as
- group identifier. With biblatex, an entry set is an entity in its
- own right which requires a unique entry key.
-
- For example, an mcite citation group is declared like this:
-
- \cite{keyA1,*keyA2,*keyA3}
-
- In contrast to that, a dynamic entry set defined with one of the
- commands provided by biblatex's 'mcite' package option is set up
- like that:
-
- \mcite{setA,*keyA1,*keyA2,*keyA3}
-
- Note the extra identifier 'setA': this is the entry key assigned
- to the set. See the manual for further details.
-
-* Low-level bibliography filters
-
- The \defbibfilter command and the 'filter' option of
- \printbibliography are now supplemented by \defbibcheck and the
- corresponding 'check' option.
-
- Conceptually, a 'check' is like a filter controlling which entries
- are included in a certain (sub-)bibliography. In contrast to
- filters, however, the checks don't use a high-level syntax. Checks
- are macros which directly employ the low-level conditionals of
- biblatex's data interface. Here's an example 'check' which tests
- if an entry has an abstract:
-
- \defbibcheck{hasabstract}{%
- \iffieldundef{abstract}{\skipentry}{}%
- }
- ...
- \printbibliography[check=hasabstract]
-
- This will only print entries with an 'abstract' field. More complex
- checks are possible as well. For example, this check will exclude
- all entries published prior to the year 2000:
-
- \defbibcheck{recent}{%
- \iffieldint{year}
- {\ifnumless{\thefield{year}}{2000}
- {\skipentry}
- {}}
- {\skipentry}}
-
- See the manual for further details.
-
-* More flexible 'maxnames'/'minnames' controls
-
- I've added some additional package options related to 'maxnames'/
- 'minnames'. See 'maxbibnames'/'minbibnames' and 'maxcitenames'/
- 'mincitenames' in the manual.
-
- The new options don't introduce entirely new functionality. They
- are rather convenience options which allow setting 'maxnames'/
- 'minnames' in a more flexible way. For example, setting the
- 'maxbibnames' option like this:
-
- \usepackage[maxnames=3,maxbibnames=99]{biblatex}
-
- is equivalent to:
-
- \usepackage[maxnames=3]{biblatex}
- \begin{document}
- ...
- \printbibliography[maxnames=99]
-
- 'maxcitenames' does the same for all citations.
-
-* Defining and resetting per-type formats
-
- \DeclareFieldFormat and related commands support per-type
- formatting directives. By default, biblatex uses this feature to
- format the 'title' field depending on the entry type. For example,
- book titles are printed in italics, article titles use quotes
- instead. In previous releases, lines like the following ones were
- found in biblatex.def:
-
- \DeclareFieldFormat{title}{\mkbibemph{#1}}
- \DeclareFieldFormat[article]{title}{\mkbibquote{#1}}
- \DeclareFieldFormat[inbook]{title}{\mkbibquote{#1}}
- ...
-
- This release brings two new features related to that.
-
- 1) \DeclareFieldFormat and related commands now support a
- comma-separated list of entry types. This facilitates the
- definition of per-type formats:
-
- \DeclareFieldFormat{title}{\mkbibemph{#1}}
- \DeclareFieldFormat[article,inbook,...]{title}{\mkbibquote{#1}}
-
- 2) \DeclareFieldFormat and friends now come with a starred variant
- which resets all type-specific formats. With previous releases,
- removing or modifying the formatting could be tedious if you
- didn't make that book/article distrinction. You had to change the
- default plus all type-specific formats:
-
- \DeclareFieldFormat{title}{#1}
- \DeclareFieldFormat[article]{title}{#1}
- \DeclareFieldFormat[inbook]{title}{#1}
- ...
-
- The new starred commands do that in one shot:
-
- \DeclareFieldFormat*{title}{#1}
-
- Note that the default formatting has not been altered. It's just a
- bit easier to modify it now.
-
-* New option 'mergedate' (authoryear style)
-
- By popular request, I've added a 'mergedate' option to the
- 'authoryear' bibliography style. The option controls whether or
- not the date label is merged with the date specification in the
- bibliography.
-
- For example, while mergedate=false outputs:
-
- Doe, John (2008a). Article. In: Journal 23.5 (May 2008),
- pp. 5-24.
-
- mergedate=true will print:
-
- Doe, John (May 2008a). Article. In: Journal 23.5, pp. 15-34.
-
- Note that 'mergedate=true' is in fact the old behavior (and the
- default setting). 'mergedate=false' is the new feature!
-
-RELEASE NOTES FOR VERSION 1.0
-
-Here it finally is, the long-awaited first stable release of
-biblatex. As the 0.9* releases have proven to be very mature and
-reliable, this release is essentially 0.9e with some localization
-updates and minor tweaks. It concludes the 0.9 development cycle
-rather than introducing completely new features.
-
-The stable status basically has two consequences. 1) We'll try to be
-more cautious in terms of backwards compatibility in the future and
-2) Biblatex moves to a different location on CTAN. See below for
-details.
-
-* Development Roadmap
-
- Over the course of the 1.x development cycle, you'll increasingly
- see new features being added which are tagged as 'Biber only' in
- the manual. The BibTeX backend of Biblatex will be maintained for
- some more time but it won't receive any feature updates. There is
- a simple reason for that: the kind of features we'll introduce
- can't be handled by BibTeX (that's why we have Biber, after all).
-
- While you can stay with the BibTeX backend for some more time,
- it's highly advisable to switch to Biber fairly soon as BibTeX
- support will be discontinued at some point. To give you an idea
- of the timescale: we're talking months rather than years.
-
-* New location on CTAN
-
- The package moves from
-
- tex-archive/macros/latex/exptl/biblatex/
- to
- tex-archive/macros/latex/contrib/biblatex/
-
- The pre-bundled TDS archive moves from
-
- tex-archive/install/macros/latex/exptl/
- to
- tex-archive/install/macros/latex/contrib/
-
-* New contrib location on CTAN
-
- There's also a new location for contributed styles:
-
- tex-archive/macros/latex/contrib/biblatex-contrib/
-
- The old exptl/biblatex-contrib/ directory is still available and
- will keep being available as a staging area for styles which are
- work in progress. If your style is considered stable, you may
- want to move it to contrib/biblatex-contrib/. If it's
- experimental, you may prefer exptl/biblatex-contrib/.
-
-* Biber update
-
- When updating Biblatex, make sure you also get the latest Biber
- from this location:
-
- http://sourceforge.net/projects/biblatex-biber/files/
- biblatex-biber/current/
-
- Ready-to-run binaries are here:
-
- http://sourceforge.net/projects/biblatex-biber/files/
- biblatex-biber/current/binaries/
-
-* Modified 'bibencoding' package option, new default
-
- I've renamed 'bibencoding=inputenc' to 'bibencoding=auto' to make
- it clear that this option is not specific to the inputenc package
- and also works with XeTeX/LuaTeX in native UTF-8 mode.
- bibencoding=inputenc is still supported as an alias.
-
- 'bibencoding=auto' is the new package default. This means that
- biblatex by default assumes that the workflow is transparent,
- i.e., that the .bib files use the same encoding as the .tex file.
- Note that it is the input encoding of the .tex (!) file which is
- detected automatically. If the .bib files use a different
- encoding, you always need to specify it explicitly.
-
- If you prefer the old default, you can easily restore it by
- adding the following like to your biblatex.cfg file:
-
- \ExecuteBibliographyOptions{bibencoding=ascii}
-
- The new default setting may trigger some warnings which have not
- been triggered before. Consider this case:
-
- \usepackage[latin1]{inputenc}
- \usepackage{biblatex}
-
- This will trigger a warning instructing you to switch to bibtex8
- or Biber. That's because the defaults are 'backend=bibtex' and
- 'bibencoding=auto'. The latter implies that the .bib files are
- Latin1 encoded but traditional BibTeX can't handle that, hence
- the warning. If the .bib files do in fact use Latin1 encoding it's
- a good idea to heed the advice:
-
- \usepackage[latin1]{inputenc}
- \usepackage[backend=bibtex8/biber]{biblatex}
-
- If they're Ascii, set the encoding explicitly:
-
- \usepackage[latin1]{inputenc}
- \usepackage[bibencoding=ascii]{biblatex}
-
- On the other hand, you may delete all old 'bibencoding=inputenc'
- options as this is the default setting now.
-
-RELEASE NOTES FOR VERSION 0.9e
-
-* Biber update, options 'sortupper', 'sortlocale'
-
- Biber has been updated to version 0.5.7. There are ready-to-run
- binaries for the latest version. If you're using Biber, upgrade
- to 0.5.7 or later when upgrading to biblatex 0.9e.
-
- Biblatex now offers two package options which correspond to
- Biber's command line options --sortupper and --sortlocale, the
- point being that you can set them on a per-document basis. I've
- also added some explanations concerning encodings and locale
- settings. See the changelog for pointers.
-
-* Improved backrefs for @set entries, 'backrefsetstyle' option
-
- I've revised and improved the handling of back references related
- to entry sets. Biblatex is now capable of tracking the @set head
- entry and the set members separately, if so desired.
-
- The new package option 'backrefsetstyle' controls the tracking
- mode. By way of example, consider a set ("set1") with three
- members ("memA", "memB", "memC") and the following input:
-
- on page 1: \cite{set1}
- on page 2: \cite{memA}
- on page 3: \cite{memB}
- on page 4: \cite{memC}
-
- With backrefsetstyle=setonly, this will generate the following back
- references:
-
- set1: 1, 2, 3, 4
- memA: -
- memB: -
- memC: -
-
- With backrefsetstyle=memonly:
-
- set1: -
- memA: 1, 2
- memB: 1, 3
- memC: 1, 4
-
- With backrefsetstyle=setormem:
-
- set1: 1
- memA: 2
- memB: 3
- memC: 4
-
- With backrefsetstyle=setandmem:
-
- set1: 1, 2, 3, 4
- memA: 2
- memB: 3
- memC: 4
-
- With backrefsetstyle=memandset:
-
- set1: 1
- memA: 1, 2
- memB: 1, 3
- memC: 1, 4
-
- With backrefsetstyle=setplusmem:
-
- set1: 1, 2, 3, 4
- memA: 1, 2
- memB: 1, 3
- memC: 1, 4
-
- To take advantage of that in custom styles, only a minor update
- is required. Supporting the @set entry and the set members
- separately is pretty intuitive. Any \printlist command in the
- @set entry will see the 'pageref' list of the @set entry; the
- \printlist commands in the regular drivers (which handle the set
- members) will see the 'pageref' list of the respective member:
-
- \DeclareBibliographyDriver{set}{%
- \entryset{}{}%
- \newunit\newblock % <- NEWLY ADDED
- \printlist{pageref}% <- NEWLY ADDED
- \finentry}
-
- \DeclareBibliographyDriver{<entry type>}{%
- ...
- \printlist{pageref}%
- ...
- }
-
- There are some bibmacros as well as a new \bibpagerefpunct
- separator to help with that, hence the actual code in the
- standard styles works like this:
-
- \DeclareBibliographyDriver{set}{%
- \entryset{}{}%
- \newunit\newblock % <- NEWLY ADDED
- \usebibmacro{setpageref}% <- NEWLY ADDED
- \finentry}
-
- \DeclareBibliographyDriver{<entry type>}{%
- ...
- \setunit{\bibpagerefpunct}\newblock % <- MODIFIED
- \usebibmacro{pageref}%
- ...
- }
-
- That's all. This will ensure that all tracking modes are
- supported.
-
-RELEASE NOTES FOR VERSION 0.9d
-
-* Date formatting options
-
- I've removed all '<date>=none' options as this feature seems to
- be causing some confusion. Setting '<date>=none' was not
- sufficient to suppress a certain date in all cases because date
- specifications may also incorporate elements such as the 'issue'
- field, be tied to the 'url' in a way that leads to erroneous
- formatting if there is no date, etc. I'm afraid selectively
- omitting dates really needs to be handled on the style level.
-
- There's a new set of '<date>=iso8601' options which print
- extended-format ISO-8601 dates. Not all of ISO-8601 is
- implemented, only the core elements of the extended format which
- are also used in .bib files, i.e., "yyyy-mm-dd" for individual
- dates and "yyyy-mm-dd/yyyy-mm-dd" for ranges. Full-scale ISO-8601
- date/time specs like "2005-08-09T18:31:42P3Y6M4DT12H30M17S"
- wouldn't make much sense in a bibliography anyway. Note that
- these options are language agnostic. They will override any
- region-specific settings provided by .lbx files. That's the
- whole point of ISO-8601, after all.
-
-RELEASE NOTES FOR VERSION 0.9c
-
-* Improved reencoding support
-
- Biber 0.5.5 is capable of reencoding the data in bib files on the
- fly. This solution is more robust than biblatex's macro-level
- reencoding with inputenc. With 'backend=biber', biblatex will now
- use Biber instead of inputenc. In addition to that, the biblatex
- code which detects if the bib data needs to be reencoded to match
- the encoding of the tex file is smarter now and should work
- smoothly.
-
- In practice, this simply means that you may always use the
- 'bibencoding' option to specify the encoding of your bib files
- (there was some potential for spurious reencoding steps in
- previous versions), with any backend. It is in fact highly
- recommended to do so for two reasons: 1) the default value is
- 'ascii', and 2) biblatex will warn you if the bib encoding can't
- be handled by the backend you selected.
-
- You may put your platform default in biblatex.cfg; there is no
- need to do that in each and every preamble (you may still
- override all biblatex.cfg settings on a per-document basis in the
- preamble, if required).
-
-* UTF-8 encoded entry keys and bib filenames
-
- Biber 0.5.5 supports UTF-8 encoded entry keys. Biblatex will work
- with UTF-8 keys and filenames when running on an engine with
- native UTF-8 support (i.e., XeTeX or LuaTeX). Macro-level UTF-8
- support with inputenc/inputenx will not do.
-
-* Improved arXiv support
-
- I've added an additional eprint-related field plus two aliases to
- better support arXiv references. The changelog includes pointers
- to the relevant sections of the manual.
-
-RELEASE NOTES FOR VERSION 0.9b
-
-* Extended Biber interface
-
- If you're using Biber as backend, make sure you update Biber as
- well (to version 0.5.4 or higher) because the Biblatex -> Biber
- interface has been extended.
-
- The most obvious effect of this improvement is that Biber is now
- capable of handling multiple refsections in a single pass. If you
- have any 'refsection' environments in a document, you only need to
- run Biber once.
-
-* New dependency: logreq package
-
- Starting with this release, biblatex will use the logreq package
- to write machine-readable messages to an auxiliary log file. When
- installing biblatex 0.9b, make sure to install the logreq package
- as well. It is available from CTAN:
-
- http://www.ctan.org/tex-archive/macros/latex/contrib/logreq/
-
- A TDS archive is available as well:
-
- http://www.ctan.org/tex-archive/install/macros/latex/logreq.tds.zip
-
-* Modified \defbibfilter syntax
-
- I've modified \defbibfilter such that it uses \ifboolexpr (from
- etoolbox.sty) instead of \ifthenelse (from ifthen.sty)
- internally. \ifboolexpr uses a slightly different syntax.
- For example, this definition:
-
- \defbibfilter{example}{%
- \( \type{book} \or \type{inbook} \)
- \and \keyword{abc}
- \and \not \keyword{x y z}
- }
-
- becomes:
-
- \defbibfilter{example}{%
- ( type=book or type=inbook )
- and keyword=abc
- and not keyword={x y z}
- }
-
- There is no need to update existing files since the old
- \ifthenelse syntax is still supported. \defbibfilter will
- implicitly 'translate' at definition time, if required.
-
-* Renamed option 'defernums' to 'defernumbers'
-
- The package option 'defernums' has been renamed to
- 'defernumbers'.
-
-* Prefixed numerical citations, improved 'numeric' styles
-
- I've added three options to \printbibliography which are related
- to numerical citation schemes. They are called 'prefixnumbers',
- 'resetnumbers', and 'omitnumbers'. Note that these options
- require that 'defernumbers' be set globally since they assign the
- numeric labels as the bibliography is generated (as opposed to at
- the beginning of the document body, as the data is read in).
-
- The new options enable the numeric styles to support prefixed
- numerical citations. The following may be accomplished by setting
- 'prefixnumbers' for each prefixed subbibliography:
-
- REFERENCES
- Printed References
- [A1] ...
- [A2] ...
- Online References
- [B1] ...
- [B2] ...
-
- It is also possible to mix one non-prefixed subbibliography with
- one or more prefixed ones (set 'prefixnumbers' for each prefixed
- subbib and 'resetnumbers' for the non-prefixed one) or even to
- mix numerical citations with author-year or author-title
- citations (set 'omitnumbers' for all non-numerical subbibs).
-
- See the files '16-numeric-prefixed-1', '17-numeric-prefixed-2',
- and '18-numeric-hybrid' in the 'examples' subdirectory for
- practical examples.
-
- Adding support for prefixed numerical citations to existing
- numeric styles is trivial. The prefixes set in the argument to
- \printbibliography are available in the 'prefixnumber' field. If
- no prefix has been set, the field is undefined. Hence, in the cbx
- file, simply replace:
-
- \printfield{labelnumber}
-
- with:
-
- \printfield{prefixnumber}%
- \printfield{labelnumber}
-
- In the bbx file, the prefix needs to be incorporated in the
- definition of the bibliography environment. Replace:
-
- \defbibenvironment{bibliography}
- {\list
- {\printfield[labelnumberwidth]{labelnumber}}
- {...}
- {\endlist}
- {\item}
-
- with:
-
- \defbibenvironment{bibliography}
- {\list
- {\printtext[labelnumberwidth]{%
- \printfield{prefixnumber}%
- \printfield{labelnumber}}}
- {...}
- {\endlist}
- {\item}
-
- The numeric styles which ship with biblatex support prefixed
- labels out of the box.
-
-* New author-title style
-
- There's a new style which rounds off the selection of
- author-title styles which ship with biblatex. It's called
- 'authortitle-ticomp' and, as you can tell by the name, it's a
- variant of the 'authortitle-tcomp' style with an 'ibidem'
- feature.
-
-* Improved verbose styles, added 'citepages' option
-
- By popular request, all verbose styles now offer a 'citepages'
- option which deals with the 'pages' field in citations, in
- particular in cases in which the postnote is numerical.
-
- Note that style specific options are only mentioned briefly in
- the manual. They are discussed in greater details in the example
- file for the style (in the 'examples' subdirectory).
-
-* Long + short bibliography strings available
-
- Previous biblatex releases used to pick the long or the short
- version of the strings in the lbx files at file load time,
- depending on the setting of the global 'abbreviate' option.
- Starting with this release, both versions are kept in memory.
-
- In addition to \bibstring and friends, which print the long or
- the short version of the string (depending on the 'abbreviate'
- option), there are now commands like \biblstring and \bibsstring,
- which force the long or the short version, respectively.
-
- Note that the auxiliary macro \lbx@fromlang, which is used in lbx
- files, has been split up into \lbx@lfromlang and \lbx@sfromlang.
-
-* Automatically omit redundant language specifications
-
- Some style guides require that authors indicate the language of all
- foreign-language items in the bibliography. Biblatex's 'language'
- field (which is in fact a list) helps to deal with this
- requirement. If you are writing in more than one language and
- reuse the same set of bib files in different contexts, it is
- convenient to include this information whenever you add a new
- entry to a bib file. However, this leads to redundant
- information. It is rather odd to indicate "English" in the
- reference to an English book cited in an English article.
-
- The 'clearlang' option and \DeclareRedundantLanguages avoid such
- redundant language specifications. \DeclareRedundantLanguages
- maps languages as indicated in the 'language' field to the
- language identifiers of the babel package. Given this
- information, biblatex can omit the language if it matches the
- language of the document. Technically, this means that the
- 'language' field will appear as undefined to styles, so it is
- safe to simply use '\printlist{language}' in styles and let
- biblatex sort out the rest.
-
- The 'clearlang' option controls this feature globally.
- \DeclareRedundantLanguages mappings are typically included in lbx
- files (but may also be given on a per-document basis in the
- preamble). All standard lbx files which ship with biblatex now
- include such mappings and 'clearlang' is enabled by default.
-
-RELEASE NOTES FOR VERSION 0.9a
-
-This release adds a few changes and improvements which were
-originally scheduled for biblatex 0.9 but somehow got lost in the
-release process or didn't make it in time. Pay attention to all
-changes tagged as "CAVEAT".
-
-* [CAVEAT] Prenote placement with \cite, \textcite [numeric/alphabetic]
-
- The placement of the prenote in all numeric and alphabetic styles
- has been modified.
-
- Old format:
-
- \cite[see][15]{key} -> see [1, p. 15]
- \parencite[see][15]{key} -> [see 1, p. 15]
- \textcite[see][15]{key} -> see Doe [1, p. 15]
-
- New format:
-
- \cite[see][15]{key} -> [see 1, p. 15]
- \parencite[see][15]{key} -> [see 1, p. 15]
- \textcite[see][15]{key} -> Doe [see 1, p. 15]
-
- As seen in the above examples, the new format places the prenote
- inside the brackets. If you want the prenote outside of the
- brackets, you can simply use:
-
- see \cite[15]{key} -> see [1, p. 15]
- see \textcite[15]{key} -> see Doe [1, p. 15]
-
- which is similar to the old format.
-
-* [CAVEAT] Prenote placement with \textcite [authoryear/authortitle]
-
- The placement of the prenote in all authoryear and authortitle
- styles has also been modified.
-
- Old format:
-
- \cite[see][15]{key} -> see Doe 2010, p. 15
- \parencite[see][15]{key} -> (see Doe 2010, p. 15)
- \textcite[see][15]{key} -> see Doe (2010, p. 15)
-
- New format:
-
- \cite[see][15]{key} -> see Doe 2010, p. 15
- \parencite[see][15]{key} -> (see Doe 2010, p. 15)
- \textcite[see][15]{key} -> Doe (see 2010, p. 15)
-
- The new format places the prenote inside the brackets. If you
- want the prenote outside of the brackets, you can simply use:
-
- see \textcite[15]{key} -> see Doe (2010, p. 15)
-
- which is similar to the old format.
-
-* [CAVEAT] Introducing \defbibenvironment
-
- I'm phasing out the thebibliography/theshorthands environments
- and the corresponding commands \thebibitem and \thelositem.
- Essentially, the old way of controlling the (high-level) layout
- of the bibliography and the list of shorthands is replaced by a
- new mechanism based on \defbibenvironment. It's not radically
- different. For example, where a style has code like this:
-
- \renewenvironment*{thebibliography}
- {\list{}{...}}
- {\endlist}
- \renewcommand*{\thebibitem}{\item}
-
- \renewenvironment*{theshorthands}
- {\list{}{...}}
- {\endlist}
- \renewcommand*{\thelositem}{\item}
-
- replace it with:
-
- \defbibenvironment{bibliography}
- {\list{}{...}}
- {\endlist}
- {\item}
-
- \defbibenvironment{shorthands}
- {\list{}{...}}
- {\endlist}
- {\item}
-
- The new system is similar to \defbibheading: you use
- \defbibenvironment to define the environment and the new 'env'
- option of \printbibliography and \printshorthands to select it.
- The point of the new system is that you can have different styles
- for different (partial) bibliographies in a document. It's also
- conceptually in line with \defbibheading now.
-
- I've added some compatibility code to biblatex. Older styles
- using thebibliography/thebibitem and theshorthands/thelositem
- will continue to work until you use \defbibenvironment for the
- first time to modify the default definition. From that point on,
- the old environment will be ignored.
-
- Updating old styles is of course highly recommended. The
- compatibility code may be removed from biblatex after 1.0. The
- standard styles have been updated to use the new syntax. They
- will ignore any changes based on the old definitions.
-
-* Added \printbibheading
-
- \printbibheading is the heading part of \printbibliography. This
- is useful for subdivided bibliographies. E.g., instead of
-
- \chapter{\bibname}
- \printbibliography[heading=subbibliography,type={...},...]
- \printbibliography[heading=subbibliography,type={...},...]
- ...
-
- you use:
-
- \printbibheading % = \printbibheading[heading=bibliography]
- \printbibliography[heading=subbibliography,type={...},...]
- \printbibliography[heading=subbibliography,type={...},...]
- ...
-
- The point is that the overall heading is in sync with the
- subheadings.
-
-* Smart parentheses and brackets
-
- This release adds a new 'parenthesis tracker', i.e., if
- parentheses and/or brackets are nested, biblatex alternates
- between parentheses and brackets, depending on the nesting level.
- E.g.:
-
- \mkbibparens{text \mkbibparens{text} text}
- \mkbibbrackets{text \mkbibbrackets{text} text}
-
- yields
-
- (text [text] text)
- [text (text) text]
-
- This also works with \bibopenparen + \bibcloseparen and
- \bibopenbracket + \bibclosebracket as well as the new citation
- commands \parentext and \brackettexts.
-
-* Open ended date ranges
-
- There's one thing I forgot to mention when introducing the new
- date fields in the previous release. It is possible to specify an
- open ended range by leaving the end date blank:
-
- 1988/1992 = 1988-1992
- 1988/ = 1988-today
- 1988 = 1988
-
- Open ended ranges are represented by a defined but empty
- "endyear" component on the level of the style interface:
-
- date = {1988} -> day = undefined
- month = undefined
- year = "1988"
- endday = undefined
- endmonth = undefined
- endyear = undefined
-
- date = {1988/} -> day = undefined
- month = undefined
- year = "1988"
- endday = undefined
- endmonth = undefined
- endyear = EMPTY
-
- date = {1988/1992} -> day = undefined
- month = undefined
- year = "1988"
- endday = undefined
- endmonth = undefined
- endyear = "1992"
-
- All high-level date commands like \printdate detect and handle
- open ended ranges autoamtically. Use
-
- \iffieldequalstr{endyear}{}
- {true}
- {false}
-
- if you want to test for open ended ranges explicitly.
-
-* Extended language support: Finnish
-
- This release comes with a finnish.lbx file. The translations
- have been contributed by Hannu V\"ais\"anen.
-
-* Updated language support: Greek
-
- This release comes with an updated greek.lbx file contributed
- by biblatex user Prokopis.
-
-* Updated examples, some updates in the manual
-
- Some of the examples which ship with biblatex were not completely
- up to date in the 0.9 release. They have been updated now. I've
- also corrected/added a few minor points in the manual.
-
-RELEASE NOTES FOR VERSION 0.9
-
-Several features on my 'to do' list have been deferred because they
-introduce backwards compatibility issues. I wanted to implement them
-all in one shot so that style authors only need to update their
-styles once. This release finally takes that step. In other words:
-
- THIS VERSION IS NOT FULLY BACKWARDS COMPATIBLE!
-
-Style authors will most likely need to update their styles to make
-them work with this release. You will find detailed hints about what
-needs to be updated in the release notes below. Changes which raise
-backwards compatibility issues are tagged as "CAVEAT". Users who
-rely on styles found in:
-
- macros/latex/exptl/biblatex-contrib/
-
-on CTAN are advised to stick with biblatex 0.8 for the time being
-and defer the upgrade to 0.9 until the styles they use have been
-updated. If you have accidentally installed this release and find
-out that you need to downgrade, you can get the previous biblatex
-release from the project page on Sourceforge:
-
- http://sourceforge.net/projects/biblatex/files/
-
-CTAN always carries the latest version.
-
-I have received many inquiries about why biblatex is not yet
-included in TeX Live and MikTeX and why I was maintaining that nasty
-do-not-distribute clause. There seems to be some confusion about
-what the term 'stable' means. The point typically brought up was
-that biblatex runs well and is thus 'stable'. Well, in that sense,
-biblatex has been pretty stable since version 0.1. However, it has
-not been stable in the sense of maintaining backwards compatibility
-since version 0.1. This release, however, is finally considered
-suitable for wider distribution.
-
-* Distributing biblatex
-
- This release should be a reasonable target for TeX distributions,
- even though biblatex is still tagged as 'beta' and located in the
- experimental branch on CTAN. I will make the move to the stable
- branch when it hits 1.0. Given the number of changes and new
- features in this release, it's quite possible that some bugs
- slipped in. If you start packaging biblatex now, be prepared for
- some maintenance releases (i.e., 0.9a, 0.9b, etc.) in the
- upcoming weeks.
-
- A few more notes to distributors:
-
- - See the README file for requirements and dependencies.
-
- - The *.csf files in doc/resources go into TEXMF/bibtex/csf/.
- The names will not conflict with the *.csf files shipping with
- biblatex8. Biblatex uses names like latin1.csf while biblatex8
- uses 88591lat.csf.
-
- - It would be nice to have two copies of biblatex-examples.bib
- installed, one in TEXMF/doc for users looking for documentation
- in the usual place and a second copy in TEXMF/bibtex/bib/.
- Since users are encouraged to use this database in minimal
- examples, it's handy to have it readily available.
-
- - Biber is the next-generation backend of biblatex. It would be
- very welcome to have a Biber package as well. See the project
- page on http://biblatex-biber.sourceforge.net/ for details.
- Note that biblatex currently supports three backends: BibTeX
- (i.e., traditional 7-bit BibTeX), bibtex8, and Biber.
- BibTeX/bibtex8 support will be discontinued in biblatex 2.x.
-
- - A package for the contributed styles found in
-
- macros/latex/exptl/biblatex-contrib/
-
- is also welcome because some of these styles are already very
- popular. However, wait for the styles in to be updated to
- biblatex 0.9 before packaging them.
-
-* Contributing to biblatex
-
- Localizing biblatex heavily depends on user contributions. I've
- added a new tracker named 'Contrib' to the project page which
- will hopefully help to organize this process:
-
- http://sourceforge.net/tracker2/?group_id=244752
-
- There is one item for each language supported by biblatex. The
- status of the item reflects the localization status of the
- corresponding language. If the status is "open", the localization
- module is incomplete or in need of peer review by a native
- speaker. If the status is "closed", the module is complete and
- there are no known issues (you can still post comments to closed
- items and upload files if you want to suggest improvements).
-
- If you have updates for a language module, upload the updated
- *.lbx file in the appropriate thread. If you want to contribute
- support for a new language, simply open a new tracker item.
-
-* Updating existing biblatex styles
-
- As usual, the full list of changes is found in the biblatex
- manual. The release notes you are just reading mention all
- changes which are not backwards compatible. Pay attention to all
- "CAVEAT" points.
-
- When you update your style, it may be a good idea to add some
- code which checks that the style is running under biblatex 0.9 or
- later. You can use the standard LaTeX \@ifpackagelater test for
- this purpose. Here's some sample code (where 'YYYY/MM/DD' needs
- to be replaced with the real release date of biblatex 0.9 and
- 'MYSTYLE' with the name of your style):
-
- \@ifpackagelater{biblatex}{YYYY/MM/DD}
- {}
- {\PackageError{biblatex}
- {Outdated 'biblatex' package}
- {The 'MYSTYLE' style requires biblatex v0.9 or later.\MessageBreak
- You are using: '\csuse{ver@biblatex.sty}'.\MessageBreak
- This is a fatal error. I'm aborting now.}%
- \endinput}
-
- Since \@ifpackagelater is in fact a 'greater than or equal' test,
- you can simply replace YYYY/MM/DD with the date found in the
- \ProvidesPackage declaration at the top of biblatex.sty.
-
-* New Biber interface
-
- Biber is the next-generation database backend of biblatex. It is
- available from:
-
- http://biblatex-biber.sourceforge.net/
-
- If you decide to use Biber, set 'backend=biber' (preferably in
- biblatex.cfg) and upgrade to Biber 0.5 or higher. Biblatex 0.9
- uses a new interface to talk to Biber hence you must specify
- backend=biber and use the latest Biber version.
-
- Note that biblatex and Biber use separate bug trackers. If you're
- using Biber and find a bug, try your example with a different
- backend. If the problem persists, report it as a biblatex bug. If
- not, report it as a Biber bug.
-
-* [CAVEAT] Revised and expanded date fields
-
- All date fields have been expanded such that they support ranges
- in 'start/end' format. Of course it is still possible to specify
- a single date and you may also truncate dates at the end. In sum,
- the following examples are all valid date specifications:
-
- 1850
- 1967-02
- 2009-01-31
- 1988/1992 <- this is a range (from 1988 until 1992)
- 2002-01/2002-02
- 1995-01-31/1995-02-05
-
- This format is supported by the following fields: 'date',
- 'origdate', 'eventdate', 'urldate' (for the sake of consistency
- in the case of 'urldate'). I have also removed or modified some
- of the fields for date components (e.g., 'day', 'urlday', etc.):
-
- * [CAVEAT] The field 'day' has been removed. Use the 'date' field
- instead to specify full dates.
-
- * [CAVEAT] The field 'year' is no longer a range field but a
- literal field. Year ranges should be given in the 'date' field
- instead.
-
- * [CAVEAT] I've removed the field 'origyear' and added 'origdate'
- as a replacement. 'origdate' is similar to 'date', i.e., it
- takes a date specification in 'yyyy-mm-dd' format and supports
- date ranges in 'start/end' format.
-
- * [CAVEAT] The fields 'urlday', 'urlmonth', 'urlyear' have been
- removed. Use 'urldate' instead.
-
- * I've added an 'eventdate' field. This is also a date range
- field.
-
- USERS: You will probably need to update your bib files. The
- changes which are most likely to cause incompatibilities are the
- removal of the 'day' field and the modification of 'year'. Use
- 'date' instead were required. The removal/renaming of 'origyear'
- may also require a few changes. I doubt than many users are
- specifying access dates using urlday+urlmonth+urlyear. Since
- 'urldate' has been extended but not modified in an incompatible
- way, this change should be fairly transparent.
-
- AUTHORS: The way the date components are made available to styles
- has not changed. For example, the components of the publication
- date are available as day/month/year no matter whether they were
- given in the 'date' field or in 'year' and 'month'. In sum,
- 'date'-like fields are split up as follows:
-
- *.bib file style interface
- ------------------ ------------------
-
- date day
- month
- year
- endday
- endmonth
- endyear
-
- origdate origday
- origmonth
- origyear
- origendday
- origendmonth
- origendyear
-
- eventdate eventday
- eventmonth
- eventyear
- eventendday
- eventendmonth
- eventendyear
-
- urldate urlday
- urlmonth
- urlyear
- urlendday
- urlendmonth
- urlendyear
-
- Fields related to date components which are not available are
- undefined. E.g.:
-
- date = {1988} -> day = undefined
- month = undefined
- year = "1988"
- endday = undefined
- endmonth = undefined
- endyear = undefined
-
- urldate = {2009-01-31}
- -> urlday = "31"
- urlmonth = "01"
- urlyear = "2009"
- urlendday = undefined
- urlendmonth = undefined
- urlendyear = undefined
-
- origdate = {2002-01/2002-02}
- -> origday = undefined
- origmonth = "01"
- origyear = "2002"
- origendday = undefined
- origendmonth = "02"
- origendyear = "2002"
-
- eventdate = {1995-01-31/1995-02-05}
- -> eventday = "31"
- eventmonth = "01"
- eventyear = "1995"
- eventendday = "05"
- eventendmonth = "02"
- eventendyear = "1995"
-
- If there is no 'date' field, biblatex will consider the legacy
- fields 'month' and 'year'. E.g.:
-
- year = {1988} -> day = undefined
- month = undefined
- year = "1988"
- endday = undefined
- endmonth = undefined
- endyear = undefined
-
- year = {1993} -> day = undefined
- month = {5} month = "05"
- year = "1993"
- endday = undefined
- endmonth = undefined
- endyear = undefined
-
- When printing a single date component in a style, use the field
- names listed in the 'style interface' column above (e.g.,
- "\printfield{origmonth}"). There is no 'date' field on the style
- level. However, there is normally no need to fiddle with the date
- component fields directly. See the next point for details.
-
-* [CAVEAT] Modified date interface
-
- The high-level date interface has been revised. The commands
- \bibdate and \biburldate have been renamed and improved. Here's a
- list of the new high-level commands:
-
- \printdate
- \printurldate
- \printorigdate
- \printeventdate
-
- These commands print the respective date, handle ranges, and
- localize the output format. For example, if the publication date
- is a plain year, then \printdate will only print the year. If
- it's a full date, it will print all date components which are
- available. If it's a range, it will format the range. The
- high-level commands need not be wrapped in a \printtext command.
-
- USERS: The change is relevant for style authors only. The standard
- styles have been updated.
-
- AUTHORS: Where your style has code like:
-
- \bibdate
- or \printtext{\bibdate}
-
- and
-
- \biburldate
- or \printtext{\biburldate}
-
- use
-
- \printdate
-
- and
-
- \printurldate
-
- instead. Use \printorigdate and \printeventdate to handle the new
- 'origdate' and 'eventdate' fields.
-
-* [CAVEAT] Modified 'labelyear'
-
- Adding support for date ranges has prompted a refactoring of the
- 'labelyear' mechanism. Essentially, I've renamed the existing
- 'labelyear' field to 'extrayear' and re-added a new 'labelyear'
- field with a different role. The 'maxlabelyear' counter has been
- renamed to 'maxextrayear'. The new mechanism is consistent with
- labelalpha/extraalpha, e.g., 'labelyear' holds the bare year (or
- year range) and 'extrayear' indicates the extra letter used for
- disambiguation (as an integer).
-
- The new 'labelyear' field holds the year components of the 'date'
- field, readily formatted using \bibdatedash as a range separator.
- Identical year components in a date range are detected
- automatically. If there is no 'date' field, the 'year' field will
- be considered instead. Here are some examples:
-
- date = {2003}
- -> labelyear = "2003"
-
- date = {1995-01-31/1995-02-05}
- -> labelyear = "1995"
-
- date = {1995/1998}
- -> labelyear = "1995\bibdatedash 1998"
-
- date = {1998-12-27/1999-01-03}
- -> labelyear = "1998\bibdatedash 1999"
-
- year = {2005}
- -> labelyear = "2005"
-
- If there is neither a 'date' nor a 'year' field then 'labelyear'
- will be undefined.
-
- USERS: The change is relevant for style authors only. The standard
- styles have been updated.
-
- AUTHORS: Where your style has code like:
-
- \printfield{year}%
- \printfield{labelyear}%
-
- use this:
-
- \printfield{labelyear}%
- \printfield{extrayear}%
-
- instead. If you want to concatenate 'extrayear' and the (full)
- publication date in the bibliography, use:
-
- \printdateextra
-
- \printdateextra is similar to \printdate but incorporates the
- 'extrayear' in the date specification.
-
-* [CAVEAT] Revised date localization
-
- The way date specifications are localized in lbx files has been
- refactored. Only \DeclareBibliographyExtras declarations in *.lbx
- files are affected by this change.
-
- Basically, the commands:
-
- \bibdatelong
- \bibdateshort
- \biburldatelong
- \biburldateshort
-
- have been removed and are replaced by the generic commands:
-
- \mkbibdatelong
- \mkbibdateshort
-
- The new commands take three arguments (three field names) and
- arrange them as required by the respective language/locale. The
- new system is more easily extensible.
-
- USERS: The change is relevant for style authors only. The standard
- styles have been updated.
-
- AUTHORS: Even though this point is tagged as 'caveat', it's
- rather unlikely that it will cause any trouble. The change is
- only relevant for style authors who a) ship custom lbx files (or
- users who have adapted some of the stock lbx files) and b) have
- modified the 'extras' (as opposed to inheriting them form the
- stock modules).
-
-* Added/extended package options for date formats
-
- There are now four date formats to choose from: short, long,
- terse, comp. terse and comp are like short and long but render
- date ranges in a more compact format.
-
-* Support for multiple editorial roles
-
- This release adds three additional fields (data type: name list)
- for secondary editors: 'editora', 'editorb', 'editorc'. There are
- also matching 'editor*type' fields. Biblatex now supports up to
- four distinct editoral roles, e.g.:
-
- editor = {Eddy Editor}
- editora = {Freddy Founder}
- editoratype = {founder}
- editorb = {Cory Continuator}
- editorbtype = {continuator}
- editorc = {Rudy Redactor}
- editorctype = {redactor}
-
- USERS: The new fields are fully supported by the standard styles.
-
- AUTHORS: The catch-all 'byeditor+others' macro in biblatex.def
- has been updated to incorporate the new fields. The 'byeditor'
- macro will consider them as well. There's also a dedicated
- 'byeditorx' macro which processes the 'editor[a-c]' lists. In
- other words: if your style relies of the ready-made macros in
- biblatex.def, it will consider the new fields automatically. If
- not, have a look at biblatex.def to get an idea of how to
- incorporate them in your style.
-
-* [CAVEAT] 'redactor' now an editorial role
-
- The field 'redactor' has been removed because the redactor is now
- an editorial role, i.e.:
-
- editor = {Eddy Editor}
- redactor = {Rudy Redactor}
-
- becomes:
-
- editor = {Eddy Editor}
- editora = {Rudy Redactor}
- editoratype = {redactor}
-
- USERS: You may need to update some of your bib files.
-
- AUTHORS: The 'byredactor' macro has been removed from
- biblatex.def because this role is now handled by the
- editor-related macros mentioned above.
-
-* [CAVEAT] Revised lbx files, simplyfied role concatenation
-
- I've simplyfied the role concatenation somewhat. Concatenation is
- now only supported if the primary role is 'editor' (i.e., if the
- 'editortype' field is undefined or holds the string 'editor'). It
- turned out to be too painful to support concatenation for all
- kinds of editorial roles (compiler, redactor, founder, etc.) in
- all languages. This will also make the lbx files much more
- readable and the whole apparatus easier to understand.
-
- It's all a bit difficult to describe but fairly easy to grasp if
- you take a look at the strings in the lbx files. Essentially,
- biblatex 0.8 would define fragmentary type* and bytype* snippets:
-
- typeeditor = {{editor}{...}},
- typecompiler = {{compiler}{...}},
- bytypeeditor = {{edited}{...}},
- bytypecompiler = {{compiled}{...}},
-
- The full strings would then be assembled by auxiliary macros
- which insert the type* and bytype* snippets into the string
- definitions:
-
- editor = {{\lbx@typeeditor}{...}},
- editortr = {{\lbx@typeeditor\ and translator}{...}},
- byeditor = {{\lbx@bytypeeditor\ by}{...}},
- byeditortr = {{\lbx@bytypeeditor\ and translated \lbx@fromlang\ by}{...}},
-
- These are the simplified strings in biblatex >=0.9:
-
- editor = {{editor}{...}},
- compiler = {{compiler}{...}},
- editortr = {{editor and translator}{...}},
- byeditor = {{edited by}{...}},
- bycompiler = {{compiled by}{...}},
- byeditortr = {{edited and translated \lbx@fromlang\ by}{...}},
-
- The old scheme was admittedly more elegant but it simply didn't
- work quite right in all languages.
-
-* Notes on the basic structure of role processing in biblatex.def
-
- The following hints may help you to find your way around the
- ready-made macros and definitions in biblatex.def.
-
- Essentially, a role like 'editor' may be expressed as a function
- or as an action, e.g.:
-
- Bernard Bookmaker, editor, Title, ... [function]
- ... Title, edited by Bernard Bookmaker [action]
-
- Roles which are related to supplementary material in a book, such
- as a commentary or annotations, may also be expressed as an
- object:
-
- ... Title, annotated by Edward Expert [action]
- ... Title, with annotations by Edward Expert [object]
-
- In biblatex.def, the names of the ready-made macros correspond to
- name formats and localization keys:
-
- Macros like editor/translator print a role as a function.
- They use
- - name formats like editor/translator and
- - strings like editor/translator.
-
- Macros like byeditor/bytranslator print a role as an action.
- They use
- - name formats like byeditor/bytranslator and
- - strings like byeditor/bytranslator.
-
- Macros like withcommentator/withannotator print a role as an
- object. They use
- - name formats like withcommentator/withannotator and
- - strings like withcommentator/withannotator.
-
- For example, the bibmacro 'editor' essentially boils down to the
- following code:
-
- \printnames{editor} = \printnames[editor]{editor}
- \bibstring{editor}
-
- The 'byeditor' macro boils down to:
-
- \bibstring{byeditor}
- \printnames[byeditor]{editor}
-
- and the 'withannotator' macro to:
-
- \bibstring{withannotator}
- \printnames[withannotator]{annotator}
-
- The real code is more complex because it needs to take
- punctuation and additional parameters into account (such as the
- 'editortype' field, role concatenation, etc.) but this is the
- basic idea.
-
-* [CAVEAT] Revised indexing controls
-
- The way the indexing facilities are configured has been revised
- and modified. In previous releases, the 'indexing' option would
- enable and disable commands like \indexfield on a low level.
- Starting with this release, the indexing commands are always
- operational. The 'indexing' option controls two new tests called
- \ifciteindex and \ifbibindex which should be used as explicit
- tests.
-
- In the standard styles, indexing is handled by two bibmacros
- called 'citeindex' and 'bibindex'. The old definition was:
-
- \newbibmacro*{citeindex}{%
- \indexnames{labelname}%
- \indexfield{indextitle}}
-
- \newbibmacro*{bibindex}{%
- \indexnames{labelname}%
- \indexfield{indextitle}}
-
- The new one is:
-
- \newbibmacro*{bibindex}{%
- \ifbibindex
- {\indexnames{labelname}%
- \indexfield{indextitle}}
- {}}
-
- \newbibmacro*{citeindex}{%
- \ifciteindex
- {\indexnames{labelname}%
- \indexfield{indextitle}}
- {}}
-
- The point of this change is to make commands like \indexfield
- useable in a more flexible way, regardless of the setting of the
- 'indexing' option. Since they are always operational now, you can
- use them for tasks which require access to the bibliographic data
- but do not print anything, such as setting page headers or
- writing data to some external file.
-
- It is not advisable to use commands like \printfield for this
- purpose because they interface with the punctuation tracker. Use
- \printfield if you really want to print a field and \indexfield
- for other tasks, indexing obviously being the most common
- application.
-
- USERS: From a user's point of view, the new mechanism works like
- the old one.
-
- AUTHORS: Standard citation commands like \cite should always use
- the above bibmacros (citeindex/bibindex) anyway so no change is
- required. You may need to incorporate the \ifciteindex and
- \ifbibindex tests into text citation commands (i.e., commands
- like \citeauthor and \citetitle) if you have redefined the
- standard ones or provide additional ones. All predefined commands
- in biblatex.def have been updated.
-
-* Fallback drivers
-
- Biblatex now supports the fallback entry type "*". If you use the
- asterisk as the type argument of \DeclareBibliographyDriver or
- \DeclareBibliographyAlias, the driver or alias will be used as a
- fallback if no specific driver for a certain type has been
- defined. E.g.:
-
- \DeclareBibliographyDriver{*}{<driver code>}
- \DeclareBibliographyAlias{*}{misc}
-
-* Manual language selection
-
- By default, biblatex detects the babel package if it is loaded
- and can adjust to the selected babel language automatically.
- Using the new 'language' package option, you can now force
- biblatex to load support for a certain language. This will
- implicitly disable babel support and on-the-fly language
- switching. The 'babel' package option is ignored in this case.
-
- This is mainly useful if you can't use babel for some reason.
- Using the automatic babel interface is usually preferable.
-
-* Improved \defbibheading, introducing 'title' option
-
- I've extended \defbibheading and added a 'title' option to
- \printbibliography and \printshorthands. These extensions are
- mainly useful for subdivided bibliographies.
-
- This is best explained by example. With previous biblatex
- releases, subdivided bibliographies required one heading
- definition for each subsection since the heading definition
- included both the format and the text of the heading:
-
- \defbibheading{books}{\section*{Books}}
- \defbibheading{articles}{\section*{Articles}}
- \defbibheading{online}{\section*{Online Resources}}
-
- \chapter{\bibname}
- \printbibliography[type=book,heading=books]
- \printbibliography[type=article,heading=articles]
- \printbibliography[type=online,heading=online]
-
- When using the extended syntax of \defbibheading, the heading
- definition only controls the format but the title may be
- specified by using the 'title' option of \printbibliography and
- \printshorthands. The value of this option will be passed to the
- heading definition as paramater #1. The new optional argument of
- \defbibheading defines the default text which is passed as #1 if
- there is no 'title' option.
-
- \defbibheading{subdiv}[\bibname]{\section*{#1}}
-
- \chapter{\bibname}
- \printbibliography[type=book,heading=subdiv,title={Books}]
- \printbibliography[type=article,heading=subdiv,title={Articles}]
- \printbibliography[type=online,heading=subdiv,title={Online Resources}]
-
- Since biblatex provides a predefined heading called
- 'subbibliography' you don't even need \defbibheading in this
- case. You can simply use 'heading=subbibliography', specify
- 'title={...}', and rely on the predefined heading definitions
- provided by biblatex which support the standard LaTeX classes,
- the KOMA-Script classes, and the memoir class automatically.
-
- The extensions are backwards-compatible. It is still possible to
- use the parameterless form of \defbibheading. Such headings will
- work as expected but the 'title' option of \printbibliography and
- \printshorthands will obviously be ignored in this case.
-
-* More options for \printshorthands, subdivided LOS
-
- I've added more options to \printshorthands. It now supports the
- same options as \printbibliography. This is useful for a
- subdivided list of shorthands.
-
-* Improved author-title and author-year citation styles
-
- I've improved the compact citation styles authortitle-comp,
- authortitle-icomp, authortitle-tcomp, and authoryear-comp. The
- compact format is now supported in multicite commands as well.
-
-* New verbose-trad3 style
-
- This style is similar in concept to verbose-trad2 with a slightly
- different treatment of ibidem and op. cit.
-
-* Eprint support for Google Books/JSTOR/PubMed
-
- I've added eprint handlers for Google Books, JSTOR, and PubMed.
- This means that, instead of
-
- url = {http://books.google.com/books?id=XXu4AkRVBBoC},
-
- you may also use:
-
- eprint = {XXu4AkRVBBoC},
- eprinttype = {googlebooks},
-
- PubMed support is similar. Instead of specifying the full URL
- (where <pmid> is the unique and stable PubMed ID):
-
- url = {http://www.ncbi.nlm.nih.gov/pubmed/<pmid>},
-
- you may also say:
-
- eprint = {<pmid>},
- eprinttype = {pubmed},
-
- By default, this will be printed as "PMID: <pmid>" in the
- bibliography. If hyperref support is enabled, the <pmid> will be
- a clickable link to PubMed.
-
- JSTOR support works exactly like PubMed. When using JSTOR's
- export feature to export citations in BibTeX format, JSTOR uses
- the 'url' field by default (where <number> is a unique
- and stable identifier):
-
- url = {http://www.jstor.org/stable/<number>}
-
- While this will work as expected, full URLs tend to clutter the
- bibliography. You may also use:
-
- eprint = {<number>},
- eprinttype = {jstor},
-
- to get the more readable "JSTOR: <number>" format which also
- supports hyperlinks (the <number> becomes a clickable link).
-
-* More styles for compressed back references
-
- See 'backrefstyle' in the changelog.
-
-* Improved endnotes, added \pagenote support
-
- The \pagenote command, which is provided by the pagenote package
- and the memoir class, is now supported by \mkbibendnote.
- \mkbibendnote prioritizes as follows:
-
- 1) check for \endnote and use it if available
- 2) check for \pagenote and use it if available
- 3) issue a warning and fall back to \footnote
-
- There is also a new 'notetype' option which you may use to
- convert footnotes to endnotes and vice versa (provided that
- they are generated with \mkbibfootnote and \mkbibendnote,
- respectively; the standard \footnote and \endnote commands will
- not be modified).
-
-* Compatibility with UCS package
-
- Previous releases of biblatex were comptabile with inputenc's
- standard UTF-8 module but wouldn't work with the ucs package. This
- release also supports ucs. XeLaTeX's native UTF-8 support should
- also work fine. If you're using UTF-8 encoding you should be
- using Biber instead of BibTeX as a backend.
-
-* Dutch support
-
- This release comes with a dutch.lbx file. The translations have
- been contributed by Alexander van Loon.
-
-* Greek support
-
- As of this release, biblatex speaks Greek, too. The translations
- have been contributed by Apostolos Syropoulos. Note that the
- greek.lbx file requires UTF-8 support. Biblatex generally works
- with
-
- 1) LaTeX and inputenc:
-
- \usepackage[utf8]{inputenc}
-
- 2) LaTeX and inputenc+ucs:
-
- \usepackage{ucs}
- \usepackage[utf8x]{inputenc}
-
- 3) XeLaTeX
-
- Since inputenc's standard utf8 module has no glyph mappings for
- Greek, this leaves Greek users with a choice of 2) or 3). If you
- choose 2), make sure to preload the Greek Unicode range:
-
- \usepackage{ucs}
- \usepackage[utf8x]{inputenc}
- \PreloadUnicodePage{3}
-
- You may also use \PrerenderUnicode if you prefer that. See the
- section about "Known problems" in the UCS (!) manual for
- explanation. You may also need to load additional packages which
- set up Greek fonts. As a rule of thumb, any setup which works with
- regular Greek documents should also work with biblatex.
-
- However, there is one fundamental limitation. As of this writing,
- biblatex has no support for mixing scripts. Bibliographies in
- Greek should work fine, provided that you use Biber as a backend,
- but English and other titles in the bibliography may be rendered
- in Greek letters.
-
- The problem with using LaTeX and macro-level UTF-8 support via
- inputenc/ucs is that processing still happens in an 8-bit
- environment. The inputenc/ucs packages can decode all of UTF-8,
- but in order to typeset Unicode all input needs to be mapped to
- segments of 256 glyphs each because LaTeX only supports 8-bit
- output encodings. If you need multi-script bibliographies,
- XeLaTeX is the only sensible choice since XeTeX uses Unicode all
- the way from input to output.
-
-RELEASE NOTES FOR VERSION 0.8i
-
-This is a bug fix release. There are no new features and the manual
-has not been updated.
-
-RELEASE NOTES FOR VERSION 0.8h
-
-This is a bug fix release. There are no new features and the manual
-has not been updated.
-
-RELEASE NOTES FOR VERSION 0.8g
-
-This is a bug fix release. There are no new features and the manual
-has not been updated.
-
-RELEASE NOTES FOR VERSION 0.8f
-
-This is a bug fix release. There are no new features and the manual
-has not been updated.
-
-RELEASE NOTES FOR VERSION 0.8e
-
-* Improved concatenation of roles
-
- The standard styles (and the ready-made macros in biblatex.def)
- have been supporting the concatenation of (editorial and other)
- roles for some time. For example, if the editor and the
- translator of a book are the same person, the roles are
- concatenated and the name is given only once:
-
- Author, Title, ed. and trans. by Editor, ...
-
- However, if there is no author and the editor moves to the first
- position, the name was, until now, printed twice:
-
- Editor, ed., Title, trans. by Editor, ...
-
- The improved bibliography styles now support concatenation in
- this case as well:
-
- Editor, ed. and trans., Title, ...
-
- Since the macros which handle the concatenation are defined in
- biblatex.def, adding this feature to existing styles is simple.
- Where your style has code like:
-
- \usebibmacro{editor}
- \usebibmacro{author/editor}
-
- simply replace that with:
-
- \usebibmacro{editor+others}
- \usebibmacro{author/editor+others}
-
- The improvements also cover additional roles of the translator.
- To take advantage of that, replace code like:
-
- \usebibmacro{translator}
- \usebibmacro{author/translator}
- \usebibmacro{author/editor/translator}
-
- with:
-
- \usebibmacro{translator+others}
- \usebibmacro{author/translator+others}
- \usebibmacro{author/editor+others/translator+others}
-
- On a related note, it is safe to use code like this:
-
- \usebibmacro{editor+others}%
- \newunit
- \printfield{title}%
- \newunit
- \usebibmacro{byeditor+others}%
-
- because macros like 'editor+others' macro will use \clearname to
- clear all name lists already processed. For example, if the
- 'editor+others' macro prints 'ed. and trans.', it locally clears
- the 'editor' and 'translator' lists afterwards. The
- 'byeditor+others' macro will not print them a second time. It
- simply takes care of any names/roles not covered yet
- (commentator, annotator, etc.), if there are any left.
-
-* Added some new localization keys, removed some existing ones
-
- The above concatenation requires a whole set of new localization
- keys (see the manual for details). These keys are initialized by
- default. English and German translations are already available,
- the other localization modules need an update.
-
- The new strings are also useful for styles which use the 'first
- position' format in all cases, i.e., styles which print:
-
- Editor, ed. and trans., Title, ...
- Author, Title, in: Editor, ed. and trans., Book, ...
-
- instead of:
-
- Editor, ed. and trans., Title, ...
- Author, Title, in: Book, ed. and trans. by Editor, ...
-
- Since the number of localization keys keeps increasing, I've
- removed some of the rarely used 'country...', 'patent...', and
- 'patreq...' keys. Only about half a dozen keys in each of these
- groups is left, mainly to illustrate the underlying scheme.
-
-* New auxiliary macros for ordinals
-
- In the past, some localization modules have been redefining the
- field formats 'edition' and 'series' because they require
- ordinals and need to be adapted to use either \mkbibmascord or
- \mkbibfemord if ordinals are gender specific in the respective
- language. However, having lbx files redefine field formats is
- rather intrusive.
-
- Starting with this release, there's a new, non-intrusive
- solution. Biblatex provides two new macros, \mkbibordedition and
- \mkbibordseries, which should be used in the respective field
- formats. Where required (typically in Romanic languages), these
- macros are redefined by localization modules such that they point
- to \mkbibmascord or \mkbibfemord.
-
-* Extended language support: Brazilian Portuguese, Swedish revised
-
- This release adds support for Brazilian Portuguese and
- preliminary support for Portuguese/Portugal. The translations
- have been contributed by Augusto Ritter Stoffel.
-
- The Portuguese support in portuguese.lbx is mostly inherited from
- brazilian.lbx. This file needs review by a native speaker from
- Portugal.
-
- I've also added some revised Swedish translations which Per
- Starb\"ack sent in some time ago to the Swedish module.
-
-* German localization now using "Hrsg."
-
- By popular request, the German module now uses the abbreviations
- "Hrsg./hrsg. von" instead of "Hg./hg. von". Both forms are valid,
- but most users seem to prefer the more traditional "Hrsg".
-
-RELEASE NOTES FOR VERSION 0.8d
-
-* Biber beta release
-
- Biber is a BibTeX replacement written in Perl. It features
- Unicode support and has been designed with the requirements of
- biblatex in mind. See:
-
- http://biblatex-biber.sourceforge.net/
-
- for details. Beta testers are invited to try it out and report
- any bugs on Biber's SourceForge project page.
-
-* Package option 'bibtex8' superseded by 'backend'
-
- The package option 'bibtex8' is superseded by a new option called
- 'backend'. The old option is not mentioned in the manual any
- more, but it is still supported for the sake of backwards
- compatibility. In new documents, however, replace it as follows:
-
- bibtex8=false -> backend=bibtex (default setting, omissible)
- bibtex8=true -> backend=bibtex8
-
-RELEASE NOTES FOR VERSION 0.8c
-
-* Added 'idem' tracker
-
- I've added an 'idem' tracker which is similar in concept to the
- 'ibidem' tracker except that it checks for recurrent author/
- editor names. See the 'idemtracker' package option and the
- \ifciteidem test in the manual.
-
-RELEASE NOTES FOR VERSION 0.8b
-
-* Added 'usetranslator' option
-
- The 'usetranslator' option is similar in concept to 'useauthor'
- and 'useeditor' hence usage should be fairly obvious. Style
- authors should note that styles derived from the standard ones
- will support this option if you replace
-
- \usebibmacro{author}
- \usebibmacro{author/editor}
-
- with
-
- \usebibmacro{author/translator}
- \usebibmacro{author/editor/translator}
-
- in all relevant drivers.
-
-RELEASE NOTES FOR VERSION 0.8a
-
-* SourceForge bug/feature trackers
-
- The user base of biblatex has been growing steadily, reaching a
- point where managing bug reports and feature requests by a
- combination of private email messages and Usenet postings has
- become impractical. I've therefore set up a project page on
- SourceForge:
-
- http://sourceforge.net/projects/biblatex/
-
- There's no code on that site and most tools offered by
- SourceForge (like cvs/subversion, web-based forums, etc.) are
- currently disabled. The interesting thing are the trackers:
-
- http://sourceforge.net/tracker2/?group_id=244752
-
- I've set up two trackers, 'Bugs' for bug reports and 'Features'
- for feature requests. Please use these trackers to report bugs
- and submit feature requests.
-
- I've also added all open bug reports and feature requests sitting
- in my email inbox but I may have missed some messages posted in
- public forums. If you've reported anything which doesn't show up
- on the project page, you can now add it yourself by selecting the
- appropriate tracker and clicking on "Add new artifact".
-
-* Custom localization modules
-
- This release adds support for custom localization modules. The
- point is that styles may ship modified lbx files. See
- \DeclareLanguageMapping and the changelog for further hints.
-
-* Configurable punctuation tracker
-
- The behavior of punctuation commands like \addcomma is now
- configurable. See \DeclarePunctuationPairs in the manual.
-
-* Improved 'American-style' punctuation
-
- I've improved the 'American-style' punctuation feature.
- american.lbx now uses \DeclarePunctuationPairs to adapt the
- punctuation tracker and \mkbibquote supports nested quotes even
- if American punctuation is enabled.
-
-* Sentence case vs. title case
-
- By popular request, I've added a macro which converts a string to
- sentence case. See \MakeSentenceCase, \MakeSentenceCase*, and
- \DeclareCaseLangs in the manual. \MakeSentenceCase supports the
- BibTeX convention that anything wrapped in braces is not altered
- when changing the case.
-
- Style authors who make use of the bibmacros in biblatex.def should
- note the following. Saying:
-
- \DeclareFieldFormat{title}{\MakeSentenceCase{#1}}
-
- will not work as expected. That's because biblatex uses macros
- like this one by default:
-
- \newbibmacro*{title}{%
- \ifthenelse{\iffieldundef{title}\AND\iffieldundef{subtitle}}
- {}
- {\printtext[title]{%
- \printfield[noformat]{title}%
- \setunit{\subtitlepunct}%
- \printfield[noformat]{subtitle}}%
- \newunit}%
- \printfield{titleaddon}}
-
- The 'title' format is applied by a \printtext command which
- encloses both the title and the subtitle. \MakeSentenceCase would
- therefore see \printfield commands rather than the field
- contents. If you want to convert all titles to sentence case,
- \MakeSentenceCase must be applied on the inner level, by the
- \printfield commands. To facilitate that, I've modified this and
- similar bibmacros slightly:
-
- \newbibmacro*{title}{%
- \ifthenelse{\iffieldundef{title}\AND\iffieldundef{subtitle}}
- {}
- {\printtext[title]{%
- \printfield[titlecase]{title}%
- \setunit{\subtitlepunct}%
- \printfield[titlecase]{subtitle}}%
- \newunit}%
- \printfield{titleaddon}}
-
- Instead of 'noformat', the nested \printfield commands now use
- 'titlecase' on the inner level. These formats are defined like
- this:
-
- \DeclareFieldFormat{titlecase}{#1}
- \DeclareFieldFormat{noformat}{#1}
-
- In other words, the default behavior remains unchanged but
- converting all titles to sentence case is as easy as saying:
-
- \DeclareFieldFormat{titlecase}{\MakeSentenceCase{#1}}
-
- You can apply additional formats on a higher level as usual:
-
- \DeclareFieldFormat{title}{\mkbibemph{#1}}
- \DeclareFieldFormat{title}{\mkbibquote{#1}}
-
- Just make sure that \MakeSentenceCase always hooks in on the
- innermost level such that it sees the raw field contents rather
- then data commands or other formatting commands.
-
-RELEASE NOTES FOR VERSION 0.8
-
-As usual, the full changelog is included in biblatex.pdf. What
-follows are comments concerning changes 'under the hood' which are
-not mentioned in the changelog, things which may break backwards
-compatibility, improvements which may not be immediately obvious
-from looking at the changelog, and new major features which pertain
-to a set of entries in the changelog rather than a single one.
-
-The changelog and the release notes include changes made in the
-0.7a-g maintenance releases. If you have been tracking the
-development closely, some things may sound familiar.
-
-Note that there have been changes in the LaTeX<->BibTeX data
-interface. You may want to delete all the old *.bbl and
-<jobname>-blx.bib files before you start using the new version. In
-fact biblatex should be able to handle the update on its own but
-this will require an additional LaTeX+BibTeX cycle. In other words,
-you need to go through one LaTeX/BibTeX/LaTeX cycle to update all
-auxiliary files. You can ignore any warnings printed in this
-process. After that, the output should stabilize as usual.
-
-* Hints for style developers
-
- I'm delighted to see that the first custom biblatex styles start
- showing up on CTAN.
-
- One general note to style authors: unless your style is only a
- minor modification of one of the standard styles which ship with
- biblatex, it's a good idea to make sure it's self-contained,
- i.e., that it doesn't employ \RequireCitationStyle and/or
- \RequireBibliographyStyle to load code from the default styles
- (but feel free to incorporate code by copying it to your style).
-
- While the core of biblatex is stable by now, there's still
- potential for modifications in the standard styles (see below for
- examples). Having said that, loading standard.bbx should be a
- safe thing to do and you can also rely on code in biblatex.def
- because this file is part of the core of biblatex.
-
-* New citation and bibliography styles
-
- I've added some new styles: 'authoryear-ibid' (an author-year
- style with an 'ibidem' feature), 'draft' (which is a, well, draft
- style), and 'reading' (a style for annotated bibliographies and
- personal reading lists with abstracts, annotations, etc.).
-
-* Overhaul of all citation and bibliography styles
-
- I've overhauled all styles such that they use LaTeX (=etoolbox)
- rather than plain TeX syntax for the boolean switches. E.g.,
- instead of:
-
- \newif\ifcbx@bool
- \cbx@booltrue
- \ifcbx@bool ...\else ...\fi
-
- they now use:
-
- \newbool{cbx:bool}
- \booltrue{cbx:bool}
- \ifbool{cbx:bool}{...}{...}
-
- This LaTeX frontend is provided by the etoolbox package.
-
-* Improved authoryear styles
-
- The authoryear styles have been improved such that they will
- consider the '(short)title' field if the author/editor is
- missing (or useauthor/useeditor=false is set). Note that these
- styles also consider the 'label' field, if available. In sum,
- the fallback chain in citations used to be:
-
- author -> editor -> label -> [issue warning]
-
- and the new chain works as follows:
-
- author -> editor -> label -> shorttitle -> title
-
- The 'shorthand' field, if defined, always takes precedence over
- any other data.
-
-* Improved verbose-note styles
-
- The styles verbose-note and verbose-inote can now add a page
- number to the reference pointing to the initial, full citation.
- There is a style option named 'pageref' which enables this
- feature. The page reference is only printed if the initial
- citation is located on a different page or page spread (depending
- on the setting of the 'pagetracker' option).
-
-* Improved numeric styles
-
- The numeric styles now support citations referring to set
- members. See the note about reference sets below, the manual, and
- the examples for details.
-
-* Introducing reference sets
-
- This release introduces the concept of a reference or entry set.
- A reference set is a group of entries which are cited as a single
- reference and listed as a single item in the bibliography. I'm
- told that this is a matter of particular interest for users in
- physics, chemistry, and possibly some other fields. See the 'set'
- type, the 'entryset' field, and the special field 'entrysetcount'
- in the manual. Also see \entryset and the pointers in the
- changelog.
-
- If you are familiar with this concept, you may have used the
- mcite or the mciteplus package before. The mcite and mciteplus
- manuals call this type of reference a "collapsed citation". They
- also talk about "grouping citations". The biblatex manual calls
- it "reference set" and "entry set". It's the same thing but note
- that the approach is different. With mcite(plus), sets are
- defined as they are cited for the first time. Essentially, a
- citation like
-
- \cite{key1,*key2,*key3}
-
- defines a set consisting of three entries (key1, key2, key3). The
- first entry key serves as identifier of the entire set, which may
- subsequently be cited as \cite{key1}. With biblatex, you declare
- sets in the bib file using the @set type, the 'entryset' field,
- and 'entryset' reverse pointers in the child entries:
-
- @Set{set1,
- entryset = {key1,key2,key3},
- crossref = {key1},
- }
- @Article{key1,
- entryset = {set1},
- ...
- }
- @InCollection{key2,
- entryset = {set1},
- ...
- }
- @InProceedings{key3,
- entryset = {set1},
- ...
- }
-
- See the pointers in the changelog for further explanation.
-
-* Support for electronic publishing information (eprint)
-
- See the 'eprint' and 'eprinttype' fields and related pointers in
- the manual. Support for electronic publishing information has
- been added to all standard bibliography styles.
-
- This release comes with dedicated support for arXiv references
- which is usable out of the box and also serves as a model for
- adding support for other resources and online archives.
-
-* Modified 'labelyear' field
-
- The 'labelyear' field is no longer a string but an integer. The
- conversion of the integer to a string now takes places on the
- LaTeX side of the workflow, i.e., you'll usually have a
- formatting directive like this:
-
- \DeclareFieldFormat{labelyear}{\mknumalph{#1}}
-
- The \mknumalph command takes an integer in the range 1-702 as
- its argument and converts it to a string as used in author-year
- citations like "Jones 1995a". The format is:
-
- \mknumalph{1} -> a
- \mknumalph{26} -> z
- \mknumalph{27} -> aa
- \mknumalph{702} -> zz
-
- There is also a 'maxlabelyear' counter which holds the highest
- number found in any 'labelyear' field. This may be useful if you
- want to print the 'labelyear' field as a number and pad it out
- with leading zeros.
-
-* Modified 'labelalpha' field
-
- There is a similar change concerning the 'labelalpha' field,
- which has been split up into 'labelalpha' and 'extraalpha'. With
- a label like "Jon95a", 'labelalpha' holds "Jon95" while the extra
- letter is handled by 'extraalpha'. 'extraalpha' is similar to
- 'labelyear' in that it holds an integer. The conversion of the
- integer to a string takes places on the LaTeX side of the
- workflow, i.e., you'll usually have a formatting directive like
- this:
-
- \DeclareFieldFormat{extraalpha}{\mknumalph{#1}}
-
- There is also a 'maxextraalpha' counter which holds the highest
- number found in any 'extraalpha' field.
-
-* Modified/extended name hashes
-
- Starting with this release, there are two name hash fields,
- 'namehash' and 'fullhash'. See the manual for details.
- Essentially, the difference is that the 'namehash' is derived
- from the visible 'labelname' list (subject to the 'maxnames' and
- 'minnames' options) whereas 'fullhash' is always derived from the
- full list.
-
- Note that the original behavior of 'namehash' in previous
- releases used to be similar to the current behavior of
- 'fullhash'. This has caused some confusion. The 'namehash' should
- now be in line with the expectations of most users and style
- authors. Those who actually want the original behavior may still
- use the 'fullhash' field.
-
-* 'edition' field now more flexible/controllable by styles
-
- In previous biblatex releases, 'edition' was an integer-only
- field. The integer test was performed on the BibTeX side of the
- workflow, in biblatex.bst. Starting with this release, the test
- is performed on the LaTeX side, i.e., in the format definition:
-
- \DeclareFieldFormat{edition}{%
- \ifinteger{#1}
- {\mkbibordinal{#1}~\bibstring{edition}}
- {#1}%
- }
-
- As you can see, the edition is printed as "Nth edition" if the
- edition field holds an integer, and as a literal string if not.
- This means that you can now put things like "5th, revised and
- expanded edition" in the 'edition' field without having to resort
- to the 'note' field. It also implies that styles get full control
- over the 'edition' field.
-
- Style authors who adapt this formatting directive should note
- that ordinals are gender-specific in Romanic languages ('edition'
- is a feminine noun in French, Italian, and Spanish, hence the
- ordinal must be feminine as well). In addition to the default
- definition in biblatex.def, the 'edition' field is therefore
- adapted in french.lbx, italian.lbx, and spanish.lbx.
-
-* Support for bibliographic data in external TeX files
-
- This release add a \printfile command which is similar to
- \printtext but gets the text from an external file, i.e.,
- \printfile{file.tex} boils down to \printtext{\input{file.tex}}
- but does nothing if the file does not exist. The point of all
- this is that styles which print the fields 'abstract' and/or
- 'annotation' may support an alternative way of adding abstracts
- or annotations to the bibliography. biblatex.def provides the
- following code for that:
-
- \newcommand*{\bibabstractprefix}{bibabstract-}
- \newcommand*{\bibannotationprefix}{bibannotation-}
-
- \newbibmacro*{annotation}{%
- \iffieldundef{annotation}
- {\printfile[annotation]{\bibannotationprefix
- \thefield{entrykey}.tex}}%
- {\printfield{annotation}}}
-
- \newbibmacro*{abstract}{%
- \iffieldundef{abstract}
- {\printfile[abstract]{\bibabstractprefix
- \thefield{entrykey}.tex}}%
- {\printfield{abstract}}}
-
- Instead of including the text in the bib file, it may now be
- stored in an external LaTeX file. For example, instead of saying
-
- @Article{key1,
- abstract = {This is an abstract of entry `key1'.}
- ...
-
- in the bib file, you create a file named 'bibabstract-key1.tex'
- and put the abstract in this file. The name of the external file
- must be the entry key prefixed with 'bibabstract-' or
- 'bibannotation-', respectively. The 'reading' style makes use of
- this. Also note that, when using the reference code above, a field
- in the bib file takes precedence over external files. E.g., the
- 'reading' style will not look for 'bibabstract-key1.tex' if the
- 'key1' entry in the bib file has an 'abstract' field.
-
- Note that this feature needs to be enabled explicitly by setting
- the package option 'loadfiles'. The option is disabled by default
- for performance reasons. Using external files is strongly
- recommended if you have long abstracts or a lot of annotations
- since this may increase memory requirements significantly. See
- the changelog for more pointers.
-
-* Support for 'American-style' punctuation
-
- Biblatex finally supports 'American-style' punctuation, i.e.,
- certain punctuation marks placed after a closing quote can be
- moved inside the quotes automatically.
-
- See \DeclareQuotePunctuation and \mkbibquote in the manual. The
- 'american' and 'canadian' localization modules enable this
- feature for periods and commas. See the hints in the manual for
- details.
-
-* \DeclareCapitalPunctuation replaces \(Enable|Disable)CapitalAfter
-
- The configuration commands \EnableCapitalAfter and
- \DisableCapitalAfter have been removed and are superseded by
- \DeclareQuotePunctuation.
-
- \DeclareQuotePunctuation works like \EnableCapitalAfter except
- that it takes a list of characters as its argument. The function
- of \DisableCapitalAfter is now implicit (all characters not
- included in the list will not trigger capitalization).
-
- The change affects the configuration interface only. The default
- user-level behavior of biblatex has not changed (capitalization
- after periods, exclamation marks, questions marks; with the
- '(n)german' and '(n)austrian' localization modules also after
- colons).
-
-* Hyphenation exceptions in bibliography strings
-
- This release adds an interface for definining hyphenation
- exceptions in lbx files and/or the document preamble. See
- \DeclareHyphenationExceptions and \DefineHyphenationExceptions
- in the manual.
-
-* Configurable number tests
-
- The number tests \ifnumeral and \ifnumerals, which are also used
- by \mkpageprefix and \mkpagetotal, may be adapted. See the
- commands \DeclareNumChars, \DeclareRangeChars, and
- \DeclareRangeCommands for details.
-
-* Added 'firstinits' package option
-
- By popular request, I've added a package option which switches
- all first names to initials. Use the \iffirstinits test to query
- its state. The test has already been incorporated into the
- formatting directives in biblatex.def. However, authors of custom
- styles using redefined name formatting directives may want to
- incorporate it into their style, too.
-
-* Added high-level '\bibpagespunct' macro
-
- \bibpagespunct is a high-level user macro similar to
- \labelnamepunct and \subtitlepunct. As with the 'firstinits'
- package option, it's incorporated in the standard styles so you
- may want to do the same in custom styles.
-
-* Added some expert entry options
-
- See the entry options 'skipbib', 'skiplos', 'skiplab', and
- 'dataonly' in the manual.
-
- Note that 'skiplab' and 'dataonly' are intended for hacking only!
-
-* Improved KOMA-Script and Memoir support
-
- The headings 'bibliography' and 'shorthands' are responsive to
- the 'bibtotoc' and 'bibtotocnumbered' class options of the 'KOMA'
- classes now. See also \ifkomabibtotoc, \ifkomabibtotocnumbered,
- and \ifmemoirbibintoc.
-
-* Improved natbib compatibility style
-
- I've added some missing features to the natbib compatibility
- style. Most notably, citation aliasing is now possible. Note that
- this is intended for legacy files only. In newly created files,
- it is preferable to use biblatex's 'shorthand' field.
-
-* Spaces in file names
-
- Whether file names may or may not contain spaces generally
- depends on whether or not the underlying TeX binary supports
- that. This is beyond biblatex's control. If the underlying engine
- supports it, biblatex should not have any problems with spaces in
- a file name.
-
- However, neither traditional BibTeX nor bibtex8 seem to be
- capable of handling .bib files with spaces in their name. For
- .bib files which supply bibliographic data, there is no fix short
- of avoiding spaces in the file name. For the auxiliary .bib file
- automatically generated by biblatex this release adds a
- workaround. Spaces in the name of this file, which is only used
- internally, will be converted to underscores.
-
-* New language-specific csf files for bibtex8
-
- I've added some csf file for use with bibtex8 to the 'resources'
- subdirectory. They implement the proper sorting order for German,
- Danish, Norwegian, and Swedish in Latin 1, Latin 9, and Windows
- Ansi encoding.
-
- German users should note that even bibtex8 is not able to handle
- the German letter \ss properly. You may need to resort to fields
- like 'sortname' and 'sorttitle' even when using these csf files.
-
-* Extended manual
-
- In addition to the usual manual updates related to new features,
- I've also added some new material to the 'hints and caveats'
- section in the author guide of the manual.
-
-RELEASE NOTES FOR VERSION 0.7
-
-The changelog of this release is the longest list of changes in any
-biblatex release so far. Skimming the full list in biblatex.pdf is
-highly recommended. In the following, I will focus on changes 'under
-the hood' which are not mentioned in the changelog, point out things
-which may break backwards compatibility, and comment on some
-improvements which may not be immediately obvious from looking at
-the changelog because they pertain to a set of changes rather than a
-single one.
-
-* User and author interface stable
-
- Starting with this release, the user and author interface of this
- package may be considered as stable. This means that I will try
- to refrain from making syntactically or functionally incompatible
- changes to the core package, unless I'm forced to do so because
- of a bug or because one of the most recently added features turns
- out to be really awkward. Essentially, citation and bibliography
- styles written for this version should work with biblatex 1.0
- with no or at most minor modifications.
-
- Please note that this is a development aim, but there is no
- guarantee. Also note that the definitions in biblatex.def (mainly
- the formatting directives) are not guaranteed to be stable at
- this point. In other words: if you use the default definitions,
- your style will inherit possible improvements in future versions.
- If you use modified formatting directives, you may need to update
- them to integrate new functions. That should be fairly easy,
- though.
-
-* CTAN staging area for biblatex styles
-
- There's a new location for contributed biblatex styles, it's:
-
- macros/latex/exptl/biblatex-contrib/
-
- Contributed styles should go into a subdirectory of the above
- location. E.g., a style called 'MLA' would go into:
-
- macros/latex/exptl/biblatex-contrib/mla/
-
- Note that the exptl/ subtree is intended for experimental or beta
- code. As soon as biblatex hits 1.0 and moves out of exptl/ to
-
- macros/latex/biblatex/
-
- there's be a corresponding biblatex-contrib. At this point, all
- contributed styles should be considered experimental because the
- core package is still in beta.
-
-* Removed biblatex.cbx and biblatex.bbx
-
- I've removed the files biblatex.cbx and biblatex.bbx from the
- distribution. The code formerly found in biblatex.cbx has been
- moved to biblatex.def. The code formerly found in biblatex.bbx
- has been split up. The most generic parts have been moved to
- biblatex.def. The less generic parts, which are closely tied to
- biblatex's standard bibliography style, are now part of
- standard.bbx.
-
- I've also rearranged some of the bibmacros formerly found in the
- above files and renamed some of them. If you have been using some
- of that code in a custom bibliography style, don't worry, all the
- code is still there, but parts of it may be arranged differently
- (e.g., a bibmacro may have been split up into two macros or two
- macro may have been merged into one) and the names of some
- bibmacros may have changed.
-
- Note that biblatex.def is always loaded, but standard.bbx is not.
- If you have been using code which is now part of standard.bbx in
- a custom bibliography style, you need to copy the relevant parts
- to your style.
-
-* New dependency on etoolbox.sty
-
- Some of the most generic parts of biblatex.sty have been moved to
- an independent package called 'etoolbox', which is now required.
- The package is available from CTAN and may also be useful for
- style authors.
-
-* Type-specific formatting directives
-
- All formatting directives may now be defined on a per-type basis;
- e.g.:
-
- \DeclareFieldFormat[article]{title}{\mkbibquote{#1}}
-
- would define the format of the 'title' field of @article entries
- only. The fallback mechanism for formats now works as follows.
- The command \printfield{title}, when used in an @article driver,
- would check for the following formats (in this order):
-
- title [article]
- title
- default
-
- This also applies to cases where a specific formatting directive
- is requested explicitly, i.e. \printfield[myformat]{title}, would
- check for these formats:
-
- myformat [article]
- myformat
- default
-
- The point is that you can override formats on a per-type basis
- without having to hack any drivers.
-
-* Truncation with 'and others' now supported by literal lists
-
- Truncating a list with 'and others' in the .bib file is now
- supported by both name lists and literal lists. This used to be
- specific to name lists. See \ifandothers and \ifmoreitems as well
- as \finallistdelim and \andmoredelim for details.
-
-* Introducing entry options and style-specific options
-
- This release introduces the concept of an entry option and a new
- 'options' field. The 'useprefix' field has been replaced by an
- entry option. Instead of:
-
- useprefix = {true}
-
- you now use
-
- options = {useprefix=true}
-
- There are two more predefined entry options called 'useauthor' and
- 'useeditor'. These options may still be used globally to set the
- default behavior.
-
- In addition to that, Bibliography and citation styles may define
- additional package and entry options. See \DeclareEntryOption and
- \DeclareBibliographyOption for details.
-
-* Introducing multicite commands
-
- This release introduces an entirely new class of citation
- commands called 'multicite' commands. The point of a multicite
- command is that its argument may be a fully qualified list of
- citations where each key has its own pre- and postnote. The syntax
- is straightforward. Instead of:
-
- \cite[See][55]{key1}; \cite[12]{key2}; \cite[93]{key3}
-
- you can now say:
-
- \cites[See][55]{key1}[12]{key2}[93]{key3}
-
- This is particularly useful with parenthetical citations and
- citations given in footnotes. It's also possible to assign a pre-
- and/or postnote to the entire list. These global notes are given
- in parentheses:
-
- \footcites(See)(and chapter 3)[55]{key1}[12]{key2}[93]{key3}
-
- See \cites, \parencites, \footcites, etc. in the manual. There is
- also an \autocites command (a multicite version of \autocite).
-
- Defining new multicite commands is very easy because they are
- based on the regular citation commands. See the documentation of
- \DeclareMultiCiteCommand for details.
-
-* Improved trackers and tracking control
-
- The 'trackers' provided by biblatex have been greatly improved
- and extended. This release also adds new trackers which
- correspond to the requirements of some common citation styles.
- See the package options 'pagetracker', 'citetracker',
- 'ibidtracker', 'opcittracker', and 'loccittracker' for all the
- gory details. Also see \ifciteibid, \ifopcit, and \ifloccit.
- It's possible to control tracking in the document, see
- \pagetrackertrue/false and \citetrackertrue/false for details.
- Note that text commands like \citetitle are now exluded from
- tracking by default. See also the point below.
-
-* Tracker reset support
-
- It's possible to reset trackers and citation styles and several
- different levels. For the built-in trackers, see the package
- option 'citereset' as well as the user-level command \citereset.
- For style-specific reset support, see \InitializeCitationStyle,
- \InitializeBibliographyStyle, \OnManualCitation, and the
- user-level command \mancite.
-
-* New entry types, more custom entry types
-
- This release adds the entry types 'periodical' and 'patent',
- which are fully supported by the standard styles. Several new
- custom types have also been added. The custom types are not
- supported by default, but they may be useful in custom styles.
-
-* New field/list subtype: key field/list
-
- I've introduced a new field/list data subtype called key
- field/key list. They may hold printable data or localization keys
- and work as follows: A test is performed to determine whether the
- value of the field is a known localization key. If so, the
- localized string is printed. If not, the value is printed as is.
-
-* Improved postnote handling, alternative pagination schemes
-
- The handling of page numbers in the 'pages' field and in the
- postnote argument to citation commands has been improved
- significantly. Biblatex does range detection now and recognizes
- Roman numerals as numbers. It also supports alternative
- 'pagination' schemes (columns, line or verse numbers, etc.).
-
- See the fields 'pagination' and 'bookpagination' and related
- pointers in the changelog. See also \mkpageprefix, \ppspace,
- \pno, \ppno, \nopp, \psq, \psqq.
-
-* Support for unique names in citations
-
- This release introduces support for unique names in citations.
- Some author-year and author-title citation styles require
- unambiguous names in citations. For example, with entries such as
-
- John Smith 1995
- Edward Smith 1995
-
- citations would be rendered as
-
- J. Smith 1995
- E. Smith 1995
-
- rather than
-
- Smith 1995a
- Smith 1995b
-
- See the package option 'uniquename' and the special counter
- 'uniquename' for details. Note that this feature is now enabled
- by default in the following styles: authoryear, authoryear-comp,
- authortitle-terse, authortitle-tcomp.
-
-* Improved support for numeric labels
-
- The 'defernums' package option addresses the problem of
- discontinuous numbering when using a numeric style in combination
- with bibliography filters. If this option is enabled, the numeric
- labels are assigned the first time an entry is printed in any
- bibliography. This is similar to the traditional algorithm used
- by LaTeX to assign numeric labels.
-
-* Alternative, non-inheriting cross-referencing mechanism
-
- This release introduces an alternative cross-referencing
- mechanism which does not inherit any data. It's useful in styles
- which format cross-referenced entries differently. See the
- description of the field 'xref' and related pointers in the
- manual.
-
-* Support for different encodings
-
- Biblatex is now capable of handling .bib files with an encoding
- which is different from the encoding of the .tex file. See the
- 'bibencoding' package option for details.
-
-* More robust handling of citation keys
-
- This release adds some normalization code which deals with
- special characters in citation keys. A typical example are keys
- which contain an underscore. This should be much more robust now.
-
-* Renamed fields
-
- The 'journal' field has been renamed to 'journaltitle' but the
- old name is still supported as an alias. There's also a
- 'journalsubtitle' field and fields for the title and the subtitle
- of a single issue. In other words, article entries now support a
- complete set of titles similar to inbook-like entry types:
- journaltitle/issuetitle/title essentially correspond to
- maintitle/booktitle/title.
-
- The field name 'id' turned out to be incompatible with JabRef.
- Apart from that, the name is a bit too generic for what this
- field holds anyway. It's called 'eid' now (electronic ID) and
- holds an article ID used by online journals or journals which are
- also available online.
-
-* 'labelctitle' replaced by 'singletitle'
-
- The 'labelctitle' field has removed in favor of a different
- mechanism using a test called \ifsingletitle. The package option
- 'labelctitle' has also been renamed to 'singletitle'.
-
-* Alphabetic label now configurable
-
- The alphabetic label provided in the 'labelalpha' field is now
- configurable to a certain extend. It is responsive to the global
- package options 'maxnames' and 'minnames'. It's also possible to
- influence the handling of truncated labels by redefining
- \labelalphaothers.
-
-* Name types
-
- This release introduces the concept of a name type. This is best
- explained by example. Suppose a book has a compiler rather than
- an editor. In previous versions of this package, there was no way
- to override the string 'editor' and 'edited by'. Starting with
- this release, you may specify 'compiler' as an editor type:
-
- @book{...,
- editor = {...},
- editortype = {compiler},
-
- Supported editor types are 'editor' (the default) and 'compiler'.
- Note that this mechanism is hooked up to bibliography strings
- hence it may be extended. See the fields 'authortype',
- 'editortype', and 'name[a-c]type' in the manual.
-
-* Consistent set of wrappers
-
- I've completed the generic wrapper commands provided by biblatex
- so that they form a complete set. Instead of using the solution
- in the left column of the following list, use the wrapper in the
- right column:
-
- (...) -> \mkbibparens{...}
- [...] -> \mkbibbrackets{...}
- \footnote{...} -> \mkbibfootnote{...}
- \textsuperscript{...} -> \mkbibsuperscript{...}
- \emph{...} -> \mkbibemph{...}
- \enquote{...} -> \mkbibquote{...}
- ``...'' -> \mkbibquote{...}
-
- The wrappers integrate much better with biblatex and they also
- provide additional features.
-
-* New citation styles, some styles renamed
-
- I've renamed all verbose citation styles from 'authortitle-*' to
- 'verbose-*' and added some new styles. See the changelog for
- details.
-
-* natbib compatibility style
-
- To facilitate the move from natbib to biblatex, this release adds
- a special natbib compatibility style which maps natbib's core
- citation commands to equivalent biblatex commands. See the
- package option 'natbib' for details.
-
-* All citation commands scan ahead for punctuation
-
- Starting with this release, all citation commands scan ahead for
- punctuation to avoid double punctuation at the end of a citation.
- This used to be a feature exclusive to \autocite. The 'autopunct'
- package option and the \DeclareAutoPunctuation command will now
- affect all citation commands, not only \autocite.
-
-* Support for font style adaptation of punctuation
-
- This release implements an alternative way of dealing with
- punctuation after a field printed in a different font (for
- example, a title printed in italics). The standard (La)TeX way of
- dealing with this problem is to add a small amount of space (the
- so-called italic correction) to avoid clashes between the final
- letter of a word in italics and the following (upright)
- punctuation mark.
-
- Biblatex is now capable of adapting the punctuation to the font
- of the preceeding field. See '\mkbibemph' and '\setpunctfont' for
- details. Note that this feature is experimental. It may very well
- have a few quirks. Also note that it is disabled by default. Use
- the 'punctfont' package option to enable it.
-
-* Extended language support: Norwegian, Danish
-
- This release comes with a norsk.lbx and a danish.lbx file. The
- translations have been contributed by Johannes Wilm.
-
-RELEASE NOTES FOR VERSION 0.6
-
-* Style-independent citations
-
- This release introduces a special command for style-independent
- citations. The idea behind the \autocite command is to provide
- higher-level citation markup which makes global switching from
- inline citations to citations given in footnotes (or as
- superscripts) possible.
-
- The \autocite command is built on top of lower-level commands
- like \parencite and \footcite. The citation style provides an
- \autocite definition by way of \DeclareAutoCiteCommand. This
- definition may be activated by way of the 'autocite' package
- option. See the documentation of \autocite in the manual for
- further details.
-
-* Forcing capitalized name prefixes
-
- One thing that's been on my personal wishlist for some time is an
- equivalent to natbib's \Citet command. This release finally
- introduces additional citation commands which force capitalized
- name prefixes (provided that there is a prefix and that it is to
- be printed as part of the citation, i.e. the 'useprefix' option
- is enabled). The new citation commands are defined as follows in
- biblatex.cbx:
-
- \newcommand*{\Cite}{\bibsentence\cite}
- \newcommand*{\Textcite}{\bibsentence\textcite}
- \newcommand*{\Parencite}{\bibsentence\parencite}
- \newcommand*{\Footcite}{\bibsentence\footcite}
- \newcommand*{\Citeauthor}{\bibsentence\citeauthor}
-
- Here's how it works. Biblatex's punctuation tracker is based on
- TeX's space factor. All the \bibsentence command does is setting
- the space factor to a special sentinel value which is detected by
- \bibstring. The name formatting directive used by all citation
- commands now incorporates the new \ifcapital test. This test is
- true if the punctuation tracker would capitalize a bibliography
- string at this point. If the formatting directive detects the
- sentinel value, it will capitalize the name prefix (if
- applicable). A handy side-effect of this approach is that a
- possible 'prenote' argument is taken into account automatically.
- For example:
-
- '\cite{vandoren}' prints 'van Doren 1995'
-
- and
-
- '\Cite{vandoren}' prints 'Van Doren 1995'
-
- but
-
- '\Cite[See]{vandoren}' prints 'See van Doren 1995'.
-
- This also works in conjunction with bibliography strings. For
- example, if the citation style replaces the standard citation by
- something like '\bibstring{ibid}', then
-
- '\cite{vandoren}' prints 'ibid.'
-
- but
-
- '\Cite{vandoren}' prints 'Ibid.'.
-
- In other words, unless the citation style is doing something very
- unusual, there is no need to define \Cite et al. explicitly with
- \DeclareCiteCommand. The default definitions should work fine in
- all normal cases. If the style doesn't print any names but rather
- numerical or alphabetic citations then nothing is capitalized, so
- that's no problem either.
-
-* Custom filters for \printbibliography
-
- See \defbibfilter and the 'filter' option of \printbibliography
- in the manual.
-
-* Support for unsorted bibliographies
-
- See the package option 'sorting=none'.
-
-* Automatic truncation of literal lists
-
- This release introduces the package options 'maxitems' and
- 'minitems' which are similar to 'maxnames' and 'minnames' but
- affect literal lists. There are also corresponding (local)
- options for \printbibliography, \printshorthands, and so on.
-
-* Improved support for corporate authors and editors
-
- There are two new name lists ('shortauthor' and 'shorteditor')
- which may be helpful when dealing with corporate authors and
- editors. Basically, 'author' and 'editor' are used in the
- bibliography whereas 'shortauthor' and 'shorteditor' are used in
- citations. The point is that you can give a short form of the name
- for use in citations. For example:
-
- @Type{key,
- author = {{National Aeronautics and Space Administration (NASA)}},
- shortauthor = {NASA},
- ...
- }
-
- This will print "NASA" in citations but "National Aeronautics and
- Space Administration (NASA)" in the bibliography. Note that
- 'shortauthor' and 'shorteditor' are name lists, not literal
- fields. This means that corporate names must be wrapped in an
- additional pair of curly braces.
-
-* Improved support for articles: journal series and electronic ID
-
- Journal series and article IDs are now catered for by the
- standard styles (entry type 'article'). Note that the 'articleid'
- field has been renamed to 'eid'. See the annotated bibliography
- in the 'examples' directory for examples.
-
-* DOI support
-
- The 'doi' field is now catered for by the standard styles
- (complete with hyperlinks). See the annotated bibliography in the
- 'examples' directory for examples.
-
-* Fine-grained control of title formatting
-
- Previous versions of this package provided two formatting
- directives for the title field: 'title' (for entry types like
- 'book', 'collection', etc.) and 'titlein' (for 'article',
- 'inbook', 'incollection', etc.). I've enhanced this scheme such
- that the format of the title may be defined on a per-type basis.
- In biblatex.def you'll find the following directives for the
- bibliography:
-
- \DeclareFieldFormat{title:book}{\emph{#1}\isdot}
- \DeclareFieldFormat{title:inbook}{\enquote{#1}\midsentence}
- ...
-
- as well as dedicated directives for the titles in citations:
-
- \DeclareFieldFormat{citetitle:book}{\emph{#1}\isdot}
- \DeclareFieldFormat{citetitle:inbook}{\enquote{#1}\midsentence}
- ...
-
- and in the list of shorthands:
-
- \DeclareFieldFormat{lostitle:book}{\emph{#1}\isdot}
- \DeclareFieldFormat{lostitle:inbook}{\enquote{#1}\midsentence}
- ...
-
- I've updated all generic definitions in biblatex.cbx,
- biblatex.bbx, and standard.bbx accordingly. Note that the
- 'title:type' directives are used for both the 'title' and the
- 'subtitle' field (which are wrapped in a \printtext command
- controlling the formatting, see the 'title+stitle' bibmacro in
- biblatex.bbx for an example of how it works). In other words:
- redefining the 'subtitle' field formatting directive has no
- effect.
-
-* Rearranged localization keys
-
- I've rearranged and extended the localization keys quite a bit.
- This also implies several changes in biblatex.bbx.
-
-* Support for KOMA-Script and Memoir
-
- The default definitions of the bibliography headings (as defined
- in biblatex.def) are now automatically adapted for the
- KOMA-Script classes and the Memoir class.
-
-* Improved Spanish support
-
- The Spanish localization module now handles the Spanish word
- 'and' properly ('y' or 'e', depending on the context).
-
-* Italian support
-
- This release comes with a new italian.lbx file. The translations
- have been contributed by Enrico Gregorio.
-
-RELEASE NOTES FOR VERSION 0.5
-
- My original plan for 0.5 was to make minor changes only and focus
- on fixing bugs. Since only a few issues turned up (memory issues
- in biblatex.bst), I ended up implementing new things from the
- wishlist. Please note that the wishlist is closed until after
- version 1.0.
-
-* New author-title citation styles
-
- I've added some verbose author-title styles which may be of
- interest for users in the humanities. The styles are called
- 'authortitle-verb' and 'authortitle-cverb'. The 'traditional
- style has been renamed to 'authortitle-trad' and there is an
- additional new style called 'authortitle-strad'. The styles
- support shorthands and are fully hyperlinked. The links point to
- the first, verbose citation instead of the bibliography so these
- styles may be used without a bibliography, if desired.
-
- I've also added a matching 'dummy' bibliography style for every
- citation style. The dummy style will simply load one of the more
- generic backend styles. For example, the 'authortitle-verb' style
- loads the 'authortitle' style. The point is that you may simply
- use the 'style' package option instead of 'citestyle' plus
- 'bibstyle'.
-
-* Conditional special fields, optimizations in biblatex.bst
-
- The special fields 'labelalpha', 'labelctitle', 'labelnumber',
- and 'labelyear' are conditional now. If a style requires one of
- those fields, it needs to request them by setting the
- corresponding package option. E.g., all numeric styles include
- the line
-
- \ExecuteBibliographyOptions{labelnumber}
-
- This will instruct biblatex to provide the 'labelnumber' field
- which is undefined by default now. Making these fields
- conditional allows for some memory-related optimizations in
- biblatex.bst.
-
-* Author-level support for full citations
-
- This version adds an author-level command which makes it possible
- to execute a bibliography driver in a citation command. See
- '\rundriver' in the manual.
-
-* Page tracker
-
- I've implemented a page tracker. The page tracker records the
- real page on which citations, entries in the bibliography, and
- entries in the list of shorthands end up. It can work on a per
- page basis or per double page spread. The page tracker is
- disabled by default. See the package option 'pagetracker' and the
- commands '\iffirstonpage' and '\ifsamepage' in the manual.
-
-* Unique indentification of reference instances
-
- Every 'instance' of a reference is now uniquely identified by a
- value of the 'citecount' counter. In other words: this counter is
- incremented for every key processed by any citation command, for
- every item in the bibliography and for every item in the list of
- shorthands. This is required by the page tracker but it's also
- useful if you need to generate a unique anchor name for
- hyperlinks.
-
-* Extended support for hyperlinks
-
- I've renamed '\bibhyperlink' to '\bibhyperref' and added generic
- '\bibhypertarget' and '\bibhyperlink' commands. '\bibhyperref'
- creates a link from a citation to the corresponding item in the
- bibliography. '\bibhypertarget' and '\bibhyperlink' are more
- generic and correspond to the '\hypertarget' and '\hyperlink'
- commands of the hyperref package. The point here is that you
- don't need an explicit '\ifhyperref' check. If hyperlinks are
- disabled, these wrappers will simply pass on their text argument.
-
- As an additional benefit, they also provide better anchor
- placement. The anchors created by '\hypertarget' seem to be
- located at the baseline, i.e. if you click on a link you get the
- impression that your PDF viewer jumps to the line of text just
- below the one you mean.
-
-* More name lists
-
- See the 'annotator', 'commentator', 'introduction', 'foreword',
- and 'afterword' lists in the annotated example.
-
-* Special fields for indexing
-
- See the 'indextitle' and 'indexsorttitle' fields in the annotated
- example and the indexing examples.
-
-* Spanish support
-
- This release comes with a preliminary spanish.lbx file. The
- translations have been contributed by Ignacio Fern\'andez
- Galv\'an. Some advanced features are missing from this file
- because they are still under scrutiny but it should nevertheless
- be perfectly funtional.
-
-* Examples
-
- I've added a biblatex showcase with some example files in the
- 'examples' subdirectory. There's an example for every citation
- style and some generic examples demonstrating multiple
- bibliographies, split bibliographies, indexing, and so on.
-
-RELEASE NOTES FOR VERSION 0.4
-
-* Wishlist closed
-
- As of this release, the wishlist is closed until after version
- 1.0. There are already more wishes in the pipeline than I can
- implement in time for 1.0...
-
-RELEASE NOTES FOR VERSION 0.3
-
- The changelog for this release is shockingly long so I'll just
- point out the general developments behind the individual entries
- in the changelog. See the full changelog for all the gory
- details. Note that styles written for version 0.2 will not work
- with 0.3.
-
-* New data type: literal list
-
- This release introduces a new data type for literal lists. The
- point of a literal list is that the list is split up at the 'and'
- but the individual items are not dissected further. This is
- intended for fields such as 'location' and 'publisher' since they
- may contain a list of items but these items are not personal
- names.
-
- I have modified the macro names of the entire data interface for
- lists to match the change. All macros with the term 'list' in
- their name are renamed such that 'list' is replaced by 'name(s)'.
- For example, \printlist is now \printnames, \DeclareListFormat is
- \DeclareNameFormat, and so on. The old names are used for new
- macros which deal with literal lists. The complete list of
- affected macros is given in the changelog. Note that the names of
- the macros which dump the unformatted data have changes as well
- (\biblist -> \thename; \thelist (new); \bibfield -> \thefield).
-
- These changes will require updates to all custom citation and
- bibliography styles. However, the changes are only a matter of
- some search & replace commands. I'm sorry about the inconvenience
- but I think the new naming scheme is better than having macro
- names like \printliterallist. I've decided to go for it now since
- biblatex is still in beta.
-
- As part of these changes, the data type of the following fields
- has been changed from 'literal field' to 'literal list':
- location, origlocation, publisher, institution, organization.
-
-* Support for hyperref
-
- Hyperref support is available now. This means that citations may
- be transformed into links pointing to the bibliography. All
- standard citation styles support that out of the box, custom
- styles need to use the new hyperref interface. It works like
- this: the anchor (i.e. the target of the link) is set
- automatically by biblatex hence the bibliography style does not
- need to do anything special. The citation style is responsible
- for marking the link area. This is just a matter of passing the
- relevant part of the citation to a special macro or formatting
- directive doing the low-level work. See the changelog for
- pointers to the relevant sections of the manual.
-
-* Support for back references
-
- I've added support for back references. The page numbers are
- provided in the 'pageref' field which uses the new literal list
- data type. Printing them is just a matter of \printlist{pageref}.
- Note that you need to enable the 'backref' package option to get
- any back reference data. There is also a bibmacro called
- 'pageref' in biblatex.bbx which adds a label. Bibliography styles
- should print the list via \usebibmacro{pageref}. There are two
- related list formatting directives in biblatex.def. The default
- directive just prints the list as is, using a comma as a
- separator. The directive 'pageref:comp' prints a sequence of more
- than two consecutive pages as a range. The easiest way to try it
- out is: \DeclareListAlias{pageref}{pageref:comp}.
-
- The references are restricted to page numbers, back references to
- sections are not supported. This is a deliberate decision. I
- haven't bothered implementing back references to sections because
- LaTeX's referencing mechanism is notoriously unreliable in this
- respect. It essentially provides two pieces of information: the
- formatted value of the last counter incremented by way of
- \refstepcounter and the page number. The latter value is usually
- unambiguous but the former could refer to just about everything.
- The implications of this become obvious when you're using the
- backref package with its 'ref' option (rather than 'pageref') and
- put \cite commands in footnotes. The bibliography will then
- include something like 'sections 1, 2, 3', but these numbers do
- not refer to sections, these are footnote numbers!
-
- Getting back references to sections right would require
- reimplementing LaTeX's entire referencing mechanism (or
- interfacing with a package doing that) and I don't want to get
- into that business just yet. I may look into support for the zref
- package later, but that's something for a post-1.0 release of
- biblatex.
-
-* Rearranged author-title citation styles
-
- I've rearranged the author-title citation styles because most
- people seem to expect the behavior of the old 'authortitle-verb'
- style from the plain 'authortitle' style. So 'authortitle-verb'
- is the plain 'authortitle' style now. The style formerly known as
- 'authortitle' has been renamed to 'authortitle-terse',
- 'authortitle-comp' is 'authortitle-cterse' now. I've also added a
- new 'authortitle-comp' style to round off this subset of styles.
-
-* Handling of thebibliography/theshorthands streamlined
-
- The handling of thebibliography and theshorthands as well as some
- related facilities has been overhauled and streamlined. See the
- changelog and section 4.2.2 of the manual for details.
-
-* Handling of 'and others' simplified
-
- The way biblatex handles the string 'and others', which is used
- in bib files to truncate a list of names, has been overhauled and
- simplified. Essentially, I have removed 'moreauthor' and similar
- fields since biblatex handles this internally now. All style
- authors need to do is use \ifandothers and/or \ifmorenames. See
- the manual for details.
-
-* Improved \addtocategory
-
- \addtocategory now cycles its arguments through the aux file.
- This means that it may be used in the preamble and anywhere in
- the document body, even after \printbibliography.
-
-RELEASE NOTES FOR VERSION 0.2
-
-* Internal changes in bibliography styles
-
- I have rearranged all bibliography styles. It should be more
- obvious now how many code is shared by the bibliography styles,
- namely all 'driver' code. The shared code has been moved to
- standard.bbx, so think of that as the biblatex standard style.
- This code is used by numeric.bbx, alphabetic.bbx,
- authortitle.bbx, and authoryear.bbx; standard.bbx is not meant to
- be used stand-alone. A few bibmacros have also been moved to
- biblatex.bbx.
-
-* Internal changes in citation styles
-
- There is only one change affecting the citation styles. The
- 'postnote' bibmacro in biblatex.cbx now automatically inserts a
- prefix like 'p.' or 'pp.' where applicable.
-
-* Optional argument for \printtext
-
- \printtext takes an optional argument now. The point is that you
- can use \printtext as a formatting hook. The advantage of this
- approach is that \printtext integrates with the punctuation
- tracking. I have revised biblatex.bbx to use this approach where
- applicable.
-
-* New fields
-
- There are several new fields, some of which are supported by the
- standard styles. This has lead to further changes in
- biblatex.bbx, including changes to the names of existing
- bibmacros.
diff --git a/Master/texmf-dist/doc/latex/biblatex/CHANGES.org b/Master/texmf-dist/doc/latex/biblatex/CHANGES.org
new file mode 100644
index 00000000000..559048e2fd5
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/biblatex/CHANGES.org
@@ -0,0 +1,117 @@
+* RELEASE NOTES FOR VERSION 3.5
+** Requirements
+Biber version 2.6 is required for biblatex 3.5
+
+** Name support
+- *INCOMPATIBLE CHANGE* The labelling system has been generalised
+ to be able to deal better with names. ~\DeclareLabelalphaTemplate~ no
+ longer uses hard-coded name parts (prefix, family) when extracting label
+ parts from name fields. Name field label extraction now obeys the new
+ ~\DeclareLabelalphaNameTemplate~ specification which details how to extract
+ label information from each namepart known to the data model. The default
+ setting is backwards compatible with the old hard-coded behaviour.
+ However, if you have custom ~\DeclareLabelalphaTemplate~ specifications,
+ you should note that the "pcompound" and "pstrwidth" options to ~\field~
+ are now gone and replaced with the relevant settings on ~\namepart~ in
+ ~\DeclareLabelalphaNameTemplate~. The old options will generate warnings.
+ It is too complex to provide backwards compat for this, sorry - please
+ update your templates if necessary. This is one of the last changes
+ needed to fully generalise name handling.
+
+** Date input and output
+Major enhancements to the dates parsed by biblatex and the output formats
+available. Biblatex now supports [[http://www.loc.gov/standards/datetime/pre-submission.html][EDTF]] level 0 and 1. This is an enhanced
+ISO8601v2004 format suitable for bibliographic data. The new support is a
+superset of the previous limited ISO8601 support. Times are now fully
+supported in various formats as online sources become more common and time
+specifications for such sources are increasingly important. Tests and
+localisation strings are provided to use EDTF information about date
+uncertainty, era, approximation etc. in styles. A new example document
+(96-dates.tex) is provided which demonstrates the new features. See the PDF
+manual and its changelog for details of usage. The new date format
+functionality is backwards compatible. The following changes are more
+detailed and mostly of interest to style authors:
+
+- The ~iso8601~ date output format is now called ~edtf~. The old name will
+ automatically use ~edtf~ and issue a deprecation warning.
+- ~\bibdatedash~ is now ~\bibdaterangesep~ as this name is more
+ informative and more descriptive of how it is actually used. A backwards
+ compat alias is provided.
+- Pre-biblatex 2.0 legacy sorting scheme definition macros ~\name~ and
+ ~\list~ are now deprecated with warnings.
+- *INCOMPATIBLE CHANGE* The ~labeldate~ option is renamed to
+ ~labeldateparts~. The ~datelabel~ option is renamed to ~labeldate~ to
+ provide consistency with all other date options. Backwards compatibility
+ is provided and warnings will be issued.
+- The new date system necessitated changes to the default year printing
+ routine for citations in the default authoryear styles. If you wish to
+ take advantage of the new date features like circa, uncertainty and eras,
+ when printing citations in authoryear styles, see the enhanced
+ ~cite:labelyear+extrayear~ macros in any of the default authoryear
+ styles.
+- The ~labelyear~ field was inconsistently implemented and in fact could
+ sometimes contain a date range which made handling it rather difficult.
+ It is now guaranteed to contain only one year, when it is a copy of an
+ existing datepart field found by ~\DeclareLabeldate~ (~labelyear~ can
+ contain a literal/bibstring or non date field too). A new field
+ ~labelendyear~ will contain the end of the labeldate year range. The same
+ applies to labelmonth and labelday.
+- The internal macros ~\mkbibrange*~ have all been changed to
+ ~\mkdaterange*~ to make the name more obvious (since they only deal with
+ dates) and for consistency with the new ~\mktimerange*~ macros. These
+ macros are usually only used in style .lbx files and the old names will
+ generate a deprecation warning.
+- The option ~datezeros~ was inconsistent as it did not enforce zeros when
+ set to 'true', it merely preserved the field. In the new date internals,
+ leading zeros are not present after date parsing as this should always be
+ a formatting/style decision. Now, ~datezeros~ enforces leading zeros and
+ also handles all date parts.
+- ~\mkdatezeros~ has been replaced with ~\mkyearzeros~, ~\mkmonthzeros~ and
+ ~\mkdayzeros~ due to the date internals changes which are more consistent
+ about integer formats of date parts. ~\mkdatezeros~ now generates a
+ deprecation warning and calls ~\mkmonthzeros~ which is backwards compatible
+ with its old behaviour.
+- *INCOMPATIBLE CHANGE* The .bbl field ~datelabelsource~ has been renamed to
+ ~labeldatesource~ to prevent confusion with other fields. In the unlikely
+ event that you referenced this field in a style, please change the name.
+- *INCOMPATIBLE CHANGE* The macro ~\printdatelabel~ has been renamed to
+ ~\printlabeldate~ in line with the naming of all other date printing
+ macros. Please use the new name. The old one will issue a deprecation warning.
+- *INCOMPATIBLE CHANGE* The macro ~\printdatelabelextra~ has been renamed to
+ ~\printlabeldateextra~ in line with the naming of all other date printing
+ macros. Please use the new name. The old one will issue a deprecation warning.
+
+** Misc changes
+- The experimental RIS format support is no longer available as it was
+ rarely used and made biber maintenance more complicated. RIS is a very
+ primitive format and not much use anyway.
+- *INCOMPATIBLE CHANGE* The ~singletitle~ option no longer considers the
+ presence of labeltitle if labelname does not exist. This has always been
+ potentially confusing. For several versions now, there has been a
+ separate test and option for labeltitle called "uniquetitle".
+- *INCOMPATIBLE CHANGE* The ~sortgiveninits~ option has been deprecated and
+ the functionality generalised. It is replaced by the "inits" option to
+ ~\namepart~ in ~\DeclareSortingNamekeyScheme~. Any nameparts may now
+ therefore be sorted using initials only.
+- *INCOMPATIBLE CHANGE* The sorting subsystem in biber has been completely
+ re-engineered to support better sorting of different datatypes.
+ Previously, due to bibtex limitations, all sorting was lexical, even for
+ numbers. This is why the padding options for things like volume in the
+ default sorting specifications existed - so that lexical sorts for
+ numbers would work. With the enhancement of the date parsing routines to
+ include negative years, in order to sort these properly, it was time to
+ switch to a better sorting method. As a result, the datatypes of fields
+ is now a bit stricter, as it should be. Expect more changes in this
+ direction but for this release, the datatype of the following fields in
+ the default data model have been changed to 'integer':
+
+ - number
+ - sortyear
+ - volume
+ - volumes
+
+ Integer datatypes no longer need padding or literal fallbacks in the
+ sorting scheme definitions since they are now sorted properly as
+ integers. Such datatype changes only effect sorting.
+
+
diff --git a/Master/texmf-dist/doc/latex/biblatex/README b/Master/texmf-dist/doc/latex/biblatex/README
index dd70d9e999e..10087f5b159 100644
--- a/Master/texmf-dist/doc/latex/biblatex/README
+++ b/Master/texmf-dist/doc/latex/biblatex/README
@@ -166,4 +166,4 @@ Refer to biblatex.pdf for a systematic reference manual and to the
CHANGES
A list of changes relevant to users of this package is included at
-the end of 'biblatex.pdf'. See also the release notes in 'CHANGES'.
+the end of 'biblatex.pdf'. See also the release notes in 'CHANGES.org'.
diff --git a/Master/texmf-dist/bibtex/bib/biblatex/biblatex/biblatex-examples.bltxml b/Master/texmf-dist/doc/latex/biblatex/biber/bltxml/biblatex-examples.bltxml
index 78f60c71f05..f75ee81ec8d 100644
--- a/Master/texmf-dist/bibtex/bib/biblatex/biblatex/biblatex-examples.bltxml
+++ b/Master/texmf-dist/doc/latex/biblatex/biber/bltxml/biblatex-examples.bltxml
@@ -3,17 +3,6 @@
<!-- Auto-generated by Biber::Output::biblatexml -->
<bltx:entries xmlns:bltx="http://biblatex-biber.sourceforge.net/biblatexml">
- <bltx:entry id="tolstoy" entrytype="book">
- <bltx:names type="author">
- <bltx:name >
- <bltx:namepart type="given" initial="Л">Лев</bltx:namepart>
- <bltx:namepart type="patronymic" initial="Н">Николаевич</bltx:namepart>
- <bltx:namepart type="family" initial="Т">Толстой</bltx:namepart>
- </bltx:name>
- </bltx:names>
- <bltx:title>Война и мир</bltx:title>
- <bltx:date>1877</bltx:date>
- </bltx:entry>
<bltx:entry id="bulgakov" entrytype="book">
<bltx:names type="author">
<bltx:name>
diff --git a/Master/texmf-dist/doc/latex/biblatex/biblatex.pdf b/Master/texmf-dist/doc/latex/biblatex/biblatex.pdf
index 6895b570155..c99204349a9 100644
--- a/Master/texmf-dist/doc/latex/biblatex/biblatex.pdf
+++ b/Master/texmf-dist/doc/latex/biblatex/biblatex.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/biblatex/biblatex.tex b/Master/texmf-dist/doc/latex/biblatex/biblatex.tex
index dce955d9c86..f3131cbed3e 100644
--- a/Master/texmf-dist/doc/latex/biblatex/biblatex.tex
+++ b/Master/texmf-dist/doc/latex/biblatex/biblatex.tex
@@ -1,6 +1,9 @@
\documentclass{ltxdockit}[2011/03/25]
\usepackage{btxdockit}
\usepackage{fontspec}
+\usepackage{hyperref}
+\usepackage{zref-xr}
+
\setmonofont{Courier New}
\setmainfont[Ligatures=TeX]{Linux Libertine O}
\setsansfont[Ligatures=TeX]{Linux Biolinum O}
@@ -48,7 +51,6 @@
\newcommand*{\biber}{\sty{biber}\xspace}
\newcommand*{\biblatex}{\sty{biblatex}\xspace}
\newcommand*{\biblatexml}{\sty{biblatexml}\xspace}
-\newcommand*{\ris}{\sty{RIS}\xspace}
\newcommand*{\biblatexhome}{http://sourceforge.net/projects/biblatex/}
\newcommand*{\biblatexctan}{http://ctan.org/pkg/biblatex/}
@@ -58,7 +60,7 @@
url={\biblatexhome},
author={Philipp Lehman \\(with Philip Kime, Audrey Boruvka and Joseph Wright)},
email={},
- revision={3.4},
+ revision={3.5},
date={\today}}
\hypersetup{%
@@ -194,8 +196,9 @@ José Carlos Santos (Portuguese);
Oleg Domanov (Russian);
Tea Tušar and Bogdan Filipič (Slovene);
Ignacio Fernández Galván (Spanish);
-Per Starbäck, Carl-Gustav Werner, Filip Åsblom (Swedish).
+Per Starbäck, Carl-Gustav Werner, Filip Åsblom (Swedish);
Martin Vrábel, Dávid Lupták (Slovak);
+Benson Muite (Estonian);
\subsection{Prerequisites}
\label{int:pre}
@@ -224,6 +227,9 @@ This \latex package, which is also loaded automatically, is used for internal op
\item[logreq]
This \latex package, which is also loaded automatically, provides a frontend for writing machine-readable messages to an auxiliary log file. It is available from \acr{CTAN}.\fnurl{http://ctan.org/pkg/logreq/}
+\item[xstring]
+This \latex package, which is also loaded automatically, provides advanced string processing macros It is available from \acr{CTAN}.\fnurl{http://ctan.org/pkg/xstring/}
+
\end{marglist}
Apart from the above resources, \biblatex also requires the standard \latex packages \sty{keyval} and \sty{ifthen} as well as the \sty{url} package. These package are included in all common \tex distributions and will be loaded automatically.
@@ -340,6 +346,7 @@ compatibility matrix for the recent versions.
\sffamily\bfseries\spotcolor Biber version
& \sffamily\bfseries\spotcolor \biblatex\ version\\
\midrule
+2.6 & 3.5\\
2.5 & 3.4\\
2.4 & 3.3\\
2.3 & 3.2\\
@@ -375,7 +382,7 @@ compatibility matrix for the recent versions.
\section{Database Guide}
\label{bib}
-This section describes the default data model defined in the \file{blx-dm.def} file which is part of \path{biblatex}. The data model is defined using the macros documented in \secref{aut:ctm:dm}. It is possible to redefine the data model which both \biblatex and \biber use so that datasources can contain new entrytypes and fields (which of course will need style support). The data model specification also allows for constraints to be defined so that data sources can be validated against the data model (using \biber's \path{--validate-datamodel} option). Users who want to customise the data model need to look at the \file{blx-dm.def} file and to read \secref{aut:ctm:dm}.
+This section describes the default data model defined in the \file{blx-dm.def} file which is part of \path{biblatex}. The data model is defined using the macros documented in \secref{aut:ctm:dm}. It is possible to redefine the data model which both \biblatex and \biber use so that datasources can contain new entrytypes and fields (which of course will need style support). The data model specification also allows for constraints to be defined so that data sources can be validated against the data model (using \biber's \opt{--validate-datamodel} option). Users who want to customise the data model need to look at the \file{blx-dm.def} file and to read \secref{aut:ctm:dm}.
\subsection{Entry Types}
\label{bib:typ}
@@ -385,7 +392,7 @@ This section gives an overview of the entry types supported by the default \bibl
\subsubsection{Regular Types}
\label{bib:typ:blx}
-The lists below indicate the fields supported by each entry type. Note that the mapping of fields to an entry type is ultimately at the discretion of the bibliography style. The lists below therefore serve two purposes. They indicate the fields supported by the standard styles which ship with this package and they also serve as a model for custom styles. Note that the <required> fields are not strictly required in all cases, see \secref{bib:use:key} for details. The fields marked as <optional> are optional in a technical sense. Bibliographical formatting rules usually require more than just the <required> fields. The default data model defined a few constraints for the format of date fields, ISBNs and some special fields like \bibfield{gender} but the constraints are only used if validating against the data model with \biber's \path{--validate_datamodel} option. Generic fields like \bibfield{abstract} and \bibfield{annotation} or \bibfield{label} and \bibfield{shorthand} are not included in the lists below because they are independent of the entry type. The special fields discussed in \secref{bib:fld:spc}, which are also independent of the entry type, are not included in the lists either. See the default data model specification in the file \file{blx-dm.def} which comes with \biblatex for a complete specification.
+The lists below indicate the fields supported by each entry type. Note that the mapping of fields to an entry type is ultimately at the discretion of the bibliography style. The lists below therefore serve two purposes. They indicate the fields supported by the standard styles which ship with this package and they also serve as a model for custom styles. Note that the <required> fields are not strictly required in all cases, see \secref{bib:use:key} for details. The fields marked as <optional> are optional in a technical sense. Bibliographical formatting rules usually require more than just the <required> fields. The default data model defined a few constraints for the format of date fields, ISBNs and some special fields like \bibfield{gender} but the constraints are only used if validating against the data model with \biber's \opt{--validate-datamodel} option. Generic fields like \bibfield{abstract} and \bibfield{annotation} or \bibfield{label} and \bibfield{shorthand} are not included in the lists below because they are independent of the entry type. The special fields discussed in \secref{bib:fld:spc}, which are also independent of the entry type, are not included in the lists either. See the default data model specification in the file \file{blx-dm.def} which comes with \biblatex for a complete specification.
\begin{typelist}
@@ -672,9 +679,9 @@ In datasources such as a \file{bib} file, all bibliographic data is specified in
\begin{description}
-\item[Name lists] are parsed and split up into the individual items at the \texttt{and} delimiter. Each item in the list is then dissected into four name components: the given name, the name prefix (von, van, of, da, de, della, \dots), the family name, and the name suffix (junior, senior, \dots). Name lists may be truncated in the \file{bib} file with the keyword <\texttt{and others}>. Typical examples of name lists are \bibfield{author} and \bibfield{editor}.
+\item[Name lists] are parsed and split up into the individual items at the \texttt{and} delimiter. Each item in the list is then dissected into the name part components: by default the given name, the name prefix (von, van, of, da, de, della, \dots), the family name, and the name suffix (junior, senior, \dots). The valid name parts can be customised by changing the datamodel definition described in \secref{aut:bbx:drv}. Name lists may be truncated in the \file{bib} file with the keyword <\texttt{and others}>. Typical examples of name lists are \bibfield{author} and \bibfield{editor}.
-Name list fields automatically have an \cmd{ifuse*} test created as per the name lists in the default data model (see \secref{aut:aux:tst}). They are also automatically have a \opt{ifuse*} option created which controls labelling and sorting behaviour with the name (see \secref{use:opt:bib:hyb}). \biber supports a customisable list of name parts but current this is defined to be the same set of parts as supported by traditional \bibtex:
+Name list fields automatically have an \cmd{ifuse*} test created as per the name lists in the default data model (see \secref{aut:aux:tst}). They are also automatically have a \opt{ifuse*} option created which controls labelling and sorting behaviour with the name (see \secref{use:opt:bib:hyb}). \biber supports a customisable set of name parts but currently this is defined to be the same set of parts as supported by traditional \bibtex:
\begin{itemize}
\item Family name (also known as <last> part)
@@ -683,7 +690,7 @@ Name list fields automatically have an \cmd{ifuse*} test created as per the name
\item Name suffix (also known as <Jr> part)
\end{itemize}
-The supported list of name parts is defined as a constant list in the default data model using the \cmd{DeclareDatamodelConstant} command (see \ref{aut:ctm:dm}). However, it is not enough to simply add to this list in order to add support for another name part as name parts typically have to be hard coded into bibliography drivers and the backend processing. This constant is used as much as possible and is intended as a basis for future generalisation and extension.
+The supported list of name parts is defined as a constant list in the default data model using the \cmd{DeclareDatamodelConstant} command (see \ref{aut:ctm:dm}). However, it is not enough to simply add to this list in order to add support for another name part as name parts typically have to be hard coded into bibliography drivers and the backend processing. See the example file \file{93-nameparts.tex} for details on how to define and use custom name parts. Also see \cmd{DeclareUniquenameTemplate} in \secref{aut:cav:amb} for information on how to customise name disambiguation using custom name parts.
\item[Literal lists] are parsed and split up into the individual items at the \texttt{and} delimiter but not dissected further. Literal lists may be truncated in the \file{bib} file with the keyword <\texttt{and others}>. There are two subtypes:
@@ -706,11 +713,11 @@ The supported list of name parts is defined as a constant list in the default da
\item[Range fields] consist of one or more ranges where all dashes are normalized and replaced by the command \cmd{bibrangedash}. A range is something optionally followed by one or more dashes optionally followed by some non-dash (e.g. \texttt{5--7}). Any number of consecutive dashes will only yield a single range dash. A typical example of a range field is the \bibfield{pages} field. See also the \cmd{bibrangessep} command which can be used to customise the separator between multiple ranges. Range fields will be skipped and will generate a warning if they do not consist of one or more ranges. You can normalise messy range fields before they are parsed using \cmd{DeclareSourcemap} (see \secref{aut:ctm:map}).
-\item[Integer fields] hold unformatted integers which may be converted to ordinals or strings as they are printed. A typical example is the \bibfield{extrayear} field.
+\item[Integer fields] hold integers which may be converted to ordinals or strings as they are printed. A typical example is the \bibfield{extrayear} or \bibfield{volume} field. Such fields are sorted as integers. \biber makes a (quite serious) effort to map non-arabic representations (roman numerals for example) to integers for sorting purposes.
-\item[Datepart fields] hold unformatted integers which may be converted to ordinals or strings as they are printed. A typical example is the \bibfield{month} field. For every field X of datatype \bibfield{date} in the datamodel, datepart fields are automatically created with the following names: \bibfield{Xyear}, \bibfield{Xendyear}, \bibfield{Xmonth}, \bibfield{Xendmonth}, \bibfield{Xday}, \bibfield{Xendday}.
+\item[Datepart fields] hold unformatted integers which may be converted to ordinals or strings as they are printed. A typical example is the \bibfield{month} field. For every field X of datatype \bibfield{date} in the datamodel, datepart fields are automatically created with the following names: \bibfield{$<$datetype$>$year}, \bibfield{$<$datetype$>$endyear}, \bibfield{$<$datetype$>$month}, \bibfield{$<$datetype$>$endmonth}, \bibfield{$<$datetype$>$day}, \bibfield{$<$datetype$>$endday}, \bibfield{$<$datetype$>$hour}, \bibfield{$<$datetype$>$endhour}, \bibfield{$<$datetype$>$minute}, \bibfield{$<$datetype$>$endminute}, \bibfield{$<$datetype$>$second}, \bibfield{$<$datetype$>$endsecond}, \bibfield{$<$datetype$>$timezone}, \bibfield{$<$datetype$>$endtimezone}.
-\item[Date fields] hold a date specification in \texttt{yyyy-mm-dd} format or a date range in \texttt{yyyy-mm-dd/yyyy-mm-dd} format. Date fields are special in that the date is parsed and split up into its datepart type components. The \bibfield{datepart} components (see above) are automatically defined and recognised when a field of datatype \bibfield{date} is defined in the datamodel. See \secref{bib:use:dat} for details. A typical example is the \bibfield{date} field.
+\item[Date fields] hold a date specification in \texttt{yyyy-mm-ddThh:nn[+|-][hh[:nn]|Z]} format or a date range in \texttt{yyyy-mm-ddThh:nn[+|-][hh[:nn]|Z]/yyyy-mm-ddThh:nn[+|-][hh[:nn]|Z]} format and other formats permitted by EDTF level 1, see \secref{bib:use:dat}. Date fields are special in that the date is parsed and split up into its datepart type components. The \bibfield{datepart} components (see above) are automatically defined and recognised when a field of datatype \bibfield{date} is defined in the datamodel. A typical example is the \bibfield{date} field.
\item[Verbatim fields] are processed in verbatim mode and may contain special characters. Typical examples of verbatim fields are \bibfield{file} and \bibfield{doi}.
@@ -732,7 +739,7 @@ The supported list of name parts is defined as a constant list in the default da
The fields listed in this section are the regular ones holding printable data in the default data model. The name on the left is the default data model name of the field as used by \biblatex and its backend. The \biblatex data type is given to the right of the name. See \secref{bib:fld:typ} for explanation of the various data types.
-Some fields are marked as <Label fields> which means that they are often used as abbreviation labels when printing bibliography lists in the sense of section \secref{use:bib:biblist}. \biblatex automatically creates supporting macros for such fields. See \secref{use:bib:biblist}.
+Some fields are marked as <label> fields which means that they are often used as abbreviation labels when printing bibliography lists in the sense of section \secref{use:bib:biblist}. \biblatex automatically creates supporting macros for such fields. See \secref{use:bib:biblist}.
\begin{fieldlist}
@@ -980,9 +987,9 @@ An addon to be printed immediately after the author name in the bibliography. No
Miscellaneous bibliographic data which does not fit into any other field. The \bibfield{note} field may be used to record bibliographic data in a free format. Publication facts such as «Reprint of the edition London 1831» are typical candidates for the \bibfield{note} field. See also \bibfield{addendum}.
-\fielditem{number}{literal}
+\fielditem{number}{integer}
-The number of a journal or the volume\slash number of a book in a \bibfield{series}. See also \bibfield{issue} as well as \secref{bib:use:ser, bib:use:iss}. With \bibtype{patent} entries, this is the number or record token of a patent or patent request.
+The number of a journal or the volume\slash number of a book in a \bibfield{series}. See also \bibfield{issue} as well as \secref{bib:use:ser, bib:use:iss}. With \bibtype{patent} entries, this is the number or record token of a patent or patent request. It is expected to be an integer, not necessarily in arabic numerals since \biber will automatically from roman numerals or arabic letter to integers internally for sorting purposes.
\listitem{organization}{literal}
@@ -1104,17 +1111,17 @@ The location of a conference, a symposium, or some other event in \bibtype{proce
The revision number of a piece of software, a manual, etc.
-\fielditem{volume}{literal}
+\fielditem{volume}{integer}
-The volume of a multi"=volume book or a periodical. See also \bibfield{part}.
+The volume of a multi"=volume book or a periodical. It is expected to be an integer, not necessarily in arabic numerals since \biber will automatically from roman numerals or arabic letter to integers internally for sorting purposes. See also \bibfield{part}.
-\fielditem{volumes}{literal}
+\fielditem{volumes}{integer}
-The total number of volumes of a multi"=volume work. Depending on the entry type, this field refers to \bibfield{title} or \bibfield{maintitle}.
+The total number of volumes of a multi"=volume work. Depending on the entry type, this field refers to \bibfield{title} or \bibfield{maintitle}. It is expected to be an integer, not necessarily in arabic numerals since \biber will automatically from roman numerals or arabic letter to integers internally for sorting purposes.
\fielditem{year}{literal}
-The year of publication. See also \bibfield{date} and \secref{bib:use:dat}.
+The year of publication. It is better to use the \bibfield{date} field as this is compatible with plain years too. See \secref{bib:use:dat}.
\end{fieldlist}
@@ -1159,6 +1166,7 @@ English & USA & \opt{american}, \opt{USenglish}, \opt{english} \
& Canada & \opt{canadian} \\
& Australia & \opt{australian} \\
& New Zealand & \opt{newzealand} \\
+Estonian & Estonia & \opt{estonian} \\
Finnish & Finland & \opt{finnish} \\
French & France, Canada & \opt{french} \\
German & Germany & \opt{german} \\
@@ -1266,7 +1274,7 @@ Similar to \bibfield{sortkey} but used in the list of shorthands. If present, \b
A field used to modify the sorting order of the bibliography. If present, this field is used instead of the \bibfield{title} field when sorting the bibliography. The \bibfield{sorttitle} field may come in handy if you have an entry with a title like «An Introduction to\dots» and want that alphabetized under <I> rather than <A>. In this case, you could put «Introduction to\dots» in the \bibfield{sorttitle} field. Please refer to \secref{use:srt} for further details. This field is consumed by the backend processing and does not appear in the \path{.bbl}.
-\fielditem{sortyear}{literal}
+\fielditem{sortyear}{integer}
A field used to modify the sorting order of the bibliography. If present, this field is used instead of the \bibfield{year} field when sorting the bibliography. Please refer to \secref{use:srt} for further details. This field is consumed by the backend processing and does not appear in the \path{.bbl}.
@@ -1593,7 +1601,7 @@ This entry will be printed as «\emph{Journal Name}. 3rd ser. 15.7 (1995)». Som
%
This entry will be printed as «\emph{Journal Name}. New ser. 9 (1998)». See \secref{aut:lng:key} for a list of localisation keys defined by default.
-\subsubsection{Date Specifications}
+\subsubsection{Date and Time Specifications}
\label{bib:use:dat}
\begin{table}
@@ -1604,23 +1612,84 @@ This entry will be printed as «\emph{Journal Name}. New ser. 9 (1998)». See \s
\multicolumn{2}{H}{Formatted Date (Examples)} \\
\cmidrule(l){2-3}
&
-\multicolumn{1}{H}{Short Format} &
-\multicolumn{1}{H}{Long Format} \\
+\multicolumn{1}{H}{Short/12-hour Format} &
+\multicolumn{1}{H}{Long/24-hour Format} \\
\cmidrule{1-1}\cmidrule(l){2-2}\cmidrule(l){3-3}
1850 & 1850 & 1850 \\
1997/ & 1997-- & 1997-- \\
+1997/unknown & 1997-- & 1997-- \\
+1997/open & 1997-- & 1997-- \\
1967-02 & 02/1967 & February 1967 \\
2009-01-31 & 31/01/2009 & 31st January 2009 \\
1988/1992 & 1988--1992 & 1988--1992 \\
2002-01/2002-02 & 01/2002--02/2002 & January 2002--February 2002 \\
1995-03-30/1995-04-05 & 30/03/1995--05/04/1995 & 30th March 1995--5th April 1995 \\
+2004-04-05T14:34:00 & 05/04/2004 2:34 PM & 5th April 2004 14:34:00\\
\bottomrule
\end{tabularx}
\caption{Date Specifications}
\label{bib:use:tab1}
\end{table}
-The date fields \bibfield{date}, \bibfield{origdate}, \bibfield{eventdate}, and \bibfield{urldate} require a date specification in \texttt{yyyy-mm-dd} format. Date ranges are given as \texttt{yyyy-mm-dd\slash yyyy-mm-dd}. Partial dates are valid provided that date components are omitted at the end only. You may specify an open ended date range by giving the range separator and omitting the end date (\eg \texttt{yyyy/}). See \tabref{bib:use:tab1} for some examples of valid date specifications and the formatted date automatically generated by \biblatex. The formatted date is language specific and will be adapted automatically. If there is no \bibfield{date} field in an entry, \biblatex will also consider the fields \bibfield{year} and \bibfield{month} for backwards compatibility with traditional \bibtex. Style author should note that date fields like \bibfield{date} or \bibfield{origdate} are only available in the \file{bib} file. All dates are parsed and dissected into their components as the \file{bib} file is processed. The date components are made available to styles by way of the special fields discussed in \secref{aut:bbx:fld:dat}. See this section and \tabref{aut:bbx:fld:tab1} on page~\pageref{aut:bbx:fld:tab1} for further information.
+Date fields such as the default data model dates \bibfield{date}, \bibfield{origdate}, \bibfield{eventdate}, and \bibfield{urldate} adhere to \acr{EDTF}\footnote{\url{https://www.loc.gov/standards/datetime/pre-submission.html}} (Extended Date/Time Format) specification levels 0 and 1. \acr{EDTF} is a stricter subset of the somewhat messy formats allowed by \acr{ISO8601v2004} and is better suited to bibliographic data. In addition to the \acr{EDTF} empty date range markers, you may also specify an open ended date range by giving the range separator and omitting the end date (\eg \texttt{YYYY/}). See \tabref{bib:use:tab1} for some examples of valid date specifications and the formatted dates automatically generated by \biblatex. The formatted date is language specific and will be adapted automatically. If there is no \bibfield{date} field in an entry, \biblatex will also consider the fields \bibfield{year} and \bibfield{month} for backwards compatibility with traditional \bibtex but this is not encouraged as explicit \bibfield{year} and \bibfield{month} are not parsed for date meta-information markers or times and are used as-is. Style authors should note that date fields like \bibfield{date} or \bibfield{origdate} are only available in the \file{bib} file. All dates are parsed and dissected into their components as the \file{bib} file is processed. The date and time components are made available to styles by way of the special fields discussed in \secref{aut:bbx:fld:dat}. See this section and \tabref{aut:bbx:fld:tab1} on page~\pageref{aut:bbx:fld:tab1} for further information.
+
+\acr{EDTF} dates are astronomical dates in which year <0> exists. When outputting dates in BCE or BC era (see the \opt{dateera} option below), note that they will typically be one year earlier since BCE/BC era do not have a year 0 (year 0 is 1 BCE/BC). This conversion is automatic. See examples in table \tabref{bib:use:tab2}.
+
+Date field names \emph{must} end with the string <date>, as with the default date fields. Bear this in mind when adding new date fields to the datamodel (see \secref{aut:ctm:dm}). \biblatex will check all date fields after reading the date model and will exit with an error if it finds a date field which does not adhere to this naming convention.
+
+\acr{EDTF} supports dates before common era (BCE/BC) by way of a negative date format and supports <approximate> (circa) and uncertain dates. Such date formats set internal markers which can be tested for so that appropriate localised markers (such as \opt{circa} or \opt{beforecommonera}) can be inserted. Also supported are <uncertain> dates (\acr{EDTF} 5.2.2) which are automatically expanded into appropriate data ranges accompanied by a field \bibfield{$<$datetype$>$dateunspecified} which details the granularity of the unspecified data. Styles may use this information to format such dates appropriately but the standard styles do not do this. See \tabref{bib:use:tab3} on page~\pageref{bib:use:tab3} for the allowed \acr{EDTF} <unspecified> formats, their range expansions and \bibfield{$<$datetype$>$dateunspecified} values (see \secref{aut:bbx:fld:gen}).
+
+\begin{table}
+\tablesetup
+\begin{tabularx}{\textwidth}{@{}>{\ttfamily}llX@{}}
+\toprule
+\multicolumn{1}{@{}H}{Date Specification} &
+\multicolumn{1}{H}{Expanded Range} &
+\multicolumn{1}{H}{Meta-information} \\
+\cmidrule{1-1}\cmidrule(l){2-2}\cmidrule(l){3-3}
+199u & 1990/1999 & yearindecade \\
+19uu & 1900/1999 & yearincentury \\
+1999-uu & 1999-01/1999-12 & monthinyear \\
+1999-01-uu & 1999-01-01/1999-01-31 & dayinmonth \\
+1999-uu-uu & 1999-01-01/1999-12-31 & dayinyear \\
+\bottomrule
+\end{tabularx}
+\caption{EDTF 5.2.2 Unspecified Date Parsing}
+\label{bib:use:tab3}
+\end{table}
+
+\tabref{bib:use:tab2} shows formats which use appropriate tests and formatting. See the date meta-information tests in \secref{aut:aux:tst} and the localisation strings in in \secref{aut:lng:key:dt}. See also the \file{96-dates.tex} example file for complete examples of the tests and localisation strings use.
+
+The output of <circa>, uncertainty and era information in standard styles (or custom styles not customising the internal \cmd{mkdaterange*} macros) is controlled by the package options \opt{datecirca}, \opt{dateuncertain}, \opt{dateera} and \opt{dateeraauto} (see \secref{use:opt:pre:gen}). See \tabref{bib:use:tab2} on page~\pageref{bib:use:tab2} for examples which assumes these options are all used.
+
+\begin{table}
+\tablesetup
+\begin{tabularx}{\textwidth}{@{}>{\ttfamily}llX@{}}
+\toprule
+\multicolumn{1}{@{}H}{Date Specification} &
+\multicolumn{2}{H}{Formatted Date (Examples)} \\
+\cmidrule(l){2-3}
+&
+\multicolumn{1}{H}{Output Format} &
+\multicolumn{1}{H}{Output Format Notes} \\
+\cmidrule{1-1}\cmidrule(l){2-2}\cmidrule(l){3-3}
+0000 & 1 BC & \kvopt{dateera}{christian} prints \opt{beforechrist} localisation\\
+-0876 & 877 BCE & \kvopt{dateera}{secular} prints \opt{beforecommonera} localisation string\\
+-0877/-0866 & 878 BC--867 BC & using \cmd{ifdateera} test and \opt{beforechrist} localisation string\\
+0768 & 0768 CE & using \opt{dateeraauto} set to <1000> and \opt{commonera} localisation string\\
+-0343-02 & 344-02 BCE & \\
+0343-02-03 & 343-02-03 CE & with \opt{dateeraauto=400} \\
+0343-02-03 & 343-02-02 CE & with \opt{dateeraauto=400} and \opt{julian} \\
+1723\textasciitilde & circa 1723 & using \cmd{ifdatecirca} test\\
+1723? & 1723? & using \cmd{ifdateuncertain} test\\
+1723?\textasciitilde & circa 1723? & using \cmd{ifdateuncertain} and \cmd{ifdatecirca} tests\\
+2004-22 & 2004 & also, \bibfield{season} is set to the localisation string <summer>\\
+2004-24 & 2004 & also, \bibfield{season} is set to the localisation string <winter>\\
+\bottomrule
+\end{tabularx}
+\caption{Enhanced Date Specifications}
+\label{bib:use:tab2}
+\end{table}
\subsubsection{Months and Journal Issues}
\label{bib:use:iss}
@@ -1924,7 +1993,7 @@ Whether or not to sort the bibliography and the list of shorthands case"=sensiti
\boolitem[true]{sortupper}
-This option corresponds to \biber's |--sortupper| command-line option. If enabled, the bibliography is sorted in <uppercase before lowercase> order. Disabling this option means <lowercase before uppercase> order.
+This option corresponds to \biber's \opt{--sortupper} command-line option. If enabled, the bibliography is sorted in <uppercase before lowercase> order. Disabling this option means <lowercase before uppercase> order.
\optitem{sortlocale}{\opt{auto}, \prm{locale}}
@@ -2005,7 +2074,7 @@ Enclose the entry in an \env{otherlanguage} environment. This will load hyphenat
Enclose the entry in an \env{otherlanguage*} environment. Please note that \biblatex treats \env{otherlanguage*} like \env{otherlanguage} but other packages may make a distinction in this case.
\item[langname]
-\sty{polyglossia} only. Enclose the entry in a \env{<languagename>} environment. The benefit of this option value for \sty{polyglossia} users is that it takes note of the \bibfield{langidopts} field so that you can add per-language options to an entry (like selecting a language variant). When using \sty{babel}, this option does the same as the \opt{other} option value.
+\sty{polyglossia} only. Enclose the entry in a \env{$<$languagename$>$} environment. The benefit of this option value for \sty{polyglossia} users is that it takes note of the \bibfield{langidopts} field so that you can add per-language options to an entry (like selecting a language variant). When using \sty{babel}, this option does the same as the \opt{other} option value.
\end{valuelist}
@@ -2142,7 +2211,7 @@ The starred versions of these commands will not trigger a reset.
Whether or not to use long or abbreviated strings in citations and in the bibliography. This option affects the localisation modules. If this option is enabled, key terms such as <editor> are abbreviated. If not, they are written out.
-\optitem[comp]{date}{\opt{year}, \opt{short}, \opt{long}, \opt{terse}, \opt{comp}, \opt{iso8601}}
+\optitem[comp]{date}{\opt{year}, \opt{short}, \opt{long}, \opt{terse}, \opt{comp}, \opt{ymd}, \opt{edtf}}
This option controls the basic format of printed date specifications. The following choices are available:
@@ -2164,40 +2233,125 @@ January 21, 2010--January 30, 2010\par
\item[comp] Use the long format with compact ranges, for example:\par
21st--30th January 2010\par
January 21--30, 2010\par
-\item[iso8601] Use extended \acr{ISO-8601} format (\texttt{yyyy-mm-dd}), for example:\par
+\item[edtf] Use strict Extended Date/Time Format\footnote{\url{https://www.loc.gov/standards/datetime/pre-submission.html}} (\texttt{yyyy-mm-dd}), for example:\par
2010-01-01\par
2010-01-21/2010-01-30
+\item[ymd] A year-month-day format which can be modified by other options unlike strict EDTF, for example:\par
+2010-1-1\par
+2010-1-21/2010-1-30
\end{valuelist}
%
-As seen in the above examples, the actual date format is language specific. Note that the month name in all long formats is responsive to the \opt{abbreviate} package option. The leading zeros in all short formats may be controlled separately with the \opt{datezeros} package option.
+Note that \opt{edtf} format will enforce \kvopt{dateera}{astronomical}, \kvopt{datezeros}{true}, \kvopt{timezeros}{true}, \kvopt{seconds}{true}, \kvopt{$<$datetype$>$time}{24h} and \kvopt{julian}{false}. \opt{ymd} is an ETFT-like format but which can change the various options which the strict \opt{edtf} option does not allow for.
-\optitem[year]{datelabel}{\opt{year}, \opt{short}, \opt{long}, \opt{terse}, \opt{comp}, \opt{iso8601}}
+As seen in the above examples, the actual date format is language specific. Note that the month name in all long formats is responsive to the \opt{abbreviate} package option. The leading zeros for months and days in all short formats may be controlled separately with the \opt{datezeros} package option. The leading zeros for hours, minutes and seconds in all short formats may be controlled separately with the \opt{timezeros} package option. If outputting times, the printing of seconds and timezones is controlled by the \opt{seconds} and \opt{timezones} options respectively.
+
+The options \opt{julian} and \opt{gregorianstart} may be used to control when to output Julian Calendar dates.
+
+\optitem[year]{labeldate}{\opt{year}, \opt{short}, \opt{long}, \opt{terse}, \opt{comp}, \opt{ymd}, \opt{edtf}}
Similar to the \opt{date} option but controls the format of the date field selected with \cmd{DeclareLabeldate}.
-\optitem[comp]{origdate}{\opt{year}, \opt{short}, \opt{long}, \opt{terse}, \opt{comp}, \opt{iso8601}}
+\optitem[comp]{$<$datetype$>$date}{\opt{year}, \opt{short}, \opt{long}, \opt{terse}, \opt{comp}, \opt{ymd}, \opt{edtf}}
-Similar to the \opt{date} option but controls the format of the \bibfield{origdate}.
+Similar to the \opt{date} option but controls the format of the \bibfield{$<$datetype$>$date} field in the datamodel.
-\optitem[comp]{eventdate}{\opt{year}, \opt{short}, \opt{long}, \opt{terse}, \opt{comp}, \opt{iso8601}}
+\optitem{alldates}{\opt{year}, \opt{short}, \opt{long}, \opt{terse}, \opt{comp}, \opt{edtf}}
-Similar to the \opt{date} option but controls the format of the \bibfield{eventdate}.
+Sets the option for all dates in the datamodel to the same value. The date fields in the default data model are \bibfield{date}, \bibfield{origdate}, \bibfield{eventdate} and \bibfield{urldate}.
-\optitem[short]{urldate}{\opt{year}, \opt{short}, \opt{long}, \opt{terse}, \opt{comp}, \opt{iso8601}}
+\boolitem[false]{julian}
-Similar to the \opt{date} option but controls the format of the \bibfield{urldate}.
+This option controls whether dates before the date specified in the \opt{gregorianstart} option will be converted automatically to the Julian Calendar. Dates so changed will return <true> for the \cmd{ifdatejulian} and \cmd{if$<$datetype$>$datejulian} tests (see \secref{aut:aux:tst}). Please bear in mind that dates consisting of just a year like <1565> will never be converted to a Julian Calendar date because a date without a month and day has an ambiguous Julian Calendar representation\footnote{This is potentially true for dates missing times too but this is not relevant for bibliographic work.}. For example, in the case of <1565>, this is Julian year <1564> until after the Gregorian date <10th January 1565> when the Julian year becomes <1565>.
-\optitem{alldates}{\opt{year}, \opt{short}, \opt{long}, \opt{terse}, \opt{comp}, \opt{iso8601}}
+\valitem{gregorianstart}{YYYY-MM-DD}
-Sets all of the above date options to the same value.
+This option controls the date before which dates are converted to the Julian Calendar. It is a strict format string, 4-digit year, 2-digit month and day, separated by a single dash character (any valid Unicode character with the <Dash> property). The default is '1582-10-15', the date of the instigation of the standard Gregorian Calendar. This option does not nothing unless \opt{julian} is set to <true>.
\boolitem[true]{datezeros}
-This option controls whether \texttt{short} and \texttt{terse} dates are printed with leading zeros.
+This option controls whether \texttt{short} and \texttt{terse} date components are printed with leading zeros unless overridden by specific formatting.
+
+\boolitem[true]{timezeros}
+
+This option controls whether time components are printed with leading zeros unless overridden by specific formatting.
+
+\boolitem[false]{timezones}
+
+This option controls whether timezones are printed when printing times.
+
+\boolitem[false]{seconds}
+
+This option controls whether seconds are printed when printing times.
\boolitem[true]{dateabbrev}
-This option controls whether \texttt{long} and \texttt{comp} dates are printed with long or abbreviated month names. The option is similar to the generic \opt{abbreviate} option but specific to the date formatting.
+This option controls whether \texttt{long} and \texttt{comp} dates are printed with long or abbreviated month/season names. The option is similar to the generic \opt{abbreviate} option but specific to the date formatting.
+
+\boolitem[false]{datecirca}
+
+This option controls whether to output <circa> information about dates. If set to \opt{true}, dates will be preceded by the expansion of the \cmd{datecircaprint} macro (\secref{use:fmt:fmt}).
+
+\boolitem[false]{dateuncertain}
+
+This option controls whether to output uncertainty information about dates. If set to \opt{true}, dates will be followed by the expansion of the \cmd{dateuncertainprint} macro (\secref{use:fmt:fmt}).
+
+\optitem[astronomical]{dateera}{\opt{astronomical}, \opt{secular}, \opt{christian}}
+
+This option controls how date era information is printed. <astronomical> uses \cmd{dateeraprintpre} to print era information \emph{before} start/end dates. <secular> and <christian> uses \cmd{dateeraprint} to print era information \emph{after} the start/end/dates. By default <astronomical> results in a minus sign before BCE/BC dates and <secular>/<christian> results in the relevant localisation strings like <BCE> or <BC> after BCE/BC dates. See the relevant comments in \secref{use:fmt:fmt} and the localisation strings in \secref{aut:lng:key:dt}.
+
+\intitem[0]{dateeraauto}
+
+This option sets the astronomical year, below which era localisation strings are automatically added. This option does nothing without \opt{dateera} being set to <secular> or <christian>.
+
+\optitem[24h]{time}{\opt{12h}, \opt{24h}, \opt{24hcomp}}
+
+This option controls the basic format of printed time specifications. The following choices are available:
+
+\begin{valuelist}
+\item[24h] 24-hour format, for example:\par
+14:03:23\par
+14:3:23\par
+14:03:23+05:00\par
+14:03:23Z\par
+14:21:23--14:23:45\par
+14:23:23--14:23:45\par
+\item[24hcomp] 24-hour format with compressed ranges, for example:\par
+14:21--23 (hours are the same)\par
+14:23:23--45 (hour and minute are the same)\par
+\item[12h] 12-hour format with (localised) AM/PM markers, for example:\par
+2:34 PM\par
+2:34 PM--3:50 PM\par
+\end{valuelist}
+%
+As seen in the above examples, the actual time format is language specific. Note that the AM/PM string is responsive to the \opt{abbreviate} package option, if this makes a difference in the specific locale. The leading zeros in the 24-hour formats may be controlled separately with the \opt{timezeros} package option. The separator between time components (\cmd{bibtimesep} and \cmd{bibtzminsep})and between the time and any timezone (\cmd{bibtimezonesep}) are also language specific and customisable, see \secref{use:fmt:lng}. There are global package options which determine whether seconds and timezones are printed (\opt{seconds} and \opt{timezones}, respectively, see \secref{use:opt:pre:gen}). Timezones, if present, are either <Z> or a numeric positive or negative offset. No default styles print time information. Custom styles may print times by using the \cmd{print<datetype>time} commands, see \secref{aut:bib:dat}.
+
+\optitem[24h]{labeltime}{\opt{12h}, \opt{24h}, \opt{24hcomp}}
+
+Similar to the \opt{time} option but controls the format of the time part fields obtained from the field selected with \cmd{DeclareLabeldate}.
+
+\optitem[24h]{$<$datetype$>$time}{\opt{12h}, \opt{24h}, \opt{24hcomp}}
+
+Similar to the \opt{time} option but controls the format of the time part fields obtained from the \bibfield{$<$datetype$>$date} field in the datamodel.
+
+\optitem{alltimes}{\opt{12h}, \opt{24h}, \opt{24hcomp}}
+
+Sets \opt{labeltime} and the \opt{$<$datetype$>$time} option for all times in the datamodel to the same value. The date fields supporting time parts in the default data model are \bibfield{date}, \bibfield{origdate}, \bibfield{eventdate} and \bibfield{urldate}.
+
+\boolitem[false]{dateusetime}
+
+Specifies whether to print any time component of a date field after the date component. The separator between the date and time components is \cmd{bibdatetimesep} from \secref{use:fmt:lng}. This option does nothing if a compact date format is being used (see \secref{use:opt:pre:gen}) as this would be very confusing.
+
+\boolitem[false]{labeldateusetime}
+
+Similar to the \opt{dateusetime} option but controls the whether to print time components for the field selected with \cmd{DeclareLabeldate}.
+
+\boolitem[false]{$<$datetype$>$dateusetime}
+
+Similar to the \opt{dateusetime} option but controls the whether to print time components for the \bibfield{$<$datetype$>$date} field in the datamodel.
+
+\boolitem[false]{alldatesusetime}
+
+Sets \opt{labeldateusetime} and the \opt{$<$datetype$>$dateusetime} option for all \bibfield{$<$datetype$>$date} fields in the datamoel.
\boolitem[false]{defernumbers}
@@ -2222,7 +2376,7 @@ See \secref{use:use:epr} for details on support for arXiv and electronic publish
\optitem[auto]{texencoding}{\opt{auto}, \prm{encoding}}
-Specifies the encoding of the \file{tex} file. This option affects the data transferred from the backend to \biblatex. This corresponds to \biber's |--output_encoding| option. The following choices are available:
+Specifies the encoding of the \file{tex} file. This option affects the data transferred from the backend to \biblatex. This corresponds to \biber's \opt{--output-encoding} option. The following choices are available:
\begin{valuelist}
@@ -2236,7 +2390,7 @@ Note that setting \kvopt{texencoding}{\prm{encoding}} will also affect the \opt{
\optitem[auto]{bibencoding}{\opt{auto}, \prm{encoding}}
-Specifies the encoding of the \file{bib} files. This corresponds to \biber's |--input_encoding| option. The following choices are available:
+Specifies the encoding of the \file{bib} files. This corresponds to \biber's \opt{--input-encoding} option. The following choices are available:
\begin{valuelist}
@@ -2294,7 +2448,7 @@ This option controls whether \bibfield{eprint} information is printed.
\paragraph{Internal}
\label{use:opt:pre:int}
-The default settings of the following preamble options are controlled by bibliography and citation styles. Apart from the \opt{pagetracker} and \opt{giveninits} options, which you may want to adapt, there is normally no need to set them explicitly.
+The default settings of the following preamble options are controlled by bibliography and citation styles. Apart from the \opt{pagetracker} and \opt{$<$name$>$inits} options, which you may want to adapt, there is normally no need to set them explicitly.
\begin{optionlist}
@@ -2399,17 +2553,13 @@ This option controls the parenthesis tracker which keeps track of nested parenth
The maximum permitted nesting level of parentheses and brackets. If parentheses and brackets are nested deeper than this value, \biblatex will issue errors.
-\boolitem[false]{giveninits}
-
-When enabled, all first and middle names will be rendered as initials. The option will affect the \cmd{ifgiveninits} test from \secref{aut:aux:tst}.
+\boolitem[false]{$<$namepart$>$inits}
-\boolitem[false]{sortgiveninits}
-
-When enabled, sorting names will only use their initials. This is separate from \opt{giveninits} in case users want to show only inits but sort on full names, for example.
+When enabled, all $<$namepart$>$ name parts will be rendered as initials. The option will affect the \cmd{if$<$namepart$>$inits} test from \secref{aut:aux:tst}. The valid name parts are defined in the data model by the \cmd{DeclareDatamodelConstant} command (\secref{aut:bbx:drv}).
\boolitem[false]{terseinits}
-This option controls the format of initials generated by \biblatex. If enabled, initials are rendered using a terse format without dots and spaces. For example, the initials of Donald Ervin Knuth would be rendered as <D.~E.> by default, and as <DE> if this option is enabled. The option will affect the \cmd{ifterseinits} test from \secref{aut:aux:tst}. The option works by redefining some macros which control the format of initials. See \secref{use:cav:nam} for details.
+This option controls the format of all initials generated by \biblatex. If enabled, initials are rendered using a terse format without dots and spaces. For example, the initials of Donald Ervin Knuth would be rendered as <D.~E.> by default, and as <DE> if this option is enabled. The option will affect the \cmd{ifterseinits} test from \secref{aut:aux:tst}. The option works by redefining some macros which control the format of initials. See \secref{use:cav:nam} for details.
\boolitem[false]{labelalpha}
@@ -2437,19 +2587,49 @@ Whether or not to provide the special field \bibfield{extratitle}, see \secref{a
Whether or not to provide the special field \bibfield{extratitleyear}, see \secref{aut:bbx:fld} for details. Note that the special field \bibfield{labeltitle} is always provided and this option controls rather whether \bibfield{labeltitle} is used to generate \bibfield{extratitleyear} information. This option is also settable on a per-type basis. Table \ref{use:opt:tab1} summarises the various \opt{extra*} disambiguation counters and what they track.
-\boolitem[false]{labeldate}
+\boolitem[false]{labeldateparts}
-Whether or not to provide the special fields \bibfield{labelyear}, \bibfield{labelmonth}, \bibfield{labelday} and \bibfield{extrayear}, see \secref{aut:bbx:fld} for details.
+Whether or not to provide the special fields \bibfield{labelyear}, \bibfield{labelmonth}, \bibfield{labelday}, \bibfield{labelendyear}, \bibfield{labelendmonth}, \bibfield{labelendday}, \bibfield{labelhour}, \bibfield{labelendhour}, \bibfield{labelminute}, \bibfield{labelendminute}, \bibfield{labelsecond}, \bibfield{labelendsecond}, \bibfield{labelseason}, \bibfield{labelendseason}, \bibfield{labeltimezone}, \bibfield{labelendtimeone} and \bibfield{extrayear}, see \secref{aut:bbx:fld} for details.
This option is also settable on a per-type basis. Table \ref{use:opt:tab1} summarises the various \opt{extra*} disambiguation counters and what they track.
+\begin{table}
+\footnotesize
+\ttfamily
+\tablesetup
+\begin{tabularx}{\textwidth}{XXX}
+\toprule
+\multicolumn{1}{@{}H}{Option} &
+\multicolumn{1}{@{}H}{Test} &
+\multicolumn{1}{@{}H}{Tracks} \\
+\cmidrule(r){1-1}\cmidrule(r){2-2}\cmidrule(r){3-3}
+singletitle & \cmd{ifsingletitle} & labelname\\
+uniquetitle & \cmd{ifuniquetitle} & labeltitle\\
+uniquebaretitle & \cmd{ifuniquebaretitle} & labeltitle when labelname is null\\
+uniquework & \cmd{ifuniquework} & labelname+labeltitle\\
+\bottomrule
+\end{tabularx}
+\caption{Work Uniqueness options}
+\label{use:opt:wu}
+\end{table}
+
\boolitem[false]{singletitle}
-Whether or not to provide the data required by the \cmd{ifsingletitle} test, see \secref{aut:aux:tst} for details.
+Whether or not to provide the data required by the \cmd{ifsingletitle} test, see \secref{aut:aux:tst} for details. See \tabref{use:opt:wu} for details on what determines the data for this test.
This option is also settable on a per-type basis.
\boolitem[false]{uniquetitle}
-Whether or not to provide the data required by the \cmd{ifuniquetitle} test, see \secref{aut:aux:tst} for details.
+Whether or not to provide the data required by the \cmd{ifuniquetitle} test, see \secref{aut:aux:tst} for details. See \tabref{use:opt:wu} for details on what determines the data for this test.
+This option is also settable on a per-type basis.
+
+\boolitem[false]{uniquebaretitle}
+
+Whether or not to provide the data required by the \cmd{ifuniquebaretitle} test, see \secref{aut:aux:tst} for details. See \tabref{use:opt:wu} for details on what determines the data for this test.
+This option is also settable on a per-type basis.
+
+\boolitem[false]{uniquework}
+
+Whether or not to provide the data required by the \cmd{ifuniquework} test, see \secref{aut:aux:tst} for details. See \tabref{use:opt:wu} for details on what determines the data for this test.
This option is also settable on a per-type basis.
\boolitem[false]{uniqueprimaryauthor}
@@ -2464,8 +2644,8 @@ Whether or not to update the \cnt{uniquename} counter, see \secref{aut:aux:tst}
\begin{valuelist}
\item[true] An alias for \opt{full}.
\item[false] Disable this feature.
-\item[init] Disambiguate names using initials only.
-\item[full] Disambiguate names using initials or full names, as required.
+\item[init] Disambiguate using initials only.
+\item[full] Disambiguate using initials or full names, as required.
\item[allinit] Similar to \opt{init} but disambiguates all names in the \bibfield{labelname} list, beyond \opt{maxnames}\slash \opt{minnames}\slash \opt{uniquelist}.
\item[allfull] Similar to \opt{full} but disambiguates all names in the \bibfield{labelname} list, beyond \opt{maxnames}\slash \opt{minnames}\slash \opt{uniquelist}.
\item[mininit] A variant of \texttt{init} which only disambiguates names in lists with identical last names.
@@ -2481,7 +2661,7 @@ Whether or not to update the \cnt{uniquelist} counter, see \secref{aut:aux:tst}
\begin{valuelist}
\item[true] Disambiguate the \bibfield{labelname} list.
\item[false] Disable this feature.
-\item[minyear] Disambiguate the \bibfield{labelname} list only if the truncated list is identical to another one with the same \bibfield{labelyear}. This mode of operation is useful for author-year styles and requires \kvopt{labeldate}{true}.
+\item[minyear] Disambiguate the \bibfield{labelname} list only if the truncated list is identical to another one with the same \bibfield{labelyear}. This mode of operation is useful for author-year styles and requires \kvopt{labeldateparts}{true}.
\end{valuelist}
%
Note that the \opt{uniquelist} option will also affect the \cmd{ifsingletitle} test and the \bibfield{extrayear} field. See \secref{aut:cav:amb} for further details and practical examples.
@@ -2489,19 +2669,35 @@ Note that the \opt{uniquelist} option will also affect the \cmd{ifsingletitle} t
\end{optionlist}
\begin{table}
+\footnotesize
\ttfamily
\tablesetup
-\begin{tabularx}{\textwidth}{@{}p{100pt}@{}p{100pt}@{}p{100pt}@{}p{100pt}@{}}
+\begin{tabularx}{\textwidth}{XXXX}
\toprule
\multicolumn{1}{@{}H}{Option} &
-\multicolumn{1}{@{}H}{Enabled field} &
+\multicolumn{1}{@{}H}{Enabled field(s)} &
\multicolumn{1}{@{}H}{Enabled counter} &
\multicolumn{1}{@{}H}{Counter tracks} \\
\cmidrule(r){1-1}\cmidrule(r){2-2}\cmidrule(r){3-3}\cmidrule{4-4}
-labelalpha & labelalpha & extraalpha & label\\
-labeldate & labelyear & extrayear & labelname+labelyear\\
-labeltitle & --- & extratitle & labelname+labeltitle\\
-labeltitleyear & --- & extratitleyear & labeltitle+labelyear\\
+labelalpha & labelalpha & extraalpha & label\\
+labeldateparts & labelyear & extrayear & labelname+\\
+ & labelmonth & & labelyear\\
+ & labelday & & \\
+ & labelendyear & & \\
+ & labelendmonth & & \\
+ & labelendday & & \\
+ & labelhour & & \\
+ & labelminute & & \\
+ & labelsecond & & \\
+ & labelendhour & & \\
+ & labelendminute & & \\
+ & labelendsecond & & \\
+ & labelseason & & \\
+ & labelendseason & & \\
+ & labeltimezone & & \\
+ & labelendtimezone & & \\
+labeltitle & \rmfamily{---} & extratitle & labelname+labeltitle\\
+labeltitleyear & \rmfamily{---} & extratitleyear & labeltitle+labelyear\\
\bottomrule
\end{tabularx}
\caption{Disambiguation counters}
@@ -2552,8 +2748,18 @@ defined. Global, per-type and per-entry options called <use$<$name$>$>are automa
\boolitem[false]{useprefix}
-Whether the name prefix (von, van, of, da, de, della, etc.) is considered when printing the last name in citations. This also affects the sorting and formatting of the bibliography as well as the generation of certain types of labels. If this option is enabled, \biblatex always precedes the last name with the prefix. For example, Ludwig van Beethoven would be cited as «Beethoven» and alphabetized as «Beethoven, Ludwig van» by default. If this option is enabled, he is cited as «van Beethoven» and alphabetized as «Van Beethoven, Ludwig» instead.
-This option is also settable on a per-type scope. With \biblatexml datasources, this is settable on per-namelist and per-name scopes.
+Whether the default date model name part <prefix> (von, van, of, da, de, della, etc.) is considered when:
+
+\begin{itemize}
+\item Printing the last name in citations
+\item Sorting
+\item Generation of certain types of labels
+\item Generating name uniqueness information
+\item Formatting aspects of the bibliography
+\end{itemize}
+%
+For example, if this option is enabled, \biblatex precedes the last name with the prefix---Ludwig van Beethoven would be cited as «van Beethoven» and alphabetized as «Van Beethoven, Ludwig». If this option is disabled (the default), he is cited as «Beethoven» and alphabetized as «Beethoven, Ludwig van» instead.
+This option is also settable on a per-type scope. With \biblatexml datasources and the \bibtex extended name format supported by \biber, this is also settable on per-namelist and per-name scopes.
\optitem{indexing}{\opt{true}, \opt{false}, \opt{cite}, \opt{bib}}
@@ -2585,7 +2791,7 @@ This option is also settable on a per-type basis.
\boolitem[false]{dataonly}
-Setting this option is equivalent to \kvopt{uniquename}{false}, \kvopt{uniquelist}{false, }\opt{skipbib}, \opt{skiplos}/\opt{skipbiblist}, and \opt{skiplab}. It is not required for normal operation. Use it with care.
+Setting this option is equivalent to \kvopt{uniquename}{false}, \kvopt{uniquelist}{false, }\opt{skipbib}, \opt{skipbiblist}, and \opt{skiplab}. It is not required for normal operation. Use it with care.
This option is also settable on a per-type basis.
\paragraph{Entry Only Options}
@@ -2664,16 +2870,16 @@ This style implements an alphabetic citation scheme similar to the \path{alpha.b
A verbose variant of the \texttt{alphabetic} style. The difference affects the handling of a list of citations and is only apparent when multiple entry keys are passed to a single citation command. For example, instead of «[Doe92; Doe95; Jon98]» this style would print «[Doe92]; [Doe95]; [Jon98]». It is intended for in-text citations. The style will set the following package options at load time: \kvopt{autocite}{inline}, \kvopt{labelalpha}{true}.
\item[authoryear]
-This style implements an author"=year citation scheme. If the bibliography contains two or more works by the same author which were all published in the same year, a letter is appended to the year. For example, this style would print citations such as «Doe 1995a; Doe 1995b; Jones 1998». This style should be employed in conjunction with an author"=year bibliography style which prints the corresponding labels in the bibliography. It is primarily intended for in-text citations, but it could also be used with citations given in footnotes. The style will set the following package options at load time: \kvopt{autocite}{inline}, \kvopt{labeldate}{true}, \kvopt{uniquename}{full}, \kvopt{uniquelist}{true}.
+This style implements an author"=year citation scheme. If the bibliography contains two or more works by the same author which were all published in the same year, a letter is appended to the year. For example, this style would print citations such as «Doe 1995a; Doe 1995b; Jones 1998». This style should be employed in conjunction with an author"=year bibliography style which prints the corresponding labels in the bibliography. It is primarily intended for in-text citations, but it could also be used with citations given in footnotes. The style will set the following package options at load time: \kvopt{autocite}{inline}, \kvopt{labeldateparts}{true}, \kvopt{uniquename}{full}, \kvopt{uniquelist}{true}.
\item[authoryear-comp]
-A compact variant of the \texttt{authoryear} style which prints the author only once if subsequent references passed to a single citation command share the same author. If they share the same year as well, the year is also printed only once. For example, instead of «Doe 1995b; Doe 1992; Jones 1998; Doe 1995a» this style would print «Doe 1992, 1995a,b; Jones 1998». It is primarily intended for in-text citations, but it could also be used with citations given in footnotes. The style will set the following package options at load time: \kvopt{autocite}{inline}, \kvopt{sortcites}{true}, \kvopt{labeldate}{true}, \kvopt{uniquename}{full}, \kvopt{uniquelist}{true}.
+A compact variant of the \texttt{authoryear} style which prints the author only once if subsequent references passed to a single citation command share the same author. If they share the same year as well, the year is also printed only once. For example, instead of «Doe 1995b; Doe 1992; Jones 1998; Doe 1995a» this style would print «Doe 1992, 1995a,b; Jones 1998». It is primarily intended for in-text citations, but it could also be used with citations given in footnotes. The style will set the following package options at load time: \kvopt{autocite}{inline}, \kvopt{sortcites}{true}, \kvopt{labeldateparts}{true}, \kvopt{uniquename}{full}, \kvopt{uniquelist}{true}.
\item[authoryear-ibid]
-A variant of the \texttt{authoryear} style which replaces repeated citations by the abbreviation \emph{ibidem} unless the citation is the first one on the current page or double-page spread, or the \emph{ibidem} would be ambiguous in the sense of the package option \kvopt{ibidtracker}{constrict}. The style will set the following package options at load time: \kvopt{autocite}{inline}, \kvopt{labeldate}{true}, \kvopt{uniquename}{full}, \kvopt{uniquelist}{true}, \kvopt{ibidtracker}{constrict}, \kvopt{pagetracker}{true}. This style also provides an additional preamble option called \opt{ibidpage}. See the style example for details.
+A variant of the \texttt{authoryear} style which replaces repeated citations by the abbreviation \emph{ibidem} unless the citation is the first one on the current page or double-page spread, or the \emph{ibidem} would be ambiguous in the sense of the package option \kvopt{ibidtracker}{constrict}. The style will set the following package options at load time: \kvopt{autocite}{inline}, \kvopt{labeldateparts}{true}, \kvopt{uniquename}{full}, \kvopt{uniquelist}{true}, \kvopt{ibidtracker}{constrict}, \kvopt{pagetracker}{true}. This style also provides an additional preamble option called \opt{ibidpage}. See the style example for details.
\item[authoryear-icomp]
-A style combining \texttt{authoryear-comp} and \texttt{authoryear-ibid}. The style will set the following package options at load time: \kvopt{autocite}{inline}, \kvopt{labeldate}{true}, \kvopt{uniquename}{full}, \kvopt{uniquelist}{true}, \kvopt{ibidtracker}{constrict}, \kvopt{pagetracker}{true}, \kvopt{sortcites}{true}. This style also provides an additional preamble option called \opt{ibidpage}. See the style example for details.
+A style combining \texttt{authoryear-comp} and \texttt{authoryear-ibid}. The style will set the following package options at load time: \kvopt{autocite}{inline}, \kvopt{labeldateparts}{true}, \kvopt{uniquename}{full}, \kvopt{uniquelist}{true}, \kvopt{ibidtracker}{constrict}, \kvopt{pagetracker}{true}, \kvopt{sortcites}{true}. This style also provides an additional preamble option called \opt{ibidpage}. See the style example for details.
\item[authortitle]
This style implements a simple author"=title citation scheme. It will make use of the \bibfield{shorttitle} field, if available. It is intended for citations given in footnotes. The style will set the following package options at load time: \kvopt{autocite}{footnote}, \kvopt{uniquename}{full}, \kvopt{uniquelist}{true}.
@@ -2748,7 +2954,7 @@ This style prints a numeric label similar to the standard bibliographic faciliti
This style prints an alphabetic label similar to the \path{alpha.bst} style of traditional \bibtex. It is intended for use in conjunction with an alphabetic citation style. Note that the \bibfield{shorthand} field overrides the default label. The style will set the following package options at load time: \kvopt{labelalpha}{true}, \kvopt{sorting}{anyt}.
\item[authoryear]
-This style differs from the other styles in that the publication date is not printed towards the end of the entry but rather after the author\slash editor. It is intended for use in conjunction with an author"=year citation style. Recurring author and editor names are replaced by a dash unless the entry is the first one on the current page or double-page spread. This style provides an additional preamble option called \opt{dashed} which controls this feature. It also provided a preamble option called \opt{mergedate}. See the style example for details. The style will set the following package options at load time: \kvopt{labeldate}{true}, \kvopt{sorting}{nyt}, \kvopt{pagetracker}{true}, \kvopt{mergedate}{true}.
+This style differs from the other styles in that the publication date is not printed towards the end of the entry but rather after the author\slash editor. It is intended for use in conjunction with an author"=year citation style. Recurring author and editor names are replaced by a dash unless the entry is the first one on the current page or double-page spread. This style provides an additional preamble option called \opt{dashed} which controls this feature. It also provided a preamble option called \opt{mergedate}. See the style example for details. The style will set the following package options at load time: \kvopt{labeldateparts}{true}, \kvopt{sorting}{nyt}, \kvopt{pagetracker}{true}, \kvopt{mergedate}{true}.
\item[authortitle]
This style does not print any label at all. It is intended for use in conjunction with an author"=title citation style. Recurring author and editor names are replaced by a dash unless the entry is the first one on the current page or double-page spread. This style also provides an additional preamble option called \opt{dashed} which controls this feature. See the style example for details. The style will set the following package options at load time: \kvopt{pagetracker}{true}.
@@ -2844,14 +3050,14 @@ Multiple relations to the same entry are also possible:
%
Note the the order of the keys in lists of multiple related entries is important. The data from multiple related entries is printed in the order of the keys listed in this field. See \secref{aut:ctm:rel} for a more details on the mechanisms behind this feature. You can turn this feature off using the package option \opt{related} from \secref{use:opt:pre:gen}.
-You can use the \bibfield{relatedoptions} to set options on the related entry data clone. This is useful if you need to override the \opt{dataonly} option which is set by default on all related entry clones. For example, if you will expose some of the names in the related clone in your document, you may want to have them disambiguated from names in other entries but normally this won't happen as related clones have the per"=entry \opt{dataonly} option set and this in turn sets \kvopt{uniquename}{false} and \kvopt{uniquelist}{false}. In such a case, you can set \bibfield{relatedoptions} to just \opt{skiplab, skipbib, skiplos/skipbiblist}.
+You can use the \bibfield{relatedoptions} to set options on the related entry data clone. This is useful if you need to override the \opt{dataonly} option which is set by default on all related entry clones. For example, if you will expose some of the names in the related clone in your document, you may want to have them disambiguated from names in other entries but normally this won't happen as related clones have the per"=entry \opt{dataonly} option set and this in turn sets \kvopt{uniquename}{false} and \kvopt{uniquelist}{false}. In such a case, you can set \bibfield{relatedoptions} to just \opt{skiplab, skipbib, skipbiblist}.
\subsection{Sorting Options}
\label{use:srt}
This package supports various sorting schemes for the bibliography. The sorting scheme is selected with the \opt{sorting} package option from \secref{use:opt:pre:gen}. Apart from the regular data fields there are also some special fields which may be used to optimize the sorting of the bibliography. \Apxref{apx:srt:a1, apx:srt:a2} give an outline of the alphabetic sorting schemes supported by \biblatex. Chronological sorting schemes are listed in \apxref{apx:srt:chr}. A few explanations concerning these schemes are in order.
-The first item considered in the sorting process is always the \bibfield{presort} field of the entry. If this field is undefined, \biblatex will use the default value <\texttt{mm}> as a presort string. The next item considered is the \bibfield{sortkey} field. If this field is defined, it serves as the master sort key. Apart from the \bibfield{presort} field, no further data is considered in this case. If the \bibfield{sortkey} field is undefined, sorting continues with the name. The package will try using the \bibfield{sortname}, \bibfield{author}, \bibfield{editor}, and \bibfield{translator} fields, in this order. Which fields are considered also depends on the setting of the \opt{use$<$name$>$} options. If all such options are disabled, the \bibfield{sortname} field is ignored as well. Note that all name fields are responsive to \opt{maxnames} and \opt{minnames}. If no name field is available, either because all of them are undefined or because all \opt{use$<$name$>$} options are disabled, \biblatex will fall back to the \bibfield{sorttitle} and \bibfield{title} fields as a last resort. The remaining items are, in various order: the \bibfield{sortyear} field, if defined, or the first four digits of the \bibfield{year} field otherwise; the \bibfield{sorttitle} field, if defined, or the \bibfield{title} field otherwise; the \bibfield{volume} field, which is padded to four digits with leading zeros, or the string \texttt{0000} otherwise. Note that the sorting schemes shown in \apxref{apx:srt:a2} include an additional item: \bibfield{labelalpha} is the label used by <alphabetic> bibliography styles. Strictly speaking, the string used for sorting is \bibfield{labelalpha}~+ \bibfield{extraalpha}. The sorting schemes in \apxref{apx:srt:a2} are intended to be used in conjunction with alphabetic styles only.
+The first item considered in the sorting process is always the \bibfield{presort} field of the entry. If this field is undefined, \biblatex will use the default value <\texttt{mm}> as a presort string. The next item considered is the \bibfield{sortkey} field. If this field is defined, it serves as the master sort key. Apart from the \bibfield{presort} field, no further data is considered in this case. If the \bibfield{sortkey} field is undefined, sorting continues with the name. The package will try using the \bibfield{sortname}, \bibfield{author}, \bibfield{editor}, and \bibfield{translator} fields, in this order. Which fields are considered also depends on the setting of the \opt{use$<$name$>$} options. If all such options are disabled, the \bibfield{sortname} field is ignored as well. Note that all name fields are responsive to \opt{maxnames} and \opt{minnames}. If no name field is available, either because all of them are undefined or because all \opt{use$<$name$>$} options are disabled, \biblatex will fall back to the \bibfield{sorttitle} and \bibfield{title} fields as a last resort. The remaining items are, in various order: the \bibfield{sortyear} field, if defined, or the first four digits of the \bibfield{year} field otherwise; the \bibfield{sorttitle} field, if defined, or the \bibfield{title} field otherwise; the \bibfield{volume} field. Note that the sorting schemes shown in \apxref{apx:srt:a2} include an additional item: \bibfield{labelalpha} is the label used by <alphabetic> bibliography styles. Strictly speaking, the string used for sorting is \bibfield{labelalpha}~+ \bibfield{extraalpha}. The sorting schemes in \apxref{apx:srt:a2} are intended to be used in conjunction with alphabetic styles only.
The chronological sorting schemes presented in \apxref{apx:srt:chr} also make use of the \bibfield{presort} and \bibfield{sortkey} fields, if defined. The next item considered is the \bibfield{sortyear} or the \bibfield{year} field, depending on availability. The \opt{ynt} scheme extracts the first four Arabic figures from the field. If both fields are undefined, the string \texttt{9999} is used as a fallback value. This means that all entries without a year will be moved to the end of the list. The \opt{ydnt} scheme is similar in concept but sorts the year in descending order. As with the \opt{ynt} scheme, the string \texttt{9999} is used as a fallback value. The remaining items are similar to the alphabetic sorting schemes discussed above. Note that the \opt{ydnt} sorting scheme will only sort the date in descending order. All other items are sorted in ascending order as usual.
@@ -3019,8 +3225,6 @@ The data type (format) of the resource. The following formats are currently supp
\item[biblatexml] Experimental XML format for \biblatex. See \secref{apx:biblatexml}.
-\item[ris] Research Information Systems (\acr{RIS}) format.\fnurl{http://en.wikipedia.org/wiki/RIS_(file_format)} Note that an \texttt{ID} tag is required in all \acr{RIS} records. The \texttt{ID} value corresponds to the entry key. Support for this format is experimental.
-
\end{valuelist}
\end{optionlist*}
@@ -3157,7 +3361,7 @@ A bibliography list differs from a normal bibliography in that the same bibliogr
\begin{ltxsyntax}
-\cmditem{printbiblist}[key=value, \dots]{<biblistname>}
+\cmditem{printbiblist}[key=value, \dots]{$<$biblistname$>$}
This command prints a bibliography list. It takes an optional argument, which is a list of options given in \keyval notation. Valid options are all options supported by \cmd{printbibliography} (\secref{use:bib:bib}) except \opt{resetnumbers} and \opt{omitnumbers}. If there are any \env{refsection} environments in the document, the bibliography list will be local to these environments; see \secref{use:bib:sec} for details. By default, this command uses the heading \texttt{biblist}. See \secref{use:bib:hdg} for details.
@@ -3517,25 +3721,28 @@ To demonstrate the second type of use of bibliography contexts, we have to under
%
Here, the second use of the citations, along with the \cmd{printbibliography} command will use data from the context of the custom <yntd> sorting scheme which may well be different from the data associated with the default <nyt> scheme. That is, the citation labels (in an authoryear style which uses \opt{extrayear}) may be different \emph{for the exact same entries} between different bibliography contexts and so the citations themselves may look different.
-By default, data for a citation is drawn from the reference context of the last bibliography in which it was printed. For example, in the fragment:
+Reference contexts can be declared with \cmd{DeclareRefcontext} and referred to by name, see below.
+
+By default, data for a citation is drawn from the reference context of the last bibliography in which it was printed. For example:
\begin{ltxexample}[style=latex]{}
+\DeclareRefcontext{ap}{labelprefix=A}
\begin{document}
\cite{book, article, misc}
\printbibliography[type=book]
-\newrefcontext[labelprefix=A]
+\newrefcontext{ap}
\printbibliography[type=article]
-\newrefcontext[sorting=ydnt, resetnumbers]
+\newrefcontext[sorting=ydnt]
\printbibliography[type=misc]
\end{document}
\end{ltxexample}
%
-Assuming the entrykeys are indicative of their entrytypes, this is the default situation for the citations which corresponds to what users normally expect:
+This example also shows the declaration and use of a named reference context. Assuming the entrykeys are indicative of their entrytypes, this is the default situation for the citations which corresponds to what users normally expect:
\begin{itemize}
\item The citation of entry \bibfield{book} would draw its data from the global reference context, because the last bibliography in which it was printed was the one in the global reference context.
@@ -3547,9 +3754,9 @@ In cases where the user has entries which occur in multiple bibliographies in di
\begin{ltxsyntax}
-\envitem{refcontext}[key=value, \dots]
+\cmditem{DeclareRefcontext}{name}{key=value, \dots}
-Wraps a bibliography context environment. The options define the context attributes. All context attributes are optional and default to the global settings if absent. The current options are:
+Declares a named reference context with name \prm{name}. The \prm{key=value} options define the context attributes. All context attributes are optional and default to the global settings if absent. The valid options are:
\begin{optionlist*}
@@ -3563,18 +3770,71 @@ Specify a sorting name key scheme defined previously with \cmd{DeclareSortingNam
\valitem{labelprefix}{string}
-This option applies to numerical citation\slash bibliography styles only and requires that the \opt{defernumbers} option from \secref{use:opt:pre:gen} be enabled globally. Setting this option will implicitly enable \opt{resetnumbers} for the any \cmd{printbibliography} in the scope of the context. The option assigns the \prm{string} as a prefix to all entries in the reference context. For example, if the \prm{string} is \texttt{A}, the numerical labels printed will be \texttt{[A1]}, \texttt{[A2]}, \texttt{[A3]}, etc. This is useful for subdivided numerical bibliographies where each subbibliography uses a different prefix. The \prm{string} is available to styles in the \bibfield{labelprefix} field of all affected entries. See \secref{aut:bbx:fld:lab} for details.
+This option applies to numerical citation\slash bibliography styles only and requires that the \opt{defernumbers} option from \secref{use:opt:pre:gen} be enabled globally. Setting this option will implicitly enable \opt{resetnumbers} for the any \cmd{printbibliography} in the scope of the context (unless overridden by a user-specified value for \opt{resetnumbers}). The option assigns the \prm{string} as a prefix to all entries in the reference context. For example, if the \prm{string} is \texttt{A}, the numerical labels printed will be \texttt{[A1]}, \texttt{[A2]}, \texttt{[A3]}, etc. This is useful for subdivided numerical bibliographies where each subbibliography uses a different prefix. The \prm{string} is available to styles in the \bibfield{labelprefix} field of all affected entries. See \secref{aut:bbx:fld:lab} for details.
\end{optionlist*}
%
+
+\envitem{refcontext}[key=value, \dots]{name}
+
+Wraps a reference context environment. The possible \prm{key=value} optional arguments are as for \cmd{DeclareRefcontext} and override options given for the named reference context \prm{name}. \prm{name} can also be omitted as \verb+{}+ or by omitting even the empty braces\footnote{This slightly odd syntax possibility is a result of backwards compatibility with \biblatex $<$3.5}.
+
The \opt{refcontext} environment cannot be nested and \biblatex will generate an error if you try to do so.
-\cmditem{newrefcontext}[key=value, \dots]
+\cmditem{newrefcontext}[key=value, \dots]{name}
-This command is similar to the \env{refcontext} environment except that it is a stand"=alone command rather than an environment. It automatically ends the previous context section (if any) and immediately starts a new one. Note that the context section started by the last \cmd{newrefcontext} command in the document will extend to the very end of the document. Use \cmd{endrefcontext} if you want to terminate it earlier.
+This command is similar to the \env{refcontext} environment except that it is a stand"=alone command rather than an environment. It automatically ends any previous reference context section begun with \cmd{newrefcontext} (if any) and immediately starts a new one. Note that the context section started by the last \cmd{newrefcontext} command in the document will extend to the very end of the document. Use \cmd{endrefcontext} if you want to terminate it earlier.
\end{ltxsyntax}
%
-At the beginning of the document, there is always a global context containing global settings for each of the reference context options.
+At the beginning of the document, there is always a global context containing global settings for each of the reference context options. Here is an example summarising the reference contexts with various settings:
+
+\begin{ltxexample}[style=latex]{}
+\usepackage[sorting=nty]{biblatex}
+
+\DeclareRefcontext{testrc}{sorting=nyt}
+
+% Global reference context:
+% sorting=nty
+% sortingnamekeyscheme=global
+% labelprefix=
+
+\begin{document}
+
+\begin{refcontext}{testrc}
+% reference context:
+% sorting=nyt
+% sortingnamekeyscheme=global
+% labelprefix=
+\end{refcontext}
+
+\begin{refcontext}[labelprefix=A]{testrc}
+% reference context:
+% sorting=nyt
+% sortingnamekeyscheme=global
+% labelprefix=A
+\end{refcontext}
+
+\begin{refcontext}[sorting=ydnt,labelprefix=A]
+% reference context:
+% sorting=ydnt
+% sortingnamekeyscheme=global
+% labelprefix=A
+\end{refcontext}
+
+\newfcontext}[labelprefix=B]
+% reference context:
+% sorting=nty
+% sortingnamekeyscheme=global
+% labelprefix=B
+\endrefcontext
+
+\newfcontext}[sorting=ynt,labelprefix=C]{testrc}
+% reference context:
+% sorting=ynt
+% sortingnamekeyscheme=global
+% labelprefix=C
+\endrefcontext
+\end{ltxexample}
\begin{ltxsyntax}
@@ -4140,7 +4400,7 @@ The commands and facilities presented in this section may be used to adapt the f
\subsubsection{Generic Commands and Hooks}
\label{use:fmt:fmt}
-The commands in this section may be redefined with \cmd{renewcommand} in the document preamble. Those marked as <Context Sensitive> in the margin can also be customised with \cmd{DeclareDelimFormat} and are printed with \cmd{printdelim} (\secref{use:fmt:csd}). Note that all commands starting with \cmd{mk\dots} take one argument. All of these commands are defined in \path{biblatex$_$.def}.
+The commands in this section may be redefined with \cmd{renewcommand} in the document preamble. Those marked as <Context Sensitive> in the margin can also be customised with \cmd{DeclareDelimFormat} and are printed with \cmd{printdelim} (\secref{use:fmt:csd}). Note that all commands starting with \cmd{mk\dots} take one argument. All of these commands are defined in \path{biblatex.def}.
\begin{ltxsyntax}
@@ -4283,6 +4543,24 @@ Similar to \cmd{multicitedelim}, but used by the \cmd{supercite} command only. T
\csitem{compcitedelim}
Similar to \cmd{multicitedelim}, but used by certain citation styles when <compressing> multiple citations. The default definition is a comma plus an interword space.
+\csitem{datecircadelim}\CSdelimMark
+When formatting dates with the global option \opt{datecirca} enabled, the delimiter printed after any localised <circa> term. Defaults to interword space.
+
+\csitem{dateeradelim}\CSdelimMark
+When formatting dates with the global option \opt{dateera} set, the delimiter printed before the localisation era term. Defaults to interword space.
+
+\csitem{dateuncertainprint}
+Prints date uncertainty information when the global option \opt{dateuncertain} is enabled. By default, prints the language specific \cmd{bibdateuncertain} string (\secref{use:fmt:lng}).
+
+\csitem{datecircaprint}
+Prints date uncertainty information when the global option \opt{datecirca} is enabled. By default, prints the <circa> localised term (\secref{aut:lng:key:dt}) and the \opt{datecircadelim} delimiter.
+
+\csitem{dateeraprint}{yearfield}
+Prints date era information when the global option \opt{dateera} is set to <secular> or <christian>. By default, prints the \opt{dateeradelim} delimiter and the appropriate localised era term (\secref{aut:lng:key:dt}). If the \opt{dateeraauto} option is set, then the passed \prm{yearfield} (which is the name of a year field such as <year>, <origyear>, <endeventyear> etc.) is tested to see if its value is earlier than the \opt{dateeraauto} threshold and if so, then the BCE/CE localisation will be output too. The default setting for \opt{dateeraauto} is 0 and so only BCE/BC localisation strings are candidates for output. Detects whether the start or end year era information is to be printed by looking at the \prm{yearfield} name passed to it.
+
+\csitem{dateeraprintpre}
+Prints date era information when the global option \opt{dateera} is set to <astronomical>. By default, prints \opt{bibdataeraprefix}. Detects whether the start or end year era information is to be printed by looking at the \prm{yearfield} name passed to it.
+
\csitem{textcitedelim}
Similar to \cmd{multicitedelim}, but used by \cmd{textcite} and related commands (\secref{use:cit:cbx}). The default is a comma plus an interword space. The standard styles modify this provisional definition to ensure that the delimiter before the final citation is the localised term <and>, separated by interword spaces. See also \cmd{finalandcomma} and \cmd{finalandsemicolon} in \secref{use:fmt:lng}.
@@ -4382,6 +4660,30 @@ Delimiter contexts are simply a string, the value of the internal macro \cmd{blx
Set the delimiter context to \prm{context}. This setting is not global so that delimiter contexts can be nested using the usual \latex group method.
+\cmditem{DeclareDelimcontextAlias}{alias}{name}
+
+The context-sensitive delimiter system creates delimiter contexts based on
+the name of citation commands (<parencite>, <textcite> etc.) passed to
+\cmd{DeclareCiteCommand}. In certain cases where there are nested
+definitions of citation commands where \cmd{DeclareCiteCommand} calls
+itself (see the definition of \cmd{textcite} in \sty{authoryear-icomp}
+for example). The delimiter context is then usually incorrect and the
+delimiter specifications do not work. For example, the definition of
+\cmd{textcite} in fact defines and uses \cmd{cbx@textcite} and so the
+context is automatically set to \opt{cbx@textcite} when printing the
+citation. Delimiter definitions expecting to see the context \opt{textcite}
+therefore do not work. Therefore this command is provided for style authors
+which aliases the context \prm{alias} to the context \prm{name}. For
+example:
+
+\begin{ltxexample}[style=latex]{}
+\DeclareDelimcontextAlias{cbx@textcite}{textcite}
+\end{ltxexample}
+%
+This (which is a default setting), makes sure that when inside the
+\cmd{cbx@textcite} citation command, the context is in fact \opt{textcite}
+as expected.
+
\end{ltxsyntax}
%
\biblatex\ has several default contexts which are established automatically in various places:
@@ -4411,7 +4713,7 @@ Would print \cmd{addspace} regardless of the surrounding context of the \cmd{pri
\begin{ltxexample}[style=latex]{}
\DeclareDelimFormat{delima}{X}
\DeclareDelimFormat[textcite]{delima}{Y}
-\renewcommand*{delima}{Z}
+\renewcommand*{\delima}{Z}
\end{ltxexample}
%
Here, \cmd{delima} always prints <Z>. \verb+\printdelim{delima}+ in any context other than <textcite> also prints \cmd{delima} and hence <Z> but in a <textcite> context prints <Y>. See the \file{04-delimiters.tex} example file that comes with \biblatex\ for more information.
@@ -4425,15 +4727,19 @@ The commands in this section are language specific. When redefining them, you ne
\csitem{bibrangedash}
-The language specific dash to be used for ranges of numbers.
+The language specific dash to be used for ranges of numbers. Defaults to \cmd{textendash}.
\csitem{bibrangessep}
-The language specific separator to be used between multiple ranges.
+The language specific separator to be used between multiple ranges. Defaults to a comma followed by a space.
+
+\csitem{bibdatesep}
-\csitem{bibdatedash}
+The language specific separator used between date components in terse date formats. Defaults to \cmd{hyphen}.
-The language specific dash to be used for date ranges.
+\csitem{bibdaterangesep}
+
+The language specific separator to be used for date ranges. Defaults to \cmd{textendash} for all date formats apart from \opt{ymd} which defaults to a \cmd{slash}. The date format option \opt{edtf} is hard-coded to \cmd{slash} since this is a standards compliant format.
\csitem{mkbibdatelong}
@@ -4443,6 +4749,38 @@ Takes the names of three field as arguments which correspond to three date compo
Similar to \cmd{mkbibdatelong} but using the language specific short date format.
+\csitem{mkbibtimezone}
+
+Modifies a timezone string passed in as the only argument. By default this changes <Z> to the value of \cmd{bibtimezone}.
+
+\csitem{bibdateuncertain}
+
+The language specific marker to be used after uncertain dates when the global option \opt{dateuncertain} is enabled. Defaults to a space followed by a question mark.
+
+\csitem{bibdateeraprefix}
+
+The language specific marker which is printed as a prefix to beginning BCE/BC dates in a date range when the option \opt{dateera} is set to <astronomical>. Defaults to \cmd{textminus}.
+
+\csitem{bibdateeraendprefix}
+
+The language specific marker which is printed as a prefix to end BCE/BC dates in a date range when the option \opt{dateera} is set to <astronomical>. Defaults to a thin space followed by \cmd{bibdateeraprefix} when \cmd{bibdaterangesep} is set to a dash and to \cmd{bibdateeraprefix} otherwise. This is a separate macro so that you may add extra space before a negative date marker which, for example follows a dash date range marker as this can look a little odd.
+
+\csitem{bibtimesep}
+
+The language specific marker which separates time components. Defaults to a colon.
+
+\csitem{bibtimezonesep}
+
+The language specific marker which separates an optional time zone component from a time. Empty by default.
+
+\csitem{bibtzminsep}
+
+The language specific marker which separates hour and minute component of offset timezones. Defaults to a \cmd{bibtimesep}.
+
+\csitem{bibdatetimesep}
+
+The language specific separator printed between date and time components when printing time components along with date components (see the \opt{$<$datetype$>$dateusetime} option in \secref{use:opt:pre:gen}). Defaults to a space for non-EDTF output formats, and 'T' for EDTF output format.
+
\csitem{finalandcomma}
Prints the comma to be inserted before the final <and> in a list, if applicable in the respective language. Here is an example:
@@ -5442,7 +5780,7 @@ As seen in this example, the data is presented in a structured format that resem
\subsection{Bibliography Styles}
\label{aut:bbx}
-A bibliography style is a set of macros which print the entries in the bibliography. Such styles are defined in files with the suffix \file{bbx}. The \biblatex package loads the selected bibliography style file at the end of the package. Note that a small repertory of frequently used macros shared by several of the standard bibliography styles is included in \path{biblatex$_$.def}. This file is loaded at the end of the package as well, prior to the selected bibliography style.
+A bibliography style is a set of macros which print the entries in the bibliography. Such styles are defined in files with the suffix \file{bbx}. The \biblatex package loads the selected bibliography style file at the end of the package. Note that a small repertory of frequently used macros shared by several of the standard bibliography styles is included in \path{biblatex.def}. This file is loaded at the end of the package as well, prior to the selected bibliography style.
\subsubsection{Bibliography Style Files}
\label{aut:bbx:bbx}
@@ -5624,7 +5962,9 @@ Names depend on the datamodel constant <nameparts> which has the default definit
{prefix,family,suffix,given}
\end{ltxexample}
%
-Inside name formats, this makes available two macros for each name part defined in the datamodel:
+This can be customised to add more name parts to deal with things like patronymics (see the example file \file{93-nameparts.tex}). Naturally this needs an extended name format for data sources. \biblatexml (\secref{apx:biblatexml}) handles this natively and there is an extended name format which can handle custom nameparts available when using \biber (see \biber documentation).
+
+Inside name formats, the nameparts constant declaration makes available two macros for each name part defined in the datamodel:
\begin{ltxexample}
\namepart<namepart>
@@ -5657,6 +5997,27 @@ The following lists and fields are used by \biblatex to pass data to bibliograph
\begin{fieldlist}
+\fielditem{$<$datetype$>$dateunspecified}{string}
+
+If $<$datetype$>$date held an EDTF 5.2.2 <unspecified>, this field will be set to one of \opt{yearindecade}, \opt{yearincentury}, \opt{monthinyear}, \opt{dayinmonth} or \opt{dayinyear} which specifies the granularity of the unspecified information. These strings can be tested for and along with the date ranges which are automatically created for such <unspecified> dates, a style may choose to format the date in a special way. See \secref{bib:use:dat}. For example, an entry with dates such as:
+
+\begin{lstlisting}[style=bibtex]{}
+@book{key,
+ date = {19uu},
+ origdate = {199u}
+}
+\end{lstlisting}
+%
+would result in the same information in the \file{.bbl} as:
+\begin{lstlisting}[style=bibtex]{}
+@book{key,
+ date = {1900/1999},
+ origdate = {1990/1999}
+}
+\end{lstlisting}
+%
+but would additionally have the field \bibfield{dateunspecified} set to <yearincentury> and \bibfield{origdateunspecified} set to <yearindecade>. This information could be used to render the \bibfield{date} as perhaps <20th century> and \bibfield{origdate} as <The 1990s>, information which cannot be derived from the date ranges alone. Since such auto-generated ranges have a know values, given the <unspecified> meta-information, it is relatively easy to use the range values to format special cases. While the standard styles not do this, examples are given in the file \file{96-dates.tex}.
+
\fielditem{entrykey}{string}
The entry key of an item in the \file{bib} file. This is the string used by \biblatex and the backend to identify an entry in the \file{bib} file.
@@ -5665,25 +6026,42 @@ The entry key of an item in the \file{bib} file. This is the string used by \bib
When citing a subentry of an entry set, \biblatex provides the data of the parent \bibtype{set} entry to citation commands. This implies that the \bibfield{entrykey} field holds the entry key of the parent. The entry key of the child entry being cited is provided in the \bibfield{childentrykey} field. This field is only available when citing a subentry of an entry set.
-\fielditem{datelabelsource}{literal}
+\fielditem{labelnamesource}{literal}
+
+Holds the name of the field used to populate \bibfield{labelname},
+determined by \cmd{DeclareLabelname}.
+
+\fielditem{labeltitlesource}{literal}
+
+Holds the name of the field used to populate \bibfield{labeltitle},
+determined by \cmd{DeclareLabeltitle}.
-Holds the prefix coming before <date> of the date field name chosen by \cmd{DeclareLabeldate}. For example, if the label date field is \bibfield{eventdate}, then \bibfield{datelabelsource} will be <event>. In case \cmd{DeclareLabeldate} selects the \bibfield{date} field, then \bibfield{datelabelsource} will be defined but will be an empty string as the prefix coming before <date> in the date label name is empty. This is so that the contents of \bibfield{datelabelsource} can be used in constructing references to the field which \cmd{DeclareLabeldate} chooses. Since \cmd{DeclareLabeldate} can also select literal strings for fallbacks, if \bibfield{datelabelsource} is undefined, then either the \opt{labeldate} package option is set to false or \cmd{DeclareLabeldate} chose a literal string instead of a date field. Bear in mind that \cmd{DeclareLabeldate} can also be used to select non-date fields as a fallback and so \bibfield{datelabelsource} might contain a field name. So, in summary, the rules are
+\fielditem{labeldatesource}{literal}
+
+Holds one of:
+
+\begin{itemize}
+\item The prefix coming before <date> of the date field name chosen by
+ \cmd{DeclareLabeldate}
+\item The name of a field
+\item A literal or localisation string
+\end{itemize}
+%
+Normally holds the prefix coming before <date> of the date field name chosen by \cmd{DeclareLabeldate}. For example, if the labeldate field is \bibfield{eventdate}, then \bibfield{labeldatesource} will be <event>. In case \cmd{DeclareLabeldate} selects the \bibfield{date} field, then \bibfield{labeldatesource} will be defined but will be an empty string as the prefix coming before <date> in the date label name is empty. This is so that the contents of \bibfield{labeldatesource} can be used in constructing references to the field which \cmd{DeclareLabeldate} chooses. Since \cmd{DeclareLabeldate} can also select literal strings for fallbacks, \bibfield{labeldatesource} may not refer to a field or may be undefined. Bear in mind that \cmd{DeclareLabeldate} can also be used to select non-date fields as a fallback and so \bibfield{labeldatesource} might contain a field name. So, in summary, the rules are
\begin{ltxexample}
-\iffieldundef{datelabelsource}
- {
- % labeldate package option is not set or
- % \DeclareLabeldate resolved to a literal string
- }
- {
- \iffieldundef{\thefield{datelabelsource}date}
- {
- % datelabelsource contains a date field name
- % prefix like "", "event", "url" or "orig"
- }
- {
- % datelabelsource contains a non-date field
- }
+\iffieldundef{labeldatesource}
+ {}% labeldate package option is not set
+ {\iffieldundef{\thefield{labeldatesource}year}
+ % \DeclareLabeldate resolved to either a literal/localisation
+ % string or a non-date field since
+ % if a date is defined by a date field, there is
+ % at least a year
+ {\iffieldundef{\thefield{labeldatesource}}
+ {}% \DeclareLabeldate resolved to a literal/localisation string
+ {}% \DeclareLabeldate resolved to a non-date field
+ }
+ {} % \DeclareLabeldate resolved a date field name prefix like "" or "orig"
}
\end{ltxexample}
@@ -5707,10 +6085,18 @@ This field is special in that it is only available locally in name formatting di
A hash string which uniquely identifies the \bibfield{labelname} list. This is useful for recurrence checks. For example, a citation style which replaces recurrent authors or editors with a string like <idem> could save the \bibfield{namehash} field with \cmd{savefield} and use it in a comparison with \cmd{iffieldequals} later (see \secref{aut:aux:dat, aut:aux:tst}). The \bibfield{namehash} is derived from the truncated \bibfield{labelname} list, \ie it is responsive to \opt{maxnames} and \opt{minnames}. See also \bibfield{hash} and \bibfield{fullhash}.
+\fielditem{$<$namelist$>$namehash}{string}
+
+As \bibfield{namehash} for the name list called <namelist>.
+
\fielditem{fullhash}{string}
A hash string which uniquely identifies the \bibfield{labelname} list. This fields differs from \bibfield{namehash} in two details: 1) The \bibfield{shortauthor} and \bibfield{shorteditor} lists are ignored when generating the hash. 2) The hash always refers to the full list, ignoring \opt{maxnames} and \opt{minnames}. See also \bibfield{hash} and \bibfield{namehash}.
+\fielditem{$<$namelist$>$fullhash}{string}
+
+As \bibfield{fullhash} for the name list called <namelist>.
+
\listitem{pageref}{literal}
If the \opt{backref} package option is enabled, this list holds the page numbers of the pages on which the respective bibliography entry is cited. If there are \env{refsection} environments in the document, the back references are local to the reference sections.
@@ -5770,22 +6156,31 @@ It is sometimes useful, for example in author"=title citation schemes, to be abl
\fielditem{labelyear}{literal}
-The publication year, as specified in the \bibfield{date} or the \bibfield{year} field, for use in author-year labels. A complete author-year label consists of the fields \bibfield{labelyear} plus \bibfield{extrayear}. Note that the \bibfield{labelyear} and \bibfield{extrayear} fields need to be requested with the package option \opt{labeldate}, see \secref{use:opt:pre:int} for details. See also \bibfield{extrayear}.
-The source date field for this may be customized. See \secref{aut:ctm:fld} for details.
+The year of the date field selected by \cmd{DeclareLabeldate} (\secref{aut:ctm:fld}) or the \bibfield{year} field, for use in author-year labels. A complete author-year label consists of the fields \bibfield{labelyear} plus \bibfield{extrayear}. Note that the \bibfield{labelyear} and \bibfield{extrayear} fields need to be requested with the package option \opt{labeldateparts}, see \secref{use:opt:pre:int} for details. See also \bibfield{extrayear}.
+
+\fielditem{labelendyear}{literal}
+
+The end year of the date field selected by \cmd{DeclareLabeldate} (\secref{aut:ctm:fld}) if the selected date is a range.
\fielditem{labelmonth}{datepart}
-The publication month, as specified in the \bibfield{date} or the \bibfield{month} field, for use in author-year labels. Note that the \bibfield{labelmonth} field needs to be requested with the package option \opt{labeldate}, see \secref{use:opt:pre:int} for details.
-The source date field for this may be customized. See \secref{aut:ctm:fld} for details.
+The month of the date field selected by \cmd{DeclareLabeldate} (\secref{aut:ctm:fld}), or the \bibfield{month} field for use in author-year labels. Note that the \bibfield{labelmonth} field needs to be requested with the package option \opt{labeldateparts}, see \secref{use:opt:pre:int} for details.
+
+\fielditem{labelendmonth}{datepart}
+
+The end month of the date field selected by \cmd{DeclareLabeldate} (\secref{aut:ctm:fld}) if the selected date is a range.
\fielditem{labelday}{datepart}
-The publication day, as specified in the \bibfield{date}, for use in author-year labels. Note that the \bibfield{labelday} field needs to be requested with the package option \opt{labeldate}, see \secref{use:opt:pre:int} for details.
-The source date field for this may be customized. See \secref{aut:ctm:fld} for details.
+The month of the date field selected by \cmd{DeclareLabeldate} (\secref{aut:ctm:fld}) for use in author-year labels. Note that the \bibfield{labelday} field needs to be requested with the package option \opt{labeldateparts}, see \secref{use:opt:pre:int} for details.
+
+\fielditem{labelendday}{datepart}
+
+The end day of the date field selected by \cmd{DeclareLabeldate} (\secref{aut:ctm:fld}) if the selected date is a range.
\fielditem{extrayear}{integer}
-The author"=year citation scheme usually requires a letter to be appended to the year if the bibliography contains two or more works by the same author which were all published in the same year. In this case, the \bibfield{extrayear} field holds an integer which may be converted to a letter with \cmd{mknumalph} or formatted in some other way. This field is undefined if there is only one work by the author in the bibliography or if all works by the author have different publication years. A complete author-year label consists of the fields \bibfield{labelyear} plus \bibfield{extrayear}. Note that the \bibfield{labelyear} and \bibfield{extrayear} fields need to be requested with the package option \opt{labeldate}, see \secref{use:opt:pre:int} for details. See also \bibfield{labelyear}. Table \ref{use:opt:tab1} summarises the various \opt{extra*} disambiguation counters and what they track.
+The author"=year citation scheme usually requires a letter to be appended to the year if the bibliography contains two or more works by the same author which were all published in the same year. In this case, the \bibfield{extrayear} field holds an integer which may be converted to a letter with \cmd{mknumalph} or formatted in some other way. This field is undefined if there is only one work by the author in the bibliography or if all works by the author have different publication years. A complete author-year label consists of the fields \bibfield{labelyear} plus \bibfield{extrayear}. Note that the \bibfield{labelyear} and \bibfield{extrayear} fields need to be requested with the package option \opt{labeldateparts}, see \secref{use:opt:pre:int} for details. See also \bibfield{labelyear}. Table \ref{use:opt:tab1} summarises the various \opt{extra*} disambiguation counters and what they track.
\end{fieldlist}
@@ -5814,9 +6209,12 @@ will tell you if the corresponding date is defined and a (fully specified) range
%
will tell you if the corresponding date is defined and an open"=ended range. Open"=ended ranges are indicated by an empty \texttt{endyear} component (as opposed to an undefined \texttt{endyear} component). See \secref{bib:use:dat} and \tabref{bib:use:tab1} on page~\pageref{bib:use:tab1} for further examples.
-\begin{table}
\tablesetup
-\begin{tabularx}{\textwidth}{@{}>{\ttfamily}lX>{\ttfamily}lX@{}}
+\begin{longtable}[l]{%
+ @{}V{0.15\textwidth}%
+ @{}V{0.4\textwidth}%
+ @{}V{0.3\textwidth}%
+ @{}V{0.2\textwidth}@{}}
\toprule
\multicolumn{2}{@{}H}{\file{bib} File} &
\multicolumn{2}{H}{Data Interface} \\
@@ -5829,41 +6227,155 @@ will tell you if the corresponding date is defined and an open"=ended range. Ope
date & 1988 & day & undefined \\
& & month & undefined \\
& & year & 1988 \\
+ & & season & undefined \\
& & endday & undefined \\
& & endmonth & undefined \\
& & endyear & undefined \\
+ & & endseason & undefined \\
+ & & hour & undefined \\
+ & & minute & undefined \\
+ & & second & undefined \\
+ & & timezone & undefined \\
+ & & endhour & undefined \\
+ & & endminute & undefined \\
+ & & endsecond & undefined \\
+ & & endtimezone & undefined \\
date & 1997/ & day & undefined \\
& & month & undefined \\
& & year & 1997 \\
+ & & season & undefined \\
& & endday & undefined \\
& & endmonth & undefined \\
& & endyear & empty \\
+ & & endseason & undefined \\
+ & & hour & undefined \\
+ & & minute & undefined \\
+ & & second & undefined \\
+ & & timezone & undefined \\
+ & & endhour & undefined \\
+ & & endminute & undefined \\
+ & & endsecond & undefined \\
+ & & endtimezone & undefined \\
urldate & 2009-01-31 & urlday & 31 \\
& & urlmonth & 01 \\
& & urlyear & 2009 \\
+ & & urlseason & undefined \\
+ & & urlendday & undefined \\
+ & & urlendmonth & undefined \\
+ & & urlendyear & undefined \\
+ & & urlendseason & undefined \\
+ & & urlhour & undefined \\
+ & & urlminute & undefined \\
+ & & urlsecond & undefined \\
+ & & urltimezone & undefined \\
+ & & urlendhour & undefined \\
+ & & urlendminute & undefined \\
+ & & urlendsecond & undefined \\
+ & & urlendtimezone & undefined \\
+urldate & 2009-01-31T15:34:04Z & urlday & 31 \\
+ & & urlmonth & 01 \\
+ & & urlyear & 2009 \\
+ & & urlseason & undefined \\
+ & & urlendday & undefined \\
+ & & urlendmonth & undefined \\
+ & & urlendyear & undefined \\
+ & & urlendseason & undefined \\
+ & & urlhour & 15 \\
+ & & urlminute & 34 \\
+ & & urlsecond & 04 \\
+ & & urltimezone & Z \\
+ & & urlendhour & undefined \\
+ & & urlendminute & undefined \\
+ & & urlendsecond & undefined \\
+ & & urlendtimezone & undefined \\
+urldate & 2009-01-31T15:34:04+05:00 & urlday & 31 \\
+ & & urlmonth & 01 \\
+ & & urlyear & 2009 \\
+ & & urlseason & undefined \\
& & urlendday & undefined \\
& & urlendmonth & undefined \\
& & urlendyear & undefined \\
-origdate & 2002-01/2002-02 & origday & undefined \\
+ & & urlendseason & undefined \\
+ & & urlhour & 15 \\
+ & & urlminute & 34 \\
+ & & urlsecond & 04 \\
+ & & urltimezone & +0500 \\
+ & & urlendhour & undefined \\
+ & & urlendminute & undefined \\
+ & & urlendsecond & undefined \\
+ & & urlendtimezone & undefined \\
+urldate & \parbox[t]{0.4\textwidth}{2009-01-31T15:34:04/\\2009-01-31T16:04:34}& urlday & 31 \\
+ & & urlmonth & 1 \\
+ & & urlyear & 2009 \\
+ & & urlseason & undefined \\
+ & & urlendday & 31 \\
+ & & urlendmonth & 1 \\
+ & & urlendyear & 2009 \\
+ & & urlendseason & undefined \\
+ & & urlhour & 15 \\
+ & & urlminute & 34 \\
+ & & urlsecond & 4 \\
+ & & urltimezone & floating \\
+ & & urlendhour & 16 \\
+ & & urlendminute & 4 \\
+ & & urlendsecond & 34 \\
+ & & urlendtimezone & floating \\
+origdate & 2002-21/2002-23 & origday & undefined \\
& & origmonth & 01 \\
& & origyear & 2002 \\
+ & & origseason & spring \\
& & origendday & undefined \\
& & origendmonth & 02 \\
& & origendyear & 2002 \\
+ & & origendseason & autumn \\
+ & & orighour & undefined \\
+ & & origminute & undefined \\
+ & & origsecond & undefined \\
+ & & origtimezone & undefined \\
+ & & origendhour & undefined \\
+ & & origendminute & undefined \\
+ & & origendsecond & undefined \\
+ & & origendtimezone & undefined \\
eventdate & 1995-01-31/1995-02-05 & eventday & 31 \\
& & eventmonth & 01 \\
& & eventyear & 1995 \\
+ & & eventseason & undefined \\
& & eventendday & 05 \\
& & eventendmonth & 02 \\
& & eventendyear & 1995 \\
+ & & eventendseason & undefined \\
+ & & eventhour & undefined \\
+ & & eventminute & undefined \\
+ & & eventsecond & undefined \\
+ & & eventtimezone & undefined \\
+ & & eventendhour & undefined \\
+ & & eventendminute & undefined \\
+ & & eventendsecond & undefined \\
+ & & eventendtimezone & undefined \\
\bottomrule
-\end{tabularx}
+%\end{tabularx}
\caption{Date Interface}
\label{aut:bbx:fld:tab1}
-\end{table}
+\end{longtable}
\begin{fieldlist}
+\fielditem{hour}{datepart}
+
+This field holds the hour component of the \bibfield{date} field. If the date is a range, it holds the hour component of the start date.
+
+\fielditem{minute}{datepart}
+
+This field holds the minute component of the \bibfield{date} field. If the date is a range, it holds the minute component of the start date.
+
+\fielditem{second}{datepart}
+
+This field holds the second component of the \bibfield{date} field. If the date is a range, it holds the second component of the start date.
+
+\fielditem{timezone}{datepart}
+
+This field holds the timezone component of the \bibfield{date} field. If the date is a range, it holds the timezone component of the start date.
+
\fielditem{day}{datepart}
This field holds the day component of the \bibfield{date} field. If the date is a range, it holds the day component of the start date.
@@ -5876,6 +6388,26 @@ This field is the \bibfield{month} as given in the database file or it holds the
This field is the \bibfield{year} as given in the database file or it holds the year component of the \bibfield{date} field. If the date is a range, it holds the year component of the start date.
+\fielditem{season}{datepart}
+
+This field holds the season component of the \bibfield{date} field as specified by \acr{EDTF} 5.2.5 (\secref{bib:use:dat}). It contains a season localisation string (\secref{aut:lng:key:dt}). If the date is a range, it holds the season component of the start date.
+
+\fielditem{endhour}{datepart}
+
+If the date specification in the \bibfield{date} field is a range, this field holds the hour component of the end date.
+
+\fielditem{endminute}{datepart}
+
+If the date specification in the \bibfield{date} field is a range, this field holds the minute component of the end date.
+
+\fielditem{endsecond}{datepart}
+
+If the date specification in the \bibfield{date} field is a range, this field holds the second component of the end date.
+
+\fielditem{endtimezone}{datepart}
+
+If the date specification in the \bibfield{date} field is a range, this field holds the timezone component of the end date.
+
\fielditem{endday}{datepart}
If the date specification in the \bibfield{date} field is a range, this field holds the day component of the end date.
@@ -5888,6 +6420,26 @@ If the date specification in the \bibfield{date} field is a range, this field ho
If the date specification in the \bibfield{date} field is a range, this field holds the year component of the end date. A blank (but defined) \bibfield{endyear} component indicates an open ended \bibfield{date} range.
+\fielditem{endseason}{datepart}
+
+If the date specification in the \bibfield{date} field is a range, this field holds the season component of the end date as specified by \acr{EDTF} 5.2.5 (\secref{bib:use:dat}). It contains a season localisation string (\secref{aut:lng:key:dt}). A blank (but defined) \bibfield{endseason} component indicates an open ended \bibfield{date} range.
+
+\fielditem{orighour}{datepart}
+
+This field holds the hour component of the \bibfield{origdate} field. If the date is a range, it holds the hour component of the start date.
+
+\fielditem{origminute}{datepart}
+
+This field holds the minute component of the \bibfield{origdate} field. If the date is a range, it holds the minute component of the start date.
+
+\fielditem{origsecond}{datepart}
+
+This field holds the second component of the \bibfield{origdate} field. If the date is a range, it holds the second component of the start date.
+
+\fielditem{origtimezone}{datepart}
+
+This field holds the timezone component of the \bibfield{origdate} field. If the date is a range, it holds the timezone component of the start date.
+
\fielditem{origday}{datepart}
This field holds the day component of the \bibfield{origdate} field. If the date is a range, it holds the day component of the start date.
@@ -5900,6 +6452,26 @@ This field holds the month component of the \bibfield{origdate} field. If the da
This field holds the year component of the \bibfield{origdate} field. If the date is a range, it holds the year component of the start date.
+\fielditem{origseason}{datepart}
+
+This field holds the season component of the \bibfield{origdate} field as specified by \acr{EDTF} 5.2.5 (\secref{bib:use:dat}). It contains a season localisation string (\secref{aut:lng:key:dt}). If the date is a range, it holds the season component of the start date.
+
+\fielditem{origendhour}{datepart}
+
+If the date specification in the \bibfield{origdate} field is a range, this field holds the hour component of the end date.
+
+\fielditem{origendminute}{datepart}
+
+If the date specification in the \bibfield{origdate} field is a range, this field holds the minute component of the end date.
+
+\fielditem{origendsecond}{datepart}
+
+If the date specification in the \bibfield{origdate} field is a range, this field holds the second component of the end date.
+
+\fielditem{origendtimezone}{datepart}
+
+If the date specification in the \bibfield{origdate} field is a range, this field holds the timezone component of the end date.
+
\fielditem{origendday}{datepart}
If the date specification in the \bibfield{origdate} field is a range, this field holds the day component of the end date.
@@ -5912,6 +6484,26 @@ If the date specification in the \bibfield{origdate} field is a range, this fiel
If the date specification in the \bibfield{origdate} field is a range, this field holds the year component of the end date. A blank (but defined) \bibfield{origendyear} component indicates an open ended \bibfield{origdate} range.
+\fielditem{origendseason}{datepart}
+
+If the date specification in the \bibfield{origdate} field is a range, this field holds the season component of the end date as specified by \acr{EDTF} 5.2.5 (\secref{bib:use:dat}). It contains a season localisation string (\secref{aut:lng:key:dt}). A blank (but defined) \bibfield{origendseason} component indicates an open ended \bibfield{origdate} range.
+
+\fielditem{eventhour}{datepart}
+
+This field holds the hour component of the \bibfield{eventdate} field. If the date is a range, it holds the hour component of the start date.
+
+\fielditem{eventminute}{datepart}
+
+This field holds the minute component of the \bibfield{eventdate} field. If the date is a range, it holds the minute component of the start date.
+
+\fielditem{eventsecond}{datepart}
+
+This field holds the second component of the \bibfield{eventdate} field. If the date is a range, it holds the second component of the start date.
+
+\fielditem{eventtimezone}{datepart}
+
+This field holds the timezone component of the \bibfield{eventdate} field. If the date is a range, it holds the timezone component of the start date.
+
\fielditem{eventday}{datepart}
This field holds the day component of the \bibfield{eventdate} field. If the date is a range, it holds the day component of the start date.
@@ -5924,6 +6516,26 @@ This field holds the month component of the \bibfield{eventdate} field. If the d
This field holds the year component of the \bibfield{eventdate} field. If the date is a range, it holds the year component of the start date.
+\fielditem{eventseason}{datepart}
+
+This field holds the season component of the \bibfield{eventdate} field as specified by \acr{EDTF} 5.2.5 (\secref{bib:use:dat}). It contains a season localisation string (\secref{aut:lng:key:dt}). If the date is a range, it holds the season component of the start date.
+
+\fielditem{eventendhour}{datepart}
+
+If the date specification in the \bibfield{eventdate} field is a range, this field holds the hour component of the end date.
+
+\fielditem{eventendminute}{datepart}
+
+If the date specification in the \bibfield{eventdate} field is a range, this field holds the minute component of the end date.
+
+\fielditem{eventendsecond}{datepart}
+
+If the date specification in the \bibfield{eventdate} field is a range, this field holds the second component of the end date.
+
+\fielditem{eventendtimezone}{datepart}
+
+If the date specification in the \bibfield{eventdate} field is a range, this field holds the timezone component of the end date.
+
\fielditem{eventendday}{datepart}
If the date specification in the \bibfield{eventdate} field is a range, this field holds the day component of the end date.
@@ -5936,6 +6548,26 @@ If the date specification in the \bibfield{eventdate} field is a range, this fie
If the date specification in the \bibfield{eventdate} field is a range, this field holds the year component of the end date. A blank (but defined) \bibfield{eventendyear} component indicates an open ended \bibfield{eventdate} range.
+\fielditem{eventendseason}{datepart}
+
+If the date specification in the \bibfield{eventdate} field is a range, this field holds the season component of the end date as specified by \acr{EDTF} 5.2.5 (\secref{bib:use:dat}). It contains a season localisation string (\secref{aut:lng:key:dt}). A blank (but defined) \bibfield{eventendseason} component indicates an open ended \bibfield{eventdate} range.
+
+\fielditem{urlhour}{datepart}
+
+This field holds the hour component of the \bibfield{urldate} field. If the date is a range, it holds the hour component of the start date.
+
+\fielditem{urlminute}{datepart}
+
+This field holds the minute component of the \bibfield{urldate} field. If the date is a range, it holds the minute component of the start date.
+
+\fielditem{urlsecond}{datepart}
+
+This field holds the second component of the \bibfield{urldate} field. If the date is a range, it holds the second component of the start date.
+
+\fielditem{timezone}{urldatepart}
+
+This field holds the timezone component of the \bibfield{urldate} field. If the date is a range, it holds the timezone component of the start date.
+
\fielditem{urlday}{datepart}
This field holds the day component of the \bibfield{urldate} field.
@@ -5948,6 +6580,26 @@ This field holds the month component of the \bibfield{urldate} field.
This field holds the year component of the \bibfield{urldate} field.
+\fielditem{urlseason}{datepart}
+
+This field holds the season component of the \bibfield{urldate} field as specified by \acr{EDTF} 5.2.5 (\secref{bib:use:dat}). It contains a season localisation string (\secref{aut:lng:key:dt}). If the date is a range, it holds the season component of the start date.
+
+\fielditem{urlendhour}{datepart}
+
+If the date specification in the \bibfield{urldate} field is a range, this field holds the hour component of the end date.
+
+\fielditem{urlendminute}{datepart}
+
+If the date specification in the \bibfield{urldate} field is a range, this field holds the minute component of the end date.
+
+\fielditem{urlendsecond}{datepart}
+
+If the date specification in the \bibfield{urldate} field is a range, this field holds the second component of the end date.
+
+\fielditem{urlendtimezone}{datepart}
+
+If the date specification in the \bibfield{urldate} field is a range, this field holds the timezone component of the end date.
+
\fielditem{urlendday}{datepart}
If the date specification in the \bibfield{urldate} field is a range, this field holds the day component of the end date.
@@ -5960,12 +6612,16 @@ If the date specification in the \bibfield{urldate} field is a range, this field
If the date specification in the \bibfield{urldate} field is a range, this field holds the year component of the end date. A blank (but defined) \bibfield{urlendyear} component indicates an open ended \bibfield{urldate} range.
+\fielditem{urlendseason}{datepart}
+
+If the date specification in the \bibfield{urldate} field is a range, this field holds the season component of the end date as specified by \acr{EDTF} 5.2.5 (\secref{bib:use:dat}). It contains a season localisation string (\secref{aut:lng:key:dt}). A blank (but defined) \bibfield{urlendseason} component indicates an open ended \bibfield{urldate} range.
+
\end{fieldlist}
\subsection{Citation Styles}
\label{aut:cbx}
-A citation style is a set of commands such as \cmd{cite} which print different types of citations. Such styles are defined in files with the suffix \file{cbx}. The \biblatex package loads the selected citation style file at the end of the package. Note that a small repertory of frequently used macros shared by several of the standard citation styles is also included in \path{biblatex$_$.def}. This file is loaded at the end of the package as well, prior to the selected citation style. It also contains the definitions of the commands from \secref{use:cit:txt}.
+A citation style is a set of commands such as \cmd{cite} which print different types of citations. Such styles are defined in files with the suffix \file{cbx}. The \biblatex package loads the selected citation style file at the end of the package. Note that a small repertory of frequently used macros shared by several of the standard citation styles is also included in \path{biblatex.def}. This file is loaded at the end of the package as well, prior to the selected citation style. It also contains the definitions of the commands from \secref{use:cit:txt}.
\subsubsection{Citation Style Files}
\label{aut:cbx:cbx}
@@ -6002,7 +6658,7 @@ This is the core command used to define all citation commands. It takes one opti
\cmditem{DeclareMultiCiteCommand}{command}[wrapper]{cite}{delimiter}
-This command defines <multicite> commands (\secref{use:cit:mlt}). The \prm{command} is the multicite command to be defined, for example \cmd{cites}. It is automatically made robust. Multicite commands are built on top of backend commands defined with \cmd{DeclareCiteCommand} and the \prm{cite} argument specifies the name of the backend command to be used. Note that the wrapper of the backend command (\ie the \prm{wrapper} argument passed to \cmd{DeclareCiteCommand}) is ignored. Use the optional \prm{wrapper} argument to specify an alternative wrapper. The \prm{delimiter} is the string to be printed as a separator between the individual citations in the list. This will typically be \cmd{multicitedelim}. The following examples are real definitions taken from \path{biblatex$_$.def}:
+This command defines <multicite> commands (\secref{use:cit:mlt}). The \prm{command} is the multicite command to be defined, for example \cmd{cites}. It is automatically made robust. Multicite commands are built on top of backend commands defined with \cmd{DeclareCiteCommand} and the \prm{cite} argument specifies the name of the backend command to be used. Note that the wrapper of the backend command (\ie the \prm{wrapper} argument passed to \cmd{DeclareCiteCommand}) is ignored. Use the optional \prm{wrapper} argument to specify an alternative wrapper. The \prm{delimiter} is the string to be printed as a separator between the individual citations in the list. This will typically be \cmd{multicitedelim}. The following examples are real definitions taken from \path{biblatex.def}:
\begin{ltxexample}
\DeclareMultiCiteCommand{\cites}%
@@ -6015,7 +6671,7 @@ This command defines <multicite> commands (\secref{use:cit:mlt}). The \prm{comma
\cmditem{DeclareAutoCiteCommand}{name}[position]{cite}{multicite}
-This command provides definitions for the \cmd{autocite} and \cmd{autocites} commands from \secref{use:cit:aut}. The definitions are enabled with the \opt{autocite} package option from \secref{use:opt:pre:gen}. The \prm{name} is an identifier which serves as the value passed to the package option. The autocite commands are built on top of backend commands like \cmd{parencite} and \cmd{parencites}. The arguments \prm{cite} and \prm{multicite} specify the backend commands to use. The \prm{cite} argument refers to \cmd{autocite} and \prm{multicite} refers to \cmd{autocites}. The \prm{position} argument controls the handling of any punctuation marks after the citation. Possible values are \texttt{l}, \texttt{r}, \texttt{f}. \texttt{r} means that the punctuation is placed to the right of the citation, \ie it will not be moved around. \texttt{l} means that any punctuation after the citation is moved to the left of the citation. \texttt{f} is like \texttt{r} in a footnote and like \texttt{l} otherwise. This argument is optional and defaults to \texttt{r}. See also \cmd{DeclareAutoPunctuation} in \secref{aut:pct:cfg} and the \opt{autopunct} package option in \secref{use:opt:pre:gen}. The following examples are real definitions taken from \path{biblatex$_$.def}:
+This command provides definitions for the \cmd{autocite} and \cmd{autocites} commands from \secref{use:cit:aut}. The definitions are enabled with the \opt{autocite} package option from \secref{use:opt:pre:gen}. The \prm{name} is an identifier which serves as the value passed to the package option. The autocite commands are built on top of backend commands like \cmd{parencite} and \cmd{parencites}. The arguments \prm{cite} and \prm{multicite} specify the backend commands to use. The \prm{cite} argument refers to \cmd{autocite} and \prm{multicite} refers to \cmd{autocites}. The \prm{position} argument controls the handling of any punctuation marks after the citation. Possible values are \texttt{l}, \texttt{r}, \texttt{f}. \texttt{r} means that the punctuation is placed to the right of the citation, \ie it will not be moved around. \texttt{l} means that any punctuation after the citation is moved to the left of the citation. \texttt{f} is like \texttt{r} in a footnote and like \texttt{l} otherwise. This argument is optional and defaults to \texttt{r}. See also \cmd{DeclareAutoPunctuation} in \secref{aut:pct:cfg} and the \opt{autopunct} package option in \secref{use:opt:pre:gen}. The following examples are real definitions taken from \path{biblatex.def}:
\begin{ltxexample}
\DeclareAutoCiteCommand{plain}{\cite}{\cites}
@@ -6132,25 +6788,25 @@ This command prints the date of the entry, as specified in the fields \bibfield{
Similar to \cmd{printdate} but incorporates the \bibfield{extrayear} field in the date specification. This is useful for bibliography styles designed for author-year citations.
-\csitem{printdatelabel}
+\csitem{printlabeldate}
-Similar to \cmd{printdate} but prints the date field determined by \cmd{DeclareLabeldate}. The date format is controlled by the package option \opt{datelabel} from \secref{use:opt:pre:gen}. Additional formatting may be applied by adjusting the field format \texttt{datelabel} (\secref{aut:fmt:ich}).
+Similar to \cmd{printdate} but prints the date field determined by \cmd{DeclareLabeldate}. The date format is controlled by the package option \opt{labeldate} from \secref{use:opt:pre:gen}. Additional formatting may be applied by adjusting the field format \texttt{labeldate} (\secref{aut:fmt:ich}).
-\csitem{printdateextralabel}
+\csitem{printlabeldateextra}
-Similar to \cmd{printdatelabel} but incorporates the \bibfield{extrayear} field in the date specification. This is useful for bibliography styles designed for author-year citations.
+Similar to \cmd{printlabeldate} but incorporates the \bibfield{extrayear} field in the date specification. This is useful for bibliography styles designed for author-year citations.
-\csitem{printurldate}
+\csitem{print$<$datetype$>$date}
-Similar to \cmd{printdate} but prints the \bibfield{urldate} of the entry. The date format is controlled by the package option \opt{urldate} from \secref{use:opt:pre:gen}. Additional formatting may be applied by adjusting the field format \texttt{urldate} (\secref{aut:fmt:ich}).
+As \cmd{printdate} but prints the \bibfield{$<$datetype$>$date} of the entry. The date format is controlled by the package option \opt{$<$datetype$>$date} from \secref{use:opt:pre:gen}. Additional formatting may be applied by adjusting the field format \texttt{$<$datetype$>$date} (\secref{aut:fmt:ich}). The $<$datetype$>$s in the default data model are <> (for the main \bibfield{date} field), <orig>, <event> and <url>.
-\csitem{printorigdate}
+\csitem{printtime}
-Similar to \cmd{printdate} but prints the \bibfield{origdate} of the entry. The date format is controlled by the package option \opt{origdate} from \secref{use:opt:pre:gen}. Additional formatting may be applied by adjusting the field format \texttt{origdate} (\secref{aut:fmt:ich}).
+This command prints the time range of the entry, as specified in the \bibfield{date} field (see \secref{bib:use:dat}). The time format is controlled by the package option \opt{time} from \secref{use:opt:pre:gen}. Additional formatting (fonts etc.) may be applied by adjusting the field format \texttt{time} (\secref{aut:fmt:ich}). Relevant to time formatting are the \opt{timezeros} option and the \cmd{bibtimesep} and \cmd{bibtimezonesep} macros (\secref{use:fmt:lng}). Note that this command interfaces with the punctuation tracker. There is no need to wrap it in a \cmd{printtext} command. Note that this command prints a stand-alone time range apart from the date elements. With the \opt{$<$datepart$>$dateusetime} option, you can have the printed along with a date when printing a date range instead of printing the time range completely separately, which is what this command allows for.
-\csitem{printeventdate}
+\csitem{print$<$datetype$>$time}
-Similar to \cmd{printdate} but prints the \bibfield{eventdate} of the entry. The date format is controlled by the package option \opt{eventdate} from \secref{use:opt:pre:gen}. Additional formatting may be applied by adjusting the field format \texttt{eventdate} (\secref{aut:fmt:ich}).
+As \cmd{printtime} but prints the \bibfield{$<$datetype$>$time} of the entry. The time format is controlled by the package option \opt{$<$datetype$>$time} from \secref{use:opt:pre:gen}. Additional formatting may be applied by adjusting the field format \texttt{$<$datetype$>$time} (\secref{aut:fmt:ich}). The $<$datetype$>$s in the default data model are <> (for the main \bibfield{date} field), <orig>, <event> and <url>.
\cmditem{indexfield}[format]{field}
@@ -6301,7 +6957,7 @@ The special fields are \bibfield{related}, \bibfield{relatedtype}, \bibfield{rel
\item[relatedoptions] A list of per"=entry options to set on the related entry (actually on the clone of the related entry which is used as a data source---the actual related entry is not modified because it might be cited directly itself).
\end{keymarglist}
-The related entry feature is enabled by default by the package option \opt{related} from \secref{use:opt:pre:gen}. The related information entry data from the related entries is included via a \cmd{usebibmacro\{related\}} call. Standard styles call this macro towards the end of each driver. Style authors should ensure the existence of (or take note of existing) localisation strings which are useful as values for the \bibfield{relatedtype} field, such as \texttt{translationof} or perhaps \texttt{translatedas}. A plural variant can be identified with the localisation key \prm{relatedtype}\texttt{s}. This key's corresponding string is printed whenever more than one entry is specified in \bibfield{related}. Bibliography macros and formatting directives for printing entries related by \prm{relatedtype} should be defined using the name \texttt{related:\prm{relatedtype}}. The file \path{biblatex$_$.def} contains macros and formats for some common relation types which can be used as templates. In particular, the \cmd{entrydata*} command is essential in such macros in order to make the data of the related entries available. Examples of entries using this feature can be found in the \biblatex distribution examples file \path{biblatex-examples.bib}. There are some specific formatting macros for this feature which control delimiters and separators in related entry information, see \secref{aut:fmt:fmt}.
+The related entry feature is enabled by default by the package option \opt{related} from \secref{use:opt:pre:gen}. The related information entry data from the related entries is included via a \cmd{usebibmacro\{related\}} call. Standard styles call this macro towards the end of each driver. Style authors should ensure the existence of (or take note of existing) localisation strings which are useful as values for the \bibfield{relatedtype} field, such as \texttt{translationof} or perhaps \texttt{translatedas}. A plural variant can be identified with the localisation key \prm{relatedtype}\texttt{s}. This key's corresponding string is printed whenever more than one entry is specified in \bibfield{related}. Bibliography macros and formatting directives for printing entries related by \prm{relatedtype} should be defined using the name \texttt{related:\prm{relatedtype}}. The file \path{biblatex.def} contains macros and formats for some common relation types which can be used as templates. In particular, the \cmd{entrydata*} command is essential in such macros in order to make the data of the related entries available. Examples of entries using this feature can be found in the \biblatex distribution examples file \path{biblatex-examples.bib}. There are some specific formatting macros for this feature which control delimiters and separators in related entry information, see \secref{aut:fmt:fmt}.
\subsubsection{Datasource Sets}
\label{aut:ctm:dsets}
@@ -6389,6 +7045,8 @@ Defines source data modification (mapping) rules which can be used to perform an
particular datasources which you defined in \cmd{addresource} macros
\item Restrict any of the above operations to entries only of a certain
entrytype
+\item Restrict any of the above operations to entries in a particular
+ reference section
\end{itemize}
The \prm{specification} is an undelimited list of \cmd{maps} directives which specify containers for mappings rules applying to a particular data source type (\secref{use:bib:res}). Spaces, tabs, and line endings may be used freely to visually arrange the \prm{specification}. Blank lines are not permissible. This command may only be used in the preamble and may only be used once---subsequent uses will overwrite earlier definitions.
@@ -6399,7 +7057,7 @@ Contains an ordered set of \cmd{map} elements each of which is a logically relat
\begin{optionlist*}
-\choitem[bibtex]{datatype}{bibtex, biblatexml, ris}
+\choitem[bibtex]{datatype}{bibtex, biblatexml}
Data source type to which the contained \cmd{map} directives apply (\secref{use:bib:res}).
@@ -6434,7 +7092,11 @@ may also be used the \cmd{step}s to generate a random unique string. This can be
}
}
\end{ltxexample}
-% This loops over several name fields, making some textual replacememts.
+%$<- to stop emacs highlighting breaking
+
+\intitem{refsection}
+
+Only apply the contained \cmd{step} commands to entries in the reference section with number \prm{refsection}.
\end{optionlist*}
@@ -6450,15 +7112,16 @@ Restricts all \cmd{step}s in this \cmd{map} element to entries of the named \prm
Restricts all \cmd{step}s in this \cmd{map} element to entries not of the named \prm{entrytype}. Multiple \cmd{pernottype} restrictions are allowed within a \cmd{map} element.
-\cmditem{step}
+\cmditem{step}[options]
-A mapping step. Each step is applied sequentially to every relevant entry where <relevant> means those entries which correspond to the data source type, entrytype and data source name restrictions mentioned above. Each step is applied to the entry as it appears after the application of all previous steps. The mapping performed by the step is determined by the following options:
+A mapping step. Each step is applied sequentially to every relevant entry where <relevant> means those entries which correspond to the data source type, entrytype and data source name restrictions mentioned above. Each step is applied to the entry as it appears after the application of all previous steps. The mapping performed by the step is determined by the following \prm{option}s:
\begin{optionlist*}
\valitem{typesource}{entrytype}
\valitem{typetarget}{entrytype}
\valitem{fieldsource}{entryfield}
+\valitem{notfield}{entryfield}
\valitem{fieldtarget}{entryfield}
\valitem{match}{regexp}
\valitem{notmatch}{regexp}
@@ -6507,6 +7170,7 @@ For all boolean \cmd{step} options, the short form \opt{option} is equivalent to
\item Change the \texttt{fieldsource} \prm{entryfield} to
\texttt{fieldtarget}, if defined. If
\texttt{final} is \texttt{true} then if there is no \texttt{fieldsource} \prm{entryfield} in the entry, processing of the parent \cmd{map} immediately terminates.
+\item If \texttt{notfield} is used then only apply the step if the \prm{entryfield} does not exist.
\item If \texttt{match} is defined but
\texttt{replace} is not, only apply the step if the \texttt{fieldsource} \prm{entryfield} matches the
\texttt{match} regular expression (logic is reversed if you use \texttt{notmatch} instead)\footnote{Regular expressions are full Perl 5.16 regular expressions. This means you may need to deal with special characters, see examples.}. You may use capture parenthesis as usual and refer to these (\$1\ldots\$9) in later \texttt{fieldvalue} specifications. This allows you to pull out parts of some fields and put these parts in other fields.
@@ -6532,7 +7196,7 @@ For all boolean \cmd{step} options, the short form \opt{option} is equivalent to
\end{ltxsyntax}
-\noindent With \bibtex\ and RIS datasources, you may specify the
+\noindent With \bibtex\ datasources, you may specify the
pseudo-field \bibfield{entrykey} for \texttt{fieldsource}
which is the citation key of the entry. With \biblatexml\ the \bibfield{entrykey} is a normal attribute and can be reference like any other attribute. Naturally, this <field> cannot
be changed (used as \texttt{fieldset}, \texttt{fieldtarget} or changed using \texttt{replace}).
@@ -6541,7 +7205,7 @@ be changed (used as \texttt{fieldset}, \texttt{fieldtarget} or changed using \te
\cmditem{DeclareStyleSourcemap}{specification}
-This command sets the source mappings used by a style. Such mappings are conceptually separate from user mappings defined with \cmd{DeclareSourcemap} and are applied directly after user maps. The syntax is identical to \cmd{DeclareSourcemap}. This command is provided for style authors so that any maps defined for the style do not interfere with user maps or the default driver maps defined with \cmd{DeclareDriverSourcemap}. This command is for use in style files and can only be used once---subsequent uses will overwrite earlier definitions.
+This command sets the source mappings used by a style. Such mappings are conceptually separate from user mappings defined with \cmd{DeclareSourcemap} and are applied directly after user maps. The syntax is identical to \cmd{DeclareSourcemap}. This command is provided for style authors so that any maps defined for the style do not interfere with user maps or the default driver maps defined with \cmd{DeclareDriverSourcemap}. This command is for use in style files and can be used multiple times, the maps being run in order of definition.
\end{ltxsyntax}
@@ -6848,7 +7512,7 @@ Any entry which is not a \bibtype{book} or \bibtype{article} will be ignored.
%
Here, a clone of an entry from the specified data source will be created. The entry key of the clone will be the same as the original but prefixed by the value of the \texttt{entryclone} parameter. The cloned entry would still need to be cited in the document using its new entry key. This type of mapping step should be used with care as it may produce labelling problems in authoryear styles which use, for example, \opt{extrayear}. One use case is for numeric styles which contain multiple bibliographies containing the same entry. In this case, you may need different bibliography number labeld for the same entry and this is very tricky when there is only one entry which needs different labels. Creating clones with different entry keys solves this problem.
-\biblatexml\ datasources are more structured than \bibtex\ or \ris\ since they are XML. Sourcemapping is possible with \biblatexml\ too but the specifications of source and target fields etc. also support XPath 1.0 paths in order to be able to work with the structured data. Fields can be specified as per the \bibtex\ examples above and these are converted into XPath 1.0 queries internally as necessary. For example:
+\biblatexml\ datasources are more structured than \bibtex\ since they are XML. Sourcemapping is possible with \biblatexml\ too but the specifications of source and target fields etc. also support XPath 1.0 paths in order to be able to work with the structured data. Fields can be specified as per the \bibtex\ examples above and these are converted into XPath 1.0 queries internally as necessary. For example:
\begin{ltxexample}
\DeclareSourcemap{
@@ -6879,7 +7543,7 @@ These maps, respectively,
\item Replace the family name <Smith> of the second \bibfield{author} name with <Jones>
\item Move the \bibfield{editor} to \bibfield{translator}
\item Move the \bibfield{editor} to \bibfield{translator} but with explicit XPaths
-\item Set the pre-namelist \opt{useprefix} option on the \bibfield{author} name list to <false>
+\item Set the per-namelist \opt{useprefix} option on the \bibfield{author} name list to <false>
\end{itemize}
\subsubsection{Data Model Specification}
@@ -6905,13 +7569,13 @@ Validation against the data model means that after mapping your data sources int
\item Whether the fields obey various constraints on their format which you specify
\end{itemize}
%
-Redefining the data model can be done in several places. Style authors can create a \file{.dbx} file which contains the data model macros required and this will be loaded automatically when using the \biblatex package \opt{style} option by looking for a file named after the style with a \file{.dbx} extension (just like the \file{.cbx} and \file{.bbx} files for a style). If the \opt{style} option is not used but rather the \opt{citestyle} and \opt{bibstyle} options, then the package will try to load \file{.dbx} files called \file{<citestyle>.dbx} and \file{<bibstyle>.dbx}.
+Redefining the data model can be done in several places. Style authors can create a \file{.dbx} file which contains the data model macros required and this will be loaded automatically when using the \biblatex package \opt{style} option by looking for a file named after the style with a \file{.dbx} extension (just like the \file{.cbx} and \file{.bbx} files for a style). If the \opt{style} option is not used but rather the \opt{citestyle} and \opt{bibstyle} options, then the package will try to load \file{.dbx} files called \file{$<$citestyle$>$.dbx} and \file{$<$bibstyle$>$.dbx}.
Alternatively, the name of the data model file can be different from any of the style option names by specifying the name (without \file{.dbx} extension) to the package \opt{datamodel} option. After loading the style data model file, \biblatex then loads, if present, a users \file{biblatex-dm.cfg} which should be put somewhere \biblatex can find it, just like the main configuration file \sty{biblatex.cfg}. To summarise, the data model is determined by adding to the data model from each of these locations, in order:\\
\noindent\file{blx-dm.def}$\rightarrow$\\
-\hspace*{1em}\file{<datamodel option>.dbx} $\rightarrow$\\
-\hspace*{2em}\file{<style option>.dbx} $\rightarrow$\\
-\hspace*{3em}\file{<citestyle option>.dbx} and \file{<bibstyle option>.dbx} $\rightarrow$\\
+\hspace*{1em}\file{$<$datamodel option$>$.dbx} $\rightarrow$\\
+\hspace*{2em}\file{$<$style option$>$.dbx} $\rightarrow$\\
+\hspace*{3em}\file{$<$citestyle option$>$.dbx} and \file{$<$bibstyle option$>$.dbx} $\rightarrow$\\
\hspace*{4em}\file{biblatex-dm.cfg}\\
\noindent It is not possible to add to a loaded data model by using the macros below in your preamble as the preamble is read after \biblatex has defined critical internal macros based on the data model. If any data model macro is used in a document, it will be ignored and a warning will be generated. The data model is defined using the following macros:
@@ -7130,7 +7794,7 @@ This model specifies:
\subsubsection{Labels}
\label{aut:ctm:lab}
-Alphabetic styles use a label to identify bibliography entries. This label is constructed from components of the entry using a template which describes how to build the label. The template can be customised on a global or per-type basis.
+Alphabetic styles use a label to identify bibliography entries. This label is constructed from components of the entry using a template which describes how to build the label. The template can be customised on a global or per-type basis. A separate template is used to specify how to extract parts of name fields for labels, since names can be quite complex fields.
\begin{ltxsyntax}
@@ -7144,7 +7808,7 @@ Specifies the elements used to build the label. The \prm{elements} are an undeli
\cmditem{field}[options]{field}
-If \prm{field} is non-empty, use it as the current label \cmd{labelelement}, subject to the options below. Useful values for \prm{field} are typically the name list type fields, date fields, and title fields. You may also use the `citekey' pseudo-field to specify the citation key as part of the label. Name list fields are treated specially and the options which take substrings of the \prm{field} to use in the \cmd{labelelement} are applied to the family name of every name in a name list (see below).
+If \prm{field} is non-empty, use it as the current label \cmd{labelelement}, subject to the options below. Useful values for \prm{field} are typically the name list type fields, date fields, and title fields. You may also use the `citekey' pseudo-field to specify the citation key as part of the label. Name list fields are treated specially and when a name list field is specified, the template defined with \cmd{DeclareLabelalphaNameTemplate} is used to extract parts from the name which then returns the string that the \cmd{field} option uses.
\begin{optionlist*}
@@ -7158,15 +7822,11 @@ Forces the label part derived from the field to lowercase. By default, the case
\intitem[1]{strwidth}
-The number of characters of the \prm{field} to use.
-
-\intitem[1]{pstrwidth}
-
-For name list fields only, the number of characters of any name prefix to prepend to the label part derived from the last name. Only applies if the \biblatex option \kvopt{useprefix}{true}.
+The number of characters of the \prm{field} to use. This setting may be overridden by an individual name part when extracting characters from a name. See \cmd{DeclareLabelalphaNameTemplate} below.
\choitem[left]{strside}{left, right}
-The side of the string from which to take the \texttt{strwidth} number of characters.
+The side of the string from which to take the \texttt{strwidth} number of characters. This setting may be overridden by an individual name part when extracting characters from a name. See \cmd{DeclareLabelalphaNameTemplate} below.
\choitem[right]{padside}{left, right}
@@ -7182,7 +7842,7 @@ Forces the label part derived from the field to uppercase. By default, the case
\boolitem[false]{varwidth}
-Use a variable width, left-side substring of characters from the \prm{field} (each family name in name list fields). The length of the string is determined by the minimum length needed to disambiguate the substring from all other \prm{field} elements in the same position in the label. For name list fields, this means that each name substring is disambiguated from all other name substrings which occur in the same position in the name list (see examples below). This option overrides \texttt{strwidth} if both are used. The short form \opt{varwidth} is equivalent to \kvopt{varwidth}{true}. For name list fields, if \kvopt{useprefix}{true}, the first character of the name prefix is prepended to the substring.
+Use a variable width, left-side substring of characters from the string returned for \prm{field}. The length of the string is determined by the minimum length needed to disambiguate the substring from all other \prm{field} elements in the same position in the label. For name list fields, this means that each name substring is disambiguated from all other name substrings which occur in the same position in the name list (see examples below). This option overrides \texttt{strwidth} if both are used. The short form \opt{varwidth} is equivalent to \kvopt{varwidth}{true}. For name list fields, the \cmd{namepart}s with the \opt{pre} option set are prepended to the string returned from this disambiguation.
\boolitem[false]{varwidthnorm}
@@ -7190,7 +7850,7 @@ As \texttt{varwidth} but will force the disambiguated substrings for the \prm{fi
\boolitem[false]{varwidthlist}
-Alternative method of automatic label disambiguation where the field as a whole is disambiguated from all other fields in the same label position. For non-name list fields, this is equivalent to \texttt{varwidth}. For name list fields, names in a name list are not disambiguated from other names in the same position in their name lists but instead the entire name list is disambiguated as a whole from other name lists (see examples below). This option overrides \texttt{strwidth} if both are used. The short form \opt{varwidthlist} is equivalent to \kvopt{varwidthlist}{true}. For name list fields, if \kvopt{useprefix}{true}, the first character of the name prefix is prepended to the substring.
+Alternative method of automatic label disambiguation where the field as a whole is disambiguated from all other fields in the same label position. For non-name list fields, this is equivalent to \texttt{varwidth}. For name list fields, names in a name list are not disambiguated from other names in the same position in their name lists but instead the entire name list is disambiguated as a whole from other name lists (see examples below). This option overrides \texttt{strwidth} if both are used. The short form \opt{varwidthlist} is equivalent to \kvopt{varwidthlist}{true}. For name list fields, the \cmd{namepart}s with the \opt{pre} option set are prepended to the string returned from this disambiguation.
\intitem{strwidthmax}
@@ -7200,14 +7860,6 @@ When using \texttt{varwidth}, this option sets a limit (in number of characters)
When using \texttt{varwidthnorm}, there must be at least \texttt{strfixedcount} disambiguated substrings with the same, maximal length to trigger the forcing of all disambiguated substrings to this same maximal length.
-\boolitem[false]{compound}
-
-For static (non-varwidth) disambiguation, treat family name name components separated by whitespace or hyphens (compound last names) as separate names for label generation. This means that when forming a label out of, for example the surname <Ballam Forsyth> with a 1 character, left-side substring, this name would give <BF> with \kvopt{compound}{true} and <B> with \kvopt{compound}{false}. The short form \opt{compound} is equivalent to \kvopt{compound}{true}.
-
-\boolitem[false]{pcompound}
-
-As \opt{compound} but applies to name prefices. Only applies if the \biblatex option \kvopt{useprefix}{true}.
-
\valitem{ifnames}{range}
Only use this \cmd{field} specification if it is a name list field with a number of names matching the \texttt{ifnames} range value. This allows a \cmd{labelelement} to be conditionalised on name length (see below). The range can specified as in the following examples:
@@ -7231,7 +7883,7 @@ name={2-} -> Use all names starting with the second name (ignoring max/minalpha
name={2-+} -> Use all names starting with the second name (respecting max/minalphanames truncation)
\end{lstlisting}
-\valitem{namessep}[empty]{string}
+\valitem[empty]{namessep}{string}
An arbitrary string separator to put between names in a namelist.
@@ -7246,23 +7898,69 @@ By default, \cmd{labelalphaothers} is appended to label parts derived from name
Insert the literal \prm{characters} into the label at this point.
\end{ltxsyntax}
+%
+When a name list \cmd{field} is specified, the method of extracting the string is specified by a separate template specified by the following command:
+
+\begin{ltxsyntax}
+
+\cmditem{DeclareLabelalphaNameTemplate}[entrytype, \dots]{specification}
+
+Specifies the template to use to extract a label string from a name list when a \cmd{field} specification in \cmd{DeclareLabelalphaTemplate} contains a name list. The template can be specified per"=entrytype.
+
+\cmditem{namepart}[options]{namepart}
+
+\prm{namepart} is one of the datamodel nameparts defined with the \cmd{DeclareDatamodelConstant} command (see \secref{aut:bbx:drv}). The \opt{options} are:
+
+\begin{optionlist*}
+
+\boolitem[false]{use}
+
+Only use the \prm{namepart} in constructing the label information if there is a corresponding option \opt{use<namepart>} and that option is true.
+
+\boolitem[false]{pre}
+
+When constructing label strings from names, the \cmd{namepart} \emph{without} a \opt{pre} option will be used to construct label string, passing through disambiguation, substring etc. operations as specified by the \cmd{field} options in \cmd{DeclareLabelalpaTemplate}. Then the \cmd{namepart} options \emph{with} the \opt{pre} option set will be prepended to the result, (in the order given, if there are more than one such \cmd{namepart}s). This allows to unconditionally prepend certain namepart information to name label strings, like name prefices. Note that the \opt{uppercase} and \opt{lowercase} options of \cmd{field} in \cmd{DeclareLabelalphaTemplate} are applied to the entire label returned from \cmd{DeclareLabelalphaTemplate}, both \opt{pre} parts and non \opt{pre}.
+
+\boolitem[false]{compound}
+
+For static (non-varwidth) disambiguation in \cmd{DeclareLabelalphaTemplate}, nameparts separated by whitespace or hyphens (compound names) as separate names for label generation. This means that when forming a label out of, for example the surname <Ballam Forsyth> with a 1 character, left-side substring, this name would give <BF> with \kvopt{compound}{true} and <B> with \kvopt{compound}{false}. The short form \opt{compound} is equivalent to \kvopt{compound}{true}.
+
+\intitem[1]{strwidth}
+
+The number of characters of the \prm{namepart} to use.
+
+\choitem[left]{strside}{left, right}
+
+The side of the string from which to take the \texttt{strwidth} number of characters.
+
+\end{optionlist*}
+
+\end{ltxsyntax}
-Note that the template for labels can be defined per-type and you should be aware of this when using the automatically disambiguated label functionality. Disambiguation is not per-type as this might lead to ambiguity due to different label formats for different types being isolated from each others disambiguation process. Normally, you will want to use very different label formats for different types to make the type obvious by the label.
+Note that the templates for labels can be defined per-type and you should be aware of this when using the automatically disambiguated label functionality. Disambiguation is not per-type as this might lead to ambiguity due to different label formats for different types being isolated from each others disambiguation process. Normally, you will want to use very different label formats for different types to make the type obvious by the label.
Here are some examples. The default global \biblatex alphabetic label template is defined below. Firstly, \bibfield{shorthand} has \kvopt{final}{true} and so if there is a \bibfield{shorthand} field, it is used as the label and nothing more of the template is considered. Next, the \bibfield{label} field is used as the first label element if it exists. Otherwise, if there is only one name (\kvopt{ifnames}{1}) in the \bibfield{labelname} list, then three characters from the left side of the family name in the \bibfield{labelname} are used as the first label element. If the \bibfield{labelname} has more than one name in it, one character from the left side of each family name is used as the first label element. The second label element consists of 2 characters from the right side of the \bibfield{year} field.
+The default template for constructing labels from names is also shown. This prepends the first character from the left side of any prefix (if the \opt{useprefix} option is true) to a label extracted from the family name (according to the options on the calling \cmd{field} option from \cmd{DeclareLabelalphaTemplate}), allowing for compound family names.
+
\begin{ltxexample}
\DeclareLabelalphaTemplate{
\labelelement{
\field[final]{<<shorthand>>}
\field{<<label>>}
- \field[strwidth=3,strside=left,ifnames=1,pcompound=true]{<<labelname>>}
- \field[strwidth=1,strside=left,pcompound=true]{<<labelname>>}
+ \field[strwidth=3,strside=left,ifnames=1]{<<labelname>>}
+ \field[strwidth=1,strside=left]{<<labelname>>}
}
\labelelement{
\field[strwidth=2,strside=right]{<<year>>}
}
}
+
+\DeclareLabelalphaNameTemplate{
+ \namepart[use=true, pre=true, strwidth=1, compound=true]{prefix}
+ \namepart{family}
+}
+
\end{ltxexample}
%
To get an idea of how the label automatic disambiguation works, consider the following author lists:
@@ -7499,7 +8197,7 @@ The \prm{specification} is an undelimited list of \cmd{sort} directives which sp
\cmditem{sort}{elements}
-Specifies the elements considered in the sorting process. The \prm{elements} are an undelimited list of \cmd{field}, \cmd{literal}, and \cmd{citeorder} commands which are evaluated in the order in which they are given. If an element is defined, it is added to the sort key and the sorting routine skips to the next \cmd{sort} directive. If it is undefined, the next element is evaluated. Since literal strings are always defined, any \cmd{literal} commands should be the sole or the last element in a \cmd{sort} directive. The \cmd{sort} command supports the following optional arguments:
+Specifies the elements considered in the sorting process. The \prm{elements} are an undelimited list of \cmd{field}, \cmd{literal}, and \cmd{citeorder} commands which are evaluated in the order in which they are given. If an element is defined, it is added to the sort key and the sorting routine skips to the next \cmd{sort} directive. If it is undefined, the next element is evaluated. Since literal strings are always defined, any \cmd{literal} commands should be the sole or the last element in a \cmd{sort} directive. All \prm{elements} should be the same datatype as described in \secref{bib:fld:dat} since they will be potentially compared to any of the other \prm{elements} in other entries.. The \cmd{sort} command supports the following optional arguments:
\begin{optionlist*}
@@ -7533,13 +8231,7 @@ The \cmd{field} element adds a \prm{field} to the sorting specification. If the
\choitem[left]{padside}{left, right}
-Pads a field on the \texttt{left} or \texttt{right} side using \opt{padchar} so that its width is \opt{padwidth}. If no padding option is set, no padding is done at all. If any padding option is specified, then padding is performed and the missing options are assigned built-in default values. If padding and substring matching are both specified, the substring match is performed first. Padding is particularly useful with numeric fields. For example, the command
-
-\begin{ltxexample}
-\field[padside=left,padwidth=2,padchar=0]{<<volume>>}
-\end{ltxexample}
-%
-will pad the \bibfield{volume} field with leading zeros to a width of two characters. This way, volumes are sorted by numeric value (\texttt{01\slash 02\slash 11\slash 12}) rather than in alphabetic order (\texttt{1\slash 11\slash 12\slash 2}).
+Pads a field on the \texttt{left} or \texttt{right} side using \opt{padchar} so that its width is \opt{padwidth}. If no padding option is set, no padding is done at all. If any padding option is specified, then padding is performed and the missing options are assigned built-in default values. If padding and substring matching are both specified, the substring match is performed first.
\intitem[4]{padwidth}
@@ -7598,8 +8290,8 @@ Defines how the sorting keys for names are constructed. This can change the sort
\item The default scheme defined without the optional name argument
\item Given as the \opt{sortingnamekeyscheme} option to a reference context (see \secref{use:bib:context})
\item Given as a per-entry option \opt{sortnamekeyscheme} in a bibliography data source entry
-\item Given as a per-namelist option \opt{sortnamekeyscheme} in datasources which support this\footnote{Current only the \biblatexml data source format support this.}
-\item Given as a per-name option \opt{sortnamekeyscheme} in datasources which support this\footnote{Current only the \biblatexml data source format support this.}
+\item Given as a per-namelist option \opt{sortnamekeyscheme}
+\item Given as a per-name option \opt{sortnamekeyscheme}
\end{itemize}
By default there is only a global scheme which has the following \prm{specification}:
@@ -7644,6 +8336,11 @@ Specifies the \prm{name} of a namepart to use in constructing the name sorting k
Indicates that the namepart \prm{name} is only to be used in this concatenation position if the corresponding \opt{use<name>} option is set to the specified boolean value.
+\boolitem[true]{inits}
+
+Indicates that only the initials of namepart \prm{name} are to be used in
+constructing the sorting specification.
+
\end{optionlist*}
\end{ltxsyntax}
@@ -7684,6 +8381,23 @@ or perhaps you only want to do this for a particular entry:
}
\end{lstlisting}
%
+or just a name list by using the option as a pseudo-name which will be ignored:
+
+\begin{lstlisting}[style=bibtex]{}
+@BOOK{key,
+ AUTHOR = {sortnamekeyscheme=givenfirst and Arnar Vigfusson}
+}
+\end{lstlisting}
+%
+or just a single name by passing the option as part of the extended name information
+format which \biber supports (see \biber doc):
+
+\begin{lstlisting}[style=bibtex]{}
+@BOOK{key,
+ AUTHOR = {given=Arnar, family=Vigfusson, sortnamekeyscheme=givenfirst}
+}
+\end{lstlisting}
+%
Now we give some examples of sorting schemes. In the first example, we define a simple name\slash title\slash year scheme. The name element may be either the \bibfield{author}, the \bibfield{editor}, or the \bibfield{translator}. Given this specification, the sorting routine will use the first element which is available and continue with the \bibfield{title}. Note that the options \opt{use$<$name$>$} options are considered automatically in the sorting process:
\begin{ltxexample}
@@ -7888,7 +8602,7 @@ Any number of \cmd{nosort} commands can be given each of which specifies to remo
\end{ltxsyntax}
-If there is no \cmd{DeclareNosort} specification, \biber will default to:
+The default is:
\begin{ltxexample}
\DeclareNosort{
@@ -7978,11 +8692,12 @@ The \bibfield{labelname} field may be customized globally or on a per-type basis
\cmditem{DeclareLabeldate}[entrytype, \dots]{specification}
-Defines the date components to consider when generating \bibfield{labelyear}, \bibfield{labelmonth} and \bibfield{labelday} fields (see \secref{aut:bbx:fld:lab}). The \prm{specification} is an ordered list of \cmd{field} or \cmd{literal} commands. The items are checked in the order listed and the first item which is available will be used to popluate the \bibfield{labelyear}, \bibfield{labelmonth} and \bibfield{labelday} fields. Note that the \cmd{field} items do not have to be datetype <date> in the data model so that you can create pseudo-year labels by, for example, using a \bibfield{pubstate} field contents, if available, as the year label by defining \cmd{DeclareLabeldate} suitably. Note also that a \cmd{literal} command will always be used when found and so this should always be the last thing in the list. If the value of a \cmd{literal} command is a valid localisation string, then this will be resolved in the current language, otherwise the value is used as a literal string as-is. This is the default definition:
+Defines the date components to consider when generating \bibfield{labelyear}, \bibfield{labelmonth}, \bibfield{labelday}, \bibfield{labelendyear}, \bibfield{labelendmonth} and \bibfield{labelendday} fields (see \secref{aut:bbx:fld:lab}). The \prm{specification} is an ordered list of \cmd{field} or \cmd{literal} commands. The items are checked in the order listed and the first item which is available will be used to popluate the mentioned fields. Note that the \cmd{field} items do not have to be datetype <date> in the data model so that you can create pseudo-year labels by, for example, using a \bibfield{pubstate} field contents, if available, as the year label by defining \cmd{DeclareLabeldate} suitably. Note also that a \cmd{literal} command will always be used when found and so this should always be the last thing in the list. If the value of a \cmd{literal} command is a valid localisation string, then this will be resolved in the current language, otherwise the value is used as a literal string as-is. This is the default definition:
\begin{ltxexample}
\DeclareLabeldate{%
\field{date}
+ \field{year}
\field{eventdate}
\field{origdate}
\field{urldate}
@@ -7991,7 +8706,7 @@ Defines the date components to consider when generating \bibfield{labelyear}, \b
\end{ltxexample}
%
Note that the \bibfield{date} field is split by the backend into \bibfield{year}, \bibfield{month} which are also valid fields in the default data model. In order to support legacy data which directly sets \bibfield{year} and/or \bibfield{month}, the specification <\bibfield{date}> in \cmd{DeclareLabeldate} will also match \bibfield{year} and \bibfield{month} fields, if present.
-The \bibfield{labelyear}, \bibfield{labelmonth} and \bibfield{labelday} fields may be customized globally or on a per-type basis. If the optional \prm{entrytype} argument is given, the specification applies to the respective entry type. If not, it is applied globally. The \prm{entrytype} argument may be a comma"=separated list of values. This command may only be used in the preamble. See also \secref{aut:bbx:fld:dat}.
+The \bibfield{label*} fields may be customized globally or on a per-type basis. If the optional \prm{entrytype} argument is given, the specification applies to the respective entry type. If not, it is applied globally. The \prm{entrytype} argument may be a comma"=separated list of values. This command may only be used in the preamble. See also \secref{aut:bbx:fld:dat}.
\cmditem{DeclareLabeltitle}[entrytype, \dots]{specification}
@@ -8021,25 +8736,59 @@ Configures the default inheritance behavior. This command may only be used in th
\begin{optionlist*}
-\boolitem[true]{all} Whether or not to inherit all fields from the parent by default. \kvopt{all}{true} means that the child entry inherits all fields from the parent, unless a more specific inheritance rule has been set up with \cmd{DeclareDataInheritance}. If an inheritance rule is defined for a field, data inheritance is controlled by that rule. \kvopt{all}{false} means that no data is inherited from the parent by default. Each field to be inherited requires an explicit inheritance rule set up with \cmd{DeclareDataInheritance}. The package default is \kvopt{all}{true}.
+\boolitem[true]{all} Whether or not to inherit all fields from the parent by default.
+
+\kvopt{all}{true} means that the child entry inherits all fields from the parent, unless a more specific inheritance rule has been set up with \cmd{DeclareDataInheritance}. If an inheritance rule is defined for a field, data inheritance is controlled by that rule. \kvopt{all}{false} means that no data is inherited from the parent by default and each field to be inherited requires an explicit inheritance rule set up with \cmd{DeclareDataInheritance}. The package default is \kvopt{all}{true}.
\boolitem[false]{override} Whether or not to overwrite target fields with source fields if both are defined. This applies both to automatic inheritance and to explicit inheritance rules. The package default is \kvopt{override}{false}, \ie existing fields of the child entry are not overwritten.
+\valitem{ignore}{csv list of uniqueness options}
+
+This option takes a comma-separated list of one of more of <singletitle>, <uniquetitle>, <uniquebaretitle> and/or <uniquework>. The purpose of this option is to ignore tracking information for these three options when the field which would trigger the tracking (\tabref{use:opt:wu}) is inherited. An example---Suppose that you have several \bibtype{book} entries which all crossref a \bibtype{mvbook} from which they get their \bibfield{author} field. You might reasonably want the \cmd{ifsingletitle} test to return <true> for this author as their only <work> is the \bibtype{mvbook}. Similar comments would apply to situations involving the \cmd{ifuniquetitle}, \cmd{ifuniquebaretitle} and \cmd{ifuniquework} tests. The \opt{ignore} option lists which of these should have their tracking information ignored when the fields which would trigger them are inherited. The idea is that the presence of an inherited field does not contribute towards the determination of whether some combination of name/title is unique in the bibliographic data. For example, this modified default setting would ignore \opt{singletitle} and \opt{uniquetitle} tracking:
+
+\begin{ltxexample}
+\DefaultInheritance{ignore={singletitle,uniquetitle}, all=true, override=false}
+\end{ltxexample}
+%
+Of course, the ignoring of tracking does nothing if the fields inherited do not play a role in tracking. Only the fields listed in \tabref{use:opt:wu} are relevant to this option.
+
\end{optionlist*}
The optional \prm{exceptions} are an undelimited list of \cmd{except} directives. Spaces, tabs, and line endings may be used freely to visually arrange the \prm{exceptions}. Blank lines are not permissible.
\cmditem{except}{source}{target}{options}
-Sets the \prm{options} for a specific \prm{source} and \prm{target} combination. The \prm{source} and \prm{target} arguments specify the parent and the child entry type. The asterisk matches all types and is permissible in either argument.
+Defines an exception to the default inheritance rules.
+
+\cmd{DeclareDataInheritance} sets the inheritance \prm{options} for a specific \prm{source} and \prm{target} combination. The \prm{source} and \prm{target} arguments specify the parent and the child entry type. The asterisk matches all types and is permissible in either argument.
-\cmditem{DeclareDataInheritance}{source, \dots}{target, \dots}{rules}
+\cmditem{DeclareDataInheritance}[options]{source, \dots}{target, \dots}{rules}
-Declares inheritance rules. The \prm{source} and \prm{target} arguments specify the parent and the child entry type. Either argument may be a single entry type, a comma"=separated list of types, or an asterisk. The asterisk matches all entry types. The \prm{rules} are an undelimited list of \cmd{inherit} and\slash or \cmd{noinherit} directives. Spaces, tabs, and line endings may be used freely to visually arrange the \prm{rules}. Blank lines are not permissible. This command may only be used in the preamble.
+Declares inheritance rules. The \prm{source} and \prm{target} arguments specify the parent and the child entry type. Either argument may be a single entry type, a comma"=separated list of types, or an asterisk. The asterisk matches all entry types. The \prm{rules} are an undelimited list of \cmd{inherit} and\slash or \cmd{noinherit} directives. Spaces, tabs, and line endings may be used freely to visually arrange the \prm{rules}. Blank lines are not permissible. This command may only be used in the preamble. The options are:
+
+\begin{optionlist*}
+
+\valitem{ignore}{csv list of uniqueness options}
+
+As the \opt{ignore} option on \cmd{DefaultInheritance} explained above. When set here, it takes precedence over any global options set with \cmd{DefaultInheritance}. For example, this would ignore \opt{singletitle} and \opt{uniquetitle} tracking for a \bibtype{book} inheriting from a \bibtype{mvbook}.
+
+\begin{ltxexample}
+\DeclareDataInheritance[ignore={singletitle,uniquetitle}]{mvbook}{book}{<<...>>}
+\end{ltxexample}
+
+\end{optionlist*}
\cmditem{inherit}[option]{source}{target}
-Defines an inheritance rule by mapping a \prm{source} field to a \prm{target} field. The \prm{option} is the \opt{override} option explained above. When set locally, it takes precedence over any global options set with \cmd{DefaultInheritance}.
+Defines an inheritance rule by mapping a \prm{source} field to a \prm{target} field. \prm{option} can be one of
+
+\begin{optionlist*}
+
+\boolitem[false]{override}
+
+As the \opt{override} option for \cmd{DefaultInheritance} explained above. When set here, it takes precedence over any global options set with \cmd{DefaultInheritance}.
+
+\end{optionlist*}
\cmditem{noinherit}{source}
@@ -8075,7 +8824,7 @@ This example is similar to the one above but adds one exception: entries of type
}
\end{ltxexample}
%
-So far we have looked at setting up the defaults. For example, \kvopt{all}{true} means that the \bibfield{publisher} field of a source entry is copied to the \bibfield{publisher} field of the target entry. In some cases, however, asymmetric mappings are required. They are defined with \cmd{DeclareDataInheritance}. The above example sets up three typical rules for \bibtype{incollection} entries referencing a \bibtype{collection}. We map the \bibfield{title} and related fields of the source to the corresponding \bibfield{booktitle} fields of the target.
+So far we have looked at setting up standard inheritance. For example, \kvopt{all}{true} means that the \bibfield{publisher} field of a source entry is copied to the \bibfield{publisher} field of the target entry. In some cases, however, asymmetric mappings are required. They are defined with \cmd{DeclareDataInheritance}. The above example sets up three typical rules for \bibtype{incollection} entries referencing a \bibtype{collection}. We map the \bibfield{title} and related fields of the source to the corresponding \bibfield{booktitle} fields of the target.
\begin{ltxexample}
\DeclareDataInheritance{<<mvbook,book>>}{<<inbook,bookinbook>>}{
@@ -8136,6 +8885,24 @@ set on a per-entry basis. For example:
Here, \bibfield{s1} will not inherit the \bibfield{TITLE} of \bibfield{s2}
as \bibfield{BOOKTITLE} as this is blocked by the datafield set given as
the value to the \opt{noinherit} option.
+%
+One important thing to note is that children will never inherit any dateparts of a given type if they already contain a datepart of that type. So, for example:
+
+\begin{lstlisting}[style=bibtex]{}
+@INBOOK{b1,
+ DATE = {2004-03-03},
+ ORIGDATE = {2004-03},
+ CROSSREF = {b2}
+}
+
+@BOOK{b2,
+ DATE = {2004-03-03/2005-08-09},
+ ORIGDATE = {2004-03/2005-08},
+ EVENTDATE = {2004-03/2005-08},
+}
+\end{lstlisting}
+%
+Here, \bibfield{b1} will not inherit any of \bibfield{endyear}, \bibfield{endmonth}, \bibfield{endday}, \bibfield{origendyear} or \bibfield{origendmonth} as this would make a mess of its own dates. It will, given the inheritance defaults, inherit all of the \bibfield{event*} date parts.
\subsection{Auxiliary Commands}
\label{aut:aux}
@@ -8244,6 +9011,46 @@ The commands in this section are various kinds of stand"=alone tests for use in
\begin{ltxsyntax}
+\cmditem{if$<$datetype$>$julian}{true}{false}
+
+Expands to \prm{true} if the date <datetype>date (\opt{date}, \opt{urldate}, \opt{eventdate} etc.) Was converted to the Julian Calendar due to the settings of the \opt{julian}and \opt{gregorianstart} options.
+
+\cmditem{ifdatejulian}{true}{false}
+
+As \cmd{if$<$datetype$>$julian} but for use in \cmd{mkbibdate*} formatting commands (\secref{aut:fmt:lng}) inside which the appropriate \cmd{if$<$datetype$>$julian} command is aliased to this command.
+
+\cmditem{if$<$datetype$>$dateera}{era}{true}{false}
+
+Expands to \prm{true} if the date <datetype>date (\opt{date}, \opt{urldate}, \opt{eventdate} etc.) has an era specification equal to \prm{era} and \prm{false} otherwise. The supported \prm{era} strings which \biber determines and passes in the \file{.bbl} are:
+
+\begin{description}
+\item[bce] BCE/BC era
+\item[ce] CE/AD era
+\end{description}
+
+This command is useful for determining whether to print the location
+strings in \secref{aut:lng:key:dt}.
+
+\cmditem{ifdateera}{era}{true}{false}
+
+As \cmd{if$<$datetype$>$dateera} but for use in \cmd{mkbibdate*} formatting commands (\secref{aut:fmt:lng}) inside which the appropriate \cmd{if$<$datetype$>$dateera} command is aliased to this command.
+
+\cmditem{if$<$datetype$>$datecirca}{true}{false}
+
+Expands to \prm{true} if the date <datetype>date (\opt{date}, \opt{urldate}, \opt{eventdate} etc.) had a <circa> marker in the source and \prm{false} otherwise. See \secref{bib:use:dat}. This command is useful for determining whether to print the location strings in \secref{aut:lng:key:dt}.
+
+\cmditem{ifdatecirca}{true}{false}
+
+As \cmd{if$<$datetype$>$datecirca} but for use in \cmd{mkbibdate*} formatting commands (\secref{aut:fmt:lng}) inside which the appropriate \cmd{if$<$datetype$>$datecirca} command is aliased to this command.
+
+\cmditem{ifdate<datetype>uncertain}{true}{false}
+
+Expands to \prm{true} if the date <datetype>date (\opt{date}, \opt{urldate}, \opt{eventdate} etc.) had an uncertainty marker in the source and \prm{false} otherwise. See \secref{bib:use:dat}. This command is useful for determining whether to print, for example, a question mark after a year.
+
+\cmditem{ifdateuncertain}{true}{false}
+
+As \cmd{if$<$datetype$>$dateuncertain} but for use in \cmd{mkbibdate*} formatting commands (\secref{aut:fmt:lng}) inside which the appropriate \cmd{if$<$datetype$>$dateuncertain} command is aliased to this command.
+
\cmditem{ifcaselang}[language]{true}{false}
Expands to \prm{true} if the the optional \prm{language} is one of those
@@ -8361,14 +9168,22 @@ Expands to \prm{true} if the entry was inclued in the \file{.bbl} due to being r
\cmditem{ifsingletitle}{true}{false}
-Expands to \prm{true} if there is only one work by the \opt{labelname} name in the bibliography, and to \prm{false} otherwise. If there is no \opt{labelname} name at all for the entry, then this expands to \prm{true} if there is only one work with the \opt{labeltitle} title in the bibliography and \prm{false} otherwise. If neither \opt{labelname} nor \opt{labeltitle} are set for an entry, this will always expand to \prm{false}. Note that this feature needs to be enabled explicitly with the package option \opt{singletitle}.
+Expands to \prm{true} if there is only one work by the \opt{labelname} name in the bibliography, and to \prm{false} otherwise. If \opt{labelname} is not set for an entry, this will always expand to \prm{false}. Note that this feature needs to be enabled explicitly with the package option \opt{singletitle}.
\cmditem{ifuniquetitle}{true}{false}
Expands to \prm{true} if there is only one work with the title \opt{labeltitle} and to \prm{false} otherwise. If \opt{labeltitle} is not set for an entry, this will always expand to \prm{false}. Note that this feature needs to be enabled explicitly with the package option \opt{uniquetitle}.
-\cmditem{ifuniqueprimaryauthor}{true}{false}
+\cmditem{ifuniquebaretitle}{true}{false}
+
+Expands to \prm{true} if \bibfield{labelname} is empty and there is only one work with the title \opt{labeltitle} and to \prm{false} otherwise. If \opt{labeltitle} is not set for an entry, this will always expand to \prm{false}. Note that this feature needs to be enabled explicitly with the package option \opt{uniquebaretitle}.
+
+\cmditem{ifuniquework}{true}{false}
+Expands to \prm{true} if there is only one work by the \opt{labelname} name with the \opt{labeltitle} title in the bibliography, and to \prm{false} otherwise. If neither \opt{labelname} nor \opt{labeltitle} are set for an entry, this will always expand to \prm{false}. Note that this feature needs to be enabled explicitly with the package option \opt{uniquework}. If both \bibfield{singletitle} and \bibfield{uniquetitle} are false for the same entry, this could be because another entry has the same \bibfield{labdlname} and yet another, different, entry has the same \bibfield{labeltitle}. \bibfield{uniquework} would let you know that there is another entry that has \emph{both} the same \bibfield{labelname} \emph{and} the same \bibfield{labeltitle}. This could be helpful in cases where multiple people maintain bibliography datasources and there is a risk of adding the same work with different keys without other parties realising this. This test could help to find such duplicates.
+
+\cmditem{ifuniqueprimaryauthor}{true}{false}
+x
Expands to \prm{true} if there is only one work by the primary (first) author family
name of \opt{labelname} and to \prm{false} otherwise. If \opt{labelname} is not set for an entry, this will always expand to \prm{false}. Note that this feature needs to be enabled explicitly with the package option \opt{uniqueprimaryauthor}.
@@ -8384,9 +9199,9 @@ Expands to \prm{true} if the current name list has been or will be truncated, an
This command is similar to \cmd{ifmorenames} but checks the current literal list. It is intended for use in formatting directives for literal lists. It will always expand to \prm{false} when used elsewhere.
-\cmditem{ifgiveninits}{true}{false}
+\cmditem{if$<$namepart$>$inits}{true}{false}
-Expands to \prm{true} or \prm{false}, depending on the state of the \opt{giveninits} package option (see \secref{use:opt:pre:int}). This command is intended for use in formatting directives for name lists.
+Expands to \prm{true} or \prm{false}, depending on the state of the \opt{$<$namepart$>$inits} package option (see \secref{use:opt:pre:int}). This command is intended for use in formatting directives for name lists.
\cmditem{ifterseinits}{true}{false}
@@ -8549,7 +9364,7 @@ Expands to \prm{true} when located in a footnote, and to \prm{false} otherwise.
This counter indicates how many times the entry currently being processed is cited in the current reference section. Note that this feature needs to be enabled explicitly with the package option \opt{citecounter}. If the option is set to \texttt{context}, citations in the body text and in footnotes are counted separately. In this case, \cnt{citecounter} will hold the value of the context it is used in.
\cntitem{uniquename}
-This counter refers to the \bibfield{labelname} list. It is set on a per-name basis. Its value is \texttt{0} if the last name is unique, \texttt{1} if adding the other parts of the name (first name, prefix, suffix) as initials will make it unique, and \texttt{2} if the full name is required to disambiguate the name. This information is required by author-year and author-title citation schemes which add additional parts of the name when citing different authors with the same last name. For example, if there is one <John Doe> and one <Edward Doe> in the list of references, this counter will be set to \texttt{1}. If there is one <John Doe> and one <Jane Doe>, the value of the counter will be \texttt{2}. If the option is set to \texttt{init}\slash \texttt{allinit}\slash \texttt{mininit}, the counter will be limited to \texttt{1}. This is useful for citations styles which use initials to disambiguate names but never print the full name in citations. If adding the initials is not sufficient to disambiguate the name, \cnt{uniquename} will also be set to \texttt{0} for that name. This feature needs to be enabled explicitly with the package option \opt{uniquename}. Note that the \cnt{uniquename} counter is local to \cmd{printnames} and that it is only set for the \bibfield{labelname} list and to the name list \bibfield{labelname} has been derived from (typically \bibfield{author} or \bibfield{editor}). Its value is zero in any other context, i.e., it must be evaluated in the name formatting directives handling name lists. See \secref{aut:cav:amb} for further details and practical examples.
+This counter refers to the \bibfield{labelname} list. It is set on a per-name basis. Its value is \texttt{0} if the base name (by default the <family> part of the name) is unique, \texttt{1} if adding the other parts of the name (as specified in the uniquename template defined by \cmd{DeclareUniquenameTemplate})as initials will make it unique, and \texttt{2} if the full name is required to disambiguate the name. This information is required by author-year and author-title citation schemes which add additional parts of the name when citing different authors with the same last name. For example, (given the default \cmd{DeclareUniquenameTemplate} definition) if there is one <John Doe> and one <Edward Doe> in the list of references, this counter will be set to \texttt{1}. If there is one <John Doe> and one <Jane Doe>, the value of the counter will be \texttt{2}. If the option is set to \texttt{init}\slash \texttt{allinit}\slash \texttt{mininit}, the counter will be limited to \texttt{1}. This is useful for citations styles which use initials to disambiguate names but never print the full name in citations. If adding the initials is not sufficient to disambiguate the name, \cnt{uniquename} will also be set to \texttt{0} for that name. This feature needs to be enabled explicitly with the package option \opt{uniquename}. Note that the \cnt{uniquename} counter is local to \cmd{printnames} and that it is only set for the \bibfield{labelname} list and to the name list \bibfield{labelname} has been derived from (typically \bibfield{author} or \bibfield{editor}). Its value is zero in any other context, i.e., it must be evaluated in the name formatting directives handling name lists. See \secref{aut:cav:amb} for further details and practical examples.
\cntitem{uniquelist}
This counter refers to the \bibfield{labelname} list. It is set on a per-field basis. Its value indicates the number of names required to disambiguate the name list if automatic \cnt{maxnames}\slash \cnt{minnames} truncation would lead to ambiguous citations. For example, if there is one work by <Doe\slash Smith\slash Johnson> and another one by <Doe\slash Edwards\slash Williams>, setting \kvopt{maxnames}{1} would lead to <Doe et al.> in both cases. In this case, \cnt{uniquelist} would be set to \texttt{2} on the \bibfield{labelname} lists of both entries because at least the first two names are required to disambiguate them. Note that the \cnt{uniquelist} counter is local to \cmd{printnames} and that it is only set for the \bibfield{labelname} list and to the name list \bibfield{labelname} has been derived from (typically \bibfield{author} or \bibfield{editor}). Its value is zero in any other context. If available, the \cnt{uniquelist} value will be used automatically by \cmd{printnames} when processing the name list, \ie it will automatically override \cnt{maxnames}\slash \cnt{minnames}. This feature needs to be enabled explicitly with the package option \opt{uniquelist}. See \secref{aut:cav:amb} for further details and practical examples.
@@ -8613,7 +9428,7 @@ The section introduced miscellaneous commands and little helpers for use in bibl
\cmditem{newbibmacro}{name}[arguments][optional]{definition}
\cmditem*{newbibmacro*}{name}[arguments][optional]{definition}
-Defines a macro to be executed via \cmd{usebibmacro} later. The syntax of this command is very similar to \cmd{newcommand} except that \prm{name} may contain characters such as numbers and punctuation marks and does not start with a backslash. The optional argument \prm{arguments} is an integer specifying the number of arguments taken by the macro. If \prm{optional} is given, it specifies a default value for the first argument of the macro, which automatically becomes an optional argument. In contrast to \cmd{newcommand}, \cmd{newbibmacro} issues a warning message if the macro is already defined, and automatically falls back to \cmd{renewbibmacro}. As with \cmd{newcommand}, the regular variant of this command uses the \cmd{long} prefix in the definition while the starred one does not. If a macro has been declared to be long, it may take arguments containing \cmd{par} tokens. \cmd{newbibmacro} and \cmd{renewbibmacro} are provided for convenience. Style authors are free to use \cmd{newcommand} or \cmd{def} instead. However, note that most shared definitions found in \path{biblatex$_$.def} are defined with \cmd{newbibmacro}, hence they must be used and modified accordingly.
+Defines a macro to be executed via \cmd{usebibmacro} later. The syntax of this command is very similar to \cmd{newcommand} except that \prm{name} may contain characters such as numbers and punctuation marks and does not start with a backslash. The optional argument \prm{arguments} is an integer specifying the number of arguments taken by the macro. If \prm{optional} is given, it specifies a default value for the first argument of the macro, which automatically becomes an optional argument. In contrast to \cmd{newcommand}, \cmd{newbibmacro} issues a warning message if the macro is already defined, and automatically falls back to \cmd{renewbibmacro}. As with \cmd{newcommand}, the regular variant of this command uses the \cmd{long} prefix in the definition while the starred one does not. If a macro has been declared to be long, it may take arguments containing \cmd{par} tokens. \cmd{newbibmacro} and \cmd{renewbibmacro} are provided for convenience. Style authors are free to use \cmd{newcommand} or \cmd{def} instead. However, note that most shared definitions found in \path{biblatex.def} are defined with \cmd{newbibmacro}, hence they must be used and modified accordingly.
\cmditem{renewbibmacro}{name}[arguments][optional]{definition}
\cmditem*{renewbibmacro*}{name}[arguments][optional]{definition}
@@ -9832,6 +10647,7 @@ Other expressions frequently used in citations:
\item[langdanish] The language <Danish>.
\item[langdutch] The language <Dutch>.
\item[langenglish] The language <English>.
+\item[langestonian] The language <Estonian>.
\item[langfinnish] The language <Finnish>.
\item[langfrench] The language <French>.
\item[langgerman] The language <German>.
@@ -9860,6 +10676,7 @@ The following strings are intended for use in phrases like <translated from [the
\item[fromdanish] The expression <from [the] Danish>.
\item[fromdutch] The expression <from [the] Dutch>.
\item[fromenglish] The expression <from [the] English>.
+\item[fromestonian] The expression <from [the] Estonian>.
\item[fromfinnish] The expression <from [the] Finnish>.
\item[fromfrench] The expression <from [the] French>.
\item[fromgerman] The expression <from [the] German>.
@@ -9916,6 +10733,41 @@ Patent requests are handled in a similar way, using the string \texttt{patreq} a
\item[patrequs] The expression <U.S. patent request>.
\end{keymarglist}
+\paragraph{Dates and Times}
+\label{aut:lng:key:dt}
+
+Abbreviation strings for standard eras. Both secular and Christian variants
+are supported.
+
+\begin{keymarglist}
+\item[commonera] The era <CE>
+\item[beforecommonera] The era <BCE>
+\item[annodomini] The era <AD>
+\item[beforechrist] The era <BC>
+\end{keymarglist}
+
+Abbreviation strings for <circa> dates:
+
+\begin{keymarglist}
+\item[circa] The string <circa>
+\end{keymarglist}
+
+Abbreviation strings for seasons parsed from \acr{EDTF} dates:
+
+\begin{keymarglist}
+\item[spring] The string <spring>
+\item[summer] The string <summer>
+\item[autumn] The string <autumn>
+\item[winter] The string <winter>
+\end{keymarglist}
+
+Abbreviation strings for AM/PM:
+
+\begin{keymarglist}
+\item[am] The string <AM>
+\item[pm] The string <PM>
+\end{keymarglist}
+
\subsection{Formatting Commands}
\label{aut:fmt}
@@ -9924,7 +10776,7 @@ This section corresponds to \secref{use:fmt} in the user part of this manual. Bi
\subsubsection{User-definable Commands and Hooks}
\label{aut:fmt:fmt}
-This section corresponds to \secref{use:fmt:fmt} in the user part of the manual. The commands and hooks discussed here are meant to be redefined by users, but bibliography and citation styles may provide a default definition which is different from the package default. These commands are defined in \path{biblatex$_$.def}. Note that all commands starting with \cmd{mk\dots} take one mandatory argument.
+This section corresponds to \secref{use:fmt:fmt} in the user part of the manual. The commands and hooks discussed here are meant to be redefined by users, but bibliography and citation styles may provide a default definition which is different from the package default. These commands are defined in \path{biblatex.def}. Note that all commands starting with \cmd{mk\dots} take one mandatory argument.
\begin{ltxsyntax}
@@ -10061,7 +10913,7 @@ Formatting hook for the family name, to be used in all formatting directives for
Similar to \cmd{mkbibnamefamily}, but intended for the given name.
\cmditem{mkbibnameprefix}{text}
-Similar to \cmd{mkbibnamelast}, but intended for the name prefix.
+Similar to \cmd{mkbibnamefamily}, but intended for the name prefix.
\cmditem{mkbibnamesuffix}{text}
Similar to \cmd{mkbibnamefamily}, but intended for the name suffix.
@@ -10083,11 +10935,19 @@ This section corresponds to \secref{use:fmt:lng} in the user part of the manual.
\csitem{bibrangedash}
-The language specific range dash.
+The language specific range dash. Defaults to \cmd{textendash}.
+
+\csitem{bibrangessep}
+
+The language specific separator to be used between multiple ranges. Defaults to a comma followed by a space.
-\csitem{bibdatedash}
+\csitem{bibdatesep}
-The language specific date range dash.
+The language specific separator used between date components in terse date formats. Defaults to \cmd{hyphen}.
+
+\csitem{bibdaterangesep}
+
+The language specific separator to be used for date ranges. Defaults to \cmd{textendash} for all date formats apart from \opt{ymd} which defaults to a \cmd{slash}. The date format option \opt{edtf} is hard-coded to \cmd{slash} since this is a standards compliant format.
\csitem{mkbibdatelong}
@@ -10097,6 +10957,39 @@ Takes the names of three field as arguments which correspond to three date compo
Similar to \cmd{mkbibdatelong} but using the language specific short date format.
+\csitem{mkbibtimezone}
+
+Modifies a timezone string passed in as the only argument. By default this changes <Z> to the value of \cmd{bibtimezone}.
+
+\csitem{bibdateuncertain}
+
+The language specific marker to be used after uncertain dates when the global option \opt{dateuncertain} is enabled. Defaults to a space followed by a question mark.
+
+
+\csitem{bibdateeraprefix}
+
+The language specific marker which is printed as a prefix to beginning BCE/BC dates in a date range when the option \opt{dateera} is set to <astronomical>. Defaults to \cmd{textminus}.
+
+\csitem{bibdateeraendprefix}
+
+The language specific marker which is printed as a prefix to end BCE/BC dates in a date range when the option \opt{dateera} is set to <astronomical>. Defaults to a thin space followed by \cmd{bibdateeraprefix} when \cmd{bibdaterangesep} is set to a dash and to \cmd{bibdateeraprefix} otherwise. This is a separate macro so that you may add extra space before a negative date marker which, for example follows a dash date range marker as this can look a little odd.
+
+\csitem{bibtimesep}
+
+The language specific marker which separates time components. Default to a colon.
+
+\csitem{bibutctimezone}
+
+The language specific string printed for the UTC timezone. Defaults to <Z>.
+
+\csitem{bibtimezonesep}
+
+The language specific marker which separates an optional time zone component from a time. Empty by default.
+
+\csitem{bibdatetimesep}
+
+The language specific separator printed between date and time components when printing time components along with date components (see the \opt{$<$datetype$>$dateusetime} option in \secref{use:opt:pre:gen}). Defaults to a space for non-EDTF output formats, and 'T' for EDTF output format.
+
\csitem{finalandcomma}
Prints the comma to be inserted before the final <and> in an enumeration, if applicable in the respective language.
@@ -10263,15 +11156,39 @@ A generic command which prints its argument as superscripted text. This is a sim
This command takes an integer argument and prints it as a month name. Even though the output of this command is language specific, its definition is not, hence it is normally not redefined in localisation modules.
-\cmditem{mkdatezeros}{integer}
+\cmditem{mkbibseason}{string}
+
+This command takes a season localisation string and prints the version of the string corresponding to the setting of the \opt{dateabbrev} package option. Even though the output of this command is language specific, its definition is not, hence it is normally not redefined in localisation modules.
+
+\cmditem{mkyearzeros}{integer}
+
+This command strips leading zeros from a year or enforces them, depending on the \opt{datezeros} package option (\secref{use:opt:pre:gen}). It is intended for use in the definition of date formatting macros.
+
+\cmditem{mkmonthzeros}{integer}
+
+This command strips leading zeros from a month or enforces them, depending on the \opt{datezeros} package option (\secref{use:opt:pre:gen}). It is intended for use in the definition of date formatting macros.
+
+\cmditem{mkdayzeros}{integer}
-This command strips leading zeros from a number or preserves them, depending on the \opt{datezeros} package option (\secref{use:opt:pre:gen}). It is intended for use in the definition of date formatting macros.
+This command strips leading zeros from a day or enforces them, depending on the \opt{datezeros} package option (\secref{use:opt:pre:gen}). It is intended for use in the definition of date formatting macros.
+
+\cmditem{mktimezeros}{integer}
+
+This command strips leading zeros from a number or preserves them, depending on the \opt{timezeros} package option (\secref{use:opt:pre:gen}). It is intended for use in the definition of time formatting macros.
+
+\cmditem{forcezerosy}{integer}
+
+This command adds zeros to a year (or any number supposed to be 4-digits). It is intended for date formatting and ordinals.
+
+\cmditem{forcezerosmdt}{integer}
+
+This command adds zeros to a month, day or time part (or any number supposed to be 2-digits). It is intended for date/time formatting and ordinals.
\cmditem{stripzeros}{integer}
This command strips leading zeros from a number. It is intended for date formatting and ordinals.
-\optitem{<labelfield>width}
+\optitem{$<$labelfield$>$width}
For every field marked as a <Label field> in the data model, a formatting directive is created as per \texttt{shorthandwidth} above. Since \bibfield{shorthand} is so marked in the default data model, this functionality is a superset of that described for \texttt{shorthandwidth}.
@@ -10307,21 +11224,25 @@ A special formatting directive which controls the format of the volume portion i
A special formatting directive which controls the format of \cmd{printdate} (\secref{aut:bib:dat}). Note that the date format (long/short etc.) is controlled by the package option \opt{date} from \secref{use:opt:pre:gen}. This formatting directive only controls additional formatting such as fonts etc.
-\optitem{datelabel}
+\optitem{labeldate}
+
+As \texttt{date} but controls the format of \cmd{printlabeldate}.
-Similar to \texttt{date} but controls the format of \cmd{printdatelabel}.
+\optitem{$<$datetype$>$date}
-\optitem{urldate}
+As \texttt{date} but controls the format of \cmd{print$<$datetype$>$date}.
-Similar to \texttt{date} but controls the format of \cmd{printurldate}.
+\optitem{time}
-\optitem{origdate}
+A special formatting directive which controls the format of \cmd{printtime} (\secref{aut:bib:dat}). Note that the time format (24h/12h etc.) is controlled by the package option \opt{time} from \secref{use:opt:pre:gen}. This formatting directive only controls additional formatting such as fonts etc.
-Similar to \texttt{date} but controls the format of \cmd{printorigdate}.
+\optitem{labeltime}
-\optitem{eventdate}
+As \texttt{time} but controls the format of \cmd{printlabeltime}.
-Similar to \texttt{date} but controls the format of \cmd{printeventdate}.
+\optitem{$<$datetype$>$time}
+
+As \texttt{time} but controls the format of \cmd{print$<$datetype$>$time}.
\end{ltxsyntax}
@@ -10332,9 +11253,9 @@ The length registers and counters discussed here are used by \biblatex to pass i
\begin{ltxsyntax}
-\lenitem{<labelfield>width}
+\lenitem{$<$labelfield$>$width}
-For every field marked as a <Label field> in the data model, a length register is created as per \texttt{shorthandwidth} above. Since \bibfield{shorthand} is so marked in the default data model, this functionality is a superset of that described for \texttt{shorthandwidth}.
+For every field marked as a <label> field in the data model, a length register is created as per \texttt{shorthandwidth} above. Since \bibfield{shorthand} is so marked in the default data model, this functionality is a superset of that described for \texttt{shorthandwidth}.
\lenitem{labelnumberwidth}
@@ -10604,7 +11525,7 @@ In other words, adding support for additional resources is as easy as defining a
\subsubsection{External Abstracts and Annotations}
\label{aut:cav:prf}
-External abstracts and annotations have been discussed in \secref{use:use:prf}. This section provides some more background for style authors. The standard styles use the following macros (from \path{biblatex$_$.def}) to handle abstracts and annotations:
+External abstracts and annotations have been discussed in \secref{use:use:prf}. This section provides some more background for style authors. The standard styles use the following macros (from \path{biblatex.def}) to handle abstracts and annotations:
\begin{ltxexample}
\newbibmacro*{annotation}{%
@@ -10627,6 +11548,44 @@ If the \bibfield{abstract}\slash \bibfield{annotation} field is undefined, the a
The \opt{uniquename} and \opt{uniquelist} options introduced in \secref{use:opt:pre:int} support various modes of operation. This section explains the differences between these modes by way of example. The \opt{uniquename} option disambiguates individual names in the \bibfield{labelname} list. The \opt{uniquelist} option disambiguates the \bibfield{labelname} list if it has become ambiguous after \opt{maxnames}\slash \opt{minnames} truncation. You can use either option stand-alone or combine both.
+Name disambiguation works by taking a <base> which is composed of one or more nameparts and then determining what needs to be added, if anything, to this <base> to make the name unique in the current refsection. Name disambiguation is controlled by the uniquename template declared with the following command:
+
+\begin{ltxsyntax}
+
+\cmditem{DeclareUniquenameTemplate}{specification}
+
+The \prm{specification} is a list of \cmd{namepart} commands which define the nameparts to use in determining the uniquename information
+
+\cmditem{namepart}[options]{namepart}
+
+\prm{namepart} is one of the datamodel nameparts defined with the \cmd{DeclareDatamodelConstant} command (see \secref{aut:bbx:drv}). The \opt{options} are:
+
+\begin{optionlist*}
+
+\boolitem[false]{use}
+
+Only use the \prm{namepart} in constructing the uniquename information if there is a corresponding option \opt{use<namepart>} and that option is true.
+
+\boolitem[false]{base}
+
+The \prm{namepart} is part of the <base> which is the main piece of namepart(s) information which is being disambiguated by uniqueness information.
+
+\end{optionlist*}
+
+\end{ltxsyntax}
+%
+The default uniquename template is:
+
+\begin{ltxexample}
+\DeclareUniquenameTemplate{
+ \namepart[use=true, base=true]{prefix}
+ \namepart[base=true]{family}
+ \namepart{given}
+}
+\end{ltxexample}
+%
+This means that the <base> to be disambiguated consists of the <family> namepart, along with any prefix, if the \opt{useprefix} option is true. The disambiguation is performed by adding aspects of any non <base> nameparts in the specification, here just the <given> namepart.
+
\paragraph{Individual Names (\opt{uniquename})}
Let's start off with some \opt{uniquename} examples. Consider the following data:
@@ -10647,7 +11606,7 @@ Smith 2008a
Smith 2008b
\end{lstlisting}
%
-Since the last names are ambiguous and all works have been published in the same year, an extra letter is appended to the year to disambiguate the citations. Many style guides, however, mandate that the extra letter be used to disambiguate works by the same authors only, not works by different authors with the same last name. In order to disambiguate the author's last name, you are expected to add additional parts of the name, either as initials or in full. This requirement is addressed by the \opt{uniquename} option. Here are the same citations with \kvopt{uniquename}{init}:
+Since the family names are ambiguous and all works have been published in the same year, an extra letter is appended to the year to disambiguate the citations. Many style guides, however, mandate that the extra letter be used to disambiguate works by the same authors only, not works by different authors with the same family name. In order to disambiguate the author's family name, you are expected to add additional parts of the name, either as initials or in full. This requirement is addressed by the \opt{uniquename} option. Here are the same citations with \kvopt{uniquename}{init}:
\begin{lstlisting}{}
J. Doe 2008
@@ -10724,7 +11683,7 @@ Smith and Edwards
Smith and Johnson
\end{lstlisting}
%
-The <Smiths> are not disambiguated because the visible name lists are not ambiguous and the \opt{mininit/minfull} options serve to disambiguate names occurring in identical last name lists only. Another way of looking at this is that they globally disambiguate last name lists. When it comes to ambiguous lists, note that a truncated list is considered to be distinct from an untruncated one even if the visible names are identical. For example, consider the following data:
+The <Smiths> are not disambiguated because the visible name lists are not ambiguous and the \opt{mininit/minfull} options serve to disambiguate names occurring in identical last name lists only. Another way of looking at this is that they globally disambiguate family name lists. When it comes to ambiguous lists, note that a truncated list is considered to be distinct from an untruncated one even if the visible names are identical. For example, consider the following data:
\begin{lstlisting}{}
John Doe/William Jones
@@ -11220,7 +12179,7 @@ In order to minimize the risk of name clashes, \latex packages typically prefix
\section{Default Driver Source Mappings}
\label{apx:maps}
-These are the driver default source mappings. For drivers other than \opt{bibtex} and \opt{ris}, they are highly experimental and subject to change (because the driver datatype itself is unstable or not well suited to bibliographic data).
+These are the driver default source mappings.
\subsection{\opt{bibtex}}
The \opt{bibtex} driver is of course the most comprehensive and mature of the \biblatex/\biber supported data formats. These source mapping defaults are how the aliases from sections \secref{bib:typ:als} and \secref{bib:fld:als} are implemented.
@@ -11257,72 +12216,6 @@ The \opt{bibtex} driver is of course the most comprehensive and mature of the \b
}
\end{ltxexample}
-\subsection{\opt{ris}}
-
-The \opt{ris} driver reflects the fact that \opt{ris} itself is a very simple and stable format. It is in fact so simple, it's hardly of any use for most \biblatex users. Again, here more as a proof of concept example.
-
-\begin{ltxexample}
-\DeclareDriverSourcemap[datatype=ris]{
- \map{
- \step[typesource=ART, typetarget=artwork]
- \step[typesource=BILL, typetarget=jurisdiction]
- \step[typesource=BOOK, typetarget=book]
- \step[typesource=CHAP, typetarget=inbook]
- \step[typesource=COMP, typetarget=software]
- \step[typesource=CONF, typetarget=proceedings]
- \step[typesource=GEN, typetarget=misc]
- \step[typesource=JFULL, typetarget=article]
- \step[typesource=JOUR, typetarget=article]
- \step[typesource=MGZN, typetarget=misc]
- \step[typesource=MPCT, typetarget=movie]
- \step[typesource=NEWS, typetarget=misc]
- \step[typesource=PAMP, typetarget=misc]
- \step[typesource=PAT, typetarget=patent]
- \step[typesource=PCOMM, typetarget=misc]
- \step[typesource=RPRT, typetarget=report]
- \step[typesource=SER, typetarget=misc]
- \step[typesource=SLIDE, typetarget=misc]
- \step[typesource=SOUND, typetarget=audio]
- \step[typesource=STAT, typetarget=legal]
- \step[typesource=THES, typetarget=thesis]
- \step[typesource=UNBILL, typetarget=jurisdiction]
- \step[typesource=UNPB, typetarget=unpublished]
- }
- \map{
- \step[fieldsource=Y1, fieldtarget=date]
- \step[fieldsource=PY, fieldtarget=date]
- \step[fieldsource=Y2, fieldtarget=eventdate]
- \step[fieldsource=A1, fieldtarget=author]
- \step[fieldsource=AU, fieldtarget=author]
- \step[fieldsource=A2, fieldtarget=editor]
- \step[fieldsource=A3, fieldtarget=editor]
- \step[fieldsource=ED, fieldtarget=editor]
- \step[fieldsource=SPEP, fieldtarget=pages]
- \step[fieldsource=N1, fieldtarget=note]
- \step[fieldsource=N2, fieldtarget=abstract]
- \step[fieldsource=AB, fieldtarget=abstract]
- \step[fieldsource=JO, fieldtarget=journaltitle]
- \step[fieldsource=JF, fieldtarget=journaltitle]
- \step[fieldsource=JA, fieldtarget=shortjournal]
- \step[fieldsource=VL, fieldtarget=volume]
- \step[fieldsource=IS, fieldtarget=issue]
- \step[fieldsource=CP, fieldtarget=issue]
- \step[fieldsource=CY, fieldtarget=location]
- \step[fieldsource=SN, fieldtarget=isbn]
- \step[fieldsource=PB, fieldtarget=publisher]
- \step[fieldsource=KW, fieldtarget=keywords]
- \step[fieldsource=TI, fieldtarget=title]
- \step[fieldsource=U1, fieldtarget=usera]
- \step[fieldsource=U2, fieldtarget=userb]
- \step[fieldsource=U3, fieldtarget=userc]
- \step[fieldsource=U4, fieldtarget=userd]
- \step[fieldsource=U5, fieldtarget=usere]
- \step[fieldsource=UR, fieldtarget=url]
- \step[fieldsource=L1, fieldtarget=file]
- }
-}
-\end{ltxexample}
-
\section{Default Inheritance Setup}
\label{apx:ref}
@@ -11445,16 +12338,16 @@ nty & presort\alt mm &
\new sortname\alt author\alt editor\alt translator\alt sorttitle\alt title &
\new sorttitle\alt title &
\new sortyear\alt year &
- \new volume\alt 0000 \\
+ \new volume\\
nyt & presort\alt mm &
\new sortname\alt author\alt editor\alt translator\alt sorttitle\alt title &
\new sortyear\alt year &
\new sorttitle\alt title &
- \new volume\alt 0000 \\
+ \new volume\\
nyvt & presort\alt mm &
\new sortname\alt author\alt editor\alt translator\alt sorttitle\alt title &
\new sortyear\alt year &
- \new volume\alt 0000 &
+ \new volume &
\new sorttitle\alt title \\
\textrm{all} & presort\alt mm &
\new sortkey \\
@@ -11487,12 +12380,12 @@ anyt & presort\alt mm &
\new sortname\alt author\alt editor\alt translator\alt sorttitle\alt title &
\new sortyear\alt year &
\new sorttitle\alt title &
- \new volume\alt 0000 \\
+ \new volume\\
anyvt & presort\alt mm &
\new labelalpha &
\new sortname\alt author\alt editor\alt translator\alt sorttitle\alt title &
\new sortyear\alt year &
- \new volume\alt 0000 &
+ \new volume &
\new sorttitle\alt title \\
\textrm{all} & presort\alt mm &
\new labelalpha &
@@ -11776,6 +12669,8 @@ The following table provides an overview of the scope (global\slash per-type\sla
\endfoot
abbreviate &\+&\+&\_&\_\\
alldates &\+&\+&\_&\_\\
+alldatesusetime &\+&\+&\_&\_\\
+alltimes &\+&\+&\_&\_\\
arxiv &\+&\+&\_&\_\\
autocite &\+&\+&\_&\_\\
autopunct &\+&\+&\_&\_\\
@@ -11796,25 +12691,36 @@ clearlang &\+&\+&\_&\_\\
datamodel &\+&\_&\_&\_\\
dataonly &\_&\_&\+&\+\\
date &\+&\+&\_&\_\\
+labeldate &\+&\+&\_&\_\\
+$<$datetype$>$date &\+&\+&\_&\_\\
dateabbrev &\+&\+&\_&\_\\
+datecirca &\+&\+&\_&\_\\
+dateera &\+&\+&\_&\_\\
+dateerauto &\+&\+&\_&\_\\
+dateuncertain &\+&\+&\_&\_\\
datezeros &\+&\+&\_&\_\\
defernumbers &\+&\+&\_&\_\\
doi &\+&\+&\_&\_\\ % style
eprint &\+&\+&\_&\_\\ % style
-eventdate &\+&\+&\_&\_\\
-giveninits &\+&\+&\_&\_\\
+$<$namepart$>$inits &\+&\+&\_&\_\\
+gregorianstart &\+&\+&\_&\_\\
hyperref &\+&\+&\_&\_\\
ibidtracker &\+&\+&\_&\_\\
idemtracker &\+&\+&\_&\_\\
indexing &\+&\+&\+&\+\\
isbn &\+&\+&\_&\_\\ % style
+julian &\+&\+&\_&\_\\
labelalpha &\+&\+&\+&\_\\
labelnamefield &\_&\_&\_&\+\\
labelnumber &\+&\+&\+&\_\\
labeltitle &\+&\+&\+&\_\\
labeltitlefield &\_&\_&\_&\+\\
labeltitleyear &\+&\+&\+&\_\\
-labeldate &\+&\+&\+&\_\\
+labeldateparts &\+&\+&\+&\_\\
+labeltime &\+&\+&\_&\_\\
+labeldateusetime &\+&\+&\_&\_\\
+$<$datetype$>$time &\+&\+&\_&\_\\
+$<$datetype$>$dateusetime &\+&\+&\_&\_\\
language &\+&\+&\_&\_\\
loadfiles &\+&\+&\_&\_\\
loccittracker &\+&\+&\_&\_\\
@@ -11837,21 +12743,19 @@ noinherit &\_&\_&\_&\+\\
notetype &\+&\+&\_&\_\\
opcittracker &\+&\+&\_&\_\\
openbib &\+&\+&\_&\_\\
-origdate &\+&\+&\_&\_\\
pagetracker &\+&\+&\_&\_\\
parentracker &\+&\+&\_&\_\\
punctfont &\+&\+&\_&\_\\
refsection &\+&\+&\_&\_\\
refsegment &\+&\+&\_&\_\\
safeinputenc &\+&\+&\_&\_\\
+seconds &\+&\+&\_&\_\\
singletitle &\+&\+&\+&\_\\
skipbib &\_&\_&\+&\+\\
skipbiblist &\_&\_&\+&\+\\
skiplab &\_&\_&\+&\+\\
-skiplos &\_&\_&\+&\+\\
sortcase &\+&\+&\_&\_\\
sortcites &\+&\+&\_&\_\\
-sortgiveninits &\+&\+&\_&\_\\
sorting &\+&\+&\_&\_\\
sortnamekeyscheme &\_&\_&\_&\+\\
sortlocale &\+&\+&\_&\_\\
@@ -11860,10 +12764,14 @@ sortupper &\+&\+&\_&\_\\
style &\+&\_&\_&\_\\
terseinits &\+&\+&\_&\_\\
texencoding &\+&\+&\_&\_\\
+timezeros &\+&\+&\_&\_\\
+timezones &\+&\+&\_&\_\\
uniquelist &\+&\+&\+&\+\\
uniquename &\+&\+&\+&\+\\
uniquetitle &\+&\+&\+&\_\\
-urldate &\+&\+&\_&\_\\
+uniquebaretitle &\+&\+&\+&\_\\
+uniquework &\+&\+&\+&\_\\
+uniqueprimaryauthor &\+&\+&\_&\_\\
url &\+&\+&\_&\_\\
useprefix &\+&\+&\+&\+\\
use$<$name$>$ &\+&\+&\+&\+\\
@@ -11873,10 +12781,40 @@ use$<$name$>$ &\+&\+&\+&\+\\
\section{Revision History}
\label{apx:log}
-This revision history is a list of changes relevant to users of this package. Changes of a more technical nature which do not affect the user interface or the behavior of the package are not included in the list. More technical details are to be found in the CHANGES file. The numbers on the right indicate the relevant section of this manual.
+This revision history is a list of changes relevant to users of this package. Changes of a more technical nature which do not affect the user interface or the behavior of the package are not included in the list. More technical details are to be found in the \file{CHANGES.org} file. The numbers on the right indicate the relevant section of this manual.
\begin{changelog}
+\begin{release}{3.5}{2016-09-10}
+\item Added \opt{uniquebaretitle} test\see{aut:aux:tst}
+\item Documented \cmd{labelnamesource} and \cmd{labeltitlesource}\see{aut:bbx:fld:gen}
+\item Added \cmd{bibdaterangesep}\see{use:fmt:lng}
+\item Added \opt{refsection} option to \cmd{DeclareSourcemap}\see{aut:ctm:map}
+\item Added \opt{suppress} option to inheritance specifications\see{aut:ctm:ref}
+\item Added \cmd{ifuniquework}\see{aut:aux:tst}
+\item Changed \cmd{DeclareStyleSourcemap} so that it can be used multiple times\see{aut:ctm:map}
+\item Added \cmd{forcezerosy} and \cmd{forcezerosmdt}\see{aut:fmt:ich}
+\item Changed \cmd{mkdatezeros} to \cmd{mkyearzeros}, \cmd{mkmonthszeros}
+ and \cmd{mkdayzeros}\see{aut:fmt:ich}
+\item Added \bibfield{namehash} and \bibfield{fullhash} for all name list fields\see{aut:bbx:fld:gen}
+\item Generalised \opt{giveninits} option to all nameparts\see{use:opt:pre:int}
+\item Added \opt{inits} option to \cmd{DeclareSortingNamekeyScheme}\see{aut:ctm:srt}
+\item Added \cmd{DeclareLabelalphaNameTemplate}\see{aut:ctm:lab}
+\item Added full \acr{EDTF} Levels 0 and 1 compliance for parsing and printing times\see{bib:use:dat}
+\item Changed dates to be fully \acr{EDTF} Levels 0 and 1 compliant. Associated tests and localisation strings\see{bib:use:dat}
+\item Added \opt{timezeros}\see{use:opt:pre:gen}
+\item Added \opt{mktimezeros}\see{aut:fmt:ich}
+\item Changed \opt{iso8601} to \opt{edtf}\see{use:opt:pre:gen}
+\item Added \cmd{DeclareUniquenameTemplate}\see{aut:cav:amb}
+\item Removed experimental RIS support
+\item \opt{sortnamekeyscheme} and \opt{useprefix} can be now be set per-namelist and per-name for
+ \bibtex datasources\see{aut:ctm:srt}
+\item Added \cmd{DeclareDelimcontextAlias}\see{use:fmt:csd}
+\item Added Estonian localisation (Benson Muite)
+\item Reference contexts may now be named\see{use:bib:context}
+\item Added \opt{notfield} step in Sourcemaps\see{aut:ctm:map}
+\end{release}
+
\begin{release}{3.4}{2016-05-10}
\item Added \cmd{ifcrossrefsource} and \cmd{ifxrefsource}\see{aut:aux:tst}
\item Added data annotation feature\see{use:annote}
diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/03-localization-keys-biber.pdf b/Master/texmf-dist/doc/latex/biblatex/examples/03-localization-keys-biber.pdf
index c4000e0fbd1..34037a92b69 100644
--- a/Master/texmf-dist/doc/latex/biblatex/examples/03-localization-keys-biber.pdf
+++ b/Master/texmf-dist/doc/latex/biblatex/examples/03-localization-keys-biber.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/03-localization-keys-bibtex.pdf b/Master/texmf-dist/doc/latex/biblatex/examples/03-localization-keys-bibtex.pdf
index bdbe1bfe7c6..8d0bba4a7c3 100644
--- a/Master/texmf-dist/doc/latex/biblatex/examples/03-localization-keys-bibtex.pdf
+++ b/Master/texmf-dist/doc/latex/biblatex/examples/03-localization-keys-bibtex.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/03-localization-keys.tex b/Master/texmf-dist/doc/latex/biblatex/examples/03-localization-keys.tex
index 59277ad0b75..91df87addfa 100644
--- a/Master/texmf-dist/doc/latex/biblatex/examples/03-localization-keys.tex
+++ b/Master/texmf-dist/doc/latex/biblatex/examples/03-localization-keys.tex
@@ -15,6 +15,7 @@
%\usepackage[danish]{babel}
%\usepackage[dutch]{babel}
\usepackage[english]{babel}
+%\usepackage[estonian]{babel}
%\usepackage[finnish]{babel}
%\usepackage[french]{babel}
%\usepackage[german]{babel}
@@ -464,6 +465,21 @@ The following keys are typically used in the \bibfield{type} field of \bibtype{t
\keyitem{audiocd} The term <audio \textsc{cd}>.
\end{keylist}
+\subsection*{Dates and Times}
+\begin{keylist}
+\keyitem{commonera} The term used to denote the secular era modern term \eg\ <CE>.
+\keyitem{beforecommonera} The term used to denote the secular era pre-modern term \eg\ <BCE>.
+\keyitem{annodomini} The term used to denote the christian era modern term \eg\ <AD>.
+\keyitem{beforechrist} The term used to denote the christian era pre-modern term \eg\ <BC>.
+\keyitem{circa} The string prefix used to denote approximate dates \eg\ <circa>.
+\keyitem{spring} The string <spring>.
+\keyitem{summer} The string <summer>.
+\keyitem{autumn} The string <autumn>.
+\keyitem{winter} The string <winter>.
+\keyitem{am} The string <AM>.
+\keyitem{pm} The string <PM>.
+\end{keylist}
+
\subsection*{Miscellaneous}
\begin{keylist}
diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/13-references-by-keyword-biber.pdf b/Master/texmf-dist/doc/latex/biblatex/examples/13-references-by-keyword-biber.pdf
index d1f6c023b93..45d1e56a5d6 100644
--- a/Master/texmf-dist/doc/latex/biblatex/examples/13-references-by-keyword-biber.pdf
+++ b/Master/texmf-dist/doc/latex/biblatex/examples/13-references-by-keyword-biber.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/13-references-by-keyword-bibtex.pdf b/Master/texmf-dist/doc/latex/biblatex/examples/13-references-by-keyword-bibtex.pdf
index b58647a6727..dd4c27b9029 100644
--- a/Master/texmf-dist/doc/latex/biblatex/examples/13-references-by-keyword-bibtex.pdf
+++ b/Master/texmf-dist/doc/latex/biblatex/examples/13-references-by-keyword-bibtex.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/14-references-by-category-biber.pdf b/Master/texmf-dist/doc/latex/biblatex/examples/14-references-by-category-biber.pdf
index 0204a8d7558..2189b996412 100644
--- a/Master/texmf-dist/doc/latex/biblatex/examples/14-references-by-category-biber.pdf
+++ b/Master/texmf-dist/doc/latex/biblatex/examples/14-references-by-category-biber.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/14-references-by-category-bibtex.pdf b/Master/texmf-dist/doc/latex/biblatex/examples/14-references-by-category-bibtex.pdf
index ae371ac6209..00896eeb276 100644
--- a/Master/texmf-dist/doc/latex/biblatex/examples/14-references-by-category-bibtex.pdf
+++ b/Master/texmf-dist/doc/latex/biblatex/examples/14-references-by-category-bibtex.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/19-alphabetic-prefixed-biber.pdf b/Master/texmf-dist/doc/latex/biblatex/examples/19-alphabetic-prefixed-biber.pdf
index d7377a694d4..d4862046f0e 100644
--- a/Master/texmf-dist/doc/latex/biblatex/examples/19-alphabetic-prefixed-biber.pdf
+++ b/Master/texmf-dist/doc/latex/biblatex/examples/19-alphabetic-prefixed-biber.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/19-alphabetic-prefixed.tex b/Master/texmf-dist/doc/latex/biblatex/examples/19-alphabetic-prefixed.tex
index f670a33eb43..f08ecea236b 100644
--- a/Master/texmf-dist/doc/latex/biblatex/examples/19-alphabetic-prefixed.tex
+++ b/Master/texmf-dist/doc/latex/biblatex/examples/19-alphabetic-prefixed.tex
@@ -6,7 +6,7 @@
\usepackage[utf8]{inputenc}
\usepackage[american]{babel}
\usepackage{csquotes}
-\usepackage[style=alphabetic,backend=biber]{biblatex}
+\usepackage[style=alphabetic,defernumbers,backend=biber]{biblatex}
\usepackage{hyperref}
\usepackage{nameref}
\addbibresource{biblatex-examples.bib}
diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/82-style-debug-biber.pdf b/Master/texmf-dist/doc/latex/biblatex/examples/82-style-debug-biber.pdf
index 2efab5faa01..159ed893dd6 100644
--- a/Master/texmf-dist/doc/latex/biblatex/examples/82-style-debug-biber.pdf
+++ b/Master/texmf-dist/doc/latex/biblatex/examples/82-style-debug-biber.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/91-sorting-schemes-biber.pdf b/Master/texmf-dist/doc/latex/biblatex/examples/91-sorting-schemes-biber.pdf
index 71ef1b05106..900c47837dd 100644
--- a/Master/texmf-dist/doc/latex/biblatex/examples/91-sorting-schemes-biber.pdf
+++ b/Master/texmf-dist/doc/latex/biblatex/examples/91-sorting-schemes-biber.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/93-nameparts.tex b/Master/texmf-dist/doc/latex/biblatex/examples/93-nameparts.tex
index 9f07e567bd6..46b337c3dd1 100644
--- a/Master/texmf-dist/doc/latex/biblatex/examples/93-nameparts.tex
+++ b/Master/texmf-dist/doc/latex/biblatex/examples/93-nameparts.tex
@@ -4,10 +4,18 @@
\setsansfont{Arial}
\setmonofont{Courier New}
\usepackage[russian]{babel}
-\usepackage[russian]{babel}
\usepackage{csquotes}
+\usepackage{filecontents}
+\begin{filecontents}{\jobname.bib}
+@book{tolstoy,
+ author = {given=Лев, patronymic=Николаевич, family=Толстой},
+ title = {Война и мир},
+ date = {1877}
+}
+\end{filecontents}
\usepackage[style=authoryear,datamodel=93-nameparts,backend=biber]{biblatex}
\addbibresource[datatype=biblatexml]{biblatex-examples.bltxml}
+\addbibresource{\jobname.bib}
% A format using the new name part
\DeclareNameFormat{author}{%
diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/94-labelprefix.tex b/Master/texmf-dist/doc/latex/biblatex/examples/94-labelprefix.tex
index 81f244bc1eb..666c5f5f512 100644
--- a/Master/texmf-dist/doc/latex/biblatex/examples/94-labelprefix.tex
+++ b/Master/texmf-dist/doc/latex/biblatex/examples/94-labelprefix.tex
@@ -13,6 +13,10 @@
\assignrefcontextkeyws*[sorting=none,labelprefix=S]{secondary}
\defbibfilter{cats}{category=cat1 or category=cat2}
+\DeclareRefcontext{rcone}{labelprefix=R}
+\DeclareRefcontext{rctwo}{labelprefix=T}
+\DeclareRefcontext{rcthree}{sorting=nty}
+
\setlength{\parindent}{0pt}
\newcommand{\cmd}[1]{\texttt{\textbackslash #1}}
\begin{document}
@@ -40,16 +44,19 @@ These are not publications by Aristotle:
This is another publication by Aristotle:
\cite{aristotle:physics} % comes from refcontext=none/global/R
-\begin{refcontext}[labelprefix=R]
+\begin{refcontext}{rcone}
% refcontext=none/global/R
\printbibliography[keyword=primary, title={Aristotle Publications}]
% aristotle:anima and aristotle:physics default refcontext is this one
\end{refcontext}
-\begin{refcontext}[labelprefix=S]
+% Alternative style of specifying refcontext
+% Note here that the optional argument to \newrefcontext overrides the
+% value set with the named refcontext
+\newrefcontext[labelprefix=S]{rctwo}
% refcontext=none/global/S
-\printbibliography[ notkeyword=primary, title={Other publications}]
-\end{refcontext}
+\printbibliography[notkeyword=primary, title={Other publications}]
+\endrefcontext
\begin{refcontext}[labelprefix=Q]
% refcontext=none/global/Q
@@ -69,7 +76,7 @@ This is another publication by Aristotle:
\section*{New Refsection}
\newrefsection
\cite{worman} % comes from default refcontext=nty/global/T
-\begin{refcontext}[sorting=nty, labelprefix=T]
+\begin{refcontext}[labelprefix=T]{rcone}
% refcontext=nty/global//
\printbibliography[resetnumbers, notkeyword=primary, title={More Other publications}]
\end{refcontext}
diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/96-dates-biber.pdf b/Master/texmf-dist/doc/latex/biblatex/examples/96-dates-biber.pdf
new file mode 100644
index 00000000000..51e3033bdb5
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/biblatex/examples/96-dates-biber.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/96-dates.tex b/Master/texmf-dist/doc/latex/biblatex/examples/96-dates.tex
new file mode 100644
index 00000000000..de43e3fe244
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/biblatex/examples/96-dates.tex
@@ -0,0 +1,189 @@
+%
+% This file demonstrates various date formats and tests which apply to them
+% for output
+%
+\documentclass[a4paper]{article}
+\usepackage{fontspec}
+\usepackage[american]{babel}
+\usepackage{csquotes}
+\usepackage{filecontents}
+\begin{filecontents}{\jobname.bib}
+@misc{date1,
+ note = {Years with implicit era},
+ author = {Author1},
+ date = {-0099-07-11/-0043-03-13}, % Negative ETDF date range
+ origdate = {-0477}, % Negative EDTF date
+ eventdate = {0477/0566}, % Forced CE era due to dateeraauto setting
+ urldate = {-0020/0100}, % Cross BCE/CE range
+}
+@misc{date2,
+ note = {Dates with circa and uncertain markers},
+ author = {Author2},
+ date = {1723?~}, % year with ETDF approximate (circa) and uncertainty markers
+ origdate = {1934-02~}, % year and month with circa marker
+ eventdate = {1976?}, % year with EDTF uncertainty marker
+ urldate = {1922~}, % year with ETDF approximate (circa) marker
+}
+@misc{date3,
+ note = {Date ranges},
+ author = {Author3},
+ date = {1934~/1936~}, % year range with circa markers
+ origdate = {1723~/}, % open-ended year range with circa marker
+ eventdate = {1976?/}, % open-ended year range with uncertainty marker
+ urldate = {1976/open} % open-ended year range with EDTF open marker
+}
+@misc{date4,
+ note = {Times},
+ author = {Author4},
+ date = {2004-04-25T14:34:00/2004-04-05T14:37:06}, % Date with time, floating timezone
+ origdate = {2004-04-25T14:34:00Z/2004-04-05T14:34:05Z}, % Date with time, UTC timezone
+ eventdate = {2004-04-25T14:34:00+05:00/2004-04-05T15:34:00+05:00}, % Date with time, explicit timezone
+ urldate = {2004-04-25T14:34:00/2004-04-05T15:00:00}, % Datetime range
+}
+@misc{date5,
+ note = {Seasons},
+ author = {Author5},
+ date = {1723-21}, % EDTF season (21=spring, 22=summer, 23=autumn, 24=winter)
+ origdate = {1934-24~}, % uncertain year plus season
+ eventdate = {1934-22/1934-23}, % range with seasons
+}
+@misc{date6,
+ % uses the 'nodate' localisation string due to default \DeclareLabeldate setting
+ note = {Date from literal/localisation string},
+ author = {Author6},
+}
+@misc{date7,
+ note = {Unspecified dates can be used to do amusing things},
+ author = {Author7},
+ date = {19uu}, % EDTF unspecified year in century
+ origdate = {199u}, % EDTF unspecified year in decade
+}
+@misc{date8,
+ note = {Astronomical year era},
+ author = {Author8},
+ date = {0001}, % with dateera=astronomical, 1, otherwise 1 CE
+ origdate = {0000}, % with dateera=astronomical, 0, otherwise 1 BCE
+ eventdate = {-0001}, % with dateera=astronomical, -1, otherwise 2 BCE
+ urldate = {-0379} % with dateera=astronomical, -379, otherwise 380 BCE
+}
+@misc{date9,
+ note = {Automatic era setting},
+ author = {Author9},
+ date = {1066},
+ origdate = {0876},
+ eventdate = {0402},
+ urldate = {-0382}
+}
+\end{filecontents}
+\usepackage[style=authoryear,%
+ % dateabbrev=false,% when false, don't abbreviate months/seasons
+ % julian=true,% convert dates before gregorianstart to Julian Calendar
+ % gregorianstart=1582-10-15,% Default
+ alldates=short,%
+ % alldates=ymd,% Year-Month-Day format
+ % alldates=edtf,% EDTF format
+ alldatesusetime=true, % print time components in non-compact date ranges
+ alltimes=12h,%
+ % alltimes=24h,% prints 24 hour format times (default)
+ % alltimes=24hcomp,% prints 24 hour compressed format times
+ % seconds=true,% uncomment to print seconds
+ % timezones=true,% uncomment to print timezones
+ datezeros=false,% pad date components with zeros?
+ dateera=secular,% prints BCE/CE controlled by dateerauto, datezeros
+ % dateera=christian,% prints BC/AD controlled by dateerauto, datezeros
+ % dateera=astronomical,% prints astronomical dates, controlled by datezeros
+ dateeraauto=600,% Sets the max year ceiling for automatic printing of era
+ % abbreviate=false,% prints full date localisation strings
+ dateuncertain=true,%
+ datecirca=true,%
+ sorting=none,%
+ backend=biber]{biblatex}
+\addbibresource{\jobname.bib}
+
+\defbibenvironment{simple}
+{\list{}
+ {\setlength{\leftmargin}{0pt}%
+ \setlength{\itemindent}{0pt}%
+ \setlength{\bibitemsep}{1ex}%
+ \setlength{\itemsep}{\bibitemsep}%
+ \setlength{\parsep}{\bibparsep}}}
+{\endlist}
+{\item}
+
+\DeclareFieldFormat{urldate}{#1}
+\DeclareFieldFormat{time}{\mkbibemph{#1}}
+\DeclareFieldFormat{labeltime}{\mkbibemph{#1}}
+\DeclareFieldFormat{origtime}{\mkbibemph{#1}}
+\DeclareFieldFormat{eventtime}{\mkbibemph{#1}}
+\DeclareFieldFormat{urltime}{\mkbibemph{#1}}
+
+\makeatletter
+
+\DeclareBibliographyDriver{misc}{%
+ \printfield[emph]{note}\\
+ \iffieldundef{labelyear}{}{%
+ \printtext[bold]{labeldate = }\printlabeldate
+ \iffieldundef{labelhour}{}
+ {\\\printtext[bold]{labeltime = }\printlabeltime}}\\%
+ \iffieldundef{year}{}{%
+ \iffieldequalstr{dateunspecified}{yearincentury}
+ {\printtext[bold]{date = }\number\numexpr\thefield{year}/100+1\relax th Century}
+ {\printtext[bold]{date = }\printdate
+ \iffieldundef{hour}{}
+ {\\\printtext[bold]{time = }\printtime}}}\\%
+ \iffieldundef{origyear}{}{%
+ \iffieldequalstr{origdateunspecified}{yearindecade}
+ {\printtext[bold]{date = }The \expandafter\@gobbletwo\number\thefield{origyear}s}
+ {\printtext[bold]{origdate = }\printorigdate
+ \iffieldundef{orighour}{}
+ {\\\printtext[bold]{origtime = }\printorigtime}}}\\%
+ \iffieldundef{eventyear}{}{%
+ \printtext[bold]{eventdate = }\printeventdate
+ \iffieldundef{eventhour}{}
+ {\\\printtext[bold]{eventtime = }\printeventtime}}\\%
+ \iffieldundef{urlyear}{}{%
+ \printtext[bold]{urldate = }\printurldate
+ \iffieldundef{urlhour}{}
+ {\\\printtext[bold]{urltime = }\printurltime}}%
+ }
+
+\begin{document}
+\section*{Date formats}
+This example file parses and formats some of the supported date formats and
+demonstrates the output options. See the source for details. You can change
+the options in the source file and this document will show you the options chosen.
+\subsection*{Options used to format this test document}
+\begingroup
+datecirca=\textbf{\iftoggle{blx@datecirca}{1}{0}}\\
+dateuncertain=\textbf{\iftoggle{blx@dateuncertain}{1}{0}}\\
+dateera=\textbf{\blx@dateera}\\
+dateerauto=\textbf{\blx@dateeraauto}\\
+datezeros=\textbf{\iftoggle{blx@datezeros}{1}{0}}\\
+timezeros=\textbf{\iftoggle{blx@timezeros}{1}{0}}\\
+timezones=\textbf{\iftoggle{blx@timezones}{1}{0}}\\
+seconds=\textbf{\iftoggle{blx@seconds}{1}{0}}\\
+julian=\textbf{\iftoggle{blx@julian}{1}{0}}\\
+gregorianstart=\textbf{\blx@gregorianstart}\\
+\def\do#1{%
+ #1=\textbf{\csuse{blx@dateformat@#1}}\\}
+\do{labeldate}
+\abx@dodates
+\def\do#1{%
+ #1time=\textbf{\csuse{blx@timeformat@#1time}}\\
+ #1dateusetime=\textbf{\iftoggle{blx@#1dateusetime}{1}{0}}\\}
+\do{label}
+\abx@dodatetypes
+\endgroup
+\subsection*{Example Citation Formats}
+\textcite{date1,date2,date3,date4,date5,date6,date7,date8,date9}\\[1ex]
+\cite{date1}\\
+\cite{date2}\\
+\cite{date3}\\
+\cite{date4}\\
+\cite{date5}\\
+\cite{date6}\\
+\cite{date7}\\
+\cite{date8}\\
+\cite{date9}
+\printbibliography[env=simple,title={Example Bibliography Formats}]
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/biblatex-examples.bltxml b/Master/texmf-dist/doc/latex/biblatex/examples/biblatex-examples.bltxml
index 78f60c71f05..f75ee81ec8d 100644
--- a/Master/texmf-dist/doc/latex/biblatex/examples/biblatex-examples.bltxml
+++ b/Master/texmf-dist/doc/latex/biblatex/examples/biblatex-examples.bltxml
@@ -3,17 +3,6 @@
<!-- Auto-generated by Biber::Output::biblatexml -->
<bltx:entries xmlns:bltx="http://biblatex-biber.sourceforge.net/biblatexml">
- <bltx:entry id="tolstoy" entrytype="book">
- <bltx:names type="author">
- <bltx:name >
- <bltx:namepart type="given" initial="Л">Лев</bltx:namepart>
- <bltx:namepart type="patronymic" initial="Н">Николаевич</bltx:namepart>
- <bltx:namepart type="family" initial="Т">Толстой</bltx:namepart>
- </bltx:name>
- </bltx:names>
- <bltx:title>Война и мир</bltx:title>
- <bltx:date>1877</bltx:date>
- </bltx:entry>
<bltx:entry id="bulgakov" entrytype="book">
<bltx:names type="author">
<bltx:name>
diff --git a/Master/texmf-dist/tex/latex/biblatex/bbx/authoryear.bbx b/Master/texmf-dist/tex/latex/biblatex/bbx/authoryear.bbx
index 4f6c6bc5dda..e27b18904e2 100644
--- a/Master/texmf-dist/tex/latex/biblatex/bbx/authoryear.bbx
+++ b/Master/texmf-dist/tex/latex/biblatex/bbx/authoryear.bbx
@@ -24,13 +24,13 @@
% merge date/issue with date label
\def\bbx@opt@mergedate@maximum{%
\renewbibmacro*{date+extrayear}{%
- \iffieldundef{\thefield{datelabelsource}year}
+ \iffieldundef{labelyear}
{}
{\printtext[parens]{%
\printfield{issue}%
\setunit*{\addspace}%
- \iffieldsequal{year}{\thefield{datelabelsource}year}
- {\printdateextralabel}%
+ \iffieldsequal{year}{labelyear}
+ {\printlabeldateextra}%
{\printfield{labelyear}%
\printfield{extrayear}}}}}%
\renewbibmacro*{date}{}%
@@ -39,11 +39,11 @@
% merge date with date label
\def\bbx@opt@mergedate@compact{%
\renewbibmacro*{date+extrayear}{%
- \iffieldundef{\thefield{datelabelsource}year}
+ \iffieldundef{labelyear}
{}
{\printtext[parens]{%
- \iffieldsequal{year}{\thefield{datelabelsource}year}
- {\printdateextralabel}%
+ \iffieldsequal{year}{labelyear}
+ {\printlabeldateextra}%
{\printfield{labelyear}%
\printfield{extrayear}}}}}%
\renewbibmacro*{date}{}%
@@ -56,10 +56,10 @@
% merge year-only date with date label
\def\bbx@opt@mergedate@basic{%
\renewbibmacro*{date+extrayear}{%
- \iffieldundef{\thefield{datelabelsource}year}
+ \iffieldundef{labelyear}
{}
{\printtext[parens]{%
- \printfield{\thefield{datelabelsource}year}%
+ \printfield{labelyear}%
\printfield{extrayear}}}}%
\renewbibmacro*{date}{%
\iffieldundef{month}
@@ -81,10 +81,10 @@
% merge year-only date with year-only date label
\def\bbx@opt@mergedate@minimum{%
\renewbibmacro*{date+extrayear}{%
- \iffieldundef{\thefield{datelabelsource}year}
+ \iffieldundef{labelyear}
{}
{\printtext[parens]{%
- \printfield{\thefield{datelabelsource}year}%
+ \printfield{labelyear}%
\printfield{extrayear}}}}%
\renewbibmacro*{date}{%
\ifboolexpr{
@@ -112,10 +112,10 @@
% don't merge date/issue with date label
\def\bbx@opt@mergedate@false{%
\renewbibmacro*{date+extrayear}{%
- \iffieldundef{\thefield{datelabelsource}year}
+ \iffieldundef{labelyear}
{}
{\printtext[parens]{%
- \printfield{\thefield{datelabelsource}year}%
+ \printfield{labelyear}%
\printfield{extrayear}}}}%
\renewbibmacro*{date}{\printdate}%
\renewbibmacro*{issue+date}{%
@@ -125,8 +125,8 @@
\printdate}%
\newunit}}
-% n.b. the default datelabel=year overrides merging of months and days
-\ExecuteBibliographyOptions{labeldate,sorting=nyt,pagetracker,mergedate}
+% n.b. the default labeldate=year overrides merging of months and days
+\ExecuteBibliographyOptions{labeldateparts,sorting=nyt,pagetracker,mergedate}
\DeclareFieldFormat{shorthandwidth}{#1}
\setlength{\bibitemsep}{0pt}
diff --git a/Master/texmf-dist/tex/latex/biblatex/biblatex.def b/Master/texmf-dist/tex/latex/biblatex/biblatex.def
index 3016d22fef6..b9b58f756de 100644
--- a/Master/texmf-dist/tex/latex/biblatex/biblatex.def
+++ b/Master/texmf-dist/tex/latex/biblatex/biblatex.def
@@ -19,7 +19,7 @@
\def\do#1{%
\csdef{mkbibname#1}##1{##1}%
\define@key{blx@opt@namepart}{#1}{\csdef{namepart#1}{##1}}%
- \define@key{blx@opt@namepart}{#1_i}{\csdef{namepart#1i}{##1}}}
+ \define@key{blx@opt@namepart}{#1i}{\csdef{namepart#1i}{##1}}}
\expandafter\docsvlist\expandafter{\blx@datamodel@constant@nameparts}
% legacy aliases
@@ -29,7 +29,6 @@
\let\mkbibnameaffix\@empty
\AtEndPreamble{%
-
\ifdefempty\mkbibnamelast
{\let\@mkbibnamelastsaved\mkbibnamefamily}% not redefined by user
{\blx@warning@noline{%
@@ -121,6 +120,8 @@
\DeclareDelimFormat[textcite]{nonameyeardelim}{\addspace}
\DeclareDelimFormat[bib]{nonameyeardelim}{\addspace}
\DeclareDelimFormat[biblist]{nonameyeardelim}{\addspace}
+\DeclareDelimFormat{dateeradelim}{\addspace}
+\DeclareDelimFormat{datecircadelim}{\addspace}
% This is a provisional definition for \iffinalcitedelim{<true>}{<false>}, a
% test that should expand <true> if the next non-compact citation delimiter
@@ -334,6 +335,12 @@
{#1}
{\textsc{\MakeLowercase{#1}}}}
+% Convert HH to hh for time formatting
+\newcommand*{\mktimehh}[1]{%
+ \ifnumless{#1}{13}
+ {#1}
+ {\number\numexpr#1-12\relax}}
+
% ------------------------------------------------------------------
% ADDITIONAL PACKAGE OPTIONS
% ------------------------------------------------------------------
@@ -389,13 +396,20 @@
{citetitle}{#1}
% labelyear can be a localisation string to allow for "no date" etc.
\DeclareFieldFormat{labelyear}{% = the '1995' part in 'Jones 1995a'
- \ifbibstring{#1}{\bibstring{#1}}{\stripzeros{#1}}}
-\DeclareFieldFormat{extrayear}{% = the 'a' in 'Jones 1995a'
- \iffieldnums{labelyear}
- {\mknumalph{#1}}
- {\mkbibparens{\mknumalph{#1}}}}
-\DeclareFieldFormat{labelalpha}{#1}% = the 'Jon95' part of 'Jon95a'
-\DeclareFieldFormat{extraalpha}{\mknumalph{#1}}% = the 'a' in 'Jon95a'
+ \ifbibstring{#1}{\bibstring{#1}}{#1}}
+% If labeldatesource is a defined field, they
+% Don't check labelyear directly as it is already processed into a range with markers
+% and so is never nums due to unexpandable parts of labelyear determination
+\DeclareFieldFormat{extrayear}{%
+ \iffieldundef{\thefield{labeldatesource}}
+ {\iffieldnums{\thefield{labeldatesource}year}
+ {\mknumalph{#1}}
+ {\mkbibparens{\mknumalph{#1}}}}
+ {\iffieldnums{\thefield{labeldatesource}}
+ {\mknumalph{#1}}
+ {\mkbibparens{\mknumalph{#1}}}}}%
+\DeclareFieldFormat{labelalpha}{#1}%
+\DeclareFieldFormat{extraalpha}{\mknumalph{#1}}%
\DeclareFieldFormat{shorthand}{#1\isdot}
\DeclareFieldFormat{shorthandintro}{%
\ifcapital{\MakeCapital{#1}}{#1}\isdot}
@@ -809,15 +823,12 @@
\usebibmacro{name:andothers}}
% Fallback used by \printnames
-
\DeclareNameAlias{default}{given-family}
% Default used by \citename
-
\DeclareNameAlias{citename}{default}
% Used in some citations
-
\DeclareNameFormat{labelname}{%
\ifcase\value{uniquename}%
\usebibmacro{name:family}
@@ -847,7 +858,6 @@
\usebibmacro{name:andothers}}
% Used in the bibliography
-
\DeclareNameAlias{sortname}{family-given/given-family}
\DeclareNameAlias{author}{default}
@@ -1180,66 +1190,6 @@
}
}
-\DeclareDriverSourcemap[datatype=ris]{
- \map{
- \step[typesource=ART, typetarget=artwork]
- \step[typesource=BILL, typetarget=jurisdiction]
- \step[typesource=BOOK, typetarget=book]
- \step[typesource=CHAP, typetarget=inbook]
- \step[typesource=COMP, typetarget=software]
- \step[typesource=CONF, typetarget=proceedings]
- \step[typesource=GEN, typetarget=misc]
- \step[typesource=JFULL, typetarget=article]
- \step[typesource=JOUR, typetarget=article]
- \step[typesource=MGZN, typetarget=misc]
- \step[typesource=MPCT, typetarget=movie]
- \step[typesource=NEWS, typetarget=misc]
- \step[typesource=PAMP, typetarget=misc]
- \step[typesource=PAT, typetarget=patent]
- \step[typesource=PCOMM, typetarget=misc]
- \step[typesource=RPRT, typetarget=report]
- \step[typesource=SER, typetarget=misc]
- \step[typesource=SLIDE, typetarget=misc]
- \step[typesource=SOUND, typetarget=audio]
- \step[typesource=STAT, typetarget=legal]
- \step[typesource=THES, typetarget=thesis]
- \step[typesource=UNBILL, typetarget=jurisdiction]
- \step[typesource=UNPB, typetarget=unpublished]
- }
- \map{
- \step[fieldsource=Y1, fieldtarget=date]
- \step[fieldsource=PY, fieldtarget=date]
- \step[fieldsource=Y2, fieldtarget=eventdate]
- \step[fieldsource=A1, fieldtarget=author]
- \step[fieldsource=AU, fieldtarget=author]
- \step[fieldsource=A2, fieldtarget=editor]
- \step[fieldsource=A3, fieldtarget=editor]
- \step[fieldsource=ED, fieldtarget=editor]
- \step[fieldsource=SPEP, fieldtarget=pages]
- \step[fieldsource=N1, fieldtarget=note]
- \step[fieldsource=N2, fieldtarget=abstract]
- \step[fieldsource=AB, fieldtarget=abstract]
- \step[fieldsource=JO, fieldtarget=journaltitle]
- \step[fieldsource=JF, fieldtarget=journaltitle]
- \step[fieldsource=JA, fieldtarget=shortjournal]
- \step[fieldsource=VL, fieldtarget=volume]
- \step[fieldsource=IS, fieldtarget=issue]
- \step[fieldsource=CP, fieldtarget=issue]
- \step[fieldsource=CY, fieldtarget=location]
- \step[fieldsource=SN, fieldtarget=isbn]
- \step[fieldsource=PB, fieldtarget=publisher]
- \step[fieldsource=KW, fieldtarget=keywords]
- \step[fieldsource=TI, fieldtarget=title]
- \step[fieldsource=U1, fieldtarget=usera]
- \step[fieldsource=U2, fieldtarget=userb]
- \step[fieldsource=U3, fieldtarget=userc]
- \step[fieldsource=U4, fieldtarget=userd]
- \step[fieldsource=U5, fieldtarget=usere]
- \step[fieldsource=UR, fieldtarget=url]
- \step[fieldsource=L1, fieldtarget=file]
- }
-}
-
% ------------------------------------------------------------------
% META-FIELDS
% ------------------------------------------------------------------
@@ -1254,6 +1204,7 @@
\DeclareLabeldate{%
\field{date}
+ \field{year}
\field{eventdate}
\field{origdate}
\field{urldate}
@@ -1263,6 +1214,7 @@
\DeclareLabeltitle{%
\field{shorttitle}
\field{title}
+ \field{maintitle}
}
% ------------------------------------------------------------------
@@ -1273,8 +1225,8 @@
\labelelement{
\field[final]{shorthand}
\field{label}
- \field[strwidth=3,strside=left,ifnames=1,pcompound=true]{labelname}
- \field[strwidth=1,strside=left,pcompound=true]{labelname}
+ \field[strwidth=3,strside=left,ifnames=1]{labelname}
+ \field[strwidth=1,strside=left]{labelname}
}
\labelelement{
\field[strwidth=2,strside=right]{year}
@@ -1282,6 +1234,25 @@
}
% ------------------------------------------------------------------
+% LABELALPHA NAME TEMPLATE
+% ------------------------------------------------------------------
+
+\DeclareLabelalphaNameTemplate{
+ \namepart[use=true, pre=true, strwidth=1, compound=true]{prefix}
+ \namepart{family}
+}
+
+% ------------------------------------------------------------------
+% UNIQUENAME TEMPLATE
+% ------------------------------------------------------------------
+
+\DeclareUniquenameTemplate{
+ \namepart[use=true, base=true]{prefix}
+ \namepart[base=true]{family}
+ \namepart{given}
+}
+
+% ------------------------------------------------------------------
% SORTING
% ------------------------------------------------------------------
@@ -1348,8 +1319,8 @@
\field{year}
}
\sort{
- \field[padside=left,padwidth=4,padchar=0]{volume}
- \literal{0000}
+ \field{volume}
+ \literal{0}
}
}
@@ -1377,8 +1348,8 @@
\field{title}
}
\sort{
- \field[padside=left,padwidth=4,padchar=0]{volume}
- \literal{0000}
+ \field{volume}
+ \literal{0}
}
}
@@ -1402,8 +1373,8 @@
\field{year}
}
\sort{
- \field[padside=left,padwidth=4,padchar=0]{volume}
- \literal{0000}
+ \field{volume}
+ \literal{0}
}
\sort{
\field{sorttitle}
@@ -1438,8 +1409,8 @@
\field{title}
}
\sort{
- \field[padside=left,padwidth=4,padchar=0]{volume}
- \literal{0000}
+ \field{volume}
+ \literal{0}
}
}
@@ -1466,8 +1437,8 @@
\field{year}
}
\sort{
- \field[padside=left,padwidth=4,padchar=0]{volume}
- \literal{0000}
+ \field{volume}
+ \literal{0}
}
\sort{
\field{sorttitle}
@@ -1509,8 +1480,8 @@
\field{sortkey}
}
\sort[direction=descending]{
- \field[strside=left,strwidth=4]{sortyear}
- \field[strside=left,strwidth=4]{year}
+ \field{sortyear}
+ \field{year}
\literal{9999}
}
\sort{
diff --git a/Master/texmf-dist/tex/latex/biblatex/biblatex.sty b/Master/texmf-dist/tex/latex/biblatex/biblatex.sty
index 98fd4dd7ca4..f95ba1aaee9 100644
--- a/Master/texmf-dist/tex/latex/biblatex/biblatex.sty
+++ b/Master/texmf-dist/tex/latex/biblatex/biblatex.sty
@@ -11,8 +11,8 @@
% particular purpose.
% Set up the version strings here
-\def\abx@date{2016/05/14}
-\def\abx@version{3.4}
+\def\abx@date{2016/09/07}
+\def\abx@version{3.5}
\def\abx@bbxid{\abx@date\space v\abx@version\space biblatex bibliography style (PK/JW/AB)}
\def\abx@cbxid{\abx@date\space v\abx@version\space biblatex citation style (PK/JW/AB)}
\def\abx@lbxid{\abx@date\space v\abx@version\space biblatex localization (PK/JW/AB)}
@@ -21,19 +21,18 @@
% This is not updated by build script as the control file version
% does not necessarily change with the package version.
% This is used when writing the .bcf
-\def\blx@bcfversion{3.1}
+\def\blx@bcfversion{3.2}
% This is not updated by build script as the bbl version
% does not necessarily change with the package version.
% This is used when checking the .bbl
-\def\blx@bblversion{2.7}
+\def\blx@bblversion{2.8}
\NeedsTeXFormat{LaTeX2e}[2005/12/01]
\ProvidesPackage{biblatex}
[\abx@date\space v\abx@version\space programmable bibliographies (PK/JW/AB)]
%% Dependencies
-\RequirePackage{iftex}
\RequirePackage{pdftexcmds}
\RequirePackage{etoolbox}
\RequirePackage{keyval}
@@ -88,7 +87,7 @@
cite,citeref,drftcite,footbib,inlinebib,jurabib,mcite,mciteplus,
mlbib,multibbl,multibib,natbib,opcit,overcite,splitbib,ucs}%
\def\blx@langstrings{}%
- % Set up sortlocale defaults
+ % Set up sortlocale defaults and default language if babel/polyglossia is not loaded
\ifdefstring\blx@sortlocale{auto}
{\ifdef\bbl@main@language% babel or polyglossia is loaded
{\edef\blx@sortlocale{\bbl@main@language}}
@@ -187,6 +186,7 @@
\scr@saved@footnotetext,% koma-script 3.x
\l@dold@footnotetext,% ledmac
\l@doldold@footnotetext,% ledmac
+ \predefinedfootnotetext,% linguex
\@fntORI}% frenchle
\iftoggle{blx@tempa}% ams classes
{\patchcmd\@footnotetext
@@ -496,7 +496,7 @@
\newtoggle{blx@labelnumber}
\newtoggle{blx@labeltitle}
\newtoggle{blx@labeltitleyear}
-\newtoggle{blx@labeldate}
+\newtoggle{blx@labeldateparts}
\newtoggle{blx@natbib}
\newtoggle{blx@mcite}
\newtoggle{blx@loadfiles}
@@ -505,9 +505,9 @@
\newtoggle{blx@xrefsource}
\newtoggle{blx@uniqueprimaryauthor}
\newtoggle{blx@uniquetitle}
+\newtoggle{blx@uniquebaretitle}
+\newtoggle{blx@uniquework}
\newtoggle{blx@terseinits}
-\newtoggle{blx@giveninits}
-\newtoggle{blx@sortgiveninits}
\newtoggle{blx@useprefix}
\newtoggle{blx@addset}
\newtoggle{blx@setonly}
@@ -534,16 +534,11 @@
% Special fields which need resolution using the information provided by biber
\listadd\abx@rfields{labeltitle}
\def\abx@dorfields{%
- \dolistcsloop{abx@rfields}%
+ \dolistloop\abx@rfields%
}
-% Just in case we ever have non-name lists to instantiate
-%\listadd\abx@rlists{}
-% \def\abx@dorlists{%
-% \dolistcsloop{abx@rlists}%
-% }
\listadd\abx@rnames{labelname}
\def\abx@dornames{%
- \dolistcsloop{abx@rnames}%
+ \dolistloop\abx@rnames%
}
% Used to track default refcontexts for citations
@@ -592,9 +587,9 @@
\ifcsundef{abx@name@legacy@warning@#1}{\blx@warning@noline{Name '#1' deprecated. #2}}{}%
\global\csdef{abx@name@legacy@warning@#1}{}}}%
-\DeprecateField{prefixnumber}{Please use 'labelprefix' instead} % Biblatex v3.4
+\DeprecateField{prefixnumber}{Please use 'labelprefix' instead}
-%% Initialization
+%% Initialisation
\def\blx@blxinit{%
\let\blx@blxinit\relax
\blx@initunit}
@@ -622,7 +617,6 @@
{}}
%% Auxiliary commands
-
\protected\def\blx@safe@actives{%
\let\blx@if@safe@actives\if@safe@actives
\let\if@safe@actives\iftrue}
@@ -2092,6 +2086,8 @@
{\blx@ifnamesequal@iii#1%
\blx@ifnamesequal@ii}}
+% These explicit nameparts are alright as they are for bibtex only
+% biber names will always have a hash generated from all nameparts in datamodel
\def\blx@ifnamesequal@iii#1#2{%
\setkeys{blx@opt@name}{#1}%
\setkeys{blx@opt@namepart}{#2}%
@@ -2766,7 +2762,7 @@
\addthinspace\addnbthinspace\addlowpenspace
\addhighpenspace\addlpthinspace\addhpthinspace
\adddotspace\addabbrvspace\&\psq\psqq
- \bibrangedash\bibdatedash\textendash\textemdash\bibrangessep}
+ \bibrangedash\bibdaterangesep\bibtimerangesep\textendash\textemdash\bibrangessep}
\DeclarePageCommands{\pno\ppno}
% *{<code>}
@@ -3123,7 +3119,15 @@
{\blx@warn@delimuse{#2}{#1}}}}
\newcommand*{\delimcontext}[1]{%
- \edef\blx@delimcontext{#1}}
+ \edef\blx@delimcontext{\blx@delimcontextalias{#1}}}
+
+\def\blx@delimcontextalias#1{%
+ \ifcsdef{blx@delimcontextalias@#1}
+ {\csuse{blx@delimcontextalias@#1}}
+ {#1}}
+
+\newcommand*{\DeclareDelimcontextAlias}[2]{%
+ \csgdef{blx@delimcontextalias@#1}{#2}}
% {<init>}{<entrytype>}
\protected\def\blx@imc@usedriver#1#2{%
@@ -3268,12 +3272,12 @@
\def\iffootnote{\iftoggle{blx@footnote}}%
\def\ifuseprefix{\iftoggle{blx@useprefix}}%
\def\ifterseinits{\iftoggle{blx@terseinits}}%
- \def\iffirstinits{\iftoggle{blx@giveninits}}% legacy name for \ifgiveninits
- \def\ifgiveninits{\iftoggle{blx@giveninits}}%
\def\ifcrossrefsource{\iftoggle{abx@bool@crossrefsource}}%
\def\ifxrefsource{\iftoggle{abx@bool@xrefsource}}%
\def\ifsingletitle{\iftoggle{abx@bool@singletitle}}%
\def\ifuniquetitle{\iftoggle{abx@bool@uniquetitle}}%
+ \def\ifuniquebaretitle{\iftoggle{abx@bool@uniquebaretitle}}%
+ \def\ifuniquework{\iftoggle{abx@bool@uniquework}}%
\def\ifuniqueprimaryauthor{\iftoggle{abx@bool@uniqueprimaryauthor}}%
\def\ifandothers#1{\iftoggle{abx@bool@more#1}}%
\protected\def\pno{\bibstring{page}}%
@@ -3379,8 +3383,11 @@
\newrobustcmd*{\MakeSentenceCase}{%
\@ifstar\blx@mksc@i\blx@mksc@ii}
-% if we have option language=<lang>, then this overrides
-% langid field, otherwise, we try than, otherwise try main doc lang
+% Check, in order:
+% * explicit option language=<lang>, which overrides everything
+% * langid field of entry
+% * babel/polyglossia lang
+% * main document lang
\def\blx@mksc@i{%
\ifdef\blx@forcelanguagename
{\xifinlist\blx@forcelanguagename\blx@cmksc@lang
@@ -3390,9 +3397,13 @@
{\xifinlist\abx@field@langid\blx@cmksc@lang
{\blx@mksc@ii}
{\@firstofone}}
- {\xifinlist\bbl@main@language\blx@cmksc@lang
- {\blx@mksc@ii}
- {\@firstofone}}}}
+ {\ifdef\bbl@main@language
+ {\xifinlist\bbl@main@language\blx@cmksc@lang
+ {\blx@mksc@ii}
+ {\@firstofone}}
+ {\xifinlist\blx@languagename\blx@cmksc@lang
+ {\blx@mksc@ii}
+ {\@firstofone}}}}}
\long\def\blx@mksc@ii#1{%
\begingroup
@@ -4508,6 +4519,7 @@
\do{langdanish}%
\do{langdutch}%
\do{langenglish}%
+ \do{langestonian}%
\do{langfinnish}%
\do{langfrench}%
\do{langgerman}%
@@ -4531,6 +4543,7 @@
\do{fromdanish}%
\do{fromdutch}%
\do{fromenglish}%
+ \do{fromestonian}%
\do{fromfinnish}%
\do{fromfrench}%
\do{fromgerman}%
@@ -4564,6 +4577,17 @@
\do{patreqfr}%
\do{patrequk}%
\do{patrequs}%
+ \do{commonera}%
+ \do{beforecommonera}%
+ \do{annodomini}%
+ \do{beforechrist}%
+ \do{circa}%
+ \do{spring}%
+ \do{summer}%
+ \do{autumn}%
+ \do{winter}%
+ \do{am}%
+ \do{pm}%
}
\newrobustcmd*{\NewBibliographyString}[1]{%
@@ -4763,98 +4787,224 @@
% auxiliary macros
% {<field base name>}
-
-\newrobustcmd*{\mkbibrangeshort}{%
- \mkbibrangefull{short}}
-
-\newrobustcmd*{\mkbibrangelong}{%
- \mkbibrangefull{long}}
-
-\newrobustcmd*{\mkbibrangeterse}{%
- \mkbibrangetrunc{short}}
-
-\newrobustcmd*{\mkbibrangecomp}{%
- \mkbibrangetrunc{long}}
-
-\newrobustcmd*{\mkbibrangeshortextra}{%
- \mkbibrangefullextra{short}}
-
-\newrobustcmd*{\mkbibrangelongextra}{%
- \mkbibrangefullextra{long}}
-
-\newrobustcmd*{\mkbibrangeterseextra}{%
- \mkbibrangetruncextra{short}}
-
-\newrobustcmd*{\mkbibrangecompextra}{%
- \mkbibrangetruncextra{long}}
-
-% {<short|long>}{<basename>}
-
-\newrobustcmd*{\mkbibrangefull}[2]{%
+\newrobustcmd*{\mkdaterangeshort}{%
+ \mkdaterangefull{short}}
+
+\newrobustcmd*{\mkdaterangelong}{%
+ \mkdaterangefull{long}}
+
+\newrobustcmd*{\mkdaterangeterse}{%
+ \mkdaterangetrunc{short}}
+
+\newrobustcmd*{\mkdaterangecomp}{%
+ \mkdaterangetrunc{long}}
+
+\newrobustcmd*{\mkdaterangeshortextra}{%
+ \mkdaterangefullextra{short}}
+
+\newrobustcmd*{\mkdaterangelongextra}{%
+ \mkdaterangefullextra{long}}
+
+\newrobustcmd*{\mkdaterangeterseextra}{%
+ \mkdaterangetruncextra{short}}
+
+\newrobustcmd*{\mkdaterangecompextra}{%
+ \mkdaterangetruncextra{long}}
+
+\def\blx@metadateinfo#1{%
+ \letcs\ifdateera{if#1dateera}%
+ \letcs\ifenddateera{if#1enddateera}%
+ \letcs\ifdatecirca{if#1datecirca}%
+ \letcs\ifenddatecirca{if#1enddatecirca}%
+ \letcs\ifdatejulian{if#1datejulian}%
+ \letcs\ifenddatejulian{if#1enddatejulian}%
+ \letcs\ifdateuncertain{if#1dateuncertain}%
+ \letcs\ifenddateuncertain{if#1enddateuncertain}}
+
+\expandafter\newrobustcmd\expandafter*\csname mktimerange24h\endcsname{%
+ \mktimerange{24h}}
+
+\expandafter\newrobustcmd\expandafter*\csname mktimerange12h\endcsname{%
+ \mktimerange{12h}}
+
+\expandafter\newrobustcmd\expandafter*\csname mktimerange24hcomp\endcsname[1]{%
+ \iffieldundef{#1hour}{}
+ {\ifboolexpr{test {\iffieldundef{#1endhour}}
+ or
+ test {\iffieldequalstr{#1endhour}{}}}
+ {\mktimerange{24h}{#1}}
+ {\iffieldsequal{#1hour}{#1endhour}
+ % 14:xx:xx 14:xx:xx
+ {\iffieldsequal{#1minute}{#1endminute}
+ % 14:13:xx 14:13:xx
+ {\toggletrue{blx@seconds}%
+ \printtext[#1time]{\csuse{mkbibtime24h}{#1hour}{#1minute}{#1second}{}%
+ \bibtimerangesep
+ \csuse{mkbibtime24h}{}{}{#1endsecond}{}}}
+ % 14:13:xx 14:14:xx
+ {\toggletrue{blx@seconds}%
+ \printtext[#1time]{\csuse{mkbibtime24h}{#1hour}{#1minute}{}{}%
+ \bibtimerangesep
+ \csuse{mkbibtime24h}{}{#1endminute}{}{}}}}
+ % 14:xx:xx 15:xx:xx
+ {\mktimerange{24h}{#1}}}}}
+
+% {<24h|24hcomp|12h>}{<datetype>}
+\newrobustcmd*{\mktimerange}[2]{%
+ \iffieldundef{#2hour}{}
+ {\blx@timepre{#2}{}%
+ \printtext[#2time]{\csuse{mkbibtime#1}{#2hour}{#2minute}{#2second}{#2timezone}%
+ \iffieldundef{#2endhour}
+ {}
+ {\blx@timepre{#2}{end}%
+ \iffieldequalstr{#2endhour}{}
+ {\mbox{\bibtimerangesep}}
+ {\bibtimerangesep
+ \csuse{mkbibtime#1}{#2endhour}{#2endminute}{#2endsecond}{#2endtimezone}}}}}}
+
+% {<datetype>}{''|end}
+\newrobustcmd*{\blx@timepre}[2]{%
+ \iftoggle{blx@timezones}{}
+ {\blx@imc@clearfield{#1#2timezone}}%
+ \iftoggle{blx@seconds}{}
+ {\blx@imc@clearfield{#1#2second}}}
+
+% {<short|long>}{<datetype>}
+\newrobustcmd*{\mkdaterangefull}[2]{%
+ \blx@metadateinfo{#2}%
\iffieldundef{#2year}
{}
- {\printtext[#2date]{%
- \csuse{mkbibdate#1}{#2year}{#2month}{#2day}%
+ {\datecircaprint
+ \printtext[#2date]{%
+ % Such a season component can only come from an EDTF 5.1.5 season which replaces
+ % a normal month so if it exists, we know that a normal date print is ruled out
+ \iffieldundef{#2season}
+ {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}%
+ % Optionally print the time after the date
+ \blx@printtime{#2}{}}
+ {\csuse{mkbibseasondate#1}{#2year}{#2season}}%
+ \dateuncertainprint
+ \dateeraprint{#2year}%
\iffieldundef{#2endyear}
{}
{\iffieldequalstr{#2endyear}{}
- {\mbox{\bibdatedash}}
- {\bibdatedash
- \csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}}}}}
-
-\newrobustcmd*{\mkbibrangetrunc}[2]{%
+ {\mbox{\bibdaterangesep}}
+ {\bibdaterangesep
+ \enddatecircaprint
+ \iffieldundef{#2season}
+ {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}%
+ % Optionally print the time after the date
+ \blx@printtime{#2}{end}}
+ {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}%
+ \enddateuncertainprint
+ \dateeraprint{#2endyear}}}}}}
+
+\newrobustcmd*{\mkdaterangetrunc}[2]{%
+ \blx@metadateinfo{#2}%
\iffieldundef{#2year}
{}
- {\printtext[#2date]{%
- \iffieldsequal{#2year}{#2endyear}
- {\iffieldsequal{#2month}{#2endmonth}
- {\csuse{mkbibdate#1}{}{}{#2day}}
- {\csuse{mkbibdate#1}{}{#2month}{#2day}}}
- {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}}%
+ {\datecircaprint
+ \printtext[#2date]{%
+ % Such a season component can only come from an EDTF 5.1.5 season which replaces
+ % a normal month so if it exists, we know that a normal date print is ruled out
+ \iffieldundef{#2season}
+ {\iffieldsequal{#2year}{#2endyear}
+ {\iffieldsequal{#2month}{#2endmonth}
+ {\csuse{mkbibdate#1}{}{}{#2day}}
+ {\csuse{mkbibdate#1}{}{#2month}{#2day}}}
+ {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}%
+ \iffieldsequal{#2dateera}{#2enddateera}{}
+ {\dateeraprint{#2year}}}}
+ {\iffieldsequal{#2year}{#2endyear}
+ {\csuse{mkbibseasondate#1}{}{#2season}}
+ {\csuse{mkbibseasondate#1}{#2year}{#2season}%
+ \iffieldsequal{#2dateera}{#2enddateera}{}
+ {\dateeraprint{#2year}}}}%
+ \dateuncertainprint
\iffieldundef{#2endyear}
{}
{\iffieldequalstr{#2endyear}{}
- {\mbox{\bibdatedash}}
- {\bibdatedash
- \csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}}}}}
-
-\newrobustcmd*{\mkbibrangefullextra}[2]{%
+ {\mbox{\bibdaterangesep}}
+ {\bibdaterangesep
+ \enddatecircaprint
+ \iffieldundef{#2season}
+ {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}
+ {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}%
+ \enddateuncertainprint
+ \dateeraprint{#2endyear}}}}}}
+
+\newrobustcmd*{\mkdaterangefullextra}[2]{%
+ \blx@metadateinfo{#2}%
\iffieldundef{#2year}
{}
- {\printtext[#2date]{%
+ {\datecircaprint
+ \printtext[#2date]{%
\printtext{%
- \csuse{mkbibdate#1}{#2year}{#2month}{#2day}}%
+ % Such a season component can only come from an EDTF 5.1.5 season which replaces
+ % a normal month so if it exists, we know that a normal date print is ruled out
+ \iffieldundef{#2season}
+ {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}%
+ % Optionally print the time after the date
+ \blx@printtime{#2}{}}
+ {\csuse{mkbibseasondate#1}{#2year}{#2season}}%
+ \dateuncertainprint
+ \dateeraprint{#2year}%
\iffieldundef{#2endyear}
{\printfield{extrayear}}
{\iffieldequalstr{#2endyear}{}
{\printfield{extrayear}%
- \printtext{\mbox{\bibdatedash}}}
+ \printtext{\mbox{\bibdaterangesep}}}
{\printtext{%
- \bibdatedash
- \csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}%
- \printfield{extrayear}}}}}}}
-
-\newrobustcmd*{\mkbibrangetruncextra}[2]{%
+ \bibdaterangesep
+ \enddatecircaprint
+ \iffieldundef{#2season}
+ {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}%
+ % Optionally print the time after the date
+ \blx@printtime{#2}{end}}
+ {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}}%
+ \printfield{extrayear}%
+ \enddateuncertainprint
+ \dateeraprint{#2endyear}}}}}}}
+
+\newrobustcmd*{\mkdaterangetruncextra}[2]{%
+ \blx@metadateinfo{#2}%
\iffieldundef{#2year}
{}
- {\printtext[#2date]{%
+ {\datecircaprint
+ \printtext[#2date]{%
\printtext{%
- \iffieldsequal{#2year}{#2endyear}
- {\iffieldsequal{#2month}{#2endmonth}
- {\csuse{mkbibdate#1}{}{}{#2day}}
- {\csuse{mkbibdate#1}{}{#2month}{#2day}}}
- {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}}}%
+ % Such a season component can only come from an EDTF 5.1.5 season which replaces
+ % a normal month so if it exists, we know that a normal date print is ruled out
+ \iffieldundef{#2season}
+ {\iffieldsequal{#2year}{#2endyear}
+ {\iffieldsequal{#2month}{#2endmonth}
+ {\csuse{mkbibdate#1}{}{}{#2day}}
+ {\csuse{mkbibdate#1}{}{#2month}{#2day}}}
+ {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}%
+ \iffieldsequal{#2dateera}{#2enddateera}{}
+ {\dateeraprint{#2year}}}}
+ {\iffieldsequal{#2year}{#2endyear}
+ {\csuse{mkbibseasondate#1}{}{#2season}}
+ {\csuse{mkbibseasondate#1}{#2year}{#2season}
+ \iffieldsequal{#2dateera}{#2enddateera}{}
+ {\dateeraprint{#2year}}}}%
+ \dateuncertainprint
\iffieldundef{#2endyear}
{\printfield{extrayear}}
{\iffieldequalstr{#2endyear}{}
{\printfield{extrayear}%
- \printtext{\mbox{\bibdatedash}}}
+ \printtext{\mbox{\bibdaterangesep}}}
{\printtext{%
- \bibdatedash
- \csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}%
- \printfield{extrayear}}}}}}}
-
-\newrobustcmd*{\mkbibrangeyear}[1]{%
+ \bibdaterangesep
+ \enddatecircaprint
+ \iffieldundef{#2season}
+ {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}
+ {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}}%
+ \printfield{extrayear}%
+ \enddateuncertainprint
+ \dateeraprint{#2endyear}}}}}}}
+
+\newrobustcmd*{\mkdaterangeyear}[1]{%
\blx@imc@clearfield{#1month}%
\blx@imc@clearfield{#1day}%
\blx@imc@clearfield{#1endmonth}%
@@ -4862,9 +5012,77 @@
\iffieldsequal{#1year}{#1endyear}
{\blx@imc@clearfield{#1endyear}}
{}%
- \mkbibrangefull{short}{#1}}
+ \mkdaterangefull{short}{#1}}
-\newrobustcmd*{\mkbibrangeyearextra}[1]{%
+% {<datetype>}
+\newrobustcmd*{\mkdaterangeymd}[1]{%
+ \blx@metadateinfo{#1}%
+ \iffieldundef{#1year}
+ {}
+ {\datecircaprint
+ \printtext[#1date]{%
+ % Such a season component can only come from an EDTF 5.1.5 season which replaces
+ % a normal month so if it exists, we know that a normal date print is ruled out
+ \iffieldundef{#1season}
+ {\blx@ymddate{#1}{}%
+ % Optionally print the time after the date
+ \blx@printtime{#1}{}}
+ {\csuse{mkbibseasondateshort}{#1year}{#1season}}%
+ \dateuncertainprint
+ \dateeraprint{#1year}%
+ \iffieldundef{#1endyear}
+ {}
+ {\iffieldequalstr{#1endyear}{}
+ {\mbox{\bibdaterangesep}}
+ {\bibdaterangesep
+ \enddatecircaprint
+ \iffieldundef{#1season}
+ {\blx@ymddate{#1}{end}%
+ % Optionally print the time after the date
+ \blx@printtime{#1}{end}}
+ {\csuse{mkbibseasondateshort}{#1endyear}{#1endseason}}%
+ \enddateuncertainprint
+ \dateeraprint{#1endyear}}}}}}
+
+% {<datetype>}
+\newrobustcmd*{\mkdaterangeymdextra}[1]{%
+ \blx@metadateinfo{#1}%
+ \iffieldundef{#1year}
+ {}
+ {\datecircaprint
+ \printtext[#1date]{%
+ % Such a season component can only come from an EDTF 5.1.5 season which replaces
+ % a normal month so if it exists, we know that a normal date print is ruled out
+ \iffieldundef{#1season}
+ {\blx@ymddate[extrayear]{#1}{}%
+ % Optionally print the time after the date
+ \blx@printtime{#1}{}}
+ {\csuse{mkbibseasondateshort}{#1year}{#1season}}%
+ \dateuncertainprint
+ \dateeraprint{#1year}%
+ \iffieldundef{#1endyear}
+ {}
+ {\iffieldequalstr{#1endyear}{}
+ {\mbox{\bibdaterangesep}}
+ {\printtext{%
+ \bibdaterangesep
+ \enddatecircaprint
+ \iffieldundef{#1season}
+ {\blx@ymddate{#1}{end}%
+ % Optionally print the time after the date
+ \blx@printtime{#1}{end}}
+ {\csuse{mkbibseasondateshort}{#1endyear}{#1endseason}}}%
+ \enddateuncertainprint
+ \dateeraprint{#1endyear}}}}}}
+
+% [extrayear]{<datetype>}{''|end}
+\newrobustcmd*{\blx@ymddate}[3][]{%
+ \dateeraprintpre{#2#3year}%
+ \mkyearzeros{\thefield{#2#3year}}\ifblank{#1}{}{\printfield{#1}}%
+ \iffieldundef{#2#3month}{}{\bibdatesep\mkmonthzeros{\thefield{#2#3month}}}%
+ \iffieldundef{#2#3day}{}{\bibdatesep\mkdayzeros{\thefield{#2#3day}}}}
+
+\newrobustcmd*{\mkdaterangeyearextra}[1]{%
\blx@imc@clearfield{#1month}%
\blx@imc@clearfield{#1day}%
\blx@imc@clearfield{#1endmonth}%
@@ -4872,44 +5090,139 @@
\iffieldsequal{#1year}{#1endyear}
{\blx@imc@clearfield{#1endyear}}
{}%
- \mkbibrangefullextra{short}{#1}}
+ \mkdaterangefullextra{short}{#1}}
+
+% {<datetype>}{'' | end}
+\newrobustcmd*{\blx@printtime}[2]{%
+ \ifboolexpr{%
+ togl {blx@#1dateusetime}
+ and
+ not test {\iffieldundef{#1#2hour}}}
+ {\blx@timepre{#1}{#2}%
+ \printtext{\bibdatetimesep}%
+ \printtext[#1time]{\csuse{mkbibtime\csuse{blx@timeformat@#1time}}{#1#2hour}{#1#2minute}{#1#2second}{#1#2timezone}}}
+ {}}
-\expandafter\newrobustcmd
-\expandafter*\csname mkbibrangeiso8601\endcsname[1]{%
+\newrobustcmd*{\mkdaterangeedtf}[1]{%
+ \blx@metadateinfo{#1}%
+ \def\bibdatetimesep{T}%
\iffieldundef{#1year}
{}
{\printtext[#1date]{%
- \blx@isodate{#1year}{#1month}{#1day}%
+ \blx@edtfdate{#1}{}%
+ \ifboolexpr{%
+ togl {blx@#1dateusetime}
+ and
+ not test {\iffieldundef{#1hour}}}
+ {\printtext{\bibdatetimesep}%
+ \blx@edtftime{#1}{}}
+ {}%
+ \dateuncertainprint
+ \datecircaprintedtf
\iffieldundef{#1endyear}
{}
- {\addslash\blx@isodate{#1endyear}{#1endmonth}{#1endday}}}}}
+ {\addslash
+ \blx@edtfdate{#1}{end}%
+ \ifboolexpr{%
+ togl {blx@#1dateusetime}
+ and
+ not test {\iffieldundef{#1endhour}}}
+ {\printtext{\bibdatetimesep}%
+ \blx@edtftime{#1}{end}}
+ {}%
+ \enddateuncertainprint
+ \enddatecircaprintedtf}}}}
+\cslet{mkdaterangeiso8601}\mkdaterangeedtf% Legacy option support
-\expandafter\newrobustcmd
-\expandafter*\csname mkbibrangeiso8601extra\endcsname[1]{%
+\newrobustcmd*{\mkdaterangeedtfextra}[1]{%
+ \blx@metadateinfo{#1}%
+ \def\bibdatetimesep{T}%
\iffieldundef{#1year}
{}
{\printtext[#1date]{%
- \blx@isodate[extrayear]{#1year}{#1month}{#1day}%
+ \blx@edtfdate[extrayear]{#1}{}%
+ \ifboolexpr{%
+ togl {blx@#1dateusetime}
+ and
+ not test {\iffieldundef{#1hour}}}
+ {\printtext{\bibdatetimesep}%
+ \blx@edtftime{#1}{}}
+ {}%
+ \dateuncertainprint
+ \datecircaprintedtf
\iffieldundef{#1endyear}
{}
- {\addslash\blx@isodate{#1endyear}{#1endmonth}{#1endday}}}}}
-
-\newrobustcmd*{\blx@isodate}[4][]{%
- \thefield{#2}\ifblank{#1}{}{\printfield{#1}}%
- \iffieldundef{#3}{}{\mbox{-}\thefield{#3}}%
- \iffieldundef{#4}{}{\mbox{-}\thefield{#4}}}
+ {\addslash
+ \blx@edtfdate{#1}{end}}%
+ \ifboolexpr{%
+ togl {blx@#1dateusetime}
+ and
+ not test {\iffieldundef{#1endhour}}}
+ {\printtext{\bibdatetimesep}%
+ \blx@edtftime{#1}{end}}
+ {}%
+ \enddateuncertainprint
+ \enddatecircaprintedtf}}}
+\cslet{mkdaterangeiso8601extra}\mkdaterangeedtfextra% Legacy option support
+
+% [extrayear]{<datetype>}{''|end}
+\newrobustcmd*{\blx@edtfdate}[3][]{%
+ \dateeraprintpre{#2#3year}%
+ \blx@imc@forcezerosy{\thefield{#2#3year}}\ifblank{#1}{}{\printfield{#1}}%
+ % Such a season component can only come from an EDTF 5.1.5 season which replaces
+ % a normal month so if it exists, we know that a normal date print is ruled out
+ \iffieldundef{#2#3season}
+ {\iffieldundef{#2#3month}{}{\hyphen\blx@imc@forcezerosmdt{\thefield{#2#3month}}}%
+ \iffieldundef{#2#3day}{}{\hyphen\blx@imc@forcezerosmdt{\thefield{#2#3day}}}}
+ {\hyphen\blx@seasonmap{\thefield{#2#3season}}}}
+
+\def\blx@seasonmap#1{%
+ \blx@xifstrcmp{#1}{spring}{21}
+ {\blx@xifstrcmp{#1}{summer}{22}
+ {\blx@xifstrcmp{#1}{autumn}{23}
+ {\blx@xifstrcmp{#1}{winter}{24}{}}}}}
+
+\newrobustcmd*{\blx@edtftime}[2]{%
+ \blx@imc@forcezerosmdt{\thefield{#1#2hour}}%
+ :\blx@imc@forcezerosmdt{\thefield{#1#2minute}}%
+ :\blx@imc@forcezerosmdt{\thefield{#1#2second}}%
+ \iftoggle{blx@timezones}
+ {\mkbibtimezone{\thefield{#1#2timezone}}}
+ {}}
-\newrobustcmd*{\mkbibdatelong}[3]{}
-\newrobustcmd*{\mkbibdateshort}[3]{}
+% times
+\newrobustcmd*{\bibtimesep}{:}
+\newrobustcmd*{\bibtimerangesep}{\textendash}
+\newrobustcmd*{\bibutctimezone}{Z}
+\newrobustcmd*{\bibtimezonesep}{}
+\newrobustcmd*{\bibtzminsep}{\bibtimesep}
+% dates
+\newrobustcmd*{\bibdateuncertain}{?}
+\newrobustcmd*{\bibdateeraprefix}{\textminus}
+\newrobustcmd*{\bibdateeraendprefix}{\,\bibdateeraprefix}
+\newrobustcmd*{\bibdatesep}{\hyphen}
+\newrobustcmd*{\bibdaterangesep}{\bibrangedash}
+\newrobustcmd*{\bibdatedash}{\bibrangedash}%LEGACY(<3.5)
+% date+times
+\newrobustcmd*{\bibdatetimesep}{\space}
+% ranges
\newrobustcmd*{\bibrangedash}{\textendash}
\newrobustcmd*{\bibrangessep}{,\space}
-\newrobustcmd*{\bibdatedash}{\bibrangedash}
+% formatters
+\newrobustcmd*{\mkbibtimezone}[1]{\blx@xifstrcmp{#1}{UTC}{\bibutctimezone}{#1}}
+\newrobustcmd*{\mkbibdatelong}[3]{}
+\newrobustcmd*{\mkbibdateshort}[3]{}
+\newrobustcmd*{\mkbibseasondateshort}[2]{}
+\newrobustcmd*{\mkbibseasondatelong}[2]{}
+\expandafter\newrobustcmd\expandafter*\csname mkbibtime24h\endcsname[4]{}
+\expandafter\newrobustcmd\expandafter*\csname mkbibtime12h\endcsname[4]{}
\newrobustcmd*{\finalandcomma}{}
\newrobustcmd*{\finalandsemicolon}{}
\newrobustcmd*{\mkbibordinal}[1]{#1}
\newrobustcmd*{\mkbibmascord}{\mkbibordinal}
\newrobustcmd*{\mkbibfemord}{\mkbibordinal}
\newrobustcmd*{\mkbibneutord}{\mkbibordinal}
+\newrobustcmd*{\mkbibseason}[1]{\abx@bibseason{#1}}
\newrobustcmd*{\mkbibmonth}[1]{%
\ifcase0#1\relax
\blx@warning@entry{Month out of range or not an integer}%
@@ -4929,10 +5242,31 @@
\blx@warning@entry{Month out of range}#1%
\fi}
-\protected\def\blx@imc@printdatelabel{}
-\protected\def\blx@imc@printdateextralabel{}
-
-\let\blx@imc@mkdatezeros\@firstofone
+% strip leading zeros and prepend zero for month/day/timeparts
+% Allow for non numeric labelyear values
+\protected\def\blx@imc@forcezerosmdt#1{%
+ \IfInteger{#1}
+ {\ifnumless{#1}{10}
+ {0\the\numexpr(#1)\relax}
+ {#1}}
+ {#1}}
+
+% strip leading zeros and prepend zero(s) for year
+% Allow for non numeric labelyear values
+\protected\def\blx@imc@forcezerosy#1{%
+ \IfInteger{#1}
+ {\ifnumless{#1}{10}% 1-digit year
+ {000\the\numexpr(#1)\relax}
+ {\ifnumless{#1}{100}% 2-digit year
+ {00\the\numexpr(#1)\relax}
+ {\ifnumless{#1}{1000}% 3-digit year
+ {0\the\numexpr(#1)\relax}
+ {#1}}}}
+ {#1}}
+
+\let\blx@imc@mkyearzeros\blx@imc@forcezerosy
+\let\blx@imc@mkmonthzeros\blx@imc@forcezerosmdt
+\let\blx@imc@mkdayzeros\blx@imc@forcezerosmdt
\protected\def\blx@imc@stripzeros#1{%
\begingroup
\setbox\@tempboxa=\hbox\bgroup
@@ -4949,7 +5283,28 @@
\@tempcnta#1\relax}
{\egroup#1}}
-\blx@regimcs{\printdatelabel \printdateextralabel \printorigdate \stripzeros \mkdatezeros}
+\let\blx@imc@printlabeldate\@empty
+\let\blx@imc@printlabeltime\@empty
+\let\blx@imc@printlabeldateextra\@empty
+
+\blx@regimcs{\printlabeldate \printlabeltime \printlabeldateextra \stripzeros \forcezerosy \forcezerosmdt \mkyearzeros \mkmonthzeros \mkdayzeros \mktimezeros}
+
+\protected\def\mkdatezeros{%
+ \blx@warning@noline{%
+ '\string\mkdatezeros' is deprecated, please use '\string\mkyearzeros',\MessageBreak
+ '\string\mkmonthzeros' or '\string\mkdayzeros' as appropriate. \MessageBreak
+ falling back to '\string\mkmonthzeros'}%
+ \mkmonthzeros}
+
+\protected\def\printdatelabel{%
+ \blx@warning@noline{%
+ '\string\printdatelabel' is deprecated, please use '\string\printlabeldate'}%
+ \blx@imc@printlabeldate}
+
+\protected\def\printdatelabelextra{%
+ \blx@warning@noline{%
+ '\string\printdatelabelextra' is deprecated, please use '\string\printlabeldateextra'}%
+ \blx@imc@printlabeldateextra}
% User macro for retrieving currrent language
\def\currentlang{\blx@languagename}
@@ -5143,21 +5498,20 @@
%% Biber equivalents to bibtex data interface
-\def\abx@doentrytypes{\dolistcsloop{blx@datamodel@entrytypes}}
+\def\abx@doentrytypes{\dolistloop\blx@datamodel@entrytypes}
% fields which can be used as labels - we auto-create some macros for these
-\def\abx@dolabelfields{\dolistcsloop{blx@datamodel@labelfields}}
+\def\abx@dolabelfields{\dolistloop\blx@datamodel@labelfields}
-\def\abx@donames{\dolistcsloop{blx@datamodel@names}}
+\def\abx@donames{\dolistloop\blx@datamodel@names}
+\def\abx@donameparts{\expandafter\docsvlist\expandafter{\blx@datamodel@constant@nameparts}}
-\def\abx@dofields{\dolistcsloop{blx@datamodel@fields}}
+\def\abx@dofields{\dolistloop\blx@datamodel@fields}
\def\abx@dolists{%
- \dolistcsloop{blx@datamodel@lists}%
+ \dolistloop\blx@datamodel@lists%
\do{pageref}}
-\def\abx@dodates{\dolistcsloop{blx@datamodel@dates}}
-
% Used to pass regexps to .bcf
\def\regexp#1{\expandafter\zap@space\detokenize{#1} \@empty}
@@ -5239,6 +5593,22 @@
{}
{\listcsgadd{#2@#1}{#3}}}
+% date, eventdate, urldate etc.
+\def\abx@dodates{\dolistloop\blx@datamodel@dates}
+% year, endyear, month, endmonth etc.
+\def\abx@dodateparts{\expandafter\docsvlist\expandafter{\blx@dateparts}}
+
+% '', event, url, orig etc.
+\def\do#1{%
+ \StrCut{#1}{date}\blx@datetype\blx@tempnull
+ \listxadd\blx@datetypes{\blx@datetype}}
+\abx@dodates
+% main date field has an empty prefix (''date) which can't be added to a list
+% and so do it explicity
+% This is one of the few (only?) hard-coded datamodel assumptions but it is
+% very unlikely that anyone would *remove* the main date field in a custom application ...
+\def\abx@dodatetypes{\do{}\dolistloop\blx@datetypes}
+
% per-entry inheritance blocking option for biber
\blx@collectopts{string}{blx@entryopts}{noinherit}
@@ -5326,12 +5696,69 @@
{\define@key{blx@opt@ent}{#1}[#2]{#3}}}
{\blx@err@optdef{#1}}}
-% These are internal fields which are not part of the data model but
+% Sanity check on date field names - they *must* end in 'date' to make things easier/possible later
+\def\do#1{%
+ \IfEndWith{#1}{date}
+ {}
+ {\blx@error
+ {Invalid date field name '#1'}
+ {Date fields in the datemodel must end in the string 'date' but '#1' doesn't}}}
+\abx@dodates
+
+% date meta-information option fallbacks
+\def\do#1{%
+ \cslet{#1datecircaprint}\@empty
+ \cslet{#1enddatecircaprint}\@empty
+ \cslet{#1datecircaprintedtf}\@empty
+ \cslet{#1enddatecircaprintedtf}\@empty
+ \cslet{#1dateuncertainprint}\@empty
+ \cslet{#1enddateuncertainprint}\@empty
+ \cslet{#1dateeraprint}\@gobble
+ \cslet{#1dateeraprintpre}\@gobble
+ \csdef{if#1dateera}##1{\@secondoftwo}%
+ \csdef{if#1enddateera}##1{\@secondoftwo}%
+ \cslet{if#1datecirca}\@secondoftwo
+ \cslet{if#1enddatecirca}\@secondoftwo
+ \cslet{if#1datejulian}\@secondoftwo
+ \cslet{if#1enddatejulian}\@secondoftwo
+ \cslet{if#1dateuncertain}\@secondoftwo
+ \cslet{if#1enddateuncertain}\@secondoftwo}
+\abx@dodatetypes
+\do{labeldate}
+
+% These are internal fields/booleans which are not part of the data model but
% which need to be dealt with along with data model fields in places
+\def\do#1{%
+ \listxadd\blx@datemetafields{#1dateera}%
+ \listxadd\blx@datemetafields{#1enddateera}%
+ \listxadd\blx@datemetafields{#1dateunspecified}}
+\abx@dodatetypes
+
+\def\do#1{%
+ \listxadd\blx@datemetabooleans{#1datecirca}%
+ \listxadd\blx@datemetabooleans{#1enddatecirca}%
+ \listxadd\blx@datemetabooleans{#1datejulian}%
+ \listxadd\blx@datemetabooleans{#1enddatejulian}%
+ \listxadd\blx@datemetabooleans{#1dateuncertain}%
+ \listxadd\blx@datemetabooleans{#1enddateuncertain}}
+\abx@dodatetypes
+
+\def\do#1{%
+ \listxadd\blx@namepartmetafields{#1namehash}%
+ \listxadd\blx@namepartmetafields{#1fullhash}}
+\abx@donameparts
+
+\def\do#1{%
+ \listxadd\blx@labeldatepartfields{label#1}}
+\abx@dodateparts
+
\def\abx@dointernalfields{%
\do{childentrykey}%
\do{clonesourcekey}%
- \do{datelabelsource}%
+ \do{labeldate}%
+ \do{labeldatesource}%
+ \do{labeldateera}%
+ \do{labelenddateera}%
\do{entrykey}%
\do{entryset}%
\do{entrysetcount}%
@@ -5343,59 +5770,223 @@
\do{fullhash}%
\do{labelalpha}%
\do{labelnumber}%
+ \do{labelprefix}%
\do{labeltitleyear}%
- \do{labeldate}%
\do{localnumber}%
\do{namehash}%
- \do{labelprefix}%
+ \do{options}%
\do{sortinit}%
- \do{sortinithash}}
+ \do{sortinithash}%
+ \forlistloop{\do}\blx@datemetafields
+ \forlistloop{\do}\blx@namepartmetafields
+ \forlistloop{\do}\blx@labeldatepartfields}
\def\abx@dobooleans{%
\do{crossrefsource}%
\do{xrefsource}%
\do{singletitle}%
\do{uniquetitle}%
- \do{uniqueprimaryauthor}}
+ \do{uniquebaretitle}%
+ \do{uniquework}%
+ \do{uniqueprimaryauthor}%
+ \forlistloop{\do}\blx@datemetabooleans}
% Date datatype fields
\def\do#1{%
- \protected\csdef{blx@imc@print#1}{}%
- \protected\csdef{blx@imc@print#1extra}{}}
-\abx@dodates
+ \protected\csdef{blx@imc@print#1date}{}%
+ \protected\csdef{blx@imc@print#1dateextra}{}%
+ \protected\csdef{blx@imc@print#1time}{}}
+\abx@dodatetypes
% \blx@regimcs doesn't work in do-lists nicely so use internal macro it calls
\def\do#1{%
- \xappto\blx@blxinit{\csletcs{print#1}{blx@imc@print#1}}%
- \xappto\blx@blxinit{\csletcs{print#1extra}{blx@imc@print#1extra}}}
-\abx@dodates
+ \xappto\blx@blxinit{\csletcs{print#1date}{blx@imc@print#1date}}%
+ \xappto\blx@blxinit{\csletcs{print#1time}{blx@imc@print#1time}}%
+ \xappto\blx@blxinit{\csletcs{print#1dateextra}{blx@imc@print#1dateextra}}}
+\abx@dodatetypes
+
+% Set up circa, julian and uncertain date internals
+\def\blx@imc@ifdatemeta@i#1#2{%
+ \appto\blx@blxinit{%
+ \csdef{if#1date#2}{\iftoggle{abx@bool@#1date#2}}%
+ \csdef{if#1enddate#2}{\iftoggle{abx@bool@#1enddate#2}}%
+ \appto\blx@TE@hook{%
+ \csdef{if#1date#2}{\blx@TE{\iftoggle{abx@bool@#1date#2}}}%
+ \csdef{if#1enddate#2}{\blx@TE{\iftoggle{abx@bool@#1enddate#2}}}}}}
+
+% Set up date era internals
+\def\blx@imc@ifdatemeta@ii#1{%
+ \appto\blx@blxinit{%
+ \csdef{if#1dateera}##1{\ifcsstring{abx@field@#1dateera}{##1}}%
+ \csdef{if#1enddateera}##1{\ifcsstring{abx@field@#1enddateera}{##1}}%
+ \appto\blx@TE@hook{%
+ \csdef{if#1dateera}##1{\blx@TE{\ifcsstring{abx@field@#1dateera}{##1}}}%
+ \csdef{if#1enddateera}##1{\blx@TE{\ifcsstring{abx@field@#1enddateera}{##1}}}}}}
+
+% Create date meta information boolean tests
+\def\do#1{%
+ \blx@imc@ifdatemeta@i{#1}{circa}%
+ \blx@imc@ifdatemeta@i{#1}{julian}%
+ \blx@imc@ifdatemeta@i{#1}{uncertain}}
+\abx@dodatetypes
+
+% Create date meta information field tests
+\def\do#1{%
+ \blx@imc@ifdatemeta@ii{#1}}
+\abx@dodatetypes
+
+% Resolve date meta information tests and print routines for labeldate
+% We have to test here, in each \def, whether the labeldatesource
+% is a real date field or not. If it's not, then we don't want to use
+% any of the meta-information and so make the conditionals always return false
+% This can't be neater by testing for the \abx@field@labeldatesource value
+% earlier because its not available until the tests are in scope.
+\appto\blx@blxinit{%
+ \ifdefstring\blx@dateera{astronomical}
+ {\protected\def\dateeraprintpre#1{%
+ \iffieldnum{#1}
+ {\begingroup
+ \let\blx@tempa\@empty
+ \IfEndWith{#1}{endyear}
+ {\StrCut{#1}{endyear}\blx@datetype\blx@tempnull
+ \def\blx@tempa{end}}
+ {\StrCut{#1}{year}\blx@datetype\blx@tempnull}%
+ \csuse{if\blx@datetype\blx@tempa dateera}{bce}
+ {\ifnumless{0-\thefield{#1}}{0}
+ {\printtext{\csuse{bibdateera\blx@tempa prefix}}}
+ {}}
+ {}%
+ \endgroup}
+ {}}}
+ {\protected\def\dateeraprint#1{%
+ \iffieldnum{#1}
+ {\begingroup
+ \let\blx@tempa\@empty
+ \IfEndWith{#1}{endyear}
+ {\StrCut{#1}{endyear}\blx@datetype\blx@tempnull
+ \def\blx@tempa{end}}
+ {\StrCut{#1}{year}\blx@datetype\blx@tempnull}%
+ \csuse{if\blx@datetype\blx@tempa dateera}{bce}
+ {\ifnum\numexpr0-\thefield{#1}\relax<\blx@dateeraauto
+ \printtext{\printdelim{dateeradelim}\bibstring{\blx@dateera@bce}}\relax
+ \fi}
+ {\ifnumless{\thefield{#1}}\blx@dateeraauto
+ {\printtext{\printdelim{dateeradelim}\bibstring{\blx@dateera@ce}}}
+ {}}%
+ \endgroup}
+ {}}}%
+ \iftoggle{blx@labeldateparts}
+ {\def\iflabeldateera#1{% start era
+ \xifinlist{\abx@field@labeldatesource date}\blx@datamodel@dates
+ {\ifcsstring{abx@field@\abx@field@labeldatesource dateera}{#1}}
+ {\@secondoftwo}}%
+ \appto\blx@TE@hook{\def\iflabeldateera#1{%
+ \xifinlist{\abx@field@labeldatesource date}\blx@datamodel@dates
+ {\blx@TE{\ifcsstring{abx@field@\abx@field@labeldatesource dateera}{#1}}}
+ {\@secondoftwo}}}%
+ % end era
+ \def\iflabelenddateera#1{%
+ \xifinlist{\abx@field@labeldatesource date}\blx@datamodel@dates
+ {\ifcsstring{abx@field@\abx@field@labeldatesource enddateera}{#1}}
+ {\@secondoftwo}}%
+ \appto\blx@TE@hook{\def\iflabelenddateera#1{%
+ \xifinlist{\abx@field@labeldatesource date}\blx@datamodel@dates
+ {\blx@TE{\ifcsstring{abx@field@\abx@field@labeldatesource enddateera}{#1}}}
+ {\@secondoftwo}}}%
+ % start circa
+ \def\iflabeldatecirca{%
+ \xifinlist{\abx@field@labeldatesource date}\blx@datamodel@dates
+ {\iftoggle{abx@bool@\abx@field@labeldatesource datecirca}}
+ {\@secondoftwo}}%
+ \appto\blx@TE@hook{\def\iflabeldatecirca{%
+ \xifinlist{\abx@field@labeldatesource date}\blx@datamodel@dates
+ {\blx@TE{\iftoggle{abx@bool@\abx@field@labeldatesource datecirca}}}
+ {\@secondoftwo}}}%
+ % end circa
+ \def\iflabelenddatecirca{%
+ \xifinlist{\abx@field@labeldatesource date}\blx@datamodel@dates
+ {\iftoggle{abx@bool@\abx@field@labeldatesource enddatecirca}}
+ {\@secondoftwo}}%
+ \appto\blx@TE@hook{\def\iflabelenddatecirca{%
+ \xifinlist{\abx@field@labeldatesource date}\blx@datamodel@dates
+ {\blx@TE{\iftoggle{abx@bool@\abx@field@labeldatesource enddatecirca}}}
+ {\@secondoftwo}}}%
+ % start julian
+ \def\iflabeldatejulian{%
+ \xifinlist{\abx@field@labeldatesource date}\blx@datamodel@dates
+ {\iftoggle{abx@bool@\abx@field@labeldatesource datejulian}}
+ {\@secondoftwo}}%
+ \appto\blx@TE@hook{\def\iflabeldatejulian{%
+ \xifinlist{\abx@field@labeldatesource date}\blx@datamodel@dates
+ {\blx@TE{\iftoggle{abx@bool@\abx@field@labeldatesource datejulian}}}
+ {\@secondoftwo}}}%
+ % end julian
+ \def\iflabelenddatejulian{%
+ \xifinlist{\abx@field@labeldatesource date}\blx@datamodel@dates
+ {\iftoggle{abx@bool@\abx@field@labeldatesource enddatejulian}}
+ {\@secondoftwo}}%
+ \appto\blx@TE@hook{\def\iflabelenddatejulian{%
+ \xifinlist{\abx@field@labeldatesource date}\blx@datamodel@dates
+ {\blx@TE{\iftoggle{abx@bool@\abx@field@labeldatesource enddatejulian}}}
+ {\@secondoftwo}}}%
+ % start uncertain
+ \def\iflabeldateuncertain{%
+ \xifinlist{\abx@field@labeldatesource date}\blx@datamodel@dates
+ {\iftoggle{abx@bool@\abx@field@labeldatesource dateuncertain}}
+ {\@secondoftwo}}%
+ \appto\blx@TE@hook{\def\iflabeldateuncertain{%
+ \xifinlist{\abx@field@labeldatesource date}\blx@datamodel@dates
+ {\blx@TE{\iftoggle{abx@bool@\abx@field@labeldatesource dateuncertain}}}
+ {\@secondoftwo}}}%
+ % end uncertain
+ \def\iflabelenddateuncertain{%
+ \xifinlist{\abx@field@labeldatesource date}\blx@datamodel@dates
+ {\iftoggle{abx@bool@\abx@field@labeldatesource enddateuncertain}}
+ {\@secondoftwo}}%
+ \appto\blx@TE@hook{\def\iflabelenddateuncertain{%
+ \xifinlist{\abx@field@labeldatesource date}\blx@datamodel@dates
+ {\blx@TE{\iftoggle{abx@bool@\abx@field@labeldatesource enddateuncertain}}}
+ {\@secondoftwo}}}}%
+ {}}
% Name toggles like \ifauthor etc. need to be dynamically created for all
% name datatypes in the data model and we have to do this here after the
% datamodel is available. Need to be careful about expansions here as these
% go into hooks to be executed later
-% Define name toggles
-\def\do#1{\newtoggle{blx@use#1}\toggletrue{blx@use#1}}
-\abx@donames
-
-% Define name toggle checking macros
-\let\blx@nametoggles\@empty
-\def\do#1{\gappto\blx@nametoggles{\expandafter\def\csname ifuse#1\endcsname{\iftoggle{blx@use#1}}}}
-\abx@donames
-\eappto\blx@blxinit{\expandafter\expandonce\noexpand\blx@nametoggles}
-
-% Define ifthen interface name toggle checking macros
-\let\blx@nametogglesit\@empty
-\def\do#1{\gappto\blx@nametogglesit{\expandafter\def\csname ifuse#1\endcsname{\blx@TE{\iftoggle{blx@use#1}}}}}
-\abx@donames
-\expandafter\def\expandafter\blx@nametogglesite\expandafter{\expandonce\blx@nametogglesit}
-\appto\blx@blxinit{\appto\blx@TE@hook{\blx@nametogglesite}}
+% toggle to say if we have set any <name>inits to true. Used for conflict
+% tests with uniquename settings (see \AtEndPreamble below)
+\newtoggle{abx@bool@xinits}
+% define <name>inits options and tests (terseinits is global for all initials)
+\def\do#1{%
+ \newtoggle{abx@bool@#1inits}%
+ \appto\blx@blxinit{%
+ \csdef{if#1inits}{\iftoggle{abx@bool@#1inits}}%
+ \appto\blx@TE@hook{%
+ \csdef{if#1inits}{\blx@TE{\iftoggle{abx@bool@#1inits}}}}}%
+ \DeclareBibliographyOption[boolean]{#1inits}[true]{%
+ \toggletrue{abx@bool@#1inits}%
+ \toggletrue{abx@bool@xinits}}}
+\abx@donameparts
+
+%LEGACY(<3.3) legacy name for \ifgiveninits which is autogenerated now
+\def\iffirstinits{
+ \blx@warning@noline{%
+ '\string\iffirstinits' is deprecated, use '\string\ifgiveninits'}%
+ \iftoggle{abx@bool@giveninits}}
-% Define \ifuse<name> options scope for biber
-\def\do#1{\blx@collectopts{boolean}{blx@globalopts}{use#1}%
- \blx@collectopts{boolean}{blx@typeopts}{use#1}%
- \blx@collectopts{boolean}{blx@entryopts}{use#1}}
+\def\do#1{%
+ % Define use<name> options scope for biber
+ \blx@collectopts{boolean}{blx@globalopts}{use#1}%
+ \blx@collectopts{boolean}{blx@typeopts}{use#1}%
+ \blx@collectopts{boolean}{blx@entryopts}{use#1}%
+ % Define name toggles
+ \newtoggle{blx@use#1}\toggletrue{blx@use#1}%
+ % Define tests
+ \appto\blx@blxinit{%
+ \csdef{ifuse#1}{\iftoggle{blx@use#1}}%
+ \appto\blx@TE@hook{%
+ \csdef{ifuse#1}{\blx@TE{\iftoggle{blx@use#1}}}}}}
\abx@donames
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -5434,7 +6025,6 @@
\abx@dolists
\let\do\blx@imc@clearfield
\abx@dofields
- \do{options}\do{labelyear}\do{labelmonth}\do{labelday}\do{datelabelsource}%
\abx@dointernalfields
\def\do##1{\togglefalse{abx@bool@##1}}%
\abx@dobooleans
@@ -5462,7 +6052,6 @@
\abx@dofields
\let\do\blx@saverelfield
\dolistloop\abx@dorelfields
- \do{options}\do{labelyear}\do{labelmonth}\do{labelday}\do{datelabelsource}%
\abx@dointernalfields
\let\do\blx@savebool
\abx@dobooleans
@@ -5649,6 +6238,7 @@
\ifdefvoid\currentfield{}{\let\blx@tempa\currentfield}%
\ifdefvoid\currentlist{}{\let\blx@tempa\currentlist}%
\ifdefvoid\currentname{}{\let\blx@tempa\currentname}%
+ \blx@resolve@annotation@label{\blx@tempa}%
\ifinlistcs{#1}{abx@annotation@field@\blx@tempa}}
% {<annotation>}
@@ -5656,6 +6246,7 @@
\ifdefvoid\currentfield{}{\let\blx@tempa\currentfield}%
\ifdefvoid\currentlist{}{\let\blx@tempa\currentlist}%
\ifdefvoid\currentname{}{\let\blx@tempa\currentname}%
+ \blx@resolve@annotation@label{\blx@tempa}%
\ifinlistcs{#1}{abx@annotation@item@\blx@tempa @\the\value{listcount}}}
% {<part>}{<annotation>}
@@ -5663,8 +6254,15 @@
\ifdefvoid\currentfield{}{\let\blx@tempa\currentfield}%
\ifdefvoid\currentlist{}{\let\blx@tempa\currentlist}%
\ifdefvoid\currentname{}{\let\blx@tempa\currentname}%
+ \blx@resolve@annotation@label{\blx@tempa}%
\ifinlistcs{#2}{abx@annotation@part@\blx@tempa @\the\value{listcount}@#1}}
+% {<fieldname>}
+\def\blx@resolve@annotation@label#1{%
+ \ifcsundef{abx@field@#1source}
+ {}%
+ {\letcs\blx@tempa{abx@field@#1source}}}
+
\begingroup
\catcode`\<=12
\catcode`\>=12
@@ -5791,29 +6389,143 @@
\def\blx@getdata#1{%
\csuse{blx@data@\the\c@refsection @\blx@refcontext@context @#1}%
- % Here we resolve label* bib fields to their real fields. Doing this here
- % dynamically means that we can vary the field chosen depending on the refcontext.
- % biber used to resolve these and materialise them in the .bbl but this
- % means a static resolution which is independent of the document context.
+ \blx@adjustyears
+ \blx@getlabeldata
+ \blx@setcitecounter}
+
+\def\blx@adjustyears{%
+ % All dates by default are output from biber in astronomical era with a year 0
+ % So, if we are ouputting BCE/BC era, we need to adjust the years by +1
\def\do##1{%
- \ifcsdef{abx@field@##1source}
- {\expandafter\def\csname abx@field@##1\endcsname{\csuse{abx@field@\csuse{abx@field@##1source}}}}%
+ \ifdefstring\blx@dateera{astronomical}
+ {}
+ {\ifcsdef{abx@field@##1year}
+ {\csuse{if##1dateera}{bce}
+ {\csedef{abx@field@##1year}{\number\numexpr\csuse{abx@field@##1year}+1}}
+ {}}
+ {}%
+ \ifcsdef{abx@field@##1endyear}
+ {\csuse{if##1enddateera}{bce}
+ {\csedef{abx@field@##1endyear}{\number\numexpr\csuse{abx@field@##1endyear}+1}}
+ {}}
+ {}}%
{}}%
+ \abx@dodatetypes}
+
+\def\blx@getlabeldata{%
+ % Here we resolve label* bib fields to their real fields. In fact, currently biber resolves
+ % the label* fields too, as it needs to do this to generate various internal
+ % counters for tracking things like singletitle etc. internally. However, it does not output
+ % the resolved values to the .bbl. It is conceptually neater to have just the calculated label*
+ % source field in the .bbl and let biblatex resolve the label* field using the label*source
+ % fields. However, currently there is no way/need to vary the label* resolution to pick up a
+ % different target field in biblatex and so practically, this resolution is being done twice,
+ % once by biber, once by biblatex. It is possible in the future that it would be useful to
+ % to change the resolution of the label* fields dynamically in a style/document and so this
+ % biblatex-side resolution remains.
+ %
+ % An unanswered question is whether such dynamic resolution causes problems due to the fact
+ % that biber uses the label* field to generate counters internally and changing the
+ % label* field resolution in biblatex would occur after such counters have been used to
+ % generate the .bbl
+ % This could all be removed from biblatex if necessary and biber could output all resolved
+ % label* fields to the .bbl but then it potentially removes control of such things from
+ % macros
+ %
+ % fields
+ \def\do##1{%
+ \ifcsundef{abx@field@##1source}
+ {}%
+ {\csletcs{abx@field@##1}{abx@field@\csuse{abx@field@##1source}}}}%
\dolistloop\abx@rfields%
- % Just in case we ever have non-name lists to instantiate
- % \def\do##1{%
- % \ifcsdef{abx@field@##1source}
- % {\csname c@##1\expandafter\endcsname\expandafter\the\csname c@\csuse{abx@field@##1source}\endcsname
- % \csletcs{abx@list@##1}{abx@list@\csuse{abx@field@##1source}}}
- % {}}%
- % \dolistloop\abx@rlists%
+ % names
\def\do##1{%
- \ifcsdef{abx@field@##1source}
+ \ifcsundef{abx@field@##1source}
+ {}
{\csname c@##1\expandafter\endcsname\expandafter\the\csname c@\csuse{abx@field@##1source}\endcsname
- \csletcs{abx@name@##1}{abx@name@\csuse{abx@field@##1source}}}
- {}}%
+ \csletcs{abx@name@##1}{abx@name@\csuse{abx@field@##1source}}}}%
\dolistloop\abx@rnames%
- \blx@setcitecounter}
+ % Resolve labeldate
+ % Note that here we can't refer to labelyear as this is where we create it, hence the
+ % complications in constructing test names etc.
+ % This also shows why biber shouldn't resolve labeldate fields as we have to add
+ % circa/uncertain/era etc. information to them and that has to be done here.
+ \ifundef\abx@field@labeldatesource
+ {}
+ {\ifcsundef{abx@field@\abx@field@labeldatesource year}
+ % \DeclareLabeldate resolved to a literal/localisation string or a non-date field
+ % in which case we only set labelyear.
+ {\ifcsundef{abx@field@\abx@field@labeldatesource}
+ % \DeclareLabeldate resolved to a literal/localisation string
+ {\edef\abx@field@labelyear{\abx@field@labeldatesource}}
+ % \DeclareLabeldate resolved to a non-date field. Not safe to \edef because
+ % such contents could contain arbitrary macros, unlike ETDT sourced labeldatesource values
+ {\def\abx@field@labelyear{\csuse{abx@field@\abx@field@labeldatesource}}}}
+ % \DeclareLabeldate resolved to a date field name prefix like '', 'event', 'url'
+ % or 'orig'
+ {% labeldateera/labelenddateera
+ \ifcsdef{abx@field@\abx@field@labeldatesource dateera}
+ {\edef\abx@field@labeldateera{\csuse{abx@field@\abx@field@labeldatesource dateera}}}
+ {}%
+ \ifcsdef{abx@field@\abx@field@labeldatesource enddateera}
+ {\edef\abx@field@labelenddateera{\csuse{abx@field@\abx@field@labeldatesource enddateera}}}
+ {}%
+ % labelyear/labelendyear
+ \ifcsdef{abx@field@\abx@field@labeldatesource year}
+ {\edef\abx@field@labelyear{\csuse{abx@field@\abx@field@labeldatesource year}}}
+ {}%
+ \ifcsdef{abx@field@\abx@field@labeldatesource endyear}
+ {\edef\abx@field@labelendyear{\csuse{abx@field@\abx@field@labeldatesource endyear}}}
+ {}%
+ % labelmonth
+ \ifcsdef{abx@field@\abx@field@labeldatesource month}
+ {\edef\abx@field@labelmonth{\csuse{abx@field@\abx@field@labeldatesource month}}}
+ {}%
+ \ifcsdef{abx@field@\abx@field@labeldatesource endmonth}
+ {\edef\abx@field@labelendmonth{\csuse{abx@field@\abx@field@labeldatesource endmonth}}}
+ {}%
+ % labelday/labelendday
+ \ifcsdef{abx@field@\abx@field@labeldatesource day}
+ {\edef\abx@field@labelday{\csuse{abx@field@\abx@field@labeldatesource day}}}
+ {}%
+ \ifcsdef{abx@field@\abx@field@labeldatesource endday}
+ {\edef\abx@field@labelendday{\csuse{abx@field@\abx@field@labeldatesource endday}}}
+ {}%
+ % labelhour/labelendhour
+ \ifcsdef{abx@field@\abx@field@labeldatesource hour}
+ {\edef\abx@field@labelhour{\csuse{abx@field@\abx@field@labeldatesource hour}}}
+ {}%
+ \ifcsdef{abx@field@\abx@field@labeldatesource endhour}
+ {\edef\abx@field@labelendhour{\csuse{abx@field@\abx@field@labeldatesource endhour}}}
+ {}%
+ % labelminute/labelendminute
+ \ifcsdef{abx@field@\abx@field@labeldatesource minute}
+ {\edef\abx@field@labelminute{\csuse{abx@field@\abx@field@labeldatesource minute}}}
+ {}%
+ \ifcsdef{abx@field@\abx@field@labeldatesource endminute}
+ {\edef\abx@field@labelendminute{\csuse{abx@field@\abx@field@labeldatesource endminute}}}
+ {}%
+ % labelsecond/labelendsecond
+ \ifcsdef{abx@field@\abx@field@labeldatesource second}
+ {\edef\abx@field@labelsecond{\csuse{abx@field@\abx@field@labeldatesource second}}}
+ {}%
+ \ifcsdef{abx@field@\abx@field@labeldatesource endsecond}
+ {\edef\abx@field@labelendsecond{\csuse{abx@field@\abx@field@labeldatesource endsecond}}}
+ {}%
+ % labeltimezone/labelendtimezone
+ \ifcsdef{abx@field@\abx@field@labeldatesource timezone}
+ {\edef\abx@field@labeltimezone{\csuse{abx@field@\abx@field@labeldatesource timezone}}}
+ {}%
+ \ifcsdef{abx@field@\abx@field@labeldatesource endtimezone}
+ {\edef\abx@field@labelendtimezone{\csuse{abx@field@\abx@field@labeldatesource endtimezone}}}
+ {}%
+ % labelseason/labelendseason
+ \ifcsdef{abx@field@\abx@field@labeldatesource season}
+ {\edef\abx@field@labelseason{\csuse{abx@field@\abx@field@labeldatesource season}}}
+ {}%
+ \ifcsdef{abx@field@\abx@field@labeldatesource endseason}
+ {\edef\abx@field@labelendseason{\csuse{abx@field@\abx@field@labeldatesource endseason}}}
+ {}}}}
\def\blx@getdata@cite#1{%
\ifcsdef{blx@setc@\the\c@refsection @#1}
@@ -5964,7 +6676,7 @@
\iftoggle{blx@labeltitleyear}
{\blx@bbl@labeltitleyear}
{}%
- \iftoggle{blx@labeldate}
+ \iftoggle{blx@labeldateparts}
{\blx@bbl@labeldate}
{}}
{}%
@@ -6202,7 +6914,7 @@
% rerun biber toggle so defernums doesn't consume the localnumbers
% in the .aux but instead, re-writes them, which is what we need.
\begingroup
- \def\do#1{\ifinlist{#1}{\blx@cites}{}{\blx@logreq@active{}}\relax}%
+ \def\do#1{\ifinlist{#1}\blx@cites{}{\blx@logreq@active{}}\relax}%
\dolistloop\blx@lastcites
% Special case - if we are using sortscheme "none" anywhere, then changes
% in citation order matter and we need to re-run biber. So a special test
@@ -6212,26 +6924,26 @@
% lastcite lists as strings and comparing them. This doesn't apply
% to biblist sortschemes as nobody wants to sort biblists with
% "none", since it makes no sense
- \ifinlist{none}{\blx@sortschemes}
+ \ifinlist{none}\blx@sortschemes
{\ifdefstrequal{\blx@cites}{\blx@lastcites}
{}
{\blx@logreq@active{}}}
{}%
% Test if we removed any mention of a reference context since last run
% If we did, we need to re-run biber
- \def\do#1{\ifinlist{#1}{\blx@refcontexts}{}{\blx@logreq@active{}}\relax}%
+ \def\do#1{\ifinlist{#1}\blx@refcontexts{}{\blx@logreq@active{}}\relax}%
\dolistloop\blx@lastrefcontexts
% Test if we added any mention of a reference context since last run
% If we did, we need to re-run biber
- \def\do#1{\ifinlist{#1}{\blx@lastrefcontexts}{}{\blx@logreq@active{}}\relax}%
+ \def\do#1{\ifinlist{#1}\blx@lastrefcontexts{}{\blx@logreq@active{}}\relax}%
\dolistloop\blx@refcontexts
% Test if we removed any mention of a biblist since last run.
% If we did, we need to re-run biber
- \def\do#1{\ifinlist{#1}{\blx@biblists}{}{\blx@logreq@active{}}\relax}%
+ \def\do#1{\ifinlist{#1}\blx@biblists{}{\blx@logreq@active{}}\relax}%
\dolistloop\blx@lastbiblists
% Test to see if we added any mention of a biblist since last run.
% If we did, we need to re-run biber
- \def\do#1{\ifinlist{#1}{\blx@lastbiblists}{}{\blx@logreq@active{}}\relax}%
+ \def\do#1{\ifinlist{#1}\blx@lastbiblists{}{\blx@logreq@active{}}\relax}%
\dolistloop\blx@biblists
% If we have to run biber or latex again and we are using defernumbers,
% don't write the localnumber information to the .aux file yet as we will
@@ -6324,7 +7036,6 @@
\blx@tempa}
%% Data input
-
\def\blx@bblinput{%
\begingroup
\blx@info@noline{Trying to load bibliographic data..}%
@@ -6477,9 +7188,13 @@
\define@key{blx@bib1}{title}{}
\define@key{blx@bib1}{prenote}{}
\define@key{blx@bib1}{postnote}{}
-\define@key{blx@bib1}{resetnumbers}[]{}
\define@key{blx@bib1}{omitnumbers}[]{}
-\define@key{blx@bib1}{prefixnumbers}{}% legacy name for labelprefix
+\define@key{blx@bib1}{prefixnumbers}{}%LEGACY(<3.4) legacy name for labelprefix
+% Here we are using the first pass to see if there is an explicit setting for resetnumbers
+% If there isn't we will use the default behaviour where if there is a labelprefix,
+% resetnumbers will default to "true"
+\define@key{blx@bib1}{resetnumbers}[true]{%
+ \toggletrue{blx@resetnumsexplicit}}
\define@key{blx@bib2}{section}{}
\define@key{blx@bib2}{sorting}{}
@@ -6764,6 +7479,11 @@
\blx@bibheading\blx@theheading\blx@thetitle
\endgroup}
+% We use this to determine whether an explicit value for resetnumbers is passed to
+% \printbibliography, if not, then we use the default behaviour where a labelprefix forces
+% a reset. It is useful that we have a 2-pass structure for \printbibliography keys anyway.
+\newtoggle{blx@resetnumsexplicit}
+
% [<options>]
\newrobustcmd*{\printbibliography}{%
\begingroup
@@ -6774,9 +7494,6 @@
{\blx@printbibliography[]}}
\def\blx@printbibliography[#1]{%
- \ifdefempty\blx@refcontext@labelprefix
- {}
- {\csnumdef{blx@labelnumber@\the\c@refsection}{0}}%
\toggletrue{blx@tempa}%
\toggletrue{blx@tempb}%
\def\blx@theheading{bibliography}%
@@ -6800,7 +7517,16 @@
{ locale="\csuse{blx@sortdef@locale@\blx@refcontext@sorting}"}
{}}{%
\csuse{blx@sorting@\blx@refcontext@sorting}}}%
- \setkeys{blx@bib1}{#1}% Set section only, if present ...
+ %
+ \togglefalse{blx@resetnumsexplicit}%
+ \setkeys{blx@bib1}{#1}% First pass options keys - section and resetnumbers
+ % Is there a user-specified option for resetnumbers? If so, this overrides the default
+ % "labelprefix implies resetnumbers" behaviour
+ \iftoggle{blx@resetnumsexplicit}
+ {}
+ {\ifdefempty\blx@refcontext@labelprefix
+ {}
+ {\setkeys{blx@bib2}{resetnumbers}}}%
\blx@rest@actives
\ifcsvoid{blx@slist@entry@\blx@tempe @\blx@refcontext@context}
{}
@@ -7215,7 +7941,7 @@
\blx@printbibchecks
% Add the sortscheme to the list of sortschemes for this biblist
% so we can compare on next run
- \xifinlist{\blx@tempc}{\blx@biblists}
+ \xifinlist\blx@tempc\blx@biblists
{}
{\listxadd\blx@biblists\blx@tempc
\blx@auxwrite\@mainaux{}{\string\abx@aux@biblist{\blx@tempc}}}%
@@ -7325,15 +8051,35 @@
{\printfield{shorttitle}}}
% Reference contexts
+\newcommand*{\DeclareRefcontext}[2]{%
+ \csgdef{blx@refcontext@name@#1}{#2}}
+\@onlypreamble\DeclareRefcontext
+
\def\newrefcontext{%
\endrefcontext
\refcontext}
-\def\refcontext[#1]{%
+% Backwards compat for older \refcontext[] format
+\def\refcontext{%
+ \@ifnextchar[%]
+ {\refcontext@i}
+ {\refcontext@i[]}}
+
+\def\refcontext@i[#1]{%
+ \@ifnextchar\bgroup
+ {\refcontext@ii[#1]}
+ {\refcontext@ii[#1]{}}}
+
+\newcommand*{\refcontext@ii}[2][]{%
\iftoggle{blx@refcontext}
{\blx@err@nestenv{refcontext}%
\endrefcontext}
{\toggletrue{blx@refcontext}%
+ % Set refcontext from named refcontext, if given
+ \ifblank{#2}
+ {}
+ {\edef\z{\noexpand\setkeys{blx@refcontext}{\csuse{blx@refcontext@name@#2}}}\z}%
+ % Override with explicit refcontext keyvals, if given
\setkeys{blx@refcontext}{#1}%
% Add the sortscheme to the list of sortschemes so we can track
% special cases like sorting=none which need cite order change detection
@@ -7373,7 +8119,7 @@
Option 'labelprefix' requires global\MessageBreak
'defernumbers=true'}}
{}}}
-\define@key{blx@refcontext}{prefixnumbers}{% legacy
+\define@key{blx@refcontext}{prefixnumbers}{%LEGACY(<3.3)
\blx@warning@noline{%
prefixnumbers option to \string\newrefcontext\space has been renamed,
use 'labelprefix' option instead}%
@@ -7983,7 +8729,7 @@
\blx@tempcnta\z@
\blx@tempcntb\z@
\let\blx@tempa\@empty
- \forcsvlist\blx@citeadd{#1}%
+ \forcsvlist\blx@citeadd{#1}% adds to \blx@tempa
\blx@thenotecheck
\ifnum\blx@tempcnta>\z@
\ifnum\blx@tempcntb>\z@
@@ -7991,6 +8737,8 @@
\fi
\fi
\letcs\blx@tempb{blx@slist@centry@\the\c@refsection @\blx@refcontext@context}%
+ % \blx@tempb is a sorted list of all cites, \blx@tempa is the list of cites to
+ % sort using this list
\blx@thecitesort
\edef\blx@tempa{\endgroup
\c@citecount\z@
@@ -8041,13 +8789,9 @@
% made (a bit strangely but some styles do this) inside a biblist
% which never appear in any printed bib/biblist and therefore have no default
% refcontext defined
- % However, only do this if sortcites is not used for in this case, by default we
- % want to use the current refcontext in which the cites occur
- \ifbool{sortcites}
- {}
- {\ifcsdef{blx@assignedrefcontextbib@\the\c@refsection @#1}
- {\letcs\blx@refcontext@context{blx@assignedrefcontextbib@\the\c@refsection @#1}}
- {\edef\blx@refcontext@context{\blx@sorting/global/}}}%
+ \ifcsdef{blx@assignedrefcontextbib@\the\c@refsection @#1}
+ {\letcs\blx@refcontext@context{blx@assignedrefcontextbib@\the\c@refsection @#1}}
+ {\edef\blx@refcontext@context{\blx@sorting/global/}}%
% assignment via keyword list
\ifdef\blx@assignedrefcontextkeywlist
{\def\do##1{%
@@ -8137,7 +8881,6 @@
\let\blx@refcontext@context\blx@refcontext@context@saved}
% cite counter
-
\def\blx@citecounter@global{%
\ifbool{@filesw}
{\ifbool{citetracker}
@@ -8159,7 +8902,6 @@
{}}
% {<refsection>}{<entrykey>}
-
\protected\def\blx@aux@count#1#2{%
\csnumgdef{blx@count@#1@\detokenize{#2}}{\csuse{blx@count@#1@\detokenize{#2}}+1}}
\protected\def\blx@aux@fncount#1#2{%
@@ -8185,7 +8927,6 @@
\relax}
% cite tracker
-
\def\blx@citetracker@global{%
\ifbool{citetracker}
{\xifinlistcs\abx@field@entrykey{blx@bsee@\the\c@refsection}
@@ -8217,7 +8958,6 @@
\global\cslet{blx@saved@fsee@\the\c@refsection}\@empty}
% ibidem tracker
-
\def\blx@ibidtracker@global{%
\ifbool{citetracker}
{\global\let\blx@lastkey@text\abx@field@entrykey}
@@ -8268,7 +9008,6 @@
\global\undef\blx@saved@lastkey@foot}
% idem tracker
-
\def\blx@idemtracker@global{%
\ifbool{citetracker}
{\global\let\blx@lasthash@text\abx@field@fullhash}
@@ -8314,7 +9053,6 @@
\global\undef\blx@saved@lasthash@foot}
% opcit tracker
-
\def\blx@opcittracker@global{%
\ifbool{citetracker}
{\blx@opcit@tracker{text}}
@@ -8403,7 +9141,6 @@
\endgroup}
% loccit tracker
-
\def\blx@loccittracker@global{%
\ifbool{citetracker}
{\blx@loccit@tracker{text}}
@@ -8582,7 +9319,6 @@
\fi}
% hyperref interface
-
\appto\blx@mkhyperref{%
\protected\def\blx@imc@bibhyperref{%
\@ifnextchar[%]
@@ -9204,15 +9940,14 @@
\def\iffootnote{\blx@TE{\iftoggle{blx@footnote}}}%
\def\ifuseprefix{\blx@TE{\iftoggle{blx@useprefix}}}%
\def\ifterseinits{\blx@TE{\iftoggle{blx@terseinits}}}%
- \def\iffirstinits{\blx@TE{\iftoggle{blx@giveninits}}}% legacy name for \ifgiveninits
- \def\ifgiveninits{\blx@TE{\iftoggle{blx@giveninits}}}%
\def\ifsingletitle{\blx@TE{\iftoggle{abx@bool@singletitle}}}%
\def\ifuniquetitle{\blx@TE{\iftoggle{abx@bool@uniquetitle}}}%
+ \def\ifuniquebaretitle{\blx@TE{\iftoggle{abx@bool@uniquebaretitle}}}%
+ \def\ifuniquework{\blx@TE{\iftoggle{abx@bool@uniquework}}}%
\def\ifuniqueprimaryauthor{\blx@TE{\iftoggle{abx@bool@uniqueprimaryauthor}}}%
\def\ifandothers#1{\blx@TE{\iftoggle{abx@bool@more#1}}}}}
% {<listmacro>}{<filtercsname>} => matches in <listmacro>
-
\protected\def\blx@bibfilter#1#2{%
\begingroup
\edef\blx@do##1{%
@@ -9230,7 +9965,6 @@
\blx@tempa}
%% Auxiliary macros
-
\newrobustcmd*{\mkbibquote}{\enquote}
\protected\def\blx@imc@mkbibquote{%
\blx@ifuspunct\blx@usquote\enquote}
@@ -9629,6 +10363,13 @@
\xdef\blx@xml@sourcemap@step#1{%
~~~~~~~~<bcf:map\string_step#1/>\blx@nl}
+\xdef\blx@xml@labelalphanametemplate#1#2{%
+ ~~<bcf:labelalphanametemplate type="#1">\blx@nl
+ #2%
+ ~~</bcf:labelalphanametemplate>\blx@nl}
+\xdef\blx@xml@labelalphanametemplatenamepart#1#2#3{%
+ ~~~~<bcf:namepart #1#2>#3</bcf:namepart>\blx@nl}
+
\xdef\blx@xml@labelalphatemplate#1#2{%
~~<bcf:labelalphatemplate type="#1">\blx@nl
#2%
@@ -9648,9 +10389,9 @@
~~~~<bcf:defaults#1>\blx@nl
#2%
~~~~</bcf:defaults>\blx@nl}
-\xdef\blx@xml@inherit@data#1{%
- ~~~~<bcf:inherit>\blx@nl
- #1%
+\xdef\blx@xml@inherit@data#1#2{%
+ ~~~~<bcf:inherit#1>\blx@nl
+ #2%
~~~~</bcf:inherit>\blx@nl}
\xdef\blx@xml@inherit@type#1#2#3{%
~~~~~~<bcf:type\string_pair source="#1" target="#2"#3/>\blx@nl}
@@ -9687,6 +10428,14 @@
\xdef\blx@xml@nolabelwidthcount#1{%
~~~~<bcf:nolabelwidthcount value="#1"/>\blx@nl}
+\xdef\blx@xml@uniquenametemplate#1{%
+ ~~<bcf:uniquenametemplate>\blx@nl%
+ #1%
+ ~~</bcf:uniquenametemplate>\blx@nl}
+
+\xdef\blx@xml@uniquenametemplatenamepart#1#2#3{%
+ ~~~~<bcf:namepart #1#2>#3</bcf:namepart>\blx@nl}
+
\xdef\blx@xml@sortingnamekey#1#2{%
~~<bcf:sortingnamekey keyscheme="#1">\blx@nl%
#2%
@@ -9778,8 +10527,10 @@
\blx@xml@toggle{labeltitle}%
\blx@xml@mvalue{labeltitlespec}{\blx@bcf@labeltitlespec}%
\blx@xml@toggle{labeltitleyear}%
- \blx@xml@toggle{labeldate}%
+ \blx@xml@toggle{labeldateparts}%
\blx@xml@mvalue{labeldatespec}{\blx@bcf@labeldatespec}%
+ \blx@xml@toggle{julian}%
+ \blx@xml@svalue{gregorianstart}{\blx@gregorianstart}%
\blx@xml@svalue{maxalphanames}{\blx@maxalphanames}%
\blx@xml@svalue{maxbibnames}{\blx@maxbibnames}%
\blx@xml@svalue{maxcitenames}{\blx@maxcitenames}%
@@ -9796,6 +10547,8 @@
\blx@xml@svalue{uniquename}{\blx@uniquename}%
\blx@xml@toggle{uniqueprimaryauthor}%
\blx@xml@toggle{uniquetitle}%
+ \blx@xml@toggle{uniquebaretitle}%
+ \blx@xml@toggle{uniquework}%
\blx@xml@toggle{useprefix}%
\blx@xml@nametoggles
}%
@@ -9815,7 +10568,7 @@
{\csuse{blx@bcf@labeltitlespec@#1}}
{\blx@bcf@labeltitlespec}}%
\blx@xml@toggle{labeltitleyear}%
- \blx@xml@toggle{labeldate}%
+ \blx@xml@toggle{labeldateparts}%
\blx@xml@mvalue{labeldatespec}{%
\ifcsdef{blx@bcf@labeldatespec@#1}
{\csuse{blx@bcf@labeldatespec@#1}}
@@ -9836,6 +10589,8 @@
\blx@xml@svalue{uniquename}{\blx@uniquename}%
\blx@xml@toggle{uniqueprimaryauthor}%
\blx@xml@toggle{uniquetitle}%
+ \blx@xml@toggle{uniquebaretitle}%
+ \blx@xml@toggle{uniquework}%
\blx@xml@toggle{useprefix}%
\blx@xml@nametoggles
}%
@@ -9864,7 +10619,6 @@
\blx@xml@svalue{mincrossrefs}{\blx@mincrossrefs}%
\blx@xml@svalue{minxrefs}{\blx@minxrefs}%
\blx@xml@toggle{sortcase}%
- \blx@xml@toggle{sortgiveninits}%
\blx@xml@toggle{sortupper}%
}%
\blx@xml@comment{BIBLATEX OPTIONS}%
@@ -9943,28 +10697,29 @@
{\eappto\blx@tempa{%
\blx@xml@comment{SOURCEMAP}%
\blx@xml@sourcemap{%
- \ifcsdef{blx@sourcemap@user}
- {\csuse{blx@sourcemap@user}}
- {}%
- \ifcsdef{blx@sourcemap@style}
- {\csuse{blx@sourcemap@style}}
- {}%
- \ifcsdef{blx@sourcemap@defaults@bibtex}
- {\csuse{blx@sourcemap@defaults@bibtex}}
- {}%
- \ifcsdef{blx@sourcemap@defaults@biblatexml}
- {\csuse{blx@sourcemap@defaults@biblatexml}}
- {}%
- \ifcsdef{blx@sourcemap@defaults@endnotexml}
- {\csuse{blx@sourcemap@defaults@endnotexml}}
- {}%
- \ifcsdef{blx@sourcemap@defaults@ris}
- {\csuse{blx@sourcemap@defaults@ris}}
- {}%
- \ifcsdef{blx@sourcemap@defaults@zoterordfxml}
- {\csuse{blx@sourcemap@defaults@zoterordfxml}}
- {}}}}
+ \ifdef\blx@sourcemap@user
+ {\blx@sourcemap@user}
+ {}%
+ \ifdef\blx@sourcemap@style
+ {\blx@sourcemap@style}
+ {}%
+ \ifdef\blx@sourcemap@defaults@bibtex
+ {\blx@sourcemap@defaults@bibtex}
+ {}%
+ \ifdef\blx@sourcemap@defaults@biblatexml
+ {\blx@sourcemap@defaults@biblatexml}
+ {}}}}
{}%
+ % labelalpha name template
+ \eappto\blx@tempa{%
+ \blx@xml@comment{LABELALPHA NAME TEMPLATE}}%
+ \def\do##1{%
+ \eappto\blx@tempa{%
+ \blx@xml@labelalphanametemplate{##1}{%
+ \csuse{blx@labelalphanametemplate@##1}}%
+ }%
+ }%
+ \dolistloop\blx@lantem@type
% labelalpha template
\eappto\blx@tempa{%
\blx@xml@comment{LABELALPHA TEMPLATE}}%
@@ -10026,6 +10781,9 @@
\def\do##1{%
\eappto\blx@tempa{\blx@xml@transliteration{##1}{\csuse{blx@translit@##1}}}}%
\dolistloop\blx@translits}%
+ % uniquenametemplate
+ \eappto\blx@tempa{\blx@xml@comment{UNIQUENAME TEMPLATE}}%
+ \eappto\blx@tempa{\blx@xml@uniquenametemplate{\blx@uniquenametemplate}}%
% sortingnamekey
\eappto\blx@tempa{\blx@xml@comment{SORTING NAME KEY}}%
\def\do##1{%
@@ -10212,7 +10970,7 @@
\let\maps\blx@stylesourcemap@maps
\let\blx@tempa\@empty
#1%
- \csxdef{blx@sourcemap@style}{\blx@tempa}%
+ \xappto\blx@sourcemap@style\blx@tempa%
\endgroup}
\@onlypreamble\DeclareStyleSourcemap
@@ -10287,6 +11045,8 @@
{}}
\define@key{blx@sourcemap@map}{foreach}{% characters
\eappto\blx@tempm{ map\string_foreach="#1"}}
+\define@key{blx@sourcemap@map}{refsection}{% integer
+ \eappto\blx@tempm{ refsection="#1"}}
\newcommand*{\blx@sourcemap@perdatasource}[1]{%
\eappto\blx@tempe{%
@@ -10316,6 +11076,8 @@
{}}
\define@key{blx@sourcemap@step}{fieldsource}{% characters
\eappto\blx@tempf{ map\string_field\string_source="#1"}}
+\define@key{blx@sourcemap@step}{notfield}{% characters
+ \eappto\blx@tempf{ map\string_notfield="#1"}}
\define@key{blx@sourcemap@step}{fieldtarget}{% characters
\eappto\blx@tempf{ map\string_field\string_target="#1"}}
\define@key{blx@sourcemap@step}{fieldset}{% characters
@@ -10364,12 +11126,68 @@
\define@key{blx@sourcemap@step}{replace}{% characters
\eappto\blx@tempf{ map\string_replace="#1"}}
-%%%
+% [<entrytype>]{<spec>}
+\newrobustcmd*{\DeclareLabelalphaNameTemplate}[2][]{%
+ \ifblank{#1}
+ {\blx@lantem{#2}{global}}
+ {\forcsvlist{\blx@lantem{#2}}{#1}}}
+\@onlypreamble\DeclareLabelalphaNameTemplate
+\blx@collectopts{xml}{blx@globalopts}{labelalphanametemplate}% for passing to the .bcf
+\blx@collectopts{xml}{blx@typeopts}{labelalphanametemplate}% for passing to the .bcf
+\def\blx@lantem#1#2{%
+ \begingroup
+ \let\namepart\blx@lantem@namepart
+ \let\blx@tempa\@empty
+ \blx@tempcnta\z@
+ #1%
+ \ifdef\blx@lantem@type
+ {\ifinlist{#2}\blx@lantem@type
+ {\global\cslet{blx@labelalphanametemplate@#2}\blx@tempa}
+ {\listgadd\blx@lantem@type{#2}%
+ \global\cslet{blx@labelalphanametemplate@#2}\blx@tempa}}
+ {\listgadd\blx@lantem@type{#2}%
+ \global\cslet{blx@labelalphanametemplate@#2}\blx@tempa}%
+ \endgroup}
+
+\newcommand*{\blx@lantem@namepart}[2][]{%
+ \advance\blx@tempcntb\@ne
+ \edef\blx@tempe{order="\the\blx@tempcntb"}%
+ \let\blx@tempc\@empty
+ \ifblank{#1}
+ {}
+ {\setkeys{blx@lantem@namepart}{#1}}%
+ \eappto\blx@tempa{%
+ \blx@xml@labelalphanametemplatenamepart{\blx@tempe}{\blx@tempc}{#2}}}
+
+\define@key{blx@lantem@namepart}{use}[true]{% use* option for namepart true|false
+ \ifstrequal{#1}{true}
+ {\appto\blx@tempc{ use="1"}}
+ {}}
+
+\define@key{blx@lantem@namepart}{pre}[true]{% pre option for namepart true|false
+ \ifstrequal{#1}{true}
+ {\appto\blx@tempc{ pre="1"}}
+ {}}
+
+\define@key{blx@lantem@namepart}{compound}[true]{% base option for namepart true|false
+ \ifstrequal{#1}{true}
+ {\appto\blx@tempc{ substring\string_compound="1"}}
+ {}}
+
+\define@key{blx@lantem@namepart}{strwidth}{% integer
+ \eappto\blx@tempc{ substring\string_width="#1"}}
+
+\define@key{blx@lantem@field}{strside}{% left|right
+ \ifstrequal{#1}{right}
+ {\eappto\blx@tempc{ substring\string_side="right"}}
+ {\eappto\blx@tempc{ substring\string_side="left"}}}
+
+% [<entrytype>]{<spec>}
\newrobustcmd*{\DeclareLabelalphaTemplate}[2][]{%
\ifblank{#1}
- {\blx@latem{#2}{global}}
- {\forcsvlist{\blx@latem{#2}}{#1}}}
+ {\blx@latem{#2}{global}}
+ {\forcsvlist{\blx@latem{#2}}{#1}}}
\@onlypreamble\DeclareLabelalphaTemplate
\blx@collectopts{xml}{blx@globalopts}{labelalphatemplate}% for passing to the .bcf
\blx@collectopts{xml}{blx@typeopts}{labelalphatemplate}% for passing to the .bcf
@@ -10383,10 +11201,10 @@
\let\blx@tempa\@empty
#1%
\ifdef\blx@latem@type
- {\ifinlist{#2}{\blx@latem@type}
+ {\ifinlist{#2}\blx@latem@type
{\global\cslet{blx@labelalphatemplate@#2}\blx@tempa}
{\listgadd\blx@latem@type{#2}%
- \global\cslet{blx@labelalphatemplate@#2}\blx@tempa}}%
+ \global\cslet{blx@labelalphatemplate@#2}\blx@tempa}}
{\listgadd\blx@latem@type{#2}%
\global\cslet{blx@labelalphatemplate@#2}\blx@tempa}%
\endgroup}
@@ -10411,6 +11229,23 @@
\eappto\blx@tempb{%
\blx@xml@labelalpha@part{\blx@tempc}{#2}}}
+% Legacy options moved to \namepart in \DeclareLabelalphaNameTemplate
+\define@key{blx@latem@field}{compound}{% deprecated
+ \blx@warning@noline{%
+ Ignored 'compound' option to \string\field\space in \string\DeclareLabelalphaNameTemplate\MessageBreak
+ This is now the 'compound' option of \string\namepart\space in\MessageBreak
+ \string\DeclareLabelalphaNameTemplate}}
+\define@key{blx@latem@field}{pcompound}{% deprecated
+ \blx@warning@noline{%
+ Ignored 'pcompound' option to \string\field\space in \string\DeclareLabelalphaNameTemplate\MessageBreak
+ This is now the 'compound' option of \string\namepart\space in\MessageBreak
+ \string\DeclareLabelalphaNameTemplate}}
+\define@key{blx@latem@field}{pstrwidth}{% deprecated
+ \blx@warning@noline{%
+ Ignored 'pstrwidth' option to \string\field\space in \string\DeclareLabelalphaNameTemplate\MessageBreak
+ This is now the 'strwidth' option of \string\namepart\space in\MessageBreak
+ \string\DeclareLabelalphaNameTemplate}}
+
\define@key{blx@latem@field}{uppercase}[true]{% true|false
\ifstrequal{#1}{true}
{\appto\blx@tempc{ uppercase="1"}}
@@ -10425,8 +11260,6 @@
{}}
\define@key{blx@latem@field}{strwidth}{% integer
\eappto\blx@tempc{ substring\string_width="#1"}}
-\define@key{blx@latem@field}{pstrwidth}{% integer
- \eappto\blx@tempc{ substring\string_pwidth="#1"}}
\define@key{blx@latem@field}{varwidth}[true]{% "v"
\ifstrequal{#1}{true}
{\appto\blx@tempc{ substring\string_width="v"}}
@@ -10447,14 +11280,6 @@
\ifstrequal{#1}{right}
{\eappto\blx@tempc{ substring\string_side="right"}}
{\eappto\blx@tempc{ substring\string_side="left"}}}
-\define@key{blx@latem@field}{compound}[true]{% true|false
- \ifstrequal{#1}{true}
- {\appto\blx@tempc{ substring\string_compound="1"}}
- {}}
-\define@key{blx@latem@field}{pcompound}[true]{% true|false
- \ifstrequal{#1}{true}
- {\appto\blx@tempc{ substring\string_pcompound="1"}}
- {}}
\define@key{blx@latem@field}{namessep}{%
\eappto\blx@tempc{ namessep="#1"}}
\define@key{blx@latem@field}{ifnames}{%
@@ -10472,15 +11297,16 @@
{\eappto\blx@tempc{ pad\string_side="right"}}}
% [<exceptions>]{<options>}
-
\newrobustcmd*{\DefaultInheritance}[2][]{%
\begingroup
+ \let\blx@tempf\@empty
\ifblank{#2}
{}
{\setkeys{blx@inherit@default}{#2}}%
\edef\blx@tempa{\space
inherit\string_all="\iftoggle{blx@inherit@all}{true}{false}"\space
- override\string_target="\iftoggle{blx@inherit@override}{true}{false}"}%
+ override\string_target="\iftoggle{blx@inherit@override}{true}{false}"%
+ \blx@tempf}%
\let\blx@tempb\@empty
\let\except\blx@inherit@except
#1%
@@ -10496,9 +11322,10 @@
\settoggle{blx@inherit@all}{#1}}
\define@key{blx@inherit@default}{override}[true]{% true|false
\settoggle{blx@inherit@override}{#1}}
+\define@key{blx@inherit@default}{ignore}{% csv list
+ \edef\blx@tempf{ ignore="#1"}}
% {<source>}{<target>}{<options>}
-
\newcommand*{\blx@inherit@except}[3]{%
\let\blx@tempc\@empty
\ifblank{#3}
@@ -10511,18 +11338,24 @@
\eappto\blx@tempc{ inherit\string_all="#1"}}
\define@key{blx@inherit@except}{override}[true]{% true|false
\eappto\blx@tempc{ override\string_target="#1"}}
+\define@key{blx@inherit@except}{ignore}{% csv list
+ \eappto\blx@tempc{ ignore="#1"}}
% {<type,type,...>}{<type,type,...>}{<spec>}
-\newrobustcmd*{\DeclareDataInheritance}[3]{%
+\newrobustcmd*{\DeclareDataInheritance}[4][]{%
\begingroup
\let\blx@tempa\@empty
- \forcsvlist{\blx@inherit@i{#2}}{#1}%
+ \let\blx@tempf\@empty
+ \ifblank{#1}
+ {}
+ {\setkeys{blx@inherit}{#1}}%
+ \forcsvlist{\blx@inherit@i{#3}}{#2}%
\let\blx@tempb\@empty
\let\inherit\blx@inherit@field
\let\noinherit\blx@inherit@block
- #3%
+ #4%
\xappto\blx@inherit@data{%
- \blx@xml@inherit@data{%
+ \blx@xml@inherit@data{\blx@tempf}{%
\blx@tempa
\blx@tempb}}%
\endgroup}
@@ -10548,6 +11381,9 @@
\newcommand*{\blx@inherit@block}[1]{%
\eappto\blx@tempb{\blx@xml@inherit@block{#1}}}
+\define@key{blx@inherit}{ignore}{% csv list
+ \edef\blx@tempf{ ignore="#1"}}
+
\define@key{blx@inherit@field}{override}[true]{% true|false
\ifstrequal{#1}{true}
{\edef\blx@tempc{ override\string_target="true"}}
@@ -10611,6 +11447,38 @@
\eappto\blx@tempb{%
\blx@xml@translit{#1}{#2}{#3}}}
+% {<spec>}
+\newrobustcmd*{\DeclareUniquenameTemplate}[1]{%
+ \begingroup
+ \let\namepart\blx@untemp@namepart
+ \let\blx@tempa\@empty
+ \blx@tempcnta\z@
+ #1%
+ \global\let\blx@uniquenametemplate\blx@tempa
+ \endgroup}
+\@onlypreamble\DeclareUniquenameTemplate
+\blx@collectopts{xml}{blx@globalopts}{uniquenametemplate}% for passing to the .bcf
+
+\newcommand*{\blx@untemp@namepart}[2][]{%
+ \advance\blx@tempcntb\@ne
+ \edef\blx@tempe{order="\the\blx@tempcntb"}%
+ \let\blx@tempc\@empty
+ \ifblank{#1}
+ {}
+ {\setkeys{blx@untemp@namepart}{#1}}%
+ \eappto\blx@tempa{%
+ \blx@xml@uniquenametemplatenamepart{\blx@tempe}{\blx@tempc}{#2}}}
+
+\define@key{blx@untemp@namepart}{use}[true]{% use* option for namepart true|false
+ \ifstrequal{#1}{true}
+ {\appto\blx@tempc{ use="1"}}
+ {}}
+
+\define@key{blx@untemp@namepart}{base}[true]{% base option for namepart true|false
+ \ifstrequal{#1}{true}
+ {\appto\blx@tempc{ base="1"}}
+ {}}
+
% [<specname>]{<spec>}
\newrobustcmd*{\DeclareSortingNamekeyScheme}[2][]{%
\begingroup
@@ -10668,6 +11536,11 @@
{\appto\blx@tempc{ use="1"}}
{\appto\blx@tempc{ use="0"}}}
+\define@key{blx@sortnk@namepart}{inits}[true]{% initials only option for namepart true|false
+ \ifstrequal{#1}{true}
+ {\appto\blx@tempc{ inits="1"}}
+ {\appto\blx@tempc{ inits="0"}}}
+
% {<name>}{<spec>}
\newrobustcmd*{\DeclareSortingScheme}[3][]{%
\ifblank{#1}
@@ -10675,9 +11548,15 @@
{\setkeys{blx@sortdef@sorting}{#1}%
\csxdef{blx@sortdef@locale@#2}{\blx@templ}}%
\begingroup
+ \def\name{%LEGACY(<2.0)
+ \blx@warning@noline{%
+ '\string\name' is deprecated in sorting specifications, please use '\string\field'}%
+ \blx@sortdef@field}%
+ \def\list{%LEGACY(<2.0)
+ \blx@warning@noline{%
+ '\string\list' is deprecated in sorting specifications, please use '\string\field'}%
+ \blx@sortdef@field}%
\let\sort\blx@sortdef@sort
- \let\name\blx@sortdef@field% legacy pre-biblatex 2.0 compat
- \let\list\blx@sortdef@field% legacy pre-biblatex 2.0 compat
\let\field\blx@sortdef@field
\let\literal\blx@sortdef@literal
\def\citeorder{\blx@sortdef@field{citeorder}}%
@@ -10794,7 +11673,6 @@
\appto\blx@tempa{\blx@xml@exclude{#1}}}
% [<type,type,...>]{<field,field,...>}
-
\newrobustcmd*{\DeclareLabelname}[2][]{%
\begingroup
\let\blx@tempa\@empty
@@ -10906,7 +11784,7 @@
\def\blx@addtypeopt#1{%
\notblank{#1}
{\ifdef\blx@opts@type
- {\ifinlist{#1}{\blx@opts@type}
+ {\ifinlist{#1}\blx@opts@type
{}
{\listgadd\blx@opts@type{#1}}}
{\listgadd\blx@opts@type{#1}}}
@@ -11162,6 +12040,22 @@
#3=#4}
{}}
+% Legacy for giveninits
+\DeclareBibliographyOption[boolean]{firstinits}[true]{%
+ \blx@warning@noline{%
+ 'firstinits' option is deprecated, use 'giveninits' instead}%
+ \settoggle{abx@bool@giveninits}{#1}}
+
+% Legacy for sortfirstinits/sortgiveninits
+\DeclareBibliographyOption[boolean]{sortfirstinits}[true]{%
+ \blx@warning@noline{%
+ 'sortfirstinits' option is deprecated, use 'inits' option\MessageBreak
+ to \string\namepart\space in \string\DeclareSortingNamekeyScheme}}
+\DeclareBibliographyOption[boolean]{sortgiveninits}{%
+ \blx@warning@noline{%
+ 'sortgiveninits' option is deprecated, use 'inits' option\MessageBreak
+ to \string\namepart\space in \string\DeclareSortingNamekeyScheme}}
+
\DeclareBibliographyOption[boolean]{terseinits}[true]{%
\ifstrequal{#1}{true}
{\toggletrue{blx@terseinits}
@@ -11173,24 +12067,6 @@
\renewrobustcmd*{\bibinitdelim}{\addnbspace}
\renewrobustcmd*{\bibinithyphendelim}{\adddot\mbox{-}}}}
-% Legacy for giveninits
-\DeclareBibliographyOption[boolean]{firstinits}[true]{%
- \blx@warning@noline{%
- 'firstinits' option is deprecated, use 'giveninits' instead}%
- \settoggle{blx@giveninits}{#1}}
-
-% Legacy for sortgiveninits
-\DeclareBibliographyOption[boolean]{sortfirstinits}[true]{%
- \blx@warning@noline{%
- 'sortfirstinits' option is deprecated, use 'sortgiveninits' instead}%
- \settoggle{blx@sortgiveninits}{#1}}
-
-\DeclareBibliographyOption[boolean]{giveninits}[true]{%
- \settoggle{blx@giveninits}{#1}}
-
-\DeclareBibliographyOption[boolean]{sortgiveninits}[true]{%
- \settoggle{blx@sortgiveninits}{#1}}
-
\DeclareBibliographyOption[boolean]{abbreviate}[true]{%
\ifstrequal{#1}{true}
{\def\abx@str{abx@sstr}}
@@ -11198,8 +12074,10 @@
\DeclareBibliographyOption[boolean]{dateabbrev}[true]{%
\ifstrequal{#1}{true}
- {\let\abx@bibmonth\blx@imc@bibsstring}
- {\let\abx@bibmonth\blx@imc@biblstring}}
+ {\let\abx@bibmonth\blx@imc@bibsstring
+ \let\abx@bibseason\blx@imc@bibsstring}
+ {\let\abx@bibmonth\blx@imc@biblstring
+ \let\abx@bibseason\blx@imc@biblstring}}
\DeclareBibliographyOption[string]{sortlocale}{%
\edef\blx@sortlocale{\detokenize{#1}}}
@@ -11591,44 +12469,207 @@
{\blx@err@invopt{maxparens=#1}{}}
{\setcounter{maxparens}{#1}}}
+\newtoggle{blx@labeldateusetime}
+\DeclareBibliographyOption[boolean]{labeldateusetime}[true]{%
+ \ifstrequal{#1}{true}
+ {\toggletrue{blx@labeldateusetime}}
+ {\togglefalse{blx@labeldateusetime}}}
+
+\DeclareBibliographyOption[string]{labeldate}{%
+ % 'true' or 'false' means that the user thinks that this is the old 'labeldate'
+ % option which is now 'labeldateparts' (which is a boolean).
+ \ifboolexpr{%
+ test {\ifstrequal{#1}{true}}
+ or
+ test {\ifstrequal{#1}{false}}}
+ {\blx@warning@noline{%
+ 'labeldate' option used to determine whether to provide label date fields and\MessageBreak
+ extrayear field is renamed to 'labeldateparts', setting this instead. This option is
+ now used to set the format of the labeldate}%
+ \settoggle{blx@labeldateparts}{#1}}
+ {\ifstrequal{#1}{iso8601}
+ {\blx@warning@noline{%
+ 'iso8601' date format specifier is deprecated, use 'edtf' instead}%
+ \def\blx@dateformat@labeldate{edtf}%
+ \renewrobustcmd*{\bibdateeraendprefix}{\bibdateeraprefix}}
+ {\def\blx@dateformat@labeldate{#1}}%
+ \ifstrequal{#1}{ymd}
+ {\renewrobustcmd*{\bibdaterangesep}{\slash}%
+ \renewrobustcmd*{\bibtimerangesep}{\slash}%
+ \renewrobustcmd*{\bibdateeraendprefix}{\bibdateeraprefix}}
+ {}%
+ \ifstrequal{#1}{edtf}% bibdaterangesep hard-coded to slash, no extra space before prefices
+ {\renewrobustcmd*{\bibdateeraendprefix}{\bibdateeraprefix}}
+ {}%
+ \ifcsdef{mkdaterange#1}
+ {\protected\def\blx@imc@printlabeldate{\csuse{mkdaterange#1}{label}}
+ \protected\def\blx@imc@printlabeldateextra{\csuse{mkdaterange#1extra}{label}}}
+ {\ifcsdef{mkbibrange#1}%LEGACY(<3.5)
+ {\protected\def\blx@imc@printlabeldate{\csuse{mkbibrange#1}{label}}
+ \protected\def\blx@imc@printlabeldateextra{\csuse{mkbibrange#1extra}{label}}}
+ {\blx@err@invopt{labeldate=#1}{}}}}}
+
\DeclareBibliographyOption[string]{datelabel}{%
- \ifcsdef{mkbibrange#1}
- {\protected\def\blx@imc@printdatelabel{%
- \blx@imc@iffieldundef{year}
- {\csuse{mkbibrange#1}{label}}
- {\csuse{mkbibrange#1}{}}}%
- \protected\def\blx@imc@printdateextralabel{%
- \blx@imc@iffieldundef{year}
- {\csuse{mkbibrange#1extra}{label}}
- {\csuse{mkbibrange#1extra}{}}}}
- {\blx@err@invopt{datelabel=#1}{}}}
+ \blx@warning@noline{%
+ 'datelabel' option is deprecated, use 'labeldate' instead}%
+ \setkeys{blx@opt@pre}{labeldate=#1}}
+\DeclareBibliographyOption[string]{labeltime}{%
+ \ifcsdef{mktimerange#1}
+ {\def\blx@timeformat@labeltime{#1}%
+ \protected\def\blx@imc@printlabeltime{\csuse{mktimerange#1}{label}}}
+ {\blx@err@invopt{labeltime=#1}{}}}
-\def\do#1{%
- \DeclareBibliographyOption[string]{#1}{%
- \StrCut{#1}{date}\blx@datetype\blx@tempnull
- \ifcsdef{mkbibrange##1}
- {\protected\csedef{blx@imc@print#1}{\noexpand\csuse{mkbibrange##1}{\blx@datetype}}}
- {\blx@err@invopt{#1=##1}{}}%
- \ifcsdef{mkbibrange##1extra}
- {\protected\csedef{blx@imc@print#1extra}{\noexpand\csuse{mkbibrange##1extra}{\blx@datetype}}}
- {}}}
-\abx@dodates
+% Date meta-information
+\DeclareBibliographyOption[string]{dateera}{%
+ \ifboolexpr{%
+ test {\ifstrequal{#1}{astronomical}}
+ or
+ test {\ifstrequal{#1}{secular}}
+ or
+ test {\ifstrequal{#1}{christian}}}
+ {\def\blx@dateera{#1}%
+ \ifstrequal{#1}{secular}
+ {\def\blx@dateera@bce{beforecommonera}%
+ \def\blx@dateera@ce{commonera}}
+ {}%
+ \ifstrequal{#1}{christian}
+ {\def\blx@dateera@bce{beforechrist}%
+ \def\blx@dateera@ce{annodomini}}
+ {}}
+ {\blx@err@invopt{dateera=#1}{}}}
-% Default for new date fields is "comp" but this is overridden below by
-% biblatex defaults
-\def\do#1{\setkeys{blx@opt@pre}{#1=comp}}
-\abx@dodates
+% Effectively turns off dateeraauto since it's only used on ce dates which
+% are never less than zero (as that would be a bce date)
+\numdef\blx@dateeraauto{0}
+\DeclareBibliographyOption[integer]{dateeraauto}{%
+ \numdef\blx@dateeraauto{#1}}
+
+\newtoggle{blx@datecirca}
+\DeclareBibliographyOption[boolean]{datecirca}[true]{%
+ \ifstrequal{#1}{true}
+ {\toggletrue{blx@datecirca}%
+ \protected\def\datecircaprint{%
+ \ifdatecirca{\bibstring{circa}\printdelim{datecircadelim}}{}}%
+ \protected\def\enddatecircaprint{%
+ \ifenddatecirca{\bibstring{circa}\printdelim{datecircadelim}}{}}%
+ \protected\def\datecircaprintedtf{%
+ \ifdatecirca{\textasciitilde}{}}%
+ \protected\def\enddatecircaprintedtf{%
+ \ifenddatecirca{\textasciitilde}{}}}
+ {\togglefalse{blx@datecirca}}}
+
+\newtoggle{blx@dateuncertain}
+\DeclareBibliographyOption[boolean]{dateuncertain}[true]{%
+ \ifstrequal{#1}{true}
+ {\toggletrue{blx@dateuncertain}%
+ \protected\def\dateuncertainprint{%
+ \ifdateuncertain{\bibdateuncertain}{}}%
+ \protected\def\enddateuncertainprint{%
+ \ifenddateuncertain{\bibdateuncertain}{}}}
+ {\togglefalse{blx@dateuncertain}}}
+
+% *time format options - auto-created for all datamodel date fields
+% *date format options - auto-created for all datamodel date fields
+% *dateusetime options - auto-created for all datamodel date fields
+% Date metadata toggles are defined in one of the \abx@dobooleans calls
+\def\do#1{%
+ \DeclareBibliographyOption[string]{#1date}{%
+ \ifstrequal{##1}{iso8601}
+ {\blx@warning@noline{'iso8601' date format specifier is deprecated, use 'edtf' instead}%
+ \csdef{blx@dateformat@#1date}{edtf}}
+ {\csdef{blx@dateformat@#1date}{##1}}%
+ \ifstrequal{##1}{ymd}
+ {\renewrobustcmd*{\bibdaterangesep}{\slash}%
+ \renewrobustcmd*{\bibtimerangesep}{\slash}%
+ \renewrobustcmd*{\bibdateeraendprefix}{\bibdateeraprefix}}
+ {}%
+ \ifcsdef{mkdaterange##1}
+ {\protected\csedef{blx@imc@print#1date}{\noexpand\csuse{mkdaterange##1}{#1}}%
+ \protected\csedef{blx@imc@print#1dateextra}{\noexpand\csuse{mkdaterange##1extra}{#1}}}
+ {\ifcsdef{mkbibrange##1}%LEGACY(<3.5)
+ {\blx@warning@noline{%
+ '\string\mkbibrange##1(extra)' date range macro in style is deprecated,\MessageBreak
+ please define '\string\mkdaterange##1(extra)' instead}%
+ \protected\csedef{blx@imc@print#1date}{\noexpand\csuse{mkbibrange##1}{#1}}%
+ \protected\csedef{blx@imc@print#1dateextra}{\noexpand\csuse{mkbibrange##1extra}{#1}}}
+ {\blx@err@invopt{#1date=##1}{}}}}%
+ % Default for new date fields is "comp" but this is overridden below by
+ % biblatex defaults
+ \setkeys{blx@opt@pre}{#1date=comp}%
+ % Time format options
+ \DeclareBibliographyOption[string]{#1time}{%
+ \csdef{blx@timeformat@#1time}{##1}%
+ \ifcsdef{mktimerange##1}
+ {\protected\csedef{blx@imc@print#1time}{\csuse{mktimerange##1}{#1}}}
+ {\blx@err@invopt{#1time=##1}{}}}%
+ % Default for new time fields is "24h"
+ \setkeys{blx@opt@pre}{#1time=24h}%
+ % Boolean to determine if times are printed with dates
+ \newtoggle{blx@#1dateusetime}%
+ \DeclareBibliographyOption[boolean]{#1dateusetime}{%
+ \ifstrequal{##1}{true}
+ {\toggletrue{blx@#1dateusetime}}
+ {\togglefalse{blx@#1dateusetime}}}}
+\abx@dodatetypes
+
+\DeclareBibliographyOption[string]{alldatesusetime}{%
+ \def\do##1{\ExecuteBibliographyOptions{##1usetime=#1}}%
+ \abx@dodates
+ \do{labeldate}}
\DeclareBibliographyOption[string]{alldates}{%
- \ExecuteBibliographyOptions{datelabel=#1}%
\def\do##1{\ExecuteBibliographyOptions{##1=#1}}%
- \abx@dodates}
+ \abx@dodates
+ \do{labeldate}}
+
+\DeclareBibliographyOption[string]{alltimes}{%
+ \def\do##1{%
+ \ExecuteBibliographyOptions{##1time=#1}}%
+ \abx@dodatetypes
+ \do{label}}
+\newtoggle{blx@julian}
+\def\blx@gregorianstart{1582-10-15}
+\DeclareBibliographyOption[boolean]{julian}[true]{%
+ \ifstrequal{#1}{true}
+ {\toggletrue{blx@julian}}
+ {\togglefalse{blx@julian}}}
+
+\DeclareBibliographyOption[string]{gregorianstart}{%
+ \def\blx@gregorianstart{#1}}
+
+\newtoggle{blx@datezeros}\toggletrue{blx@datezeros}
\DeclareBibliographyOption[boolean]{datezeros}[true]{%
\ifstrequal{#1}{true}
- {\let\blx@imc@mkdatezeros\@firstofone}
- {\let\blx@imc@mkdatezeros\blx@imc@stripzeros}}
+ {\toggletrue{blx@datezeros}%
+ \let\blx@imc@mkyearzeros\blx@imc@forcezerosy
+ \let\blx@imc@mkmonthzeros\blx@imc@forcezerosmdt
+ \let\blx@imc@mkdayzeros\blx@imc@forcezerosmdt}
+ {\togglefalse{blx@datezeros}%
+ \let\blx@imc@mkyearzeros\blx@imc@stripzeros
+ \let\blx@imc@mkmonthzeros\blx@imc@stripzeros
+ \let\blx@imc@mkdayzeros\blx@imc@stripzeros}}
+
+\newtoggle{blx@timezeros}\toggletrue{blx@timezeros}
+\DeclareBibliographyOption[boolean]{timezeros}[true]{%
+ \ifstrequal{#1}{true}
+ {\toggletrue{blx@timezeros}%
+ \let\blx@imc@mktimezeros\blx@imc@forcezerosmdt}
+ {\togglefalse{blx@timezeros}%
+ \let\blx@imc@mktimezeros\blx@imc@stripzeros}}
+
+\newtoggle{blx@timezones}
+\DeclareBibliographyOption[boolean]{timezones}[true]{%
+ \ifstrequal{#1}{true}
+ {\toggletrue{blx@timezones}}
+ {\togglefalse{blx@timezones}}}
+
+\newtoggle{blx@seconds}
+\DeclareBibliographyOption[boolean]{seconds}[true]{%
+ \ifstrequal{#1}{true}
+ {\toggletrue{blx@seconds}}
+ {\togglefalse{blx@seconds}}}
\DeclareBibliographyOption[string]{autocite}{%
\ifcsundef{blx@acite@#1}
@@ -11680,19 +12721,19 @@
\DeclareTypeOption[boolean]{labeltitleyear}[true]{%
\settoggle{blx@labeltitleyear}{#1}}
-\DeclareBibliographyOption[boolean]{labeldate}[true]{%
- \settoggle{blx@labeldate}{#1}}
-\DeclareTypeOption[boolean]{labeldate}[true]{%
- \settoggle{blx@labeldate}{#1}}
+\DeclareBibliographyOption[boolean]{labeldateparts}[true]{%
+ \settoggle{blx@labeldateparts}{#1}}
+\DeclareTypeOption[boolean]{labeldateparts}[true]{%
+ \settoggle{blx@labeldateparts}{#1}}
\DeclareBibliographyOption[boolean]{labelyear}[true]{%
\blx@warning@noline{%
- 'labelyear' option is deprecated, use 'labeldate' instead}%
- \settoggle{blx@labeldate}{#1}}
+ 'labelyear' option is deprecated, use 'labeldateparts' instead}%
+ \settoggle{blx@labeldateparts}{#1}}
\DeclareTypeOption[boolean]{labelyear}[true]{%
\blx@warning@noline{%
- 'labelyear' option is deprecated, use 'labeldate' instead}%
- \settoggle{blx@labeldate}{#1}}
+ 'labelyear' option is deprecated, use 'labeldateparts' instead}%
+ \settoggle{blx@labeldateparts}{#1}}
\DeclareBibliographyOption[boolean]{uniquelist}[true]{%
\ifcsdef{blx@opt@uniquelist@#1}
@@ -11741,6 +12782,16 @@
\DeclareTypeOption[boolean]{uniquetitle}[true]{%
\settoggle{blx@uniquetitle}{#1}}
+\DeclareBibliographyOption[boolean]{uniquebaretitle}[true]{%
+ \settoggle{blx@uniquebaretitle}{#1}}
+\DeclareTypeOption[boolean]{uniquebaretitle}[true]{%
+ \settoggle{blx@uniquebaretitle}{#1}}
+
+\DeclareBibliographyOption[boolean]{uniquework}[true]{%
+ \settoggle{blx@uniquework}{#1}}
+\DeclareTypeOption[boolean]{uniquework}[true]{%
+ \settoggle{blx@uniquework}{#1}}
+
\DeclareBibliographyOption[boolean]{uniqueprimaryauthor}[true]{%
\settoggle{blx@uniqueprimaryauthor}{#1}}
@@ -11909,42 +12960,37 @@
%% Initial setup
% Set defaults
-
\setkeys{blx@opt@ldt}{style=numeric}
\setkeys{blx@opt@pre}{%
sorting=nty,sortlocale=auto,sortcase,sortupper,sortcites=false,
maxnames=3,minnames=1,maxalphanames=3,minalphanames=1,
maxitems=3,minitems=1,mincrossrefs=2,minxrefs=2,useauthor=true,useeditor=true,
- usetranslator=false,indexing=false,abbreviate=true,dateabbrev=true,
+ usetranslator=false,indexing=false,abbreviate=true,dateabbrev=true,dateera=astronomical,
backref=false,backrefsetstyle=setonly,pagetracker=false,ibidtracker=false,
idemtracker=false,opcittracker=false,loccittracker=false,citetracker=false,
citecounter=false,block=none,language=autobib,clearlang=true,autolang=none,
- date=comp,datelabel=year,origdate=comp,eventdate=comp,urldate=short,
- autopunct=true,punctfont=false,defernumbers=false,
+ date=comp,labeldate=year,origdate=comp,eventdate=comp,urldate=short,
+ autopunct=true,punctfont=false,defernumbers=false,timezeros=true,
refsection=none,refsegment=none,citereset=none,hyperref=auto,
- parentracker,maxparens=3,bibencoding=auto,bibwarn}
+ parentracker,maxparens=3,bibencoding=auto,bibwarn,timezones=false,
+ seconds=false,julian=false,labeltime=24h}
% Load compatibility code
-
\blx@inputonce{blx-compat.def}{compatibility code}{}{}{}{}
% Restore catcodes
-
\blx@catcodes
\undef\blx@catcodes
% Process load-time options
-
\ProcessOptions*
% Switch to BibTeX support if requests
-
\iftoggle{blx@bibtex}
{\blx@inputonce{blx-bibtex.def}{BibTeX backend compatibility}{}{}{}{}}
{}
% Load citation and bibliography styles, configuration file
-
\blx@inputonce{biblatex.def}{generic definitions}{}{}{}{}
\iftoggle{blx@natbib}
{\blx@inputonce{blx-natbib.def}{natbib compatibility}{}{}{}{}}
@@ -11959,45 +13005,84 @@
\blx@inputonce{biblatex.cfg}{configuration file}{}{}{}{}
% Process preamble options
-
\blx@processoptions
% Deferred setup at end of preamble
-
\AtEndPreamble{%
\blx@checkoptions@global
\c@maxnames\blx@maxcitenames\relax
\c@minnames\blx@mincitenames\relax
\c@maxitems\blx@maxitems\relax
\c@minitems\blx@minitems\relax
- \iftoggle{blx@giveninits}
+ \iftoggle{abx@bool@xinits}
{\ifnumequal\blx@uniquename\blx@opt@uniquename@full
{\blx@warn@conflopt{%
- 'giveninits' conflicts with 'uniquename=full'.\MessageBreak
+ '<namepart>inits' conflicts with 'uniquename=full'.\MessageBreak
Setting 'uniquename=init'}%
\setkeys{blx@opt@pre}{uniquename=init}}
{}%
\ifnumequal\blx@uniquename\blx@opt@uniquename@allfull
{\blx@warn@conflopt{%
- 'giveninits' conflicts with 'uniquename=allfull'.\MessageBreak
+ '<namepart>inits' conflicts with 'uniquename=allfull'.\MessageBreak
Setting 'uniquename=allinit}%
\setkeys{blx@opt@pre}{uniquename=allinit}}
{}%
\ifnumequal\blx@uniquename\blx@opt@uniquename@minfull
{\blx@warn@conflopt{%
- 'giveninits' conflicts with 'uniquename=minfull'.\MessageBreak
+ '<namepart>inits' conflicts with 'uniquename=minfull'.\MessageBreak
Setting 'uniquename=mininit}%
\setkeys{blx@opt@pre}{uniquename=mininit}}
{}}
{}%
- \nottoggle{blx@labeldate}
+ \nottoggle{blx@labeldateparts}
{\ifnumequal\blx@uniquelist\blx@opt@uniquelist@minyear
{\blx@warn@conflopt{%
- 'uniquelist=minyear' requires 'labeldate'.\MessageBreak
+ 'uniquelist=minyear' requires 'labeldateparts'.\MessageBreak
Setting 'uniquelist=true'}%
\setkeys{blx@opt@pre}{uniquelist}}
{}}
- {}}
+ {}%
+ \def\do#1{%
+ \ifcsstring{blx@dateformat@#1}{edtf}
+ {\StrCut{#1}{date}\blx@datetype\blx@tempnull
+ \ifdefstring\blx@dateera{astronomical}{}
+ {\blx@warn@conflopt{%
+ '#1=edtf' requires 'dateera=astronomical'.\MessageBreak
+ Setting 'dateera=astrononmical'}%
+ \setkeys{blx@opt@pre}{dateera=astronomical}}%
+ \ifcsstring{blx@timeformat@\blx@datetype time}{24h}%
+ {}
+ {\blx@warn@conflopt{%
+ '#1=edtf' requires '\blx@datetype time=24h'.\MessageBreak
+ Setting '\blx@datetype time=24h'}%
+ \setkeys{blx@opt@pre}{\blx@datetype time=24h}}%
+ \iftoggle{blx@julian}
+ {\blx@warn@conflopt{%
+ '#1=edtf' requires 'julian=false'.\MessageBreak
+ Setting 'julian=false'}%
+ \setkeys{blx@opt@pre}{julian=false}}
+ {}%
+ \nottoggle{blx@datezeros}
+ {\blx@warn@conflopt{%
+ '#1=edtf' requires 'datezeros=true'.\MessageBreak
+ Setting 'datezeros=true'}%
+ \setkeys{blx@opt@pre}{datezeros=true}}
+ {}%
+ \nottoggle{blx@timezeros}
+ {\blx@warn@conflopt{%
+ '#1=edtf' requires 'timezeros=true'.\MessageBreak
+ Setting 'timezeros=true'}%
+ \setkeys{blx@opt@pre}{timezeros=true}}
+ {}%
+ \nottoggle{blx@seconds}
+ {\blx@warn@conflopt{%
+ '#1=edtf' requires 'seconds=true'.\MessageBreak
+ Setting 'seconds=true'}%
+ \setkeys{blx@opt@pre}{seconds=true}}
+ {}}
+ {}}%
+ \abx@dodates
+ \do{labeldate}}
\def\blx@checkencoding{%
\ifdef\blx@texencoding
diff --git a/Master/texmf-dist/tex/latex/biblatex/blx-bibtex.def b/Master/texmf-dist/tex/latex/biblatex/blx-bibtex.def
index fdc1363b419..a96aa733775 100644
--- a/Master/texmf-dist/tex/latex/biblatex/blx-bibtex.def
+++ b/Master/texmf-dist/tex/latex/biblatex/blx-bibtex.def
@@ -199,17 +199,24 @@
\protected\def\blx@bibreq#1{%
\blx@auxwrite\blx@aux{}{\string\citation{#1}}}
+% bibtex doesn't parse EDTF dates so these overrides do nothing
+\appto\blx@blxinit{%
+ \def\iflabeldateera#1{\@secondoftwo}%
+ \def\iflabelenddateera#1{\@secondoftwo}%
+ \let\iflabeldatecirca\@secondoftwo
+ \let\iflabelenddatecirca\@secondoftwo
+ \let\iflabeldateuncertain\@secondoftwo
+ \let\iflabelenddateuncertain\@secondoftwo}
+
% {<string>}
-% This mustn't be robust as it's likely to be used mainly tests and so
+% This mustn't be robust as it's likely to be used mainly in tests and so
% needs to be expandable
\renewcommand*\rangelen[1]{%
\ifblank{#1}
{0}%
- {%
- \expandafter\blx@rangelen@range\romannumeral-`\q%
+ {\expandafter\blx@rangelen@range\romannumeral-`\q%
#1\bibrangedash\bibrangedash&%
- }%
- }
+ }}
\def\blx@rangelen@range#1\bibrangedash#2\bibrangedash#3&{%
\ifblank{#3}
@@ -384,7 +391,7 @@
\noexpand\iftoggle{blx@useeditor}{1}{0}:%
\noexpand\iftoggle{blx@usetranslator}{1}{0}:%
\noexpand\iftoggle{blx@labelalpha}{1}{0}:%
- \noexpand\iftoggle{blx@labeldate}{1}{0}:%
+ \noexpand\iftoggle{blx@labeldateparts}{1}{0}:%
\noexpand\iftoggle{blx@singletitle}{1}{0}:%
\noexpand\csuse{blx@sorting@\noexpand\blx@sorting}:%
\noexpand\blx@maxcitenames:%
diff --git a/Master/texmf-dist/tex/latex/biblatex/blx-dm.def b/Master/texmf-dist/tex/latex/biblatex/blx-dm.def
index 4312836dd97..829a5a811bd 100644
--- a/Master/texmf-dist/tex/latex/biblatex/blx-dm.def
+++ b/Master/texmf-dist/tex/latex/biblatex/blx-dm.def
@@ -104,6 +104,11 @@
{\appto\blx@tempa{ skip\string_output="true"}}
{}}
+% Valid dateparts
+\def\blx@notnulldateparts{year,month,day,hour,minute,second,timezone,season,endmonth,endday,endhour,endminute,endsecond,endtimezone,endseason}
+\def\blx@nullokdateparts{endyear}
+\edef\blx@dateparts{\blx@notnulldateparts,\blx@nullokdateparts}
+
\newrobustcmd*{\DeclareDatamodelFields}[2][]{%
\begingroup
\let\blx@dm@fieldtype\@empty
@@ -204,8 +209,7 @@
\xappto\blx@bcf@datamodel@fields{%
\blx@xml@datamodel@field{\blx@tempa}{##1}}%
-
- % Dateparts are special - auto-create for all date fields
+ % Dateparts are special - auto-create for all date fields
\ifcsstring{blx@dm@datatype}{date}
{\begingroup
\let\blx@tempa\@empty% reset setkeys buffer due to manual calls below
@@ -219,14 +223,19 @@
{}
{\listcsgadd{blx@datamodel@fields}{##1}}%
\StrCut{##1}{date}\blx@datetype\blx@tempnull
- % *endyear
- \xifinlistcs{\blx@datetype endyear}{blx@datamodel@fields}
- {}
- {\listcsxadd{blx@datamodel@fields}{\blx@datetype endyear}}%
- \setkeys{blx@datamodel@field}{type=field,datatype=datepart,nullok}%
- \xappto\blx@bcf@datamodel@fields{%
- \blx@xml@datamodel@field{\blx@tempa}{\blx@datetype endyear}}%
- % *year, *month, *day, *endmonth, *endday
+ % dateparts which are ok to be null (by default *endyear)
+ \def\do####1{%
+ \let\blx@tempa\@empty% reset setkeys buffer due to loop calls
+ \xifinlistcs{\blx@datetype ####1}{blx@datamodel@fields}
+ {}
+ {\listcsxadd{blx@datamodel@fields}{\blx@datetype ####1}}%
+ \setkeys{blx@datamodel@field}{type=field,datatype=datepart,nullok}%
+ \xappto\blx@bcf@datamodel@fields{%
+ \blx@xml@datamodel@field{\blx@tempa}{\blx@datetype ####1}}}%
+ \expandafter\docsvlist\expandafter{\blx@nullokdateparts}%
+ % dateparts which are not ok to be null by default:
+ % *year, *(end)month, *(end)day, *(end)hour, *(end)minute, *(end)second, *(end)timezone
+ % *(end)season
\def\do####1{%
\let\blx@tempa\@empty% reset setkeys buffer due to loop calls
\xifinlistcs{\blx@datetype ####1}{blx@datamodel@fields}
@@ -235,7 +244,7 @@
\setkeys{blx@datamodel@field}{type=field,datatype=datepart}%
\xappto\blx@bcf@datamodel@fields{%
\blx@xml@datamodel@field{\blx@tempa}{\blx@datetype ####1}}}%
- \docsvlist{year,month,day,endmonth,endday}%
+ \expandafter\docsvlist\expandafter{\blx@notnulldateparts}%
\endgroup}
{}}%
\docsvlist{#2}
@@ -377,7 +386,7 @@
% Data model specification
\DeclareDatamodelConstant[type=list]{gender}{sf,sm,sn,pf,pm,pn,pp}
-\DeclareDatamodelConstant[type=list]{nameparts}{prefix,family,suffix,given}
+\DeclareDatamodelConstant[type=list]{nameparts}{family,given,prefix,suffix}
\DeclareDatamodelConstant[type=list]{optiondatatypes}{boolean,integer,string,xml}
\DeclareDatamodelEntrytypes{
@@ -432,6 +441,11 @@
\DeclareDatamodelEntrytypes[skipout]{xdata}
+\DeclareDatamodelFields[type=field, datatype=integer]{
+ number,
+ volume,
+ volumes}
+
\DeclareDatamodelFields[type=field, datatype=literal]{
abstract,
addendum,
@@ -471,7 +485,6 @@
maintitleaddon,
nameaddon,
note,
- number,
origtitle,
pagetotal,
part,
@@ -490,9 +503,7 @@
usere,
userf,
venue,
- version,
- volume,
- volumes}
+ version}
\DeclareDatamodelFields[type=field, datatype=literal, label=true]{
shorthand,
@@ -500,10 +511,11 @@
shortseries,
shorttitle}
+\DeclareDatamodelFields[type=field, datatype=integer, skipout]{sortyear}
+
\DeclareDatamodelFields[type=field, datatype=literal, skipout]{
sorttitle,
sortshorthand,
- sortyear,
sortkey,
presort}
@@ -1178,6 +1190,14 @@
pubstate,
subtitle,
titleaddon,
+ urlhour,
+ urlminute,
+ urlsecond,
+ urltimezone,
+ urlendhour,
+ urlendminute,
+ urlendsecond,
+ urlendtimezone,
urlday,
urlendday,
urlendmonth,
diff --git a/Master/texmf-dist/tex/latex/biblatex/cbx/alphabetic.cbx b/Master/texmf-dist/tex/latex/biblatex/cbx/alphabetic.cbx
index 1e114d1bb81..434986c6627 100644
--- a/Master/texmf-dist/tex/latex/biblatex/cbx/alphabetic.cbx
+++ b/Master/texmf-dist/tex/latex/biblatex/cbx/alphabetic.cbx
@@ -116,6 +116,10 @@
{\protected@xappto\cbx@savedcites{%
[\thefield{prenote}][\thefield{postnote}]{\cbx@savedkeys}}}
+% textcite has nested \DeclareCiteCommand definitions for textcite and we want to use
+% the normal textcite context
+\DeclareDelimcontextAlias{cbx@textcite}{textcite}
+
\newrobustcmd{\cbx@textcite@init}[2]{%
\setcounter{textcitetotal}{0}%
\setcounter{textcitecount}{0}%
diff --git a/Master/texmf-dist/tex/latex/biblatex/cbx/authortitle-comp.cbx b/Master/texmf-dist/tex/latex/biblatex/cbx/authortitle-comp.cbx
index bbc4229864f..1bf883a4196 100644
--- a/Master/texmf-dist/tex/latex/biblatex/cbx/authortitle-comp.cbx
+++ b/Master/texmf-dist/tex/latex/biblatex/cbx/authortitle-comp.cbx
@@ -171,6 +171,10 @@
{\protected@xappto\cbx@savedcites{%
[\thefield{prenote}][\thefield{postnote}]{\cbx@savedkeys}}}
+% textcite has nested \DeclareCiteCommand definitions for textcite and we want to use
+% the normal textcite context
+\DeclareDelimcontextAlias{cbx@textcite}{textcite}
+
\newrobustcmd{\cbx@textcite@init}[2]{%
\setcounter{textcitetotal}{0}%
\setcounter{textcitecount}{0}%
diff --git a/Master/texmf-dist/tex/latex/biblatex/cbx/authortitle-icomp.cbx b/Master/texmf-dist/tex/latex/biblatex/cbx/authortitle-icomp.cbx
index f8f2f7e5371..2c6190900cd 100644
--- a/Master/texmf-dist/tex/latex/biblatex/cbx/authortitle-icomp.cbx
+++ b/Master/texmf-dist/tex/latex/biblatex/cbx/authortitle-icomp.cbx
@@ -200,6 +200,10 @@
{\protected@xappto\cbx@savedcites{%
[\thefield{prenote}][\thefield{postnote}]{\cbx@savedkeys}}}
+% textcite has nested \DeclareCiteCommand definitions for textcite and we want to use
+% the normal textcite context
+\DeclareDelimcontextAlias{cbx@textcite}{textcite}
+
\newrobustcmd{\cbx@textcite@init}[2]{%
\setcounter{textcitetotal}{0}%
\setcounter{textcitecount}{0}%
diff --git a/Master/texmf-dist/tex/latex/biblatex/cbx/authoryear-comp.cbx b/Master/texmf-dist/tex/latex/biblatex/cbx/authoryear-comp.cbx
index a7774c5faa0..31ea488f673 100644
--- a/Master/texmf-dist/tex/latex/biblatex/cbx/authoryear-comp.cbx
+++ b/Master/texmf-dist/tex/latex/biblatex/cbx/authoryear-comp.cbx
@@ -1,7 +1,7 @@
\ProvidesFile{authoryear-comp.cbx}
[\abx@cbxid]
-\ExecuteBibliographyOptions{labeldate,uniquename,uniquelist,sortcites,
+\ExecuteBibliographyOptions{labeldateparts,uniquename,uniquelist,sortcites,
autocite=inline}
\renewcommand*{\iffinalcitedelim}{%
@@ -121,12 +121,38 @@
{\printtext[bibhyperref]{\printfield[citetitle]{labeltitle}}}
{\printtext[bibhyperref]{\printfield{label}}}}
+% Inside \printtext, argumentless macros also need '%' afterwards
+% otherwise the newlines are spaces
\newbibmacro*{cite:labelyear+extrayear}{%
\iffieldundef{labelyear}
{}
{\printtext[bibhyperref]{%
- \printfield{labelyear}%
- \printfield{extrayear}}}}
+ \ifdefstring\blx@dateformat@labeldate{edtf}
+ {}
+ {\datecircaprint}%
+ \dateeraprintpre{labelyear}%
+ \mkyearzeros{\thefield{labelyear}}%
+ \printfield{extrayear}%
+ \iffieldsequal{labeldateera}{labelenddateera}{}
+ {\dateeraprint{labelyear}}%
+ \dateuncertainprint%
+ \ifdefstring\blx@dateformat@labeldate{edtf}
+ {\datecircaprintedtf}
+ {}%
+ \iffieldundef{labelendyear}
+ {}
+ {\iffieldsequal{labelyear}{labelendyear}{}
+ {\ifdefstring\blx@dateformat@labeldate{edtf}
+ {\slash}% strict EDTF
+ {\bibdaterangesep
+ \enddatecircaprint}%
+ \dateeraprintpre{labelendyear}%
+ \mkyearzeros{\thefield{labelendyear}}%
+ \enddateuncertainprint
+ \ifdefstring\blx@dateformat@labeldate{edtf}
+ {\enddatecircaprintedtf}
+ {}%
+ \dateeraprint{labelendyear}}}}}}
\newbibmacro*{cite:extrayear}{%
\iffieldundef{extrayear}
@@ -229,6 +255,10 @@
{\protected@xappto\cbx@savedcites{%
[\thefield{prenote}][\thefield{postnote}]{\cbx@savedkeys}}}
+% textcite has nested \DeclareCiteCommand definitions for textcite and we want to use
+% the normal textcite context
+\DeclareDelimcontextAlias{cbx@textcite}{textcite}
+
\newrobustcmd{\cbx@textcite@init}[2]{%
\setcounter{textcitetotal}{0}%
\setcounter{textcitecount}{0}%
diff --git a/Master/texmf-dist/tex/latex/biblatex/cbx/authoryear-ibid.cbx b/Master/texmf-dist/tex/latex/biblatex/cbx/authoryear-ibid.cbx
index 96ffba35fba..f7e24c5f909 100644
--- a/Master/texmf-dist/tex/latex/biblatex/cbx/authoryear-ibid.cbx
+++ b/Master/texmf-dist/tex/latex/biblatex/cbx/authoryear-ibid.cbx
@@ -1,7 +1,7 @@
\ProvidesFile{authoryear-ibid.cbx}
[\abx@cbxid]
-\ExecuteBibliographyOptions{labeldate,uniquename,uniquelist,pagetracker,
+\ExecuteBibliographyOptions{labeldateparts,uniquename,uniquelist,pagetracker,
ibidtracker=constrict,autocite=inline}
\providecommand*{\mkibid}[1]{#1}
@@ -80,12 +80,38 @@
{\printtext[bibhyperref]{\printfield[citetitle]{labeltitle}}}
{\printtext[bibhyperref]{\printfield{label}}}}
+% Inside \printtext, argumentless macros also need '%' afterwards
+% otherwise the newlines are spaces
\newbibmacro*{cite:labelyear+extrayear}{%
\iffieldundef{labelyear}
{}
{\printtext[bibhyperref]{%
- \printfield{labelyear}%
- \printfield{extrayear}}}}
+ \ifdefstring\blx@dateformat@labeldate{edtf}
+ {}
+ {\datecircaprint}%
+ \dateeraprintpre{labelyear}%
+ \mkyearzeros{\thefield{labelyear}}%
+ \printfield{extrayear}%
+ \iffieldsequal{labeldateera}{labelenddateera}{}
+ {\dateeraprint{labelyear}}%
+ \dateuncertainprint%
+ \ifdefstring\blx@dateformat@labeldate{edtf}
+ {\datecircaprintedtf}
+ {}%
+ \iffieldundef{labelendyear}
+ {}
+ {\iffieldsequal{labelyear}{labelendyear}{}
+ {\ifdefstring\blx@dateformat@labeldate{edtf}
+ {\slash}% strict EDTF
+ {\bibdaterangesep
+ \enddatecircaprint}%
+ \dateeraprintpre{labelendyear}%
+ \mkyearzeros{\thefield{labelendyear}}%
+ \enddateuncertainprint
+ \ifdefstring\blx@dateformat@labeldate{edtf}
+ {\enddatecircaprintedtf}
+ {}%
+ \dateeraprint{labelendyear}}}}}}
\newbibmacro*{cite:postnote}{%
\ifbool{cbx:loccit}
diff --git a/Master/texmf-dist/tex/latex/biblatex/cbx/authoryear-icomp.cbx b/Master/texmf-dist/tex/latex/biblatex/cbx/authoryear-icomp.cbx
index 6481a00ae92..1fb8d93a84f 100644
--- a/Master/texmf-dist/tex/latex/biblatex/cbx/authoryear-icomp.cbx
+++ b/Master/texmf-dist/tex/latex/biblatex/cbx/authoryear-icomp.cbx
@@ -1,7 +1,7 @@
\ProvidesFile{authoryear-icomp.cbx}
[\abx@cbxid]
-\ExecuteBibliographyOptions{labeldate,uniquename,uniquelist,ibidtracker=constrict,
+\ExecuteBibliographyOptions{labeldateparts,uniquename,uniquelist,ibidtracker=constrict,
pagetracker,sortcites,autocite=inline}
\providecommand*{\mkibid}[1]{#1}
@@ -137,12 +137,38 @@
{\printtext[bibhyperref]{\printfield[citetitle]{labeltitle}}}
{\printtext[bibhyperref]{\printfield{label}}}}
+% Inside \printtext, argumentless macros also need '%' afterwards
+% otherwise the newlines are spaces
\newbibmacro*{cite:labelyear+extrayear}{%
\iffieldundef{labelyear}
{}
{\printtext[bibhyperref]{%
- \printfield{labelyear}%
- \printfield{extrayear}}}}
+ \ifdefstring\blx@dateformat@labeldate{edtf}
+ {}
+ {\datecircaprint}%
+ \dateeraprintpre{labelyear}%
+ \mkyearzeros{\thefield{labelyear}}%
+ \printfield{extrayear}%
+ \iffieldsequal{labeldateera}{labelenddateera}{}
+ {\dateeraprint{labelyear}}%
+ \dateuncertainprint%
+ \ifdefstring\blx@dateformat@labeldate{edtf}
+ {\datecircaprintedtf}
+ {}%
+ \iffieldundef{labelendyear}
+ {}
+ {\iffieldsequal{labelyear}{labelendyear}{}
+ {\ifdefstring\blx@dateformat@labeldate{edtf}
+ {\slash}% strict EDTF
+ {\bibdaterangesep
+ \enddatecircaprint}%
+ \dateeraprintpre{labelendyear}%
+ \mkyearzeros{\thefield{labelendyear}}%
+ \enddateuncertainprint
+ \ifdefstring\blx@dateformat@labeldate{edtf}
+ {\enddatecircaprintedtf}
+ {}%
+ \dateeraprint{labelendyear}}}}}}
\newbibmacro*{cite:extrayear}{%
\iffieldundef{extrayear}
@@ -258,6 +284,10 @@
{\protected@xappto\cbx@savedcites{%
[\thefield{prenote}][\thefield{postnote}]{\cbx@savedkeys}}}
+% textcite has nested \DeclareCiteCommand definitions for textcite and we want to use
+% the normal textcite context
+\DeclareDelimcontextAlias{cbx@textcite}{textcite}
+
\newrobustcmd{\cbx@textcite@init}[2]{%
\setcounter{textcitetotal}{0}%
\setcounter{textcitecount}{0}%
diff --git a/Master/texmf-dist/tex/latex/biblatex/cbx/authoryear.cbx b/Master/texmf-dist/tex/latex/biblatex/cbx/authoryear.cbx
index 949a35be915..ed9c7a0591b 100644
--- a/Master/texmf-dist/tex/latex/biblatex/cbx/authoryear.cbx
+++ b/Master/texmf-dist/tex/latex/biblatex/cbx/authoryear.cbx
@@ -1,7 +1,7 @@
\ProvidesFile{authoryear.cbx}
[\abx@cbxid]
-\ExecuteBibliographyOptions{labeldate,uniquename,uniquelist,autocite=inline}
+\ExecuteBibliographyOptions{labeldateparts,uniquename,uniquelist,autocite=inline}
\renewcommand*{\iffinalcitedelim}{\iflastcitekey}
@@ -53,12 +53,38 @@
{\printtext[bibhyperref]{\printfield[citetitle]{labeltitle}}}
{\printtext[bibhyperref]{\printfield{label}}}}
+% Inside \printtext, argumentless macros also need '%' afterwards
+% otherwise the newlines are spaces
\newbibmacro*{cite:labelyear+extrayear}{%
\iffieldundef{labelyear}
{}
{\printtext[bibhyperref]{%
- \printfield{labelyear}%
- \printfield{extrayear}}}}
+ \ifdefstring\blx@dateformat@labeldate{edtf}
+ {}
+ {\datecircaprint}%
+ \dateeraprintpre{labelyear}%
+ \mkyearzeros{\thefield{labelyear}}%
+ \printfield{extrayear}%
+ \iffieldsequal{labeldateera}{labelenddateera}{}
+ {\dateeraprint{labelyear}}%
+ \dateuncertainprint%
+ \ifdefstring\blx@dateformat@labeldate{edtf}
+ {\datecircaprintedtf}
+ {}%
+ \iffieldundef{labelendyear}
+ {}
+ {\iffieldsequal{labelyear}{labelendyear}{}
+ {\ifdefstring\blx@dateformat@labeldate{edtf}
+ {\slash}% strict EDTF
+ {\bibdaterangesep
+ \enddatecircaprint}%
+ \dateeraprintpre{labelendyear}%
+ \mkyearzeros{\thefield{labelendyear}}%
+ \enddateuncertainprint
+ \ifdefstring\blx@dateformat@labeldate{edtf}
+ {\enddatecircaprintedtf}
+ {}%
+ \dateeraprint{labelendyear}}}}}}
\newbibmacro*{textcite:postnote}{%
\iffieldundef{postnote}
@@ -71,21 +97,21 @@
\printfield{postnote}\bibcloseparen}}
\DeclareCiteCommand{\cite}
- {\usebibmacro{prenote}}
+ {\usebibmacro{prenote}}%
{\usebibmacro{citeindex}%
\usebibmacro{cite}}
{\multicitedelim}
{\usebibmacro{postnote}}
\DeclareCiteCommand*{\cite}
- {\usebibmacro{prenote}}
+ {\usebibmacro{prenote}}%
{\usebibmacro{citeindex}%
\usebibmacro{citeyear}}
{\multicitedelim}
{\usebibmacro{postnote}}
\DeclareCiteCommand{\parencite}[\mkbibparens]
- {\usebibmacro{prenote}}
+ {\usebibmacro{prenote}}%
{\usebibmacro{citeindex}%
\usebibmacro{cite}}
{\multicitedelim}
diff --git a/Master/texmf-dist/tex/latex/biblatex/cbx/numeric-comp.cbx b/Master/texmf-dist/tex/latex/biblatex/cbx/numeric-comp.cbx
index 0f8942fa118..7f2b64d569c 100644
--- a/Master/texmf-dist/tex/latex/biblatex/cbx/numeric-comp.cbx
+++ b/Master/texmf-dist/tex/latex/biblatex/cbx/numeric-comp.cbx
@@ -210,6 +210,10 @@
{\protected@xappto\cbx@savedcites{%
[\thefield{prenote}][\thefield{postnote}]{\cbx@savedkeys}}}
+% textcite has nested \DeclareCiteCommand definitions for textcite and we want to use
+% the normal textcite context
+\DeclareDelimcontextAlias{cbx@textcite}{textcite}
+
\newrobustcmd{\cbx@textcite@init}[2]{%
\setcounter{textcitetotal}{0}%
\setcounter{textcitecount}{0}%
diff --git a/Master/texmf-dist/tex/latex/biblatex/cbx/numeric.cbx b/Master/texmf-dist/tex/latex/biblatex/cbx/numeric.cbx
index 5c6fa4b1009..81b3bcb80e5 100644
--- a/Master/texmf-dist/tex/latex/biblatex/cbx/numeric.cbx
+++ b/Master/texmf-dist/tex/latex/biblatex/cbx/numeric.cbx
@@ -134,6 +134,10 @@
{\protected@xappto\cbx@savedcites{%
[\thefield{prenote}][\thefield{postnote}]{\cbx@savedkeys}}}
+% textcite has nested \DeclareCiteCommand definitions for textcite and we want to use
+% the normal textcite context
+\DeclareDelimcontextAlias{cbx@textcite}{textcite}
+
\newrobustcmd{\cbx@textcite@init}[2]{%
\setcounter{textcitetotal}{0}%
\setcounter{textcitecount}{0}%
diff --git a/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-ibid.cbx b/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-ibid.cbx
index d4a45642373..ae5dccc7ca7 100644
--- a/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-ibid.cbx
+++ b/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-ibid.cbx
@@ -237,6 +237,10 @@
{}
{}
+% textcite has nested \DeclareCiteCommand definitions for textcite and we want to use
+% the normal textcite context
+\DeclareDelimcontextAlias{cbx@textcite}{textcite}
+
\newrobustcmd{\cbx@textcite@init}[3]{%
\setcounter{textcitetotal}{0}%
\setcounter{textcitecount}{0}%
diff --git a/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-inote.cbx b/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-inote.cbx
index d4fc145459d..6fc88f6b6d6 100644
--- a/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-inote.cbx
+++ b/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-inote.cbx
@@ -296,6 +296,10 @@
{}
{}
+% textcite has nested \DeclareCiteCommand definitions for textcite and we want to use
+% the normal textcite context
+\DeclareDelimcontextAlias{cbx@textcite}{textcite}
+
\newrobustcmd{\cbx@textcite@init}[3]{%
\setcounter{textcitetotal}{0}%
\setcounter{textcitecount}{0}%
diff --git a/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-note.cbx b/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-note.cbx
index de06094186f..42156224c97 100644
--- a/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-note.cbx
+++ b/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-note.cbx
@@ -267,6 +267,10 @@
{}
{}
+% textcite has nested \DeclareCiteCommand definitions for textcite and we want to use
+% the normal textcite context
+\DeclareDelimcontextAlias{cbx@textcite}{textcite}
+
\newrobustcmd{\cbx@textcite@init}[3]{%
\setcounter{textcitetotal}{0}%
\setcounter{textcitecount}{0}%
diff --git a/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-trad1.cbx b/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-trad1.cbx
index fe450f85e38..33841be3ed6 100644
--- a/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-trad1.cbx
+++ b/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-trad1.cbx
@@ -269,6 +269,10 @@
{}
{}
+% textcite has nested \DeclareCiteCommand definitions for textcite and we want to use
+% the normal textcite context
+\DeclareDelimcontextAlias{cbx@textcite}{textcite}
+
\newrobustcmd{\cbx@textcite@init}[3]{%
\setcounter{textcitetotal}{0}%
\setcounter{textcitecount}{0}%
diff --git a/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-trad2.cbx b/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-trad2.cbx
index acf463877aa..0461eb14d20 100644
--- a/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-trad2.cbx
+++ b/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-trad2.cbx
@@ -263,6 +263,10 @@
{}
{}
+% textcite has nested \DeclareCiteCommand definitions for textcite and we want to use
+% the normal textcite context
+\DeclareDelimcontextAlias{cbx@textcite}{textcite}
+
\newrobustcmd{\cbx@textcite@init}[3]{%
\setcounter{textcitetotal}{0}%
\setcounter{textcitecount}{0}%
diff --git a/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-trad3.cbx b/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-trad3.cbx
index 54e2b3aecfa..80a45d6a004 100644
--- a/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-trad3.cbx
+++ b/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-trad3.cbx
@@ -236,6 +236,10 @@
{}
{}
+% textcite has nested \DeclareCiteCommand definitions for textcite and we want to use
+% the normal textcite context
+\DeclareDelimcontextAlias{cbx@textcite}{textcite}
+
\newrobustcmd{\cbx@textcite@init}[3]{%
\setcounter{textcitetotal}{0}%
\setcounter{textcitecount}{0}%
diff --git a/Master/texmf-dist/tex/latex/biblatex/cbx/verbose.cbx b/Master/texmf-dist/tex/latex/biblatex/cbx/verbose.cbx
index e798dec1839..c36465fe08f 100644
--- a/Master/texmf-dist/tex/latex/biblatex/cbx/verbose.cbx
+++ b/Master/texmf-dist/tex/latex/biblatex/cbx/verbose.cbx
@@ -206,6 +206,10 @@
{}
{}
+% textcite has nested \DeclareCiteCommand definitions for textcite and we want to use
+% the normal textcite context
+\DeclareDelimcontextAlias{cbx@textcite}{textcite}
+
\newrobustcmd{\cbx@textcite@init}[3]{%
\setcounter{textcitetotal}{0}%
\setcounter{textcitecount}{0}%
diff --git a/Master/texmf-dist/tex/latex/biblatex/lbx/australian.lbx b/Master/texmf-dist/tex/latex/biblatex/lbx/australian.lbx
index 551afa2c5df..675089ddd8b 100644
--- a/Master/texmf-dist/tex/latex/biblatex/lbx/australian.lbx
+++ b/Master/texmf-dist/tex/latex/biblatex/lbx/australian.lbx
@@ -13,6 +13,14 @@
{\mkbibmonth{\thefield{#2}}%
\iffieldundef{#1}{}{\space}}%
\iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\stripzeros{\thefield{#1}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \mkyearzeros{\thefield{#1}}}%
}
\InheritBibliographyStrings{english}
diff --git a/Master/texmf-dist/tex/latex/biblatex/lbx/brazilian.lbx b/Master/texmf-dist/tex/latex/biblatex/lbx/brazilian.lbx
index 317aa18ab3e..80e2fd4ede3 100644
--- a/Master/texmf-dist/tex/latex/biblatex/lbx/brazilian.lbx
+++ b/Master/texmf-dist/tex/latex/biblatex/lbx/brazilian.lbx
@@ -6,7 +6,6 @@
\DeclareBibliographyExtras{%
\protected\def\bibrangedash{%
\textendash\penalty\hyphenpenalty}% breakable dash
- \protected\def\bibdatedash{\bibrangedash}%
\let\finalandcomma=\empty
\let\finalandsemicolon=\empty
\def\mkbibordinal{\mkbibmascord}%
@@ -24,21 +23,57 @@
{}
{\mkbibmonth{\thefield{#2}}%
\iffieldundef{#1}{}{\nobreakspace de\space}}%
- \iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\stripzeros{\thefield{#1}}}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
\protected\def\mkbibdateshort#1#2#3{%
\iffieldundef{#3}
{}
- {\mkdatezeros{\thefield{#3}}%
+ {\mkdayzeros{\thefield{#3}}%
\iffieldundef{#2}{}{/}}%
\iffieldundef{#2}
{}
- {\mkdatezeros{\thefield{#2}}%
+ {\mkmonthzeros{\thefield{#2}}%
\iffieldundef{#1}{}{/}}%
- \iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\mkdatezeros{\thefield{#1}}}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
\savecommand\mkbibordedition
\savecommand\mkbibordseries
\def\mkbibordedition{\mkbibfemord}%
\def\mkbibordseries{\mkbibfemord}%
+ \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{%
+ \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezeros{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
}
\UndeclareBibliographyExtras{%
@@ -400,6 +435,7 @@
langdutch = {{holand{\^e}s}{holand{\^e}s}},
langenglish = {{ingl\^es}{ingl\^es}},
langfinnish = {{finland\^es}{finland\^es}},
+% langestonian = {{}{}},% FIXME: missing
langfrench = {{franc\^es}{franc\^es}},
langgerman = {{alem\~ao}{alem\~ao}},
langgreek = {{grego}{grego}},
@@ -420,6 +456,7 @@
fromdanish = {{do dinamarqu\^es}{do dinamarqu\^es}},
fromdutch = {{do holand{\^e}s}{do holand{\^e}s}},
fromenglish = {{do ingl\^es}{do ingl\^es}},
+% fromestonian = {{}{}},% FIXME: missing
fromfinnish = {{do finland\^es}{do finland\^es}},
fromfrench = {{do franc\^es}{do franc\^es}},
fromgerman = {{do alem\~ao}{do alem\~ao}},
@@ -455,6 +492,17 @@
library = {{biblioteca}{biblioteca}},
abstract = {{resumo}{resumo}},
annotation = {{notas}{notas}},
+ commonera = {{Era Comum}{EC}},
+ beforecommonera = {{antes da Era Comum}{AEC}},
+ annodomini = {{depois de Cristo}{d\adddot C\adddot}},
+ beforechrist = {{antes de Cristo}{a\adddot C\adddot}},
+% circa = {{}{}},% FIXME: missing
+% spring = {{}{}},% FIXME: missing
+% summer = {{}{}},% FIXME: missing
+% autumn = {{}{}},% FIXME: missing
+% winter = {{}{}},% FIXME: missing
+ am = {{AM}{AM}},
+ pm = {{PM}{PM}},
}
\endinput
diff --git a/Master/texmf-dist/tex/latex/biblatex/lbx/british.lbx b/Master/texmf-dist/tex/latex/biblatex/lbx/british.lbx
index 5d54ac91fad..fe10f05545d 100644
--- a/Master/texmf-dist/tex/latex/biblatex/lbx/british.lbx
+++ b/Master/texmf-dist/tex/latex/biblatex/lbx/british.lbx
@@ -4,7 +4,6 @@
\DeclareBibliographyExtras{%
\protected\def\bibrangedash{%
\textendash\penalty\hyphenpenalty}% breakable dash
- \protected\def\bibdatedash{\bibrangedash}%
\let\finalandcomma=\empty
\protected\def\mkbibordinal#1{%
\begingroup
@@ -27,17 +26,54 @@
{}
{\mkbibmonth{\thefield{#2}}%
\iffieldundef{#1}{}{\space}}%
- \iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\stripzeros{\thefield{#1}}}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
\protected\def\mkbibdateshort#1#2#3{%
\iffieldundef{#3}
{}
- {\mkdatezeros{\thefield{#3}}%
+ {\mkdayzeros{\thefield{#3}}%
\iffieldundef{#2}{}{/}}%
\iffieldundef{#2}
{}
- {\mkdatezeros{\thefield{#2}}%
+ {\mkmonthzeros{\thefield{#2}}%
\iffieldundef{#1}{}{/}}%
- \iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\mkdatezeros{\thefield{#1}}}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{%
+ \stripzeros{\mktimehh{\thefield{#1}}}%
+ \bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezeros{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
}
\InheritBibliographyStrings{english}
diff --git a/Master/texmf-dist/tex/latex/biblatex/lbx/catalan.lbx b/Master/texmf-dist/tex/latex/biblatex/lbx/catalan.lbx
index 9b116925185..8b6675d12b0 100644
--- a/Master/texmf-dist/tex/latex/biblatex/lbx/catalan.lbx
+++ b/Master/texmf-dist/tex/latex/biblatex/lbx/catalan.lbx
@@ -5,7 +5,6 @@
\DeclareBibliographyExtras{%
\protected\def\bibrangedash{\addnbthinspace -\addnbthinspace}%
- \protected\def\bibdatedash{\addnbthinspace\textendash\addhpthinspace}%
\let\finalandcomma=\empty
\let\finalandsemicolon=\empty
\def\mkbibordinal{\mkbibmascord}%
@@ -37,37 +36,73 @@
{\space de\nobreakspace}}%
\iffieldundef{#1}
{}
- {\iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\thefield{#1}}}}%
+ {\iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\thefield{#1}}}}%
\protected\def\mkbibdateshort#1#2#3{% maintainers: check me
\iffieldundef{#3}
{}
- {\stripzeros{\thefield{#3}}%
+ {\mkdayzeros{\thefield{#3}}%
\iffieldundef{#2}{}{\mbox{-}}}%
\iffieldundef{#2}
{}
- {\stripzeros{\thefield{#2}}%
+ {\mkmonthzeros{\thefield{#2}}%
\iffieldundef{#1}{}{\mbox{-}}}%
- \iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\thefield{#1}}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\thefield{#1}}}%
\savecommand\lbx@initnamehook
\savecommand\lbx@inittitlehook
- \savecommand\mkbibrangeterse
+ \savecommand\mkdaterangeterse
\savecommand\mkbibordedition
\savecommand\mkbibordseries
\let\lbx@initnamehook=\lbx@ca@smartof
\let\lbx@inittitlehook=\lbx@ca@smartof
- \protected\def\mkbibrangeterse{%
+ \protected\def\mkdaterangeterse{%
\BibliographyWarning{%
Date format 'terse' not applicable to\MessageBreak
Catalan dates. Using format 'short' instead}%
- \mkbibrangefull{short}}%
+ \mkdaterangefull{short}}%
\def\mkbibordedition{\mkbibfemord}%
\def\mkbibordseries{\mkbibfemord}%
+ \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{%
+ \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezeros{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
}
\UndeclareBibliographyExtras{%
\restorecommand\lbx@initnamehook
\restorecommand\lbx@inittitlehook
- \restorecommand\mkbibrangeterse
+ \restorecommand\mkdaterangeterse
\restorecommand\mkbibordedition
\restorecommand\mkbibordseries
}
@@ -420,6 +455,7 @@
langdanish = {{dan\`es}{dan\adddot}},
langdutch = {{neerland\`es}{neerl\adddot}},
langenglish = {{angl\`es}{ang\adddot}},
+% langestonian = {{}{}},% FIXME: missing
langfinnish = {{fin\`es}{fin\adddot}},
langfrench = {{franc\`es}{fr\adddot}},
langgerman = {{alemany}{al\adddot}},
@@ -441,6 +477,7 @@
fromdanish = {{del dan\`es}{del dan\adddot}},
fromdutch = {{del neerland\`es}{del neerl\adddot}},
fromenglish = {{de l'angl\`es}{de l'ang\adddot}},
+% fromestonian = {{}{}},% FIXME: missing
fromfinnish = {{del fin\`es}{del fin\adddot}},
fromfrench = {{del franc\`es}{del fr\adddot}},
fromgerman = {{de l'alemany}{de l'al\adddot}},
@@ -476,6 +513,17 @@
library = {{biblioteca}{bibl\adddot}},
abstract = {{resum}{res\adddot}},
annotation = {{nota}{n\adddot}},
+ commonera = {{Era Comuna}{EC}},
+ beforecommonera = {{abans de l’Era Comuna}{AEC}},
+ annodomini = {{despr\'es de Crist}{dC}},
+ beforechrist = {{abans de Crist}{aC}},
+% circa = {{}{}},% FIXME: missing
+% spring = {{}{}},% FIXME: missing
+% summer = {{}{}},% FIXME: missing
+% autumn = {{}{}},% FIXME: missing
+% winter = {{}{}},% FIXME: missing
+ am = {{a\adddotspace m\adddot}{a\adddotspace m\adddot}},
+ pm = {{p\adddotspace m\adddot}{p\adddotspace m\adddot}},
}
\begingroup
diff --git a/Master/texmf-dist/tex/latex/biblatex/lbx/croatian.lbx b/Master/texmf-dist/tex/latex/biblatex/lbx/croatian.lbx
index 08aee901dbf..cacb3ced281 100644
--- a/Master/texmf-dist/tex/latex/biblatex/lbx/croatian.lbx
+++ b/Master/texmf-dist/tex/latex/biblatex/lbx/croatian.lbx
@@ -9,7 +9,6 @@
\DeclareBibliographyExtras{%
\protected\def\bibrangedash{\textendash\penalty\hyphenpenalty}%
- \protected\def\bibdatedash{\addnbthinspace\textendash\addhpthinspace}%
\let\finalandcomma=\empty
\let\finalandsemicolon=\empty
\protected\def\mkbibordinal#1{\stripzeros{#1}\adddot}%
@@ -29,7 +28,7 @@
\iffieldundef{#1}{}{\space}}%
\iffieldbibstring{#1}
{\bibstring{\thefield{#1}}}
- {\stripzeros{\thefield{#1}}}}%
+ {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
\protected\def\mkbibdateshort#1#2#3{%
\iffieldundef{#3}
{}
@@ -41,11 +40,43 @@
\iffieldundef{#1}{}{\addnbthinspace}}%
\iffieldbibstring{#1}
{\bibstring{\thefield{#1}}}
- {\stripzeros{\thefield{#1}}}}%
+ {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
\savecommand\mkbibordedition
\savecommand\mkbibordseries
\def\mkbibordedition{\mkbibordinal}%
\def\mkbibordseries{\mkbibfemord}%
+ \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{%
+ \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezeros{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
}
\UndeclareBibliographyExtras{%
@@ -433,6 +464,7 @@
langdanish = {{danski}{danski}},
langdutch = {{nizozemski}{nizozemski}},
langenglish = {{engleski}{engleski}},
+% langestonian = {{}{}},% FIXME: missing
% langfinnish = {{}{}},% FIXME: missing
langfrench = {{francuski}{francuski}},
langgerman = {{njema\v{c}ki}{njema\v{c}ki}},
@@ -454,6 +486,7 @@
fromdanish = {{s danskog}{s danskog}},
fromdutch = {{s nizozemskog}{s nizozemskog}},
fromenglish = {{s engleskog}{s engleskog}},
+% fromestonian = {{}{}},% FIXME: missing
% fromfinnish = {{}{}},% FIXME: missing
fromfrench = {{s francuskog}{s francuskog}},
fromgerman = {{s njema\v{c}kog}{s njema\v{c}kog}},
@@ -492,6 +525,17 @@
library = {{biblioteka}{biblioteka}},
abstract = {{sa\v{z}etak}{sa\v{z}etak}},
annotation = {{bilje\v{s}ka}{bilje\v{s}ka}},
+ commonera = {{n\adddot e\adddot}{n\adddot e\adddot}},
+ beforecommonera = {{pr\adddotspace n\adddotspace e\adddot}{pr\adddotspace n\adddotspace e\adddot}},
+ annodomini = {{poslije Krista}{p\adddotspace Kr\adddot}},
+ beforechrist = {{prije Krista}{pr\adddotspace Kr\adddot}},
+% circa = {{}{}},% FIXME: missing
+% spring = {{}{}},% FIXME: missing
+% summer = {{}{}},% FIXME: missing
+% autumn = {{}{}},% FIXME: missing
+% winter = {{}{}},% FIXME: missing
+ am = {{AM}{AM}},
+ pm = {{PM}{PM}},
}
\protected\gdef\lbx@cr@mkbibmonth#1{%
diff --git a/Master/texmf-dist/tex/latex/biblatex/lbx/czech.lbx b/Master/texmf-dist/tex/latex/biblatex/lbx/czech.lbx
index 5c3593dff42..0a8cfeeef94 100644
--- a/Master/texmf-dist/tex/latex/biblatex/lbx/czech.lbx
+++ b/Master/texmf-dist/tex/latex/biblatex/lbx/czech.lbx
@@ -5,8 +5,6 @@
\DeclareCapitalPunctuation{.!?}%
\protected\def\bibrangedash{%
\textendash\penalty\hyphenpenalty}% breakable dash
- \protected\def\bibdatedash{%
- \textemdash\penalty\hyphenpenalty}% breakable dash
\let\finalandcomma=\empty
\let\finalandsemicolon=\empty
\protected\def\mkbibordinal#1{\stripzeros{#1}\adddot}%
@@ -22,19 +20,55 @@
{}
{\mkbibmonth{\thefield{#2}}%
\iffieldundef{#1}{}{\space}}%
- \iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\stripzeros{\thefield{#1}}}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
\protected\def\mkbibdateshort#1#2#3{%
\iffieldundef{#3}
{}
- {\mkdatezeros{\thefield{#3}}\adddot
+ {\mkdayzeros{\thefield{#3}}\adddot
\iffieldundef{#2}{}{\thinspace}}%
\iffieldundef{#2}
{}
- {\mkdatezeros{\thefield{#2}}%
+ {\mkmonthzeros{\thefield{#2}}%
\iffieldundef{#1}
{}
{\iffieldundef{#3}{/}{\adddot\thinspace}}}%
- \iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\mkdatezeros{\thefield{#1}}}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{%
+ \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezeros{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
}
\DeclareBibliographyStrings{%
@@ -342,6 +376,7 @@
langdanish = {{d\'{a}n\v{s}tina}{d\'{a}n\adddot}},
langdutch = {{holand\v{s}tina}{hol.\adddot}},
langenglish = {{angli\v{c}tina}{angl\adddot}},
+% langestonian = {{}{}},% FIXME: missing
langfinnish = {{fin\v{s}tina}{fin\adddot}},
langfrench = {{francouz\v{s}tina}{franc\adddot}},
langgerman = {{n\v{e}m\v{c}ina}{n\v{e}m\adddot}},
@@ -362,6 +397,7 @@
fromdanish = {{z d\'{a}n\v{s}tiny}{z d\'{a}n\adddot}},
fromdutch = {{z holand\v{s}tiny}{z hol\adddot}},
fromenglish = {{z angli\v{c}tiny}{z angl\adddot}},
+% fromestonian = {{}{}},% FIXME: missing
fromfinnish = {{z fin\v{s}tiny}{z fin.}},
fromfrench = {{z francouz\v{s}tiny}{z franc\adddot}},
fromgerman = {{z n\v{e}m\v{c}iny}{z n\v{e}m\adddot}},
@@ -396,6 +432,17 @@
library = {{knihovna}{knih\adddot}},
abstract = {{abstrakt}{abst\adddot}},
annotation = {{anotace}{anot\adddot}},
+% commonera = {{}{}},
+% beforecommonera = {{}{}},
+ annodomini = {{n\adddotspace l\adddot}{n\adddotspace l\adddot}},
+ beforechrist = {{p\v{r}\adddotspace n\adddotspace l\adddot}{p\v{r}\adddotspace n\adddotspace l\adddot}},
+% circa = {{}{}},% FIXME: missing
+% spring = {{}{}},% FIXME: missing
+% summer = {{}{}},% FIXME: missing
+% autumn = {{}{}},% FIXME: missing
+% winter = {{}{}},% FIXME: missing
+ am = {{dop\adddot}{dop\adddot}},
+ pm = {{odp\adddot}{odp\adddot}},
}
\endinput
diff --git a/Master/texmf-dist/tex/latex/biblatex/lbx/danish.lbx b/Master/texmf-dist/tex/latex/biblatex/lbx/danish.lbx
index b0799936d61..c9786e9ee96 100644
--- a/Master/texmf-dist/tex/latex/biblatex/lbx/danish.lbx
+++ b/Master/texmf-dist/tex/latex/biblatex/lbx/danish.lbx
@@ -6,7 +6,6 @@
\DeclareBibliographyExtras{%
\protected\def\bibrangedash{%
\textendash\penalty\hyphenpenalty}% breakable dash
- \protected\def\bibdatedash{\bibrangedash}%
\let\finalandcomma=\empty
\let\finalandsemicolon=\empty
\protected\def\mkbibordinal#1{\stripzeros{#1}\adddot}%
@@ -22,16 +21,52 @@
{}
{\mkbibmonth{\thefield{#2}}%
\iffieldundef{#1}{}{\space}}%
- \iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\stripzeros{\thefield{#1}}}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
\protected\def\mkbibdateshort#1#2#3{%
\iffieldundef{#3}
{}
- {\mkdatezeros{\thefield{#3}}\adddot}%
+ {\mkdayzeros{\thefield{#3}}\adddot}%
\iffieldundef{#2}
{}
- {\mkdatezeros{\thefield{#2}}%
+ {\mkmonthzeros{\thefield{#2}}%
\iffieldundef{#1}{}{\adddot}}%
- \iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\mkdatezeros{\thefield{#1}}}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{%
+ \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezeros{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
}
\DeclareBibliographyStrings{%
@@ -408,6 +443,7 @@
langdanish = {{dansk}{dansk}},
langdutch = {{nederlandsk}{nederlandsk}},
langenglish = {{engelsk}{engelsk}},
+% langestonian = {{}{}},% FIXME: missing
langfinnish = {{finsk}{finsk}},
langfrench = {{fransk}{fransk}},
langgerman = {{tysk}{tysk}},
@@ -429,6 +465,7 @@
fromdanish = {{fra dansk}{fra dansk}},
fromdutch = {{fra nederlandsk}{fra nederlandsk}},
fromenglish = {{fra engelsk}{fra engelsk}},
+% fromestonian = {{}{}},% FIXME: missing
fromfinnish = {{fra finsk}{fra finsk}},
fromfrench = {{fra fransk}{fra fransk}},
fromgerman = {{fra tysk}{fra tysk}},
@@ -466,6 +503,17 @@
% alternative translation:
% abstract = {{abstract}{abstract}},
annotation = {{forklaring}{forklaring}},
+ commonera = {{vesterlandsk tidsregning}{v\adddot t\adddot}},
+ beforecommonera = {{f\o r vesterlandsk tidsregning}{f\adddot v\adddot t\adddot}},
+ annodomini = {{e\adddot Kr\adddot}{e\adddot Kr\adddot}},
+ beforechrist = {{f\adddot Kr\adddot}{f\adddot Kr\adddot}},
+% circa = {{}{}},% FIXME: missing
+% spring = {{}{}},% FIXME: missing
+% summer = {{}{}},% FIXME: missing
+% autumn = {{}{}},% FIXME: missing
+% winter = {{}{}},% FIXME: missing
+ am = {{AM}{AM}},
+ pm = {{PM}{PM}},
}
\endinput
diff --git a/Master/texmf-dist/tex/latex/biblatex/lbx/dutch.lbx b/Master/texmf-dist/tex/latex/biblatex/lbx/dutch.lbx
index 2f0b63da8a3..e9a068242a5 100644
--- a/Master/texmf-dist/tex/latex/biblatex/lbx/dutch.lbx
+++ b/Master/texmf-dist/tex/latex/biblatex/lbx/dutch.lbx
@@ -10,7 +10,6 @@
\DeclareBibliographyExtras{%
\protected\def\bibrangedash{%
\textendash\penalty\hyphenpenalty}% breakable dash
- \protected\def\bibdatedash{\bibrangedash}%
\let\finalandcomma=\empty
\let\finalandsemicolon=\empty
% both ordinal numbers are valid, the first is the most basic: 1e, 2e, 19e
@@ -42,17 +41,53 @@
{}
{\mkbibmonth{\thefield{#2}}%
\iffieldundef{#1}{}{\space}}%
- \iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\stripzeros{\thefield{#1}}}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
\protected\def\mkbibdateshort#1#2#3{%
\iffieldundef{#3}
{}
- {\mkdatezeros{\thefield{#3}}%
+ {\mkdayzeros{\thefield{#3}}%
\iffieldundef{#2}{}{\mbox{-}}}%
\iffieldundef{#2}
{}
- {\mkdatezeros{\thefield{#2}}%
+ {\mkmonthzeros{\thefield{#2}}%
\iffieldundef{#1}{}{\mbox{-}}}%
- \iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\mkdatezeros{\thefield{#1}}}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{%
+ \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezeros{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
}
\DeclareBibliographyStrings{%
@@ -411,6 +446,7 @@
langdanish = {{Deens}{Deens}},
langdutch = {{Nederlands}{Nederlands}},
langenglish = {{Engels}{Engels}},
+% langestonian = {{}{}},% FIXME: missing
langfinnish = {{Fins}{Fins}},
langfrench = {{Frans}{Frans}},
langgerman = {{Duits}{Duits}},
@@ -432,6 +468,7 @@
fromdanish = {{uit het Deens}{uit het Deens}},
fromdutch = {{uit het Nederlands}{uit het Nederlands}},
fromenglish = {{uit het Engels}{uit het Engels}},
+% fromestonian = {{}{}},% FIXME: missing
fromfinnish = {{uit het Fins}{uit het Fins}},
fromfrench = {{uit het Frans}{uit het Frans}},
fromgerman = {{uit het Duits}{uit het Duits}},
@@ -463,6 +500,17 @@
patreqfr = {{Franse patentaanvraag}{Franse patentaanvr\adddot}},
patrequk = {{Britse patentaanvraag}{Britse patentaanvr\adddot}},
patrequs = {{Amerikaanse patentaanvraag}{Amer\adddot patentaanvr\adddot}},
+ commonera = {{gewone jaartelling}{g\adddot j\adddot}},
+ beforecommonera = {{v\'o\'or gewone jaartelling}{v\adddot g\adddot j\adddot}},
+ annodomini = {{na Christus}{n\adddot Chr\adddot}},
+ beforechrist = {{voor Christus}{v\adddot Chr\adddot}},
+% circa = {{}{}},% FIXME: missing
+% spring = {{}{}},% FIXME: missing
+% summer = {{}{}},% FIXME: missing
+% autumn = {{}{}},% FIXME: missing
+% winter = {{}{}},% FIXME: missing
+ am = {{a\adddot m\adddot}{a\adddot m\adddot}},
+ pm = {{p\adddot m\adddot}{p\adddot m\adddot}},
}
\endinput
diff --git a/Master/texmf-dist/tex/latex/biblatex/lbx/english.lbx b/Master/texmf-dist/tex/latex/biblatex/lbx/english.lbx
index 754cc2939a7..b8f5ff5728c 100644
--- a/Master/texmf-dist/tex/latex/biblatex/lbx/english.lbx
+++ b/Master/texmf-dist/tex/latex/biblatex/lbx/english.lbx
@@ -7,7 +7,6 @@ canadian,australian,newzealand,USenglish,UKenglish}
\DeclareBibliographyExtras{%
\protected\def\bibrangedash{%
\textendash\penalty\hyphenpenalty}% breakable dash
- \protected\def\bibdatedash{\bibrangedash}%
\def\finalandcomma{\addcomma}%
\def\finalandsemicolon{\addsemicolon}%
\protected\def\mkbibordinal#1{%
@@ -35,40 +34,73 @@ canadian,australian,newzealand,USenglish,UKenglish}
\iffieldundef{#1}{}{,\space}}%
\iffieldbibstring{#1}
{\bibstring{\thefield{#1}}}
- {\stripzeros{\thefield{#1}}}}%
+ {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
\protected\def\mkbibdateshort#1#2#3{%
\iffieldundef{#2}
{}
- {\mkdatezeros{\thefield{#2}}%
+ {\mkmonthzeros{\thefield{#2}}%
\iffieldundef{#3}
{\iffieldundef{#1}{}{/}}
{/}}%
\iffieldundef{#3}
{}
- {\mkdatezeros{\thefield{#3}}%
+ {\mkdayzeros{\thefield{#3}}%
\iffieldundef{#1}{}{/}}%
\iffieldbibstring{#1}
{\bibstring{\thefield{#1}}}
- {\mkdatezeros{\thefield{#1}}}}%
- \savecommand\mkbibrangecomp
- \savecommand\mkbibrangecompextra
- \savecommand\mkbibrangeterse
- \savecommand\mkbibrangeterseextra
- \protected\def\mkbibrangecomp{%
- \lbx@us@mkbibrangetrunc@long{long}}%
- \protected\def\mkbibrangeterse{%
- \lbx@us@mkbibrangetrunc@short{short}}%
- \protected\def\mkbibrangecompextra{%
- \lbx@us@mkbibrangetruncextra@long{long}}%
- \protected\def\mkbibrangeterseextra{%
- \lbx@us@mkbibrangetruncextra@short{short}}%
+ {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{%
+ \stripzeros{\mktimehh{\thefield{#1}}}%
+ \bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezeros{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \savecommand\mkdaterangecomp
+ \savecommand\mkdaterangecompextra
+ \savecommand\mkdaterangeterse
+ \savecommand\mkdaterangeterseextra
+ \protected\def\mkdaterangecomp{%
+ \lbx@us@mkdaterangetrunc@long{long}}%
+ \protected\def\mkdaterangeterse{%
+ \lbx@us@mkdaterangetrunc@short{short}}%
+ \protected\def\mkdaterangecompextra{%
+ \lbx@us@mkdaterangetruncextra@long{long}}%
+ \protected\def\mkdaterangeterseextra{%
+ \lbx@us@mkdaterangetruncextra@short{short}}%
}
\UndeclareBibliographyExtras{%
- \restorecommand\mkbibrangecomp
- \restorecommand\mkbibrangecompextra
- \restorecommand\mkbibrangeterse
- \restorecommand\mkbibrangeterseextra
+ \restorecommand\mkdaterangecomp
+ \restorecommand\mkdaterangecompextra
+ \restorecommand\mkdaterangeterse
+ \restorecommand\mkdaterangeterseextra
}
\DeclareBibliographyStrings{%
@@ -425,6 +457,7 @@ canadian,australian,newzealand,USenglish,UKenglish}
langdanish = {{Danish}{Danish}},
langdutch = {{Dutch}{Dutch}},
langenglish = {{English}{English}},
+ langestonian = {{Estonian}{Estonian}},
langfinnish = {{Finnish}{Finnish}},
langfrench = {{French}{French}},
langgerman = {{German}{German}},
@@ -446,6 +479,7 @@ canadian,australian,newzealand,USenglish,UKenglish}
fromdanish = {{from the Danish}{from the Danish}},
fromdutch = {{from the Dutch}{from the Dutch}},
fromenglish = {{from the English}{from the English}},
+ fromestonian = {{from the Estonian}{from the Estonian}},
fromfinnish = {{from the Finnish}{from the Finnish}},
fromfrench = {{from the French}{from the French}},
fromgerman = {{from the German}{from the German}},
@@ -481,74 +515,135 @@ canadian,australian,newzealand,USenglish,UKenglish}
library = {{library}{library}},
abstract = {{abstract}{abstract}},
annotation = {{annotations}{annotations}},
+ commonera = {{Common Era}{CE}},
+ beforecommonera = {{Before Common Era}{BCE}},
+ annodomini = {{Anno Domini}{AD}},
+ beforechrist = {{Before Christ}{BC}},
+ circa = {{circa}{ca\adddot}},
+ spring = {{Spring}{Spr\adddot}},
+ summer = {{Summer}{Sum\adddot}},
+ autumn = {{Autumn}{Aut\adddot}},
+ winter = {{Winter}{Win\adddot}},
+ am = {{AM}{AM}},
+ pm = {{PM}{PM}},
}
-\protected\gdef\lbx@us@mkbibrangetrunc@long#1#2{%
+\protected\gdef\lbx@us@mkdaterangetrunc@long#1#2{%
\iffieldundef{#2year}
{}
- {\printtext[#2date]{%
- \iffieldsequal{#2year}{#2endyear}
- {\csuse{mkbibdate#1}{}{#2month}{#2day}}
- {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}}%
+ {\datecircaprint
+ \printtext[#2date]{%
+ \iffieldundef{#2season}
+ {\iffieldsequal{#2year}{#2endyear}
+ {\csuse{mkbibdate#1}{}{#2month}{#2day}}
+ {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}%
+ \dateeraprint{#2}}}
+ {\iffieldsequal{#2year}{#2endyear}
+ {\csuse{mkbibseasondate#1}{}{#2season}}
+ {\csuse{mkbibseasondate#1}{#2year}{#2season}}%
+ \dateeraprint{#2}}%
+ \dateuncertainprint
\iffieldundef{#2endyear}
- {}
- {\iffieldequalstr{#2endyear}{}
- {\mbox{\bibdatedash}}
- {\bibdatedash
- \iffieldsequal{#2year}{#2endyear}
- {\iffieldsequal{#2month}{#2endmonth}
- {\csuse{mkbibdate#1}{#2endyear}{}{#2endday}}
- {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}}
- {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}}}}}}
+ {}
+ {\iffieldequalstr{#2endyear}{}
+ {\mbox{\bibdaterangesep}}
+ {\bibdaterangesep
+ \enddatecircaprint
+ \iffieldundef{#2season}
+ {\iffieldsequal{#2year}{#2endyear}
+ {\iffieldsequal{#2month}{#2endmonth}
+ {\csuse{mkbibdate#1}{#2endyear}{}{#2endday}}
+ {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}}
+ {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}}
+ {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}%
+ \enddateuncertainprint
+ \dateeraprint{#2}}}}}}
-\protected\gdef\lbx@us@mkbibrangetrunc@short#1#2{%
+\protected\gdef\lbx@us@mkdaterangetrunc@short#1#2{%
\iffieldundef{#2year}
{}
- {\printtext[#2date]{%
- \iffieldsequal{#2year}{#2endyear}
- {\csuse{mkbibdate#1}{}{#2month}{#2day}}
- {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}}%
+ {\datecircaprint
+ \printtext[#2date]{%
+ \iffieldundef{#2season}
+ {\iffieldsequal{#2year}{#2endyear}
+ {\csuse{mkbibdate#1}{}{#2month}{#2day}}
+ {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}
+ \dateeraprint{#2}}}
+ {\iffieldsequal{#2year}{#2endyear}
+ {\csuse{mkbibseasondate#1}{}{#2season}}
+ {\csuse{mkbibseasondate#1}{#2year}{#2season}}%
+ \dateeraprint{#2}}%
+ \dateuncertainprint
\iffieldundef{#2endyear}
{}
{\iffieldequalstr{#2endyear}{}
- {\mbox{\bibdatedash}}
- {\bibdatedash
- \csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}}}}}
+ {\mbox{\bibdaterangesep}}
+ {\bibdaterangesep
+ \enddatecircaprint
+ \iffieldundef{#2season}
+ {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}
+ {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}%
+ \enddateuncertainprint
+ \dateeraprint{#2}}}}}}
-\protected\gdef\lbx@us@mkbibrangetruncextra@long#1#2{%
+\protected\gdef\lbx@us@mkdaterangetruncextra@long#1#2{%
\iffieldundef{#2year}
{}
- {\printtext[#2date]{%
- \iffieldsequal{#2year}{#2endyear}
- {\csuse{mkbibdate#1}{}{#2month}{#2day}}
- {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}}%
+ {\datecircaprint
+ \printtext[#2date]{%
+ \iffieldundef{#2season}
+ {\iffieldsequal{#2year}{#2endyear}
+ {\csuse{mkbibdate#1}{}{#2month}{#2day}}
+ {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}}}
+ {\iffieldsequal{#2year}{#2endyear}
+ {\csuse{mkbibseasondate#1}{}{#2season}}
+ {\csuse{mkbibseasondate#1}{#2year}{#2season}}%
+ \dateeraprint{#2}}%
+ \dateuncertainprint
\iffieldundef{#2endyear}
{\printfield{extrayear}}
{\iffieldequalstr{#2endyear}{}
{\printfield{extrayear}%
- \mbox{\bibdatedash}}
- {\bibdatedash
- \iffieldsequal{#2year}{#2endyear}
- {\iffieldsequal{#2month}{#2endmonth}
- {\csuse{mkbibdate#1}{#2endyear}{}{#2endday}}
- {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}}
- {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}%
- \printfield{extrayear}}}}}}
+ \mbox{\bibdaterangesep}}
+ {\bibdaterangesep
+ \enddatecircaprint
+ \iffieldundef{#2season}
+ {\iffieldsequal{#2year}{#2endyear}
+ {\iffieldsequal{#2month}{#2endmonth}
+ {\csuse{mkbibdate#1}{#2endyear}{}{#2endday}}
+ {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}}
+ {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}}
+ {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}%
+ \printfield{extrayear}%
+ \enddateuncertainprint
+ \dateeraprint{#2}}}}}}
-\protected\gdef\lbx@us@mkbibrangetruncextra@short#1#2{%
+\protected\gdef\lbx@us@mkdaterangetruncextra@short#1#2{%
\iffieldundef{#2year}
{}
- {\printtext[#2date]{%
- \iffieldsequal{#2year}{#2endyear}
- {\csuse{mkbibdate#1}{}{#2month}{#2day}}
- {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}}%
+ {\datecircaprint
+ \printtext[#2date]{%
+ \iffieldundef{#2season}
+ {\iffieldsequal{#2year}{#2endyear}
+ {\csuse{mkbibdate#1}{}{#2month}{#2day}}
+ {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}}}
+ {\iffieldsequal{#2year}{#2endyear}
+ {\csuse{mkbibseasondate#1}{}{#2season}}
+ {\csuse{mkbibseasondate#1}{#2year}{#2season}}%
+ \dateeraprint{#2}}%
+ \dateuncertainprint
\iffieldundef{#2endyear}
{\printfield{extrayear}}
{\iffieldequalstr{#2endyear}{}
{\printfield{extrayear}%
- \mbox{\bibdatedash}}
- {\bibdatedash
- \csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}%
- \printfield{extrayear}}}}}}
+ \mbox{\bibdaterangesep}}
+ {\bibdaterangesep
+ \enddatecircaprint
+ \iffieldundef{#2season}
+ {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}
+ {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}%
+ \printfield{extrayear}%
+ \enddateuncertainprint
+ \dateeraprint{#2}}}}}}
\endinput
diff --git a/Master/texmf-dist/tex/latex/biblatex/lbx/estonian.lbx b/Master/texmf-dist/tex/latex/biblatex/lbx/estonian.lbx
new file mode 100644
index 00000000000..3af5e3c9cb0
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/biblatex/lbx/estonian.lbx
@@ -0,0 +1,578 @@
+\ProvidesFile{estonian.lbx}
+[\abx@lbxid]
+
+% First attempt at Estonian using Finnish.lbx, Bing translator and a dictionary
+% Translator's notes:
+% Some translations look akward but they are made in such a way
+% that they look as good as possible in running text.
+% Source for some items in translations: Kielikello 3/1998.
+% and Liisa Junno: Kirjastosanasto 1. BTJ Kirjastopalvelu 2006.
+
+\DeclareRedundantLanguages{estonian}{estonian}
+
+\NewBibliographyString{%
+ basicjanuary,
+ basicfebruary,
+ basicmarch,
+ basicapril,
+ basicmay,
+ basicjune,
+ basicjuly,
+ basicaugust,
+ basicseptember,
+ basicoctober,
+ basicnovember,
+ basicdecember%
+}
+
+\DeclareBibliographyExtras{%
+ % dashes: may be either \textendash or \textemdash
+ \protected\def\bibrangedash{%
+ \textendash\penalty\hyphenpenalty}% breakable dash
+ \let\finalandcomma=\empty
+ \let\finalandsemicolon=\empty
+ \protected\def\mkbibordinal#1{\stripzeros{#1}\adddot}%
+ \protected\def\mkbibmascord{\mkbibordinal}%
+ \protected\def\mkbibfemord{\mkbibordinal}%
+ \protected\def\mkbibneutord{\mkbibordinal}%
+ \protected\def\mkbibdatelong#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\mkbibordinal{\thefield{#3}}%
+ \iffieldundef{#2}{}{\nobreakspace}}%
+ \iffieldundef{#2}
+ {}
+ {\iffieldundef{#3}
+ {\lbx@fi@mkbibmonthbasic{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}}%
+ {\mkbibmonth{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
+ \protected\def\mkbibdateshort#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\mkdayzeros{\thefield{#3}}\adddot
+ \iffieldundef{#2}{}{\thinspace}}%
+ \iffieldundef{#2}
+ {}
+ {\mkmonthzeros{\thefield{#2}}%
+ \iffieldundef{#1}
+ {}
+ {\iffieldundef{#3}{/}{\adddot\thinspace}}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
+ \savecommand\lbx@lfromlang
+ \savecommand\lbx@sfromlang
+ \def\lbx@lfromlang{%
+ \iffieldundef{origlanguage}
+ {}
+ {\biblstring{from\thefield{origlanguage}}\space}}%
+ \def\lbx@sfromlang{%
+ \iffieldundef{origlanguage}
+ {}
+ {\bibsstring{from\thefield{origlanguage}}\space}}%
+ \savebibmacro{in:}%
+ \renewbibmacro{in:}{%
+ \iffieldequalstr{entrytype}{article}
+ {}
+ {\printtext{\bibstring{in}\intitlepunct}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{%
+ \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezeros{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+}
+
+\UndeclareBibliographyExtras{%
+ \restorecommand\lbx@lfromlang
+ \restorecommand\lbx@sfromlang
+ \restorebibmacro{in:}%
+}
+
+\DeclareBibliographyStrings{%
+ bibliography = {{bibliograafia}{bibliograafia}},
+ references = {{viited}{viited}},
+ shorthands = {{nimekirja ning l\"{u}hendid}{l\"{u}hendid}},
+ editor = {{toimetaja}{toim\adddot}},
+ editors = {{toimetajad}{toim\adddot}},
+ compiler = {{kompilaator}{koompilaator}},
+ compilers = {{kompilaatorid}{kompilaatorid}},
+ redactor = {{toimittanut}{toim\adddot}},
+ redactors = {{toimittaneet}{toim\adddot}},
+ reviser = {{L\"{a}bi vaadataja}{L\"{a}bi vaadataja}},
+ revisers = {{L\"{a}bi vaadatajad}{L\"{a}bi vaadatajad}},
+ founder = {{asutaja}{asutaja}},
+ founders = {{asutajad}{asutajad}},
+ continuator = {{jatkaja}{jatkaja}},
+ continuators = {{jatkajad}{jatkajad}},
+ collaborator = {{kaast\"{o}\"{o}line}{kaast\"{o}\"{o}line}},
+ collaborators = {{kaast\"{o}\"{o}tajate}{kaast\"{o}\"{o}tajate}},
+ translator = {{t\~{o}lkija}{t\~{o}lkija}},
+ translators = {{t\~{o}lkijad}{t\~{o}lkijad}},
+ commentator = {{kommentaator}{kommentaator}},
+ commentators = {{kommentaatorid}{kommentaatorid}},
+ annotator = {{selityksin varustanut}{selityksin varustanut}},
+ annotators = {{selityksin varustaneet}{selityksin varustaneet}},
+ commentary = {{kommentaaris}{kommentaaris}},
+ annotations = {{annotatsioonide}{annotatsioonide}},
+ introduction = {{sissejuhatus}{sissejuhatus}},
+ foreword = {{eess\~{o}na}{eess\~{o}na}},
+ afterword = {{j\"{a}rels\~{o}na}{j\"{a}rels\~{o}na}},
+ editortr = {{toimetaja ja t\~{o}lkija}%
+ {toim\adddotspace ja t\~{o}lk\adddot}},
+ editorstr = {{toimetajad ja t\~{o}lkijate}%
+ {toim\adddotspace ja t\~{o}lk\adddot}},
+ editorco = {{toimetaja ja kommentaator}%
+ {toimetaja ja kommentaator}},
+ editorsco = {{toimetajad ja kommentaatorid}%
+ {toimetajad ja kommentaatorid}},
+ editoran = {{toimetaja ja annotator}%
+ {toimetaja ja annotator}},
+ editorsan = {{toimetajad ja annotators}%
+ {toimetajad ja annotators}},
+ editorin = {{toimetaja ja sissejuhatus}%
+ {toimetaja ja sissejuhatus}},
+ editorsin = {{toimetajad ja sissejuhatus}%
+ {toimetajad ja sissejuhatus}},
+ editorfo = {{toimetaja ja eess\~{o}na}%
+ {toimetaja ja eess\~{o}na}},
+ editorsfo = {{toimetajad ja eess\~{o}na}%
+ {toimetajad ja eess\~{o}na}},
+ editoraf = {{toimetaja ja j\"{a}rels\~{o}na}%
+ {toimetaja ja j\"{a}rels\~{o}na}},
+ editorsaf = {{toimetajad ja j\"{a}rels\~{o}na}%
+ {toimetajad ja j\"{a}rels\~{o}na}},
+ editortrco = {{toimetaja, translator\finalandcomma\ ja kommentaator} %
+ {toim, \addabbrvspace trans\adddot\finalandcomma\ ja comm\adddot}},
+ editorstrco = {{toimetajad, translators\finalandcomma\ ja kommentaatorid} %
+ {eds., \addabbrvspace trans\adddot\finalandcomma\ ja comm\adddot}},
+ editortran = {{toimetaja, translator\finalandcomma\ ja annotator} %
+ {toim, \addabbrvspace trans\adddot\finalandcomma\ ja annot\adddot}},
+ editorstran = {{toimetajad, translators\finalandcomma\ ja annotators} %
+ {eds., \addabbrvspace trans\adddot\finalandcomma\ ja annot\adddot}},
+ editortrin = {{toimetaja, translator\finalandcomma\ ja Sissejuhatus} %
+ {toim, \addabbrvspace trans\adddot\finalandcomma\ ja introd\adddot}},
+ editorstrin = {{toimetajad, translators\finalandcomma\ ja Sissejuhatus} %
+ {eds., \addabbrvspace trans\adddot\finalandcomma\ ja introd\adddot}},
+ editortrfo = {{toimetaja, translator\finalandcomma\ ja eess\~{o}na} %
+ {toim, \addabbrvspace trans\adddot\finalandcomma\ ja forew\adddot}},
+ editorstrfo = {{toimetajad, translators\finalandcomma\ ja eess\~{o}na} %
+ {eds., \addabbrvspace trans\adddot\finalandcomma\ ja forew\adddot}},
+ editortraf = {{toimetaja, translator\finalandcomma\ ja J\"{a}rels\~{o}na} %
+ {toim, \addabbrvspace trans\adddot\finalandcomma\ ja afterw\adddot}},
+ editorstraf = {{toimetajad, translators\finalandcomma\ ja J\"{a}rels\~{o}na} %
+ {eds., \addabbrvspace trans\adddot\finalandcomma\ ja afterw\adddot}},
+ editorcoin = {{toimetaja, commentator\finalandcomma\ ja Sissejuhatus} %
+ {toim, \addabbrvspace comm\adddot\finalandcomma\ ja introd\adddot}},
+ editorscoin = {{toimetajad, commentators\finalandcomma\ ja Sissejuhatus} %
+ {eds., \addabbrvspace comm\adddot\finalandcomma\ ja introd\adddot}},
+ editorcofo = {{toimetaja, commentator\finalandcomma\ ja eess\~{o}na} %
+ {toim, \addabbrvspace comm\adddot\finalandcomma\ ja forew\adddot}},
+ editorscofo = {{toimetajad, commentators\finalandcomma\ ja eess\~{o}na} %
+ {eds., \addabbrvspace comm\adddot\finalandcomma\ ja forew\adddot}},
+ editorcoaf = {{toimetaja, commentator\finalandcomma\ ja J\"{a}rels\~{o}na} %
+ {toim, \addabbrvspace comm\adddot\finalandcomma\ ja afterw\adddot}},
+ editorscoaf = {{toimetajad, commentators\finalandcomma\ ja J\"{a}rels\~{o}na} %
+ {eds., \addabbrvspace comm\adddot\finalandcomma\ ja afterw\adddot}},
+ editoranin = {{toimetaja, annotator\finalandcomma\ ja Sissejuhatus} %
+ {toim, \addabbrvspace annot\adddot\finalandcomma\ ja introd\adddot}},
+ editorsanin = {{toimetajad, annotators\finalandcomma\ ja Sissejuhatus} %
+ {eds., \addabbrvspace annot\adddot\finalandcomma\ ja introd\adddot}},
+ editoranfo = {{toimetaja, annotator\finalandcomma\ ja eess\~{o}na} %
+ {toim, \addabbrvspace annot\adddot\finalandcomma\ ja forew\adddot}},
+ editorsanfo = {{toimetajad, annotators\finalandcomma\ ja eess\~{o}na} %
+ {eds., \addabbrvspace annot\adddot\finalandcomma\ ja forew\adddot}},
+ editoranaf = {{toimetaja, annotator\finalandcomma\ ja J\"{a}rels\~{o}na} %
+ {toim, \addabbrvspace annot\adddot\finalandcomma\ ja afterw\adddot}},
+ editorsanaf = {{toimetajad, annotators\finalandcomma\ ja J\"{a}rels\~{o}na} %
+ {eds., \addabbrvspace annot\adddot\finalandcomma\ ja afterw\adddot}},
+ editortrcoin = {{toimetaja, t\~{o}lkija, commentator\finalandcomma\ ja Sissejuhatus} %
+ {toim, \addabbrvspace trans., comm\adddot\finalandcomma\ ja introd\adddot}},
+ editorstrcoin = {{toimetajad, t\~{o}lkijad, commentators\finalandcomma\ ja Sissejuhatus} %
+ {eds., \addabbrvspace trans., comm\adddot\finalandcomma\ ja introd\adddot}},
+ editortrcofo = {{toimetaja, t\~{o}lkija, commentator\finalandcomma\ ja eess\~{o}na} %
+ {toim, \addabbrvspace trans., comm\adddot\finalandcomma\ ja forew\adddot}},
+ editorstrcofo = {{toimetajad, t\~{o}lkijad, commentators\finalandcomma\ ja eess\~{o}na} %
+ {eds., \addabbrvspace trans., comm\adddot\finalandcomma\ ja forew\adddot}},
+ editortrcoaf = {{toimetaja, t\~{o}lkija, commentator\finalandcomma\ ja J\"{a}rels\~{o}na} %
+ {toim, \addabbrvspace trans., comm\adddot\finalandcomma\ ja afterw\adddot}},
+ editorstrcoaf = {{toimetajad, t\~{o}lkijad, commentators\finalandcomma\ ja J\"{a}rels\~{o}na} %
+ {eds., \addabbrvspace trans., comm\adddot\finalandcomma\ ja afterw\adddot}},
+ editortranin = {{toimetaja, t\~{o}lkija, annotator\finalandcomma\ ja Sissejuhatus} %
+ {toim, \addabbrvspace trans., annot\adddot\finalandcomma\ ja introd\adddot}},
+ editorstranin = {{toimetajad, t\~{o}lkijad, annotators\finalandcomma\ ja Sissejuhatus} %
+ {eds., \addabbrvspace trans., annot\adddot\finalandcomma\ ja introd\adddot}},
+ editortranfo = {{toimetaja, t\~{o}lkija, annotator\finalandcomma\ ja eess\~{o}na} %
+ {toim, \addabbrvspace trans., annot\adddot\finalandcomma\ ja forew\adddot}},
+ editorstranfo = {{toimetajad, t\~{o}lkijad, annotators\finalandcomma\ ja eess\~{o}na} %
+ {eds., \addabbrvspace trans., annot\adddot\finalandcomma\ ja forew\adddot}},
+ editortranaf = {{toimetaja, t\~{o}lkija, annotator\finalandcomma\ ja J\"{a}rels\~{o}na} %
+ {toim, \addabbrvspace trans., annot\adddot\finalandcomma\ ja afterw\adddot}},
+ editorstranaf = {{toimetajad, t\~{o}lkijad, annotators\finalandcomma\ ja J\"{a}rels\~{o}na} %
+ {eds., \addabbrvspace trans., annot\adddot\finalandcomma\ ja afterw\adddot}},
+ translatorco = {{t\~{o}lkija ja kommentaator} %
+ {trans\adddot\ ja comm\adddot}},
+ translatorsco = {{t\~{o}lkijate ja kommentaatorid} %
+ {trans\adddot\ ja comm\adddot}},
+ translatoran = {{t\~{o}lkija ja annotator} %
+ {trans\adddot\ ja annot\adddot}},
+ translatorsan = {{t\~{o}lkijate ja annotators} %
+ {trans\adddot\ ja annot\adddot}},
+ translatorin = {{t\~{o}lkimine ja Sissejuhatus} %
+ {trans\adddot\ ja introd\adddot}},
+ translatorsin = {{t\~{o}lkimine ja Sissejuhatus} %
+ {trans\adddot\ ja introd\adddot}},
+ translatorfo = {{t\~{o}lkimine ja eess\~{o}na} %
+ {trans\adddot\ ja forew\adddot}},
+ translatorsfo = {{t\~{o}lkimine ja eess\~{o}na} %
+ {trans\adddot\ ja forew\adddot}},
+ translatoraf = {{t\~{o}lkimine ja J\"{a}rels\~{o}na} %
+ {trans\adddot\ ja afterw\adddot}},
+ translatorsaf = {{t\~{o}lkimine ja J\"{a}rels\~{o}na} %
+ {trans\adddot\ ja afterw\adddot}},
+ translatorcoin = {{t\~{o}lkimine, commentary\finalandcomma\ ja Sissejuhatus} %
+ {trans., comm\adddot\finalandcomma\ ja introd\adddot}},
+ translatorscoin = {{t\~{o}lkimine, commentary\finalandcomma\ ja Sissejuhatus} %
+ {trans., comm\adddot\finalandcomma\ ja introd\adddot}},
+ translatorcofo = {{t\~{o}lkimine, commentary\finalandcomma\ ja eess\~{o}na} %
+ {trans., comm\adddot\finalandcomma\ ja forew\adddot}},
+ translatorscofo = {{t\~{o}lkimine, commentary\finalandcomma\ ja eess\~{o}na} %
+ {trans., comm\adddot\finalandcomma\ ja forew\adddot}},
+ translatorcoaf = {{t\~{o}lkimine, commentary\finalandcomma\ ja J\"{a}rels\~{o}na} %
+ {trans., comm\adddot\finalandcomma\ ja afterw\adddot}},
+ translatorscoaf = {{t\~{o}lkimine, commentary\finalandcomma\ ja J\"{a}rels\~{o}na} %
+ {trans., comm\adddot\finalandcomma\ ja afterw\adddot}},
+ translatoranin = {{t\~{o}lkimine, annotations\finalandcomma\ ja Sissejuhatus} %
+ {trans., annot\adddot\finalandcomma\ ja introd\adddot}},
+ translatorsanin = {{t\~{o}lkimine, annotations\finalandcomma\ ja Sissejuhatus} %
+ {trans., annot\adddot\finalandcomma\ ja introd\adddot}},
+ translatoranfo = {{t\~{o}lkimine, annotations\finalandcomma\ ja eess\~{o}na} %
+ {trans., annot\adddot\finalandcomma\ ja forew\adddot}},
+ translatorsanfo = {{t\~{o}lkimine, annotations\finalandcomma\ ja eess\~{o}na} %
+ {trans., annot\adddot\finalandcomma\ ja forew\adddot}},
+ translatoranaf = {{t\~{o}lkimine, annotations\finalandcomma\ ja J\"{a}rels\~{o}na} %
+ {trans., annot\adddot\finalandcomma\ ja afterw\adddot}},
+ translatorsanaf = {{t\~{o}lkimine, annotations\finalandcomma\ ja J\"{a}rels\~{o}na} %
+ {trans., annot\adddot\finalandcomma\ ja afterw\adddot}},
+ byauthor = {{kirjuttanud}{kirj\adddot}},
+ byeditor = {{toimittanud}{toim\adddot}},
+ bycompiler = {{koontanud}{koontanud}},
+ byredactor = {{redigeeritud poolt}{red\adddotspace poolt}},
+ byreviser = {{l\"{a}bivaadatud poolt}{rev\adddotspace poolt}},
+ byreviewer = {{vaadanud}{rev\adddotspace poolt}},
+ byfounder = {{asutasid}{found\adddotspace poolt}},
+ bycontinuator = {{j\"{a}tkas}{cont\adddotspace poolt}},
+ bycollaborator = {{koost\"{o}\"{o}s}{in collab\adddotspace koos}},
+ bytranslator = {{t\~{o}lgitud \lbx@lfromlang\ poolt}{trans\adddot\ \lbx@sfromlang\ poolt}},
+ bycommentator = {{kommentaarin kirjoittanut}{kommentaarin kirjoittanut}},% FIXME: unsure
+ byannotator = {{selgitustega poolt}{annot\adddot\ poolt}},
+ withcommentator = {{koos kommentaariga}{koos comment\adddot\ poolt}},
+ withannotator = {{koos annotations poolt}{koos annots\adddot\ poolt}},
+ withintroduction = {{koos tutvustus poolt}{koos poolt intro\adddot }},
+ withforeword = {{mis eess\~{o}na Autor}{koos forew\adddot\ poolt}},
+ withafterword = {{koos J\"{a}rels\~{o}na poolt}{koos poolt afterw\adddot }},
+ byeditortr = {{redigeeritud ja t\~{o}lgitud \lbx@lfromlang\ poolt}
+ {toim\adddotspace ja \lbx@sfromlang k\"a\"ant\adddot}},
+ byeditorco = {{toimetatud ja kommenteeritud} %
+ {ed\adddotspace ja comm\adddot\ poolt}},
+ byeditoran = {{redigeerida ja kanda} %
+ {ed\adddotspace ja annot\adddot\ poolt}},
+ byeditorin = {{redigeerida, tutvustus, Autor} %
+ {toim, \addabbrvspace koos m\~{o}ne introd. esitab}},
+ byeditorfo = {{redigeerinud, eess\~{o}na, kus autor} %
+ {toim, \addabbrvspace koos forew., poolt}},
+ byeditoraf = {{redigeerida, j\"{a}rels\~{o}na, Autor} %
+ {toim, koos m\~{o}ne afterw., \addabbrvspace poolt}},
+ byeditortrco = {{toimetatud, \lbx@lfromlang\finalandcomma\ t\~{o}lgitud ja kommenteeritud} %
+ {toim, \addabbrvspace trans\adddot\ \lbx@sfromlang\finalandcomma\ ja comm\adddot\ poolt}},
+ byeditortran = {{redigeerida t\~{o}lgitud \lbx@lfromlang\finalandcomma\ ja kanda} %
+ {toim, \addabbrvspace trans\adddot\ \lbx@sfromlang\finalandcomma\ ja annot\adddot\ poolt}},
+ byeditortrin = {{edited and translated \lbx@lfromlang, with an introduction, by} %
+ {ed\adddotspace ja trans\adddot\ \lbx@sfromlang, koos m\~{o}ne introd. esitab}},
+ byeditortrfo = {{edited and translated \lbx@lfromlang, with a foreword, by} %
+ {ed\adddotspace ja trans\adddot\ \lbx@sfromlang, koos forew., poolt}},
+ byeditortraf = {{edited and translated \lbx@lfromlang, with an afterword, by} %
+ {ed\adddotspace ja trans\adddot\ \lbx@sfromlang, koos m\~{o}ne afterw., poolt}},
+ byeditorcoin = {{toimetanud ja kommenteerinud koos tutvustus,} %
+ {ed\adddotspace ja comm., koos m\~{o}ne introd. esitab}},
+ byeditorcofo = {{toimetanud ja kommenteerinud mis eess\~{o}na,} %
+ {ed\adddotspace ja comm., koos forew., poolt}},
+ byeditorcoaf = {{toimetanud ja kommenteerinud koos J\"{a}rels\~{o}na,} %
+ {ed\adddotspace ja comm., koos m\~{o}ne afterw., poolt}},
+ byeditoranin = {{redigeerida ja selgitustega koos tutvustus,} %
+ {ed\adddotspace ja annot., koos m\~{o}ne introd. esitab}},
+ byeditoranfo = {{redigeerida ja selgitustega mis eess\~{o}na,} %
+ {ed\adddotspace ja annot., koos forew., poolt}},
+ byeditoranaf = {{redigeerida ja selgitustega koos J\"{a}rels\~{o}na,} %
+ {ed\adddotspace ja annot., koos m\~{o}ne afterw., poolt}},
+ byeditortrcoin = {{redigeerida, \lbx@lfromlang\finalandcomma\ t\~{o}lkinud ja kommenteerinud koos tutvustus,} %
+ {redigeerida, \lbx@lfromlang\finalandcomma\ t\~{o}lkinud ja kommenteerinud koos tutvustus,}},
+ byeditortrcofo = {{redigeerida, \lbx@lfromlang\finalandcomma\ t\~{o}lkinud ja kommenteerinud mis eess\~{o}na,} %
+ {redigeerida, \lbx@lfromlang\finalandcomma\ t\~{o}lkinud ja kommenteerinud mis eess\~{o}na,}},
+ byeditortrcoaf = {{toimetatud, \lbx@lfromlang\finalandcomma\ t\~{o}lgitud ja kommenteeritud koos J\"{a}rels\~{o}na,} %
+ {toimetatud, \lbx@lfromlang\finalandcomma\ t\~{o}lgitud ja kommenteeritud koos J\"{a}rels\~{o}na,}},
+ byeditortranin = {{redigeerida t\~{o}lgitud \lbx@lfromlang\finalandcomma\ ja selgitustega koos tutvustus,} %
+ {redigeerida t\~{o}lgitud \lbx@lfromlang\finalandcomma\ ja selgitustega koos tutvustus,}},
+ byeditortranfo = {{redigeerida t\~{o}lgitud \lbx@lfromlang\finalandcomma\ ja selgitustega mis eess\~{o}na,} %
+ {redigeerida t\~{o}lgitud \lbx@lfromlang\finalandcomma\ ja selgitustega mis eess\~{o}na,}},
+ byeditortranaf = {{redigeerida t\~{o}lgitud \lbx@lfromlang\finalandcomma\ ja selgitustega koos J\"{a}rels\~{o}na,} %
+ {redigeerida t\~{o}lgitud \lbx@lfromlang\finalandcomma\ ja selgitustega koos J\"{a}rels\~{o}na,}},
+ bytranslatorco = {{\lbx@lfromlang\ t\~{o}lgitud ja kommenteeritud} %
+ {\lbx@lfromlang\ t\~{o}lgitud ja kommenteeritud}},
+ bytranslatoran = {{t\~{o}lgitud \lbx@lfromlang\ ja kanda} %
+ {t\~{o}lgitud \lbx@lfromlang\ ja kanda}},
+ bytranslatorin = {{translated \lbx@lfromlang, with an introduction, by} %
+ {trans\adddot\ \lbx@sfromlang, with an introd., by}},
+ bytranslatorfo = {{translated \lbx@lfromlang, with a foreword, by} %
+ {trans\adddot\ \lbx@sfromlang, with a forew., by}},
+ bytranslatoraf = {{translated \lbx@lfromlang, with an afterword, by} %
+ {trans\adddot\ \lbx@sfromlang, with an afterw., by}},
+ bytranslatorcoin = {{\lbx@lfromlang\ t\~{o}lkinud ja kommenteerinud koos tutvustus,} %
+ {\lbx@lfromlang\ t\~{o}lkinud ja kommenteerinud koos tutvustus,}},
+ bytranslatorcofo = {{\lbx@lfromlang\ t\~{o}lkinud ja kommenteerinud mis eess\~{o}na,} %
+ {\lbx@lfromlang\ t\~{o}lkinud ja kommenteerinud mis eess\~{o}na,}},
+ bytranslatorcoaf = {{\lbx@lfromlang\ t\~{o}lkinud ja kommenteerinud koos J\"{a}rels\~{o}na,} %
+ {\lbx@lfromlang\ t\~{o}lkinud ja kommenteerinud koos J\"{a}rels\~{o}na,}},
+ bytranslatoranin = {{t\~{o}lgitud \lbx@lfromlang\ ja selgitustega koos tutvustus,} %
+ {t\~{o}lgitud \lbx@lfromlang\ ja selgitustega koos tutvustus,}},
+ bytranslatoranfo = {{t\~{o}lgitud \lbx@lfromlang\ ja selgitustega mis eess\~{o}na,} %
+ {t\~{o}lgitud \lbx@lfromlang\ ja selgitustega mis eess\~{o}na,}},
+ bytranslatoranaf = {{t\~{o}lgitud \lbx@lfromlang\ ja selgitustega koos J\"{a}rels\~{o}na,} %
+ {t\~{o}lgitud \lbx@lfromlang\ ja selgitustega koos J\"{a}rels\~{o}na,}},
+ and = {{ja}{ja}},
+ andothers = {{et\addabbrvspace al\adddot}{et\addabbrvspace al\adddot}},
+ andmore = {{et\addabbrvspace al\adddot}{et\addabbrvspace al\adddot}},
+ volume = {{k\"{o}ide}{k\"{o}ide}},
+ volumes = {{k\"{o}ided}{k\"{o}idef}},
+% involumes = {{}{}},% FIXME: missing. Finnish translation of "in 5 volumes" is "5 osassa".
+ jourvol = {{k\"{o}ide}{k\"{o}ide}},
+ jourser = {{seeria}{seeria}},
+ book = {{raamat}{raamat}},
+ part = {{osa}{osa}},
+ issue = {{numero}{numero}},
+ newseries = {{uues series}{uue ser\adddot}},
+ oldseries = {{vana seeria}{vana ser\adddot}},
+ edition = {{v\"{a}ljaanne}{v\"{a}ljaanne}},
+ reprint = {{kordustr\"{u}kk}{kordustr\"{u}kk}},
+ reprintof = {{kordustr\"{u}kk ning}{kordustr\"{u}kk ning}},
+ reprintas = {{kordustr\"{u}kk nagu}{kordustr\"{u}kk nagu}},
+ reprintfrom = {{kordustr\"{u}kk alates}{kordustr\"{u}kk alates}},
+ reviewof = {{vahekokkuv\~{o}tte}{vahekokkuv\~{o}tte}},
+ translationof = {{t\~{o}lkimine}{t\~{o}lkimine}},
+ translationas = {{t\~{o}lkida kui}{t\~{o}lkida kui}},
+ translationfrom = {{t\~{o}lgitud}{t\~{o}lgitud}},
+ origpubas = {{algselt avaldatud nagu}{algselt avaldatud nagu}},
+ origpubin = {{algselt avaldatud}{algselt avaldatud}},
+ astitle = {{j\"{a}rgnevatest}{j\"{a}rgnevatest}},
+ bypublisher = {{julkaissut}{julkaissut}},
+ page = {{lehek\"{u}lja}{l\adddot}},
+ pages = {{lehek\"{u}ljed}{l\adddot}},
+ column = {{veerg}{veerg}},
+ columns = {{veerud}{veerud}},
+ line = {{rida}{rida}},
+ lines = {{ridad}{ridad}},
+ nodate = {{kuup\"{a}ev puudub}},
+ verse = {{salm}{salm}},
+ verses = {{salmid}{salmid}},
+ section = {{jagu}{jagu}},
+ sections = {{kohdat}{kohdat}},
+ paragraph = {{kappale}{kappale}},
+ paragraphs = {{kappaleet}{kappaleet}},
+ in = {{teoksessa}{teoksessa}},
+ inseries = {{sarjassa}{sarjassa}},
+ ofseries = {{sarjassa}{sarjassa}},
+ number = {{arv}{arv}},
+ chapter = {{peat\"{u}kk}{peat\"{u}kk}},
+ mathesis = {{magistrit\"{o}\"{o}}{magistrit\"{o}\"{o}}},
+ phdthesis = {{doktorit\"{o}\"{o}}{doktorit\"{o}\"{o}}},
+ candthesis = {{kandidaadi v\"{a}itekirja}{kandidaadi v\"{a}itekirja}},% Literal translation of "Candidate thesis".
+ resreport = {{tutkimusraportti}{tutkimusraportti}},
+ techreport = {{uuringute raport}{uuringute raport}},
+ software = {{tarkvara}{tarkvara}},
+ datacd = {{CD-ROM}{CD-ROM}},
+ audiocd = {{audio CD}{audio CD}},
+ version = {{versioon}{versioon}},
+ url = {{aadress}{aadress}},
+ urlfrom = {{saadaval}{saadaval}},
+ urlseen = {{k\"{u}lastas}{k\"{u}lastas}},
+ inpreparation = {{ettevalmistamisel}{ettevalmistamisel}},
+ submitted = {{esitatud}{esitatud}},
+ forthcoming = {{tulevases}{tulevases}},
+ inpress = {{ajakirjanduses}{ajakirjanduses}},
+ prepublished = {{eelnevalt avaldatud} {eelnevalt avaldatud}},
+ citedas = {{edaspidi viidatud kui}{edaspidi viidatud kui}},
+ thiscite = {{eriti}{eriti}},
+ seenote = {{vaata m\"{a}rkus}{vaata m\"{a}rkus}},
+ quotedin = {{noteeritud}{noteeritud}},
+ idem = {{idem}{idem}}, % It its not necessary to translate Latin phrases.
+ idemsm = {{idem}{idem}},
+ idemsf = {{eadem}{eadem}},
+ idemsn = {{idem}{idem}},
+ idempm = {{eidem}{eidem}},
+ idempf = {{eaedem}{eaedem}},
+ idempn = {{eadem}{eadem}},
+ idempp = {{eidem}{eidem}},
+ ibidem = {{ibidem}{ibid\adddot}},
+ opcit = {{op\adddotspace cit\adddot}{op\adddotspace cit\adddot}},
+ loccit = {{loc\adddotspace cit\adddot}{loc\adddotspace cit\adddot}},
+ confer = {{cf\adddot}{cf\adddot}},
+ sequens = {{sq\adddot}{sq\adddot}},
+ sequentes = {{sqq\adddot}{sqq\adddot}},
+ passim = {{passim}{pass\adddot}},
+ see = {{vaata}{vaata}},
+ seealso = {{allikad}{allikad}},
+ backrefpage = {{viidatud lehel}{viidatud lehel}},
+ backrefpages = {{viidatud lehek\"{u}ljed}{viidatud lehek\"{u}ljed}},
+ january = {{jaanuar}{jaanuar}},
+ february = {{veebruar}{veebruar}},
+ march = {{m\"{a}rts}{m\"{a}rts}},
+ april = {{aprill}{aprill}},
+ may = {{mai}{mai}},
+ june = {{juuni}{juuni}},
+ july = {{juuli}{juuli}},
+ august = {{august}{august}},
+ september = {{september}{september}},
+ october = {{oktoober}{oktoober}},
+ november = {{november}{november}},
+ december = {{detsember}{detsember}},
+ basicjanuary = {{jaanuar}{jaanuar}},
+ basicfebruary = {{veebruar}{veebruar}},
+ basicmarch = {{m\"{a}rts}{m\"{a}rts}},
+ basicapril = {{aprill}{aprill}},
+ basicmay = {{mai}{mai}},
+ basicjune = {{juuni}{juuni}},
+ basicjuly = {{juuli}{juuli}},
+ basicaugust = {{august}{august}},
+ basicseptember = {{september}{september}},
+ basicoctober = {{oktoober}{oktoober}},
+ basicnovember = {{november}{november}},
+ basicdecember = {{detsember}{detsember}},
+ langamerican = {{Ameerika}{Ameerika}},
+ langbrazilian = {{Brasiilia}{Brasiilia}},
+ langcatalan = {{katalaani}{katalaani}},
+ langcroatian = {{horvaadi}{horvaadi}},
+ langczech = {{t\v{s}ehhii}{t\v{s}ehhii}},
+ langdanish = {{taani}{taani}},
+ langdutch = {{hollandi}{hollandi}},
+ langenglish = {{inglise}{inglise}},
+ langestonian = {{eesti}{eesti}},
+ langfinnish = {{soome}{soome}},
+ langfrench = {{prantsuse}{prantsuse}},
+ langgerman = {{saksa}{saksa}},
+ langgreek = {{kreeka}{kreeka}},
+ langitalian = {{itaalia}{itaalia}},
+ langlatin = {{ladina}{ladina}},
+ langnorwegian = {{norra}{norra}},
+ langpolish = {{poola}{poola}},
+ langportuguese = {{portugali}{portugali}},
+ langrussian = {{vene}{vene}},
+ langslovene = {{sloveeni}{sloveeni}},
+ langspanish = {{hispaania}{hispaania}},
+ langswedish = {{rootsi}{rootsi}},
+ fromamerican = {{alates USA}{alates USA}},
+ frombrazilian = {{alates Brasiilia}{: Brasiilia}},
+ fromcatalan = {{alates katalaani}{: Catalan}},
+ fromcroatian = {{alates horvaadi}{: Horvaatia}},
+ fromczech = {{alates T\v{s}ehhi}{: T\v{s}ehhi}},
+ fromdanish = {{Taani}{alates Taani}},
+ fromdutch = {{alates Hollandi}{: Hollandi}},
+ fromenglish = {{ingliskeelsest}{ingliskeelsest}},
+ fromestonian = {{eesti kielest\"a}{eesti kielest\"a}},
+ fromfinnish = {{Soome}{alates Soome}},
+ fromfrench = {{alates Prantsuse}{alates prantsuse}},
+ fromgerman = {{, saksa keeles}{: Saksa}},
+ fromgreek = {{alates Kreeka}{alates Kreeka}},
+ fromitalian = {{alates Itaalia}{: Itaalia}},
+ fromlatin = {{alates Ladina}{: Ladina}},
+ fromnorwegian = {{alates Norra}{: Norra}},
+ frompolish = {{alates Poola} {alates Poola}},
+ fromportuguese = {{alates Portugali}{: Portugali}},
+ fromrussian = {{alates Vene}{: vene}},
+ fromslovene = {{alates sloveeni}{: sloveeni}},
+ fromspanish = {{alates Hispaania}{alates Hispaania}},
+ fromswedish = {{alates Rootsi}{: Rootsi}},
+ countryde = {{Saksamaa}{DE}},
+ countryeu = {{Euroopa Liit}{EL}},
+ countryep = {{Euroopa Liidu}{EP}},
+ countryfr = {{Prantsusmaa}{FR}},
+ countryuk = {{Suurbritannia}{GB}},
+ countryus = {{Ameerika}{US}},
+ patent = {{patendi}{pat\adddot}},
+ patentde = {{Saksa patendi}{Saksa pat\adddot}},
+ patenteu = {{Euroopa patendi}{Euroopa pat\adddot}},
+ patentfr = {{Prantsuse patent}{Prantsuse pat\adddot}},
+ patentuk = {{Briti patendi}{Briti pat\adddot}},
+ patentus = {{U.S\adddotspace patent}{U.S\adddotspace pat\adddot}},
+ patreq = {{patendi taotluse}{pat\adddot\ req\adddot}},
+ patreqde = {{Saksa patendi taotluse}{Saksa pat\adddot\ req\adddot}},
+ patreqeu = {{Euroopa patendi taotluse}{Euroopa pat\adddot\ req\adddot}},
+ patreqfr = {{Prantsuse patent taotluse}{Prantsuse pat\adddot\ req\adddot}},
+ patrequk = {{Briti patendi taotluse}{Briti pat\adddot\ req\adddot}},
+ patrequs = {{U.S\adddotspace patent request}{U.S\adddotspace pat\adddot\ req\adddot}},
+ file = {{faili}{faili}},
+ library = {{raamatukogu}{raamatukogu}},
+ abstract = {{abstraktne}{abstraktne}},
+ annotation = {{annotatsioon}{annotatsioon}},
+ commonera = {{meie ajaarvamise j\"argi}{m\adddot a\adddot j}},
+ beforecommonera = {{enne meie ajaarvamist}{e\adddot m\adddot a}},
+ annodomini = {{p\"arast Kristust}{pKr}},
+ beforechrist = {{enne Kristust}{eKr}},
+% circa = {{}{}},% FIXME: missing
+% spring = {{}{}},% FIXME: missing
+% summer = {{}{}},% FIXME: missing
+% autumn = {{}{}},% FIXME: missing
+% winter = {{}{}},% FIXME: missing
+ am = {{AM}{AM}},
+ pm = {{PM}{PM}},
+}
+
+\protected\gdef\lbx@fi@mkbibmonthbasic#1{%
+ \ifcase0#1\relax
+ #1\BibliographyWarning{Month out of range}%
+ \or\abx@bibmonth{basicjanuary}%
+ \or\abx@bibmonth{basicfebruary}%
+ \or\abx@bibmonth{basicmarch}%
+ \or\abx@bibmonth{basicapril}%
+ \or\abx@bibmonth{basicmay}%
+ \or\abx@bibmonth{basicjune}%
+ \or\abx@bibmonth{basicjuly}%
+ \or\abx@bibmonth{basicaugust}%
+ \or\abx@bibmonth{basicseptember}%
+ \or\abx@bibmonth{basicoctober}%
+ \or\abx@bibmonth{basicnovember}%
+ \or\abx@bibmonth{basicdecember}%
+ \else
+ #1\BibliographyWarning{Month out of range}%
+ \fi}%
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/biblatex/lbx/finnish.lbx b/Master/texmf-dist/tex/latex/biblatex/lbx/finnish.lbx
index 9d35ba43d07..6b987a3127d 100644
--- a/Master/texmf-dist/tex/latex/biblatex/lbx/finnish.lbx
+++ b/Master/texmf-dist/tex/latex/biblatex/lbx/finnish.lbx
@@ -28,7 +28,6 @@
% dashes: may be either \textendash or \textemdash
\protected\def\bibrangedash{%
\textendash\penalty\hyphenpenalty}% breakable dash
- \protected\def\bibdatedash{\bibrangedash}%
\let\finalandcomma=\empty
\let\finalandsemicolon=\empty
\protected\def\mkbibordinal#1{\stripzeros{#1}\adddot}%
@@ -47,19 +46,23 @@
\iffieldundef{#1}{}{\space}}%
{\mkbibmonth{\thefield{#2}}%
\iffieldundef{#1}{}{\space}}}%
- \iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\stripzeros{\thefield{#1}}}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
\protected\def\mkbibdateshort#1#2#3{%
\iffieldundef{#3}
{}
- {\mkdatezeros{\thefield{#3}}\adddot
+ {\mkdayzeros{\thefield{#3}}\adddot
\iffieldundef{#2}{}{\thinspace}}%
\iffieldundef{#2}
{}
- {\mkdatezeros{\thefield{#2}}%
+ {\mkmonthzeros{\thefield{#2}}%
\iffieldundef{#1}
{}
{\iffieldundef{#3}{/}{\adddot\thinspace}}}%
- \iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\mkdatezeros{\thefield{#1}}}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
\savecommand\lbx@lfromlang
\savecommand\lbx@sfromlang
\def\lbx@lfromlang{%
@@ -75,6 +78,38 @@
\iffieldequalstr{entrytype}{article}
{}
{\printtext{\bibstring{in}\intitlepunct}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{%
+ \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezeros{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
}
\UndeclareBibliographyExtras{%
@@ -449,6 +484,7 @@
langdanish = {{tanska}{tanska}},
langdutch = {{hollanti}{hollanti}},
langenglish = {{englanti}{englanti}},
+% langestonian = {{}{}},% FIXME: missing
langfinnish = {{suomi}{suomi}},
langfrench = {{ranska}{ranska}},
langgerman = {{saksa}{saksa}},
@@ -470,6 +506,7 @@
fromdanish = {{tanskan kielest\"a}{tanskan kielest\"a}},
fromdutch = {{hollannin kielest\"a}{hollannin kielest\"a}},
fromenglish = {{englannin kielest\"a}{englannin kielest\"a}},
+% fromestonian = {{}{}},% FIXME: missing
fromfinnish = {{suomen kielest\"a}{suomen kielest\"a}},
fromfrench = {{ranskan kielest\"a}{ranskan kielest\"a}},
fromgerman = {{saksan kielest\"a}{saksan kielest\"a}},
@@ -505,6 +542,17 @@
library = {{kirjasto}{kirjasto}},
abstract = {{tiivistelm\"a}{tiivistelm\"a}},
annotation = {{selitykset}{selitykset}},% FIXME: unsure
+ commonera = {{j\"alkeen ajanlaskun alun}{jaa\adddot}},
+ beforecommonera = {{ennen ajanlaskun alkua}{eaa\adddot}},
+ annodomini = {{j\"alkeen Kristuksen syntym\"an}{jKr\adddot}},
+ beforechrist = {{ennen Kristuksen syntym\"a\"a}{eKr\adddot}},
+% circa = {{}{}},% FIXME: missing
+% spring = {{}{}},% FIXME: missing
+% summer = {{}{}},% FIXME: missing
+% autumn = {{}{}},% FIXME: missing
+% winter = {{}{}},% FIXME: missing
+ am = {{ap\adddot}{ip\adddot}},
+ pm = {{ap\adddot}{ip\adddot}},
}
\protected\gdef\lbx@fi@mkbibmonthbasic#1{%
diff --git a/Master/texmf-dist/tex/latex/biblatex/lbx/french.lbx b/Master/texmf-dist/tex/latex/biblatex/lbx/french.lbx
index 298d948840b..becb278054c 100644
--- a/Master/texmf-dist/tex/latex/biblatex/lbx/french.lbx
+++ b/Master/texmf-dist/tex/latex/biblatex/lbx/french.lbx
@@ -8,7 +8,6 @@
\DeclareBibliographyExtras{%
\protected\def\bibrangedash{%
\textendash\penalty\hyphenpenalty}% breakable dash
- \protected\def\bibdatedash{\bibrangedash}%
\let\finalandcomma=\empty
\let\finalandsemicolon=\empty
\def\mkbibordinal{\mkbibmascord}%
@@ -27,17 +26,21 @@
{}
{\mkbibmonth{\thefield{#2}}%
\iffieldundef{#1}{}{\space}}%
- \iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\stripzeros{\thefield{#1}}}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
\protected\def\mkbibdateshort#1#2#3{%
\iffieldundef{#3}
{}
- {\mkdatezeros{\thefield{#3}}%
+ {\mkdayzeros{\thefield{#3}}%
\iffieldundef{#2}{}{/}}%
\iffieldundef{#2}
{}
- {\mkdatezeros{\thefield{#2}}%
+ {\mkmonthzeros{\thefield{#2}}%
\iffieldundef{#1}{}{/}}%
- \iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\mkdatezeros{\thefield{#1}}}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
\providecommand*{\FDP@thinspace}{\addnbthinspace}% FDP@* -> frenchb.ldf (babel)
\providecommand*{\FDP@colonspace}{\addnbspace}%
\def\abx@semicolon{%
@@ -63,6 +66,38 @@
\textsc{\textnohyphenation{#1}}}%
\def\mkbibordedition{\mkbibfemord}%
\def\mkbibordseries{\mkbibfemord}%
+ \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{%
+ \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezeros{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
}
\UndeclareBibliographyExtras{%
@@ -426,6 +461,7 @@
langdanish = {{danois}{danois}},
langdutch = {{n\'eerlandais}{n\'eerlandais}},
langenglish = {{anglais}{anglais}},
+% langestonian = {{}{}},% FIXME: missing
langfinnish = {{finnois}{finnois}},
langfrench = {{fran\c{c}ais}{fran\c{c}ais}},
langgerman = {{allemand}{allemand}},
@@ -447,6 +483,7 @@
fromdanish = {{du danois}{du danois}},
fromdutch = {{du n\'eerlandais}{du n\'eerlandais}},
fromenglish = {{de l'anglais}{de l'anglais}},
+% fromestonian = {{}{}},% FIXME: missing
fromfinnish = {{du finnois}{du finnois}},
fromfrench = {{du fran\c{c}ais}{du fran\c{c}ais}},
fromgerman = {{de l'allemand}{de l'allemand}},
@@ -482,6 +519,17 @@
library = {{biblioth\`eque}{biblioth\adddot}},
abstract = {{r\'esum\'e}{r\'es\adddot}},
annotation = {{annotations}{annotations}},
+ commonera = {{de l’\`ere commune}{EC}},
+ beforecommonera = {{avant l’\`ere commune}{AEC}},
+ annodomini = {{apr\`es J\'esus-Christ}{ap\adddotspace J\adddot-C\adddot}},
+ beforechrist = {{avant J\'esus-Christ}{av\adddotspace J\adddot-C\adddot}},
+% circa = {{}{}},% FIXME: missing
+% spring = {{}{}},% FIXME: missing
+% summer = {{}{}},% FIXME: missing
+% autumn = {{}{}},% FIXME: missing
+% winter = {{}{}},% FIXME: missing
+ am = {{AM}{AM}},
+ pm = {{PM}{PM}},
}
\gdef\lbx@fr@ordinal#1#2{%
diff --git a/Master/texmf-dist/tex/latex/biblatex/lbx/german.lbx b/Master/texmf-dist/tex/latex/biblatex/lbx/german.lbx
index c5abfb2baba..8d485fde33d 100644
--- a/Master/texmf-dist/tex/latex/biblatex/lbx/german.lbx
+++ b/Master/texmf-dist/tex/latex/biblatex/lbx/german.lbx
@@ -7,7 +7,6 @@
\DeclareCapitalPunctuation{.:!?}%
\protected\def\bibrangedash{%
\textendash\penalty\hyphenpenalty}% breakable dash
- \protected\def\bibdatedash{\bibrangedash}%
\let\finalandcomma=\empty
\let\finalandsemicolon=\empty
\protected\def\mkbibordinal#1{\stripzeros{#1}\adddot}%
@@ -23,19 +22,23 @@
{}
{\mkbibmonth{\thefield{#2}}%
\iffieldundef{#1}{}{\space}}%
- \iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\stripzeros{\thefield{#1}}}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
\protected\def\mkbibdateshort#1#2#3{%
\iffieldundef{#3}
{}
- {\mkdatezeros{\thefield{#3}}\adddot
+ {\mkdayzeros{\thefield{#3}}\adddot
\iffieldundef{#2}{}{\thinspace}}%
\iffieldundef{#2}
{}
- {\mkdatezeros{\thefield{#2}}%
+ {\mkmonthzeros{\thefield{#2}}%
\iffieldundef{#1}
{}
{\iffieldundef{#3}{/}{\adddot\thinspace}}}%
- \iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\mkdatezeros{\thefield{#1}}}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
\savecommand\lbx@lfromlang
\savecommand\lbx@sfromlang
\def\lbx@lfromlang{%
@@ -46,6 +49,38 @@
\iffieldundef{origlanguage}
{}
{\bibstring{from\thefield{origlanguage}}\space}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{%
+ \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezeros{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
}
\UndeclareBibliographyExtras{%
@@ -59,24 +94,24 @@
shorthands = {{Sigelverzeichnis}{Sigel}},
editor = {{Herausgeber}{Hrsg\adddot}},
editors = {{Herausgeber}{Hrsg\adddot}},
- compiler = {{Herausgeber}{Hrsg\adddot}},
- compilers = {{Herausgeber}{Hrsg\adddot}},
+ compiler = {{Kompilator}{Komp\adddot}},
+ compilers = {{Kompilatoren}{Komp\adddot}},
redactor = {{Bearbeiter}{Bearb\adddot}},
redactors = {{Bearbeiter}{Bearb\adddot}},
reviser = {{\"Uberarbeiter}{\"Uberarb\adddot}},
revisers = {{\"Uberarbeiter}{\"Uberarb\adddot}},
founder = {{Begr\"under}{Begr\adddot}},
founders = {{Begr\"under}{Begr\adddot}},
- continuator = {{Fortf\"urung}{Fortf\adddot}},
- continuators = {{Fortf\"urung}{Fortf\adddot}},
- collaborator = {{Mitarbeit}{Mitarb\adddot}},
- collaborators = {{Mitarbeit}{Mitarb\adddot}},
+ continuator = {{Fortf\"uhrer}{Fortf\adddot}},
+ continuators = {{Fortf\"uhrer}{Fortf\adddot}},
+ collaborator = {{Mitarbeiter}{Mitarb\adddot}},
+ collaborators = {{Mitarbeiter}{Mitarb\adddot}},
translator = {{\"Ubersetzer}{\"Ubers\adddot}},
translators = {{\"Ubersetzer}{\"Ubers\adddot}},
- commentator = {{Kommentar}{Komm\adddot}},
- commentators = {{Kommentar}{Komm\adddot}},
- annotator = {{Erl\"auterungen}{Erl\"aut\adddot}},
- annotators = {{Erl\"auterungen}{Erl\"aut\adddot}},
+ commentator = {{Kommentator}{Komm\adddot}},
+ commentators = {{Kommentatoren}{Komm\adddot}},
+ annotator = {{Kommentator}{Komm\adddot}},
+ annotators = {{Kommentatoren}{Komm\adddot}},
commentary = {{Kommentar}{Komm\adddot}},
annotations = {{Erl\"auterungen}{Erl\"aut\adddot}},
introduction = {{Einleitung}{Einl\adddot}},
@@ -86,93 +121,93 @@
{Hrsg\adddot\ und \"Ubers\adddot}},
editorstr = {{Herausgeber und \"Ubersetzer}%
{Hrsg\adddot\ und \"Ubers\adddot}},
- editorco = {{Herausgeber und Kommentar}%
+ editorco = {{Herausgeber und Kommentator}%
{Hrsg\adddot\ und Komm\adddot}},
- editorsco = {{Herausgeber und Kommentar}%
+ editorsco = {{Herausgeber und Kommentatoren}%
{Hrsg\adddot\ und Komm\adddot}},
- editoran = {{Herausgeber und Erl\"auterungen}%
- {Hrsg\adddot\ und Erl\"aut\adddot}},
- editorsan = {{Herausgeber und Erl\"auterungen}%
- {Hrsg\adddot\ und Erl\"aut\adddot}},
- editorin = {{Herausgeber und Einleitung}%
+ editoran = {{Herausgeber und Kommentator}%
+ {Hrsg\adddot\ und Komm\adddot}},
+ editorsan = {{Herausgeber und Kommentatoren}%
+ {Hrsg\adddot\ und Komm\adddot}},
+ editorin = {{Herausgabe und Einleitung}%
{Hrsg\adddot\ und Einl\adddot}},
editorsin = {{Herausgeber und Einleitung}%
{Hrsg\adddot\ und Einl\adddot}},
editorfo = {{Herausgeber und Vorwort}%
{Hrsg\adddot\ und Vorw\adddot}},
- editorsfo = {{Herausgeber und Vorwort}%
+ editorsfo = {{Herausgabe und Vorwort}%
{Hrsg\adddot\ und Vorw\adddot}},
- editoraf = {{Herausgeber und Nachwort}%
+ editoraf = {{Herausgabe und Nachwort}%
{Hrsg\adddot\ und Nachw\adddot}},
- editorsaf = {{Herausgeber und Nachwort}%
+ editorsaf = {{Herausgabe und Nachwort}%
{Hrsg\adddot\ und Nachw\adddot}},
- editortrco = {{Herausgeber, \"Ubersetzer und Kommentar}%
+ editortrco = {{Herausgeber, \"Ubersetzer und Kommentator}%
+ {Hrsg., \"Ubers\adddot\ und Komm\adddot}},
+ editorstrco = {{Herausgeber, \"Ubersetzer und Kommentatoren}%
+ {Hrsg., \"Ubers\adddot\ und Komm\adddot}},
+ editortran = {{Herausgeber, \"Ubersetzer und Kommentator}%
{Hrsg., \"Ubers\adddot\ und Komm\adddot}},
- editorstrco = {{Herausgeber, \"Ubersetzer und Kommentar}%
+ editorstran = {{Herausgeber, \"Ubersetzer und Kommentatoren}%
{Hrsg., \"Ubers\adddot\ und Komm\adddot}},
- editortran = {{Herausgeber, \"Ubersetzer und Erl\"auterungen}%
- {Hrsg., \"Ubers\adddot\ und Erl\"aut\adddot}},
- editorstran = {{Herausgeber, \"Ubersetzer und Erl\"auterungen}%
- {Hrsg., \"Ubers\adddot\ und Erl\"aut\adddot}},
- editortrin = {{Herausgeber, \"Ubersetzer und Einleitung}%
+ editortrin = {{Herausgabe, \"Ubersetzung und Einleitung}%
{Hrsg., \"Ubers\adddot\ und Einl\adddot}},
- editorstrin = {{Herausgeber, \"Ubersetzer und Einleitung}%
+ editorstrin = {{Herausgabe, \"Ubersetzung und Einleitung}%
{Hrsg., \"Ubers\adddot\ und Einl\adddot}},
- editortrfo = {{Herausgeber, \"Ubersetzer und Vorwort}%
+ editortrfo = {{Herausgabe, \"Ubersetzung und Vorwort}%
{Hrsg., \"Ubers\adddot\ und Vorw\adddot}},
- editorstrfo = {{Herausgeber, \"Ubersetzer und Vorwort}%
+ editorstrfo = {{Herausgabe, \"Ubersetzung und Vorwort}%
{Hrsg., \"Ubers\adddot\ und Vorw\adddot}},
- editortraf = {{Herausgeber, \"Ubersetzer und Nachwort}%
+ editortraf = {{Herausgabe, \"Ubersetzung und Nachwort}%
{Hrsg., \"Ubers\adddot\ und Nachw\adddot}},
- editorstraf = {{Herausgeber, \"Ubersetzer und Nachwort}%
+ editorstraf = {{Herausgabe, \"Ubersetzung und Nachwort}%
{Hrsg., \"Ubers\adddot\ und Nachw\adddot}},
- editorcoin = {{Herausgeber, Kommentar und Einleitung}%
+ editorcoin = {{Herausgabe, Kommentar und Einleitung}%
{Hrsg., Komm\adddot\ und Einl\adddot}},
- editorscoin = {{Herausgeber, Kommentar und Einleitung}%
+ editorscoin = {{Herausgabe, Kommentar und Einleitung}%
{Hrsg., Komm\adddot\ und Einl\adddot}},
- editorcofo = {{Herausgeber, Kommentar und Vorwort}%
+ editorcofo = {{Herausgabe, Kommentar und Vorwort}%
{Hrsg., Komm\adddot\ und Vorw\adddot}},
- editorscofo = {{Herausgeber, Kommentar und Vorwort}%
+ editorscofo = {{Herausgabe, Kommentar und Vorwort}%
{Hrsg., Komm\adddot\ und Vorw\adddot}},
- editorcoaf = {{Herausgeber, Kommentar und Nachwort}%
+ editorcoaf = {{Herausgabe, Kommentar und Nachwort}%
{Hrsg., Komm\adddot\ und Nachw\adddot}},
- editorscoaf = {{Herausgeber, Kommentar und Nachwort}%
+ editorscoaf = {{Herausgabe, Kommentar und Nachwort}%
{Hrsg., Komm\adddot\ und Nachw\adddot}},
- editoranin = {{Herausgeber, Erl\"auterungen und Einleitung}%
+ editoranin = {{Herausgabe, Erl\"auterungen und Einleitung}%
{Hrsg., Erl\"aut\adddot\ und Einl\adddot}},
- editorsanin = {{Herausgeber, Erl\"auterungen und Einleitung}%
+ editorsanin = {{Herausgabe, Erl\"auterungen und Einleitung}%
{Hrsg., Erl\"aut\adddot\ und Einl\adddot}},
- editoranfo = {{Herausgeber, Erl\"auterungen und Vorwort}%
+ editoranfo = {{Herausgabe, Erl\"auterungen und Vorwort}%
{Hrsg., Erl\"aut\adddot\ und Vorw\adddot}},
- editorsanfo = {{Herausgeber, Erl\"auterungen und Vorwort}%
+ editorsanfo = {{Herausgabe, Erl\"auterungen und Vorwort}%
{Hrsg., Erl\"aut\adddot\ und Vorw\adddot}},
- editoranaf = {{Herausgeber, Erl\"auterungen und Nachwort}%
+ editoranaf = {{Herausgabe, Erl\"auterungen und Nachwort}%
{Hrsg., Erl\"aut\adddot\ und Nachw\adddot}},
- editorsanaf = {{Herausgeber, Erl\"auterungen und Nachwort}%
+ editorsanaf = {{Herausgabe, Erl\"auterungen und Nachwort}%
{Hrsg., Erl\"aut\adddot\ und Nachw\adddot}},
- editortrcoin = {{Herausgeber, \"Ubersetzer, Kommentar und Einleitung}%
+ editortrcoin = {{Herausgabe, \"Ubersetzung, Kommentar und Einleitung}%
{Hrsg., \"Ubers., Komm\adddot\ und Einl\adddot}},
- editorstrcoin = {{Herausgeber, \"Ubersetzer, Kommentar und Einleitung}%
+ editorstrcoin = {{Herausgabe, \"Ubersetzung, Kommentar und Einleitung}%
{Hrsg., \"Ubers., Komm\adddot\ und Einl\adddot}},
- editortrcofo = {{Herausgeber, \"Ubersetzer, Kommentar und Vorwort}%
+ editortrcofo = {{Herausgabe, \"Ubersetzung, Kommentar und Vorwort}%
{Hrsg., \"Ubers., Komm\adddot\ und Vorw\adddot}},
- editorstrcofo = {{Herausgeber, \"Ubersetzer, Kommentar und Vorwort}%
+ editorstrcofo = {{Herausgabe, \"Ubersetzung, Kommentar und Vorwort}%
{Hrsg., \"Ubers., Komm\adddot\ und Vorw\adddot}},
- editortrcoaf = {{Herausgeber, \"Ubersetzer, Kommentar und Nachwort}%
+ editortrcoaf = {{Herausgabe, \"Ubersetzung, Kommentar und Nachwort}%
{Hrsg., \"Ubers., Komm\adddot\ und Nachw\adddot}},
- editorstrcoaf = {{Herausgeber, \"Ubersetzer, Kommentar und Nachwort}%
+ editorstrcoaf = {{Herausgabe, \"Ubersetzung, Kommentar und Nachwort}%
{Hrsg., \"Ubers., Komm\adddot\ und Nachw\adddot}},
- editortranin = {{Herausgeber, \"Ubersetzer, Erl\"auterungen und Einleitung}%
+ editortranin = {{Herausgabe, \"Ubersetzung, Erl\"auterungen und Einleitung}%
{Hrsg., \"Ubers., Erl\"aut\adddot\ und Einl\adddot}},
- editorstranin = {{Herausgeber, \"Ubersetzer, Erl\"auterungen und Einleitung}%
+ editorstranin = {{Herausgabe, \"Ubersetzung, Erl\"auterungen und Einleitung}%
{Hrsg., \"Ubers., Erl\"aut\adddot\ und Einl\adddot}},
- editortranfo = {{Herausgeber, \"Ubersetzer, Erl\"auterungen und Vorwort}%
+ editortranfo = {{Herausgabe, \"Ubersetzung, Erl\"auterungen und Vorwort}%
{Hrsg., \"Ubers., Erl\"aut\adddot\ und Vorw\adddot}},
- editorstranfo = {{Herausgeber, \"Ubersetzer, Erl\"auterungen und Vorwort}%
+ editorstranfo = {{Herausgabe, \"Ubersetzung, Erl\"auterungen und Vorwort}%
{Hrsg., \"Ubers., Erl\"aut\adddot\ und Vorw\adddot}},
- editortranaf = {{Herausgeber, \"Ubersetzer, Erl\"auterungen und Nachwort}%
+ editortranaf = {{Herausgabe, \"Ubersetzung, Erl\"auterungen und Nachwort}%
{Hrsg., \"Ubers., Erl\"aut\adddot\ und Nachw\adddot}},
- editorstranaf = {{Herausgeber, \"Ubersetzer, Erl\"auterungen und Nachwort}%
+ editorstranaf = {{Herausgabe, \"Ubersetzung, Erl\"auterungen und Nachwort}%
{Hrsg., \"Ubers., Erl\"aut\adddot\ und Nachw\adddot}},
translatorco = {{\"Ubersetzung und Kommentar}%
{\"Ubers\adddot\ und Komm\adddot}},
@@ -223,7 +258,7 @@
bycompiler = {{kompiliert von}{komp\adddotspace von}},
byredactor = {{bearbeitet von}{bearb\adddotspace von}},
byreviser = {{\"uberarbeitet von}{\"uberarb\adddotspace von}},
-% byreviewer = {{}{}},% FIXME: missing
+ byreviewer = {{rezensiert von}{rez\adddotspace von}},
byfounder = {{begr\"undet von}{begr\adddotspace von}},
bycontinuator = {{fortgef\"urt von}{fortgef\adddotspace von}},
bycollaborator = {{unter Mitarbeit von}{unter Mitarb\adddotspace von}},
@@ -308,7 +343,7 @@
andmore = {{u.\,a\adddot}{u.\,a\adddot}},
volume = {{Band}{Bd\adddot}},
volumes = {{B\"ande}{Bde\adddot}},
- involumes = {{in}{in}},% FIXME: unsure
+ involumes = {{in}{in}},
jourvol = {{Jahrgang}{Jg\adddot}},
jourser = {{Serie}{Ser\adddot}},
book = {{Buch}{Buch}},
@@ -320,15 +355,15 @@
reprint = {{Nachdruck}{Nachdr\adddot}},
reprintof = {{Nachdruck von}{Nachdr\adddotspace von}},
reprintas = {{Nachdruck unter dem Titel}{Nachdr\adddotspace unter dem Titel}},
-% reprintfrom = {{}{}},% FIXME: missing
-% translationof = {{}{}},% FIXME: missing
-% translationas = {{}{}},% FIXME: missing
+ reprintfrom = {{Nachdruck aus}{Nachdr\adddotspace aus}},
+ translationof = {{\"Ubersetzung von}{\"Ubers\adddotspace von}},
+ translationas = {{\"Ubersetzt unter dem Titel}{\"Ubers\adddotspace unter dem Titel}},
% translationfrom = {{}{}},% FIXME: missing
-% reviewof = {{}{}},% FIXME: missing
-% origpubas = {{}{}},% FIXME: missing
-% origpubin = {{}{}},% FIXME: missing
-% astitle = {{}{}},% FIXME: missing
-% bypublisher = {{}{}},% FIXME: missing
+ reviewof = {{Rezension von}{Rez\adddotspace von}},
+ origpubas = {{Zuerst publiziert als}{Zuerst publ\adddotspace als}},
+ origpubin = {{Zuerst publiziert in}{Zuerst publ\adddotspace in}},
+ astitle = {{unter dem Titel}{unter dem Titel}},
+ bypublisher = {{von}{von}},
page = {{Seite}{S\adddot}},
pages = {{Seiten}{S\adddot}},
column = {{Spalte}{Sp\adddot}},
@@ -349,7 +384,7 @@
chapter = {{Kapitel}{Kap\adddot}},
mathesis = {{Magisterarbeit}{Magisterarb\adddot}},
phdthesis = {{Dissertation}{Diss\adddot}},
-% candthesis = {{}{}},% FIXME: missing
+ candthesis = {{Qualifikationsschrift}{Qualifikationsschr\adddot}},
resreport = {{Forschungsbericht}{Forschungsber\adddot}},
techreport = {{Technischer Bericht}{Techn\adddotspace Ber\adddot}},
software = {{Com\-pu\-ter-Soft\-ware}{Soft\-ware}},
@@ -357,7 +392,7 @@
audiocd = {{Audio-CD}{Audio-CD}},
version = {{Version}{Version}},
url = {{Adresse}{Adresse}},
-% urlfrom = {{}{}},% FIXME: missing
+ urlfrom = {{Abgerufen unter}{Abger\adddotspace unter}},
urlseen = {{besucht am}{besucht am}},
inpreparation = {{in Vorbereitung}{in Vorbereitung}},
submitted = {{eingereicht}{eingereicht}},
@@ -401,9 +436,9 @@
december = {{Dezember}{Dez\adddot}},
langamerican = {{Amerikanisch}{Amerikanisch}},
langbrazilian = {{Brasilianisch}{Brasilianisch}},
-% langcatalan = {{}{}},% FIXME: missing
+ langcatalan = {{Katalanisch}{Katalanisch}},
langcroatian = {{Kroatisch}{Kroatisch}},
-% langczech = {{}{}},% FIXME: missing
+ langczech = {{Tschechisch}{Tschechisch}},
langdanish = {{D\"anisch}{D\"anisch}},
langdutch = {{Niederl\"andisch}{Niederl\"andisch}},
langenglish = {{Englisch}{Englisch}},
@@ -414,17 +449,17 @@
langitalian = {{Italienisch}{Italienisch}},
langlatin = {{Lateinisch}{Lateinisch}},
langnorwegian = {{Norwegisch}{Norwegisch}},
-% langpolish = {{}{}},% FIXME: missing
+ langpolish = {{Polnisch}{Polnisch}},
langportuguese = {{Portugiesisch}{Portugiesisch}},
langrussian = {{Russisch}{Russisch}},
-% langslovene = {{}{}},% FIXME: missing
+ langslovene = {{Slowenisch}{Slowenisch}},
langspanish = {{Spanisch}{Spanisch}},
langswedish = {{Schwedisch}{Schwedisch}},
fromamerican = {{aus dem Amerikanischen}{aus dem Amerikanischen}},
frombrazilian = {{aus dem Brasilianischen}{aus dem Brasilianischen}},
-% fromcatalan = {{}{}},% FIXME: missing
+ fromcatalan = {{aus dem Katalanischen}{aus dem Katalanischen}},
fromcroatian = {{aus dem Kroatischen}{aus dem Kroatischen}},
-% fromczech = {{}{}},% FIXME: missing
+ fromczech = {{aus dem Tschechischen}{aus dem Tschechischen}},
fromdanish = {{aus dem D\"anischen}{aus dem D\"anischen}},
fromdutch = {{aus dem Niederl\"andischen}{aus dem Niederl\"andischen}},
fromenglish = {{aus dem Englischen}{aus dem Englischen}},
@@ -435,10 +470,10 @@
fromitalian = {{aus dem Italienischen}{aus dem Italienischen}},
fromlatin = {{aus dem Lateinischen}{aus dem Lateinischen}},
fromnorwegian = {{aus dem Norwegischen}{aus dem Norwegischen}},
-% frompolish = {{}{}},% FIXME: missing
+ frompolish = {{aus dem Polnischen}{aus dem Polnischen}},
fromportuguese = {{aus dem Portugiesischen}{aus dem Portugiesischen}},
fromrussian = {{aus dem Russischen}{aus dem Russischen}},
-% fromslovene = {{}{}},% FIXME: missing
+ fromslovene = {{aus dem Slowenischen}{aus dem Slowenischen}},
fromspanish = {{aus dem Spanischen}{aus dem Spanischen}},
fromswedish = {{aus dem Schwedischen}{aus dem Schwedischen}},
countryde = {{Deutschland}{DE}},
@@ -463,6 +498,17 @@
library = {{Bibliothek}{Bibliothek}},
abstract = {{Zusammenfassung}{Zusammenfassung}},
annotation = {{Anmerkungen}{Anmerkungen}},
+ commonera = {{unserer Zeitrechnung}{u\adddotspace Z\adddot}},
+ beforecommonera = {{vor unserer Zeitrechnung}{v\adddotspace u\adddotspace Z\adddot}},
+ annodomini = {{n\adddotspace Chr\adddot}{n\adddotspace Chr\adddot}},
+ beforechrist = {{v\adddotspace Chr\adddot}{v\adddotspace Chr\adddot}},
+ circa = {{circa}{ca.}},
+ spring = {{Fr\"uhling}{Fr\adddot}},
+ summer = {{Sommer}{So\adddot}},
+ autumn = {{Herbst}{He\adddot}},
+ winter = {{Winter}{Wi\adddot}},
+ am = {{vorm\adddot}{vorm\adddot}},
+ pm = {{nachm\adddot}{nachm\adddot}},
}
\DeclareHyphenationExceptions{%
diff --git a/Master/texmf-dist/tex/latex/biblatex/lbx/greek.lbx b/Master/texmf-dist/tex/latex/biblatex/lbx/greek.lbx
index 2faa6b00ad2..f397ce37454 100644
--- a/Master/texmf-dist/tex/latex/biblatex/lbx/greek.lbx
+++ b/Master/texmf-dist/tex/latex/biblatex/lbx/greek.lbx
@@ -43,7 +43,6 @@
\let\finalandcomma=\empty
\protected\def\bibrangedash{%
\textendash\penalty\hyphenpenalty}% breakable dash
- \protected\def\bibdatedash{\bibrangedash}%
\let\finalandcomma=\empty
\let\finalandsemicolon=\empty
\protected\def\mkbibordinal{\mkbibmascord}%
@@ -61,23 +60,55 @@
\iffieldundef{#1}{}{\space}}%
\iffieldbibstring{#1}
{\bibstring{\thefield{#1}}}
- {\stripzeros{\thefield{#1}}}}%
+ {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
\protected\def\mkbibdateshort#1#2#3{%
\iffieldundef{#3}
{}
- {\mkdatezeros{\thefield{#3}}%
+ {\mkdayzeros{\thefield{#3}}%
\iffieldundef{#2}{}{/}}%
\iffieldundef{#2}
{}
- {\mkdatezeros{\thefield{#2}}%
+ {\mkmonthzeros{\thefield{#2}}%
\iffieldundef{#1}{}{/}}%
\iffieldbibstring{#1}
{\bibstring{\thefield{#1}}}
- {\mkdatezeros{\thefield{#1}}}}%
+ {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
\savecommand\mkbibordedition
\savecommand\mkbibordseries
\def\mkbibordedition{\mkbibfemord}%
\def\mkbibordseries{\mkbibfemord}%
+ \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{%
+ \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezeros{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
}
\UndeclareBibliographyExtras{%
@@ -430,6 +461,7 @@
langdanish = {{Δανέζικα}{Δανέζικα}},
langdutch = {{Ολλανδικά}{Ολλανδικά}},
langenglish = {{Αγγλικά}{Αγγλικά}},
+% langestonian = {{}{}},% FIXME: missing
% langfinnish = {{}{}},% FIXME: missing
langfrench = {{Γαλλικά}{Γαλλικά}},
langgerman = {{Γερμανικά}{Γερμανικά}},
@@ -451,6 +483,7 @@
fromdanish = {{από τα Δανέζικα}{από τα Δανέζικα}},
fromdutch = {{από τα Ολλανδικά}{από τα Ολλανδικά}},
fromenglish = {{από τα Αγγλικά}{από τα Αγγλικά}},
+% fromestonian = {{}{}},% FIXME: missing
% fromfinnish = {{}{}},% FIXME: missing
fromfrench = {{από τα Γαλλικά}{από τα Γαλλικά}},
fromgerman = {{από τα Γερμανικά}{από τα Γερμανικά}},
@@ -498,6 +531,17 @@
library = {{βιβλιοθήκη}{βιβλιοθήκη}},
abstract = {{περίληψη}{περίληψη}},
annotation = {{σχολιασμοί}{σχολιασμοί}},
+ commonera = {{Κοινή Χρονολογία}{KX}},
+ beforecommonera = {{πριν από την Κοινή Χρονολογία}{π\adddot Κ\adddot Χ\adddot}},
+ annodomini = {{μετά Χριστόν}{μ\adddot Χ\adddot}},
+ beforechrist = {{προ Χριστού}{π\adddot Χ\adddot}},
+% circa = {{}{}},% FIXME: missing
+% spring = {{}{}},% FIXME: missing
+% summer = {{}{}},% FIXME: missing
+% autumn = {{}{}},% FIXME: missing
+% winter = {{}{}},% FIXME: missing
+ am = {{π\adddot μ\adddot}{π\adddot μ\adddot}},
+ pm = {{μ\adddot μ\adddot}{μ\adddot μ\adddot}},
}
\protected\gdef\lbx@gr@mkbibmonth#1{%
diff --git a/Master/texmf-dist/tex/latex/biblatex/lbx/icelandic.lbx b/Master/texmf-dist/tex/latex/biblatex/lbx/icelandic.lbx
index 960d3ace7e4..3085110ed7f 100644
--- a/Master/texmf-dist/tex/latex/biblatex/lbx/icelandic.lbx
+++ b/Master/texmf-dist/tex/latex/biblatex/lbx/icelandic.lbx
@@ -13,7 +13,6 @@
\DeclareBibliographyExtras{%
\protected\def\bibrangedash{%
\textendash\penalty\hyphenpenalty}% breakable dash
- \protected\def\bibdatedash{\bibrangedash}%
\let\finalandcomma=\empty
\let\finalandsemicolon=\empty
\protected\def\mkbibordinal#1{\stripzeros{#1}\adddot}%
@@ -29,16 +28,20 @@
{}
{\mkbibmonth{\thefield{#2}}%
\iffieldundef{#1}{}{\space}}%
- \iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\stripzeros{\thefield{#1}}}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
\protected\def\mkbibdateshort#1#2#3{%
\iffieldundef{#3}
{}
- {\mkdatezeros{\thefield{#3}}\adddot}%
+ {\mkdayzeros{\thefield{#3}}\adddot}%
\iffieldundef{#2}
{}
- {\mkdatezeros{\thefield{#2}}%
+ {\mkmonthzeros{\thefield{#2}}%
\iffieldundef{#1}{}{\adddot}}%
- \iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\mkdatezeros{\thefield{#1}}}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
% Later, it would be more elegant to reverse the order of the name and the localized
% bibstrings, in order to avoid problems with regard to declension. This has to be done
% in a coordinated manner, however, and a lot of macros would have to be redefined
@@ -52,6 +55,38 @@
% \setunit{\addspace}%
% \bibstring{bytranslator}%
% }}%
+ \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{%
+ \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezeros{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
}
%\UndeclareBibliographyExtras{%
@@ -349,6 +384,7 @@
langdanish = {{danska}{danska}},
langdutch = {{hollenska}{hollenska}},
langenglish = {{enska}{enska}},
+% langestonian = {{}{}},% FIXME: missing
langfinnish = {{finnska}{finnska}},
langfrench = {{franska}{franska}},
langgerman = {{\th\'yska}{\th\'yska}},
@@ -370,6 +406,7 @@
fromdanish = {{\'ur d\"onsku}{\'ur d\"onsku}},
fromdutch = {{\'ur hollensku}{\'ur hollensku}},
fromenglish = {{\'ur ensku}{\'ur ensku}},
+% fromestonian = {{}{}},% FIXME: missing
fromfinnish = {{\'ur finnsku}{\'ur finnsku}},
fromfrench = {{\'ur fr\"onsku}{\'ur fr\"onsku}},
fromgerman = {{\'ur \th\'ysku}{\'ur \th\'ysku}},
@@ -405,6 +442,17 @@
library = {{safn}{safn}},
abstract = {{\'utdr\'attur}{\'utdr\'attur}},
annotation = {{athugagrein}{athugagrein}},
+ commonera = {{kristi\th t\'{\i}matal}{l\adddot t\adddot}},
+ beforecommonera = {{fyrir kristi\th t\'{\i}matal}{f\adddot l\adddot t\adddot}},
+ annodomini = {{eftir Krist}{e\adddot Kr\adddot}},
+ beforechrist = {{fyrir Krist}{f\adddot Kr\adddot}},
+% circa = {{}{}},% FIXME: missing
+% spring = {{}{}},% FIXME: missing
+% summer = {{}{}},% FIXME: missing
+% autumn = {{}{}},% FIXME: missing
+% winter = {{}{}},% FIXME: missing
+ am = {{f\adddot h\adddot}{f\adddot h\adddot}},
+ pm = {{e\adddot h\adddot}{e\adddot h\adddot}},
}
\endinput
diff --git a/Master/texmf-dist/tex/latex/biblatex/lbx/italian.lbx b/Master/texmf-dist/tex/latex/biblatex/lbx/italian.lbx
index 5c762abc006..d039a568d6d 100644
--- a/Master/texmf-dist/tex/latex/biblatex/lbx/italian.lbx
+++ b/Master/texmf-dist/tex/latex/biblatex/lbx/italian.lbx
@@ -6,7 +6,6 @@
\DeclareBibliographyExtras{%
\protected\def\bibrangedash{%
\textendash\penalty\hyphenpenalty}% breakable dash
- \protected\def\bibdatedash{\bibrangedash}%
\let\finalandcomma=\empty
\let\finalandsemicolon=\empty
\def\mkbibordinal{\mkbibmascord}%
@@ -24,21 +23,57 @@
{}
{\mkbibmonth{\thefield{#2}}%
\iffieldundef{#1}{}{\space}}%
- \iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\stripzeros{\thefield{#1}}}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
\protected\def\mkbibdateshort#1#2#3{%
\iffieldundef{#3}
{}
- {\mkdatezeros{\thefield{#3}}%
+ {\mkdayzeros{\thefield{#3}}%
\iffieldundef{#2}{}{/}}%
\iffieldundef{#2}
{}
- {\mkdatezeros{\thefield{#2}}%
+ {\mkmonthzeros{\thefield{#2}}%
\iffieldundef{#1}{}{/}}%
- \iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\mkdatezeros{\thefield{#1}}}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
\savecommand\mkbibordedition
\savecommand\mkbibordseries
\def\mkbibordedition{\mkbibfemord}%
\def\mkbibordseries{\mkbibfemord}%
+ \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{%
+ \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezeros{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
}
\UndeclareBibliographyExtras{%
@@ -332,6 +367,7 @@
langdanish = {{danese}{danese}},
langdutch = {{olandese}{olandese}},
langenglish = {{inglese}{inglese}},
+% langestonian = {{}{}},% FIXME: missing
% langfinnish = {{}{}},% FIXME: missing
langfrench = {{francese}{francese}},
langgerman = {{tedesco}{tedesco}},
@@ -353,6 +389,7 @@
fromdanish = {{dal danese}{dal danese}},
fromdutch = {{dall'olandese}{dall'olandese}},
fromenglish = {{dall'inglese}{dall'inglese}},
+% fromestonian = {{}{}},% FIXME: missing
% fromfinnish = {{}{}},% FIXME: missing
fromfrench = {{dal francese}{dal francese}},
fromgerman = {{dal tedesco}{dal tedesco}},
@@ -388,6 +425,15 @@
library = {{biblioteca}{biblioteca}},
abstract = {{abstract}{abstract}},
annotation = {{annotazione}{annotazione}},
+ commonera = {{Era Volgare}{E\adddot V\adddot}},
+ beforecommonera = {{avanti Era Volgare}{a\adddot E\adddot V\adddot}},
+ annodomini = {{d\adddot C\adddot}{d\adddot C\adddot}},
+ beforechrist = {{a\adddot C\adddot}{a\adddot C\adddot}},
+% circa = {{}{}},% FIXME: missing
+% spring = {{}{}},% FIXME: missing
+% summer = {{}{}},% FIXME: missing
+% autumn = {{}{}},% FIXME: missing
+% winter = {{}{}},% FIXME: missing
}
\endinput
diff --git a/Master/texmf-dist/tex/latex/biblatex/lbx/newzealand.lbx b/Master/texmf-dist/tex/latex/biblatex/lbx/newzealand.lbx
index a00bf1cdfd5..bef64fed9a9 100644
--- a/Master/texmf-dist/tex/latex/biblatex/lbx/newzealand.lbx
+++ b/Master/texmf-dist/tex/latex/biblatex/lbx/newzealand.lbx
@@ -12,7 +12,17 @@
{}
{\mkbibmonth{\thefield{#2}}%
\iffieldundef{#1}{}{\space}}%
- \iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\stripzeros{\thefield{#1}}}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
}
\InheritBibliographyStrings{english}
diff --git a/Master/texmf-dist/tex/latex/biblatex/lbx/norwegian.lbx b/Master/texmf-dist/tex/latex/biblatex/lbx/norwegian.lbx
index d4c9d7c3e4d..9b251e2b824 100644
--- a/Master/texmf-dist/tex/latex/biblatex/lbx/norwegian.lbx
+++ b/Master/texmf-dist/tex/latex/biblatex/lbx/norwegian.lbx
@@ -6,7 +6,6 @@
\DeclareBibliographyExtras{%
\protected\def\bibrangedash{%
\textendash\penalty\hyphenpenalty}% breakable dash
- \protected\def\bibdatedash{\bibrangedash}%
\let\finalandcomma=\empty
\let\finalandsemicolon=\empty
\protected\def\mkbibordinal#1{\stripzeros{#1}\adddot}%
@@ -22,16 +21,52 @@
{}
{\mkbibmonth{\thefield{#2}}%
\iffieldundef{#1}{}{\space}}%
- \iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\stripzeros{\thefield{#1}}}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
\protected\def\mkbibdateshort#1#2#3{%
\iffieldundef{#3}
{}
- {\mkdatezeros{\thefield{#3}}\adddot}%
+ {\mkdayzeros{\thefield{#3}}\adddot}%
\iffieldundef{#2}
{}
- {\mkdatezeros{\thefield{#2}}%
+ {\mkmonthzeros{\thefield{#2}}%
\iffieldundef{#1}{}{\adddot}}%
- \iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\mkdatezeros{\thefield{#1}}}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{%
+ \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezeros{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
}
\DeclareBibliographyStrings{%
@@ -388,6 +423,7 @@
langdanish = {{dansk}{dansk}},
langdutch = {{nederlandsk}{nederlandsk}},
langenglish = {{engelsk}{engelsk}},
+% langestonian = {{}{}},% FIXME: missing
langfinnish = {{finsk}{finsk}},
langfrench = {{fransk}{fransk}},
langgerman = {{tysk}{tysk}},
@@ -409,6 +445,7 @@
fromdanish = {{fra dansk}{fra dansk}},
fromdutch = {{fra nederlandsk}{fra nederlandsk}},
fromenglish = {{fra engelsk}{fra engelsk}},
+% fromestonian = {{}{}},% FIXME: missing
fromfinnish = {{fra finsk}{fra finsk}},
fromfrench = {{fra fransk}{fra fransk}},
fromgerman = {{fra tysk}{fra tysk}},
@@ -449,6 +486,17 @@
library = {{bibliotek}{bibliotek}},
abstract = {{sammendrag}{sammendrag}},
annotation = {{merknad}{merknad}},
+ commonera = {{etter v\aa r tidsregning}{evt\adddot}},
+ beforecommonera = {{f{\o}r v\aa r tidsregning}{fvt\adddot}},
+ annodomini = {{etter Kristus}{e\adddot Kr\adddot}},
+ beforechrist = {{f{\o}r Kristus}{f\adddot Kr\adddot}},
+% circa = {{}{}},% FIXME: missing
+% spring = {{}{}},% FIXME: missing
+% summer = {{}{}},% FIXME: missing
+% autumn = {{}{}},% FIXME: missing
+% winter = {{}{}},% FIXME: missing
+ am = {{a\adddot m\adddot}{a\adddot m\adddot}},
+ pm = {{p\adddot m\adddot}{p\adddot m\adddot}},
}
\endinput
diff --git a/Master/texmf-dist/tex/latex/biblatex/lbx/nynorsk.lbx b/Master/texmf-dist/tex/latex/biblatex/lbx/nynorsk.lbx
index e664c1c38b1..5f2e12c24d2 100644
--- a/Master/texmf-dist/tex/latex/biblatex/lbx/nynorsk.lbx
+++ b/Master/texmf-dist/tex/latex/biblatex/lbx/nynorsk.lbx
@@ -271,6 +271,7 @@
fromdanish = {{fr{\aa} dansk}{fr{\aa} dansk}},
fromdutch = {{fr{\aa} nederlandsk}{fr{\aa} nederlandsk}},
fromenglish = {{fr{\aa} engelsk}{fr{\aa} engelsk}},
+% fromestonian = {{}{}},% FIXME: missing
fromfinnish = {{fr{\aa} finsk}{fr{\aa} finsk}},
fromfrench = {{fr{\aa} fransk}{fr{\aa} fransk}},
fromgerman = {{fr{\aa} tysk}{fr{\aa} tysk}},
@@ -287,6 +288,17 @@
countryeu = {{Den europeiske unionen}{EU}},
countryep = {{Den europeiske unionen}{EP}},
abstract = {{samandrag}{samandrag}},
+ commonera = {{vesterlandsk tidsrekning}{v\adddot t\adddot}},
+ beforecommonera = {{f{\o}r vesterlandsk tidsrekning}{f\adddot v\adddot t\adddot}},
+ annodomini = {{e\adddot Kr\adddot}{e\adddot Kr\adddot}},
+ beforechrist = {{f\adddot Kr\adddot}{f\adddot Kr\adddot}},
+% circa = {{}{}},% FIXME: missing
+% spring = {{}{}},% FIXME: missing
+% summer = {{}{}},% FIXME: missing
+% autumn = {{}{}},% FIXME: missing
+% winter = {{}{}},% FIXME: missing
+ am = {{formiddag}{f\adddot m\adddot}},
+ pm = {{ettermiddag}{e\adddot m\adddot}},
}
\endinput
diff --git a/Master/texmf-dist/tex/latex/biblatex/lbx/polish.lbx b/Master/texmf-dist/tex/latex/biblatex/lbx/polish.lbx
index 99cdf72220b..d8a4e9566e2 100644
--- a/Master/texmf-dist/tex/latex/biblatex/lbx/polish.lbx
+++ b/Master/texmf-dist/tex/latex/biblatex/lbx/polish.lbx
@@ -5,7 +5,6 @@
\DeclareBibliographyExtras{%
\protected\def\bibrangedash{\textendash\penalty\hyphenpenalty}%
- \protected\def\bibdatedash{\addnbthinspace\textendash\addhpthinspace}%
\let\finalandcomma=\empty
\let\finalandsemicolon=\empty
\protected\def\mkbibordinal#1{\stripzeros{#1}}%
@@ -25,25 +24,57 @@
\iffieldundef{#1}{}{\space}}%
\iffieldbibstring{#1}
{\bibstring{\thefield{#1}}}
- {\stripzeros{\thefield{#1}}}}%
+ {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
\protected\def\mkbibdateshort#1#2#3{%
\iffieldundef{#3}
{}
- {\mkdatezeros{\thefield{#3}}\adddot
+ {\mkdayzeros{\thefield{#3}}\adddot
\iffieldundef{#2}{}{\thinspace}}%
\iffieldundef{#2}
{}
- {\mkdatezeros{\thefield{#2}}%
+ {\mkmonthzeros{\thefield{#2}}%
\iffieldundef{#1}
{}
{\iffieldundef{#3}{/}{\adddot\thinspace}}}%
\iffieldbibstring{#1}
{\bibstring{\thefield{#1}}}
- {\mkdatezeros{\thefield{#1}}}}%
+ {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
\savecommand\mkbibordedition
\savecommand\mkbibordseries
\def\mkbibordedition{\mkbibneutord}%
\def\mkbibordseries{\mkbibfemord}%
+ \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{%
+ \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezeros{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
}
\UndeclareBibliographyExtras{%
@@ -419,6 +450,7 @@
langdanish = {{du\'{n}ski}{du\'{n}ski}},
langdutch = {{holenderski}{holenderski}},
langenglish = {{angielski}{angielski}},
+% langestonian = {{}{}},% FIXME: missing
langfinnish = {{fi\'{n}ski}{fi\'{n}ski}},
langfrench = {{francuski}{francuski}},
langgerman = {{niemiecki}{niemiecki}},
@@ -440,6 +472,7 @@
fromdanish = {{z du\'{n}skiego}{z du\'{n}\adddot}},
fromdutch = {{z niderla\'{n}skiego}{z nid\adddot}},
fromenglish = {{z angielskiego}{z ang\adddot}},
+% fromestonian = {{}{}},% FIXME: missing
fromfinnish = {{z fi\'{n}skiego}{z fi\'{n}\adddot}},
fromfrench = {{z francuzkiego}{z fran\adddot}},
fromgerman = {{z niemieckiego}{z niem\adddot}},
@@ -478,6 +511,17 @@
library = {{bibloteka}{bibl\adddot}},
abstract = {{podsumowanie}{pod\adddot}},
annotation = {{adnotacja}{adn\adddot}},
+ commonera = {{CE}{CE}},
+ beforecommonera = {{BCE}{BCE}},
+ annodomini = {{n\adddot e\adddot}{n\adddot e\adddot}},
+ beforechrist = {{p\adddot n\adddot e\adddot}{p\adddot n\adddot e\adddot}},
+% circa = {{}{}},% FIXME: missing
+% spring = {{}{}},% FIXME: missing
+% summer = {{}{}},% FIXME: missing
+% autumn = {{}{}},% FIXME: missing
+% winter = {{}{}},% FIXME: missing
+ am = {{AM}{AM}},
+ pm = {{PM}{PM}},
}
\protected\gdef\lbx@pl@mkbibmonth#1{%
diff --git a/Master/texmf-dist/tex/latex/biblatex/lbx/portuguese.lbx b/Master/texmf-dist/tex/latex/biblatex/lbx/portuguese.lbx
index 8058bcf86e7..453e5dccfb8 100644
--- a/Master/texmf-dist/tex/latex/biblatex/lbx/portuguese.lbx
+++ b/Master/texmf-dist/tex/latex/biblatex/lbx/portuguese.lbx
@@ -12,7 +12,6 @@
\DeclareBibliographyExtras{%
\protected\def\bibrangedash{%
\textendash\penalty\hyphenpenalty}% breakable dash
- \protected\def\bibdatedash{\bibrangedash}%
\let\finalandcomma=\empty
\let\finalandsemicolon=\empty
\def\mkbibordinal{\mkbibmascord}%
@@ -30,21 +29,57 @@
{}
{\mkbibmonth{\thefield{#2}}%
\iffieldundef{#1}{}{\nobreakspace de\space}}%
- \iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\stripzeros{\thefield{#1}}}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
\protected\def\mkbibdateshort#1#2#3{%
\iffieldundef{#3}
{}
- {\mkdatezeros{\thefield{#3}}%
+ {\mkdayzeros{\thefield{#3}}%
\iffieldundef{#2}{}{/}}%
\iffieldundef{#2}
{}
- {\mkdatezeros{\thefield{#2}}%
+ {\mkmonthzeros{\thefield{#2}}%
\iffieldundef{#1}{}{/}}%
- \iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\mkdatezeros{\thefield{#1}}}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
\savecommand\mkbibordedition
\savecommand\mkbibordseries
\def\mkbibordedition{\mkbibfemord}%
\def\mkbibordseries{\mkbibfemord}%
+ \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{%
+ \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezeros{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
}
\UndeclareBibliographyExtras{%
@@ -405,6 +440,7 @@
langdanish = {{dinamarqu\^es}{dinamarqu\^es}},
langdutch = {{holand{\^e}s}{holand{\^e}s}},
langenglish = {{ingl\^es}{ingl\^es}},
+% langestonian = {{}{}},% FIXME: missing
% langfinnish = {{}{}},% FIXME: missing
langfrench = {{franc\^es}{franc\^es}},
langgerman = {{alem\~ao}{alem\~ao}},
@@ -426,6 +462,7 @@
fromdanish = {{do dinamarqu\^es}{do dinamarqu\^es}},
fromdutch = {{do holand{\^e}s}{do holand{\^e}s}},
fromenglish = {{do ingl\^es}{do ingl\^es}},
+% fromestonian = {{}{}},% FIXME: missing
% fromfinnish = {{}{}},% FIXME: missing
fromfrench = {{do franc\^es}{do franc\^es}},
fromgerman = {{do alem\~ao}{do alem\~ao}},
@@ -461,6 +498,17 @@
library = {{biblioteca}{biblioteca}},
abstract = {{resumo}{resumo}},
annotation = {{notas}{notas}},
+ commonera = {{Era Comum}{EC}},
+ beforecommonera = {{antes da Era Comum}{AEC}},
+ annodomini = {{depois de Cristo}{d\adddot C\adddot}},
+ beforechrist = {{antes de Cristo}{a\adddot C\adddot}},
+% circa = {{}{}},% FIXME: missing
+% spring = {{}{}},% FIXME: missing
+% summer = {{}{}},% FIXME: missing
+% autumn = {{}{}},% FIXME: missing
+% winter = {{}{}},% FIXME: missing
+ am = {{AM}{AM}},
+ pm = {{PM}{PM}},
}
\endinput
diff --git a/Master/texmf-dist/tex/latex/biblatex/lbx/russian.lbx b/Master/texmf-dist/tex/latex/biblatex/lbx/russian.lbx
index 9eb8472181a..0c1bde1261a 100644
--- a/Master/texmf-dist/tex/latex/biblatex/lbx/russian.lbx
+++ b/Master/texmf-dist/tex/latex/biblatex/lbx/russian.lbx
@@ -33,8 +33,6 @@
\DeclareBibliographyExtras{%
\protected\def\bibrangedash{%
\textemdash\penalty\hyphenpenalty}% breakable dash
- \protected\def\bibdatedash{%
- \textemdash\penalty\hyphenpenalty}% breakable dash
\let\finalandcomma=\empty
\let\finalandsemicolon=\empty
\protected\def\mkbibordinal#1{\mkbibmascord}%
@@ -52,21 +50,57 @@
{\mkbibmonth{\thefield{#2}}}
{\lbx@ru@mkbibdatemonth{\thefield{#2}}}%
\iffieldundef{#1}{}{\space}}%
- \iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\stripzeros{\thefield{#1}}}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
\protected\def\mkbibdateshort#1#2#3{%
\iffieldundef{#3}
{}
- {\mkdatezeros{\thefield{#3}}%
+ {\mkdayzeros{\thefield{#3}}%
\iffieldundef{#2}{}{\adddot}}%
\iffieldundef{#2}
{}
- {\mkdatezeros{\thefield{#2}}%
+ {\mkmonthzeros{\thefield{#2}}%
\iffieldundef{#1}{}{\adddot}}%
- \iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\mkdatezeros{\thefield{#1}}}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
\savecommand\mkbibordedition
\savecommand\mkbibordseries
\def\mkbibordedition{\mkbibneutord}%
\def\mkbibordseries{\mkbibfemord}%
+ \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{%
+ \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezeros{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
}
\UndeclareBibliographyExtras{%
@@ -445,6 +479,7 @@
langdanish = {{датский}{дат\adddot}},
langdutch = {{нидерландский}{нидерл\adddot}},
langenglish = {{английский}{англ\adddot}},
+ langestonian = {{эстонский}{эст\adddot}},
langfinnish = {{финский}{фин\adddot}},
langfrench = {{французский}{фр\adddot}},
langgerman = {{немецкий}{нем\adddot}},
@@ -467,6 +502,7 @@
fromdanish = {{с датского}{с\addabbrvspace дат\adddot}},
fromdutch = {{с нидерландского}{с\addabbrvspace нидерл\adddot}},
fromenglish = {{с английского}{с\addabbrvspace англ\adddot}},
+ fromestonian = {{с эстонского}{с\addabbrvspace эст\adddot}},
fromfinnish = {{с финского}{с\addabbrvspace фин\adddot}},
fromfrench = {{с французского}{с\addabbrvspace фр\adddot}},
fromgerman = {{с немецкого}{с\addabbrvspace нем\adddot}},
@@ -503,6 +539,17 @@
library = {{библиотека}{б-ка}},
abstract = {{резюме}{рез\adddot}},
annotation = {{аннотация}{аннот\adddot}},
+ commonera = {{нашей эры}{н\adddotspace э\adddot}},
+ beforecommonera = {{до нашей эры}{до н\adddotspace э\adddot}},
+ annodomini = {{от Рождества Христова}{от Р\adddotspace Х\adddot}},
+ beforechrist = {{до Рождества Христова}{до Р\adddotspace Х\adddot}},
+ circa = {{около}{ок\adddot}},
+ spring = {{весна}{весна}},
+ summer = {{лето}{лето}},
+ autumn = {{осень}{осень}},
+ winter = {{зима}{зима}},
+ am = {{ДП}{ДП}},
+ pm = {{ПП}{ПП}},
}
\protected\gdef\lbx@ru@mkbibdatemonth#1{%
diff --git a/Master/texmf-dist/tex/latex/biblatex/lbx/slovak.lbx b/Master/texmf-dist/tex/latex/biblatex/lbx/slovak.lbx
index f317b608aeb..4cb194af110 100644
--- a/Master/texmf-dist/tex/latex/biblatex/lbx/slovak.lbx
+++ b/Master/texmf-dist/tex/latex/biblatex/lbx/slovak.lbx
@@ -22,19 +22,55 @@
{}
{\mkbibmonth{\thefield{#2}}%
\iffieldundef{#1}{}{\space}}%
- \iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\stripzeros{\thefield{#1}}}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
\protected\def\mkbibdateshort#1#2#3{%
\iffieldundef{#3}
{}
- {\mkdatezeros{\thefield{#3}}\adddot
+ {\mkdayzeros{\thefield{#3}}\adddot
\iffieldundef{#2}{}{\thinspace}}%
\iffieldundef{#2}
{}
- {\mkdatezeros{\thefield{#2}}%
+ {\mkmonthzeros{\thefield{#2}}%
\iffieldundef{#1}
{}
{\iffieldundef{#3}{/}{\adddot\thinspace}}}%
- \iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\mkdatezeros{\thefield{#1}}}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{%
+ \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezeros{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
}
\DeclareBibliographyStrings{%
@@ -536,6 +572,7 @@
{hol\adddot}},
langenglish = {{angli\v{c}tina}%
{angl\adddot}},
+% langestonian = {{}{}},% FIXME: missing
langfinnish = {{f\'{i}n\v{c}ina}%
{f\'{i}n\adddot}},
langfrench = {{franc\'{u}z\v{s}tina}%
@@ -582,6 +619,7 @@
{z\addnbspace hol\adddot}},
fromenglish = {{z\addnbspace angli\v{c}tiny}%
{z\addnbspace angl\adddot}},
+% fromestonian = {{}{}},% FIXME: missing
fromfinnish = {{z\addnbspace f\'{i}n\v{c}iny}%
{z\addnbspace f\'{i}n\adddot}},
fromfrench = {{z\addnbspace franc\'{u}z\v{s}tiny}%
@@ -656,6 +694,17 @@
{abst\adddot}},
annotation = {{anot\'{a}cia}%
{anot\adddot}},
+ commonera = {{n\'a\v{s}ho letopo\v{c}tu}{n\adddotspace l\adddot}},
+ beforecommonera = {{pred na\v{s}\'{\i}m letopo\v{c}tom}{pred\ n\adddotspace l\adddot}},
+ annodomini = {{po Kristovi}{po\ Kr\adddot}},
+ beforechrist = {{pred Kristom}{pred\ Kr\adddot}},
+% circa = {{}{}},% FIXME: missing
+% spring = {{}{}},% FIXME: missing
+% summer = {{}{}},% FIXME: missing
+% autumn = {{}{}},% FIXME: missing
+% winter = {{}{}},% FIXME: missing
+ am = {{AM}{AM}},
+ pm = {{PM}{PM}},
}
\endinput
diff --git a/Master/texmf-dist/tex/latex/biblatex/lbx/slovene.lbx b/Master/texmf-dist/tex/latex/biblatex/lbx/slovene.lbx
index 3ba5a92ddf0..1eb41919233 100644
--- a/Master/texmf-dist/tex/latex/biblatex/lbx/slovene.lbx
+++ b/Master/texmf-dist/tex/latex/biblatex/lbx/slovene.lbx
@@ -5,7 +5,6 @@
\DeclareBibliographyExtras{%
\protected\def\bibrangedash{\textendash\penalty\hyphenpenalty}%
- \protected\def\bibdatedash{\addnbthinspace\textendash\addhpthinspace}%
\let\finalandcomma=\empty
\let\finalandsemicolon=\empty
\protected\def\mkbibordinal#1{\stripzeros{#1}\adddot}%
@@ -23,7 +22,7 @@
\iffieldundef{#1}{}{\space}}%
\iffieldbibstring{#1}
{\bibstring{\thefield{#1}}}
- {\stripzeros{\thefield{#1}}}}%
+ {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
\protected\def\mkbibdateshort#1#2#3{%
\iffieldundef{#3}
{}
@@ -35,11 +34,43 @@
\iffieldundef{#1}{}{\addnbthinspace}}%
\iffieldbibstring{#1}
{\bibstring{\thefield{#1}}}
- {\stripzeros{\thefield{#1}}}}%
+ {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
\savecommand\mkbibordedition
\savecommand\mkbibordseries
\def\mkbibordedition{\mkbibordinal}%
\def\mkbibordseries{\mkbibfemord}%
+ \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{%
+ \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezeros{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
}
\UndeclareBibliographyExtras{%
@@ -401,6 +432,7 @@
langdanish = {{dan\v{s}\v{c}ina}{dan\adddot}},
langdutch = {{nizozem\v{s}\v{c}ina}{niz\adddot}},
langenglish = {{angle\v{s}\v{c}ina}{angl\adddot}},
+% langestonian = {{}{}},% FIXME: missing
langfinnish = {{fin\v{s}\v{c}ina}{fin\adddot}},
langfrench = {{franco\v{s}\v{c}ina}{fr\adddot}},
langgerman = {{nem\v{s}\v{c}ina}{nem\adddot}},
@@ -422,6 +454,7 @@
fromdanish = {{iz dan\v{s}\v{c}ine}{iz dan\adddot}},
fromdutch = {{iz nizozem\v{s}\v{c}ine}{iz niz\adddot}},
fromenglish = {{iz angle\v{s}\v{c}ine}{iz angl\adddot}},
+% fromestonian = {{}{}},% FIXME: missing
fromfinnish = {{iz fin\v{s}\v{c}ine}{iz fin\adddot}},
fromfrench = {{iz franco\v{s}\v{c}ine}{iz fr\adddot}},
fromgerman = {{iz nem\v{s}\v{c}ine}{iz nem\adddot}},
@@ -457,6 +490,17 @@
library = {{knji\v{z}nica}{knji\v{z}nica}},
abstract = {{povzetek}{povzetek}},
annotation = {{opomba}{op\adddot}},
+ commonera = {{po n\adddotspace\v{s}t\adddot}{n\adddotspace\v{s}t\adddot}},
+ beforecommonera = {{pred na\v{s}im \v{s}tetjem}{pr\adddotspace n\adddotspace\v{s}t\adddot}},
+ annodomini = {{na\v{s}e \v{s}tetje}{po\ n\adddotspace\v{s}t\adddot}},
+ beforechrist = {{pred Kristusom}{pr\adddotspace Kr\adddot}},
+% circa = {{}{}},% FIXME: missing
+% spring = {{}{}},% FIXME: missing
+% summer = {{}{}},% FIXME: missing
+% autumn = {{}{}},% FIXME: missing
+% winter = {{}{}},% FIXME: missing
+ am = {{dop\adddot}{dop\adddot}},
+ pm = {{pop\adddot}{pop\adddot}},
}
\endinput
diff --git a/Master/texmf-dist/tex/latex/biblatex/lbx/spanish.lbx b/Master/texmf-dist/tex/latex/biblatex/lbx/spanish.lbx
index 8bfd3b828f2..cd741dc846d 100644
--- a/Master/texmf-dist/tex/latex/biblatex/lbx/spanish.lbx
+++ b/Master/texmf-dist/tex/latex/biblatex/lbx/spanish.lbx
@@ -5,7 +5,6 @@
\DeclareBibliographyExtras{%
\protected\def\bibrangedash{\mbox{-}}% non-breaking hyphen
- \protected\def\bibdatedash{\bibrangedash}% FIXME: unsure
\let\finalandcomma=\empty
\let\finalandsemicolon=\empty
\def\mkbibordinal{\mkbibmascord}%
@@ -22,23 +21,27 @@
{}
{\mkbibmonth{\thefield{#2}}%
\iffieldundef{#1}{}{\nobreakspace de\space}}%
- \iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\stripzeros{\thefield{#1}}}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
\protected\def\mkbibdateshort#1#2#3{%
\iffieldundef{#3}
{}
- {\mkdatezeros{\thefield{#3}}%
+ {\mkdayzeros{\thefield{#3}}%
\iffieldundef{#2}{}{\mbox{-}}}%
\iffieldundef{#2}
{}
- {\mkdatezeros{\thefield{#2}}%
+ {\mkmonthzeros{\thefield{#2}}%
\iffieldundef{#1}{}{\mbox{-}}}%
- \iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\mkdatezeros{\thefield{#1}}}}%
- \savecommand\mkbibrangeterse
- \protected\def\mkbibrangeterse{%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
+ \savecommand\mkdaterangeterse
+ \protected\def\mkdaterangeterse{%
\BibliographyWarning{%
Date format 'terse' not applicable to\MessageBreak
Spanish dates. Using format 'short' instead}%
- \mkbibrangefull{short}}%
+ \mkdaterangefull{short}}%
\savecommand\lbx@finalnamedelim
\savecommand\lbx@finallistdelim
\ifnumgreater{\value{smartand}}{0}
@@ -49,10 +52,42 @@
\savecommand\mkbibordseries
\def\mkbibordedition{\mkbibfemord}%
\def\mkbibordseries{\mkbibfemord}%
+ \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{%
+ \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezeros{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
}
\UndeclareBibliographyExtras{%
- \restorecommand\mkbibrangeterse
+ \restorecommand\mkdaterangeterse
\restorecommand\lbx@finalnamedelim
\restorecommand\lbx@finallistdelim
\restorecommand\mkbibordedition
@@ -324,7 +359,7 @@
see = {{v\'ease}{vid\adddot}},
seealso = {{v\'ease tambi\'en}{vid\adddotspace tambi\'en}},
backrefpage = {{v\'ease p\'agina}{vid\adddotspace p\'ag\adddot}},
- backrefpages = {{v\'ease p\'aginas}{vid\adddotspace p\'ags\adddot}},
+ backrefpages = {{v\'eanse p\'aginas}{vid\adddotspace p\'ags\adddot}},
january = {{enero}{ene\adddot}},
february = {{febrero}{feb\adddot}},
march = {{marzo}{mar\adddot}},
@@ -345,6 +380,7 @@
langdanish = {{dan\'es}{dan\'es}},
langdutch = {{neerland\'es}{neerland\'es}},
langenglish = {{ingl\'es}{ingl\'es}},
+% langestonian = {{}{}},% FIXME: missing
langfinnish = {{fin\'{e}s}{fin\'{e}s}},
langfrench = {{franc\'es}{franc\'es}},
langgerman = {{alem\'an}{alem\'an}},
@@ -366,6 +402,7 @@
fromdanish = {{del dan\'es}{del dan\'es}},
fromdutch = {{del neerland\'es}{del neerland\'es}},
fromenglish = {{del ingl\'es}{del ingl\'es}},
+% fromestonian = {{}{}},% FIXME: missing
fromfinnish = {{del fin\'{e}s}{del fin\'{e}s}},
fromfrench = {{del franc\'es}{del franc\'es}},
fromgerman = {{del alem\'an}{del alem\'an}},
@@ -401,6 +438,17 @@
library = {{biblioteca}{bibl\adddot}},
abstract = {{resumen}{resumen}},
annotation = {{anotaci\'{o}n}{anot\adddot}},
+ commonera = {{era com\'un}{e\adddotspace c\adddot}},
+ beforecommonera = {{antes de la era com\'un}{a\adddotspace e\adddotspace c\adddot}},
+ annodomini = {{despu\'es de Cristo}{d\adddotspace C\adddot}},
+ beforechrist = {{antes de Cristo}{a\adddotspace C\adddot}},
+% circa = {{}{}},% FIXME: missing
+% spring = {{}{}},% FIXME: missing
+% summer = {{}{}},% FIXME: missing
+% autumn = {{}{}},% FIXME: missing
+% winter = {{}{}},% FIXME: missing
+ am = {{a\adddotspace m\adddot}{a\adddot m\adddot}},
+ pm = {{p\adddotspace m\adddot}{p\adddot m\adddot}},
}
\protected\gdef\lbx@es@smartand{%
diff --git a/Master/texmf-dist/tex/latex/biblatex/lbx/swedish.lbx b/Master/texmf-dist/tex/latex/biblatex/lbx/swedish.lbx
index 7b9ee1fbdfe..6413918075a 100644
--- a/Master/texmf-dist/tex/latex/biblatex/lbx/swedish.lbx
+++ b/Master/texmf-dist/tex/latex/biblatex/lbx/swedish.lbx
@@ -26,7 +26,6 @@
\DeclareBibliographyExtras{%
\protected\def\bibrangedash{%
\textendash\penalty\hyphenpenalty}% breakable dash
- \protected\def\bibdatedash{\bibrangedash}%
\let\finalandcomma=\empty
\let\finalandsemicolon=\empty
\protected\def\mkbibordinal#1{\stripzeros{#1}\adddot}%
@@ -54,29 +53,65 @@
{}
{\mkbibmonth{\thefield{#2}}%
\iffieldundef{#1}{}{\space}}%
- \iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\stripzeros{\thefield{#1}}}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
\protected\def\mkbibdateshort#1#2#3{%
\iffieldundef{#1}
{}
- {\iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\mkdatezeros{\thefield{#1}}}%
+ {\iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
\iffieldundef{#2}{}{\mbox{-}}}%
\iffieldundef{#2}
{}
- {\mkdatezeros{\thefield{#2}}%
+ {\mkmonthzeros{\thefield{#2}}%
\iffieldundef{#3}{}{\mbox{-}}}%
\iffieldundef{#3}
{}
- {\mkdatezeros{\thefield{#3}}}}%
- \savecommand\mkbibrangeterse
- \protected\def\mkbibrangeterse{%
+ {\mkdayzeros{\thefield{#3}}}}%
+ \savecommand\mkdaterangeterse
+ \protected\def\mkdaterangeterse{%
\BibliographyWarning{%
Date format 'terse' not applicable to\MessageBreak
Swedish dates. Using format 'short' instead}%
- \mkbibrangefull{short}}%
+ \mkdaterangefull{short}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{%
+ \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezeros{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
}
\UndeclareBibliographyExtras{%
- \restorecommand\mkbibrangeterse
+ \restorecommand\mkdaterangeterse
}
\DeclareBibliographyStrings{%
@@ -376,6 +411,7 @@
langdanish = {{danska}{danska}},
langdutch = {{nederl\"andska}{nederl\"andska}},
langenglish = {{engelska}{engelska}},
+% langestonian = {{}{}},% FIXME: missing
langfinnish = {{finska}{finska}},
langfrench = {{franska}{franska}},
langgerman = {{tyska}{tyska}},
@@ -397,6 +433,7 @@
fromdanish = {{fr\aa n danska}{fr\aa n danska}},
fromdutch = {{fr\aa n nederl\"andska}{fr\aa n nederl\"andska}},
fromenglish = {{fr\aa n engelska}{fr\aa n engelska}},
+% fromestonian = {{}{}},% FIXME: missing
fromfinnish = {{fr\aa n finska}{fr\aa n finska}},
fromfrench = {{fr\aa n franska}{fr\aa n franska}},
fromgerman = {{fr\aa n tyska}{fr\aa n tyska}},
@@ -432,6 +469,17 @@
library = {{bibliotek}{bibliotek}},
abstract = {{sammandrag}{sammandrag}},
annotation = {{anm\"arkning}{anm\adddot}},
+ commonera = {{v\"asterl\"andsk tider\"akning}{v\adddot t\adddot}},
+ beforecommonera = {{f\"ore v\"asterl\"andsk tider\"akning}{f\adddot v\adddot t\adddot}},
+ annodomini = {{efter Kristus}{e\adddot Kr\adddot}},
+ beforechrist = {{f\"ore Kristus}{f\adddot Kr\adddot}},
+% circa = {{}{}},% FIXME: missing
+% spring = {{}{}},% FIXME: missing
+% summer = {{}{}},% FIXME: missing
+% autumn = {{}{}},% FIXME: missing
+% winter = {{}{}},% FIXME: missing
+ am = {{fm}{fm}},
+ pm = {{em}{em}},
}
\endinput