diff options
author | Karl Berry <karl@freefriends.org> | 2013-10-27 22:52:35 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2013-10-27 22:52:35 +0000 |
commit | d3eed84270fbc4f6a6acb3f046b9d722110ce875 (patch) | |
tree | ba7f7db9515e44de491302efb65fbae3f6f90dcf /Master/texmf-dist/tex/latex/biblatex/biblatex2.sty | |
parent | f85faa8bc11e179cbb70dbc4818fb575a3e9b955 (diff) |
biblatex (26oct13)
git-svn-id: svn://tug.org/texlive/trunk@32011 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/biblatex/biblatex2.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/biblatex/biblatex2.sty | 417 |
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 |