diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/biblatex/biblatex1.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/biblatex/biblatex1.sty | 262 |
1 files changed, 151 insertions, 111 deletions
diff --git a/Master/texmf-dist/tex/latex/biblatex/biblatex1.sty b/Master/texmf-dist/tex/latex/biblatex/biblatex1.sty index 4073f8a8f4f..8cdc5134eff 100644 --- a/Master/texmf-dist/tex/latex/biblatex/biblatex1.sty +++ b/Master/texmf-dist/tex/latex/biblatex/biblatex1.sty @@ -412,6 +412,7 @@ \newtoggle{blx@skipentry} \newtoggle{blx@insert} \newtoggle{blx@lastins} +\newtoggle{blx@keepunit} \newtoggle{blx@debug} \newtoggle{blx@sortcase} \newtoggle{blx@sortupper} @@ -422,7 +423,7 @@ \newtoggle{blx@footnote} \newtoggle{blx@labelalpha} \newtoggle{blx@labelnumber} -\newtoggle{blx@labelyear} +\newtoggle{blx@labeldate} \newtoggle{blx@natbib} \newtoggle{blx@mcite} \newtoggle{blx@loadfiles} @@ -789,31 +790,36 @@ \PackageError{biblatex}{#1}{#2.}% \endgroup} -\protected\def\blx@warning#1{% - \begingroup - \blx@safe@actives - \PackageWarning{biblatex}{#1\blx@noline}% - \endgroup} \protected\def\blx@warning@noline#1{% \begingroup \blx@safe@actives \PackageWarningNoLine{biblatex}{#1}% \endgroup} +\let\blx@warning\blx@warning@noline +\AtEndOfPackage{ + \protected\def\blx@warning#1{% + \begingroup + \blx@safe@actives + \PackageWarning{biblatex}{#1}% + \endgroup}} + \protected\def\blx@warning@entry#1{% \ifdef\abx@field@entrykey {\blx@warning{#1\MessageBreak at entry '\abx@field@entrykey'}} {\blx@warning{#1}}} -\protected\def\blx@info#1{% - \begingroup - \blx@safe@actives - \PackageInfo{biblatex}{#1\blx@noline}% - \endgroup} -\def\blx@info@noline#1{% +\protected\def\blx@info@noline#1{% \begingroup \blx@safe@actives \PackageInfo{biblatex}{#1\@gobble}% \endgroup} +\let\blx@info\blx@info@noline +\AtEndOfPackage{ + \protected\def\blx@info#1{% + \begingroup + \blx@safe@actives + \PackageInfo{biblatex}{#1}% + \endgroup}} \let\blx@noline\@gobble \AtEndOfPackage{\let\blx@noline\@empty} @@ -2835,6 +2841,50 @@ \setcounter{mincompwidth}{1} \def\abx@rangeproclimit{100000} +% {<string>} +% This mustn't be robust as it's likely to be used mainly tests and so +% needs to be expandable +\newcommand*{\rangelen}[1]{% + \blx@rangelen@range#1\bibrangedash\bibrangedash&} + +\def\blx@rangelen@range#1\bibrangedash#2\bibrangedash#3&{% + \ifblank{#3} + {\blx@rangelen@hyphen#1--&} + {\ifblank{#2} + {0}% n\bibrangedash + {\ifblank{#1} + {0}% \bibrangedash n + {\blx@rangelen@check{#1}{#2}}}}} + +\def\blx@rangelen@hyphen#1-#2-#3&{% + \ifblank{#3} + {1}% n + {\ifblank{#2} + {\ifblank{#1} + {\let\blx@tempb\@empty} + {\def\blx@tempb{#1}}% + \blx@rangelen@hyphen@i#3&} + {\ifblank{#1} + {0}% -n + {\blx@rangelen@check{#1}{#2}}}}} + +\def\blx@rangelen@hyphen@i#1-#2&{% + \ifblank{#1#2} + {0}% n- + {\notblank{#1} + {\ifdefempty\blx@tempb + {0} + {\expandafter\blx@rangelen@check + \expandafter{\blx@tempb}{#1}}} + {\blx@rangelen@hyphen@i#2&}}} + +\def\blx@rangelen@check#1#2{% + \blx@imc@ifinteger{#1} + {\blx@imc@ifinteger{#2} + {\the\numexpr#2-#1\relax}% n-m + {0}} + {0}} + % <*>[<postpro>]{<string>} \newrobustcmd*{\mkcomprange}{% @@ -3075,6 +3125,7 @@ \global\togglefalse{blx@unit}% \global\togglefalse{blx@insert}% \global\togglefalse{blx@lastins}% + \global\togglefalse{blx@keepunit}% \global\let\blx@unitpunct\newunitpunct \blx@imc@resetpunctfont} @@ -3125,21 +3176,38 @@ \global\toggletrue{blx@block}}% \protected\def\blx@imc@newunit{% - \global\let\blx@unitpunct\newunitpunct - \global\toggletrue{blx@unit}}% + \iftoggle{blx@keepunit} + {} + {\global\let\blx@unitpunct\newunitpunct + \global\toggletrue{blx@unit}}} \protected\def\blx@imc@setunit{% \@ifstar\blx@setunit@i\blx@setunit} \long\def\blx@setunit#1{% - \long\gdef\blx@unitpunct{#1}% - \global\toggletrue{blx@unit}}% + \iftoggle{blx@keepunit} + {} + {\long\gdef\blx@unitpunct{#1}% + \global\toggletrue{blx@unit}}} \def\blx@setunit@i{% \iftoggle{blx@lastins} {\blx@setunit} {\@gobble}} +\protected\def\blx@imc@printunit{% + \@ifstar\blx@printunit@i\blx@printunit} + +\def\blx@printunit#1{% + \long\gdef\blx@unitpunct{#1\global\togglefalse{blx@keepunit}}% + \global\toggletrue{blx@keepunit}% + \global\toggletrue{blx@unit}} + +\def\blx@printunit@i{% + \iftoggle{blx@lastins} + {\blx@printunit} + {\@gobble}} + \protected\def\blx@imc@finentry{% \unspace\finentrypunct \blx@postpunct @@ -3167,7 +3235,7 @@ \ifinteger \ifnumeral \ifnumerals \ifpages \iffieldint \iffieldnum \iffieldnums \iffieldpages \mkpageprefix \mkpagetotal \mkpagefirst - \newblock \newunit \setunit \finentry} + \newblock \newunit \setunit \printunit \finentry} \appto\blx@blxinit{% \def\ifnatbibmode{\iftoggle{blx@natbib}}% @@ -3925,10 +3993,24 @@ \let\do\blx@entryset@i} \def\blx@entryset@i#1{% - \blx@imc@entrydata{#1}{% - \blx@entryset@precode - \blx@driver{\blx@imc@thefield{entrytype}} - \blx@entryset@postcode}} + \blx@ifdata{#1} + {\begingroup + \blx@resetdata + \blx@getdata{#1}% + \blx@entrysetcount + \blx@setoptions@type\abx@field@entrytype + \blx@setoptions@entry + \addtocounter{instcount}\@ne + \blx@execute + \blx@beglang + \blx@begunit + \blx@entryset@precode + \blx@driver{\blx@imc@thefield{entrytype}} + \blx@entryset@postcode + \blx@endunit + \blx@endlang + \endgroup} + {\blx@nounit}} \blx@regimcs{% \printtext \printfield \printlist \printnames \printfile @@ -4324,6 +4406,7 @@ \do{columns}% \do{line}% \do{lines}% + \do{nodate}% \do{verse}% \do{verses}% \do{section}% @@ -4346,8 +4429,8 @@ \do{datacd}% \do{audiocd}% \do{version}% - \do{doi}% \do{url}% + \do{urlfrom}% \do{urlseen}% \do{file}% \do{inpreparation}% @@ -4397,6 +4480,7 @@ \do{langbrazilian}% \do{langcatalan}% \do{langcroatian}% + \do{langczech}% \do{langdanish}% \do{langdutch}% \do{langenglish}% @@ -4415,6 +4499,7 @@ \do{frombrazilian}% \do{fromcatalan}% \do{fromcroatian}% + \do{fromczech}% \do{fromdanish}% \do{fromdutch}% \do{fromenglish}% @@ -4429,7 +4514,6 @@ \do{fromrussian}% \do{fromspanish}% \do{fromswedish}% - \do{countryct}% \do{countryde}% \do{countryep}% \do{countryeu}% @@ -4828,8 +4912,8 @@ {\egroup#1}} \blx@regimcs{% - \printdate \printdateextra \printurldate \printeventdate - \printorigdate \stripzeros \mkdatezeros} + \printdate \printdateextra \printdatelabel \printdateextralabel + \printurldate \printeventdate \printorigdate \stripzeros \mkdatezeros} % {<language>}{<strings>} @@ -4848,6 +4932,7 @@ \def\blx@endlang{\endgroup} \let\blx@hook@endlang\@empty \let\blx@hook@initlang\@empty +\let\blx@imc@mainlang\@empty \def\blx@hyphenreset{% \ifcsundef{l@\blx@languagename} {} @@ -4878,8 +4963,9 @@ \csname end\blx@thelangenv\endcsname \endgroup}% \csname\blx@thelangenv\expandafter\endcsname - \expandafter{\abx@field@hyphenation}}}}} + \expandafter{\abx@field@hyphenation}}}}}% {}% + \def\blx@imc@mainlang{\select@language{\bbl@main@language}}% \blx@langsetup\bbl@main@language} {\blx@err@patch{'babel' package}% \blx@mknobabel}} @@ -4890,6 +4976,8 @@ {} {\blx@err@nolang{\blx@languagename}}} +\blx@regimcs{\mainlang} + \newrobustcmd*{\DeclareRedundantLanguages}[2]{% \begingroup \ifblank{#2} @@ -4907,8 +4995,8 @@ {\iflistundef{language} {} {\ifnumgreater{\value{language}}{1} - {} - {\expandafter\blx@clearlang@i\abx@list@language}}} + {} + {\expandafter\blx@clearlang@i\abx@list@language}}} {}} \def\blx@clearlang@i#1{% @@ -5070,7 +5158,7 @@ \do{extraalpha}% \do{labelnumber}% \do{labeltitle}% - \do{labelyear}% + \do{labeldate}% \do{extrayear}% \do{library}% \do{localnumber}% @@ -5629,8 +5717,8 @@ \iftoggle{blx@labelalpha} {\blx@bbl@labelalpha} {}% - \iftoggle{blx@labelyear} - {\blx@bbl@labelyear} + \iftoggle{blx@labeldate} + {\blx@bbl@labeldate} {}% \blx@bbl@prefixnumber} {}% @@ -5724,7 +5812,7 @@ {\blx@setlabwidth{\labelalphawidth}{% \csuse{abx@ffd@*@labelalphawidth}{\abx@field@shorthand}}}}} -\def\blx@bbl@labelyear{% +\def\blx@bbl@labeldate{% \ifundef\abx@field@extrayear {} {\ifnum\abx@field@extrayear>\c@maxextrayear @@ -6564,6 +6652,7 @@ \fi \csuse{blx@env@\blx@theenv}% \csuse{blx@hook@bibinit}% + \csuse{blx@hook@bibinit@next}% \let\blx@do\blx@bibitem \let\blx@done\blx@endbibliography \blx@listloop} @@ -6666,6 +6755,12 @@ \@onlypreamble\AtBeginBibliography \@onlypreamble\AtEveryBibitem +\newrobustcmd*{\AtNextBibliography}{% + \ifundef\blx@hook@bibinit@next + {\gdef\blx@hook@bibinit@next{\global\undef\blx@hook@bibinit@next}} + {}% + \gappto\blx@hook@bibinit@next} + % page tracker \def\blx@pagetracker@context{% @@ -8975,8 +9070,8 @@ \blx@xml@svalue{alphaothers}{\labelalphaothers}% \blx@xml@toggle{labelalpha}% \blx@xml@mvalue{labelnamespec}{\blx@bcf@labelnamespec}% - \blx@xml@toggle{labelyear}% - \blx@xml@mvalue{labelyearspec}{\blx@bcf@labelyearspec}% + \blx@xml@toggle{labeldate}% + \blx@xml@mvalue{labeldatespec}{\blx@bcf@labeldatespec}% \blx@xml@svalue{maxalphanames}{\blx@maxalphanames}% \blx@xml@svalue{maxbibnames}{\blx@maxbibnames}% \blx@xml@svalue{maxcitenames}{\blx@maxcitenames}% @@ -9005,11 +9100,11 @@ \ifcsdef{blx@bcf@labelnamespec@#1} {\csuse{blx@bcf@labelnamespec@#1}} {\blx@bcf@labelnamespec}}% - \blx@xml@toggle{labelyear}% - \blx@xml@mvalue{labelyearspec}{% - \ifcsdef{blx@bcf@labelyearspec@#1} - {\csuse{blx@bcf@labelyearspec@#1}} - {\blx@bcf@labelyearspec}}% + \blx@xml@toggle{labeldate}% + \blx@xml@mvalue{labeldatespec}{% + \ifcsdef{blx@bcf@labeldatespec@#1} + {\csuse{blx@bcf@labeldatespec@#1}} + {\blx@bcf@labeldatespec}}% \blx@xml@svalue{maxalphanames}{\blx@maxalphanames}% \blx@xml@svalue{maxbibnames}{\blx@maxbibnames@type}% \blx@xml@svalue{maxcitenames}{\blx@maxcitenames@type}% @@ -9049,7 +9144,7 @@ \noexpand\iftoggle{blx@useeditor}{1}{0}:% \noexpand\iftoggle{blx@usetranslator}{1}{0}:% \noexpand\iftoggle{blx@labelalpha}{1}{0}:% - \noexpand\iftoggle{blx@labelyear}{1}{0}:% + \noexpand\iftoggle{blx@labeldate}{1}{0}:% \noexpand\iftoggle{blx@singletitle}{1}{0}:% \noexpand\csuse{blx@bibtex@sorting@\noexpand\blx@sorting}:% \noexpand\blx@sortlos:% @@ -9357,72 +9452,6 @@ \def\blx@sortexlude@i#1{% \appto\blx@tempa{\blx@xml@exclude{#1}}} -% [<type,type,...>]{<field,field,...>} - -\newrobustcmd*{\DeclareLabelname}[2][]{% - \begingroup - \let\blx@tempa\@empty - \def\blx@tempb{labelnamespec}% - \let\field\blx@ordered@field - \ifblank{#1} - {\global\cslet{blx@bcf@labelnamespec}\@empty} - {\def\blx@tempa{#1}% - \do{\global\cslet{blx@bcf@labelnamespec@##1}\@empty}% - \docsvlist{#1}}% - #2% - \endgroup} -\@onlypreamble\DeclareLabelname - -\newrobustcmd*{\DeclareLabelyear}[2][]{% - \begingroup - \let\blx@tempa\@empty - \def\blx@tempb{labelyearspec}% - \let\field\blx@ordered@field - \ifblank{#1} - {\global\cslet{blx@bcf@labelyearspec}\@empty} - {\def\blx@tempa{#1}% - \do{\global\cslet{blx@bcf@labelyearspec@##1}\@empty}% - \docsvlist{#1}}% - #2% - \endgroup} -\@onlypreamble\DeclareLabelyear - -\newcommand*{\blx@ordered@field}[2][]{% - \let\blx@tempc\@empty - \ifblank{#1} - {} - {\setkeys{blx@ordered@field}{#1}}% - \advance\blx@tempcnta\@ne - \ifdefempty{\blx@tempa} - {\csxappto{blx@bcf@\blx@tempb}{\noexpand\blx@xml@ordered{\the\blx@tempcnta}{\blx@tempc}{#2}}} - {\def\do{\blx@addtypeopt{##1}% - \csxappto{blx@bcf@\blx@tempb @##1}{\noexpand\blx@xml@ordered{\the\blx@tempcnta}{\blx@tempc}{#2}}}% - \docsvlist{\blx@tempa}}} - -\define@key{blx@ordered@field}{form}{% - \appto\blx@tempc{ form="#1"}} -\define@key{blx@ordered@field}{lang}{% - \appto\blx@tempc{ lang="#1"}} - -% experimental - -\newrobustcmd*{\DeclareDisplaymode}[2][global]{% - \begingroup - \blx@tempcnta\z@ - \def\blx@tempa{\blx@xml@dtarget{*}}% - \forcsvlist\blx@defdisplaymode{#2}% - \csxdef{blx@biber@displaymodes@#1}{% - \blx@xml@displaymode{\blx@tempa}}% - \endgroup} - -\def\blx@defdisplaymode#1{% - \advance\blx@tempcnta\@ne - \edef\blx@tempa{% - \blx@tempa - \blx@xml@dmode{\the\blx@tempcnta}{#1}}} - -\DeclareDisplaymode{original,romanised,uniform,translated} - %% Package options % [<entrytype,entrytype,...>]{<options>} @@ -10084,7 +10113,9 @@ \DeclareBibliographyOption{date}{% \ifcsdef{mkbibrange#1} {\protected\def\blx@imc@printdate{\csuse{mkbibrange#1}{}}% - \protected\def\blx@imc@printdateextra{\csuse{mkbibrange#1extra}{}}} + \protected\def\blx@imc@printdatelabel{\csuse{mkbibrange#1}{}}% + \protected\def\blx@imc@printdateextra{\csuse{mkbibrange#1extra}{}}% + \protected\def\blx@imc@printdateextralabel{\csuse{mkbibrange#1extra}{}}} {\blx@err@invopt{date=#1}{}}} \DeclareBibliographyOption{urldate}{% @@ -10150,10 +10181,19 @@ \DeclareTypeOption{labelalpha}[true]{% \settoggle{blx@labelalpha}{#1}} +\DeclareBibliographyOption{labeldate}[true]{% + \settoggle{blx@labeldate}{#1}} +\DeclareTypeOption{labeldate}[true]{% + \settoggle{blx@labeldate}{#1}} + \DeclareBibliographyOption{labelyear}[true]{% - \settoggle{blx@labelyear}{#1}} + \blx@warning@noline{% + 'labelyear' option is deprecated, use 'labeldate' instead}% + \settoggle{blx@labeldate}{#1}} \DeclareTypeOption{labelyear}[true]{% - \settoggle{blx@labelyear}{#1}} + \blx@warning@noline{% + 'labelyear' option is deprecated, use 'labeldate' instead}% + \settoggle{blx@labeldate}{#1}} \DeclareBibliographyOption{uniquelist}[true]{% \ifcsdef{blx@opt@uniquelist@#1} @@ -10433,10 +10473,10 @@ \setkeys{blx@opt@pre}{uniquename=mininit}} {}} {}% - \nottoggle{blx@labelyear} + \nottoggle{blx@labeldate} {\ifnumequal\blx@uniquelist\blx@opt@uniquelist@minyear {\blx@warn@conflopt{% - 'uniquelist=minyear' requires 'labelyear'.\MessageBreak + 'uniquelist=minyear' requires 'labeldate'.\MessageBreak Setting 'uniquelist=true'}% \setkeys{blx@opt@pre}{uniquelist}} {}} |