summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/biblatex/biblatex2.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2013-07-11 23:36:27 +0000
committerKarl Berry <karl@freefriends.org>2013-07-11 23:36:27 +0000
commit275a02abde664ff395868e975c7c06d89276ac0b (patch)
treec315179a8d6f30c65f89152a70176afa828cc7e7 /Master/texmf-dist/tex/latex/biblatex/biblatex2.sty
parent40e239851e66f62ec8d3092c746e61151b445b6f (diff)
biblatex (10jul13)
git-svn-id: svn://tug.org/texlive/trunk@31176 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.sty235
1 files changed, 168 insertions, 67 deletions
diff --git a/Master/texmf-dist/tex/latex/biblatex/biblatex2.sty b/Master/texmf-dist/tex/latex/biblatex/biblatex2.sty
index 1a9542da6c6..fd4576f2653 100644
--- a/Master/texmf-dist/tex/latex/biblatex/biblatex2.sty
+++ b/Master/texmf-dist/tex/latex/biblatex/biblatex2.sty
@@ -65,7 +65,11 @@
amsrefs,apacite,babelbib,backref,bibtopic,bibunits,chapterbib,
cite,citeref,drftcite,footbib,inlinebib,jurabib,mcite,mciteplus,
mlbib,multibbl,multibib,natbib,opcit,overcite,splitbib,ucs}%
- \@ifpackageloaded{babel}
+ \ifboolexpr{
+ test {\@ifpackageloaded{babel}}
+ and
+ not test {\@ifpackageloaded{polyglossia}}
+ }
{\iftoggle{blx@autolang}
{\blx@mkbabel}
{\blx@mknobabel}}
@@ -368,8 +372,6 @@
\newcount\blx@parenlevel@foot
\expandafter\newcount\csname blx@sectionciteorder@0\endcsname
-
-
\def\blx@uniquename{0}
\def\blx@uniquelist{0}
\def\blx@maxbibnames{0}
@@ -2155,6 +2157,19 @@
\expandafter\@secondoftwo
\fi}}}
+% {<true>}{<false>}
+
+\def\blx@imc@iffirstcitekey{%
+ \ifboolexpr{ ( test {\ifnumequal\c@multicitetotal\z@}
+ and test {\ifnumequal\c@citecount\@ne} )
+ or ( test {\ifnumgreater\c@multicitetotal\z@}
+ and test {\ifnumequal\c@multicitecount\@ne}
+ and test {\ifnumequal\c@citecount\@ne} ) }}
+
+\def\blx@imc@iflastcitekey{%
+ \ifboolexpr{ test {\ifnumequal\c@citecount\c@citetotal}
+ and test {\ifnumequal\c@multicitecount\c@multicitetotal} }}
+
% {<category>}{<true>}{<false>}
\protected\def\blx@imc@ifcategory{%
@@ -2203,6 +2218,12 @@
\expandafter{\abx@field@entrykey}}
{\@secondoftwo}}
+\protected\def\blx@ifciteseen@context{%
+ \ifdef\abx@field@entrykey
+ {\expandafter\blx@ifseen@context
+ \expandafter{\abx@field@entrykey}}
+ {\@secondoftwo}}
+
% {<entrykey>}{<true>}{<false>}
\protected\def\blx@ifentryseen@global{%
@@ -2817,7 +2838,8 @@
\else
\numdef\blx@tempc\blx@tempd
\fi
- \edef\blx@tempb{\blx@range@out@value{\blx@tempb\noexpand\bibrangedash\blx@tempc}}%
+ \edef\blx@tempb{%
+ \blx@range@out@value{\blx@tempb\noexpand\bibrangedash\blx@tempc}}%
\blx@tempb}
\def\blx@comprange@comp@div{%
@@ -3046,11 +3068,12 @@
\ifdriver \thefield \strfield \csfield \usefield \thelist \thename
\clearfield \clearlist \clearname \restorefield \restorelist \restorename
\ifcategory \ifentrycategory \ifkeyword \ifentrykeyword
- \ifciteseen \ifentryseen \ifciteibid \ifciteidem \ifopcit \ifloccit
+ \ifciteseen \ifentryseen \ifentryinbib \ifciteibid \ifciteidem \ifopcit \ifloccit
\ifcurrentfield \ifcurrentlist \ifcurrentname \ifentrytype
\iffieldequalcs \iffieldequals \iffieldequalstr \iffieldsequal
\ifbibmacroundef \iffieldundef \iffieldxref \iflistequalcs \iflistequals
- \iflistsequal \iflistundef \iflistxref \ifmorenames \ifmoreitems
+ \iflistsequal \iflistundef \iflistxref
+ \ifmorenames \ifmoreitems \iffirstcitekey \iflastcitekey
\ifnameequalcs \ifnameequals \ifnamesequal \ifnameundef \ifnamexref
\iffirstonpage \ifsamepage \savefield \savefieldcs \savelist
\savelistcs \savename \savenamecs \usedriver
@@ -4310,6 +4333,7 @@
\do{langitalian}%
\do{langlatin}%
\do{langnorwegian}%
+ \do{langpolish}%
\do{langportuguese}%
\do{langrussian}%
\do{langspanish}%
@@ -4329,6 +4353,7 @@
\do{fromitalian}%
\do{fromlatin}%
\do{fromnorwegian}%
+ \do{frompolish}%
\do{fromportuguese}%
\do{fromrussian}%
\do{fromspanish}%
@@ -4685,6 +4710,7 @@
\newrobustcmd*{\bibrangessep}{,\space}
\newrobustcmd*{\bibdatedash}{\bibrangedash}
\newrobustcmd*{\finalandcomma}{}
+\newrobustcmd*{\finalandsemicolon}{}
\newrobustcmd*{\mkbibordinal}[1]{#1}
\newrobustcmd*{\mkbibmascord}{\mkbibordinal}
\newrobustcmd*{\mkbibfemord}{\mkbibordinal}
@@ -5109,7 +5135,7 @@
% {<counter>}{<value>}
-\protected\long\def\blx@bbl@countdef#1#2{%
+\protected\long\def\blx@bbl@cntdef#1#2{%
\csxappto\blx@bbl@data{%
\csname c@#1\endcsname#2\relax}}
@@ -5262,6 +5288,7 @@
\def\blx@ifdata#1{%
\ifcsdef{blx@data@\the\c@refsection @#1}}
+\let\blx@imc@ifentryinbib\blx@ifdata
\def\blx@getdata#1{%
\csuse{blx@data@\the\c@refsection @#1}%
@@ -5564,7 +5591,7 @@
\let\list\blx@bbl@listdef
\let\field\blx@bbl@fielddef
\let\strng\blx@bbl@stringdef
- \let\count\blx@bbl@countdef
+ \let\cnt\blx@bbl@cntdef
\let\true\blx@bbl@booltrue
\let\false\blx@bbl@boolfalse
\let\verb\blx@bbl@verbdef
@@ -5637,19 +5664,19 @@
{}
{\blx@logreq@active{}}}
{}%
- % Test to see if we removed any mention of a sorting scheme since last run.
+ % Test if we removed any mention of a sorting scheme since last run.
% If we did, we need to re-run biber
\def\do#1{\ifinlist{#1}{\blx@sortschemes}{}{\blx@logreq@active{}}\relax}%
\dolistloop\blx@lastsortschemes
- % Test to see if we added any mention of a sorting scheme since last run
+ % Test if we added any mention of a sorting scheme since last run
% If we did, we need to re-run biber
\def\do#1{\ifinlist{#1}{\blx@lastsortschemes}{}{\blx@logreq@active{}}\relax}%
\dolistloop\blx@sortschemes
- % Test to see if we removed any mention of a shorthand sorting scheme since last run.
+ % Test if we removed any mention of a shorthand sorting scheme since last run.
% If we did, we need to re-run biber
\def\do#1{\ifinlist{#1}{\blx@sortschemeslos}{}{\blx@logreq@active{}}\relax}%
\dolistloop\blx@lastsortschemeslos
- % Test to see if we added any mention of a shorthand sorting scheme since last run
+ % Test to see if we added any mention of a shorthand sorting scheme since last run.
% If we did, we need to re-run biber
\def\do#1{\ifinlist{#1}{\blx@lastsortschemeslos}{}{\blx@logreq@active{}}\relax}%
\dolistloop\blx@sortschemeslos
@@ -5679,17 +5706,28 @@
{\let\abx@field@localnumber\@empty}
{\csnumgdef{blx@labelnumber@\the\c@refsection}{%
\csuse{blx@labelnumber@\the\c@refsection}+1}%
- \edef\abx@field@localnumber{\csuse{blx@labelnumber@\the\c@refsection}}%
+ \edef\abx@field@localnumber{%
+ \csuse{blx@labelnumber@\the\c@refsection}}%
\blx@bbl@addentryfield{\abx@field@entrykey}{\the\c@refsection}%
{localnumber}{\abx@field@localnumber}}%
- \listxadd\blx@localnumaux{\string\abx@aux@number{\the\c@instcount}{\abx@field@entrykey}{\the\c@refsection}{\abx@field@localnumber}}}
+ \listxadd\blx@localnumaux{%
+ \string\abx@aux@number
+ {\the\c@instcount}
+ {\abx@field@entrykey}
+ {\the\c@refsection}
+ {\abx@field@localnumber}}}
% If localnumbers were already in the .aux, add them
% again from the .aux. This prevents some cycling
% problems where pagebreaks change after localnumber
% settles down and then we need another run which then
% regenerates localnumber requiring another run but then
% the pagebreaks change back again ... etc.
- {\listxadd\blx@localnumaux{\string\abx@aux@number{\the\c@instcount}{\abx@field@entrykey}{\the\c@refsection}{\abx@field@localnumber}}}}
+ {\listxadd\blx@localnumaux{%
+ \string\abx@aux@number
+ {\the\c@instcount}
+ {\abx@field@entrykey}
+ {\the\c@refsection}
+ {\abx@field@localnumber}}}}
{}}%
{}}
{}%
@@ -6284,7 +6322,8 @@
\togglefalse{blx@omitnumbers}%
\setkeys{blx@bib2}{#1}% ... now we have correct \blx@tempa, set rest of options
\blx@rest@actives
- \csxappto{blx@xml@slistsbib}{\blx@xml@slist{entry}{\blx@tempe}{\blx@tempc}{\blx@tempd}}%
+ \csxappto{blx@xml@slistsbib}{%
+ \blx@xml@slist{entry}{\blx@tempe}{\blx@tempc}{\blx@tempd}}%
\ifdefvoid\blx@tempa
{\blx@warn@bibempty\endgroup}
{\blx@bibliography\blx@tempa}}
@@ -6536,6 +6575,10 @@
\@onlypreamble\AtBeginBibliography
\@onlypreamble\AtEveryBibitem
+\def\blx@imc@UseBibitemHook{\csuse{blx@hook@bibitem}}
+
+\blx@regimcs{\UseBibitemHook}
+
\newrobustcmd*{\AtNextBibliography}{%
\ifundef\blx@hook@bibinit@next
{\gdef\blx@hook@bibinit@next{\global\undef\blx@hook@bibinit@next}}
@@ -6637,7 +6680,8 @@
\blx@safe@actives
\setkeys{blx@los2}{#1}% ... now we have correct \blx@tempa, set rest of options
\blx@rest@actives
- \csxappto{blx@xml@slistsbib}{\blx@xml@slistlos{shorthand}{\blx@tempe}{\blx@tempc}{\blx@tempd}}%
+ \csxappto{blx@xml@slistsbib}{%
+ \blx@xml@slistlos{shorthand}{\blx@tempe}{\blx@tempc}{\blx@tempd}}%
\ifdefvoid\blx@tempa
{\blx@warn@losempty\endgroup}
{\blx@shorthands\blx@tempa}}
@@ -6756,8 +6800,9 @@
\ifblank{#1}
{}
{\let\blx@bibfiles\@empty
- \blx@xsanitizeafter{\forcsvlist\blx@refsection@addfile}{#1}%
+ % globals should be first as it might contain macros needed for others
\forlistloop{\listadd\blx@bibfiles}\blx@bibfiles@global}%
+ \blx@xsanitizeafter{\forcsvlist\blx@refsection@addfile}{#1}%
\blx@refsection@biber
\fi
\blx@info{Setting label 'refsection:\the\c@refsection'}%
@@ -7057,8 +7102,14 @@
\newrobustcmd*{\AtEveryCite}{\gappto\blx@hook@cite}
\newrobustcmd*{\AtEveryCitekey}{\gappto\blx@hook@citekey}
+\newrobustcmd*{\AtEveryMultiCite}{\gappto\blx@hook@mcite}
\@onlypreamble\AtEveryCite
\@onlypreamble\AtEveryCitekey
+\@onlypreamble\AtEveryMultiCite
+
+\def\blx@imc@UseEveryCiteHook{\csuse{blx@hook@cite}}
+\def\blx@imc@UseEveryCitekeyHook{\csuse{blx@hook@citekey}}
+\def\blx@imc@UseEveryMultiCiteHook{\csuse{blx@hook@mcite}}
\newrobustcmd*{\AtNextCite}{%
\ifundef\blx@hook@cite@next
@@ -7072,7 +7123,24 @@
{}%
\gappto\blx@hook@citekey@next}
-% {<style>]
+\newrobustcmd*{\AtNextMultiCite}{%
+ \ifundef\blx@hook@mcite@next
+ {\gdef\blx@hook@mcite@next{\global\undef\blx@hook@mcite@next}}
+ {}%
+ \gappto\blx@hook@mcite@next}
+
+\def\blx@imc@UseNextCiteHook{\csuse{blx@hook@cite@next}}
+\def\blx@imc@UseNextCitekeyHook{\csuse{blx@hook@citekey@next}}
+\def\blx@imc@UseNextMultiCiteHook{\csuse{blx@hook@mcite@next}}
+
+\def\blx@imc@DeferNextCitekeyHook{\undef\blx@hook@citekey@next}
+
+\blx@regimcs{%
+ \UseEveryCiteHook \UseEveryCitekeyHook \UseEveryMultiCiteHook
+ \UseNextCiteHook \UseNextCitekeyHook \UseNextMultiCiteHook
+ \DeferNextCitekeyHook}
+
+% {<style>}
\newrobustcmd*{\RequireCitationStyle}[1]{%
\blx@inputonce{#1.cbx}{citation style '#1'}{}{}{}
@@ -7877,8 +7945,10 @@
\fi
\blx@checkpunct@ii}
\def\blx@checkpunct@iii#1\blx@checkpunct@ii{%
+ \global\undef\abx@field@postpunct
\blx@tempa{\blx@postpunct}}
\def\blx@checkpunct@iv#1\blx@checkpunct@ii#2&#3{%
+ \gdef\abx@field@postpunct{#3}%
\edef\blx@tempa{%
\expandonce\blx@tempa{%
\ifcsdef{blx@pm@\detokenize{#3}}
@@ -8009,6 +8079,8 @@
\ifnum\c@multicitetotal>\@ne
\let\blx@ifcitesingle\@secondoftwo
\fi
+ \csuse{blx@hook@mcite}%
+ \csuse{blx@hook@mcite@next}%
\ifblank{#2}%
{}
{\def\abx@field@multiprenote{#2}}%
@@ -8062,6 +8134,7 @@
\def\blx@multicite#1#2#3#4{%
\begingroup
+ \csuse{blx@hook@mcite@before}%
\def\blx@tempa{#1}%
\def\blx@tempb{#2}%
\def\blx@tempc{#3}%
@@ -8322,8 +8395,11 @@
\def\ifhyperref{\blx@TE\blx@imc@ifhyperref}%
\def\ifmorenames{\blx@TE\blx@imc@ifmorenames}%
\def\ifmoreitems{\blx@TE\blx@imc@ifmoreitems}%
+ \def\iffirstcitekey{\blx@TE\blx@imc@iffirstcitekey}%
+ \def\iflastcitekey{\blx@TE\blx@imc@iflastcitekey}%
\def\ifciteseen{\blx@TE\blx@imc@ifciteseen}%
\def\ifentryseen{\blx@TE\blx@imc@ifentryseen}%
+ \def\ifentryinbib{\blx@TE\blx@imc@ifentryinbib}%
\def\ifciteibid{\blx@TE\blx@imc@ifciteibid}%
\def\ifciteidem{\blx@TE\blx@imc@ifciteidem}%
\def\ifopcit{\blx@TE\blx@imc@ifopcit}%
@@ -8338,6 +8414,7 @@
\def\iffieldequals#1#2{\blx@TE{\blx@imc@iffieldequals{#1}{#2}}}%
\def\iffieldequalstr#1#2{\blx@TE{\blx@imc@iffieldequalstr{#1}{#2}}}%
\def\iffieldsequal#1#2{\blx@TE{\blx@imc@iffieldsequal{#1}{#2}}}%
+ \def\ifbibmacroundef#1{\blx@TE{\blx@imc@ifbibmacroundef{#1}}}%
\def\iffieldundef#1{\blx@TE{\blx@imc@iffieldundef{#1}}}%
\def\ifnameequalcs#1#2{\blx@TE{\blx@imc@ifnameequalcs{#1}{#2}}}%
\def\ifnameequals#1#2{\blx@TE{\blx@imc@ifnameequals{#1}{#2}}}%
@@ -8672,35 +8749,36 @@
n\or o\or p\or q\or r\or s\or t\or u\or v\or w\or x\or y\or z\else
\blx@warning@entry{Value out of range}\number#1\fi}
-\newrobustcmd*{\volcitecmd}[1]{%
- \begingroup
- \def\blx@tempa{\endgroup#1}%
- \@ifstar
- {\appto\blx@tempa{*}%
- \blx@volcitecmd@i}
- {\blx@volcitecmd@i}}
+% {<macro>}[<pre>]{<vol>}[<post>] => <macro>{<pre>}{{<vol>}{<post>}}
+
+\newrobustcmd*{\volcitecmd}{%
+ \AtNextCite{\DeclareFieldAlias{postnote}{volcitenote}}%
+ \begingroup\let\blx@citeargs\blx@volciteargs}
-\def\blx@volcitecmd@i{%
+\protected\def\blx@volciteargs#1{%
+ \endgroup
\@ifnextchar[%]
- {\blx@volcitecmd@ii}
- {\blx@volcitecmd@ii[]}}
+ {\blx@volciteargs@i{#1}}
+ {\blx@volciteargs@i{#1}[]}}
-\def\blx@volcitecmd@ii[#1]#2{%
- \appto\blx@tempa{[#1]}%
- \blx@getformat\blx@tempb{ffd}{}{volcitevolume}%
+\long\def\blx@volciteargs@i#1[#2]#3{%
\@ifnextchar[%]
- {\blx@volcitecmd@iii{#2}}
- {\edef\blx@tempa{\expandonce\blx@tempa[{%
- \expandonce{\blx@tempb{#2}}}]}%
- \blx@tempa}}
+ {\blx@volciteargs@ii{#1}{#2}{#3}}
+ {\blx@citeargs@iii{#1{#2}{{#3}{}}}}}
-\def\blx@volcitecmd@iii#1[#2]{%
- \blx@getformat\blx@tempc{ffd}{}{volcitepages}%
- \edef\blx@tempa{\expandonce\blx@tempa[{%
- \expandonce{\blx@tempb{#1}}%
- \noexpand\volcitedelim
- \expandonce{\blx@tempc{#2}}}]}%
- \blx@tempa}
+\long\def\blx@volciteargs@ii#1#2#3[#4]{%
+ \blx@citeargs@iii{#1{#2}{{#3}{#4}}}}
+
+\newrobustcmd*{\multivolcitecmd}{%
+ \AtNextCite{\DeclareFieldAlias{postnote}{volcitenote}}%
+ \def\blx@hook@mcite@before{%
+ \global\undef\blx@hook@mcite@before
+ \let\blx@citeargs\blx@volmciteargs}}
+
+\protected\def\blx@volmciteargs#1{%
+ \@ifnextchar[%]
+ {\blx@volciteargs@i{#1}}
+ {\blx@volciteargs@i{#1}[]}}
%% Control file
@@ -8750,11 +8828,11 @@
#2%
~~~~~~</bcf:map>\blx@nl}
\xdef\blx@xml@sourcemap@perdatasource#1{%
- ~~~~~~~~<bcf:per_datasource>#1</bcf:per_datasource>\blx@nl}
+ ~~~~~~~~<bcf:per\string_datasource>#1</bcf:per\string_datasource>\blx@nl}
\xdef\blx@xml@sourcemap@pertype#1{%
- ~~~~~~~~<bcf:per_type>#1</bcf:per_type>\blx@nl}
+ ~~~~~~~~<bcf:per\string_type>#1</bcf:per\string_type>\blx@nl}
\xdef\blx@xml@sourcemap@step#1{%
- ~~~~~~~~<bcf:map_step#1/>\blx@nl}
+ ~~~~~~~~<bcf:map\string_step#1/>\blx@nl}
\xdef\blx@xml@labelalphatemplate#1#2{%
~~<bcf:labelalphatemplate type="#1">\blx@nl
@@ -8972,15 +9050,27 @@
{\eappto\blx@tempa{%
\blx@xml@comment{SOURCEMAP}%
\blx@xml@sourcemap{%
- \ifcsdef{blx@biber@sourcemap@user}{\csuse{blx@biber@sourcemap@user}}{}%
- \ifcsdef{blx@biber@sourcemap@style}{\csuse{blx@biber@sourcemap@style}}{}%
- \ifcsdef{blx@biber@sourcemap@defaults@bibtex}{\csuse{blx@biber@sourcemap@defaults@bibtex}}{}%
- \ifcsdef{blx@biber@sourcemap@defaults@biblatexml}{\csuse{blx@biber@sourcemap@defaults@biblatexml}}{}%
- \ifcsdef{blx@biber@sourcemap@defaults@endnotexml}{\csuse{blx@biber@sourcemap@defaults@endnotexml}}{}%
- \ifcsdef{blx@biber@sourcemap@defaults@ris}{\csuse{blx@biber@sourcemap@defaults@ris}}{}%
- \ifcsdef{blx@biber@sourcemap@defaults@zoterordfxml}{\csuse{blx@biber@sourcemap@defaults@zoterordfxml}}{}%
- }%
- }}
+ \ifcsdef{blx@biber@sourcemap@user}
+ {\csuse{blx@biber@sourcemap@user}}
+ {}%
+ \ifcsdef{blx@biber@sourcemap@style}
+ {\csuse{blx@biber@sourcemap@style}}
+ {}%
+ \ifcsdef{blx@biber@sourcemap@defaults@bibtex}
+ {\csuse{blx@biber@sourcemap@defaults@bibtex}}
+ {}%
+ \ifcsdef{blx@biber@sourcemap@defaults@biblatexml}
+ {\csuse{blx@biber@sourcemap@defaults@biblatexml}}
+ {}%
+ \ifcsdef{blx@biber@sourcemap@defaults@endnotexml}
+ {\csuse{blx@biber@sourcemap@defaults@endnotexml}}
+ {}%
+ \ifcsdef{blx@biber@sourcemap@defaults@ris}
+ {\csuse{blx@biber@sourcemap@defaults@ris}}
+ {}%
+ \ifcsdef{blx@biber@sourcemap@defaults@zoterordfxml}
+ {\csuse{blx@biber@sourcemap@defaults@zoterordfxml}}
+ {}}}}
{}%
% labelalpha template
\eappto\blx@tempa{%
@@ -9168,7 +9258,7 @@
\appto\blx@tempb{ level="#1"}}
\newcommand*{\blx@sourcemap@map}[2][]{%
- \let\blx@tempd\@empty
+ \let\blx@tempm\@empty
\let\blx@tempe\@empty
\let\perdatasource\blx@sourcemap@perdatasource
\let\pertype\blx@sourcemap@pertype
@@ -9178,11 +9268,11 @@
{\setkeys{blx@sourcemap@map}{#1}}%
#2%
\eappto\blx@tempc{%
- \blx@xml@sourcemap@map{\blx@tempd}{\blx@tempe}}}
+ \blx@xml@sourcemap@map{\blx@tempm}{\blx@tempe}}}
\define@key{blx@sourcemap@map}{overwrite}[true]{% true|false
\ifstrequal{#1}{true}
- {\appto\blx@tempd{ map\string_overwrite="1"}}
+ {\appto\blx@tempm{ map\string_overwrite="1"}}
{}}
\newcommand*{\blx@sourcemap@perdatasource}[1]{%
@@ -9244,6 +9334,8 @@
{}}
\define@key{blx@sourcemap@step}{match}{% characters
\appto\blx@tempf{ map\string_match="#1"}}
+\define@key{blx@sourcemap@step}{notmatch}{% characters
+ \appto\blx@tempf{ map\string_notmatch="#1"}}
\define@key{blx@sourcemap@step}{replace}{% characters
\eappto\blx@tempf{ map\string_replace="#1"}}
@@ -9606,9 +9698,12 @@
{\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##1{\blx@addtypeopt{##1}%
- \csxappto{blx@bcf@\blx@tempb @##1}{\noexpand\blx@xml@ordered{\the\blx@tempcnta}{\blx@tempc}{#2}}}%
+ {\csxappto{blx@bcf@\blx@tempb}{%
+ \noexpand\blx@xml@ordered{\the\blx@tempcnta}{\blx@tempc}{#2}}}
+ {\def\do##1{%
+ \blx@addtypeopt{##1}%
+ \csxappto{blx@bcf@\blx@tempb @##1}{%
+ \noexpand\blx@xml@ordered{\the\blx@tempcnta}{\blx@tempc}{#2}}}%
\expandafter\docsvlist\expandafter{\blx@tempa}}}
\newcommand*{\blx@orderedld@field}[2][]{%
@@ -9618,17 +9713,23 @@
{\setkeys{blx@ordered@field}{#1}}%
\advance\blx@tempcnta\@ne
\ifdefempty{\blx@tempa}
- {\csxappto{blx@bcf@\blx@tempb}{\noexpand\blx@xml@ordered{\the\blx@tempcnta}{ type="field"\blx@tempc}{#2}}}
- {\def\do##1{\blx@addtypeopt{##1}%
- \csxappto{blx@bcf@\blx@tempb @##1}{\noexpand\blx@xml@ordered{\the\blx@tempcnta}{\blx@tempc}{#2}}}%
+ {\csxappto{blx@bcf@\blx@tempb}{%
+ \noexpand\blx@xml@ordered{\the\blx@tempcnta}{ type="field"\blx@tempc}{#2}}}
+ {\def\do##1{%
+ \blx@addtypeopt{##1}%
+ \csxappto{blx@bcf@\blx@tempb @##1}{%
+ \noexpand\blx@xml@ordered{\the\blx@tempcnta}{\blx@tempc}{#2}}}%
\expandafter\docsvlist\expandafter{\blx@tempa}}}
\newcommand*{\blx@orderedld@literal}[1]{%
\advance\blx@tempcnta\@ne
\ifdefempty{\blx@tempa}
- {\csxappto{blx@bcf@\blx@tempb}{\noexpand\blx@xml@ordered{\the\blx@tempcnta}{ type="string"}{#1}}}
- {\def\do##1{\blx@addtypeopt{##1}%
- \csxappto{blx@bcf@\blx@tempb @##1}{\noexpand\blx@xml@ordered{\the\blx@tempcnta}{ type="string"}{#1}}}%
+ {\csxappto{blx@bcf@\blx@tempb}{%
+ \noexpand\blx@xml@ordered{\the\blx@tempcnta}{ type="string"}{#1}}}
+ {\def\do##1{%
+ \blx@addtypeopt{##1}%
+ \csxappto{blx@bcf@\blx@tempb @##1}{%
+ \noexpand\blx@xml@ordered{\the\blx@tempcnta}{ type="string"}{#1}}}%
\expandafter\docsvlist\expandafter{\blx@tempa}}}
\define@key{blx@ordered@field}{form}{%