summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/biblatex/biblatex1.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/biblatex/biblatex1.sty')
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/biblatex1.sty262
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}}
{}}