summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/biblatex/biblatex.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/biblatex/biblatex.sty')
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/biblatex.sty114
1 files changed, 81 insertions, 33 deletions
diff --git a/Master/texmf-dist/tex/latex/biblatex/biblatex.sty b/Master/texmf-dist/tex/latex/biblatex/biblatex.sty
index c1afccda49b..8cac4f17a05 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/09/17}
-\def\abx@version{3.6}
+\def\abx@date{2016/12/05}
+\def\abx@version{3.7}
\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,7 +21,7 @@
% 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.2}
+\def\blx@bcfversion{3.3}
% This is not updated by build script as the bbl version
% does not necessarily change with the package version.
@@ -5007,8 +5007,10 @@
\newrobustcmd*{\mkdaterangeyear}[1]{%
\blx@imc@clearfield{#1month}%
\blx@imc@clearfield{#1day}%
+ \blx@imc@clearfield{#1season}%
\blx@imc@clearfield{#1endmonth}%
\blx@imc@clearfield{#1endday}%
+ \blx@imc@clearfield{#1endseason}%
\iffieldsequal{#1year}{#1endyear}
{\blx@imc@clearfield{#1endyear}}
{}%
@@ -5085,8 +5087,10 @@
\newrobustcmd*{\mkdaterangeyearextra}[1]{%
\blx@imc@clearfield{#1month}%
\blx@imc@clearfield{#1day}%
+ \blx@imc@clearfield{#1season}%
\blx@imc@clearfield{#1endmonth}%
\blx@imc@clearfield{#1endday}%
+ \blx@imc@clearfield{#1endseason}%
\iffieldsequal{#1year}{#1endyear}
{\blx@imc@clearfield{#1endyear}}
{}%
@@ -5198,7 +5202,8 @@
\newrobustcmd*{\bibtzminsep}{\bibtimesep}
% dates
\newrobustcmd*{\bibdateuncertain}{?}
-\newrobustcmd*{\bibdateeraprefix}{\textminus}
+% \textminus is only guaranteed for non-PDFTeX
+\newrobustcmd*{\bibdateeraprefix}{\ifdef\textminus\textminus\textendash}
\newrobustcmd*{\bibdateeraendprefix}{\,\bibdateeraprefix}
\newrobustcmd*{\bibdatesep}{\hyphen}
\newrobustcmd*{\bibdaterangesep}{\bibrangedash}
@@ -5868,10 +5873,11 @@
{\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
+ % \midsentence is to suppress automatic capitalisation
+ \printtext{\printdelim{dateeradelim}\midsentence\bibstring{\blx@dateera@bce}}\relax
\fi}
{\ifnumless{\thefield{#1}}\blx@dateeraauto
- {\printtext{\printdelim{dateeradelim}\bibstring{\blx@dateera@ce}}}
+ {\printtext{\printdelim{dateeradelim}\midsentence\bibstring{\blx@dateera@ce}}}
{}}%
\endgroup}
{}}}%
@@ -5965,8 +5971,7 @@
\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}}}
+ \settoggle{abx@bool@#1inits}{##1}}}
\abx@donameparts
%LEGACY(<3.3) legacy name for \ifgiveninits which is autogenerated now
@@ -6129,7 +6134,7 @@
{\csdef{blx@nih@#1}##1{#2}}}
\@onlypreamble\DeclareNameInputHandler
-% {<entrykey>}{<refsection>}{<field>}{<sort context>}{<value>}
+% {<entrykey>}{<refsection>}{<field>}{<refcontext>}{<value>}
\long\def\blx@bbl@addentryfield#1#2#3#4#5{%
\csxappto{blx@data@#2@#4@#1}{%
\def\expandafter\noexpand\csname abx@field@#3\endcsname{#5}}}
@@ -7770,7 +7775,7 @@
% This sets and saves to the .aux the default refcontext for an entry. The
% default refcontext for an entry is the refcontext of the last
-% bibliography in the refsection in which it is actually printed . This
+% bibliography in the refsection in which it is actually printed. This
% allows citations to default to selecting data from the correct
% bibliography list in standard cases where entries are not listed in
% multiple bibliographies
@@ -7975,7 +7980,7 @@
\iftoggle{blx@defernumbers}
{\global\let\blx@printbibchecks\relax}
{\iftoggle{blx@labelnumber}
- {\blx@warning@noline{Setting 'defernumbers=true' recommended}}
+ {}
{\global\let\blx@printbibchecks\relax}}}
% {<entrykey>,...}
@@ -8351,7 +8356,10 @@
{\blx@err@nodocdiv{chapter}}
{\pretocmd\@makechapterhead{#1}
{}
- {\blx@err@patch{\string\@makechapterhead}}}}
+ {\blx@err@patch{\string\@makechapterhead}}
+ \pretocmd\@makeschapterhead{#1}
+ {}
+ {\blx@err@patch{\string\@makeschapterhead}}}}
\def\blx@refpatch@sect#1{%
\ifcsundef{#1}
@@ -8377,7 +8385,7 @@
\H@old@sect,% hyperref
\NR@sect,% nameref
\scr@sect,% koma-script 3.x
- \@sect}% latex
+ \@startsection}% latex
\iftoggle{blx@tempa}
{\blx@err@patch{\string\@sect}}
{}%
@@ -8719,12 +8727,12 @@
% {<entrykey>,...}
\protected\def\blx@citeloop#1{%
\begingroup
- % Make sure this counter exists. Sometimes it might not when using, e.g:
- % refsection=chapter and \includeonly to put in the chapters or when
- % inserting citations into table of contents
- \ifcsname blx@sectionciteorder@\the\c@refsection\endcsname\else
- \expandafter\newcount\csname blx@sectionciteorder@\the\c@refsection\endcsname
- \fi
+ % Make sure this counter exists. Sometimes it might not when using, e.g:
+ % refsection=chapter and \includeonly to put in the chapters or when
+ % inserting citations into table of contents
+ \ifcsname blx@sectionciteorder@\the\c@refsection\endcsname\else
+ \expandafter\newcount\csname blx@sectionciteorder@\the\c@refsection\endcsname
+ \fi
\global\advance\csname blx@sectionciteorder@\the\c@refsection\endcsname\@ne
\blx@tempcnta\z@
\blx@tempcntb\z@
@@ -8828,15 +8836,19 @@
{}%
% assignment via entrykeys
% weak version
- \ifboolexpr{test {\ifcsdef{blx@assignedrefcontextkeys*@\the\c@refsection @#1}}
- and
- not togl {blx@refcontext}}% inside explicit non-global refcontext
- {\letcs\blx@refcontext@context{blx@assignedrefcontextkeys*@\the\c@refsection @#1}}
+ \nottoggle{blx@refcontext}
+ {\ifcsdef{blx@assignedrefcontextkeys*@\the\c@refsection @*}
+ {\letcs\blx@refcontext@context{blx@assignedrefcontextkeys*@\the\c@refsection @*}}
+ {\ifcsdef{blx@assignedrefcontextkeys*@\the\c@refsection @#1}
+ {\letcs\blx@refcontext@context{blx@assignedrefcontextkeys*@\the\c@refsection @#1}}
+ {}}}
{}%
% strong version
- \ifcsdef{blx@assignedrefcontextkeys@\the\c@refsection @#1}
- {\letcs\blx@refcontext@context{blx@assignedrefcontextkeys@\the\c@refsection @#1}}
- {}}
+ \ifcsdef{blx@assignedrefcontextkeys@\the\c@refsection @*}
+ {\letcs\blx@refcontext@context{blx@assignedrefcontextkeys@\the\c@refsection @*}}
+ {\ifcsdef{blx@assignedrefcontextkeys@\the\c@refsection @#1}
+ {\letcs\blx@refcontext@context{blx@assignedrefcontextkeys@\the\c@refsection @#1}}
+ {}}}
% {<entrykey>}
\protected\def\blx@citeprint#1{%
@@ -10466,6 +10478,12 @@
~~~~</bcf:sortexclusion>\blx@nl}
\xdef\blx@xml@exclude#1{%
~~~~~~<bcf:exclusion>#1</bcf:exclusion>\blx@nl}
+\xdef\blx@xml@sortinclude#1#2{%
+ ~~~~<bcf:sortinclusion\noexpand\ifblank{#1}{}{ type="#1"}>\blx@nl
+ #2%
+ ~~~~</bcf:sortinclusion>\blx@nl}
+\xdef\blx@xml@include#1{%
+ ~~~~~~<bcf:inclusion>#1</bcf:inclusion>\blx@nl}
\xdef\blx@xml@sort#1#2{%
~~~~<bcf:sort #1>\blx@nl
#2%
@@ -10794,13 +10812,16 @@
% sorting
\def\do##1{%
\eappto\blx@bcf@presort{\csuse{blx@bcf@presort@##1}}%
- \eappto\blx@bcf@exclude{\csuse{blx@bcf@exclude@##1}}}%
+ \eappto\blx@bcf@exclude{\csuse{blx@bcf@exclude@##1}}%
+ \eappto\blx@bcf@include{\csuse{blx@bcf@include@##1}}}%
\abx@doentrytypes
+ \do{*}% entrytype wildcard
\eappto\blx@tempa{%
\blx@xml@comment{SORTING}%
\blx@xml@sorting{}{%
\blx@bcf@presort
\blx@bcf@exclude
+ \blx@bcf@include
\csuse{blx@sorting@\blx@sorting}%
}%
}%
@@ -11129,8 +11150,8 @@
% [<entrytype>]{<spec>}
\newrobustcmd*{\DeclareLabelalphaNameTemplate}[2][]{%
\ifblank{#1}
- {\blx@lantem{#2}{global}}
- {\forcsvlist{\blx@lantem{#2}}{#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
@@ -11655,23 +11676,44 @@
\def\blx@undefpresort#1{%
\global\csundef{blx@bcf@presort@#1}}
+% {<entrytype,...>}{<field,...>}
\newrobustcmd*{\DeclareSortExclusion}[2]{%
- \forcsvlist{\blx@sortexlude{#2}}{#1}}
+ \forcsvlist{\blx@sortexclude{#2}}{#1}}
\blx@collectopts{xml}{blx@typeopts}{sortexclusion}% for passing to the .bcf
-\def\blx@sortexlude#1#2{%
+% {<field>}{<entrytype>}
+\def\blx@sortexclude#1#2{%
\begingroup
\ifblank{#1}
{\global\csundef{blx@bcf@exclude@#2}}
{\let\blx@tempa\@empty
- \forcsvlist\blx@sortexlude@i{#1}%
+ \forcsvlist\blx@sortexclude@i{#1}%
\csxdef{blx@bcf@exclude@#2}{%
\blx@xml@sortexclude{#2}{\blx@tempa}}}
\endgroup}
-\def\blx@sortexlude@i#1{%
+\def\blx@sortexclude@i#1{%
\appto\blx@tempa{\blx@xml@exclude{#1}}}
+% {<entrytype,...>}{<field,...>}
+\newrobustcmd*{\DeclareSortInclusion}[2]{%
+ \forcsvlist{\blx@sortinclude{#2}}{#1}}
+\blx@collectopts{xml}{blx@typeopts}{sortinclusion}% for passing to the .bcf
+
+% {<field>}{<entrytype>}
+\def\blx@sortinclude#1#2{%
+ \begingroup
+ \ifblank{#1}
+ {\global\csundef{blx@bcf@include@#2}}
+ {\let\blx@tempa\@empty
+ \forcsvlist\blx@sortinclude@i{#1}%
+ \csxdef{blx@bcf@include@#2}{%
+ \blx@xml@sortinclude{#2}{\blx@tempa}}}
+ \endgroup}
+
+\def\blx@sortinclude@i#1{%
+ \appto\blx@tempa{\blx@xml@include{#1}}}
+
% [<type,type,...>]{<field,field,...>}
\newrobustcmd*{\DeclareLabelname}[2][]{%
\begingroup
@@ -12605,6 +12647,9 @@
{\blx@err@invopt{#1time=##1}{}}}%
% Default for new time fields is "24h"
\setkeys{blx@opt@pre}{#1time=24h}%
+ % Boolean for unknown dates
+ \newtoggle{abx@bool@#1dateunknown}%
+ \newtoggle{abx@bool@end#1dateunknown}%
% Boolean to determine if times are printed with dates
\newtoggle{blx@#1dateusetime}%
\DeclareBibliographyOption[boolean]{#1dateusetime}{%
@@ -13014,6 +13059,9 @@
\c@minnames\blx@mincitenames\relax
\c@maxitems\blx@maxitems\relax
\c@minitems\blx@minitems\relax
+ \togglefalse{abx@bool@xinits}
+ \def\do#1{\iftoggle{abx@bool@#1inits}{\toggletrue{abx@bool@xinits}}{}}
+ \abx@donameparts
\iftoggle{abx@bool@xinits}
{\ifnumequal\blx@uniquename\blx@opt@uniquename@full
{\blx@warn@conflopt{%