summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/biblatex/biblatex2.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/biblatex/biblatex2.sty')
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/biblatex2.sty417
1 files changed, 273 insertions, 144 deletions
diff --git a/Master/texmf-dist/tex/latex/biblatex/biblatex2.sty b/Master/texmf-dist/tex/latex/biblatex/biblatex2.sty
index fd4576f2653..9a7bef604b1 100644
--- a/Master/texmf-dist/tex/latex/biblatex/biblatex2.sty
+++ b/Master/texmf-dist/tex/latex/biblatex/biblatex2.sty
@@ -65,19 +65,20 @@
amsrefs,apacite,babelbib,backref,bibtopic,bibunits,chapterbib,
cite,citeref,drftcite,footbib,inlinebib,jurabib,mcite,mciteplus,
mlbib,multibbl,multibib,natbib,opcit,overcite,splitbib,ucs}%
- \ifboolexpr{
- test {\@ifpackageloaded{babel}}
- and
- not test {\@ifpackageloaded{polyglossia}}
- }
+ \@ifpackageloaded{polyglossia}
{\iftoggle{blx@autolang}
- {\blx@mkbabel}
- {\blx@mknobabel}}
- {\blx@mknobabel}%
+ {\blx@mkautolangpoly}
+ {\blx@mknoautolang}}
+ {\@ifpackageloaded{babel}
+ {\iftoggle{blx@autolang}
+ {\blx@mkautolangbabel}
+ {\blx@mknoautolang}}
+ {\blx@mknoautolang}}%
\csuse{abx@extras@\blx@languagename}%
\csuse{abx@strings@\blx@languagename}%
- \undef\blx@mkbabel
- \undef\blx@mknobabel
+ \undef\blx@mkautolangbabel
+ \undef\blx@mkautolangpoly
+ \undef\blx@mknoautolang
\ifnum\blx@hyperref=\z@
\blx@mknohyperref
\else
@@ -228,7 +229,7 @@
{\newcommand*{\@quotereset}{}\newcount\@quotereset}}
{\@ifpackageloaded{babel}
{\blx@warning@noline{%
- 'babel' detected but 'csquotes' missing.\MessageBreak
+ 'babel/polyglossia' detected but 'csquotes' missing.\MessageBreak
Loading 'csquotes' recommended}}
{}%
\newcommand*{\@quotelevel}{}%
@@ -2207,21 +2208,27 @@
% {<true>}{<false>}
\protected\def\blx@ifciteseen@global{%
- \ifdef\abx@field@entrykey
- {\expandafter\blx@ifseen@global
- \expandafter{\abx@field@entrykey}}
+ \ifbool{citetracker}
+ {\ifdef\abx@field@entrykey
+ {\expandafter\blx@ifseen@global
+ \expandafter{\abx@field@entrykey}}
+ {\@secondoftwo}}
{\@secondoftwo}}
\protected\def\blx@ifciteseen@context{%
- \ifdef\abx@field@entrykey
- {\expandafter\blx@ifseen@context
- \expandafter{\abx@field@entrykey}}
+ \ifbool{citetracker}
+ {\ifdef\abx@field@entrykey
+ {\expandafter\blx@ifseen@context
+ \expandafter{\abx@field@entrykey}}
+ {\@secondoftwo}}
{\@secondoftwo}}
\protected\def\blx@ifciteseen@context{%
- \ifdef\abx@field@entrykey
- {\expandafter\blx@ifseen@context
- \expandafter{\abx@field@entrykey}}
+ \ifbool{citetracker}
+ {\ifdef\abx@field@entrykey
+ {\expandafter\blx@ifseen@context
+ \expandafter{\abx@field@entrykey}}
+ {\@secondoftwo}}
{\@secondoftwo}}
% {<entrykey>}{<true>}{<false>}
@@ -2233,108 +2240,142 @@
\blx@xsanitizeafter\blx@ifseen@context}
\def\blx@ifseen@global#1{%
- \ifinlistcs{#1}{blx@bsee@\the\c@refsection}}
+ \ifbool{citetracker}
+ {\ifinlistcs{#1}{blx@bsee@\the\c@refsection}}
+ {\@secondoftwo}}
\def\blx@ifseen@context#1{%
- \iftoggle{blx@footnote}
- {\ifinlistcs{#1}{blx@fsee@\the\c@refsection}}
- {\ifinlistcs{#1}{blx@bsee@\the\c@refsection}}}
+ \ifbool{citetracker}
+ {\iftoggle{blx@footnote}
+ {\ifinlistcs{#1}{blx@fsee@\the\c@refsection}}
+ {\ifinlistcs{#1}{blx@bsee@\the\c@refsection}}}
+ {\@secondoftwo}}
% {<true>}{<false>}
\def\blx@ifciteibid@global{%
- \blx@imc@iffieldequals{entrykey}\blx@lastkey@text}
+ \ifbool{citetracker}
+ {\blx@imc@iffieldequals{entrykey}\blx@lastkey@text}
+ {\@secondoftwo}}
\def\blx@ifciteibid@context{%
- \iftoggle{blx@footnote}
- {\blx@imc@iffieldequals{entrykey}\blx@lastkey@foot}
- {\blx@imc@iffieldequals{entrykey}\blx@lastkey@text}}
+ \ifbool{citetracker}
+ {\iftoggle{blx@footnote}
+ {\blx@imc@iffieldequals{entrykey}\blx@lastkey@foot}
+ {\blx@imc@iffieldequals{entrykey}\blx@lastkey@text}}
+ {\@secondoftwo}}
\def\blx@ifciteibid@strict{%
- \blx@ifcitesingle
- {\blx@ifciteibid@global}
- {\@secondoftwo}}%
+ \ifbool{citetracker}
+ {\blx@ifcitesingle
+ {\blx@ifciteibid@global}
+ {\@secondoftwo}}
+ {\@secondoftwo}}
\def\blx@ifciteibid@constrict{%
- \blx@ifcitesingle
- {\iftoggle{blx@footnote}
- {\blx@ifmpfncheck
- {\blx@imc@iffieldequals{entrykey}\blx@lastkey@foot}
- {\@secondoftwo}}
- {\blx@imc@iffieldequals{entrykey}\blx@lastkey@text}}
- {\@secondoftwo}}%
+ \ifbool{citetracker}
+ {\blx@ifcitesingle
+ {\iftoggle{blx@footnote}
+ {\blx@ifmpfncheck
+ {\blx@imc@iffieldequals{entrykey}\blx@lastkey@foot}
+ {\@secondoftwo}}
+ {\blx@imc@iffieldequals{entrykey}\blx@lastkey@text}}
+ {\@secondoftwo}}
+ {\@secondoftwo}}
% {<true>}{<false>}
\def\blx@ifciteidem@global{%
- \blx@imc@iffieldequals{fullhash}\blx@lasthash@text}
+ \ifbool{citetracker}
+ {\blx@imc@iffieldequals{fullhash}\blx@lasthash@text}
+ {\@secondoftwo}}
\def\blx@ifciteidem@context{%
- \iftoggle{blx@footnote}
- {\blx@imc@iffieldequals{fullhash}\blx@lasthash@foot}
- {\blx@imc@iffieldequals{fullhash}\blx@lasthash@text}}
+ \ifbool{citetracker}
+ {\iftoggle{blx@footnote}
+ {\blx@imc@iffieldequals{fullhash}\blx@lasthash@foot}
+ {\blx@imc@iffieldequals{fullhash}\blx@lasthash@text}}
+ {\@secondoftwo}}
\let\blx@ifciteidem@strict\blx@ifciteidem@global
\def\blx@ifciteidem@constrict{%
- \iftoggle{blx@footnote}
- {\blx@ifmpfncheck
- {\blx@imc@iffieldequals{fullhash}\blx@lasthash@foot}
- {\@secondoftwo}}
- {\blx@imc@iffieldequals{fullhash}\blx@lasthash@text}}
+ \ifbool{citetracker}
+ {\iftoggle{blx@footnote}
+ {\blx@ifmpfncheck
+ {\blx@imc@iffieldequals{fullhash}\blx@lasthash@foot}
+ {\@secondoftwo}}
+ {\blx@imc@iffieldequals{fullhash}\blx@lasthash@text}}
+ {\@secondoftwo}}
% {<true>}{<false>}
\def\blx@ifopcit@global{%
- \blx@imc@iffieldundef{namehash}
- {\@secondoftwo}
- {\blx@imc@iffieldequalcs{entrykey}{blx@lastkey@text@\abx@field@namehash}}}
+ \ifbool{citetracker}
+ {\blx@imc@iffieldundef{namehash}
+ {\@secondoftwo}
+ {\blx@imc@iffieldequalcs{entrykey}{blx@lastkey@text@\abx@field@namehash}}}
+ {\@secondoftwo}}
\def\blx@ifopcit@context{%
- \blx@imc@iffieldundef{namehash}
- {\@secondoftwo}
- {\iftoggle{blx@footnote}
- {\blx@imc@iffieldequalcs{entrykey}{blx@lastkey@foot@\abx@field@namehash}}
- {\blx@imc@iffieldequalcs{entrykey}{blx@lastkey@text@\abx@field@namehash}}}}
-
-\def\blx@ifopcit@strict{%
- \blx@ifcitesingle
- {\blx@ifopcit@global}
- {\@secondoftwo}}%
-
-\def\blx@ifopcit@constrict{%
- \blx@ifcitesingle
+ \ifbool{citetracker}
{\blx@imc@iffieldundef{namehash}
{\@secondoftwo}
{\iftoggle{blx@footnote}
- {\blx@ifmpfncheck
- {\blx@imc@iffieldequalcs{entrykey}{blx@lastkey@foot@\abx@field@namehash}}
- {\@secondoftwo}}
+ {\blx@imc@iffieldequalcs{entrykey}{blx@lastkey@foot@\abx@field@namehash}}
{\blx@imc@iffieldequalcs{entrykey}{blx@lastkey@text@\abx@field@namehash}}}}
- {\@secondoftwo}}%
+ {\@secondoftwo}}
+
+\def\blx@ifopcit@strict{%
+ \ifbool{citetracker}
+ {\blx@ifcitesingle
+ {\blx@ifopcit@global}
+ {\@secondoftwo}}
+ {\@secondoftwo}}
+
+\def\blx@ifopcit@constrict{%
+ \ifbool{citetracker}
+ {\blx@ifcitesingle
+ {\blx@imc@iffieldundef{namehash}
+ {\@secondoftwo}
+ {\iftoggle{blx@footnote}
+ {\blx@ifmpfncheck
+ {\blx@imc@iffieldequalcs{entrykey}{blx@lastkey@foot@\abx@field@namehash}}
+ {\@secondoftwo}}
+ {\blx@imc@iffieldequalcs{entrykey}{blx@lastkey@text@\abx@field@namehash}}}}
+ {\@secondoftwo}}
+ {\@secondoftwo}}
% {<true>}{<false>}
\def\blx@ifloccit@global{%
- \blx@loccit@check{text}}
+ \ifbool{citetracker}
+ {\blx@loccit@check{text}}
+ {\@secondoftwo}}
\def\blx@ifloccit@context{%
- \iftoggle{blx@footnote}
- {\blx@loccit@check{foot}}
- {\blx@loccit@check{text}}}
+ \ifbool{citetracker}
+ {\iftoggle{blx@footnote}
+ {\blx@loccit@check{foot}}
+ {\blx@loccit@check{text}}}
+ {\@secondoftwo}}
\def\blx@ifloccit@strict{%
- \blx@ifcitesingle
- {\blx@loccit@numcheck{text}}
- {\@secondoftwo}}%
+ \ifbool{citetracker}
+ {\blx@ifcitesingle
+ {\blx@loccit@numcheck{text}}
+ {\@secondoftwo}}
+ {\@secondoftwo}}
\def\blx@ifloccit@constrict{%
- \blx@ifcitesingle
- {\iftoggle{blx@footnote}
- {\blx@ifmpfncheck
- {\blx@loccit@numcheck{foot}}
- {\@secondoftwo}}
- {\blx@loccit@numcheck{text}}}
+ \ifbool{citetracker}
+ {\blx@ifcitesingle
+ {\iftoggle{blx@footnote}
+ {\blx@ifmpfncheck
+ {\blx@loccit@numcheck{foot}}
+ {\@secondoftwo}}
+ {\blx@loccit@numcheck{text}}}
+ {\@secondoftwo}}
{\@secondoftwo}}
\def\blx@loccit@check#1{%
@@ -2370,9 +2411,11 @@
% {<true>}{<false>}
\def\blx@imc@iffirstonpage{%
- \iftoggle{blx@footnote}
- {\blx@iffirstonpage{fnpage}}
- {\blx@iffirstonpage{page}}}
+ \ifbool{pagetracker}
+ {\iftoggle{blx@footnote}
+ {\blx@iffirstonpage{fnpage}}
+ {\blx@iffirstonpage{page}}}
+ {\@secondoftwo}}
\def\blx@iffirstonpage#1{%
\ifcsundef{blx@#1@\number\c@instcount}
@@ -2400,11 +2443,13 @@
% {<count1>}{<count2>}{<true>}{<false>}
\def\blx@imc@ifsamepage#1#2{%
- \ifcsundef{blx@page@\number\numexpr#1}
- {\ifcsundef{blx@fnpage@\number\numexpr#1}
- {\@secondoftwo}
- {\blx@ifsamepage{#1}{#2}{fnpage}}}
- {\blx@ifsamepage{#1}{#2}{page}}}
+ \ifbool{pagetracker}
+ {\ifcsundef{blx@page@\number\numexpr#1}
+ {\ifcsundef{blx@fnpage@\number\numexpr#1}
+ {\@secondoftwo}
+ {\blx@ifsamepage{#1}{#2}{fnpage}}}
+ {\blx@ifsamepage{#1}{#2}{page}}}
+ {\@secondoftwo}}
\def\blx@ifsamepage#1#2#3{%
\ifcsundef{blx@page@\number\numexpr#2}
@@ -3203,8 +3248,8 @@
\@ifstar\blx@mksc@i\blx@mksc@ii}
\def\blx@mksc@i{%
- \ifdef\abx@field@hyphenation
- {\xifinlist\abx@field@hyphenation\blx@cmksc@lang
+ \ifdef\abx@field@langid
+ {\xifinlist\abx@field@langid\blx@cmksc@lang
{\blx@mksc@ii}
{\@firstofone}}
{\blx@mksc@ii}}
@@ -4679,6 +4724,26 @@
\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}%
\printfield{extrayear}}}}}}}
+\newrobustcmd*{\mkbibrangeyear}[1]{%
+ \blx@imc@clearfield{#1month}%
+ \blx@imc@clearfield{#1day}%
+ \blx@imc@clearfield{#1endmonth}%
+ \blx@imc@clearfield{#1endday}%
+ \iffieldsequal{#1year}{#1endyear}
+ {\blx@imc@clearfield{#1endyear}}
+ {}%
+ \mkbibrangefull{short}{#1}}
+
+\newrobustcmd*{\mkbibrangeyearextra}[1]{%
+ \blx@imc@clearfield{#1month}%
+ \blx@imc@clearfield{#1day}%
+ \blx@imc@clearfield{#1endmonth}%
+ \blx@imc@clearfield{#1endday}%
+ \iffieldsequal{#1year}{#1endyear}
+ {\blx@imc@clearfield{#1endyear}}
+ {}%
+ \mkbibrangefullextra{short}{#1}}
+
\expandafter\newrobustcmd
\expandafter*\csname mkbibrangeiso8601\endcsname[1]{%
\iffieldundef{#1year}
@@ -4774,8 +4839,7 @@
\noexpand\blx@resetpunct
\expandafter\noexpand\csname abx@noextras@#2\endcsname}}
-%% Babel interface
-
+%% babel/polyglossia interface
\def\blx@beglang{\blx@clearlang\begingroup}
\def\blx@endlang{\endgroup}
\let\blx@hook@endlang\@empty
@@ -4795,31 +4859,72 @@
\begingroup
\@makeother\#
-\gdef\blx@mkbabel{%
+\gdef\blx@mkautolangbabel{%
\pretocmd\select@language{\blx@langsetup{#1}}
{\ifdef\blx@thelangenv
{\def\blx@beglang{%
\blx@clearlang
\begingroup
- \blx@imc@iffieldundef{hyphenation}
- {}
- {\ifcsundef{l@\abx@field@hyphenation}
- {\blx@warn@nohyph{\abx@field@hyphenation}}
+ \ifdef\abx@field@langid
+ {\ifcsundef{l@\abx@field@langid}
+ {\blx@warn@nohyph{\abx@field@langid}}
{\blx@hook@initlang
\def\blx@endlang{%
\blx@hook@endlang
\csname end\blx@thelangenv\endcsname
\endgroup}%
\csname\blx@thelangenv\expandafter\endcsname
- \expandafter{\abx@field@hyphenation}}}}}
+ \expandafter{\abx@field@langid}}}
+ {}}}
{}%
\def\blx@imc@mainlang{\select@language{\bbl@main@language}}%
\blx@langsetup\bbl@main@language}
{\blx@err@patch{'babel' package}%
- \blx@mknobabel}}
+ \blx@mknoautolang}}
+
+\gdef\blx@mkautolangpoly{%
+ \catcode`\_=11% polyglossia uses "_" as a letter
+ \pretocmd\select@language{\blx@langsetup{#1}}
+ {\ifdef\blx@thelangenv
+ {\def\blx@beglang{%
+ \blx@clearlang
+ \begingroup
+ \ifdef\abx@field@langid
+ {\ifcsundef{l@\abx@field@langid}
+ {\blx@warn@nohyph{\abx@field@langid}}
+ {\blx@hook@initlang
+ \def\blx@endlang{%
+ \blx@hook@endlang
+ % Polyglossia language envs are \<lang>[]
+ \expandafter\ifstrequal\expandafter{\blx@thelangenv}{langname}
+ {\csname end\abx@field@langid\endcsname}
+ {\csname end\blx@thelangenv\endcsname}%
+ \endgroup}%
+ \expandafter\ifstrequal\expandafter{\blx@thelangenv}{langname}
+ {\ifdef\abx@field@langidopts
+ {\csname\abx@field@langid\expandafter\endcsname\expandafter[\abx@field@langidopts]}
+ {\csname\abx@field@langid\endcsname}}
+ {\csname\blx@thelangenv\expandafter\endcsname
+ \expandafter{\abx@field@langid}}%
+ % These lines are equal to \blx@maplang
+ \blx@resetpunct
+ \csuse{abx@extras@\abx@field@langid}%
+ \csuse{abx@strings@\abx@field@langid}}}
+ {}}}
+ {}%
+ \def\blx@imc@mainlang{%
+ \select@language{\bbl@main@language}%
+ % These lines are equal to \blx@maplang
+ \blx@resetpunct
+ \csuse{abx@extras@\bbl@main@language}%
+ \csuse{abx@strings@\bbl@main@language}}%
+ \blx@langsetup\bbl@main@language}
+ {\blx@err@patch{'polyglossia' package}%
+ \blx@mknoautolang}%
+ \catcode`\_=8}
\endgroup
-\def\blx@mknobabel{%
+\def\blx@mknoautolang{%
\blx@lbxinput{\blx@languagename}
{}
{\blx@err@nolang{\blx@languagename}}}
@@ -4933,6 +5038,7 @@
\def\abx@dointernalfields{%
\do{childentrykey}%
\do{clonesourcekey}%
+ \do{datelabelsource}%
\do{entrykey}%
\do{entryset}%
\do{entrysetcount}%
@@ -4974,6 +5080,7 @@
\dolistcsloop{blx@biber@datamodel@lists}\do{pageref}%
\let\do\blx@imc@clearfield
\dolistcsloop{blx@biber@datamodel@fields}\do{options}%
+ \do{labeltitle}\do{labelyear}\do{labelmonth}\do{labelday}\do{datelabelsource}%
\abx@dointernalfields
\def\do##1{\togglefalse{abx@bool@##1}}%
\abx@dobooleans
@@ -4995,6 +5102,7 @@
\dolistcsloop{blx@biber@datamodel@lists}\do{pageref}%
\let\do\blx@savefield
\dolistcsloop{blx@biber@datamodel@fields}\do{options}%
+ \do{labeltitle}\do{labelyear}\do{labelmonth}\do{labelday}\do{datelabelsource}%
\abx@dointernalfields
\let\do\blx@savebool
\abx@dobooleans
@@ -5616,7 +5724,6 @@
\listgadd{\blx@lastsortschemeslos}{#1}}
% {<instcount>}{<entrykey>}{<refsection>}{<labelnumber>}
-
\protected\def\blx@aux@number#1#2#3#4{%
\blx@bbl@addentryfield{\detokenize{#2}}{#3}{localnumber}{#4}%
\global\toggletrue{blx@localnumber}%
@@ -7445,7 +7552,7 @@
% ibidem tracker
-\def\blx@ibidtracker@gobal{%
+\def\blx@ibidtracker@global{%
\ifbool{citetracker}
{\global\let\blx@lastkey@text\abx@field@entrykey}
{}}
@@ -7459,8 +7566,8 @@
\def\blx@ibidtracker@strict{%
\blx@ifcitesingle
- {\blx@ibidtracker@gobal}
- {\blx@ibidreset@gobal}}%
+ {\blx@ibidtracker@global}
+ {\blx@ibidreset@global}}%
\def\blx@ibidtracker@constrict{%
\blx@ifcitesingle
@@ -7473,7 +7580,7 @@
\global\undef\blx@lastkey@foot
\blx@mpfnreset}
-\def\blx@ibidreset@gobal{%
+\def\blx@ibidreset@global{%
\global\undef\blx@lastkey@text}
\def\blx@ibidreset@context{%
@@ -7496,7 +7603,7 @@
% idem tracker
-\def\blx@idemtracker@gobal{%
+\def\blx@idemtracker@global{%
\ifbool{citetracker}
{\global\let\blx@lasthash@text\abx@field@fullhash}
{}}
@@ -7508,7 +7615,7 @@
{\global\let\blx@lasthash@text\abx@field@fullhash}}
{}}
-\let\blx@idemtracker@strict\blx@idemtracker@gobal
+\let\blx@idemtracker@strict\blx@idemtracker@global
\def\blx@idemtracker@constrict{%
\blx@mpfnsave
@@ -7519,7 +7626,7 @@
\global\undef\blx@lasthash@foot
\blx@mpfnreset}
-\def\blx@idemreset@gobal{%
+\def\blx@idemreset@global{%
\global\undef\blx@lasthash@text}
\def\blx@idemreset@context{%
@@ -7542,7 +7649,7 @@
% opcit tracker
-\def\blx@opcittracker@gobal{%
+\def\blx@opcittracker@global{%
\ifbool{citetracker}
{\blx@opcit@tracker{text}}
{}}
@@ -7556,8 +7663,8 @@
\def\blx@opcittracker@strict{%
\blx@ifcitesingle
- {\blx@opcittracker@gobal}
- {\blx@opcitreset@gobal}}%
+ {\blx@opcittracker@global}
+ {\blx@opcitreset@global}}%
\def\blx@opcittracker@constrict{%
\blx@ifcitesingle
@@ -7585,7 +7692,7 @@
\blx@opcit@reset{foot}%
\blx@mpfnreset}
-\def\blx@opcitreset@gobal{%
+\def\blx@opcitreset@global{%
\blx@opcit@reset{text}}
\def\blx@opcitreset@context{%
@@ -7631,7 +7738,7 @@
% loccit tracker
-\def\blx@loccittracker@gobal{%
+\def\blx@loccittracker@global{%
\ifbool{citetracker}
{\blx@loccit@tracker{text}}
{}}
@@ -7691,7 +7798,7 @@
\blx@loccit@reset{foot}%
\blx@mpfnreset}
-\def\blx@loccitreset@gobal{%
+\def\blx@loccitreset@global{%
\blx@loccit@reset{text}}
\def\blx@loccitreset@context{%
@@ -9230,7 +9337,7 @@
\let\blx@tempc\@empty
\let\map\blx@sourcemap@map
\ifblank{#1}
- {\setkeys{blx@sourcemap@maps}{level=user}}
+ {\setkeys{blx@sourcemap@maps}{datatype=bibtex, level=user}}
{\setkeys{blx@sourcemap@maps}{#1, level=user}}%
#2%
\eappto\blx@tempa{%
@@ -9241,7 +9348,7 @@
\let\blx@tempc\@empty
\let\map\blx@sourcemap@map
\ifblank{#1}
- {\setkeys{blx@sourcemap@maps}{level=style}}
+ {\setkeys{blx@sourcemap@maps}{datatype=bibtex, level=style}}
{\setkeys{blx@sourcemap@maps}{#1, level=style}}%
#2%
\eappto\blx@tempa{%
@@ -9718,7 +9825,7 @@
{\def\do##1{%
\blx@addtypeopt{##1}%
\csxappto{blx@bcf@\blx@tempb @##1}{%
- \noexpand\blx@xml@ordered{\the\blx@tempcnta}{\blx@tempc}{#2}}}%
+ \noexpand\blx@xml@ordered{\the\blx@tempcnta}{ type="field"\blx@tempc}{#2}}}%
\expandafter\docsvlist\expandafter{\blx@tempa}}}
\newcommand*{\blx@orderedld@literal}[1]{%
@@ -10034,25 +10141,40 @@
\settoggle{blx@clearlang}{#1}}
\DeclareBibliographyOption{babel}{%
- \ifcsdef{blx@opt@babel@#1}
- {\csuse{blx@opt@babel@#1}}
- {\blx@err@invopt{babel=#1}{}}}
-\def\blx@opt@babel@none{%
+ \blx@warning@noline{%
+ 'babel' option is deprecated, use 'autolang' instead}%
+ \blx@autolang@i{#1}}
+
+\DeclareBibliographyOption{autolang}{%
+ \blx@autolang@i{#1}}
+
+\def\blx@autolang@i#1{%
+ \ifcsdef{blx@opt@autolang@#1}
+ {\csuse{blx@opt@autolang@#1}}
+ {\blx@err@invopt{autolang=#1}{}}}
+
+\def\blx@opt@autolang@none{%
\undef\blx@thelangenv
\let\blx@hook@initlang\@empty
\let\blx@hook@endlang\@empty}
-\def\blx@opt@babel@hyphen{%
+\def\blx@opt@autolang@hyphen{%
\def\blx@thelangenv{hyphenrules}%
\let\blx@hook@initlang\@empty
\let\blx@hook@endlang\@empty}
-\csdef{blx@opt@babel@other*}{%
+\csdef{blx@opt@autolang@other*}{%
\def\blx@thelangenv{otherlanguage*}%
\def\blx@hook@initlang{\@quotereset\@ne}%
\def\blx@hook@endlang{\blx@postpunct}}
-\def\blx@opt@babel@other{%
+\def\blx@opt@autolang@other{%
\def\blx@thelangenv{otherlanguage}%
\def\blx@hook@initlang{\@quotereset\@ne}%
\def\blx@hook@endlang{\blx@postpunct}}
+\def\blx@opt@autolang@langname{%
+ \@ifpackageloaded{polyglossia}
+ {\def\blx@thelangenv{langname}}
+ {\def\blx@thelangenv{otherlanguage}}%
+ \def\blx@hook@initlang{\@quotereset\@ne}%
+ \def\blx@hook@endlang{\blx@postpunct}}
\DeclareBibliographyOption{indexing}[true]{%
\blx@opt@index{#1}}
@@ -10243,8 +10365,8 @@
{\blx@err@invopt{ibidtracker=#1}{}}}
\def\blx@opt@ibidtracker@true{%
\let\blx@imc@ifciteibid\blx@ifciteibid@global
- \let\blx@ibidtracker\blx@ibidtracker@gobal
- \let\blx@ibidreset\blx@ibidreset@gobal
+ \let\blx@ibidtracker\blx@ibidtracker@global
+ \let\blx@ibidreset\blx@ibidreset@global
\booltrue{citetracker}}
\def\blx@opt@ibidtracker@false{%
\let\blx@imc@ifciteibid\@secondoftwo
@@ -10258,7 +10380,7 @@
\def\blx@opt@ibidtracker@strict{%
\let\blx@imc@ifciteibid\blx@ifciteibid@strict
\let\blx@ibidtracker\blx@ibidtracker@strict
- \let\blx@ibidreset\blx@ibidreset@gobal
+ \let\blx@ibidreset\blx@ibidreset@global
\booltrue{citetracker}}
\def\blx@opt@ibidtracker@constrict{%
\let\blx@imc@ifciteibid\blx@ifciteibid@constrict
@@ -10272,8 +10394,8 @@
{\blx@err@invopt{idemtracker=#1}{}}}
\def\blx@opt@idemtracker@true{%
\let\blx@imc@ifciteidem\blx@ifciteidem@global
- \let\blx@idemtracker\blx@idemtracker@gobal
- \let\blx@idemreset\blx@idemreset@gobal
+ \let\blx@idemtracker\blx@idemtracker@global
+ \let\blx@idemreset\blx@idemreset@global
\booltrue{citetracker}}
\def\blx@opt@idemtracker@false{%
\let\blx@imc@ifciteidem\@secondoftwo
@@ -10287,7 +10409,7 @@
\def\blx@opt@idemtracker@strict{%
\let\blx@imc@ifciteidem\blx@ifciteidem@strict
\let\blx@idemtracker\blx@idemtracker@strict
- \let\blx@idemreset\blx@idemreset@gobal
+ \let\blx@idemreset\blx@idemreset@global
\booltrue{citetracker}}
\def\blx@opt@idemtracker@constrict{%
\let\blx@imc@ifciteidem\blx@ifciteidem@constrict
@@ -10301,8 +10423,8 @@
{\blx@err@invopt{opcittracker=#1}{}}}
\def\blx@opt@opcittracker@true{%
\let\blx@imc@ifopcit\blx@ifopcit@global
- \let\blx@opcittracker\blx@opcittracker@gobal
- \let\blx@opcitreset\blx@opcitreset@gobal
+ \let\blx@opcittracker\blx@opcittracker@global
+ \let\blx@opcitreset\blx@opcitreset@global
\booltrue{citetracker}}
\def\blx@opt@opcittracker@false{%
\let\blx@imc@ifopcit\@secondoftwo
@@ -10316,7 +10438,7 @@
\def\blx@opt@opcittracker@strict{%
\let\blx@imc@ifopcit\blx@ifopcit@strict
\let\blx@opcittracker\blx@opcittracker@strict
- \let\blx@opcitreset\blx@opcitreset@gobal
+ \let\blx@opcitreset\blx@opcitreset@global
\booltrue{citetracker}}
\def\blx@opt@opcittracker@constrict{%
\let\blx@imc@ifopcit\blx@ifopcit@constrict
@@ -10330,8 +10452,8 @@
{\blx@err@invopt{loccittracker=#1}{}}}
\def\blx@opt@loccittracker@true{%
\let\blx@imc@ifloccit\blx@ifloccit@global
- \let\blx@loccittracker\blx@loccittracker@gobal
- \let\blx@loccitreset\blx@loccitreset@gobal
+ \let\blx@loccittracker\blx@loccittracker@global
+ \let\blx@loccitreset\blx@loccitreset@global
\booltrue{citetracker}}
\def\blx@opt@loccittracker@false{%
\let\blx@imc@ifloccit\@secondoftwo
@@ -10345,7 +10467,7 @@
\def\blx@opt@loccittracker@strict{%
\let\blx@imc@ifloccit\blx@ifloccit@strict
\let\blx@loccittracker\blx@loccittracker@strict
- \let\blx@loccitreset\blx@loccitreset@gobal
+ \let\blx@loccitreset\blx@loccitreset@global
\booltrue{citetracker}}
\def\blx@opt@loccittracker@constrict{%
\let\blx@imc@ifloccit\blx@ifloccit@constrict
@@ -10377,8 +10499,14 @@
\DeclareBibliographyOption{datelabel}{%
\ifcsdef{mkbibrange#1}
- {\protected\def\blx@imc@printdatelabel{\csuse{mkbibrange#1}{label}}%
- \protected\def\blx@imc@printdateextralabel{\csuse{mkbibrange#1extra}{label}}}
+ {\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}{}}}
\DeclareBibliographyOption{urldate}{%
@@ -10397,7 +10525,8 @@
{\blx@err@invopt{origdate=#1}{}}}
\DeclareBibliographyOption{alldates}{%
- \ExecuteBibliographyOptions{date=#1,datelabel=#1,urldate=#1,eventdate=#1,origdate=#1}}
+ \ExecuteBibliographyOptions{%
+ date=#1,datelabel=#1,urldate=#1,eventdate=#1,origdate=#1}}
\DeclareBibliographyOption{datezeros}[true]{%
\ifstrequal{#1}{true}
@@ -10680,11 +10809,11 @@
usetranslator=false,indexing=false,abbreviate=true,dateabbrev=true,
backref=false,backrefsetstyle=setonly,pagetracker=false,ibidtracker=false,
idemtracker=false,opcittracker=false,loccittracker=false,citetracker=false,
- citecounter=false,block=none,language=auto,clearlang=true,babel=none,
- date=comp,datelabel=comp,origdate=comp,eventdate=comp,urldate=short,autopunct=true,
- punctfont=false,defernumbers=false,refsection=none,refsegment=none,
- citereset=none,hyperref=auto,parentracker,maxparens=3,
- bibencoding=auto,bibwarn}
+ citecounter=false,block=none,language=auto,clearlang=true,autolang=none,
+ date=comp,datelabel=year,origdate=comp,eventdate=comp,urldate=short,
+ autopunct=true,punctfont=false,defernumbers=false,
+ refsection=none,refsegment=none,citereset=none,hyperref=auto,
+ parentracker,maxparens=3,bibencoding=auto,bibwarn}
% Load compatibility code