diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/biblatex/latex |
Initial commit
Diffstat (limited to 'macros/latex/contrib/biblatex/latex')
106 files changed, 44144 insertions, 0 deletions
diff --git a/macros/latex/contrib/biblatex/latex/bbx/alphabetic-verb.bbx b/macros/latex/contrib/biblatex/latex/bbx/alphabetic-verb.bbx new file mode 100644 index 0000000000..d9b165af16 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/bbx/alphabetic-verb.bbx @@ -0,0 +1,6 @@ +\ProvidesFile{alphabetic-verb.bbx} +[\abx@bbxid] + +\RequireBibliographyStyle{alphabetic} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/bbx/alphabetic.bbx b/macros/latex/contrib/biblatex/latex/bbx/alphabetic.bbx new file mode 100644 index 0000000000..fa603e87ac --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/bbx/alphabetic.bbx @@ -0,0 +1,60 @@ +\ProvidesFile{alphabetic.bbx} +[\abx@bbxid] + +\RequireBibliographyStyle{standard} +\ExecuteBibliographyOptions{labelalpha,sorting=anyt} + +\providebool{bbx:subentry} + +\DeclareBiblatexOption{global,type,entry}[boolean]{subentry}[true]{% + \setbool{bbx:subentry}{#1}} + +\DeclareNameAlias{author}{default} +\DeclareNameAlias{editor}{default} +\DeclareNameAlias{translator}{default} + +\DeclareFieldFormat{bibentrysetcount}{\mkbibparens{\mknumalph{#1}}} +\DeclareFieldFormat{labelalphawidth}{\mkbibbrackets{#1}} +\DeclareFieldFormat{shorthandwidth}{\mkbibbrackets{#1}} + +\defbibenvironment{bibliography} + {\list + {\printtext[labelalphawidth]{% + \printfield{labelprefix}% + \printfield{labelalpha}% + \printfield{extraalpha}}} + {\setlength{\labelwidth}{\labelalphawidth}% + \setlength{\leftmargin}{\labelwidth}% + \setlength{\labelsep}{\biblabelsep}% + \addtolength{\leftmargin}{\labelsep}% + \setlength{\itemsep}{\bibitemsep}% + \setlength{\parsep}{\bibparsep}}% + \renewcommand*{\makelabel}[1]{##1\hss}} + {\endlist} + {\item} + +\defbibenvironment{shorthand} + {\list + {\printfield[shorthandwidth]{shorthand}} + {\setlength{\labelwidth}{\shorthandwidth}% + \setlength{\leftmargin}{\labelwidth}% + \setlength{\labelsep}{\biblabelsep}% + \addtolength{\leftmargin}{\labelsep}% + \setlength{\itemsep}{\bibitemsep}% + \setlength{\parsep}{\bibparsep}% + \renewcommand*{\makelabel}[1]{##1\hss}}} + {\endlist} + {\item} + +\DeclareBibliographyDriver{set}{% + \entryset + {\ifbool{bbx:subentry} + {\printfield[bibentrysetcount]{entrysetcount}% + \printunit*{\addnbspace}} + {}} + {}% + \newunit\newblock + \usebibmacro{setpageref}% + \finentry} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/bbx/authortitle-comp.bbx b/macros/latex/contrib/biblatex/latex/bbx/authortitle-comp.bbx new file mode 100644 index 0000000000..2db8da073c --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/bbx/authortitle-comp.bbx @@ -0,0 +1,6 @@ +\ProvidesFile{authortitle-comp.bbx} +[\abx@bbxid] + +\RequireBibliographyStyle{authortitle} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/bbx/authortitle-ibid.bbx b/macros/latex/contrib/biblatex/latex/bbx/authortitle-ibid.bbx new file mode 100644 index 0000000000..b614f26d24 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/bbx/authortitle-ibid.bbx @@ -0,0 +1,6 @@ +\ProvidesFile{authortitle-ibid.bbx} +[\abx@bbxid] + +\RequireBibliographyStyle{authortitle} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/bbx/authortitle-icomp.bbx b/macros/latex/contrib/biblatex/latex/bbx/authortitle-icomp.bbx new file mode 100644 index 0000000000..881a873437 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/bbx/authortitle-icomp.bbx @@ -0,0 +1,6 @@ +\ProvidesFile{authortitle-icomp.bbx} +[\abx@bbxid] + +\RequireBibliographyStyle{authortitle} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/bbx/authortitle-tcomp.bbx b/macros/latex/contrib/biblatex/latex/bbx/authortitle-tcomp.bbx new file mode 100644 index 0000000000..2d0015d816 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/bbx/authortitle-tcomp.bbx @@ -0,0 +1,6 @@ +\ProvidesFile{authortitle-tcomp.bbx} +[\abx@bbxid] + +\RequireBibliographyStyle{authortitle} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/bbx/authortitle-terse.bbx b/macros/latex/contrib/biblatex/latex/bbx/authortitle-terse.bbx new file mode 100644 index 0000000000..cb6b5791b5 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/bbx/authortitle-terse.bbx @@ -0,0 +1,6 @@ +\ProvidesFile{authortitle-terse.bbx} +[\abx@bbxid] + +\RequireBibliographyStyle{authortitle} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/bbx/authortitle-ticomp.bbx b/macros/latex/contrib/biblatex/latex/bbx/authortitle-ticomp.bbx new file mode 100644 index 0000000000..d466a83bdd --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/bbx/authortitle-ticomp.bbx @@ -0,0 +1,6 @@ +\ProvidesFile{authortitle-ticomp.bbx} +[\abx@bbxid] + +\RequireBibliographyStyle{authortitle} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/bbx/authortitle.bbx b/macros/latex/contrib/biblatex/latex/bbx/authortitle.bbx new file mode 100644 index 0000000000..d378cd55c4 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/bbx/authortitle.bbx @@ -0,0 +1,134 @@ +\ProvidesFile{authortitle.bbx} +[\abx@bbxid] + +\RequireBibliographyStyle{standard} +\ExecuteBibliographyOptions{pagetracker} + +\DeclareBibliographyOption[boolean]{dashed}[true]{% + \ifstrequal{#1}{true} + {\ExecuteBibliographyOptions{pagetracker}% + \renewbibmacro*{bbx:savehash}{\savefield{fullhash}{\bbx@lasthash}}} + {\renewbibmacro*{bbx:savehash}{}}} + +\DeclareFieldFormat{shorthandwidth}{#1} +\setlength{\bibitemsep}{0pt} + +\DeclareNameAlias{author}{sortname} +\DeclareNameAlias{editor}{sortname} +\DeclareNameAlias{translator}{sortname} + +\DeclareNameWrapperAlias{author}{sortname} +\DeclareNameWrapperAlias{editor}{sortname} +\DeclareNameWrapperAlias{translator}{sortname} + +\defbibenvironment{bibliography} + {\list + {} + {\setlength{\leftmargin}{\bibhang}% + \setlength{\itemindent}{-\leftmargin}% + \setlength{\itemsep}{\bibitemsep}% + \setlength{\parsep}{\bibparsep}}} + {\endlist} + {\item} + +\defbibenvironment{shorthand} + {\list + {\printfield[shorthandwidth]{shorthand}} + {\setlength{\labelwidth}{\shorthandwidth}% + \setlength{\leftmargin}{\labelwidth}% + \setlength{\labelsep}{\biblabelsep}% + \addtolength{\leftmargin}{\labelsep}% + \setlength{\itemsep}{\bibitemsep}% + \setlength{\parsep}{\bibparsep}% + \renewcommand*{\makelabel}[1]{##1\hss}}} + {\endlist} + {\item} + +\InitializeBibliographyStyle{% + \global\undef\bbx@lasthash} + +\newbibmacro*{bbx:savehash}{% + \savefield{fullhash}{\bbx@lasthash}} + +\newbool{bbx@inset} +\DeclareBibliographyDriver{set}{% + \booltrue{bbx@inset}% + \entryset{}{}% + \newunit\newblock + \usebibmacro{setpageref}% + \finentry} + +\renewbibmacro*{begrelated}{% + \booltrue{bbx@inset}} + +\renewbibmacro*{endrelated}{% + \usebibmacro*{bbx:savehash}} + +\renewbibmacro*{author}{% + \ifboolexpr{ + test \ifuseauthor + and + not test {\ifnameundef{author}} + } + {\usebibmacro{bbx:dashcheck} + {\bibnamedash} + {\printnames{author}% + \setunit{\printdelim{authortypedelim}}% + \usebibmacro{bbx:savehash}}% + \usebibmacro{authorstrg}} + {\global\undef\bbx@lasthash}} + +\renewbibmacro*{editor}{% + \usebibmacro{bbx:editor}{editorstrg}} +\renewbibmacro*{editor+others}{% + \usebibmacro{bbx:editor}{editor+othersstrg}} +\newbibmacro*{bbx:editor}[1]{% + \ifboolexpr{ + test \ifuseeditor + and + not test {\ifnameundef{editor}} + } + {\usebibmacro{bbx:dashcheck} + {\bibnamedash} + {\printnames{editor}% + \setunit{\printdelim{editortypedelim}}% + \usebibmacro{bbx:savehash}}% + \usebibmacro{#1}% + \clearname{editor}} + {\global\undef\bbx@lasthash}} + +\renewbibmacro*{translator}{% + \usebibmacro{bbx:translator}{translatorstrg}} +\renewbibmacro*{translator+others}{% + \usebibmacro{bbx:translator}{translator+othersstrg}} +\newbibmacro*{bbx:translator}[1]{% + \ifboolexpr{ + test \ifusetranslator + and + not test {\ifnameundef{translator}} + } + {\usebibmacro{bbx:dashcheck} + {\bibnamedash} + {\printnames{translator}% + \setunit{\printdelim{translatortypedelim}}% + \usebibmacro{bbx:savehash}}% + \usebibmacro{#1}% + \clearname{translator}} + {\global\undef\bbx@lasthash}} + +\newbibmacro*{bbx:dashcheck}[2]{% + \ifboolexpr{ + test {\iffieldequals{fullhash}{\bbx@lasthash}} + and + not test \iffirstonpage + and + ( + not bool {bbx@inset} + or + test {\iffieldequalstr{entrysetcount}{1}} + ) + } + {#1} + {#2}} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/bbx/authoryear-comp.bbx b/macros/latex/contrib/biblatex/latex/bbx/authoryear-comp.bbx new file mode 100644 index 0000000000..46817d906c --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/bbx/authoryear-comp.bbx @@ -0,0 +1,6 @@ +\ProvidesFile{authoryear-comp.bbx} +[\abx@bbxid] + +\RequireBibliographyStyle{authoryear} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/bbx/authoryear-ibid.bbx b/macros/latex/contrib/biblatex/latex/bbx/authoryear-ibid.bbx new file mode 100644 index 0000000000..252d31f006 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/bbx/authoryear-ibid.bbx @@ -0,0 +1,6 @@ +\ProvidesFile{authoryear-ibid.bbx} +[\abx@bbxid] + +\RequireBibliographyStyle{authoryear} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/bbx/authoryear-icomp.bbx b/macros/latex/contrib/biblatex/latex/bbx/authoryear-icomp.bbx new file mode 100644 index 0000000000..38068b6ae3 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/bbx/authoryear-icomp.bbx @@ -0,0 +1,6 @@ +\ProvidesFile{authoryear-icomp.bbx} +[\abx@bbxid] + +\RequireBibliographyStyle{authoryear} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/bbx/authoryear.bbx b/macros/latex/contrib/biblatex/latex/bbx/authoryear.bbx new file mode 100644 index 0000000000..d8e156cd36 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/bbx/authoryear.bbx @@ -0,0 +1,293 @@ +\ProvidesFile{authoryear.bbx} +[\abx@bbxid] + +\RequireBibliographyStyle{standard} + +\DeclareBibliographyOption[boolean]{dashed}[true]{% + \ifstrequal{#1}{true} + {\ExecuteBibliographyOptions{pagetracker}% + \renewbibmacro*{bbx:savehash}{\savefield{fullhash}{\bbx@lasthash}}} + {\renewbibmacro*{bbx:savehash}{}}} + +\DeclareBiblatexOption{global,type,entry}[boolean]{mergedate}[true]{% + \ifcsdef{bbx@opt@mergedate@#1} + {\csuse{bbx@opt@mergedate@#1}} + {\PackageError{biblatex} + {Invalid option 'mergedate=#1'} + {Valid values are 'maximum', 'compact', 'basic', 'minimum',\MessageBreak + 'true' (=compact), and 'false'.}}} + +\providebibmacro*{date+extradate}{} +\providebibmacro*{date+extrayear}{% + \blx@warning{bibmacro 'date+extrayear' is deprecated.\MessageBreak + Please use 'date+extradate'.\MessageBreak + Using 'date+extradate' instead}% + \usebibmacro{date+extradate}} + +\newbibmacro*{bbx:ifmergeddate}{\@secondoftwo} + +\renewbibmacro*{date}{% + \usebibmacro{bbx:ifmergeddate} + {} + {\printdate}}% + +\def\bbx@opt@mergedate@true{\bbx@opt@mergedate@compact} + +% merge date/issue with date label +\def\bbx@opt@mergedate@maximum{% + \renewbibmacro*{date+extradate}{% + \iffieldundef{labelyear} + {} + {\printtext[parens]{% + \iflabeldateisdate + {\printfield{issue}% + \setunit*{\addspace}% + \printdateextra} + {\printlabeldateextra}}}}% + \renewbibmacro*{bbx:ifmergeddate}{\iflabeldateisdate}% + \renewbibmacro*{issue+date}{% + \usebibmacro{bbx:ifmergeddate} + {} + {\printtext[parens]{% + \printfield{issue}% + \setunit*{\addspace}% + \printdate}}}} + +% merge date with date label +\def\bbx@opt@mergedate@compact{% + \renewbibmacro*{date+extradate}{% + \iffieldundef{labelyear} + {} + {\printtext[parens]{% + \iflabeldateisdate + {\printdateextra} + {\printlabeldateextra}}}}% + \renewbibmacro*{bbx:ifmergeddate}{\iflabeldateisdate}% + \renewbibmacro*{issue+date}{% + \ifboolexpr{test {\usebibmacro{bbx:ifmergeddate}} + and + test {\iffieldundef{issue}}} + {} + {\printtext[parens]{% + \printfield{issue}% + \setunit*{\addspace}% + \usebibmacro{bbx:ifmergeddate} + {} + {\printdate}}}% + \newunit}} + +% merge year-only date with date label +\def\bbx@opt@mergedate@basic{% + \renewbibmacro*{date+extradate}{% + \iffieldundef{labelyear} + {} + {\printtext[parens]{\printlabeldateextra}}}% + \renewbibmacro*{bbx:ifmergeddate}{% + \ifboolexpr{ + test {\iflabeldateisdate} + and + not test {\ifdateshavedifferentprecision{label}{}} + }% + }% + \renewbibmacro*{issue+date}{% + \ifboolexpr{ + test {\usebibmacro{bbx:ifmergeddate}} + and + test {\iffieldundef{issue}} + } + {} + {\printtext[parens]{% + \printfield{issue}% + \setunit*{\addspace}% + \printdate}}% + \newunit}} + +% merge year-only date with year-only date label +\def\bbx@opt@mergedate@minimum{% + \renewbibmacro*{date+extradate}{% + \iffieldundef{labelyear} + {} + {\printtext[parens]{\printlabeldateextra}}}% + \renewbibmacro*{bbx:ifmergeddate}{% + \ifboolexpr{ + test {\iflabeldateisdate} + and + not test {\ifdateshavedifferentprecision{label}{}} + and + test {\iffieldundef{extradate}} + }% + }% + \renewbibmacro*{issue+date}{% + \ifboolexpr{ + test {\usebibmacro{bbx:ifmergeddate}} + and + test {\iffieldundef{issue}} + } + {} + {\printtext[parens]{% + \printfield{issue}% + \setunit*{\addspace}% + \printdate}}% + \newunit}} + +% don't merge date/issue with date label +\def\bbx@opt@mergedate@false{% + \renewbibmacro*{date+extradate}{% + \iffieldundef{labelyear} + {} + {\printtext[parens]{\printlabeldateextra}}}% + \renewbibmacro*{bbx:ifmergeddate}{\@secondoftwo}% + \renewbibmacro*{issue+date}{% + \printtext[parens]{% + \printfield{issue}% + \setunit*{\addspace}% + \usebibmacro{date}}% + \newunit}} + +\ExecuteBibliographyOptions{labeldateparts,sorting=nyt,pagetracker,mergedate} + +\DeclareFieldFormat{shorthandwidth}{#1} +\setlength{\bibitemsep}{0pt} + +\DeclareNameAlias{author}{sortname} +\DeclareNameAlias{editor}{sortname} +\DeclareNameAlias{translator}{sortname} + +\DeclareNameWrapperAlias{author}{sortname} +\DeclareNameWrapperAlias{editor}{sortname} +\DeclareNameWrapperAlias{translator}{sortname} + +\defbibenvironment{bibliography} + {\list + {} + {\setlength{\leftmargin}{\bibhang}% + \setlength{\itemindent}{-\leftmargin}% + \setlength{\itemsep}{\bibitemsep}% + \setlength{\parsep}{\bibparsep}}} + {\endlist} + {\item} + +\defbibenvironment{shorthand} + {\list + {\printfield[shorthandwidth]{shorthand}} + {\setlength{\labelwidth}{\shorthandwidth}% + \setlength{\leftmargin}{\labelwidth}% + \setlength{\labelsep}{\biblabelsep}% + \addtolength{\leftmargin}{\labelsep}% + \setlength{\itemsep}{\bibitemsep}% + \setlength{\parsep}{\bibparsep}% + \renewcommand*{\makelabel}[1]{##1\hss}}} + {\endlist} + {\item} + +\InitializeBibliographyStyle{\global\undef\bbx@lasthash} + +\newbibmacro*{bbx:savehash}{% + \savefield{fullhash}{\bbx@lasthash}} + +\newbool{bbx@inset} +\DeclareBibliographyDriver{set}{% + \booltrue{bbx@inset}% + \entryset{}{}% + \newunit\newblock + \usebibmacro{setpageref}% + \finentry} + +\renewbibmacro*{begrelated}{% + \booltrue{bbx@inset}} + +\renewbibmacro*{endrelated}{% + \usebibmacro*{bbx:savehash}} + +\renewbibmacro*{author}{% + \ifboolexpr{ + test \ifuseauthor + and + not test {\ifnameundef{author}} + } + {\usebibmacro{bbx:dashcheck} + {\bibnamedash} + {\usebibmacro{bbx:savehash}% + \printnames{author}% + \iffieldundef{authortype} + {\setunit{\printdelim{nameyeardelim}}} + {\setunit{\printdelim{authortypedelim}}}}% + \iffieldundef{authortype} + {} + {\usebibmacro{authorstrg}% + \setunit{\printdelim{nameyeardelim}}}}% + {\global\undef\bbx@lasthash + \usebibmacro{labeltitle}% + \setunit*{\printdelim{nonameyeardelim}}}% + \usebibmacro{date+extradate}} + +\renewbibmacro*{editor}{% + \usebibmacro{bbx:editor}{editorstrg}} +\renewbibmacro*{editor+others}{% + \usebibmacro{bbx:editor}{editor+othersstrg}} +\newbibmacro*{bbx:editor}[1]{% + \ifboolexpr{ + test \ifuseeditor + and + not test {\ifnameundef{editor}} + } + {\usebibmacro{bbx:dashcheck} + {\bibnamedash} + {\printnames{editor}% + \setunit{\printdelim{editortypedelim}}% + \usebibmacro{bbx:savehash}}% + \usebibmacro{#1}% + \clearname{editor}% + \setunit{\printdelim{nameyeardelim}}}% + {\global\undef\bbx@lasthash + \usebibmacro{labeltitle}% + \setunit*{\printdelim{nonameyeardelim}}}% + \usebibmacro{date+extradate}} + +\renewbibmacro*{translator}{% + \usebibmacro{bbx:translator}{translatorstrg}} +\renewbibmacro*{translator+others}{% + \usebibmacro{bbx:translator}{translator+othersstrg}} +\newbibmacro*{bbx:translator}[1]{% + \ifboolexpr{ + test \ifusetranslator + and + not test {\ifnameundef{translator}} + } + {\usebibmacro{bbx:dashcheck} + {\bibnamedash} + {\printnames{translator}% + \setunit{\printdelim{translatortypedelim}}% + \usebibmacro{bbx:savehash}}% + \usebibmacro{#1}% + \clearname{translator}% + \setunit{\printdelim{nameyeardelim}}}% + {\global\undef\bbx@lasthash + \usebibmacro{labeltitle}% + \setunit*{\printdelim{nonameyeardelim}}}% + \usebibmacro{date+extradate}} + +\newbibmacro*{bbx:dashcheck}[2]{% + \ifboolexpr{ + test {\iffieldequals{fullhash}{\bbx@lasthash}} + and + not test \iffirstonpage + and + ( + not bool {bbx@inset} + or + test {\iffieldequalstr{entrysetcount}{1}} + ) + } + {#1} + {#2}} + +\newbibmacro*{labeltitle}{% + \iffieldundef{label} + {\iffieldundef{shorttitle} + {\printfield{title}% + \clearfield{title}} + {\printfield[title]{shorttitle}}} + {\printfield{label}}} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/bbx/debug.bbx b/macros/latex/contrib/biblatex/latex/bbx/debug.bbx new file mode 100644 index 0000000000..c9e5145727 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/bbx/debug.bbx @@ -0,0 +1,111 @@ +\ProvidesFile{debug.bbx} +[\abx@bbxid] + +\ExecuteBibliographyOptions{sorting=debug} +\DeclareFieldFormat{entrykey}{\ttfamily[#1]} +\DeclareFieldFormat{shorthandwidth}{#1} + +\defbibenvironment{bibliography} + {\list + {} + {\setlength{\leftmargin}{8em}% + \setlength{\itemindent}{-\leftmargin}% + \setlength{\itemsep}{0pt}% + \setlength{\parsep}{0pt}% + \interlinepenalty\@M + \raggedbottom\raggedright + \frenchspacing + \normalfont\footnotesize}} + {\endlist} + {\item} + +\defbibenvironment{shorthand} + {\list + {\printfield[shorthandwidth]{shorthand}} + {\setlength{\labelwidth}{8em}% + \setlength{\leftmargin}{\labelwidth}% + \addtolength{\labelwidth}{-\labelsep}% + \setlength{\itemsep}{0pt}% + \setlength{\parsep}{0pt}% + \renewcommand*{\makelabel}[1]{##1\hss}% + \interlinepenalty\@M + \raggedbottom\raggedright + \frenchspacing + \normalfont\footnotesize}} + {\endlist} + {\item} + +\@ifpackageloaded{biblatex_legacy} + {\DeclareNameFormat{debug}{% + \bbx@mklabel{\currentname}% + \ifblank{#3}{}{\detokenize{#3}\space}% + \ifblank{#5}{}{\detokenize{#5}\ifpunctmark{'}{}{\space}}% + \detokenize{#1}% + \ifblank{#7}{}{\space\detokenize{#7}}% + \ifblank{#3}{}{\bbx@mksublabel{given}\detokenize{#3}}% + \ifblank{#1}{}{\bbx@mksublabel{family}\detokenize{#1}}% + \ifblank{#5}{}{\bbx@mksublabel{prefix}\detokenize{#5}}% + \ifblank{#7}{}{\bbx@mksublabel{affix}\detokenize{#7}}% + \bbx@mksublabel{inits}% + \ifblank{#4}{}{\detokenize{#4}\space}% + \ifblank{#6}{}{\detokenize{#6}\ifpunctmark{'}{}{\space}}% + \detokenize{#2}% + \ifblank{#8}{}{\space\detokenize{#8}}}} + {\DeclareNameFormat{debug}{% + \bbx@mklabel{\currentname}% + \ifdefvoid{\namepartgiven}{}{\expandafter\detokenize\expandafter{\namepartgiven}\space}% + \ifdefvoid{\namepartprefix}{}{\expandafter\detokenize\expandafter{\namepartprefix}\ifpunctmark{'}{}{\space}}% + \expandafter\detokenize\expandafter{\namepartfamily}% + \ifdefvoid{\namepartsuffix}{}{\expandafter\space\expandafter\detokenize\expandafter{\namepartsuffix}}% + \ifdefvoid{\namepartgiven}{}{\bbx@mksublabel{given}\expandafter\detokenize\expandafter{\namepartgiven}}% + \ifdefvoid{\namepartfamily}{}{\bbx@mksublabel{family}\expandafter\detokenize\expandafter{\namepartfamily}}% + \ifdefvoid{\namepartprefix}{}{\bbx@mksublabel{prefix}\expandafter\detokenize\expandafter{\namepartprefix}}% + \ifdefvoid{\namepartsuffix}{}{\bbx@mksublabel{suffix}\expandafter\detokenize\expandafter{\namepartsuffix}}% + \bbx@mksublabel{inits}% + \ifdefvoid{\namepartgiveni}{}{\expandafter\detokenize\expandafter{\namepartgiveni}\space}% + \ifdefvoid{\namepartprefixi}{}{\expandafter\detokenize\expandafter{\namepartprefixi}\ifpunctmark{'}{}{\space}}% + \expandafter\detokenize\expandafter{\namepartfamilyi}% + \ifdefvoid{\namepartsuffixi}{}{\expandafter\space\expandafter\detokenize\expandafter{\namepartsuffixi}}}} + +\DeclareListFormat{debug}{% + \bbx@mklabel{\currentlist}% + \detokenize{#1}} + +\DeclareFieldFormat{debug}{% + \bbx@mklabel{\currentfield}% + \detokenize{#1}} + +\newcommand*{\bbx@mklabel}[1]{% + \item + \makebox[\leftmargin][l]{\ttfamily [#1]}} + +\newcommand*{\bbx@mksublabel}[1]{% + \par\nobreak + \makebox[6em][l]{\ttfamily [#1]}} + +\DeclareBibliographyDriver{debug}{% + \item\begingroup\ttfamily\leavevmode + \xleaders\hbox to 0.75em{\hss-\hss}\hfill\kern\z@ + \space\printfield{entrykey}\space + \xleaders\hbox to 0.75em{\hss-\hss}\hfill\kern\z@ + \endgroup + \def\do{\printnames[debug][-\thelisttotal]}% + \abx@donames + \def\do{\printlist[debug][-\thelisttotal]}% + \abx@dolists + \def\do{\printfield[debug]}% + \abx@dointernalfields + \abx@dofields\do{options}\do{execute}% + \item\begingroup\ttfamily\leavevmode + \xleaders\hbox to 0.75em{\hss-\hss}\hfill\kern\z@ + \endgroup + \clearpage} + +\def\do#1{\DeclareBibliographyAlias{#1}{debug}} +\abx@doentrytypes +\do{*} + +\DeclareBibliographyDriver{shorthand}{% + \texttt{\printfield{entrykey}}} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/bbx/draft.bbx b/macros/latex/contrib/biblatex/latex/bbx/draft.bbx new file mode 100644 index 0000000000..1c57325157 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/bbx/draft.bbx @@ -0,0 +1,38 @@ +\ProvidesFile{draft.bbx} +[\abx@bbxid] + +\RequireBibliographyStyle{standard} +\ExecuteBibliographyOptions{sorting=debug} + +\DeclareNameAlias{author}{default} +\DeclareNameAlias{editor}{default} +\DeclareNameAlias{translator}{default} + +\DeclareFieldFormat{shorthandwidth}{#1} + +\defbibenvironment{bibliography} + {\list + {\printfield{entrykey}} + {\setlength{\labelwidth}{0pt}% + \setlength{\itemindent}{-\leftmargin}% + \setlength{\itemsep}{\bibitemsep}% + \setlength{\parsep}{\bibparsep}% + \renewcommand*{\makelabel}[1]{% + \hspace\labelsep\bfseries##1}}} + {\endlist} + {\item} + +\defbibenvironment{shorthand} + {\list + {\printfield[shorthandwidth]{shorthand}} + {\setlength{\labelwidth}{\shorthandwidth}% + \setlength{\leftmargin}{\labelwidth}% + \setlength{\labelsep}{\biblabelsep}% + \addtolength{\leftmargin}{\labelsep}% + \setlength{\itemsep}{\bibitemsep}% + \setlength{\parsep}{\bibparsep}% + \renewcommand*{\makelabel}[1]{##1\hss}}} + {\endlist} + {\item} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/bbx/numeric-comp.bbx b/macros/latex/contrib/biblatex/latex/bbx/numeric-comp.bbx new file mode 100644 index 0000000000..0a4be7f580 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/bbx/numeric-comp.bbx @@ -0,0 +1,6 @@ +\ProvidesFile{numeric-comp.bbx} +[\abx@bbxid] + +\RequireBibliographyStyle{numeric} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/bbx/numeric-verb.bbx b/macros/latex/contrib/biblatex/latex/bbx/numeric-verb.bbx new file mode 100644 index 0000000000..f5788bf24c --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/bbx/numeric-verb.bbx @@ -0,0 +1,6 @@ +\ProvidesFile{numeric-verb.bbx} +[\abx@bbxid] + +\RequireBibliographyStyle{numeric} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/bbx/numeric.bbx b/macros/latex/contrib/biblatex/latex/bbx/numeric.bbx new file mode 100644 index 0000000000..4bf46c3ff8 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/bbx/numeric.bbx @@ -0,0 +1,59 @@ +\ProvidesFile{numeric.bbx} +[\abx@bbxid] + +\RequireBibliographyStyle{standard} +\ExecuteBibliographyOptions{labelnumber} + +\providebool{bbx:subentry} + +\DeclareBiblatexOption{global,type,entry}[boolean]{subentry}[true]{% + \setbool{bbx:subentry}{#1}} + +\DeclareNameAlias{author}{default} +\DeclareNameAlias{editor}{default} +\DeclareNameAlias{translator}{default} + +\DeclareFieldFormat{bibentrysetcount}{\mkbibparens{\mknumalph{#1}}} +\DeclareFieldFormat{labelnumberwidth}{\mkbibbrackets{#1}} +\DeclareFieldFormat{shorthandwidth}{\mkbibbrackets{#1}} + +\defbibenvironment{bibliography} + {\list + {\printtext[labelnumberwidth]{% + \printfield{labelprefix}% + \printfield{labelnumber}}} + {\setlength{\labelwidth}{\labelnumberwidth}% + \setlength{\leftmargin}{\labelwidth}% + \setlength{\labelsep}{\biblabelsep}% + \addtolength{\leftmargin}{\labelsep}% + \setlength{\itemsep}{\bibitemsep}% + \setlength{\parsep}{\bibparsep}}% + \renewcommand*{\makelabel}[1]{\hss##1}} + {\endlist} + {\item} + +\defbibenvironment{shorthand} + {\list + {\printfield[shorthandwidth]{shorthand}} + {\setlength{\labelwidth}{\shorthandwidth}% + \setlength{\leftmargin}{\labelwidth}% + \setlength{\labelsep}{\biblabelsep}% + \addtolength{\leftmargin}{\labelsep}% + \setlength{\itemsep}{\bibitemsep}% + \setlength{\parsep}{\bibparsep}% + \renewcommand*{\makelabel}[1]{\hss##1}}} + {\endlist} + {\item} + +\DeclareBibliographyDriver{set}{% + \entryset + {\ifbool{bbx:subentry} + {\printfield[bibentrysetcount]{entrysetcount}% + \printunit*{\addnbspace}} + {}} + {}% + \newunit\newblock + \usebibmacro{setpageref}% + \finentry} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/bbx/reading.bbx b/macros/latex/contrib/biblatex/latex/bbx/reading.bbx new file mode 100644 index 0000000000..547510c37d --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/bbx/reading.bbx @@ -0,0 +1,173 @@ +\ProvidesFile{reading.bbx} +[\abx@bbxid] + +\RequireBibliographyStyle{standard} + +\DeclareNameAlias{author}{default} +\DeclareNameAlias{editor}{default} +\DeclareNameAlias{translator}{default} + +\DeclareFieldFormat{entrykey}{\mbox{\bfseries#1}} +\DeclareFieldFormat{annotation}{\bibstring{annotation}\addcolon\space #1} +\DeclareFieldFormat{abstract}{\bibstring{abstract}\addcolon\space #1} +\DeclareFieldFormat{library}{\bibstring{library}\addcolon\space #1} +\DeclareFieldFormat{file}{\bibstring{file}\addcolon\space \url{#1}} +\DeclareFieldFormat{shorthandwidth}{#1} + +\InitializeBibliographyStyle{% + \global\undef\bbx@lasthash} + +\setlength{\bibitemsep}{0.5\baselineskip} +\setlength{\bibparsep}{0pt} + +\defbibenvironment{bibliography} + {\list + {} + {\setlength{\leftmargin}{0pt}% + \setlength{\itemindent}{0pt}% + \setlength{\itemsep}{\bibitemsep}% + \setlength{\parsep}{\bibparsep}}} + {\endlist} + {\bbx@item} + +\defbibenvironment{shorthand} + {\list + {\printfield[shorthandwidth]{shorthand}} + {\setlength{\labelwidth}{\shorthandwidth}% + \setlength{\leftmargin}{\labelwidth}% + \setlength{\labelsep}{\biblabelsep}% + \addtolength{\leftmargin}{\labelsep}% + \setlength{\itemsep}{\bibitemsep}% + \setlength{\parsep}{\bibparsep}% + \renewcommand*{\makelabel}[1]{##1\hss}}} + {\endlist} + {\item} + +\def\bbx@item@false{% + \itemsep2\bibitemsep + \item\relax + \itemsep\bibitemsep} + +\def\bbx@item@true{% + \bbx@item@full} + +\def\bbx@item@full{% + \itemsep2\bibitemsep + \@itempenalty\z@ + \item\relax + \begingroup + \samepage\bfseries + \def\finentrypunct{\strut}% + \usebibmacro{entryhead:full}% + \ifbool{bbx:entrykey} + {\def\newblockpunct{% + \nobreak\hskip\z@skip\strut + \hfill\penalty100\hskip1em\relax + \hbox{}\nobreak\hfill\strut}% + \def\finentrypunct{% + \parfillskip\z@\finalhyphendemerits\z@ + \par\nobreak}% + \newblock + \printfield{entrykey}} + {}% + \finentry + \endgroup + \hrule height 1.25pt\relax + \itemsep\bibitemsep + \@itempenalty\@M + \item\strut + \@itempenalty\z@} + +\def\bbx@item@name{% + \iffieldequals{fullhash}{\bbx@lasthash} + {\bbx@item@false} + {\itemsep2\bibitemsep + \@itempenalty\z@ + \item\relax + \begingroup + \samepage\bfseries + \def\finentrypunct{\strut}% + \usebibmacro{entryhead:name}% + \finentry + \endgroup + \hrule height 1.25pt\relax + \itemsep\bibitemsep + \@itempenalty\@M + \item\strut + \@itempenalty\z@}} + +\newbool{bbx:entrykey} +\newbool{bbx:annotation} +\newbool{bbx:abstract} +\newbool{bbx:library} +\newbool{bbx:file} + +\DeclareBiblatexOption{global,type,entry}[boolean]{entryhead}[true]{% + \ifcsdef{bbx@item@#1} + {\letcs\bbx@item{bbx@item@#1}} + {\PackageError{biblatex} + {Invalid option 'header=#1'} + {Valid values: header=true, false, full, name.}}} +\DeclareBiblatexOption{global,type,entry}[boolean]{entrykey}[true]{% + \setbool{bbx:entrykey}{#1}} +\DeclareBiblatexOption{global,type,entry}[boolean]{annotation}[true]{% + \setbool{bbx:annotation}{#1}} +\DeclareBiblatexOption{global,type,entry}[boolean]{abstract}[true]{% + \setbool{bbx:abstract}{#1}} +\DeclareBiblatexOption{global,type,entry}[boolean]{library}[true]{% + \setbool{bbx:library}{#1}} +\DeclareBiblatexOption{global,type,entry}[boolean]{file}[true]{% + \setbool{bbx:file}{#1}} + +\ExecuteBibliographyOptions{loadfiles,entryhead,entrykey,annotation,abstract,library,file} + +\newbibmacro*{entryhead:full}{% + \printnames[labelname][-1]{labelname}% + \setunit*{\addcolon\space}% + \printfield{labeltitle}} + +\newbibmacro*{entryhead:name}{% + \ifnameundef{labelname} + {\printfield{labeltitle}} + {\printnames[labelname]{labelname}}% + \savefield{fullhash}{\bbx@lasthash}} + +\newbibmacro*{entrytail}{% + \newunit\newblock + \begingroup + \def\newblockpunct{\item}% + \ifbool{bbx:annotation} + {\usebibmacro{annotation}% + \newunit\newblock} + {}% + \ifbool{bbx:abstract} + {\usebibmacro{abstract}% + \newunit\newblock} + {}% + \ifbool{bbx:file} + {\printfield{file}% + \newunit\newblock} + {}% + \ifbool{bbx:library} + {\printfield{library}% + \newunit\newblock} + {}% + \endgroup} + +\renewbibmacro*{finentry}{% + \ifbibliography + {\usebibmacro{entrytail}} + {}% + \finentry} + +\DeclareBibliographyDriver{set}{% + \renewbibmacro*{finentry}{\finentry}% + \entryset{}{}% + \newunit\newblock + \usebibmacro{setpageref}% + \ifbibliography + {\usebibmacro{entrytail}} + {}% + \finentry} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/bbx/standard.bbx b/macros/latex/contrib/biblatex/latex/bbx/standard.bbx new file mode 100644 index 0000000000..3046bd10e8 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/bbx/standard.bbx @@ -0,0 +1,1006 @@ +\ProvidesFile{standard.bbx} +[\abx@bbxid] + +\newtoggle{bbx:isbn} +\newtoggle{bbx:url} +\newtoggle{bbx:doi} +\newtoggle{bbx:eprint} +\newtoggle{bbx:related} + +\DeclareBiblatexOption{global,type,entry}[boolean]{isbn}[true]{% + \settoggle{bbx:isbn}{#1}} +\DeclareBiblatexOption{global,type,entry}[boolean]{url}[true]{% + \settoggle{bbx:url}{#1}} +\DeclareBiblatexOption{global,type,entry}[boolean]{doi}[true]{% + \settoggle{bbx:doi}{#1}} +\DeclareBiblatexOption{global,type,entry}[boolean]{eprint}[true]{% + \settoggle{bbx:eprint}{#1}} +\DeclareBiblatexOption{global,type,entry}[boolean]{related}[true]{% + \settoggle{bbx:related}{#1}} + +\ExecuteBibliographyOptions{isbn,url,doi,eprint,related} + +\newbibmacro*{begentry}{} +\newbibmacro*{finentry}{\finentry} + +\DeclareBibliographyDriver{article}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{author/translator+others}% + \setunit{\printdelim{nametitledelim}}\newblock + \usebibmacro{title}% + \newunit + \printlist{language}% + \newunit\newblock + \usebibmacro{byauthor}% + \newunit\newblock + \usebibmacro{bytranslator+others}% + \newunit\newblock + \printfield{version}% + \newunit\newblock + \usebibmacro{in:}% + \usebibmacro{journal+issuetitle}% + \newunit + \usebibmacro{byeditor+others}% + \newunit + \usebibmacro{note+pages}% + \newunit\newblock + \iftoggle{bbx:isbn} + {\printfield{issn}} + {}% + \newunit\newblock + \usebibmacro{doi+eprint+url}% + \newunit\newblock + \usebibmacro{addendum+pubstate}% + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \newunit\newblock + \iftoggle{bbx:related} + {\usebibmacro{related:init}% + \usebibmacro{related}} + {}% + \usebibmacro{finentry}} + +\DeclareBibliographyDriver{book}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{author/editor+others/translator+others}% + \setunit{\printdelim{nametitledelim}}\newblock + \usebibmacro{maintitle+title}% + \newunit + \printlist{language}% + \newunit\newblock + \usebibmacro{byauthor}% + \newunit\newblock + \usebibmacro{byeditor+others}% + \newunit\newblock + \printfield{edition}% + \newunit + \iffieldundef{maintitle} + {\printfield{volume}% + \printfield{part}} + {}% + \newunit + \printfield{volumes}% + \newunit\newblock + \usebibmacro{series+number}% + \newunit\newblock + \printfield{note}% + \newunit\newblock + \usebibmacro{publisher+location+date}% + \newunit\newblock + \usebibmacro{chapter+pages}% + \newunit + \printfield{pagetotal}% + \newunit\newblock + \iftoggle{bbx:isbn} + {\printfield{isbn}} + {}% + \newunit\newblock + \usebibmacro{doi+eprint+url}% + \newunit\newblock + \usebibmacro{addendum+pubstate}% + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \newunit\newblock + \iftoggle{bbx:related} + {\usebibmacro{related:init}% + \usebibmacro{related}} + {}% + \usebibmacro{finentry}} + +\DeclareBibliographyDriver{booklet}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{author/editor+others/translator+others}% + \setunit{\printdelim{nametitledelim}}\newblock + \usebibmacro{title}% + \newunit + \printlist{language}% + \newunit\newblock + \usebibmacro{byauthor}% + \newunit\newblock + \usebibmacro{byeditor+others}% + \newunit\newblock + \printfield{howpublished}% + \newunit\newblock + \printfield{type}% + \newunit\newblock + \printfield{note}% + \newunit\newblock + \usebibmacro{location+date}% + \newunit\newblock + \usebibmacro{chapter+pages}% + \newunit + \printfield{pagetotal}% + \newunit\newblock + \usebibmacro{doi+eprint+url}% + \newunit\newblock + \usebibmacro{addendum+pubstate}% + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \newunit\newblock + \iftoggle{bbx:related} + {\usebibmacro{related:init}% + \usebibmacro{related}} + {}% + \usebibmacro{finentry}} + +\DeclareBibliographyDriver{collection}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{editor+others}% + \setunit{\printdelim{nametitledelim}}\newblock + \usebibmacro{maintitle+title}% + \newunit + \printlist{language}% + \newunit\newblock + \usebibmacro{byeditor+others}% + \newunit\newblock + \printfield{edition}% + \newunit + \iffieldundef{maintitle} + {\printfield{volume}% + \printfield{part}} + {}% + \newunit + \printfield{volumes}% + \newunit\newblock + \usebibmacro{series+number}% + \newunit\newblock + \printfield{note}% + \newunit\newblock + \usebibmacro{publisher+location+date}% + \newunit\newblock + \usebibmacro{chapter+pages}% + \newunit + \printfield{pagetotal}% + \newunit\newblock + \iftoggle{bbx:isbn} + {\printfield{isbn}} + {}% + \newunit\newblock + \usebibmacro{doi+eprint+url}% + \newunit\newblock + \usebibmacro{addendum+pubstate}% + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \newunit\newblock + \iftoggle{bbx:related} + {\usebibmacro{related:init}% + \usebibmacro{related}} + {}% + \usebibmacro{finentry}} + +\DeclareBibliographyDriver{inbook}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{author/translator+others}% + \setunit{\printdelim{nametitledelim}}\newblock + \usebibmacro{title}% + \newunit + \printlist{language}% + \newunit\newblock + \usebibmacro{byauthor}% + \newunit\newblock + \usebibmacro{in:}% + \usebibmacro{bybookauthor}% + \newunit\newblock + \usebibmacro{maintitle+booktitle}% + \newunit\newblock + \usebibmacro{byeditor+others}% + \newunit\newblock + \printfield{edition}% + \newunit + \iffieldundef{maintitle} + {\printfield{volume}% + \printfield{part}} + {}% + \newunit + \printfield{volumes}% + \newunit\newblock + \usebibmacro{series+number}% + \newunit\newblock + \printfield{note}% + \newunit\newblock + \usebibmacro{publisher+location+date}% + \newunit\newblock + \usebibmacro{chapter+pages}% + \newunit\newblock + \iftoggle{bbx:isbn} + {\printfield{isbn}} + {}% + \newunit\newblock + \usebibmacro{doi+eprint+url}% + \newunit\newblock + \usebibmacro{addendum+pubstate}% + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \newunit\newblock + \iftoggle{bbx:related} + {\usebibmacro{related:init}% + \usebibmacro{related}} + {}% + \usebibmacro{finentry}} + +\DeclareBibliographyDriver{incollection}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{author/translator+others}% + \setunit{\printdelim{nametitledelim}}\newblock + \usebibmacro{title}% + \newunit + \printlist{language}% + \newunit\newblock + \usebibmacro{byauthor}% + \newunit\newblock + \usebibmacro{in:}% + \usebibmacro{maintitle+booktitle}% + \newunit\newblock + \usebibmacro{byeditor+others}% + \newunit\newblock + \printfield{edition}% + \newunit + \iffieldundef{maintitle} + {\printfield{volume}% + \printfield{part}} + {}% + \newunit + \printfield{volumes}% + \newunit\newblock + \usebibmacro{series+number}% + \newunit\newblock + \printfield{note}% + \newunit\newblock + \usebibmacro{publisher+location+date}% + \newunit\newblock + \usebibmacro{chapter+pages}% + \newunit\newblock + \iftoggle{bbx:isbn} + {\printfield{isbn}} + {}% + \newunit\newblock + \usebibmacro{doi+eprint+url}% + \newunit\newblock + \usebibmacro{addendum+pubstate}% + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \newunit\newblock + \iftoggle{bbx:related} + {\usebibmacro{related:init}% + \usebibmacro{related}} + {}% + \usebibmacro{finentry}} + +\DeclareBibliographyDriver{inproceedings}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{author/translator+others}% + \setunit{\printdelim{nametitledelim}}\newblock + \usebibmacro{title}% + \newunit + \printlist{language}% + \newunit\newblock + \usebibmacro{byauthor}% + \newunit\newblock + \usebibmacro{in:}% + \usebibmacro{maintitle+booktitle}% + \newunit\newblock + \usebibmacro{event+venue+date}% + \newunit\newblock + \usebibmacro{byeditor+others}% + \newunit\newblock + \iffieldundef{maintitle} + {\printfield{volume}% + \printfield{part}} + {}% + \newunit + \printfield{volumes}% + \newunit\newblock + \usebibmacro{series+number}% + \newunit\newblock + \printfield{note}% + \newunit\newblock + \printlist{organization}% + \newunit + \usebibmacro{publisher+location+date}% + \newunit\newblock + \usebibmacro{chapter+pages}% + \newunit\newblock + \iftoggle{bbx:isbn} + {\printfield{isbn}} + {}% + \newunit\newblock + \usebibmacro{doi+eprint+url}% + \newunit\newblock + \usebibmacro{addendum+pubstate}% + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \newunit\newblock + \iftoggle{bbx:related} + {\usebibmacro{related:init}% + \usebibmacro{related}} + {}% + \usebibmacro{finentry}} + +\DeclareBibliographyDriver{dataset}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{author/editor+others/translator+others}% + \setunit{\printdelim{nametitledelim}}\newblock + \usebibmacro{title}% + \newunit + \printlist{language}% + \newunit\newblock + \usebibmacro{byauthor}% + \newunit\newblock + \usebibmacro{byeditor+others}% + \newunit\newblock + \printfield{type}% + \newunit + \printfield{edition}% + \newunit + \printfield{version}% + \newunit\newblock + \usebibmacro{series+number}% + \newunit\newblock + \printfield{note}% + \newunit\newblock + \printlist{organization}% + \newunit + \usebibmacro{publisher+location+date}% + \newunit\newblock + \usebibmacro{doi+eprint+url}% + \newunit\newblock + \usebibmacro{addendum+pubstate}% + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \newunit\newblock + \iftoggle{bbx:related} + {\usebibmacro{related:init}% + \usebibmacro{related}} + {}% + \usebibmacro{finentry}} + +\DeclareBibliographyDriver{manual}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{author/editor}% + \setunit{\printdelim{nametitledelim}}\newblock + \usebibmacro{title}% + \newunit + \printlist{language}% + \newunit\newblock + \usebibmacro{byauthor}% + \newunit\newblock + \usebibmacro{byeditor}% + \newunit\newblock + \printfield{edition}% + \newunit\newblock + \usebibmacro{series+number}% + \newunit\newblock + \printfield{type}% + \newunit + \printfield{version}% + \newunit + \printfield{note}% + \newunit\newblock + \printlist{organization}% + \newunit + \usebibmacro{publisher+location+date}% + \newunit\newblock + \usebibmacro{chapter+pages}% + \newunit + \printfield{pagetotal}% + \newunit\newblock + \iftoggle{bbx:isbn} + {\printfield{isbn}} + {}% + \newunit\newblock + \usebibmacro{doi+eprint+url}% + \newunit\newblock + \usebibmacro{addendum+pubstate}% + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \newunit\newblock + \iftoggle{bbx:related} + {\usebibmacro{related:init}% + \usebibmacro{related}} + {}% + \usebibmacro{finentry}} + +\DeclareBibliographyDriver{misc}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{author/editor+others/translator+others}% + \setunit{\printdelim{nametitledelim}}\newblock + \usebibmacro{title}% + \newunit + \printlist{language}% + \newunit\newblock + \usebibmacro{byauthor}% + \newunit\newblock + \usebibmacro{byeditor+others}% + \newunit\newblock + \printfield{howpublished}% + \newunit\newblock + \printfield{type}% + \newunit + \printfield{version}% + \newunit + \printfield{note}% + \newunit\newblock + \usebibmacro{organization+location+date}% + \newunit\newblock + \usebibmacro{doi+eprint+url}% + \newunit\newblock + \usebibmacro{addendum+pubstate}% + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \newunit\newblock + \iftoggle{bbx:related} + {\usebibmacro{related:init}% + \usebibmacro{related}} + {}% + \usebibmacro{finentry}} + +\DeclareBibliographyDriver{online}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{author/editor+others/translator+others}% + \setunit{\printdelim{nametitledelim}}\newblock + \usebibmacro{title}% + \newunit + \printlist{language}% + \newunit\newblock + \usebibmacro{byauthor}% + \newunit\newblock + \usebibmacro{byeditor+others}% + \newunit\newblock + \printfield{version}% + \newunit + \printfield{note}% + \newunit\newblock + \printlist{organization}% + \newunit\newblock + \usebibmacro{date}% + \newunit\newblock + \iftoggle{bbx:doi} + {\printfield{doi}} + {}% + \newunit\newblock + \iftoggle{bbx:eprint} + {\usebibmacro{eprint}} + {}% + \newunit\newblock + \usebibmacro{url+urldate}% + \newunit\newblock + \usebibmacro{addendum+pubstate}% + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \newunit\newblock + \iftoggle{bbx:related} + {\usebibmacro{related:init}% + \usebibmacro{related}} + {}% + \usebibmacro{finentry}} + +\DeclareBibliographyDriver{patent}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{author}% + \setunit{\printdelim{nametitledelim}}\newblock + \usebibmacro{title}% + \newunit + \printlist{language}% + \newunit\newblock + \usebibmacro{byauthor}% + \newunit\newblock + \printfield{type}% + \setunit*{\addspace}% + \printfield{number}% + \iflistundef{location} + {} + {\setunit*{\addspace}% + \printtext[parens]{% + \printlist[][-\value{listtotal}]{location}}}% + \newunit\newblock + \usebibmacro{byholder}% + \newunit\newblock + \printfield{note}% + \newunit\newblock + \usebibmacro{date}% + \newunit\newblock + \usebibmacro{doi+eprint+url}% + \newunit\newblock + \usebibmacro{addendum+pubstate}% + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \newunit\newblock + \iftoggle{bbx:related} + {\usebibmacro{related:init}% + \usebibmacro{related}} + {}% + \usebibmacro{finentry}} + +\DeclareBibliographyDriver{periodical}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{editor}% + \setunit{\printdelim{nametitledelim}}\newblock + \usebibmacro{title+issuetitle}% + \newunit + \printlist{language}% + \newunit\newblock + \usebibmacro{byeditor}% + \newunit\newblock + \printfield{note}% + \newunit\newblock + \iftoggle{bbx:isbn} + {\printfield{issn}} + {}% + \newunit\newblock + \usebibmacro{doi+eprint+url}% + \newunit\newblock + \usebibmacro{addendum+pubstate}% + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \newunit\newblock + \iftoggle{bbx:related} + {\usebibmacro{related:init}% + \usebibmacro{related}} + {}% + \usebibmacro{finentry}} + +\DeclareBibliographyDriver{proceedings}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{editor+others}% + \setunit{\printdelim{nametitledelim}}\newblock + \usebibmacro{maintitle+title}% + \newunit + \printlist{language}% + \newunit\newblock + \usebibmacro{event+venue+date}% + \newunit\newblock + \usebibmacro{byeditor+others}% + \newunit\newblock + \iffieldundef{maintitle} + {\printfield{volume}% + \printfield{part}} + {}% + \newunit + \printfield{volumes}% + \newunit\newblock + \usebibmacro{series+number}% + \newunit\newblock + \printfield{note}% + \newunit\newblock + \printlist{organization}% + \newunit + \usebibmacro{publisher+location+date}% + \newunit\newblock + \usebibmacro{chapter+pages}% + \newunit + \printfield{pagetotal}% + \newunit\newblock + \iftoggle{bbx:isbn} + {\printfield{isbn}} + {}% + \newunit\newblock + \usebibmacro{doi+eprint+url}% + \newunit\newblock + \usebibmacro{addendum+pubstate}% + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \newunit\newblock + \iftoggle{bbx:related} + {\usebibmacro{related:init}% + \usebibmacro{related}} + {}% + \usebibmacro{finentry}} + +\DeclareBibliographyDriver{report}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{author}% + \setunit{\printdelim{nametitledelim}}\newblock + \usebibmacro{title}% + \newunit + \printlist{language}% + \newunit\newblock + \usebibmacro{byauthor}% + \newunit\newblock + \printfield{type}% + \setunit*{\addspace}% + \printfield{number}% + \newunit\newblock + \printfield{version}% + \newunit + \printfield{note}% + \newunit\newblock + \usebibmacro{institution+location+date}% + \newunit\newblock + \usebibmacro{chapter+pages}% + \newunit + \printfield{pagetotal}% + \newunit\newblock + \iftoggle{bbx:isbn} + {\printfield{isrn}} + {}% + \newunit\newblock + \usebibmacro{doi+eprint+url}% + \newunit\newblock + \usebibmacro{addendum+pubstate}% + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \newunit\newblock + \iftoggle{bbx:related} + {\usebibmacro{related:init}% + \usebibmacro{related}} + {}% + \usebibmacro{finentry}} + +\DeclareBibliographyDriver{thesis}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{author}% + \setunit{\printdelim{nametitledelim}}\newblock + \usebibmacro{title}% + \newunit + \printlist{language}% + \newunit\newblock + \usebibmacro{byauthor}% + \newunit\newblock + \printfield{note}% + \newunit\newblock + \printfield{type}% + \newunit + \usebibmacro{institution+location+date}% + \newunit\newblock + \usebibmacro{chapter+pages}% + \newunit + \printfield{pagetotal}% + \newunit\newblock + \iftoggle{bbx:isbn} + {\printfield{isbn}} + {}% + \newunit\newblock + \usebibmacro{doi+eprint+url}% + \newunit\newblock + \usebibmacro{addendum+pubstate}% + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \newunit\newblock + \iftoggle{bbx:related} + {\usebibmacro{related:init}% + \usebibmacro{related}} + {}% + \usebibmacro{finentry}} + +\DeclareBibliographyDriver{unpublished}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{author}% + \setunit{\printdelim{nametitledelim}}\newblock + \usebibmacro{title}% + \newunit + \printlist{language}% + \newunit\newblock + \usebibmacro{byauthor}% + \newunit\newblock + \printfield{howpublished}% + \newunit\newblock + \printfield{type}% + \newunit\newblock + \usebibmacro{event+venue+date}% + \newunit\newblock + \printfield{note}% + \newunit\newblock + \usebibmacro{location+date}% + \newunit\newblock + \iftoggle{bbx:url} + {\usebibmacro{url+urldate}} + {}% + \newunit\newblock + \usebibmacro{addendum+pubstate}% + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \newunit\newblock + \iftoggle{bbx:related} + {\usebibmacro{related:init}% + \usebibmacro{related}} + {}% + \usebibmacro{finentry}} + +\DeclareBibliographyDriver{shorthand}{% + \usedriver + {\DeclareNameAlias{sortname}{default}} + {\thefield{entrytype}}% + \finentry} + +\DeclareBibliographyDriver{set}{% + \entryset{}{}% + \newunit\newblock + \usebibmacro{setpageref}% + \finentry} + +\DeclareBibliographyAlias{mvbook}{book} +\DeclareBibliographyAlias{bookinbook}{inbook} +\DeclareBibliographyAlias{suppbook}{inbook} +\DeclareBibliographyAlias{mvcollection}{collection} +\DeclareBibliographyAlias{suppcollection}{incollection} +\DeclareBibliographyAlias{mvproceedings}{proceedings} +\DeclareBibliographyAlias{reference}{collection} +\DeclareBibliographyAlias{mvreference}{reference} +\DeclareBibliographyAlias{inreference}{incollection} +\DeclareBibliographyAlias{suppperiodical}{article} +\DeclareBibliographyAlias{review}{article} +\DeclareBibliographyAlias{software}{misc} +\DeclareBibliographyAlias{*}{misc} + +\newbibmacro*{maintitle+title}{% + \iffieldsequal{maintitle}{title} + {\clearfield{maintitle}% + \clearfield{mainsubtitle}% + \clearfield{maintitleaddon}} + {\iffieldundef{maintitle} + {} + {\usebibmacro{maintitle}% + \newunit\newblock + \iffieldundef{volume} + {} + {\printfield{volume}% + \printfield{part}% + \setunit{\addcolon\space}}}}% + \usebibmacro{title}% + \newunit} + +\newbibmacro*{maintitle+booktitle}{% + \iffieldundef{maintitle} + {} + {\usebibmacro{maintitle}% + \newunit\newblock + \iffieldundef{volume} + {} + {\printfield{volume}% + \printfield{part}% + \setunit{\addcolon\space}}}% + \usebibmacro{booktitle}% + \newunit} + +\newbibmacro*{journal+issuetitle}{% + \usebibmacro{journal}% + \setunit*{\addspace}% + \iffieldundef{series} + {} + {\newunit + \printfield{series}% + \setunit{\addspace}}% + \usebibmacro{volume+number+eid}% + \setunit{\addspace}% + \usebibmacro{issue+date}% + \setunit{\addcolon\space}% + \usebibmacro{issue}% + \newunit} + +\newbibmacro*{volume+number+eid}{% + \printfield{volume}% + \setunit*{\adddot}% + \printfield{number}% + \setunit{\addcomma\space}% + \printfield{eid}} + +\newbibmacro*{title+issuetitle}{% + \usebibmacro{periodical}% + \setunit*{\addspace}% + \iffieldundef{series} + {} + {\newunit + \printfield{series}% + \setunit{\addspace}}% + \usebibmacro{volume+number+eid}% + \setunit{\addspace}% + \usebibmacro{issue+date}% + \setunit{\addcolon\space}% + \usebibmacro{issue}% + \newunit} + +\newbibmacro*{issue+date}{% + \printtext[parens]{% + \printfield{issue}% + \setunit*{\addspace}% + \usebibmacro{date}}% + \newunit} + +\newbibmacro*{event+venue+date}{% + \printfield{eventtitle}% + \newunit + \printfield{eventtitleaddon}% + \ifboolexpr{ + test {\iffieldundef{venue}} + and + test {\iffieldundef{eventyear}} + } + {} + {\setunit{\addspace}% + \printtext[parens]{% + \printfield{venue}% + \setunit*{\addcomma\space}% + \printeventdate}}% + \newunit} + +\newbibmacro*{series+number}{% + \printfield{series}% + \setunit*{\addspace}% + \printfield{number}% + \newunit} + +\newbibmacro*{publisher+location+date}{% + \printlist{location}% + \iflistundef{publisher} + {\setunit*{\addcomma\space}} + {\setunit*{\addcolon\space}}% + \printlist{publisher}% + \setunit*{\addcomma\space}% + \usebibmacro{date}% + \newunit} + +\newbibmacro*{institution+location+date}{% + \printlist{location}% + \iflistundef{institution} + {\setunit*{\addcomma\space}} + {\setunit*{\addcolon\space}}% + \printlist{institution}% + \setunit*{\addcomma\space}% + \usebibmacro{date}% + \newunit} + +\newbibmacro*{organization+location+date}{% + \printlist{location}% + \iflistundef{organization} + {\setunit*{\addcomma\space}} + {\setunit*{\addcolon\space}}% + \printlist{organization}% + \setunit*{\addcomma\space}% + \usebibmacro{date}% + \newunit} + +\newbibmacro*{location+date}{% + \printlist{location}% + \setunit*{\addcomma\space}% + \usebibmacro{date}% + \newunit} + +\newbibmacro*{chapter+pages}{% + \printfield{chapter}% + \setunit{\bibpagespunct}% + \printfield{pages}% + \newunit} + +\newbibmacro*{note+pages}{% + \printfield{note}% + \setunit{\bibpagespunct}% + \printfield{pages}% + \newunit} + +\newbibmacro*{doi+eprint+url}{% + \iftoggle{bbx:doi} + {\printfield{doi}} + {}% + \newunit\newblock + \iftoggle{bbx:eprint} + {\usebibmacro{eprint}} + {}% + \newunit\newblock + \iftoggle{bbx:url} + {\usebibmacro{url+urldate}} + {}} + +\newbibmacro*{addendum+pubstate}{% + \printfield{addendum}% + \newunit\newblock + \printfield{pubstate}} + +\newcounter{bbx:relatedcount} +\newcounter{bbx:relatedtotal} + +\newbibmacro*{related:init}{% + \csundef{bbx:relatedloop}} + +\newbibmacro*{begrelated}{} +\newbibmacro*{endrelated}{} +\newbibmacro*{begrelatedloop}{} +\newbibmacro*{endrelatedloop}{} + +\def\ifrelatedloop{% + \ifboolexpr{ test {\xifinlistcs{\strfield{entrykey}}{bbx:relatedloop}} + or test {\xifinlistcs{\strfield{clonesourcekey}}{bbx:relatedloop}} }} + +\newbibmacro*{related}{% + \ifboolexpr{ test {\iffieldundef{related}} or test {\ifrelatedloop} } + {} + {\ifcsundef{begrelateddelim\strfield{relatedtype}} + {\printunit{\begrelateddelim}} + {\printunit{\csuse{begrelateddelim\strfield{relatedtype}}}}% + \usebibmacro{begrelated}% + \def\bbx@tempa{}% + \setcounter{bbx:relatedtotal}{0}% + \def\do##1{% + \entrydata{##1}{% + \ifrelatedloop + {} + {\stepcounter{bbx:relatedtotal}% + \gappto{\bbx@tempa}{##1,}}}}% + \docsvfield{related}% + \restorefield{related}{\bbx@tempa}% + \ifnumgreater{\value{bbx:relatedtotal}}{0} + {\listcsxadd{bbx:relatedloop}{\strfield{entrykey}}% + \iffieldundef{clonesourcekey} + {} + {\listcsxadd{bbx:relatedloop}{\strfield{clonesourcekey}}}% + \setcounter{bbx:relatedcount}{0}% + \def\do{% + \stepcounter{bbx:relatedcount}% + \ifnumgreater{\value{bbx:relatedcount}}{1} + {\ifcsundef{relateddelim\strfield{relatedtype}} + {\printunit{\relateddelim}} + {\expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\printunit + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter{% + \csuse{relateddelim\strfield{relatedtype}}}}} + {}}% + \ifbibmacroundef{related:\strfield{relatedtype}} + {\appto{\do}{\usebibmacro{related:default}}} + {\appto{\do}{\usebibmacro*{related:\strfield{relatedtype}}}}% + \iffieldformatundef{related:\strfield{relatedtype}} + {\def\bbx@tempa{related}} + {\def\bbx@tempa{related:\strfield{relatedtype}}}% + \iffieldformatundef{relatedstring:\strfield{relatedtype}} + {\def\bbx@tempb{relatedstring:default}} + {\def\bbx@tempb{relatedstring:\strfield{relatedtype}}}% + \printtext[\bbx@tempa]{% + \usebibmacro{begrelatedloop}% + \iffieldundef{relatedstring} + {\ifboolexpr{ + test {\ifnumgreater{\value{bbx:relatedtotal}}{1}} + and + test {\ifbibxstring{\thefield{relatedtype}s}} + } + {\printtext[\bbx@tempb]{% + \bibstring[\mkrelatedstring]{\thefield{relatedtype}s}}} + {\iffieldbibstring{relatedtype} + {\printtext[\bbx@tempb]{% + \bibstring[\mkrelatedstring]{\thefield{relatedtype}}}} + {}}} + {\iffieldbibstring{relatedstring} + {\printtext[\bbx@tempb]{% + \bibstring[\mkrelatedstring]{\thefield{relatedstring}}}} + {\printfield[\bbx@tempb]{relatedstring}}}% + \docsvfield{related}% + \usebibmacro{endrelatedloop}}}% + {}% + \usebibmacro{endrelated}}} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/bbx/verbose-ibid.bbx b/macros/latex/contrib/biblatex/latex/bbx/verbose-ibid.bbx new file mode 100644 index 0000000000..ab2cf1a871 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/bbx/verbose-ibid.bbx @@ -0,0 +1,6 @@ +\ProvidesFile{verbose-ibid.bbx} +[\abx@bbxid] + +\RequireBibliographyStyle{authortitle} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/bbx/verbose-inote.bbx b/macros/latex/contrib/biblatex/latex/bbx/verbose-inote.bbx new file mode 100644 index 0000000000..32b6dcb879 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/bbx/verbose-inote.bbx @@ -0,0 +1,6 @@ +\ProvidesFile{verbose-inote.bbx} +[\abx@bbxid] + +\RequireBibliographyStyle{authortitle} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/bbx/verbose-note.bbx b/macros/latex/contrib/biblatex/latex/bbx/verbose-note.bbx new file mode 100644 index 0000000000..6560305a66 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/bbx/verbose-note.bbx @@ -0,0 +1,6 @@ +\ProvidesFile{verbose-note.bbx} +[\abx@bbxid] + +\RequireBibliographyStyle{authortitle} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/bbx/verbose-trad1.bbx b/macros/latex/contrib/biblatex/latex/bbx/verbose-trad1.bbx new file mode 100644 index 0000000000..f2f4f36f3e --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/bbx/verbose-trad1.bbx @@ -0,0 +1,6 @@ +\ProvidesFile{verbose-trad1.bbx} +[\abx@bbxid] + +\RequireBibliographyStyle{authortitle} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/bbx/verbose-trad2.bbx b/macros/latex/contrib/biblatex/latex/bbx/verbose-trad2.bbx new file mode 100644 index 0000000000..e177123c7a --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/bbx/verbose-trad2.bbx @@ -0,0 +1,6 @@ +\ProvidesFile{verbose-trad2.bbx} +[\abx@bbxid] + +\RequireBibliographyStyle{authortitle} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/bbx/verbose-trad3.bbx b/macros/latex/contrib/biblatex/latex/bbx/verbose-trad3.bbx new file mode 100644 index 0000000000..e48de94074 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/bbx/verbose-trad3.bbx @@ -0,0 +1,6 @@ +\ProvidesFile{verbose-trad3.bbx} +[\abx@bbxid] + +\RequireBibliographyStyle{authortitle} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/bbx/verbose.bbx b/macros/latex/contrib/biblatex/latex/bbx/verbose.bbx new file mode 100644 index 0000000000..fdba2250cd --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/bbx/verbose.bbx @@ -0,0 +1,6 @@ +\ProvidesFile{verbose.bbx} +[\abx@bbxid] + +\RequireBibliographyStyle{authortitle} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/biblatex.cfg b/macros/latex/contrib/biblatex/latex/biblatex.cfg new file mode 100644 index 0000000000..5c8cf28617 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/biblatex.cfg @@ -0,0 +1,5 @@ +\ProvidesFile{biblatex.cfg} + +% Put your definitions here. + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/biblatex.def b/macros/latex/contrib/biblatex/latex/biblatex.def new file mode 100644 index 0000000000..e2a1728aae --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/biblatex.def @@ -0,0 +1,3054 @@ +\ProvidesFile{biblatex.def} +[\abx@cptid] + +% ------------------------------------------------------------------ +% FORMATTING COMMANDS +% ------------------------------------------------------------------ + +% Generic formatting commands and hooks +% ------------------------------------------------------------------ + +% Used in citations, bibliography and bibliography lists + +% legacy - no longer needed could be removed one day when no-one is using it. +\def\nameparts#1{} + +% Define namepart keys from datamodel constant list +% \namepart<namepart> - e.g. \namepartfamily +% \namepart<namepart>i - e.g. \namepartfamilyi +\def\do#1{% + \csdef{mkbibname#1}##1{##1}% + \define@key{blx@opt@namepart}{#1}{\csdef{namepart#1}{##1}}% + \define@key{blx@opt@namepart}{#1i}{\csdef{namepart#1i}{##1}}% + \define@key{blx@opt@namepart}{#1un}{\csdef{namepart#1un}{##1}}} +\expandafter\docsvlist\expandafter{\blx@datamodel@constant@nameparts} + +% legacy aliases +% set empty defaults so we can check if they have been redefined +\let\mkbibnamefirst\@empty +\let\mkbibnamelast\@empty +\let\mkbibnameaffix\@empty + +\AtEndPreamble{% + \ifdefempty\mkbibnamelast + {\let\@mkbibnamelastsaved\mkbibnamefamily}% not redefined by user + {\blx@warning@noline{% + Attempt to redefine deprecated '\string\mkbibnamelast'.\MessageBreak + Please use '\string\mkbibnamefamily' instead.\MessageBreak + Using '\string\mkbibnamefamily'}% + \let\@mkbibnamelastsaved\mkbibnamelast + \let\mkbibnamefamily\@mkbibnamelastsaved}% + % Now redefine it in case it's used + \def\mkbibnamelast{% + \blx@warning@noline{% + '\string\mkbibnamelast' is deprecated.\MessageBreak + Please use '\string\mkbibnamefamily'.\MessageBreak + Using '\string\mkbibnamefamily'}% + \@mkbibnamelastsaved} + + \ifdefempty\mkbibnamefirst + {\let\@mkbibnamefirstsaved\mkbibnamegiven}% not redefined by user + {\blx@warning@noline{% + Attempt to redefine deprecated '\string\mkbibnamefirst'.\MessageBreak + Please use '\string\mkbibnamegiven' instead.\MessageBreak + Using '\string\mkbibnamegiven'}% + \let\@mkbibnamefirstsaved\mkbibnamefirst + \let\mkbibnamegiven\@mkbibnamefirstsaved}% + % Now redefine it in case it's used + \def\mkbibnamefirst{% + \blx@warning@noline{% + '\string\mkbibnamefirst' is deprecated.\MessageBreak + Please use '\string\mkbibnamegiven'.\MessageBreak + Using '\string\mkbibnamegiven'}% + \@mkbibnamefirstsaved} + + \ifdefempty\mkbibnameaffix + {\let\@mkbibnameaffixsaved\mkbibnamesuffix}% not redefined by user + {\blx@warning@noline{% + Attempt to redefine deprecated '\string\mkbibnameaffix'.\MessageBreak + Please use '\string\mkbibnamesuffix' instead.\MessageBreak + Using '\string\mkbibnamesuffix'}% + \let\@mkbibnameaffixsaved\mkbibnameaffix + \let\mkbibnamesuffix\@mkbibnameaffixsaved}% + % Now redefine it in case it's used + \def\mkbibnameaffix{% + \blx@warning@noline{% + '\string\mkbibnameaffix' is deprecated.\MessageBreak + Please use '\string\mkbibnamesuffix'.\MessageBreak + Using \string\mkbibnamesuffix}% + \@mkbibnameaffixsaved}} + +\newcommand*{\bibellipsis}{[\textellipsis\unkern]\midsentence} + +% Delimiters used in citations, bibliography and bibliography lists +\DeclareDelimFormat{multinamedelim}{\addcomma\space} +\DeclareDelimFormat{finalnamedelim}{% + \ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}% + \addspace\bibstring{and}\space} +\DeclareDelimFormat{revsdnamedelim}{} +\DeclareDelimFormat{andothersdelim}{\addspace} + +\DeclareDelimFormat{multilistdelim}{\addcomma\space} +\DeclareDelimFormat{finallistdelim}{% + \ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}% + \addspace\bibstring{and}\space} +\DeclareDelimFormat{andmoredelim}{\addspace} + +\newcommand*{\multicitedelim}{\addsemicolon\space} +\newcommand*{\compcitedelim}{\addcomma\space} +\newcommand*{\supercitedelim}{\addcomma} +\DeclareDelimFormat{prenotedelim}{\addspace} +\DeclareDelimFormat{postnotedelim}{\addcomma\space} +\DeclareDelimAlias{multiprenotedelim}{prenotedelim} +\DeclareDelimAlias{multipostnotedelim}{postnotedelim} +\DeclareDelimFormat{extpostnotedelim}{\addspace} +\newcommand*{\volcitedelim}{\addcomma\space} +\newcommand*{\textcitedelim}{% + \iffinalcitedelim + {\ifnumgreater{\value{textcitetotal}}{2} + {\iftextcitepunct{\finalandsemicolon}{\finalandcomma}}{}% + \addspace\bibstring{and}} + {\iftextcitepunct{\addsemicolon}{\addcomma}}% + \space} + + +% context-sensitive delimiters +% retain compatibility with \labelnamepunct et al. +% The seemingly redundant definitions are needed because +% hard-coded punctuation was replaced by context-sensitive +% delimiters, changes to here need to be made explicitly +% to avoid unwanted effects of redefining the global delimiter. +\DeclareDelimFormat{authortypedelim}{\addcomma\space} +\DeclareDelimFormat{editortypedelim}{\addcomma\space} +\DeclareDelimFormat{translatortypedelim}{\addcomma\space} +\DeclareDelimFormat{namelabeldelim}{\addspace} +\DeclareDelimFormat{nametitledelim}{\addcomma\space} +\DeclareDelimFormat[bib,biblist]{nametitledelim}{\labelnamepunct} +\DeclareDelimFormat[textcite]{nametitledelim}{\addspace} +\DeclareDelimFormat{nameyeardelim}{\addspace} +\DeclareDelimFormat[textcite]{nameyeardelim}{\addspace} +\DeclareDelimFormat[bib,biblist]{nameyeardelim}{\addspace} +\DeclareDelimFormat{nonameyeardelim}{\addspace} +\DeclareDelimFormat[textcite]{nonameyeardelim}{\addspace} +\DeclareDelimFormat[bib,biblist]{nonameyeardelim}{\addspace} +\DeclareDelimFormat{dateeradelim}{\addspace} +\DeclareDelimFormat{datecircadelim}{\addspace} + +% This is a provisional definition for \iffinalcitedelim{<true>}{<false>}, a +% test that should expand <true> if the next non-compact citation delimiter +% is the last one in the citation list printed by \textcite or \textcites. +\newcommand*{\iffinalcitedelim}{\@secondoftwo} + +% Expand <true> if the citation labels in the citation list printed by \textcite +% or \textcites contains the serial comma \finalandcomma +\newcommand*{\iftextcitepunct}{% + \ifboolexpr{ not test {\ifdefempty{\finalandsemicolon}} + and test {\ifnumgreater{\value{textcitemaxnames}}{2}} }} + +% Counters for the number of citation labels separated by non-compact delimiters +% in the citation list printed by \textcite or \textcites. Counter values should +% be managed by the citation style. +\newcounter{textcitecount} +\newcounter{textcitetotal} +\setcounter{textcitecount}{0} +\setcounter{textcitetotal}{0} + +% Counters for the maximum number of names among citation labels in the citation +% list printed by \textcite or \textcites. Counter value should be managed by +% the citation style. +\newcounter{textcitemaxnames} +\setcounter{textcitemaxnames}{0} + +% Used in the bibliography and bibliography lists + +\newcommand*{\newunitpunct}{\addperiod\space} +\newcommand*{\entrysetpunct}{\addsemicolon\space} +\newcommand*{\finentrypunct}{\addperiod} +\newcommand*{\labelnamepunct}{\newunitpunct} +\newcommand*{\subtitlepunct}{\newunitpunct} +\newcommand*{\intitlepunct}{\addcolon\space} +\newcommand*{\bibpagespunct}{\addcomma\space} +\newcommand*{\bibpagerefpunct}{\addspace} +\newcommand*{\revsdnamepunct}{\addcomma} +\newcommand*{\bibnamedash}{% + \ifdimless{\leftmargin}{0.75em} + {\mbox{\textemdash\space}} + {\makebox[\leftmargin][l]{% + \ifdimless{\leftmargin}{1.25em} + {\textendash} + {\textemdash}}}} +\newcommand*{\relatedpunct}{\addspace} +\newcommand*{\relateddelim}{\adddot\par\nobreak} +\newcommand*{\begrelateddelim}{\newunitpunct} +\newcommand*{\begrelateddelimmultivolume}{\newunitpunct\par\nobreak} +% Examples of use, uncommenting these would break backwards compatibility +%\newcommand*{\begrelateddelimorigpubin}{\addspace} +%\newcommand*{\begrelateddelimorigpubas}{\addspace} +\newcommand{\mkrelatedstring}{\mainlang} + +% Used for indexing + +\newcommand*{\bibindexnamedelima}{ } +\newcommand*{\bibindexnamedelimb}{ } +\newcommand*{\bibindexnamedelimc}{ } +\newcommand*{\bibindexnamedelimd}{ } +\newcommand*{\bibindexnamedelimi}{ } +\newcommand*{\bibindexinitperiod}{.} +\newcommand*{\bibindexinitdelim}{ } +\newcommand*{\bibindexinithyphendelim}{.-} + +% \bibsetup is a generic hook controlling the (low-level) layout of +% the bibliography and bibliography lists. The default +% definition should work fine in most cases. + +\newcommand*{\bibsetup}{% + \interlinepenalty=5000\relax + \widowpenalty=10000\relax + \clubpenalty=10000\relax + \raggedbottom + \frenchspacing + \biburlsetup} + +% The penalties above are not specific to biblatex. These are +% low-level TeX features. \interlinepenalty is the penalty assigned +% to page breaks within a paragraph (i.e., in this case, a +% bibliography entry); \clubpenalty is an additional penalty +% assigned to page breaks after the first line of a paragraph; +% \widowpenalty is an additional penalty assigned to page breaks +% before the last line of a paragraph. Note that the value 10000 +% means 'infinite' as far as TeX is concerned. Setting a penalty to +% 10000 will unconditionally suppress the respective breakpoint. +% +% The net effect of the above settings is as follows. Breaking a +% bibliography entry across pages is discouraged, but not suppressed +% altogether. If a bibliography entry spans less than four lines, +% TeX will always keep it on one page. If it spans four or more +% lines, it may be broken across pages, provided that there are at +% least two lines on the page before and after the break. +% +% These penalties should normally be used in conjunction with +% \raggedbottom. If you don't like that and remove \raggedbottom +% from the definition of \bibsetup, make sure to provide some +% stretchability between bibliography entries by setting \bibitemsep +% to a suitable value, e.g.: +% +% \setlength{\bibitemsep}{0.5\baselineskip plus 0.5\baselineskip} +% +% Using \frenchspacing in the bibliography is recommended. If you +% want more visual separation, try the package option 'block=space'. +% This will yield better results than \nonfrenchspacing. + +% \citesetup is a generic hook for citations. + +\newcommand*{\citesetup}{% + \biburlsetup} + +% Local setup for \url; see comments in url.sty for details. + +\newcounter{biburlbigbreakpenalty} +\newcounter{biburlbreakpenalty} +\newcounter{biburlnumpenalty} +\newcounter{biburlucpenalty} +\newcounter{biburllcpenalty} + +\setcounter{biburlbigbreakpenalty}{100} +\setcounter{biburlbreakpenalty}{200} + +\newmuskip\biburlbigskip +\newmuskip\biburlnumskip +\newmuskip\biburlucskip +\newmuskip\biburllcskip + +% I'd have preferred \setlength here, but calc does not support +% muglue (yet?). +% https://github.com/plk/biblatex/issues/889 +% See also https://tex.stackexchange.com/q/188215/ +\biburlbigskip=0mu plus 3mu\relax +\biburlnumskip=0mu\relax +\biburlucskip=0mu\relax +\biburllcskip=0mu\relax + +\newcommand*{\biburlsetup}{% + \Urlmuskip\biburlbigskip + \mathchardef\UrlBigBreakPenalty=\value{biburlbigbreakpenalty}\relax + \mathchardef\UrlBreakPenalty=\value{biburlbreakpenalty}\relax + \def\UrlBigBreaks{\do\:\do\-}% + \def\UrlBreaks{% + \do\.\do\@\do\/\do\\\do\!\do\_\do\|\do\;\do\>\do\]\do\)\do\}% + \do\,\do\?\do\'\do\+\do\=\do\#\do\$\do\&\do\*\do\^\do\"}% + \ifnumgreater{\value{biburlnumpenalty}}{0} + {\def\do##1{% + \appto\UrlSpecials{% + \do##1{% + \mathchar`##1 + \mskip\biburlnumskip + \penalty\value{biburlnumpenalty}}}}% + \do\1\do\2\do\3\do\4\do\5\do\6\do\7\do\8\do\9\do\0} + {}% + \ifnumgreater{\value{biburlucpenalty}}{0} + {\def\do##1{% + \appto\UrlSpecials{% + \do##1{% + \mathchar`##1 + \mskip\biburlucskip + \penalty\value{biburlucpenalty}}}}% + \do\A\do\B\do\C\do\D\do\E\do\F\do\G\do\H\do\I\do\J + \do\K\do\L\do\M\do\N\do\O\do\P\do\Q\do\R\do\S\do\T + \do\U\do\V\do\W\do\X\do\Y\do\Z} + {}% + \ifnumgreater{\value{biburllcpenalty}}{0} + {\def\do##1{% + \appto\UrlSpecials{% + \do##1{% + \mathchar`##1 + \mskip\biburllcskip + \penalty\value{biburllcpenalty}}}}% + \do\a\do\b\do\c\do\d\do\e\do\f\do\g\do\h\do\i\do\j + \do\k\do\l\do\m\do\n\do\o\do\p\do\q\do\r\do\s\do\t + \do\u\do\v\do\w\do\x\do\y\do\z} + {}% + \let\do=\noexpand} + +% The above code allows linebreaks before numbers and letters. +% This is often the only way to break DOIs. It also allows breaks +% after hyphens and adjusts \Urlmuskip to add some stretchability +% to URLs. + +% The default font of the bibliography and the bibliography lists. +% We simply reset the current font to the global defaults. + +\newcommand*{\bibfont}{\normalfont\normalsize} + +% Some length registers which may be used to fine-tune the +% (high-level) layout of the bibliography. + +% Default \bibhang to 1em if \parindent is 0 for some reason +\setlength{\bibhang}{\ifnumequal{\parindent}{0}{1em}{\parindent}} +\setlength{\biblabelsep}{2\labelsep} +\setlength{\bibitemsep}{\itemsep} +\setlength{\bibnamesep}{0pt} +\setlength{\bibinitsep}{0pt} +\setlength{\bibparsep}{0pt} + +% Miscellaneous facilities +% ------------------------------------------------------------------ + +% The counter 'abbrvpenalty' holds the penalty used in short or +% abbreviated bibliography strings. For example, a linebreak in +% expressions such as "et al." or "ed. by" is unfortunate, but should +% still be possible to prevent overfull boxes. We use TeX's +% \hyphenpenalty (normally 50) as the default value. The idea is +% making TeX treat the whole expression as if it were a single, +% hyphenatable word as far as line-breaking is concerned. If you +% dislike such linebreaks, use a higher value. If you do not mind +% them at all, set this counter to zero. If you want to suppress them +% unconditionally, set it to 10000. +\defcounter{abbrvpenalty}{\hyphenpenalty} + +% The counter 'highnamepenalty' also holds a penalty affecting the +% line-breaking of names. This penalty is inserted between smaller +% chunks of a name, for example between the first and the middle +% name. The default value is \hyphenpenalty. If you dislike such +% linebreaks, use a higher value. If you do not mind them at all, +% set this counter to zero. If you prefer the traditional BibTeX +% behavior, set it to 10000. +\defcounter{highnamepenalty}{\hyphenpenalty} + +% The counter 'lownamepenalty' holds a penalty which affects the +% line-breaking of names. This penalty is inserted between larger +% chunks of a name, for example between the chunk consisting of all +% first names and the last name. The default value is half the +% \hyphenpenalty. If you dislike such linebreaks, use a higher +% value. If you do not mind them at all, set this counter to zero. +\defcounter{lownamepenalty}{\hyphenpenalty/2} + +% Note that default values assigned to the above counters are +% deliberately very low to prevent overfull boxes. This implies that +% you will hardly notice any effect on line-breaking if the text is +% set justified. If you set these counters to 10000 to suppress the +% respective breakpoints, you will notice their effect but you may +% also be confronted with overfull boxes. Keep in mind that +% line-breaking in the bibliography is often more difficult than in +% the body text and that you can not resort to rephrasing a +% sentence. In some cases it may be preferable to set the entire +% bibliography \raggedright (by modifying \bibsetup) to prevent +% suboptimal linebreaks. In this case, even the very low default +% penalties will make a visible difference. + +% File name prefixes for external abstracts and annotations +\newcommand*{\bibabstractprefix}{bibabstract-} +\newcommand*{\bibannotationprefix}{bibannotation-} + +% Print acronyms in small caps if possible +\newcommand*{\mkbibacro}[1]{% + \ifcsundef{\f@encoding/\f@family/\f@series/sc} + {#1} + {\textsc{\MakeLowercase{#1}}}} + +% Convert HH to hh for time formatting +\newcommand*{\mktimehh}[1]{% + \ifnumless{#1}{13} + {#1} + {\number\numexpr#1-12\relax}} + +% ------------------------------------------------------------------ +% ADDITIONAL PACKAGE OPTIONS +% ------------------------------------------------------------------ + +% Style of compressed page ranges in back references + +\DeclareBibliographyOption[string]{backrefstyle}{% + \ifcsdef{abx@opt@pagerefstyle@#1} + {\letcs\abx@pagerefstyle{abx@opt@pagerefstyle@#1}} + {\PackageError{biblatex} + {Option 'backrefstyle=#1' invalid} + {The option you have supplied is invalid.\MessageBreak + See the biblatex manual for valid option keys + and possible values}}} +\newcommand*{\abx@pagerefstyle}{1} +\csdef{abx@opt@pagerefstyle@none}{-1} +\csdef{abx@opt@pagerefstyle@two}{0} +\csdef{abx@opt@pagerefstyle@three}{1} +\csdef{abx@opt@pagerefstyle@two+}{2} +\csdef{abx@opt@pagerefstyle@three+}{3} +\csdef{abx@opt@pagerefstyle@all+}{4} + +% arXiv path/format selector +% +% abs = abstract page +% ps = PostScript version +% pdf = PDF version +% format = format selector + +\DeclareBibliographyOption[string]{arxiv}{\def\abx@arxivpath{#1}} +\newcommand*{\abx@arxivpath}{abs} + +% ------------------------------------------------------------------ +% FIELD FORMATS (#1 is the value of the field) +% ------------------------------------------------------------------ + +% The fallback used by \printfield + +\DeclareFieldFormat{default}{#1} + +% The default used by \citefield + +\DeclareFieldFormat{citefield}{#1} + +% Used in citations + +\DeclareFieldFormat{citetitle}{\mkbibemph{#1}} +\DeclareFieldFormat + [article,inbook,incollection,inproceedings,patent,thesis,unpublished] + {citetitle}{\mkbibquote{#1\isdot}} +\DeclareFieldFormat + [suppbook,suppcollection,suppperiodical] + {citetitle}{#1} +% label{end}year can be a localisation string to allow for "no date" etc. +\DeclareFieldFormat{labelyear}{% = the '1995' part in 'Jones 1995a' + \ifbibstring{#1}{\bibstring{#1}}{\mkyearzeros{#1}}} +\DeclareFieldFormat{labelendyear}{% = the '1995' part in 'Jones 1995a' + \ifbibstring{#1}{\bibstring{#1}}{\mkyearzeros{#1}}} +\DeclareFieldFormat{extradate}{% + \iffieldnums{labelyear} + {\mknumalph{#1}} + {\mkbibparens{\mknumalph{#1}}}} +\DeclareFieldFormat{labelalpha}{#1}% +\DeclareFieldFormat{extraalpha}{\mknumalph{#1}}% +\DeclareFieldFormat{shorthand}{#1\isdot} +\DeclareFieldFormat{shorthandintro}{% + \ifcapital{\MakeCapital{#1}}{#1}\isdot} +% citation commands +\DeclareFieldFormat{prenote}{#1\isdot} +\DeclareFieldFormat{postnote}{\mkpageprefix[pagination][\mknormrange]{#1}} +\DeclareFieldFormat{volcitevolume}{\bibstring{volume}\ppspace#1} +\DeclareFieldFormat{volcitepages}{\mkpageprefix[pagination][\mknormrange]{#1}} +\DeclareFieldFormat{volcitenote}{\mkvolcitenote#1} +\newrobustcmd*{\mkvolcitenote}[2]{% + \printtext[volcitevolume]{#1}% + \ifblank{#2}{}{\volcitedelim\printtext[volcitepages]{#2}}} + +% multicite commands +\DeclareFieldFormat{multiprenote}{#1\isdot} +\DeclareFieldFormat{multipostnote}{\mkpageprefix[pagination][\mknormrange]{#1}} + +% Used by \citeurl + +\DeclareFieldFormat{citeurl}{\url{#1}} + +% Used in the bibliography and bibliography lists + +\DeclareFieldFormat{doi}{% + \mkbibacro{DOI}\addcolon\space + \ifhyperref + {\href{https://doi.org/#1}{\nolinkurl{#1}}} + {\nolinkurl{#1}}} +\DeclareFieldFormat{edition}{% + \ifinteger{#1} + {\mkbibordedition{#1}~\bibstring{edition}} + {#1\isdot}} +\DeclareFieldFormat{eprint}{% + \iffieldundef{eprinttype} + {eprint} + {\thefield{eprinttype}}% + \addcolon\space + \ifhyperref + {\url{#1}} + {\nolinkurl{#1}}% + \iffieldundef{eprintclass} + {} + {\addspace\mkbibparens{\thefield{eprintclass}}}} +\DeclareFieldFormat{eprint:hdl}{% + HDL\addcolon\space + \ifhyperref + {\href{http://hdl.handle.net/#1}{\nolinkurl{#1}}} + {\nolinkurl{#1}}} +\DeclareFieldAlias{eprint:HDL}{eprint:hdl} +\DeclareFieldFormat{eprint:arxiv}{% + arXiv\addcolon\space + \ifhyperref + {\href{https://arxiv.org/\abx@arxivpath/#1}{% + \nolinkurl{#1}% + \iffieldundef{eprintclass} + {} + {\addspace\texttt{\mkbibbrackets{\thefield{eprintclass}}}}}} + {\nolinkurl{#1}% + \iffieldundef{eprintclass} + {} + {\addspace\texttt{\mkbibbrackets{\thefield{eprintclass}}}}}} +\DeclareFieldAlias{eprint:arXiv}{eprint:arxiv} +\DeclareFieldFormat{eprint:jstor}{% + JSTOR\addcolon\space + \ifhyperref + {\href{http://www.jstor.org/stable/#1}{\nolinkurl{#1}}} + {\nolinkurl{#1}}} +\DeclareFieldAlias{eprint:JSTOR}{eprint:jstor} +\DeclareFieldFormat{eprint:pubmed}{% + PMID\addcolon\space + \ifhyperref + {\href{http://www.ncbi.nlm.nih.gov/pubmed/#1}{\nolinkurl{#1}}} + {\nolinkurl{#1}}} +\DeclareFieldAlias{eprint:PubMed}{eprint:pubmed} +\DeclareFieldFormat{eprint:googlebooks}{% + Google Books\addcolon\space + \ifhyperref + {\href{http://books.google.com/books?id=#1}{\nolinkurl{#1}}} + {\nolinkurl{#1}}} +\DeclareFieldAlias{eprint:Google Books}{eprint:googlebooks} +\DeclareFieldFormat{file}{\url{#1}} +\DeclareFieldFormat{isbn}{\mkbibacro{ISBN}\addcolon\space #1} +\DeclareFieldFormat{isrn}{\mkbibacro{ISRN}\addcolon\space #1} +\DeclareFieldFormat{issn}{\mkbibacro{ISSN}\addcolon\space #1} +\DeclareFieldFormat{journaltitle}{\mkbibemph{#1\isdot}} +\DeclareFieldFormat{issuetitle}{\mkbibemph{#1}} +\DeclareFieldFormat{maintitle}{\mkbibemph{#1}} +\DeclareFieldFormat{booktitle}{\mkbibemph{#1}} +\DeclareFieldFormat{chapter}{\bibstring{chapter}~#1} +\DeclareFieldFormat{month}{\mkbibmonth{#1}} +\DeclareFieldFormat{note}{#1\isdot} +\DeclareFieldFormat{number}{#1}% number in a series +\DeclareFieldFormat[article,periodical]{number}{#1}% number of a journal +\DeclareFieldFormat{pages}{\mkpageprefix[bookpagination]{#1}} +\DeclareFieldFormat{pagetotal}{\mkpagetotal[bookpagination]{#1}} +\DeclareFieldFormat{part}{.#1}% physical part of a logical volume +\DeclareFieldFormat{series}{#1}% publication series +\DeclareFieldFormat[article,periodical]{series}{% series of a journal + \ifinteger{#1} + {\mkbibordseries{#1}~\bibstring{jourser}} + {\ifbibstring{#1}{\bibstring{#1}}{#1}}} +\DeclareFieldFormat{pubstate}{\ifbibstring{#1}{\bibstring{#1}}{#1}} +\DeclareFieldFormat{title}{\mkbibemph{#1}} +\DeclareFieldFormat + [article,inbook,incollection,inproceedings,patent,thesis,unpublished] + {title}{\mkbibquote{#1\isdot}} +\DeclareFieldFormat + [suppbook,suppcollection,suppperiodical] + {title}{#1} +\DeclareFieldFormat{type}{\ifbibstring{#1}{\bibstring{#1}}{#1}} +\DeclareFieldFormat{url}{\mkbibacro{URL}\addcolon\space\url{#1}} +\DeclareFieldFormat{urldate}{\mkbibparens{\bibstring{urlseen}\space#1}} +\DeclareFieldFormat{version}{\bibstring{version}~#1} +\DeclareFieldFormat{volume}{\bibstring{volume}~#1}% volume of a book +\DeclareFieldFormat[article,periodical]{volume}{#1}% volume of a journal +\DeclareFieldFormat{volumes}{#1~\bibstring{volumes}} +\DeclareFieldFormat{related}{#1} +\DeclareFieldFormat{related:multivolume}{#1} +\DeclareFieldFormat{related:origpubin}{\mkbibparens{#1}} +\DeclareFieldFormat{related:origpubas}{\mkbibparens{#1}} +\DeclareFieldFormat{relatedstring:default}{#1\printunit{\relatedpunct}} +\DeclareFieldFormat{relatedstring:reprintfrom}{#1\addspace} + +% Generic formats for \printtext and \printfield + +\DeclareFieldFormat{emph}{\mkbibemph{#1}} +\DeclareFieldFormat{bold}{\mkbibbold{#1}} +\DeclareFieldFormat{smallcaps}{\textsc{#1}} +\DeclareFieldFormat{parens}{\mkbibparens{#1}} +\DeclareFieldFormat{brackets}{\mkbibbrackets{#1}} +\DeclareFieldFormat{bibhyperref}{\bibhyperref{#1}} +\DeclareFieldFormat{bibhyperlink}{\bibhyperlink{\thefield{entrykey}}{#1}} +\DeclareFieldFormat{bibhypertarget}{\bibhypertarget{\thefield{entrykey}}{#1}} +\DeclareFieldFormat{titlecase}{#1} +\DeclareFieldFormat{noformat}{#1} + +% ------------------------------------------------------------------ +% LITERAL LIST FORMATS (#1 is the current item) +% ------------------------------------------------------------------ + +% Formatting directives for literal lists +% ------------------------------------------------------------------ + +\DeclareListWrapperFormat{default}{#1} + +% The fallback used by \printlist + +\DeclareListFormat{default}{% + \usebibmacro{list:delim}{#1}% + #1\isdot + \usebibmacro{list:andothers}} + +% The default used by \citelist + +\DeclareListAlias{citelist}{default} + +% Used in the bibliography + +\DeclareListFormat{publisher}{% + \usebibmacro{list:delim}{#1}% + #1\isdot + \usebibmacro{list:andothers}} + +\DeclareListFormat{language}{% + \usebibmacro{list:delim}{% + \ifbibstring{#1} + {\bibxstring{#1}} + {\ifbibstring{lang#1} + {\bibxstring{lang#1}} + {#1}}}% + \ifbibstring{#1} + {\bibstring{#1}} + {\ifbibstring{lang#1} + {\bibstring{lang#1}} + {#1}}% + \usebibmacro{list:andothers}} + +\DeclareListFormat{origlanguage}{% + \usebibmacro{list:delim}{% + \ifbibstring{#1} + {\bibxstring{#1}} + {\ifbibstring{lang#1} + {\bibxstring{lang#1}} + {#1}}}% + \ifbibstring{#1} + {\bibstring{#1}} + {\ifbibstring{lang#1} + {\bibstring{lang#1}} + {#1}}% + \usebibmacro{list:andothers}} + + +\DeclareListFormat{lfromoriglanguage}{% + \begingroup + \blx@bibstringnormal + \usebibmacro{list:delim}{% + \ifbibstring{from#1} + {\bibxlstring{from#1}} + {\ifbibstring{lang#1} + {\bibxlstring{lang#1}} + {#1}}}% + \ifbibstring{from#1} + {\bibstring{from#1}} + {\ifbibstring{lang#1} + {\biblstring{lang#1}} + {#1}}% + \usebibmacro{list:andothers}% + \endgroup} + +\DeclareListFormat{sfromoriglanguage}{% + \begingroup + \blx@bibstringnormal + \usebibmacro{list:delim}{% + \ifbibstring{from#1} + {\bibxsstring{from#1}} + {\ifbibstring{lang#1} + {\bibxsstring{lang#1}} + {#1}}}% + \ifbibstring{from#1} + {\bibstring{from#1}} + {\ifbibstring{lang#1} + {\bibsstring{lang#1}} + {#1}}% + \usebibmacro{list:andothers}% + \endgroup} + +\DeclareListFormat{location}{% + \usebibmacro{list:delim}{#1}% + #1\isdot + \usebibmacro{list:andothers}} + +\DeclareListFormat[patent]{location}{% + \usebibmacro{list:plain}% + \ifbibstring{#1}{\bibstring{#1}}{#1\isdot}% + \usebibmacro{list:andothers}} + +\DeclareListFormat{pageref}{% + \ifnumless{\abx@pagerefstyle}{0} + {\usebibmacro{list:plain}% + \ifhyperref + {\hyperlink{page.#1}{#1}} + {#1}} + {\ifnumequal{\value{listcount}}{1} + {\usebibmacro{pageref:init}} + {}% + \usebibmacro{pageref:comp}{#1}% + \ifnumequal{\value{listcount}}{\value{liststop}} + {\usebibmacro{pageref:dump}} + {}}} + +\DeclareListAlias{origlocation}{location} +\DeclareListAlias{origpublisher}{publisher} +\DeclareListAlias{institution}{default} +\DeclareListAlias{organization}{default} + +% Auxiliary macros for list formatting directives +% ------------------------------------------------------------------ + +\newbibmacro*{list:delim}[1]{% + \ifnumgreater{\value{listcount}}{\value{liststart}} + {\ifboolexpr{ + test {\ifnumless{\value{listcount}}{\value{liststop}}} + or + test \ifmoreitems + } + {\printdelim{multilistdelim}} + {\lbx@finallistdelim{#1}}} + {}} + +\newbibmacro*{list:plain}{% + \ifnumgreater{\value{listcount}}{\value{liststart}} + {\printdelim{multilistdelim}} + {}} + +\newbibmacro*{list:andothers}{% + \ifboolexpr{ + test {\ifnumequal{\value{listcount}}{\value{liststop}}} + and + test \ifmoreitems + } + {\ifnumgreater{\value{liststop}}{1} + {\finalandcomma} + {}% + \printdelim{andmoredelim}\bibstring{andmore}} + {}} + +\newbibmacro*{pageref:init}{% + \let\abx@range@hold=\empty + \def\abx@range@diff{0}% + \def\abx@range@prev{-1}% + \def\abx@range@this{0}% + \def\abx@range@last{-1}} + +\newbibmacro*{pageref:comp}[1]{% + \numdef\abx@range@prev{\abx@range@prev+1}% + \ifinteger{#1} + {\def\abx@range@num{#1}% + \def\abx@range@this{1}% + \ifnumequal{\abx@range@this}{\abx@range@last} + {} + {\def\abx@range@prev{-1}}} + {\ifrmnum{#1} + {\numdef\abx@range@num{\rmntonum{#1}}% + \def\abx@range@this{2}% + \ifnumequal{\abx@range@this}{\abx@range@last} + {} + {\def\abx@range@prev{-1}}} + {\undef\abx@range@num + \def\abx@range@this{0}% + \def\abx@range@prev{-1}}}% + \ifdef\abx@range@num + {\ifnumequal{\abx@range@num}{\abx@range@prev} + {\def\abx@range@hold{#1}% + \numdef\abx@range@diff{\abx@range@diff+1}} + {\usebibmacro{pageref:dump}% + \ifnumgreater{\abx@range@last}{-1} + {\printdelim{multilistdelim}} + {}% + \ifhyperref + {\hyperlink{page.#1}{#1}} + {#1}}% + \edef\abx@range@prev{\abx@range@num}} + {\usebibmacro{pageref:dump}% + \ifnumgreater{\abx@range@last}{-1} + {\printdelim{multilistdelim}} + {}% + \ifhyperref + {\hyperlink{page.#1}{#1}} + {#1}% + \def\abx@range@prev{-1}}% + \edef\abx@range@last{\abx@range@this}} + +\newbibmacro*{pageref:dump}{% + \ifnumgreater{\abx@range@diff}{0} + {\ifcase\abx@pagerefstyle\relax % two + \bibrangedash + \ifhyperref + {\hyperlink{page.\abx@range@hold}{\abx@range@hold}} + {\abx@range@hold}% + \or % three + \ifnumless{\abx@range@diff}{2} + {\printdelim{multilistdelim}} + {\bibrangedash}% + \ifhyperref + {\hyperlink{page.\abx@range@hold}{\abx@range@hold}} + {\abx@range@hold}% + \or % two+ + \ifnumless{\abx@range@diff}{2} + {\sqspace + \ifhyperref + {\hyperlink{page.\abx@range@hold}{\bibstring{sequens}}} + {\bibstring{sequens}}} + {\bibrangedash + \ifhyperref + {\hyperlink{page.\abx@range@hold}{\abx@range@hold}} + {\abx@range@hold}}% + \or % three+ + \ifnumless{\abx@range@diff}{2} + {\sqspace + \ifhyperref + {\hyperlink{page.\abx@range@hold}{\bibstring{sequens}}} + {\bibstring{sequens}}} + {\ifnumless{\abx@range@diff}{3} + {\sqspace + \ifhyperref + {\hyperlink{page.\abx@range@hold}{\bibstring{sequentes}}} + {\bibstring{sequentes}}} + {\bibrangedash + \ifhyperref + {\hyperlink{page.\abx@range@hold}{\abx@range@hold}} + {\abx@range@hold}}}% + \else % all+ + \ifnumless{\abx@range@diff}{2} + {\sqspace + \ifhyperref + {\hyperlink{page.\abx@range@hold}{\bibstring{sequens}}} + {\bibstring{sequens}}} + {\sqspace + \ifhyperref + {\hyperlink{page.\abx@range@hold}{\bibstring{sequentes}}} + {\bibstring{sequentes}}}% + \fi + \def\abx@range@diff{0}} + {}} + +% ------------------------------------------------------------------ +% NAME LIST FORMATS +% ------------------------------------------------------------------ + +% Formatting directives for name lists +% ------------------------------------------------------------------ + +\DeclareNameWrapperFormat{default}{#1} + +\DeclareNameFormat{given-family}{% + \ifgiveninits + {\usebibmacro{name:given-family} + {\namepartfamily} + {\namepartgiveni} + {\namepartprefix} + {\namepartsuffix}} + {\usebibmacro{name:given-family} + {\namepartfamily} + {\namepartgiven} + {\namepartprefix} + {\namepartsuffix}}% + \usebibmacro{name:andothers}} + +\DeprecateNameFormatWithReplacement{first-last}{given-family} + +\DeclareNameFormat{family-given}{% + \ifgiveninits + {\usebibmacro{name:family-given} + {\namepartfamily} + {\namepartgiveni} + {\namepartprefix} + {\namepartsuffix}} + {\usebibmacro{name:family-given} + {\namepartfamily} + {\namepartgiven} + {\namepartprefix} + {\namepartsuffix}}% + \usebibmacro{name:andothers}} + +\DeprecateNameFormatWithReplacement{last-first}{family-given} + + +\DeclareNameFormat{family-given/given-family}{% + \ifnumequal{\value{listcount}}{1} + {\ifgiveninits + {\usebibmacro{name:family-given} + {\namepartfamily} + {\namepartgiveni} + {\namepartprefix} + {\namepartsuffix}} + {\usebibmacro{name:family-given} + {\namepartfamily} + {\namepartgiven} + {\namepartprefix} + {\namepartsuffix}}% + \ifboolexpe{% + test {\ifdefvoid\namepartgiven} + and + test {\ifdefvoid\namepartprefix}} + {} + {\usebibmacro{name:revsdelim}}} + {\ifgiveninits + {\usebibmacro{name:given-family} + {\namepartfamily} + {\namepartgiveni} + {\namepartprefix} + {\namepartsuffix}} + {\usebibmacro{name:given-family} + {\namepartfamily} + {\namepartgiven} + {\namepartprefix} + {\namepartsuffix}}}% + \usebibmacro{name:andothers}} + +\DeprecateNameFormatWithReplacement{last-first/first-last}{family-given/given-family} + +\DeclareNameFormat{initsonly}{% + \usebibmacro{name:given-family} + {\namepartfamilyi} + {\namepartgiveni} + {\namepartprefixi} + {\namepartsuffixi}% + \usebibmacro{name:andothers}} + +% Fallback used by \printnames +\DeclareNameAlias{default}{given-family} + +% Default used by \citename +\DeclareNameAlias{citename}{default} + +% Used in some citations +\DeclareNameFormat{labelname}{% + \ifcase\value{uniquename}% + \usebibmacro{name:family} + {\namepartfamily} + {\namepartgiven} + {\namepartprefix} + {\namepartsuffix}% + \or + \ifuseprefix + {\usebibmacro{name:given-family} + {\namepartfamily} + {\namepartgiveni} + {\namepartprefix} + {\namepartsuffixi}} + {\usebibmacro{name:given-family} + {\namepartfamily} + {\namepartgiveni} + {\namepartprefixi} + {\namepartsuffixi}}% + \or + \usebibmacro{name:given-family} + {\namepartfamily} + {\namepartgiven} + {\namepartprefix} + {\namepartsuffix}% + \fi + \usebibmacro{name:andothers}} + +% Used in the bibliography +\DeclareNameAlias{sortname}{family-given/given-family} + +\DeclareNameAlias{author}{default} +\DeclareNameAlias{bookauthor}{author} +\DeclareNameAlias{editor}{default} +\DeclareNameAlias{editora}{editor} +\DeclareNameAlias{editorb}{editor} +\DeclareNameAlias{editorc}{editor} +\DeclareNameAlias{translator}{default} + +\DeclareNameAlias{byauthor}{default} +\DeclareNameAlias{bybookauthor}{byauthor} +\DeclareNameAlias{byeditor}{default} +\DeclareNameAlias{byeditora}{byeditor} +\DeclareNameAlias{byeditorb}{byeditor} +\DeclareNameAlias{byeditorc}{byeditor} +\DeclareNameAlias{bytranslator}{default} + +\DeclareNameAlias{withcommentator}{default} +\DeclareNameAlias{withannotator}{default} +\DeclareNameAlias{withintroduction}{default} +\DeclareNameAlias{withforeword}{default} +\DeclareNameAlias{withafterword}{default} + +\DeclareFieldFormat{authortype}{#1} +\DeclareFieldFormat{editortype}{#1} +\DeclareFieldFormat{translatortype}{#1} + +% Auxiliary macros for name formatting directives +% ------------------------------------------------------------------ + +\newcommand{\mkbibcompletename}[1]{#1} + +\newcommand{\mkbibcompletenamefamily}{\mkbibcompletename} + +\newbibmacro*{name:family}[4]{% + \ifuseprefix + {\usebibmacro{name:delim}{#3#1}% + \usebibmacro{name:hook}{#3#1}% + \mkbibcompletenamefamily{% + \ifdefvoid{#3} + {} + {\ifcapital + {\mkbibnameprefix{\MakeCapital{#3}}\isdot} + {\mkbibnameprefix{#3}\isdot}% + \ifprefchar{}{\bibnamedelimc}}% + \mkbibnamefamily{#1}\isdot}} + {\usebibmacro{name:delim}{#1}% + \usebibmacro{name:hook}{#1}% + \mkbibcompletenamefamily{% + \mkbibnamefamily{#1}\isdot}}}% +\newbibmacro*{name:last}[4]{% legacy alias + \blx@warning@noline{% + 'name:last' is deprecated, please use 'name:family'}% + \usebibmacro{name:family}{#1}{#2}{#3}{#4}} + +\newcommand{\mkbibcompletenamegivenfamily}{\mkbibcompletename} + +\newbibmacro*{name:given-family}[4]{% + \usebibmacro{name:delim}{#2#3#1}% + \usebibmacro{name:hook}{#2#3#1}% + \mkbibcompletenamegivenfamily{% + \ifdefvoid{#2} + {} + {\mkbibnamegiven{#2}\isdot\bibnamedelimd}% + \ifdefvoid{#3} + {} + {\mkbibnameprefix{#3}\isdot + \ifprefchar + {} + {\ifuseprefix{\bibnamedelimc}{\bibnamedelimd}}}% + \mkbibnamefamily{#1}\isdot + \ifdefvoid{#4}{}{\bibnamedelimd\mkbibnamesuffix{#4}\isdot}}} +\newbibmacro*{name:first-last}[4]{% legacy alias + \blx@warning@noline{% + 'name:first-last' is deprecated, please use 'name:given-family'}% + \usebibmacro{name:given-family}{#1}{#2}{#3}{#4}} + +\newcommand{\mkbibcompletenamefamilygiven}{\mkbibcompletename} + +\newbibmacro*{name:family-given}[4]{% + \ifuseprefix + {\usebibmacro{name:delim}{#3#1}% + \usebibmacro{name:hook}{#3#1}% + \mkbibcompletenamefamilygiven{% + \ifdefvoid{#3} + {} + {\ifcapital + {\mkbibnameprefix{\MakeCapital{#3}}\isdot} + {\mkbibnameprefix{#3}\isdot}% + \ifprefchar{}{\bibnamedelimc}}% + \mkbibnamefamily{#1}\isdot + \ifdefvoid{#4} + {} + {\bibnamedelimd\mkbibnamesuffix{#4}\isdot}% + \ifdefvoid{#2} + {} + {\revsdnamepunct\bibnamedelimd\mkbibnamegiven{#2}\isdot}}} + {\usebibmacro{name:delim}{#1}% + \usebibmacro{name:hook}{#1}% + \mkbibcompletenamefamilygiven{% + \mkbibnamefamily{#1}\isdot + \ifdefvoid{#4} + {} + {\bibnamedelimd\mkbibnamesuffix{#4}\isdot}% + \ifboolexpe{% + test {\ifdefvoid{#2}} + and + test {\ifdefvoid{#3}}} + {} + {\revsdnamepunct}% + \ifdefvoid{#2} + {} + {\bibnamedelimd\mkbibnamegiven{#2}\isdot}% + \ifdefvoid{#3} + {} + {\bibnamedelimd\mkbibnameprefix{#3}\isdot}}}} +\newbibmacro*{name:last-first}[4]{% legacy alias + \blx@warning@noline{% + 'name:last-first' is deprecated, please use 'name:family-given'}% + \usebibmacro{name:family-given}{#1}{#2}{#3}{#4}} + +\newbibmacro*{name:hook}[1]{% + \ifnumequal{\value{listcount}}{1} + {\lbx@initnamehook{#1}} + {}} + +\newbibmacro*{name:delim}[1]{% + \ifnumgreater{\value{listcount}}{\value{liststart}} + {\ifboolexpr{ + test {\ifnumless{\value{listcount}}{\value{liststop}}} + or + test \ifmorenames + } + {\printdelim{multinamedelim}} + {\lbx@finalnamedelim{#1}}} + {}} + +\newbibmacro*{name:revsdelim}{% + \ifboolexpr{ + ( + test {\ifnumequal{\value{liststop}}{1}} + and + test \ifmorenames + ) + or + test {\ifnumequal{\value{liststop}}{2}} + } + {\printdelim{revsdnamedelim}} + {}} + +\newbibmacro*{name:andothers}{% + \ifboolexpr{ + test {\ifnumequal{\value{listcount}}{\value{liststop}}} + and + test \ifmorenames + } + {\ifnumgreater{\value{liststop}}{1} + {\finalandcomma} + {}% + \printdelim{andothersdelim}\bibstring{andothers}} + {}} + +% ------------------------------------------------------------------ +% INDEX FORMATS FOR FIELDS (#1 is the value of the field) +% ------------------------------------------------------------------ + +% There is no need to test if a field to be indexed is empty because +% \indexfield performs this test implicitly. + +% The fallback used by \indexfield + +\DeclareIndexFieldFormat{default}{\index{#1}} + +% Used in the bibliography and in citations + +\DeclareIndexFieldFormat{indextitle}{% + \usebibmacro{index:title}{\index}{#1}} + +\newbibmacro*{index:title}[2]{% + \usebibmacro{index:field}{#1}{\thefield{indexsorttitle}}{\emph{#2}}} + +\newbibmacro*{index:field}[3]{% + \usebibmacro{index:entry}{#1}{\mkbibindexfield{#2}{#3}}} + +% Auxiliary macros for field indexing directives +% ------------------------------------------------------------------ + +\newbibmacro*{index:entry}[2]{% + \begingroup + \protected@edef\theindexentry{\unexpanded{#1}{#2}}% + \theindexentry + \endgroup} + +\newcommand*{\mkbibindexfield}[2]{\mkbibindexentry{#1}{\unexpanded{#2}}} +\newcommand*{\mkbibindexentry}[2]{#1\actualoperator#2} + +% ------------------------------------------------------------------ +% INDEX FORMATS FOR LITERAL LISTS (#1 is the current item) +% ------------------------------------------------------------------ + +% The fallback used by \indexlist + +\DeclareIndexListWrapperFormat{default}{#1} + +\DeclareIndexListFormat{default}{\index{#1}} + +% ------------------------------------------------------------------ +% INDEX FORMATS FOR NAME LISTS +% ------------------------------------------------------------------ + +% Indexing directives for name lists +% ------------------------------------------------------------------ + +% The fallback used by \indexnames + +\DeclareIndexNameWrapperFormat{default}{#1} + +\DeclareIndexNameFormat{default}{% + \usebibmacro{index:name} + {\index} + {\namepartfamily} + {\namepartgiven} + {\namepartprefix} + {\namepartsuffix}} + +% Used in citations + +\DeclareIndexNameAlias{labelname}{default} + +% Used in the bibliography + +\DeclareIndexNameAlias{author}{default} +\DeclareIndexNameAlias{editor}{default} +\DeclareIndexNameAlias{bookauthor}{default} + +% Auxiliary macros for name indexing directives +% ------------------------------------------------------------------ + +% When generating an index entry, we need to test which parts of a +% name are actually available to prevent spurious punctuation and +% spaces. +% +% Note that the standard LaTeX \index command simply writes its +% argument to the .idx file without preventing expansion. This means +% that all \ifblank etc. tests are expanded on the way and will not end +% up in the index. The index package, however, prevents expansion. +% This would lead to \ifblank etc. ending up in the .idx file. To avoid +% that, we preprocess the index entry inside an \edef. We use +% \unexpanded to protect the \index command and the actual data from +% expansion. This definition will work with both index.sty and the +% standard indexing facilities. +% +% We also use \ifuseprefix to ensure that the name prefix is handled +% properly. \actualoperator is the so-called actual operator, as +% defined by the 'actual' specifier in the .ist file. The makeindex +% program will use the part preceeding the \actualoperator +% delimiter for sorting. The part after the delimiter is used as the +% index is printed. Note that this is not specific to biblatex, see +% the makeindex documentation for details. + +\newcommand*{\actualoperator}{@} +\newcommand*{\subentryoperator}{!} + +\newbibmacro*{index:name}[5]{% + \usebibmacro{index:entry}{#1}{\mkbibindexname{#2}{#3}{#4}{#5}}} + +% {<family name>}{<given name>}{<given initials>}{<family name prefix>} +\newcommand*{\mkbibindexname}[4]{% + \ifuseprefix + {\ifdefvoid{#3}{}{#3 }% + \@firstofone #1% remove spurious braces + \ifdefvoid{#4}{}{ #4}% + \ifdefvoid{#2}{}{, #2}% + \ifdefvoid{#3}{}{% + \actualoperator + \MakeCapital{#3} % + #1% + \ifdefvoid{#4}{}{ #4}% + \ifdefvoid{#2}{}{, #2}}} + {\@firstofone #1% remove spurious braces + \ifdefvoid{#4}{}{ #4}% + \ifboolexpe{% + test {\ifdefvoid{#2}} + and + test {\ifdefvoid{#3}}} + {} + {,}% + \ifdefvoid{#2}{}{ #2}% + \ifdefvoid{#3}{}{ #3}}} + +% {<control sequence>}{<control sequence>} +\newcommand*{\mkbibindexsubentry}[2]{% + \ifblank{#1}{}{\subentryoperator#1\actualoperator#2}} + +% Additional macros with subentries + +\newbibmacro*{index:name:field}[6]{% + \usebibmacro{index:name:subentry}{#1}{#2}{#3}{#4}{#5} + {\thefield{#6}}{\csfield{#6}}} + +\newbibmacro*{index:name:title}[5]{% + \usebibmacro{index:name:subentry}{#1}{#2}{#3}{#4}{#5} + {\thefield{indexsorttitle}}{\emph{\csfield{indextitle}}}} + +\newbibmacro*{index:name:subentry}[7]{% + \usebibmacro{index:entry}{#1}{% + \mkbibindexname{#2}{#3}{#4}{#5}\mkbibindexsubentry{#6}{#7}}} + +% ------------------------------------------------------------------ +% datafieldsets +% ------------------------------------------------------------------ + +% Some defaults for backwards compat for the biber nosort option +\DeclareDatafieldSet{setnames}{ + \member[datatype=name, fieldtype=list] +} + +\DeclareDatafieldSet{settitles}{ + \member[field=title] + \member[field=booktitle] + \member[field=eventtitle] + \member[field=issuetitle] + \member[field=journaltitle] + \member[field=maintitle] + \member[field=origtitle] +} + +% ------------------------------------------------------------------ +% Driver sourcemaps +% ------------------------------------------------------------------ + +\DeclareDriverSourcemap[datatype=bibtex]{ + \map{ + \step[fieldset=day, null] + } + \map{ + \step[typesource=conference, typetarget=inproceedings] + \step[typesource=electronic, typetarget=online] + \step[typesource=www, typetarget=online] + } + \map{ + \step[typesource=mastersthesis, typetarget=thesis, final] + \step[fieldset=type, fieldvalue=mathesis] + } + \map{ + \step[typesource=phdthesis, typetarget=thesis, final] + \step[fieldset=type, fieldvalue=phdthesis] + } + \map{ + \step[typesource=techreport, typetarget=report, final] + \step[fieldset=type, fieldvalue=techreport] + } + \map{ + \step[fieldsource=hyphenation, fieldtarget=langid] + \step[fieldsource=address, fieldtarget=location] + \step[fieldsource=school, fieldtarget=institution] + \step[fieldsource=annote, fieldtarget=annotation] + \step[fieldsource=archiveprefix, fieldtarget=eprinttype] + \step[fieldsource=journal, fieldtarget=journaltitle] + \step[fieldsource=primaryclass, fieldtarget=eprintclass] + \step[fieldsource=key, fieldtarget=sortkey] + \step[fieldsource=pdf, fieldtarget=file] + } +} + +% ------------------------------------------------------------------ +% META-FIELDS +% ------------------------------------------------------------------ + +\DeclareLabelname{% + \field{shortauthor} + \field{author} + \field{shorteditor} + \field{editor} + \field{translator} +} + +\DeclareLabeldate{% + \field{date} + \field{year} + \field{eventdate} + \field{origdate} + \field{urldate} + \literal{nodate} +} + +\DeclareExtradate{% + \scope{ + \field{labelyear} + \field{year} + } +} + +\DeclareLabeltitle{% + \field{shorttitle} + \field{title} + \field{maintitle} +} + +% ------------------------------------------------------------------ +% LABELALPHA TEMPLATE +% ------------------------------------------------------------------ + +\DeclareLabelalphaTemplate{ + \labelelement{ + \field[final]{shorthand} + \field{label} + \field[strwidth=3,strside=left,ifnames=1]{labelname} + \field[strwidth=1,strside=left]{labelname} + } + \labelelement{ + \field[strwidth=2,strside=right]{year} + } +} + +% ------------------------------------------------------------------ +% LABELALPHA NAME TEMPLATE +% ------------------------------------------------------------------ + +\DeclareLabelalphaNameTemplate{ + \namepart[use=true, pre=true, strwidth=1, compound=true]{prefix} + \namepart{family} +} + +% ------------------------------------------------------------------ +% UNIQUENAME TEMPLATE +% ------------------------------------------------------------------ + +\DeclareUniquenameTemplate{ + \namepart[use=true, base=true]{prefix} + \namepart[base=true]{family} + \namepart{given} +} + +% ------------------------------------------------------------------ +% SORTING +% ------------------------------------------------------------------ + +\DeclareSortingNamekeyTemplate{ + \keypart{ + \namepart[use=true]{prefix} + } + \keypart{ + \namepart{family} + } + \keypart{ + \namepart{given} + } + \keypart{ + \namepart{suffix} + } + \keypart{ + \namepart[use=false]{prefix} + } +} + +\DeclarePresort{mm} + +\DeclareSortingTemplate{shorthand}{ + \sort[final]{ + \field{sortshorthand} + } + \sort{ + \field{shorthand} + } +} + +\DeclareSortingTemplate{none}{ + \sort{\citeorder} +} + +\DeclareSortingTemplate{debug}{ + \sort{ + \field{entrykey} + } +} + +\DeclareSortingTemplate{nty}{ + \sort{ + \field{presort} + } + \sort[final]{ + \field{sortkey} + } + \sort{ + \field{sortname} + \field{author} + \field{editor} + \field{translator} + \field{sorttitle} + \field{title} + } + \sort{ + \field{sorttitle} + \field{title} + } + \sort{ + \field{sortyear} + \field{year} + } + \sort{ + \field{volume} + \literal{0} + } +} + +\DeclareSortingTemplate{nyt}{ + \sort{ + \field{presort} + } + \sort[final]{ + \field{sortkey} + } + \sort{ + \field{sortname} + \field{author} + \field{editor} + \field{translator} + \field{sorttitle} + \field{title} + } + \sort{ + \field{sortyear} + \field{year} + } + \sort{ + \field{sorttitle} + \field{title} + } + \sort{ + \field{volume} + \literal{0} + } +} + +\DeclareSortingTemplate{nyvt}{ + \sort{ + \field{presort} + } + \sort[final]{ + \field{sortkey} + } + \sort{ + \field{sortname} + \field{author} + \field{editor} + \field{translator} + \field{sorttitle} + \field{title} + } + \sort{ + \field{sortyear} + \field{year} + } + \sort{ + \field{volume} + \literal{0} + } + \sort{ + \field{sorttitle} + \field{title} + } +} + +\DeclareSortingTemplate{anyt}{ + \sort{ + \field{presort} + } + \sort{ + \field{labelalpha} + } + \sort[final]{ + \field{sortkey} + } + \sort{ + \field{sortname} + \field{author} + \field{editor} + \field{translator} + \field{sorttitle} + \field{title} + } + \sort{ + \field{sortyear} + \field{year} + } + \sort{ + \field{sorttitle} + \field{title} + } + \sort{ + \field{volume} + \literal{0} + } +} + +\DeclareSortingTemplate{anyvt}{ + \sort{ + \field{presort} + } + \sort{ + \field{labelalpha} + } + \sort[final]{ + \field{sortkey} + } + \sort{ + \field{sortname} + \field{author} + \field{editor} + \field{translator} + \field{sorttitle} + \field{title} + } + \sort{ + \field{sortyear} + \field{year} + } + \sort{ + \field{volume} + \literal{0} + } + \sort{ + \field{sorttitle} + \field{title} + } +} + +\DeclareSortingTemplate{ynt}{ + \sort{ + \field{presort} + } + \sort[final]{ + \field{sortkey} + } + \sort{ + \field{sortyear} + \field{year} + \literal{9999} + } + \sort{ + \field{sortname} + \field{author} + \field{editor} + \field{translator} + \field{sorttitle} + \field{title} + } + \sort{ + \field{sorttitle} + \field{title} + } +} + +\DeclareSortingTemplate{ydnt}{ + \sort{ + \field{presort} + } + \sort[final]{ + \field{sortkey} + } + \sort[direction=descending]{ + \field{sortyear} + \field{year} + \literal{9999} + } + \sort{ + \field{sortname} + \field{author} + \field{editor} + \field{translator} + \field{sorttitle} + \field{title} + } + \sort{ + \field{sorttitle} + \field{title} + } +} + +% ------------------------------------------------------------------ +% DATA INHERITANCE (CROSSREF) +% ------------------------------------------------------------------ + +\DefaultInheritance{all=true,override=false} + +\DeclareDataInheritance{mvbook,book}{inbook,bookinbook,suppbook}{% + \inherit{author}{author} + \inherit{author}{bookauthor} +} + +\DeclareDataInheritance{mvbook}{book,inbook,bookinbook,suppbook}{% + \inherit{title}{maintitle} + \inherit{subtitle}{mainsubtitle} + \inherit{titleaddon}{maintitleaddon} + \noinherit{shorttitle} + \noinherit{sorttitle} + \noinherit{indextitle} + \noinherit{indexsorttitle} +} + +\DeclareDataInheritance{mvcollection,mvreference} +{collection,reference,incollection,inreference,suppcollection}{% + \inherit{title}{maintitle} + \inherit{subtitle}{mainsubtitle} + \inherit{titleaddon}{maintitleaddon} + \noinherit{shorttitle} + \noinherit{sorttitle} + \noinherit{indextitle} + \noinherit{indexsorttitle} +} + +\DeclareDataInheritance{mvproceedings}{proceedings,inproceedings}{% + \inherit{title}{maintitle} + \inherit{subtitle}{mainsubtitle} + \inherit{titleaddon}{maintitleaddon} + \noinherit{shorttitle} + \noinherit{sorttitle} + \noinherit{indextitle} + \noinherit{indexsorttitle} +} + +\DeclareDataInheritance{book}{inbook,bookinbook,suppbook}{% + \inherit{title}{booktitle} + \inherit{subtitle}{booksubtitle} + \inherit{titleaddon}{booktitleaddon} + \noinherit{shorttitle} + \noinherit{sorttitle} + \noinherit{indextitle} + \noinherit{indexsorttitle} +} + +\DeclareDataInheritance{collection,reference} +{incollection,inreference,suppcollection}{% + \inherit{title}{booktitle} + \inherit{subtitle}{booksubtitle} + \inherit{titleaddon}{booktitleaddon} + \noinherit{shorttitle} + \noinherit{sorttitle} + \noinherit{indextitle} + \noinherit{indexsorttitle} +} + +\DeclareDataInheritance{proceedings}{inproceedings}{% + \inherit{title}{booktitle} + \inherit{subtitle}{booksubtitle} + \inherit{titleaddon}{booktitleaddon} + \noinherit{shorttitle} + \noinherit{sorttitle} + \noinherit{indextitle} + \noinherit{indexsorttitle} +} + +\DeclareDataInheritance{periodical}{article,suppperiodical}{% + \inherit{title}{journaltitle} + \inherit{subtitle}{journalsubtitle} + \noinherit{shorttitle} + \noinherit{sorttitle} + \noinherit{indextitle} + \noinherit{indexsorttitle} +} + +\DeclareDataInheritance{*}{*}{% + \noinherit{ids} + \noinherit{crossref} + \noinherit{xref} + \noinherit{entryset} + \noinherit{entrysubtype} + \noinherit{execute} + \noinherit{label} + \noinherit{options} + \noinherit{presort} + \noinherit{related} + \noinherit{relatedoptions} + \noinherit{relatedstring} + \noinherit{relatedtype} + \noinherit{shorthand} + \noinherit{shorthandintro} + \noinherit{sortkey} +} + +% ------------------------------------------------------------------ +% MACROS FOR LBX FILES +% ------------------------------------------------------------------ + +\newcommand*{\lbx@initnamehook}[1]{} +\newcommand*{\lbx@inittitlehook}[1]{} +\newcommand*{\lbx@finalnamedelim}[1]{\printdelim{finalnamedelim}} +\newcommand*{\lbx@finallistdelim}[1]{\printdelim{finallistdelim}} + +\newcommand*{\lbx@lfromlang}{% + \iflistundef{origlanguage} + {\unspace} + {\printlist[lfromoriglanguage]{origlanguage}}} + +\newcommand*{\lbx@sfromlang}{% + \iflistundef{origlanguage} + {\unspace} + {\printlist[sfromoriglanguage]{origlanguage}}} + +% ------------------------------------------------------------------ +% MISCELLANEOUS +% ------------------------------------------------------------------ + +% ordinals + +\newcommand*{\mkbibordedition}{\mkbibordinal} +\newcommand*{\mkbibordseries}{\mkbibordinal} + +% american + +\newrobustcmd*{\uspunctuation}{% + \DeclareQuotePunctuation{.,}% + \DeclarePunctuationPairs{comma}{*}} +\newrobustcmd*{\stdpunctuation}{% + \DeclareQuotePunctuation{}% + \DeclarePunctuationPairs{comma}{*!?}} + +% catalan and french + +\newtoggle{smartof} +\newrobustcmd*{\smartof}{\global\toggletrue{smartof}} +\newrobustcmd*{\forceD}[1]{#1} +\newrobustcmd*{\forceDE}[1]{#1} + +\AtBeginDocument{% + \@ifpackageloaded{babel} + {\ifdef\AutoSpaceBeforeFDP + {\newrobustcmd*{\EnsureAutoSpaceBeforeFDP}{% + \iflanguage{french} + {\AutoSpaceBeforeFDP} + {}}% + \appto\bibsetup{\EnsureAutoSpaceBeforeFDP}% + \appto\citesetup{\EnsureAutoSpaceBeforeFDP}} + {}} + {}} + +% spanish + +\newcounter{smartand} +\defcounter{smartand}{1} +\newrobustcmd*{\forceY}[1]{#1} +\newrobustcmd*{\forceE}[1]{#1} + +% ------------------------------------------------------------------ +% PREDEFINED HEADINGS +% ------------------------------------------------------------------ + +\newcommand*{\abx@classtype}{0} +\@ifclassloaded{article} + {} + {\@ifclassloaded{book} + {\def\abx@classtype{1}} + {\@ifclassloaded{report} + {\def\abx@classtype{1}} + {\@ifclassloaded{scrartcl} + {\def\abx@classtype{2}} + {\@ifclassloaded{scrbook} + {\def\abx@classtype{3}} + {\@ifclassloaded{scrreprt} + {\def\abx@classtype{3}} + {\@ifclassloaded{memoir} + {\ifbool{artopt} + {\def\abx@classtype{4}} + {\def\abx@classtype{5}}} + {\ifundef\chapter + {} + {\def\abx@classtype{1}}}}}}}}} + +\defbibheading{none}{} + +\def\abx@MakeMarkcase{\MakeUppercase} +\AtBeginDocument{% + \ifcsundef{MakeMarkcase}{}{\def\abx@MakeMarkcase{\MakeMarkcase}}} + +\ifcase\abx@classtype\relax % article + \defbibheading{bibliography}[\refname]{% + \section*{#1}% + \@mkboth{\abx@MakeMarkcase{#1}}{\abx@MakeMarkcase{#1}}} + \defbibheading{biblist}[\biblistname]{% + \section*{#1}% + \@mkboth{\abx@MakeMarkcase{#1}}{\abx@MakeMarkcase{#1}}} + \defbibheading{bibintoc}[\refname]{% + \section*{#1}% + \addcontentsline{toc}{section}{#1}% + \@mkboth{\abx@MakeMarkcase{#1}}{\abx@MakeMarkcase{#1}}} + \defbibheading{biblistintoc}[\biblistname]{% + \section*{#1}% + \addcontentsline{toc}{section}{#1}% + \@mkboth{\abx@MakeMarkcase{#1}}{\abx@MakeMarkcase{#1}}} + \defbibheading{bibnumbered}[\refname]{% + \section{#1}} + \defbibheading{biblistnumbered}[\biblistname]{% + \section{#1}} + \defbibheading{subbibliography}[\refname]{% + \subsection*{#1}} + \defbibheading{subbibintoc}[\refname]{% + \subsection*{#1}% + \addcontentsline{toc}{subsection}{#1}} + \defbibheading{subbibnumbered}[\refname]{% + \subsection{#1}} + +\or % book/report + \defbibheading{bibliography}[\bibname]{% + \chapter*{#1}% + \@mkboth{\abx@MakeMarkcase{#1}}{\abx@MakeMarkcase{#1}}} + \defbibheading{biblist}[\biblistname]{% + \chapter*{#1}% + \@mkboth{\abx@MakeMarkcase{#1}}{\abx@MakeMarkcase{#1}}} + \defbibheading{bibintoc}[\bibname]{% + \chapter*{#1}% + \addcontentsline{toc}{chapter}{#1}% + \@mkboth{\abx@MakeMarkcase{#1}}{\abx@MakeMarkcase{#1}}} + \defbibheading{biblistintoc}[\biblistname]{% + \chapter*{#1}% + \addcontentsline{toc}{chapter}{#1}% + \@mkboth{\abx@MakeMarkcase{#1}}{\abx@MakeMarkcase{#1}}} + \defbibheading{bibnumbered}[\bibname]{% + \chapter{#1}} + \defbibheading{biblistnumbered}[\biblistname]{% + \chapter{#1}} + \defbibheading{subbibliography}[\refname]{% + \section*{#1}% + \if@twoside\markright{\abx@MakeMarkcase{#1}}\fi} + \defbibheading{subbibintoc}[\refname]{% + \section*{#1}% + \addcontentsline{toc}{section}{#1}% + \if@twoside\markright{\abx@MakeMarkcase{#1}}\fi} + \defbibheading{subbibnumbered}[\refname]{% + \section{#1}} + +\or % scrartcl + \defbibheading{bibliography}[\refname]{% + \ifcsundef{bibliography@heading} + {\ifkomabibtotocnumbered + {\section{#1}} + {\ifkomabibtotoc + {\addsec{#1}} + {\section*{#1}% + \ifcsundef{@mkdouble} + {\@mkboth{\abx@MakeMarkcase{#1}}{\abx@MakeMarkcase{#1}}} + {\@mkdouble{\abx@MakeMarkcase{#1}}}}}} + {\bibliography@heading{#1}}} + \defbibheading{biblist}[\biblistname]{% + \ifcsundef{bibliography@heading} + {\ifkomabibtotocnumbered + {\section{#1}} + {\ifkomabibtotoc + {\addsec{#1}} + {\section*{#1}% + \ifcsundef{@mkdouble} + {\@mkboth{\abx@MakeMarkcase{#1}}{\abx@MakeMarkcase{#1}}} + {\@mkdouble{\abx@MakeMarkcase{#1}}}}}} + {\bibliography@heading{#1}}} + \defbibheading{bibintoc}[\refname]{% + \addsec{#1}} + \defbibheading{biblistintoc}[\biblistname]{% + \addsec{#1}} + \defbibheading{bibnumbered}[\refname]{% + \section{#1}} + \defbibheading{biblistnumbered}[\biblistname]{% + \section{#1}} + \defbibheading{subbibliography}[\refname]{% + \subsection*{#1}% + \ifcsundef{@mkright} + {\ifx\@mkboth\@gobbletwo\else\markright{\abx@MakeMarkcase{#1}}\fi} + {\@mkright{\abx@MakeMarkcase{#1}}}} + \defbibheading{subbibintoc}[\refname]{% + \subsection*{#1}% + \addcontentsline{toc}{subsection}{#1}% + \ifcsundef{@mkright} + {\ifx\@mkboth\@gobbletwo\else\markright{\abx@MakeMarkcase{#1}}\fi} + {\@mkright{\abx@MakeMarkcase{#1}}}} + \defbibheading{subbibnumbered}[\refname]{% + \subsection{#1}} + +\or % scrbook/scrreprt + \defbibheading{bibliography}[\bibname]{% + \ifcsundef{bibliography@heading} + {\ifkomabibtotocnumbered + {\chapter{#1}} + {\ifkomabibtotoc + {\addchap{#1}} + {\chapter*{#1} + \ifcsundef{@mkdouble} + {\@mkboth{\abx@MakeMarkcase{#1}}{\abx@MakeMarkcase{#1}}} + {\@mkdouble{\abx@MakeMarkcase{#1}}}}}} + {\bibliography@heading{#1}}} + \defbibheading{biblist}[\biblistname]{% + \ifcsundef{bibliography@heading} + {\ifkomabibtotocnumbered + {\chapter{#1}} + {\ifkomabibtotoc + {\addchap{#1}} + {\chapter*{#1} + \ifcsundef{@mkdouble} + {\@mkboth{\abx@MakeMarkcase{#1}}{\abx@MakeMarkcase{#1}}} + {\@mkdouble{\abx@MakeMarkcase{#1}}}}}} + {\bibliography@heading{#1}}} + \defbibheading{bibintoc}[\bibname]{% + \addchap{#1}} + \defbibheading{biblistintoc}[\biblistname]{% + \addchap{#1}} + \defbibheading{bibnumbered}[\bibname]{% + \chapter{#1}} + \defbibheading{biblistnumbered}[\biblistname]{% + \chapter{#1}} + \defbibheading{subbibliography}[\refname]{% + \section*{#1}% + \ifcsundef{@mkright} + {\ifx\@mkboth\@gobbletwo\else\markright{\abx@MakeMarkcase{#1}}\fi} + {\@mkright{\abx@MakeMarkcase{#1}}}} + \defbibheading{subbibintoc}[\refname]{% + \addsec{#1}} + \defbibheading{subbibnumbered}[\refname]{% + \section{#1}} + +\or % memoir (article) + \ifcsundef{memUChead}{}{\def\abx@MakeMarkcase{\memUChead}}% + \defbibheading{bibliography}[\refname]{% + \chapter*{#1}% + \if@twoside + \markboth{\abx@MakeMarkcase{#1}}{\abx@MakeMarkcase{#1}}% + \else + \markright{\abx@MakeMarkcase{#1}}% + \fi + \ifmemoirbibintoc + {\phantomsection + \addcontentsline{toc}{chapter}{#1}} + {}} + \defbibheading{biblist}[\biblistname]{% + \chapter*{#1}% + \if@twoside + \markboth{\abx@MakeMarkcase{#1}}{\abx@MakeMarkcase{#1}}% + \else + \markright{\abx@MakeMarkcase{#1}}% + \fi + \ifmemoirbibintoc + {\phantomsection + \addcontentsline{toc}{chapter}{#1}} + {}} + \defbibheading{bibintoc}[\refname]{% + \chapter*{#1}% + \if@twoside + \markboth{\abx@MakeMarkcase{#1}}{\abx@MakeMarkcase{#1}}% + \else + \markright{\abx@MakeMarkcase{#1}}% + \fi + \phantomsection + \addcontentsline{toc}{chapter}{#1}} + \defbibheading{biblistintoc}[\biblistname]{% + \chapter*{#1}% + \if@twoside + \markboth{\abx@MakeMarkcase{#1}}{\abx@MakeMarkcase{#1}}% + \else + \markright{\abx@MakeMarkcase{#1}}% + \fi + \phantomsection + \addcontentsline{toc}{chapter}{#1}} + \defbibheading{bibnumbered}[\refname]{% + \chapter{#1}} + \defbibheading{biblistnumbered}[\biblistname]{% + \chapter{#1}} + \defbibheading{subbibliography}[\refname]{% + \section*{#1}% + \if@twoside\markright{\abx@MakeMarkcase{#1}}\fi + \ifmemoirbibintoc + {\phantomsection + \addcontentsline{toc}{section}{#1}} + {}} + \defbibheading{subbibintoc}[\refname]{% + \section*{#1}% + \if@twoside\markright{\abx@MakeMarkcase{#1}}\fi + \phantomsection + \addcontentsline{toc}{section}{#1}} + \defbibheading{subbibnumbered}[\refname]{% + \section{#1}} + +\or % memoir (book) + \ifcsundef{memUChead}{}{\def\abx@MakeMarkcase{\memUChead}}% + \defbibheading{bibliography}[\bibname]{% + \chapter*{#1}% + \if@twoside + \markboth{\abx@MakeMarkcase{#1}}{\abx@MakeMarkcase{#1}}% + \else + \markright{\abx@MakeMarkcase{#1}}% + \fi + \ifmemoirbibintoc + {\phantomsection + \addcontentsline{toc}{chapter}{#1}} + {}} + \defbibheading{biblist}[\biblistname]{% + \chapter*{#1}% + \if@twoside + \markboth{\abx@MakeMarkcase{#1}}{\abx@MakeMarkcase{#1}}% + \else + \markright{\abx@MakeMarkcase{#1}}% + \fi + \ifmemoirbibintoc + {\phantomsection + \addcontentsline{toc}{chapter}{#1}} + {}} + \defbibheading{bibintoc}[\bibname]{% + \chapter*{#1}% + \if@twoside + \markboth{\abx@MakeMarkcase{#1}}{\abx@MakeMarkcase{#1}}% + \else + \markright{\abx@MakeMarkcase{#1}}% + \fi + \phantomsection + \addcontentsline{toc}{chapter}{#1}} + \defbibheading{biblistintoc}[\biblistname]{% + \chapter*{#1}% + \if@twoside + \markboth{\abx@MakeMarkcase{#1}}{\abx@MakeMarkcase{#1}}% + \else + \markright{\abx@MakeMarkcase{#1}}% + \fi + \phantomsection + \addcontentsline{toc}{chapter}{#1}} + \defbibheading{bibnumbered}[\bibname]{% + \chapter{#1}} + \defbibheading{biblistnumbered}[\biblistname]{% + \chapter{#1}} + \defbibheading{subbibliography}[\refname]{% + \section*{#1}% + \if@twoside\markright{\abx@MakeMarkcase{#1}}\fi + \ifmemoirbibintoc + {\phantomsection + \addcontentsline{toc}{section}{#1}} + {}} + \defbibheading{subbibintoc}[\refname]{% + \section*{#1}% + \if@twoside\markright{\abx@MakeMarkcase{#1}}\fi + \phantomsection + \addcontentsline{toc}{section}{#1}} + \defbibheading{subbibnumbered}[\refname]{% + \section{#1}} + +\fi + +% ------------------------------------------------------------------ +% GENERIC CITATION COMMANDS +% ------------------------------------------------------------------ + +\DeclareCiteCommand{\fullcite} + {\usebibmacro{prenote}} + {\usedriver + {\DeclareNameAlias{sortname}{default}} + {\thefield{entrytype}}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\footfullcite}[\mkbibfootnote] + {\usebibmacro{prenote}} + {\usedriver + {\DeclareNameAlias{sortname}{default}} + {\thefield{entrytype}}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\citeauthor} + {\boolfalse{citetracker}% + \boolfalse{pagetracker}% + \usebibmacro{prenote}} + {\ifciteindex + {\indexnames{labelname}} + {}% + \printnames{labelname}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand*{\citeauthor} + {\boolfalse{citetracker}% + \boolfalse{pagetracker}% + \usebibmacro{prenote}} + {\ifciteindex + {\indexnames{labelname}} + {}% + \printnames[][1-1]{labelname}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\citetitle} + {\boolfalse{citetracker}% + \boolfalse{pagetracker}% + \usebibmacro{prenote}} + {\ifciteindex + {\indexfield{indextitle}} + {}% + \printfield[citetitle]{labeltitle}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand*{\citetitle} + {\boolfalse{citetracker}% + \boolfalse{pagetracker}% + \usebibmacro{prenote}} + {\ifciteindex + {\indexfield{indextitle}} + {}% + \printfield[citetitle]{title}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\citeyear} + {\boolfalse{citetracker}% + \boolfalse{pagetracker}% + \usebibmacro{prenote}} + {\printfield{year}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand*{\citeyear} + {\boolfalse{citetracker}% + \boolfalse{pagetracker}% + \usebibmacro{prenote}} + {\printfield{year}\printfield{extradate}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\citedate} + {\boolfalse{citetracker}% + \boolfalse{pagetracker}% + \usebibmacro{prenote}} + {\printdate} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand*{\citedate} + {\boolfalse{citetracker}% + \boolfalse{pagetracker}% + \usebibmacro{prenote}} + {\printdateextra} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\citeurl} + {\boolfalse{citetracker}% + \boolfalse{pagetracker}% + \usebibmacro{prenote}} + {\printfield[citeurl]{url}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\notecite} + {\printfield{prenote}% + \setunit*{\printdelim{prenotedelim}}} + {\nocite{\thefield{entrykey}}} + {} + {\printfield{postnote}} + +\DeclareCiteCommand{\pnotecite}[\mkbibparens] + {\printfield{prenote}% + \setunit*{\printdelim{prenotedelim}}} + {\nocite{\thefield{entrykey}}} + {} + {\printfield{postnote}} + +\DeclareCiteCommand{\fnotecite}[\mkbibfootnote] + {\printfield{prenote}% + \setunit*{\printdelim{prenotedelim}}} + {\nocite{\thefield{entrykey}}} + {} + {\printfield{postnote}} + +\newrobustcmd*{\volcite}{\volcitecmd\cite} +\newrobustcmd*{\pvolcite}{\volcitecmd\parencite} +\newrobustcmd*{\fvolcite}{\volcitecmd\footcite} +\newrobustcmd*{\ftvolcite}{\volcitecmd\footcitetext} +\newrobustcmd*{\svolcite}{\volcitecmd\smartcite} +\newrobustcmd*{\tvolcite}{\volcitecmd\textcite} +\newrobustcmd*{\avolcite}{\volcitecmd\autocite} + +\newrobustcmd*{\volcites}{\multivolcitecmd\cites} +\newrobustcmd*{\pvolcites}{\multivolcitecmd\parencites} +\newrobustcmd*{\fvolcites}{\multivolcitecmd\footcites} +\newrobustcmd*{\ftvolcites}{\multivolcitecmd\footcitetexts} +\newrobustcmd*{\svolcites}{\multivolcitecmd\smartcites} +\newrobustcmd*{\tvolcites}{\multivolcitecmd\textcites} +\newrobustcmd*{\avolcites}{\multivolcitecmd\autocites} + +\newrobustcmd*{\Cite}{\bibsentence\cite} +\newrobustcmd*{\Parencite}{\bibsentence\parencite} +\newrobustcmd*{\Footcite}{\footcite} +\newrobustcmd*{\Footcitetext}{\footcitetext} +\newrobustcmd*{\Smartcite}{\bibsentence\smartcite} +\newrobustcmd*{\Textcite}{\bibsentence\textcite} +\newrobustcmd*{\Citeauthor}{% + \@ifstar{\bibsentence\citeauthor*}{\bibsentence\citeauthor}} +\newrobustcmd*{\Citetitle}{\bibsentence\citetitle} + +\newrobustcmd*{\Volcite}{\volcitecmd\Cite} +\newrobustcmd*{\Pvolcite}{\volcitecmd\Parencite} +\newrobustcmd*{\Fvolcite}{\volcitecmd\Footcite} +\newrobustcmd*{\Ftvolcite}{\volcitecmd\Footcitetext} +\newrobustcmd*{\Svolcite}{\volcitecmd\Smartcite} +\newrobustcmd*{\Tvolcite}{\volcitecmd\Textcite} +\newrobustcmd*{\Avolcite}{\volcitecmd\Autocite} + +\newrobustcmd*{\Volcites}{\multivolcitecmd\Cites} +\newrobustcmd*{\Pvolcites}{\multivolcitecmd\Parencites} +\newrobustcmd*{\Fvolcites}{\multivolcitecmd\Footcites} +\newrobustcmd*{\Ftvolcites}{\multivolcitecmd\Footcitetext} +\newrobustcmd*{\Svolcites}{\multivolcitecmd\Smartcites} +\newrobustcmd*{\Tvolcites}{\multivolcitecmd\Textcites} +\newrobustcmd*{\Avolcites}{\multivolcitecmd\Autocites} + +\newrobustcmd*{\Notecite}{\bibsentence\notecite} +\newrobustcmd*{\Pnotecite}{\bibsentence\pnotecite} +\newrobustcmd*{\Fnotecite}{\fnotecite} + +\DeclareMultiCiteCommand{\cites}{\cite}{\multicitedelim} +\DeclareMultiCiteCommand{\parencites}[\mkbibparens]{\parencite}{\multicitedelim} +\DeclareMultiCiteCommand{\footcites}[\mkbibfootnote]{\footcite}{\multicitedelim} +\DeclareMultiCiteCommand{\footcitetexts}[\mkbibfootnotetext] + {\footcitetext}{\multicitedelim} +\DeclareMultiCiteCommand{\smartcites}[\iffootnote\mkbibparens\mkbibfootnote] + {\smartcite}{\multicitedelim} +\DeclareMultiCiteCommand{\supercites}[\mkbibsuperscript] + {\supercite}{\supercitedelim} +\DeclareMultiCiteCommand{\textcites}{\textcite}{\multicitedelim} + +\newrobustcmd*{\Cites}{\bibsentence\cites} +\newrobustcmd*{\Parencites}{\bibsentence\parencites} +\newrobustcmd*{\Footcites}{\footcites} +\newrobustcmd*{\Footcitetexts}{\footcitetexts} +\newrobustcmd*{\Smartcites}{\bibsentence\smartcites} +\newrobustcmd*{\Textcites}{\bibsentence\textcites} + +\DeclareAutoCiteCommand{plain}{\cite}{\cites} +\DeclareAutoCiteCommand{inline}{\parencite}{\parencites} +%\DeclareAutoCiteCommand{footnote}[l]{\footcite}{\footcites} +\DeclareAutoCiteCommand{footnote}[f]{\smartcite}{\smartcites} +\DeclareAutoCiteCommand{superscript}[l]{\supercite}{\supercites} + +\newrobustcmd*{\Autocite}{\bibsentence\autocite} +\newrobustcmd*{\Autocites}{\bibsentence\autocites} + +% ------------------------------------------------------------------ +% GENERIC CITATION MACROS +% ------------------------------------------------------------------ + +\newbibmacro*{citeindex}{% + \ifciteindex + {\indexnames{labelname}% + \indexfield{indextitle}} + {}} + +\newbibmacro*{shorthandintro}{% + \iffieldundef{shorthandintro} + {\iffieldundef{shorthand} + {} + {\setunit{\addspace}% + \printtext[parens]{% + \bibstring{citedas}\space + \printfield{shorthand}}}} + {\setunit{\addspace}% + \printtext[parens]{\printfield{shorthandintro}}}} + +% citation commands + +\newbibmacro*{prenote}{% + \iffieldundef{prenote} + {} + {\printfield{prenote}% + \setunit{\printdelim{prenotedelim}}}} + +\newbibmacro*{postnote}{% + \iffieldundef{postnote} + {} + {\setunit{\printdelim{postnotedelim}}% + \printfield{postnote}}} + +% multicite commands + +\newbibmacro*{multiprenote}{% + \iffieldundef{multiprenote} + {} + {\printfield{multiprenote}% + \printdelim{multiprenotedelim}}} + +\newbibmacro*{multipostnote}{% + \iffieldundef{multipostnote} + {} + {\printdelim{multipostnotedelim} + \printfield{multipostnote}}} + +% ------------------------------------------------------------------ +% GENERIC BIBLIOGRAPHY MACROS +% ------------------------------------------------------------------ + +\newbibmacro*{bibindex}{% + \ifbibindex + {\indexnames{labelname}% + \indexfield{indextitle}} + {}} + +\newbibmacro*{author/editor}{% + \ifboolexpr{ + test \ifuseauthor + and + not test {\ifnameundef{author}} + } + {\usebibmacro{author}} + {\usebibmacro{editor}}} + +\newbibmacro*{author/editor+others}{% + \ifboolexpr{ + test \ifuseauthor + and + not test {\ifnameundef{author}} + } + {\usebibmacro{author}} + {\usebibmacro{editor+others}}} + +\newbibmacro*{author/translator}{% + \ifboolexpr{ + test \ifuseauthor + and + not test {\ifnameundef{author}} + } + {\usebibmacro{author}} + {\usebibmacro{translator}}} + +\newbibmacro*{author/translator+others}{% + \ifboolexpr{ + test \ifuseauthor + and + not test {\ifnameundef{author}} + } + {\usebibmacro{author}} + {\usebibmacro{translator+others}}} + +\newbibmacro*{author/editor/translator}{% + \ifboolexpr{ + test \ifuseauthor + and + not test {\ifnameundef{author}} + } + {\usebibmacro{author}} + {\ifboolexpr{ + test \ifuseeditor + and + not test {\ifnameundef{editor}} + } + {\usebibmacro{editor}} + {\usebibmacro{translator}}}} + +\newbibmacro*{author/editor+others/translator+others}{% + \ifboolexpr{ + test \ifuseauthor + and + not test {\ifnameundef{author}} + } + {\usebibmacro{author}} + {\ifboolexpr{ + test \ifuseeditor + and + not test {\ifnameundef{editor}} + } + {\usebibmacro{editor+others}} + {\usebibmacro{translator+others}}}} + +\newbibmacro*{author}{% + \ifboolexpr{ + test \ifuseauthor + and + not test {\ifnameundef{author}} + } + {\printnames{author}% + \iffieldundef{authortype} + {} + {\setunit{\printdelim{authortypedelim}}% + \usebibmacro{authorstrg}}} + {}} + +\newbibmacro*{editor}{% + \ifboolexpr{ + test \ifuseeditor + and + not test {\ifnameundef{editor}} + } + {\printnames{editor}% + \setunit{\printdelim{editortypedelim}}% + \usebibmacro{editorstrg}% + \clearname{editor}} + {}} + +\newbibmacro*{editor+others}{% + \ifboolexpr{ + test \ifuseeditor + and + not test {\ifnameundef{editor}} + } + {\printnames{editor}% + \setunit{\printdelim{editortypedelim}}% + \usebibmacro{editor+othersstrg}% + \clearname{editor}} + {}} + +\newbibmacro*{translator}{% + \ifboolexpr{ + test \ifusetranslator + and + not test {\ifnameundef{translator}} + } + {\printnames{translator}% + \setunit{\printdelim{translatortypedelim}}% + \usebibmacro{translatorstrg}% + \clearname{translator}} + {}} + +\newbibmacro*{translator+others}{% + \ifboolexpr{ + test \ifusetranslator + and + not test {\ifnameundef{translator}} + } + {\printnames{translator}% + \setunit{\printdelim{translatortypedelim}}% + \usebibmacro{translator+othersstrg}% + \clearname{translator}} + {}} + +\newbibmacro*{authorstrg}{% + \iffieldundef{authortype} + {} + {\printtext[authortype]{% + \ifbibxstring{\thefield{authortype}} + {\ifboolexpr{ + test {\ifnumgreater{\value{author}}{1}} + or + test {\ifandothers{author}} + } + {\bibstring{\thefield{authortype}s}} + {\bibstring{\thefield{authortype}}}} + {\thefield{authortype}}}}} + +\newbibmacro*{editorstrg}{% + \printtext[editortype]{% + \iffieldundef{editortype} + {\ifboolexpr{ + test {\ifnumgreater{\value{editor}}{1}} + or + test {\ifandothers{editor}} + } + {\bibstring{editors}} + {\bibstring{editor}}} + {\ifbibxstring{\thefield{editortype}} + {\ifboolexpr{ + test {\ifnumgreater{\value{editor}}{1}} + or + test {\ifandothers{editor}} + } + {\bibstring{\thefield{editortype}s}} + {\bibstring{\thefield{editortype}}}} + {\thefield{editortype}}}}} + +\newbibmacro*{editor+othersstrg}{% + \iffieldundef{editortype} + {\ifboolexpr{ + test {\ifnumgreater{\value{editor}}{1}} + or + test {\ifandothers{editor}} + } + {\def\abx@tempa{editors}} + {\def\abx@tempa{editor}}} + {\ifboolexpr{ + test {\ifnumgreater{\value{editor}}{1}} + or + test {\ifandothers{editor}} + } + {\edef\abx@tempa{\thefield{editortype}s}} + {\edef\abx@tempa{\thefield{editortype}}}}% + \let\abx@tempb=\empty + \ifnamesequal{editor}{translator} + {\appto\abx@tempa{tr}% + \appto\abx@tempb{\clearname{translator}}} + {}% + \ifnamesequal{editor}{commentator} + {\appto\abx@tempa{co}% + \appto\abx@tempb{\clearname{commentator}}} + {\ifnamesequal{editor}{annotator} + {\appto\abx@tempa{an}% + \appto\abx@tempb{\clearname{annotator}}} + {}}% + \ifnamesequal{editor}{introduction} + {\appto\abx@tempa{in}% + \appto\abx@tempb{\clearname{introduction}}} + {\ifnamesequal{editor}{foreword} + {\appto\abx@tempa{fo}% + \appto\abx@tempb{\clearname{foreword}}} + {\ifnamesequal{editor}{afterword} + {\appto\abx@tempa{af}% + \appto\abx@tempb{\clearname{afterword}}} + {}}}% + \ifbibxstring{\abx@tempa} + {\printtext[editortype]{\bibstring{\abx@tempa}}\abx@tempb} + {\usebibmacro{editorstrg}}} + +\newbibmacro*{translatorstrg}{% + \printtext[translatortype]{% + \ifboolexpr{ + test {\ifnumgreater{\value{translator}}{1}} + or + test {\ifandothers{translator}} + } + {\bibstring{translators}} + {\bibstring{translator}}}} + +\newbibmacro*{translator+othersstrg}{% + \ifboolexpr{ + test {\ifnumgreater{\value{translator}}{1}} + or + test {\ifandothers{translator}} + } + {\def\abx@tempa{translators}} + {\def\abx@tempa{translator}}% + \ifnamesequal{translator}{commentator} + {\appto\abx@tempa{co}% + \clearname{commentator}} + {\ifnamesequal{translator}{annotator} + {\appto\abx@tempa{an}% + \clearname{annotator}} + {}}% + \ifnamesequal{translator}{introduction} + {\appto\abx@tempa{in}% + \clearname{introduction}} + {\ifnamesequal{translator}{foreword} + {\appto\abx@tempa{fo}% + \clearname{foreword}} + {\ifnamesequal{translator}{afterword} + {\appto\abx@tempa{af}% + \clearname{afterword}} + {}}}% + \printtext[translatortype]{\bibstring{\abx@tempa}}} + +\newbibmacro*{byauthor}{% + \ifboolexpr{ + test \ifuseauthor + or + test {\ifnameundef{author}} + } + {} + {\usebibmacro{bytypestrg}{author}{author}% + \setunit{\addspace}% + \printnames[byauthor]{author}}} + +\newbibmacro*{bybookauthor}{% + \ifnamesequal{author}{bookauthor} + {} + {\printnames{bookauthor}}} + +\newbibmacro*{byeditor}{% + \ifnameundef{editor} + {} + {\usebibmacro{bytypestrg}{editor}{editor}% + \setunit{\addspace}% + \printnames[byeditor]{editor}% + \newunit}% + \usebibmacro{byeditorx}} + +\newbibmacro*{byeditorx}{% + \ifnameundef{editora} + {} + {\usebibmacro{bytypestrg}{editora}{editor}% + \setunit{\addspace}% + \printnames[byeditora]{editora}% + \newunit}% + \ifnameundef{editorb} + {} + {\usebibmacro{bytypestrg}{editorb}{editor}% + \setunit{\addspace}% + \printnames[byeditorb]{editorb}% + \newunit}% + \ifnameundef{editorc} + {} + {\usebibmacro{bytypestrg}{editorc}{editor}% + \setunit{\addspace}% + \printnames[byeditorc]{editorc}% + \newunit}} + +\newbibmacro*{bytranslator}{% + \ifnameundef{translator} + {} + {\bibstring{bytranslator}% + \setunit{\addspace}% + \printnames[bytranslator]{translator}}} + +\newbibmacro*{byholder}{% + \printnames{holder}} + +\newbibmacro*{byeditor+others}{% + \ifnameundef{editor} + {} + {\usebibmacro{byeditor+othersstrg}% + \setunit{\addspace}% + \printnames[byeditor]{editor}% + \clearname{editor}% + \newunit}% + \usebibmacro{byeditorx}% + \usebibmacro{bytranslator+others}} + +\newbibmacro*{bytranslator+others}{% + \ifnameundef{translator} + {} + {\usebibmacro{bytranslator+othersstrg}% + \setunit{\addspace}% + \printnames[bytranslator]{translator}% + \clearname{translator}% + \newunit}% + \usebibmacro{withothers}} + +\newbibmacro*{bytypestrg}[2]{% + \iffieldundef{#1type} + {\bibstring{by#2}} + {\ifbibxstring{by\thefield{#1type}} + {\bibstring{by\thefield{#1type}}} + {\printtext{\thefield{#1type}}}}} + +\newbibmacro*{byeditor+othersstrg}{% + \iffieldundef{editortype} + {\def\abx@tempa{byeditor}} + {\edef\abx@tempa{by\thefield{editortype}}}% + \let\abx@tempb=\empty + \ifnamesequal{editor}{translator} + {\appto\abx@tempa{tr}% + \appto\abx@tempb{\clearname{translator}}} + {}% + \ifnamesequal{editor}{commentator} + {\appto\abx@tempa{co}% + \appto\abx@tempb{\clearname{commentator}}} + {\ifnamesequal{editor}{annotator} + {\appto\abx@tempa{an}% + \appto\abx@tempb{\clearname{annotator}}} + {}}% + \ifnamesequal{editor}{introduction} + {\appto\abx@tempa{in}% + \appto\abx@tempb{\clearname{introduction}}} + {\ifnamesequal{editor}{foreword} + {\appto\abx@tempa{fo}% + \appto\abx@tempb{\clearname{foreword}}} + {\ifnamesequal{editor}{afterword} + {\appto\abx@tempa{af}% + \appto\abx@tempb{\clearname{afterword}}} + {}}}% + \ifbibxstring{\abx@tempa} + {\printtext{\bibstring{\abx@tempa}}\abx@tempb} + {\usebibmacro{bytypestrg}{editor}{editor}}} + +\newbibmacro*{bytranslator+othersstrg}{% + \def\abx@tempa{bytranslator}% + \ifnamesequal{translator}{commentator} + {\appto\abx@tempa{co}% + \clearname{commentator}} + {\ifnamesequal{translator}{annotator} + {\appto\abx@tempa{an}% + \clearname{annotator}} + {}}% + \ifnamesequal{translator}{introduction} + {\appto\abx@tempa{in}% + \clearname{introduction}} + {\ifnamesequal{translator}{foreword} + {\appto\abx@tempa{fo}% + \clearname{foreword}} + {\ifnamesequal{translator}{afterword} + {\appto\abx@tempa{af}% + \clearname{afterword}} + {}}}% + \bibstring{\abx@tempa}} + +\newbibmacro*{withcommentator}{% + \ifnameundef{commentator} + {} + {\bibstring{withcommentator}% + \setunit{\addspace}% + \printnames[withcommentator]{commentator}}} + +\newbibmacro*{withannotator}{% + \ifnameundef{annotator} + {} + {\bibstring{withannotator}% + \setunit{\addspace}% + \printnames[withannotator]{annotator}}} + +\newbibmacro*{withintroduction}{% + \ifnameundef{introduction} + {} + {\bibstring{withintroduction}% + \setunit{\addspace}% + \printnames[withintroduction]{introduction}}} + +\newbibmacro*{withforeword}{% + \ifnameundef{foreword} + {} + {\bibstring{withforeword}% + \setunit{\addspace}% + \printnames[withforeword]{foreword}}} + +\newbibmacro*{withafterword}{% + \ifnameundef{afterword} + {} + {\bibstring{withafterword}% + \setunit{\addspace}% + \printnames[withafterword]{afterword}}} + +\newbibmacro*{withothers}{% + \usebibmacro{withcommentator}% + \clearname{commentator}% + \newunit + \usebibmacro{withannotator}% + \clearname{annotator}% + \newunit + \usebibmacro{withintroduction}% + \clearname{introduction}% + \newunit + \usebibmacro{withforeword}% + \clearname{foreword}% + \newunit + \usebibmacro{withafterword}% + \clearname{afterword}} + +\newbibmacro*{title}{% + \ifboolexpr{ + test {\iffieldundef{title}} + and + test {\iffieldundef{subtitle}} + } + {} + {\printtext[title]{% + \printfield[titlecase]{title}% + \setunit{\subtitlepunct}% + \printfield[titlecase]{subtitle}}% + \newunit}% + \printfield{titleaddon}} + +\newbibmacro*{booktitle}{% + \ifboolexpr{ + test {\iffieldundef{booktitle}} + and + test {\iffieldundef{booksubtitle}} + } + {} + {\printtext[booktitle]{% + \printfield[titlecase]{booktitle}% + \setunit{\subtitlepunct}% + \printfield[titlecase]{booksubtitle}}% + \newunit}% + \printfield{booktitleaddon}} + +\newbibmacro*{maintitle}{% + \ifboolexpr{ + test {\iffieldundef{maintitle}} + and + test {\iffieldundef{mainsubtitle}} + } + {} + {\printtext[maintitle]{% + \printfield[titlecase]{maintitle}% + \setunit{\subtitlepunct}% + \printfield[titlecase]{mainsubtitle}}% + \newunit}% + \printfield{maintitleaddon}} + +\newbibmacro*{journal}{% + \ifboolexpr{ + test {\iffieldundef{journaltitle}} + and + test {\iffieldundef{journalsubtitle}} + } + {} + {\printtext[journaltitle]{% + \printfield[titlecase]{journaltitle}% + \setunit{\subtitlepunct}% + \printfield[titlecase]{journalsubtitle}}}} + +\newbibmacro*{periodical}{% + \ifboolexpr{ + test {\iffieldundef{title}} + and + test {\iffieldundef{subtitle}} + } + {} + {\printtext[title]{% + \printfield[titlecase]{title}% + \setunit{\subtitlepunct}% + \printfield[titlecase]{subtitle}}}} + +\newbibmacro*{issue}{% + \ifboolexpr{ + test {\iffieldundef{issuetitle}} + and + test {\iffieldundef{issuesubtitle}} + } + {} + {\printtext[issuetitle]{% + \printfield[titlecase]{issuetitle}% + \setunit{\subtitlepunct}% + \printfield[titlecase]{issuesubtitle}}}} + +\newbibmacro*{in:}{% + \printtext{% + \bibstring{in}\intitlepunct}} + +\newbibmacro*{date}{\printdate} + +\newbibmacro*{url+urldate}{% + \usebibmacro{url}% + \iffieldundef{urlyear} + {} + {\setunit*{\addspace}% + \usebibmacro{urldate}}} + +\newbibmacro*{url}{\printfield{url}} +\newbibmacro*{urldate}{\printurldate} + +\newbibmacro*{pageref}{% + \iflistundef{pageref} + {} + {\printtext[parens]{% + \ifnumgreater{\value{pageref}}{1} + {\bibstring{backrefpages}\ppspace} + {\bibstring{backrefpage}\ppspace}% + \printlist[pageref][-\value{listtotal}]{pageref}}}} + +\newbibmacro*{setpageref}{% + \iflistundef{pageref} + {} + {\printtext{% + \ifnumgreater{\value{pageref}}{1} + {\bibstring{backrefpages}\ppspace} + {\bibstring{backrefpage}\ppspace}% + \printlist[pageref][-\value{listtotal}]{pageref}}}} + +\newbibmacro*{eprint}{% + \iffieldundef{eprinttype} + {\printfield{eprint}} + {\printfield[eprint:\strfield{eprinttype}]{eprint}}} + +\newbibmacro*{annotation}{% + \iffieldundef{annotation} + {\printfile[annotation]{\bibannotationprefix\thefield{entrykey}.tex}} + {\printfield{annotation}}} + +\newbibmacro*{abstract}{% + \iffieldundef{abstract} + {\printfile[abstract]{\bibabstractprefix\thefield{entrykey}.tex}} + {\printfield{abstract}}} + +\newbibmacro*{related:default}[1]{% + \entrydata*{#1}{% + \usedriver + {\ifnameundef{savedauthor} + {\ifnameundef{savededitor} + {} + {\ifnamesequal{editor}{savededitor} + {\clearname{editor}} + {}}} + {\ifnamesequal{author}{savedauthor} + {\clearname{author}} + {}}% + \renewbibmacro*{related:init}{}% + \DeclareNameAlias{sortname}{default}% + \ifbibmacroundef{date+extradate} + {} + {\renewbibmacro*{date+extradate}{}% + \renewbibmacro*{date}{\printdate}}% + \renewbibmacro*{pageref}{}} + {\thefield{entrytype}}}} + +\newbibmacro*{related:bytranslator}[1]{% + \entrydata{#1}{% + \renewbibmacro*{name:hook}[1]{% + \ifnumequal{\value{listcount}}{1} + {\begingroup + \mkrelatedstring% + \lbx@initnamehook{#1}% + \endgroup} + {}}% + \printnames[bytranslator]{translator}% + \setunit*{\addspace\bibstring[\mkrelatedstring]{astitle}\space}% + \usebibmacro{title}% + \setunit{\addspace}% + \printtext[parens]{% + \printlist{location}% + \iflistundef{publisher} + {\setunit*{\addcomma\space}} + {\setunit*{\addcolon\space}}% + \printlist{publisher}% + \setunit*{\addcomma\space}% + \printdate}}} + +\newbibmacro*{related:multivolume}[1]{% + \entrydata*{#1}{% + \printtext{% + \printfield{volume}% + \printfield{part}}% + \setunit*{\addcolon\space}% + \usebibmacro{title}% + \ifboolexpr{ + test {\ifnamesequal{author}{savedauthor}} + or + test {\ifnameundef{author}} + } + {} + {\usebibmacro{bytypestrg}{author}{author}% + \setunit{\addspace}% + \printnames[byauthor]{author} + \newunit\newblock}% + \ifboolexpr{ + test {\ifnamesequal{editor}{savededitor}} + or + test {\ifnameundef{editor}} + } + {} + {\usebibmacro{byeditor+others}% + \newunit\newblock}% + \printdate}} + +\newbibmacro*{related:origpubin}[1]{% + \entrydata*{#1}{% + \printfield{year}% + \ifboolexpr{ + test {\iflistsequal{publisher}{savedpublisher}} + or + test {\iflistundef{publisher}} + } + {} + {\setunit{\addspace\bibstring[\mkrelatedstring]{bypublisher}\space}% + \printlist{publisher}% + \setunit{\addcomma\space}% + \iflistsequal{location}{savedlocation} + {} + {\printlist{location}}}}} + +\newbibmacro*{related:origpubas}[1]{% + \entrydata*{#1}{% + \usebibmacro{title}% + \ifboolexpr{ + test {\iflistsequal{publisher}{savedpublisher}} + or + test {\iflistundef{publisher}} + } + {} + {\setunit{\addspace\bibstring[\mkrelatedstring]{bypublisher}\space}% + \printlist{publisher}% + \setunit{\addcomma\space}% + \iflistsequal{location}{savedlocation} + {} + {\printlist{location}}}}} + +\DeclareFieldFormat{title:hook}{% + \begingroup + \mkrelatedstring% + \lbx@inittitlehook{#1}% + \endgroup + \mkbibemph{#1}} + +\newbibmacro*{related:reprintfrom}[1]{% + \entrydata*{#1}{% + \iffieldundef{journaltitle} + {\iffieldundef{maintitle} + {\printfield[title:hook]{booktitle}} + {\printfield[title:hook]{maintitle}}% + \newunit\newblock + \usebibmacro{byeditor+others}% + \newunit\newblock + \printfield{edition}% + \newunit + \iffieldundef{volume} + {} + {\printfield{volume}% + \printfield{part}} + \newunit\newblock + \usebibmacro{series+number}% + \newunit\newblock + \printfield{note}% + \newunit\newblock + \usebibmacro{publisher+location+date}% + \newunit\newblock + \usebibmacro{chapter+pages}} + {\renewbibmacro*{journal}{% + \printfield[title:hook]{journaltitle}}% + \usebibmacro{journal+issuetitle}% + \newunit\newblock + \usebibmacro{byeditor+others}% + \newunit\newblock + \usebibmacro{note+pages}}}} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/biblatex.sty b/macros/latex/contrib/biblatex/latex/biblatex.sty new file mode 100644 index 0000000000..60f1674d7f --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/biblatex.sty @@ -0,0 +1,15280 @@ +% Copyright (c) 2006-2011 Philipp Lehman. +% 2012-2017 Philip Kime, Audrey Boruvka, Joseph Wright +% 2018- Philip Kime, Moritz Wemheuer +% +% Permission is granted to copy, distribute and/or modify this +% software under the terms of the LaTeX Project Public License +% (LPPL), version 1.3c. +% +% This software is provided 'as is', without warranty of any kind, +% either expressed or implied, including, but not limited to, the +% implied warranties of merchantability and fitness for a +% particular purpose. + +% Set up the version strings here +\def\abx@date{2019/08/31} +\def\abx@version{3.13a} +\def\abx@bbxid{\abx@date\space v\abx@version\space biblatex bibliography style (PK/MW)} +\def\abx@cbxid{\abx@date\space v\abx@version\space biblatex citation style (PK/MW)} +\def\abx@lbxid{\abx@date\space v\abx@version\space biblatex localization (PK/MW)} +\def\abx@cptid{\abx@date\space v\abx@version\space biblatex compatibility (PK/MW)} + +% This is not updated by build script as the control file version +% does not necessarily change with the package version. +% This is used when writing the .bcf +\def\blx@bcfversion{3.6} + +% This is not updated by build script as the bbl version +% does not necessarily change with the package version. +% This is used when checking the .bbl +\def\blx@bblversion{3.1} + +\NeedsTeXFormat{LaTeX2e}[2005/12/01] +\ProvidesPackage{biblatex} +[\abx@date\space v\abx@version\space programmable bibliographies (PK/MW)] + +%% Dependencies +\RequirePackage{pdftexcmds}[2018/01/30] +\RequirePackage{etoolbox} +\RequirePackage{keyval} +\RequirePackage{kvoptions} +\RequirePackage{logreq} +\RequirePackage{ifthen} +\RequirePackage{url} +%\RequirePackage{trace} + +\@ifpackagelater{etoolbox}{2010/11/29} + {} + {\PackageError{biblatex} + {Outdated 'etoolbox' package} + {Upgrade to etoolbox v2.1 (2010/11/29) or later.\MessageBreak + I found: '\csuse{ver@etoolbox.sty}'.\MessageBreak + This is a fatal error. I'm aborting now}% + \endinput} + +% polyglossia pretends to be babel, so we need to make sure +% we are definitely talking to babel here. +\AtEndPreamble{% + \@ifpackageloaded{polyglossia} + {} + {\@ifpackageloaded{babel} + {\@ifpackagelater{babel}{2016/04/23} + {} + {\PackageError{biblatex} + {Outdated 'babel' package} + {Upgrade to babel 3.9r (2016/04/23) or later.\MessageBreak + I found: '\csuse{ver@babel.sty}'.\MessageBreak + This is a fatal error. I'm aborting now}% + \endinput}} + {}}} + +%% Category codes + +\def\blx@docatcodes{% + \do\=\do\<\do\>\do\-\do\"\do\'\do\`\do\.% + \do\,\do\;\do\:\do\!\do\?\do\/} +\def\do#1{\catcode\number`#1=\the\catcode`#1\relax} +\edef\blx@catcodes{\blx@docatcodes\do\^\do\~\do\&\do\|} +\let\do\noexpand + +\def\blx@saneccodes{% + \catcode`\~=\active + \let\do\@makeother + \blx@docatcodes + \let\do\noexpand} + +\blx@saneccodes +\catcode`\&=3 +\catcode`\|=3 +\catcode`\^=7 +\def\blx@nl{^^J} + +\protected\def\blx@safe@actives{% + \let\blx@if@safe@actives\if@safe@actives + \let\if@safe@actives\iftrue} + +\protected\def\blx@rest@actives{% + \let\if@safe@actives\blx@if@safe@actives} + +%% Early errors and warnings +\protected\def\blx@error#1#2{% + \begingroup + \blx@safe@actives + \PackageError{biblatex}{#1}{#2.}% + \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}} + +%% Compatibility +\def\blx@packageincompatibility{% + \def\do##1{% + \@ifpackageloaded{##1} + {\ifcsundef{blx@pkgloaded@##1} + {\global\cslet{blx@pkgloaded@##1}\@empty + \blx@error + {Incompatible package '##1'} + {The '##1' package and biblatex are incompatible}} + {}} + {}}% + \docsvlist{% + amsrefs,apacite,babelbib,backref,bibtopic,bibunits,chapterbib, + cite,citeref,drftcite,footbib,inlinebib,jurabib,mcite,mciteplus, + mlbib,multibbl,multibib,natbib,opcit,overcite,splitbib,ucs}% + % etextools is special, it gets an option to demote the error to a warning + % remind people to restore \forlistloop + \ifcsdef{blx@noerroretextools} + {\@ifpackageloaded{etextools} + {\ifcsundef{blx@pkgloaded@etextools} + {\global\cslet{blx@pkgloaded@etextools}\@empty + \blx@warning@noline{% + Incompatible package 'etextools' loaded,\MessageBreak + no error is thrown because you defined\MessageBreak + '\string\blx@noerroretextools'.\MessageBreak + 'etextools' redefines '\string\forlistloop', you must\MessageBreak + restore the definition from 'etoolbox'\MessageBreak + before you load biblatex}} + {}} + {}} + {\@ifpackageloaded{etextools} + {\ifcsundef{blx@pkgloaded@etextools} + {\global\cslet{blx@pkgloaded@etextools}\@empty + \blx@error + {Incompatible package 'etextools'} + {The 'etextools' package and biblatex are + incompatible.\MessageBreak + If you must load 'etextools' at all costs, define the command% + \MessageBreak '\string\blx@noerroretextools'}} + {}} + {}}} + +% Call this right here, almost immediately after loading to give sensible +% errors for incompatibilities that arise at loading-time. +% The macro is called again a second time in \AtEndPreamble when all packages +% should be loaded. +% This still can't catch all cases, \usepackage{biblatex}\usepackage{natbib} +% still gives a weird error. +\blx@packageincompatibility + +% people should not be abusing noerroretextools, so warn if it is not needed +\def\blx@packageincompatibility@endpreambleonly{% + \ifcsdef{blx@noerroretextools} + {\@ifpackageloaded{etextools} + {} + {\blx@warning@noline{% + You defined '\string\blx@noerroretextools',\MessageBreak + but 'etextools' is not loaded.\MessageBreak + Please do not define '\string\blx@noerroretextools'\MessageBreak + unless you really need it}}} + {}} + +\begingroup +\catcode`\#=12 +\gdef\blx@patchbidifootnotes{% + \patchcmd\@footnotetext + {#1} + {\toggletrue{blx@footnote}#1} + {\togglefalse{blx@tempa}} + {}% + \patchcmd\@LTRfootnotetext + {#1} + {\toggletrue{blx@footnote}#1} + {\togglefalse{blx@tempa}} + {}% + \patchcmd\@RTLfootnotetext + {#1} + {\toggletrue{blx@footnote}#1} + {\togglefalse{blx@tempa}} + {}} +\endgroup + +\AtEndPreamble{% + \blx@packageincompatibility + \blx@packageincompatibility@endpreambleonly + \def\blx@langstrings{}% + % Set up sortlocale defaults and default language if babel/polyglossia is not loaded + \ifdefstring\blx@sortlocale{auto} + {\ifdef\bbl@main@language% babel or polyglossia is loaded + {\edef\blx@sortlocale{\bbl@main@language}} + {\def\blx@sortlocale{english}}} + {}% + \@ifpackageloaded{polyglossia} + {% polyglossia support is not great when it comes to language variants, + % so we better warn about it. + \ifundef\blx@nowarnpolyglossia + {\blx@warning@noline{% + Package 'polyglossia' detected.\MessageBreak + Please note that biblatex's polyglossia\MessageBreak + interface has some rough edges.\MessageBreak + Language variants are not picked up correctly.\MessageBreak + You can disable this warning by defining the macro\MessageBreak + '\string\blx@nowarnpolyglossia' in the preamble}} + {}% + % This is required for languages which are never explicitly selected + % This check because \xpg@loaded is not defined in polyglossia <= v1.42.0 + \ifundef\xpg@loaded + {\let\xpg@loaded\@empty + \let\xpg@vloaded\@empty + \blx@warning@noline{Upgrade package 'polyglossia' to > v1.42.0 recommended}} + {}% + \def\do#1{\blx@langsetup{#1}}% + \expandafter\docsvlist\expandafter{\xpg@loaded}% + \expandafter\docsvlist\expandafter{\xpg@vloaded}% + \ifboolexpr{ + not togl {blx@autolangbib} + and + not togl {blx@autolangcite}} + {\blx@mknoautolang} + {\blx@mkautolangpoly}} + {\@ifpackageloaded{babel} + {% This is required for languages which are never explicitly selected + \def\do#1{\blx@langsetup{#1}}% + \expandafter\docsvlist\expandafter{\bbl@loaded}% + \ifboolexpr{ + not togl {blx@autolangbib} + and + not togl {blx@autolangcite}} + {\blx@mknoautolang} + {\blx@mkautolangbabel}} + {\blx@mknoautolang}}% + % These already have defaults set to basically do nothing + % so if the toggles are true, we need to define again since + % mkautolang* redefines \blx@beglang + % In turn, \blx@beglang defines \blx@endlang and so \blx@beglangcite and + % \blx@endlangcite need redefining inside \blx@beglang after \blx@endlang + % has been defined. + \iftoggle{blx@autolangbib} + {\let\blx@beglangbib\blx@beglang} + {}% + \iftoggle{blx@autolangcite} + {\let\blx@beglangcite\blx@beglang} + {}% + \csuse{abx@extras@\blx@languagename}% + \csuse{abx@strings@\blx@languagename}% + \undef\blx@mkautolangbabel + \undef\blx@mkautolangpoly + \undef\blx@mknoautolang + \ifnum\blx@hyperref=\thr@@ + \else + \ifnum\blx@hyperref=\z@ + \blx@mknohyperref + \else + \@ifpackageloaded{hyperref} + {\blx@mkhyperref} + {\ifnum\blx@hyperref=\@ne + \blx@warning@noline{% + Missing 'hyperref' package.\MessageBreak + Setting 'hyperref=false'}% + \fi + \blx@mknohyperref}% + \fi + \undef\blx@mkhyperref + \undef\blx@mknohyperref + \fi + \providecommand*{\nolinkurl}{\url}% + \ifundef\TE@hook + {\let\TE@hook\@empty + \toggletrue{blx@tempa}% + \def\do#1{% + \patchcmd#1% + {\let\isundefined\TE@undef} + {\let\isundefined\TE@undef\TE@hook} + {\togglefalse{blx@tempa}\listbreak} + {}}% + \docsvlist{% + \ifthenelse,% ifthen + \org@ifthenelse,% babel + \HyOrg@ifthenelse,% hyperref + \NROrg@ifthenelse}% nameref + \iftoggle{blx@tempa} + {\blx@err@patch{'ifthen' package}} + {}} + {}% + \appto\TE@hook{\blx@TE@hook}% + \toggletrue{blx@tempa}% + \def\do#1{% + \patchcmd#1% + {\color@begingroup} + {\color@begingroup\toggletrue{blx@footnote}} + {\togglefalse{blx@tempa}\listbreak} + {}}% + \docsvlist{% + \@footnotetext,% latex + \H@@footnotetext,% hyperref + \V@@footnotetext,% fancyvrb + \scr@saved@footnotetext,% koma-script 3.x + \l@dold@footnotetext,% ledmac + \l@doldold@footnotetext,% ledmac + \predefinedfootnotetext,% linguex + \@fntORI}% frenchle + \iftoggle{blx@tempa}% ams classes ... + {\def\do#1{% + \patchcmd#1 + {\@makefntext} + {\toggletrue{blx@footnote}\@makefntext} + {\togglefalse{blx@tempa}} + {}}% + \docsvlist{\@footnotetext,% ams classes standard + \H@@footnotetext}}% hyperref + {}% + \@ifpackageloaded{bidi}% bidi + {\blx@patchbidifootnotes} + {}% + \@ifclassloaded{memoir} + {\def\do#1{% + \patchcmd#1% + {\color@begingroup} + {\color@begingroup\toggletrue{blx@footnote}} + {} + {}}% + \docsvlist{% + \m@mold@footnotetext,% + \@plainfootnotetext,% + \@twocolfootnotetext,% + \@threecolfootnotetext,% + \@parafootnotetext}% + \def\do#1{% + \patchcmd#1% + {\color@begingroup\@makefntext} + {\color@begingroup\toggletrue{blx@footnote}\@makefntext} + {} + {}}% + \docsvlist{% + \@footnotetext,% patch twice + \H@@footnotetext,% patch twice + \@plainfootnotetext}} + {}% + \@ifclassloaded{beamer} + {\expandafter\patchcmd\csname beamerx@\string\beamer@framefootnotetext\endcsname + {\color@begingroup} + {\color@begingroup\toggletrue{blx@footnote}} + {\togglefalse{blx@tempa}} + {}% + \expandafter\patchcmd\csname beamerx@\string\@mpfootnotetext\endcsname + {\color@begingroup} + {\color@begingroup\toggletrue{blx@footnote}} + {} + {}} + {}% + \iftoggle{blx@tempa} + {\blx@warning@noline{% + Patching footnotes failed.\MessageBreak + Footnote detection will not work}} + {}% + \def\do#1{% + \patchcmd#1% + {\color@begingroup} + {\color@begingroup\toggletrue{blx@footnote}} + {\listbreak} + {}}% + \docsvlist{% + \@mpfootnotetext,% minipages + \H@@mpfootnotetext}% hyperref minipages + \@ifpackageloaded{endnotes} + {\patchcmd\theendnotes + {\enoteformat} + {\toggletrue{blx@footnote}\enoteformat} + {} + {\blx@err@patch{'endnotes' package}}} + {}% + \@ifpackageloaded{bigfoot} + {\apptocmd\@makefnstartbox + {\toggletrue{blx@footnote}} + {} + {\blx@err@patch{'bigfoot' package}}} + {}% + \@ifpackageloaded{showkeys} + {\ifdef\SK@ + {\AtEveryBibitem{\SK@\SK@@label{\thefield{entrykey}}}% + \AtEveryLositem{\SK@\SK@@label{\thefield{entrykey}}}% + \ifundef\SK@cite % = 'notcite' disabled + {\AtEveryCitekey{\SK@\SK@@ref{\thefield{entrykey}}}} + {}} + {}} + {}% + \apptocmd\@floatboxreset + {\boolfalse{citetracker}% + \boolfalse{pagetracker}} + {} + {\blx@err@patch{floats}}% + \ifdef\TX@endtabularx % tabularx/memoir + {\pretocmd\TX@endtabularx + {\addtocounter{tabx@nest}{1}}% track nested tabularx environments + {} + {\blx@err@patch{'tabularx'}}% + % no need to conditionalise on top-level tabx as the search/replace + % will only match once anyway + \patchcmd\TX@endtabularx + {\edef\TX@ckpt{\cl@@ckpt}} + {\edef\TX@ckpt{\cl@@ckpt\abx@resttrackers}% + \abx@savetrackers} + {} + {\blx@err@patch{'tabularx'}}% + \apptocmd\TX@endtabularx + {\ifnum\value{tabx@nest}=1% only clear trackers for top-level tabularx + \abx@cleartrackers + \fi + \addtocounter{tabx@nest}{-1}} + {} + {\blx@err@patch{'tabularx'}}} + {}% + \@ifpackageloaded{csquotes} + {\@ifpackagelater{csquotes}{2009/05/30} + {} + {\blx@error + {Outdated 'csquotes' package} + {Upgrade to csquotes v4.4 (2009/05/30) or later.\MessageBreak + I found: '\csuse{ver@csquotes.sty}'}}% + \BlockquoteDisable{\let\blx@thecheckpunct\@gobble}% + \@ifpackagelater{csquotes}{2009/08/27} + {\appto\@blockquote@prehook{\abx@savetrackers}% + \appto\@blockquote@posthook{\abx@resttrackers\abx@cleartrackers}} + {}% + \@ifpackagelater{csquotes}{2010/06/09} + {} + {\newcommand*{\@quotereset}{}\newcount\@quotereset}% + \newcommand*{\blx@initoquote}{\initoquote}% + \newcommand*{\blx@textooquote}{\textooquote}% + \newcommand*{\blx@textcoquote}{\textcoquote}% + \newcommand*{\blx@initiquote}{\initiquote}% + \newcommand*{\blx@textoiquote}{\textoiquote}% + \newcommand*{\blx@textciquote}{\textciquote}% + \newcommand*{\blx@enquote}{\enquote}} + {\@ifpackageloaded{babel} + {\blx@warning@noline{% + 'babel/polyglossia' detected but 'csquotes' missing.\MessageBreak + Loading 'csquotes' recommended}} + {}% + \newcommand*{\@quotelevel}{}% + \newcount\@quotelevel + \newcommand*{\@quotereset}{}% + \newcount\@quotereset + \newcommand*{\@setquotesfcodes}{}% + \let\@setquotesfcodes\relax + \newrobustcmd*{\blx@initoquote}{\@quotelevel\@ne}% + \newrobustcmd*{\blx@initiquote}{\@quotelevel\tw@}% + \newrobustcmd*{\blx@textooquote}{``}% + \newrobustcmd*{\blx@textcoquote}{''}% + \newrobustcmd*{\blx@textoiquote}{`\relax}% block ligs + \newrobustcmd*{\blx@textciquote}{'\relax}% block ligs + \newrobustcmd*{\blx@enquote} + {\@ifstar\blx@enquote@iii\blx@enquote@i}% + \def\blx@enquote@i{% + \ifnum\@quotelevel>\z@ + \expandafter\blx@enquote@iii + \else + \expandafter\blx@enquote@ii + \fi}% + \long\def\blx@enquote@ii#1{% + \begingroup\blx@initoquote + \blx@textooquote#1\blx@textcoquote + \endgroup}% + \long\def\blx@enquote@iii#1{% + \begingroup\blx@initiquote + \blx@textoiquote#1\blx@textciquote + \endgroup}% + \appto\blx@setsfcodes{% + \sfcode`\`=\z@ + \sfcode`\'=\z@}}% + \let\do\noexpand} + +\begingroup +\@makeother\# +% \relax: gobble newline -> titletoc.sty +\AtEndPreamble{% + \addtocontents{toc}{% + \boolfalse{citerequest}% + \boolfalse{citetracker}% + \boolfalse{pagetracker}% + \boolfalse{backtracker}\relax}% + \addtocontents{lof}{% + \boolfalse{citerequest}% + \boolfalse{citetracker}% + \boolfalse{pagetracker}% + \boolfalse{backtracker}\relax}% + \addtocontents{lot}{% + \boolfalse{citerequest}% + \boolfalse{citetracker}% + \boolfalse{pagetracker}% + \boolfalse{backtracker}\relax}% + \patchcmd\addtocontents + {\string\@writefile} + {\string\@writefile{#1}{\defcounter{refsection}{\the\c@refsection}\relax}% + \string\@writefile} + {} + {\blx@err@patch{\string\addtocontents}}} +\endgroup + +% trick hyperref into believing we're natbib +\let\NAT@parse\@empty +% trick showkeys into believing we're havard +\let\HAR@checkdef\@empty + +\providecommand{\@gobblefive}[5]{} +\providecommand{\@gobblethree}[3]{} + +% etoolbox helpers + +% \ifinlist{<item>}{<list>} is not a good idea +% for printable stuff according to the etoolbox docs +% for \ifinlist (p. 31) +\newrobustcmd{\blx@ifprintableinlist}[2]{% + \begingroup + \def\blx@tempa{\endgroup + \@secondoftwo}% + \renewcommand*{\do}[1]{% + \ifstrequal{##1}{#1} + {\def\blx@tempa{\endgroup + \@firstoftwo}% + \listbreak} + {}}% + \dolistloop{#2}% + \expandafter\blx@tempa} + +\newrobustcmd{\blx@ifprintableinlistcs}[2]{% + \expandafter\blx@ifprintableinlistcs@i\csname #2\endcsname{#1}} +\long\def\blx@ifprintableinlistcs@i#1#2{\blx@ifprintableinlist{#2}{#1}} + +\ifundef\pdf@mdfivesum + {\let\blx@mdfivesum\@firstofone + \blx@warning@noline{Command '\string\pdf@mdfivesum' undefined.\MessageBreak + 'labelprefix' may not be able to accept all input}} + {\let\blx@mdfivesum\pdf@mdfivesum} + + +% xstring replacements + +% reverse a given string +% idea by egreg (https://tex.stackexchange.com/users/4427/egreg) +% from https://tex.stackexchange.com/q/36034/ +% relicensed under LPPL according to +% https://tex.meta.stackexchange.com/a/3333/ +\def\blx@revstr#1{% + \ifblank{#1} + {} + {\blx@revstr@l #1\blx@revstr@b@i\blx@revstr@b@ii}} + +\def\blx@revstr@l#1#2\blx@revstr@b@i#3\blx@revstr@b@ii{% + \ifblank{#2} + {#1#3} + {\blx@revstr@l#2\blx@revstr@b@i#1#3\blx@revstr@b@ii}} + +% these tests are inspired by Stephan v. Bechtolsheim's TUGboat article +% https://www.tug.org/TUGboat/tb09-1/tb20bechtolsheim.pdf +% but we need to test for start and end and not for generic substring +% start is easy, delimited arguments help there +\protected\def\blx@ifstrstartswith#1#2{% + \def\blx@ifstrstartswith@i ##1#2##2&{% + \ifblank{##1}}% + \blx@ifstrstartswith@i #1#2&} + +% end is harder, so we reverse everything and apply the start test +\protected\def\blx@ifstrendswith#1#2{% + \begingroup + \edef\blx@tempa{\endgroup + \noexpand\blx@ifstrstartswith{\blx@revstr{#1}}{\blx@revstr{#2}}}% + \blx@tempa} + +% not expandable, so write the result to the macro given in #3 +% {<string>}{<strip>}{<result>} +% <result> will contain the bit of <string> +% after the first occurrence of <strip> +\protected\def\blx@stripfromstartinto#1#2#3{% + \def\blx@stripfromstart@i ##1#2##2&{% + \def#3{##2}}% + \blx@stripfromstart@i #1&} + +% {<string>}{<strip>}{<result>} +% <result> will contain the bit of <string> +% before the last occurence of <strip> +\protected\def\blx@stripfromendinto#1#2#3{% + \begingroup + \edef\blx@tempa{\endgroup + \noexpand\blx@stripfromstartinto{\blx@revstr{#1}}{\blx@revstr{#2}}}% + \blx@tempa{#3}% + \edef#3{\noexpand\blx@revstr{#3}}% + \edef#3{#3}} + +%% Allocation + +% Counter to track nested tabularx environemnts so we don't +% try to patch the commands more than once below as this undefs some +% macros and an error is thrown +\newcounter{tabx@nest} +\setcounter{tabx@nest}{0} + +\newcounter{listtotal} +\def\thelisttotal{\the\c@listtotal} +\newcounter{listcount} +\def\thelistcount{\the\c@listcount} +\newcounter{liststart} +\def\theliststart{\the\c@liststart} +\newcounter{liststop} +\def\theliststop{\the\c@liststop} +\newcounter{citecount} +\def\thecitecount{\the\c@citecount} +\newcounter{citetotal} +\def\thecitetotal{\the\c@citetotal} +\newcounter{multicitecount} +\def\themulticitecount{\the\c@multicitecount} +\newcounter{multicitetotal} +\def\themulticitetotal{\the\c@multicitetotal} +\newcounter{instcount} +\def\theinstcount{\the\c@instcount} +\newcounter{maxnames} +\def\themaxnames{\the\c@maxnames} +\newcounter{minnames} +\def\theminnames{\the\c@minnames} +\newcounter{maxitems} +\def\themaxitems{\the\c@maxitems} +\newcounter{minitems} +\def\theminitems{\the\c@minitems} +\newcounter{citecounter} +\def\thecitecount{\the\c@citecounter} +\newcounter{maxcitecounter} +\def\themaxcitecounter{\the\c@maxcitecounter} +\newcounter{savedcitecounter} +\def\thecitecount{\the\c@savedcitecounter} +\newcounter{uniquelist} +\def\theuniquelist{\the\c@uniquelist} +\newcounter{uniquename} +\def\theuniquename{\the\c@uniquename} +\newcounter{refsection} +\def\therefsection{\the\c@refsection} +\newcounter{refsegment} +\def\therefsegment{\the\c@refsegment} +\newcounter{maxextratitle} +\def\themaxextratitle{\the\c@maxextratitle} +\newcounter{maxextratitleyear} +\def\themaxextratitleyear{\the\c@maxextratitleyear} +\newcounter{maxextraname} +\def\themaxextraname{\the\c@maxextraname} +\newcounter{maxextradate} +\def\themaxextradate{\the\c@maxextradate} +\newcounter{maxextraalpha} +\def\themaxextraalpha{\the\c@maxextraalpha} +\newcounter{abbrvpenalty} +\def\theabbrvpenalty{\the\c@abbrvpenalty} +\newcounter{highnamepenalty} +\def\thehighnamepenalty{\the\c@highnamepenalty} +\newcounter{lownamepenalty} +\def\thelownamepenalty{\the\c@lownamepenalty} +\newcounter{maxparens} +\def\themaxparens{\the\c@maxparens} +\newcounter{parenlevel} +\def\theparenlevel{\the\c@parenlevel} + +\newcount\blx@tempcnta +\newcount\blx@tempcntb +\newcount\blx@tempcntc +\newcount\blx@maxsection +\expandafter\newcount\csname blx@maxsegment@0\endcsname +\newcount\blx@notetype +\newcount\blx@parenlevel@text +\newcount\blx@parenlevel@foot +\expandafter\newcount\csname blx@sectionciteorder@0\endcsname +\newcount\blx@entrysetcounter + +\def\blx@uniquename{false} +\def\blx@uniquelist{false} +\def\blx@maxbibnames{0} +\def\blx@minbibnames{0} +\def\blx@maxcitenames{0} +\def\blx@mincitenames{0} +\def\blx@maxsortnames{0} +\def\blx@minsortnames{0} +\def\blx@maxalphanames{0} +\def\blx@minalphanames{0} +\def\blx@maxitems{0} +\def\blx@minitems{0} + +\newlength{\labelnumberwidth} +\newlength{\labelalphawidth} +\newlength{\biblabelsep} +\ifdef\bibitemsep % memoir + {} + {\newlength{\bibitemsep}} +\newlength{\bibnamesep} +\newlength{\bibinitsep} +\newlength{\bibparsep} +\newlength{\bibhang} + +\newbool{refcontextdefaults} +\booltrue{refcontextdefaults}% +\newbool{sourcemap} +\newbool{citetracker} +\newbool{pagetracker} +\newbool{backtracker} +\newbool{citerequest} +\booltrue{citerequest} +\newbool{sortcites} + +\newtoggle{blx@bbldone} +\newtoggle{blx@tempa} +\newtoggle{blx@tempb} +\newtoggle{blx@runltx} +\newtoggle{blx@runbiber} +\newtoggle{blx@block} +\newtoggle{blx@unit} +\newtoggle{blx@skipentry} +\newtoggle{blx@insert} +\newtoggle{blx@lastins} +\newtoggle{blx@keepunit} +\newtoggle{blx@bibtex} +\newtoggle{blx@debug} +\newtoggle{blx@sortcase} +\newtoggle{blx@sortupper} +\newtoggle{blx@autolangbib} +\newtoggle{blx@autolangcite} +\newtoggle{blx@clearlang} +\newtoggle{blx@defernumbers} +\newtoggle{blx@omitnumbers} +\newtoggle{blx@footnote} +\newtoggle{blx@labelalpha} +\newtoggle{blx@labelnumber} +\newtoggle{blx@labeltitle} +\newtoggle{blx@labeltitleyear} +\newtoggle{blx@labeldateparts} +\newtoggle{blx@natbib} +\newtoggle{blx@mcite} +\newtoggle{blx@loadfiles} +\newtoggle{blx@sortsets} +\newtoggle{blx@crossrefsource} +\newtoggle{blx@xrefsource} +\newtoggle{blx@terseinits} +\newtoggle{blx@useprefix} +\newtoggle{blx@addset} +\newtoggle{blx@setonly} +\newtoggle{blx@dataonly} +\newtoggle{blx@skipbib} +\newtoggle{blx@skipbiblist} +\newtoggle{blx@skiplab} +\newtoggle{blx@citation} +\newtoggle{blx@volcite} +\newtoggle{blx@bibliography} +\newtoggle{blx@citeindex} +\newtoggle{blx@bibindex} +\newtoggle{blx@localnumber} +\newtoggle{blx@refcontext} +\newtoggle{blx@noroman} +\newtoggle{blx@nohashothers} +\newtoggle{blx@nosortothers} +\newtoggle{blx@singletitle} +\newtoggle{blx@uniquebaretitle} +\newtoggle{blx@uniqueprimaryauthor} +\newtoggle{blx@uniquetitle} +\newtoggle{blx@uniquework} + +\newcommand*{\blx@xifstrequal}[2]{% + \begingroup + \edef\blx@tempa{% + \endgroup + \noexpand\ifstrequal{#1}{#2}}% + \blx@tempa} + +% Special fields which need resolution using the information provided by biber +\listadd\abx@rfields{labeltitle} +\def\abx@dorfields{% + \dolistloop\abx@rfields% +} +\listadd\abx@rnames{labelname} +\def\abx@dornames{% + \dolistloop\abx@rnames% +} + +% Used to track default refcontexts for citations +\cslet{blx@defaultrefcontexts@0}\@empty +\listadd\blx@allrefsections{0} + +% Used to track sorting name key specifications +\global\let\blx@sortingnamekeytemplates\@empty + +% Used to track uniquename templates +\global\let\blx@untemplatespecs\@empty + +% Used to track labelalphaname templates +\global\let\blx@lantemplatespecs\@empty + +% Used to track transliterations +\global\let\blx@translits\@empty + +% Use to track every entry found in .bbl +% Used to issue defernumbers warning about missing keys because this causes +% defernumbers labelling to fail. +\global\let\blx@entries\@empty + +% Initialise some lists which track changing citations/sortingtemplates +% etc. between runs +\global\let\blx@cites\@empty +\global\let\blx@nocites\@empty +\global\let\blx@directcites\@empty +\global\let\blx@refcontexts\@empty +\global\let\blx@lastrefcontexts\@empty +\global\let\blx@sortingtemplatenames\@empty +\global\let\blx@dlistnames\@empty +\global\let\blx@biblists\@empty +\global\let\blx@lastbiblists\@empty +\global\let\blx@lastcites\@empty +\global\let\blx@localnumaux\@empty + +\newread\blx@bcfin +\newwrite\blx@bcfout + +\def\blx@onlypreamble#1{% + \gappto\blx@dopreamblecmds{\do#1}} + +\def\blx@dopreamblecmds{% + \do\blx@dopreamblecmds + \do\blx@onlypreamble} + +% Deprecations +\newrobustcmd*{\DeprecateField}[2]{% + \csdef{abx@field@#1}{% + \ifcsundef{abx@legacywarning@field@#1} + {\blx@warning@noline{Field '#1' is deprecated. #2}} + {}% + \global\cslet{abx@legacywarning@field@#1}\@empty}}% +\newrobustcmd*{\DeprecateList}[2]{% + \csdef{abx@list@#1}{% + \ifcsundef{abx@legacywarning@list@#1} + {\blx@warning@noline{List '#1' is deprecated. #2}} + {}% + \global\cslet{abx@legacywarning@list@#1}\@empty}} +\newrobustcmd*{\DeprecateName}[2]{% + \csdef{abx@name@#1}{% + \ifcsundef{abx@legacywarning@name@#1} + {\blx@warning@noline{Name '#1' is deprecated. #2}} + {}% + \global\cslet{abx@legacywarning@name@#1}\@empty}} + +\let\blx@aliasfields\@empty + +\newrobustcmd*{\DeprecateFieldWithReplacement}[2]{% + \appto\blx@aliasfields{% + \ifcsundef{abx@field@#2} + {} + {\csdef{abx@field@#1}{% + \csuse{abx@field@#2}% + \ifcsundef{abx@legacywarning@field@#1} + {\blx@warning@noline{Field '#1' is deprecated.\MessageBreak + Please use '#2' instead.\MessageBreak + Using '#2' now}} + {}% + \global\cslet{abx@legacywarning@field@#1}\@empty}}}} + +\newrobustcmd*{\DeprecateListWithReplacement}[2]{% + \appto\blx@aliasfields{% + \ifcsundef{abx@list@#2} + {} + {\csdef{abx@list@#1}{% + \csuse{abx@list@#2}% + \ifcsundef{abx@legacywarning@list@#1} + {\blx@warning@noline{List '#1' is deprecated.\MessageBreak + Please use '#2' instead.\MessageBreak + Using '#2' now}} + {}% + \global\cslet{abx@legacywarning@list@#1}\@empty}}}} + +\newrobustcmd*{\DeprecateNameWithReplacement}[2]{% + \appto\blx@aliasfields{% + \ifcsundef{abx@name@#2} + {} + {\csdef{abx@name@#1}{% + \csuse{abx@name@#2}% + \ifcsundef{abx@legacywarning@name@#1} + {\blx@warning@noline{Name '#1' is deprecated.\MessageBreak + Please use '#2' instead.\MessageBreak + Using '#2' now}} + {}% + \global\cslet{abx@legacywarning@name@#1}\@empty}}}} + +%% Initialisation +\def\blx@blxinit{% + \let\blx@blxinit\relax + \blx@initunit} + +\def\blx@secinit{% + \csgdef{blx@sections@\the\c@refsection}{true}% just to say we have a section for tests later + \ifcsundef{blx@bsee@\the\c@refsection} + {\global\cslet{blx@bsee@\the\c@refsection}\@empty} + {}% + \ifcsundef{blx@fsee@\the\c@refsection} + {\global\cslet{blx@fsee@\the\c@refsection}\@empty} + {}% + \blx@ibidreset@force + \blx@idemreset@force + \blx@opcitreset@force + \blx@loccitreset@force + % List to track all aliases in a section. We need to output all aliases + % to the .bcf every time so that they are visible to biber + % Reset only if undefined + \ifcsundef{blx@keyaliases@\the\c@refsection} + {\global\cslet{blx@keyaliases@\the\c@refsection}\@empty} + {}% + \ifcsundef{blx@segm@\the\c@refsection @\the\c@refsegment} + {\global\cslet{blx@segm@\the\c@refsection @\the\c@refsegment}\@empty} + {}} + +%% Auxiliary commands +\protected\def\blx@regimc#1{% + \xappto\blx@blxinit{% + \let\noexpand#1\expandafter\noexpand\csname + blx@imc@\expandafter\@gobble\string#1\endcsname}} + +\protected\def\blx@regimcs#1{\blx@regimcs@i#1&} +\def\blx@regimcs@i#1{% + \ifx#1&\else + \blx@regimc#1% + \expandafter\blx@regimcs@i + \fi} + +% {<field>} => \do{<item1>}\do{<item2>}... +\def\blx@imc@docsvfield#1{% + \blx@imc@iffieldundef{#1} + {} + {\expandafter\expandafter\expandafter\docsvlist + \expandafter\expandafter\expandafter{% + \csname abx@field@#1\endcsname}}} + +% {<handler>}{<field>} => <handler>{<item1>}<handler>{<item2>}... +\def\blx@imc@forcsvfield#1#2{% + \blx@imc@iffieldundef{#2} + {} + {\expandafter\expandafter\expandafter\blx@imc@forcsvfield@i + \expandafter\expandafter\expandafter{% + \csname abx@field@#2\endcsname}{#1}}} + +\def\blx@imc@forcsvfield@i#1#2{\forcsvlist{#2}{#1}} + +\blx@regimcs{\docsvfield \forcsvfield} + +% {<list>|<listmacro>} +\protected\long\def\blx@listloop#1{% + \expandafter\blx@listloop@i#1|&} +\long\def\blx@listloop@i#1|{% + \ifblank{#1} + {\blx@break} + {\blx@do{#1}\blx@listloop@i}} + +\long\def\blx@break#1&{% + \blx@done + \undef\blx@do + \undef\blx@done} + +% {<listmacro>}{<listcsname>} => matches in <listmacro> +\protected\def\blx@filter#1#2{% + \def\do##1{% + \ifinlistcs{##1}{#2} + {\listadd#1{##1}} + {}}% + \blx@runfilter#1} + +% {<listmacro>}{<listcsname>} => matches in <listmacro> +% Slightly odd use of filtering to do citation sorting. +% Same as blx@filter but it keeps \tempcnta in step with the +% resulting number of things in the filtered list. This is +% because \tempcnta is used to set citetotal - this use +% of filtering for cite sorting has the side-effect of stripping +% duplicates like \cite{foo,foo} but we need then to keep citetotal +% in sync. +\protected\def\blx@filtercitesort#1#2{% + \blx@tempcnta\z@ + \def\do##1{% + \ifinlistcs{##1}{#2} + {\listadd#1{##1}% + \advance\blx@tempcnta\@ne} + {}}% + \blx@runfilter#1} + +% {<listmacro>}{<listcsname>} => neg. matches in <listmacro> +\protected\def\blx@notfilter#1#2{% + \def\do##1{% + \ifinlistcs{##1}{#2} + {} + {\listadd#1{##1}}}% + \blx@runfilter#1} + +\def\blx@runfilter#1{% + \begingroup\edef#1{\endgroup + \unexpanded{\let#1\@empty\dolistloop}{#1}}% + #1\let\do\noexpand} + +% {<code>}{<string>} => <code>{<string>} +\protected\def\blx@xsanitizeafter#1#2{% + \begingroup + \abx@hook@xsanitize + \def\blx@tempa{\endgroup#1}% + \edef\blx@tempb{#2}% + \expandafter\blx@tempa + \expandafter{\detokenize\expandafter{\blx@tempb}}} + +\def\abx@hook@xsanitize{% + \blx@safe@actives + \let\protect\string} + +% {<code>}{<string>} => <code>{<string>} +\begingroup +\catcode`\<=\active +\catcode`\>=\active +\catcode`\&=\active +\catcode`\"=\active +\catcode`\'=\active +\protected\gdef\blx@xmlsanitizeafter#1#2{% + \begingroup + \abx@hook@xsanitize + \def\blx@tempa{\endgroup#1}% + \edef\blx@tempb{#2}% + \let\do\@makeother + \dospecials + \catcode`\<=\active + \catcode`\>=\active + \catcode`\&=\active + \catcode`\"=\active + \catcode`\'=\active + \edef<{\string<\string;}% + \edef>{\string>\string;}% + \edef&{\string&\string;}% + \edef"{\string"\string;}% + \edef'{\string&apos\string;}% + \endlinechar\m@ne + \everyeof{\noexpand}% + \edef\blx@tempb{\scantokens\expandafter{\blx@tempb}}% + \expandafter\blx@tempa + \expandafter{\detokenize\expandafter{\blx@tempb}}} +\endgroup + +% {<file>}{<message>}{<preload>}{<postload>}{<success>}{<failure>} +\protected\long\def\blx@inputonce#1#2#3#4#5#6{% + \ifcsundef{blx@file@#1} + {\blx@info@noline{Trying to load #2..}% + \IfFileExists{#1} + {\blx@info@noline{... file '#1' found}% + #3\@@input\@filef@und#4#5% + \listxadd\blx@list@req@stat{#1}% + \@addtofilelist{#1}} + {\blx@info@noline{... file '#1' not found}#6}% + \global\cslet{blx@file@#1}\@empty} + {#5}} + +% {<write>}{<precode>}{<string>} +\protected\def\blx@auxwrite#1#2#3{% + \if@filesw + \begingroup + \blx@safe@actives + \let\protect\string + #2% + \immediate\write#1{#3}% + \endgroup + \fi} + +% {<file>}{<signature>}{<true>}{<false>} +\def\blx@ifsigned#1#2{% + \begingroup + \let\blx@tempa\@firstoftwo + \edef\blx@tempb{\csuse{blx@sig@#2}}% + \edef\blx@tempb{\detokenize\expandafter{\blx@tempb}}% + \openin\blx@bcfin #1.#2\relax + \ifeof\blx@bcfin + \else + \endlinechar\m@ne + \readline\blx@bcfin to \blx@tempc + \ifeof\blx@bcfin + \else + \ifx\blx@tempb\blx@tempc + \readline\blx@bcfin to \blx@tempc + \edef\blx@tempb{\csuse{blx@ver@#2}}% + \edef\blx@tempb{\detokenize\expandafter{\blx@tempb}}% + \ifx\blx@tempb\blx@tempc + \else + \blx@warning@noline{% + File '#1.#2' is wrong format version - expected \blx@bblversion} + \fi + \else + \blx@error + {File '#1.#2' not created by biblatex} + {This file was apparently not created by biblatex. + Rename it or\MessageBreak move it to a location were + TeX will not find it. If this error\MessageBreak + persists, consider redefining \string\blxauxsuffix.% + See the biblatex\MessageBreak manual for details}% + \let\blx@tempa\@secondoftwo + \fi + \fi + \fi + \closein\blx@bcfin + \expandafter\endgroup\blx@tempa} + +\edef\blx@sig@bbl{\@percentchar\space $ biblatex auxiliary file $} +\edef\blx@ver@bbl{\@percentchar\space $ biblatex bbl format version \blx@bblversion\space $} +\edef\blx@sig@bcf{\detokenize{<?xml version="1.0" encoding="UTF-8"?>}} +\edef\blx@ver@bcf{% + \detokenize{<bcf:controlfile version="}\blx@bcfversion + \detokenize{" bltxversion="}\abx@version + \detokenize{" xmlns:bcf="https://sourceforge.net/projects/biblatex">}} + +% {<true>}{<false>} +\newrobustcmd*{\lbx@ifutfinput}{\ifboolexpr{% + test {\ifdefstring\inputencodingname{utf8}} + or + test {\ifdefstring\inputencodingname{utf8x}} + or + test {\ifdefstring\inputencodingname{lutf8}} + or + ( test {\ifundef\inputencodingname} + and + ( not test {\ifundef\XeTeXrevision} + or + not test {\ifundef\luatexversion} + ) + ) +}} + +%% More user feedback +\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@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} +\def\blx@imc@BibliographyWarning{\blx@warning@entry} +\blx@regimc\BibliographyWarning + +\protected\def\abx@missing#1{% + \mbox{\reset@font\bfseries#1}} + +\def\blx@err@patch#1{% + \blx@error + {Patching #1 failed} + {This is an internal issue typically caused by a + conflict\MessageBreak between biblatex and some + other package. Modifying\MessageBreak the package + loading order may fix the problem}} + +\def\blx@err@nolang#1{% + \blx@error + {Language '#1' not found} + {The localization module for '#1' could not be found}} + +\def\blx@err@invarg#1#2{% + \blx@error + {Argument '#1' invalid} + {\ifblank{#2} + {The argument you have supplied is invalid.\MessageBreak + See the biblatex manual for details} + {#2}}} + +\def\blx@err@invopt#1#2{% + \blx@error + {Option '#1' invalid} + {\ifblank{#2} + {The option you have supplied is invalid.\MessageBreak + See the biblatex manual for valid option keys and + possible values} + {#2}}} + +\def\blx@err@confopt#1#2{% + \blx@error + {Conflicting options\ifblank{#1}{}{ (#1)}} + {\ifblank{#2} + {The option you have supplied conflicts with another one.\MessageBreak + See the biblatex manual for valid option keys and possible values} + {#2}}} + +\def\blx@err@optdef#1#2{% + \blx@error + {Option '#1' already defined} + {The option '#1' is already defined in scope '#2'}} + +\def\blx@err@nodocdiv#1{% + \blx@error + {\@backslashchar#1 not provided by class} + {The document class does not seems to support #1s}} + +\def\blx@err@nosec#1{% + \blx@error + {Section '#1' not found} + {The reference section '#1' could not be found}} + +\def\blx@err@nosort#1{% + \blx@error + {Sorting template '#1' not found} + {The sorting template '#1' does not seem to have been defined anywhere}} + +\def\blx@err@secfirst{% + \blx@error + {'section' not first filter} + {When passing multiple filter options, + the 'section' filter must be given first}} + +\protected\def\blx@err@nestcite{% + \blx@error + {Nested citation command} + {Citation commands may not be nested}} + +\def\blx@err@nestenv#1{% + \blx@error + {Nested '#1' environment} + {This environment may not be nested}} + +\protected\def\blx@err@citecmd#1{% + \begingroup + \escapechar\m@ne + \blx@error + {Command '\@backslashchar\string#1' undefined} + {The citation command '\@backslashchar\string#1' + has not been defined\MessageBreak by the + selected citation style}% + \endgroup} + +\def\blx@err@endnote#1{% + \blx@error + {Missing or incomplete endnote support} + {There does not seem to be endnote support available\MessageBreak + or the available support is incomplete.\MessageBreak + If you continue, I will fall back to '\string#1'}% + #1} + +\def\blx@err@matchparen#1{% + \blx@error + {Unbalanced parentheses or brackets} + {\iftoggle{blx@footnote}{#1 in foot or endnote}{#1}.\MessageBreak + This error is triggered if \string\bibopenparen\space and + \string\bibcloseparen\MessageBreak or + \string\bibopenbracket\space and \string\bibclosebracket\space + are unbalanced\MessageBreak or mismatched}} + +\def\blx@err@nestparen#1{% + \blx@error + {Too deeply nested parentheses or brackets} + {#1 nested too deeply% + \iftoggle{blx@footnote}{\space in foot or endnote}{}.\MessageBreak + This error may also be triggered if \string\mkbibparens\MessageBreak + or \string\mkbibbrackets\space are nested too deeply}} + +\def\blx@err@filter{% + \blx@error + {Invalid filter expression} + {The filter expression you have supplied is invalid.\MessageBreak + See the biblatex manual for details}} + +\def\blx@warn@nohyph#1{% + \blx@warning{No hyphenation patterns for '#1'}} + +\protected\def\blx@warn@citecmd#1#2{% + \blx@warning{% + '\string#1' not defined by citation style.\MessageBreak + Falling back to '\string#2'}% + #2} + +\protected\def\blx@warn@nostring#1{% + \blx@warning@entry{Bibliography string '#1' + \ifcsundef{KV@blx@lbx@#1}{undefined}{untranslated}}% + \abx@missing{#1}} + +\def\blx@warn@conflopt#1{% + \blx@warning{Conflicting options.\MessageBreak#1}} + +\def\blx@warn@badoptdt#1{% + \blx@warning{Invalid option datatype '#1'.\MessageBreak + Defaulting to 'boolean'}} + +\def\blx@warn@depropt#1{% + \blx@warning{Deprecated option.\MessageBreak Ignoring '#1'}} + +\def\blx@warn@bibempty{% + \@latex@warning{Empty bibliography}} + +\def\blx@warn@biblistempty#1{% + \@latex@warning{Empty biblist '#1'}} + +\def\blx@inf@refsec{% + \blx@info{Reference section=\the\c@refsection}}% + +\def\blx@inf@delimdeclare#1#2{% + \blx@info{Delimiter '#1' in context '#2' already defined, overwriting}} + +\def\blx@warn@delimuse#1#2{% + \blx@warning{Delimiter '#1' in context '#2' undefined}} + +\def\blx@inf@refseg{% + \ifnum\c@refsection=\z@ + \blx@info{Reference segment=\the\c@refsegment}% + \else + \blx@info{% + Reference section/segment=% + \the\c@refsection/\the\c@refsegment}% + \fi} + +\def\blx@inf@creset{% + \blx@info{Resetting trackers}}% + +\def\blx@msg@cundef#1{% + Citation '#1' undefined} +\def\blx@msg@cundefon#1{% + Citation '#1' on page \the\c@page\space undefined} + +% Dummy as backend is biber by default. Some style may still use this to +% check though. +\newrobustcmd*{\RequireBiber}[1][2]{} + +% \blx@list@active active aux files (basename) +% [internal list] +% \blx@list@inactive inactive aux files (basename) +% [internal list] +% \blx@list@bibfiles@<auxfile> aux file -> bib file mapping (refsections) +% aux file (basename) -> bib files (full) +% [internal list] + +\let\blx@list@active\@empty +\let\blx@list@inactive\@empty +\listeadd\blx@list@inactive{\jobname} + +\protected\def\blx@regbibfiles#1#2{% + \forlistloop{\blx@regbibfile{#1}}{#2}} + +\def\blx@regbibfile#1#2{% + \ifcsundef{blx@res@loca@#2} + {\blx@regbibfile@i{#1}{#2}} + {\ifcsstring{blx@res@loca@#2}{local} + {\blx@regbibfile@i{#1}{#2}} + {}}} + +\def\blx@regbibfile@i#1#2{% + \ifinlistcs{#2}{blx@list@bibfiles@#1} + {} + {\listcsxadd{blx@list@bibfiles@#1}{#2}}} + +\def\blx@check@logreq{% + \begingroup + \ltxrequest{biblatex}{{\iftoggle{blx@runltx}{1}{0}}}{% + \provides[type=dynamic]{ + \file{\jobname.bcf} + } + \requires[type=dynamic]{ + \file{\jobname.bbl} + } + \ifdef\blx@list@req@edit + {\requires[type=editable]{ + \forlistloop\file\blx@list@req@edit + }} + {} + \ifdef\blx@list@req@stat + {\requires[type=static]{ + \forlistloop\file\blx@list@req@stat + }} + {} + }% + \logrequest[package=biblatex,priority=5,active={{\iftoggle{blx@runbiber}{1}{0}}}]{% + \generic{biber} + \cmdline{ + \binary{biber} + \infile{\jobname} + } + \input{ + \file{\jobname.bcf} + } + \output{ + \file{\jobname.bbl} + } + \provides[type=dynamic]{ + \file{\jobname.bbl} + } + \requires[type=dynamic]{ + \file{\jobname.bcf} + } + \ifcsdef{blx@list@bibfiles@\jobname} + {\requires[type=editable]{ + \def\do{\file} + \dolistcsloop{blx@list@bibfiles@\jobname} + }} + {} + }% + \endgroup} + +\def\blx@logreq@active#1{% + \ifblank{#1} + {} + {\@latex@warning{#1}}% + \blx@rerun@latex + \blx@rerun@biber} + +\def\blx@rerun@latex{% + \G@refundefinedtrue + \global\toggletrue{blx@runltx}% + \global\let\blx@rerun@latex\relax} + +\def\blx@rerun@biber{% + \global\toggletrue{blx@runbiber}% + \global\let\blx@rerun@biber\relax} + +\let\blx@checksum@old\@empty +\let\blx@checksum@new\@empty +\let\blx@pagesum@old\@empty +\let\blx@pagesum@new\@empty + +\def\blx@checksum#1#2#3{% + \begingroup + \blx@tempcnta\the\numexpr0#2*0#3\relax + \blx@tempcntb\blx@tempcnta + \divide\blx@tempcntb10 + \multiply\blx@tempcntb10 + \advance\blx@tempcnta-\blx@tempcntb + \xdef#1{#1\the\blx@tempcnta}% + \endgroup} + +\def\blx@addchecksum{\blx@checksum\blx@checksum@old} +\def\blx@addpagesum{\blx@checksum\blx@pagesum@old} +\AtEndDocument{% + \def\blx@addchecksum{\blx@checksum\blx@checksum@new}% + \def\blx@addpagesum{\blx@checksum\blx@pagesum@new}} + +\protected\def\blx@check@rerun{% + \begingroup + \blx@tempcnta\z@ + \iftoggle{blx@runltx} + {\blx@tempcnta\@ne} + {\ifx\blx@checksum@old\blx@checksum@new + \ifx\blx@pagesum@old\blx@pagesum@new + \else + \blx@tempcnta\@ne + \fi + \else + \blx@tempcnta\@ne + \fi}% + \iftoggle{blx@runbiber} + {\advance\blx@tempcnta\tw@} + {}% + \ifcase\blx@tempcnta + \or + \blx@rerun@latex + \blx@warning@noline{% + Please rerun LaTeX% + \ifx\blx@pagesum@old\blx@pagesum@new\else + .\MessageBreak Page breaks have changed% + \fi}% + \else + \blx@rerun@latex + \blx@warn@auxlist + \fi + \endgroup} + +\def\blx@warn@auxlist{% + \begingroup + \edef\blx@tempa{% + Please (re)run Biber on the file:\MessageBreak + \jobname}% + \blx@warning@noline{% + \blx@tempa\MessageBreak + and rerun LaTeX afterwards}% + \endgroup} + +\AfterEndDocument{% + \blx@check@rerun + \blx@check@logreq} + +%% Punctuation and capitalization + +% 1001 prefix sep for names (e.g. d'Argent ... \printnames only) +% 1002 abbreviation period (dot) +% 1003/1250 comma +% 1004/1500 semicolon +% 1005/2000 colon +% 1006/3000 period +% 1007/3001 exclamation mark +% 1008/3002 question mark +% 1009 suppress punctuation +% 1010 new paragaph + +\mathchardef\blx@sf@prefixchar=1001% e.g. apostrophe or equivalent for prefix handling +\mathchardef\blx@sf@dot=1002 +\mathchardef\blx@sf@comma=1003 +\mathchardef\blx@sf@semicolon=1004 +\mathchardef\blx@sf@colon=1005 +\mathchardef\blx@sf@period=1006 +\mathchardef\blx@sf@exclam=1007 +\mathchardef\blx@sf@question=1008 +\mathchardef\blx@sf@nopunct=1009 +\mathchardef\blx@sf@par=1010 +\mathchardef\blx@sf@threshold@low=1002 +\mathchardef\blx@sf@threshold@high=1009 + +\csdef{blx@sf@1250}{\the\blx@sf@comma} +\csdef{blx@sf@1500}{\the\blx@sf@semicolon} +\csdef{blx@sf@2000}{\the\blx@sf@colon} +\csdef{blx@sf@3000}{\the\blx@sf@period} +\csdef{blx@sf@3001}{\the\blx@sf@exclam} +\csdef{blx@sf@3002}{\the\blx@sf@question} + +\csdef{blx@pm@,}{comma} +\csdef{blx@pm@;}{semicolon} +\csdef{blx@pm@:}{colon} +\csdef{blx@pm@.}{period} +\csdef{blx@pm@!}{exclam} +\csdef{blx@pm@?}{question} + +\def\blx@setsfcodes{% + \let\blx@setsfcodes\relax + \let\frenchspacing\blx@setfrcodes + \let\nonfrenchspacing\blx@setencodes + \ifnum\sfcode`\.>2000 + \blx@setencodes + \else + \blx@setfrcodes + \fi + \@setquotesfcodes + \sfcode`\(=\z@ + \sfcode`\)=\z@ + \sfcode`\[=\z@ + \sfcode`\]=\z@ + \sfcode`\<=\z@ + \sfcode`\>=\z@} + +\def\blx@setfrcodes{% + \ifnum\sfcode`\A=\@m + \else + \blx@setazcodes + \fi + \sfcode`\,=\blx@sf@comma + \sfcode`\;=\blx@sf@semicolon + \sfcode`\:=\blx@sf@colon + \sfcode`\.=\blx@sf@period + \sfcode`\!=\blx@sf@exclam + \sfcode`\?=\blx@sf@question +} + +\def\blx@setencodes{% + \sfcode`\,=1250 + \sfcode`\;=1500 + \sfcode`\:=2000 + \sfcode`\.=3000 + \sfcode`\!=3001 + \sfcode`\?=3002 +} + +% Defining characters that count as prefices in names like d'Argent +% Code from moewe +\let\blx@prefchars\@empty + +\def\blx@defprefchars@loop#1{% + \ifx#1\relax + \else + \listadd{\blx@prefchars}{#1}% + \expandafter\blx@defprefchars@loop + \fi} + +\def\blx@defprefchars#1{% + \expandafter\blx@defprefchars@loop\detokenize{#1}\relax} + +\newrobustcmd*{\DeclarePrefChars}{% + \@ifstar + {\blx@defprefchars} + {\global\let\blx@prefchars\@empty + \blx@defprefchars}} +\DeclarePrefChars{'-} + +\protected\def\blx@imc@ifprefchar{% + \ifhmode + \begingroup + \ifnum\spacefactor=\blx@sf@prefixchar + \endgroup + \expandafter\expandafter + \expandafter\@firstoftwo + \else + \endgroup + \expandafter\expandafter + \expandafter\@secondoftwo + \fi + \else + \expandafter\@secondoftwo + \fi} + +\blx@regimcs{\ifprefchar} + +\def\blx@namecodes{% + \ifnum\sfcode`\A=\@m + \else + \blx@setazcodes + \fi + \def\do##1{\sfcode`##1=\blx@sf@prefixchar}% + \dolistloop\blx@prefchars +} + +\begingroup +\let\blx@setazcodes\@empty +\def\blx@tempa{% + \xdef\blx@setazcodes{% + \blx@setazcodes + \sfcode\the\blx@tempcnta=\@m} + \ifnum\blx@tempcnta<\blx@tempcntb + \advance\blx@tempcnta\@ne + \expandafter\blx@tempa + \fi} +\blx@tempcnta`\A +\blx@tempcntb`\Z +\blx@tempa +\ifnum\inputlineno=\m@ne\else + \blx@tempcnta"80 + \blx@tempcntb"9C + \blx@tempa + \blx@tempcnta"C0 + \blx@tempcntb"DF + \blx@tempa +\fi +\endgroup + +\def\blx@spacefactor{% + \ifhmode + \ifcsundef{blx@sf@\the\spacefactor} + {\the\spacefactor} + {\csname blx@sf@\the\spacefactor\endcsname}% + \else + \the\blx@sf@par + \fi} + +\protected\def\blx@leavevmode{% + \ifhmode + \else + \leavevmode\spacefactor\blx@sf@par + \fi} + +\protected\def\blx@leavevmode@cite{% + \ifhmode + \ifnum\spacefactor=\blx@sf@par + \else + \spacefactor\@m + \fi + \else + \leavevmode + \fi} + +\protected\def\blx@imc@setpunctfont#1{% + \blx@ifpuncthook + {\gdef\abx@puncthook{% + \ifdim\lastkern>\z@\unkern\fi + \blx@imc@resetpunctfont#1}} + {}} +\protected\def\blx@imc@resetpunctfont{% + \blx@ifpuncthook + {\global\let\abx@puncthook\@firstofone} + {}} + +\protected\def\blx@setpostpunct#1{% + \blx@ifuspunct + {\global\let\blx@postpunct\blx@dopostpunct + \ifdef\blx@thepostpunct + {\gappto\blx@thepostpunct{#1}} + {\gdef\blx@thepostpunct{#1}}} + {}} + +\def\blx@dopostpunct{% + \blx@thepostpunct + \global\let\blx@postpunct\@empty + \global\undef\blx@thepostpunct} + +\protected\def\blx@postpunct@agroup{% + \aftergroup\blx@postpunct + \let\blx@postpunct@agroup\@empty} + +% {<characters>} +\newrobustcmd*{\DeclareCapitalPunctuation}[1]{% + \cslet{blx@cap@\the\blx@sf@par}\@empty + \csundef{blx@cap@\the\blx@sf@comma}% + \csundef{blx@cap@\the\blx@sf@semicolon}% + \csundef{blx@cap@\the\blx@sf@colon}% + \csundef{blx@cap@\the\blx@sf@period}% + \csundef{blx@cap@\the\blx@sf@exclam}% + \csundef{blx@cap@\the\blx@sf@question}% + \ifblank{#1} + {} + {\expandafter\blx@defcapstring\detokenize{#1}\relax}} + +\def\blx@defcapstring#1{% + \ifx#1\relax + \else + \begingroup + \blx@setfrcodes + \ifcsdef{blx@pm@#1} + {\expandafter\endgroup + \expandafter\let + \csname blx@cap@\the\sfcode`#1\endcsname\@empty} + {\blx@warning{Ignoring invalid punctuation mark '#1'}% + \endgroup}% + \expandafter\blx@defcapstring + \fi} + +% {<characters>} +\newrobustcmd*{\DeclareQuotePunctuation}[1]{% + \csdef{blx@qp@comma}{\blx@postpunct}% + \csdef{blx@qp@semicolon}{\blx@postpunct}% + \csdef{blx@qp@colon}{\blx@postpunct}% + \csdef{blx@qp@period}{\blx@postpunct}% + \csdef{blx@qp@exclam}{\blx@postpunct}% + \csdef{blx@qp@question}{\blx@postpunct}% + \cslet{blx@pq@comma}\@empty + \cslet{blx@pq@semicolon}\@empty + \cslet{blx@pq@colon}\@empty + \cslet{blx@pq@period}\@empty + \cslet{blx@pq@exclam}\@empty + \cslet{blx@pq@question}\@empty + \let\blx@quotepunct\@empty + \ifblank{#1} + {\let\blx@ifuspunct\@secondoftwo} + {\let\blx@ifuspunct\@firstoftwo + \expandafter\blx@defquotepunct\detokenize{#1}&}} + +\def\blx@defquotepunct#1{% + \ifx\relax + \else + \ifcsdef{blx@pm@#1} + {\appto\blx@quotepunct{#1}% + \cslet{blx@qp@\csuse{blx@pm@#1}}\@empty + \csdef{blx@pq@\csuse{blx@pm@#1}}{\blx@postpunct}} + {\blx@warning{Ignoring invalid punctuation mark '#1'}}% + \expandafter\blx@defquotepunct + \fi} + +% {<mark>}{<characters>} +\newrobustcmd*{\DeclarePunctuationPairs}[2]{% + \ifcsdef{blx@sf@\detokenize{#1}} + {\ifnum\csname blx@sf@\detokenize{#1}\endcsname>\blx@sf@prefixchar + \ifnum\csname blx@sf@\detokenize{#1}\endcsname<\blx@sf@nopunct + \expandafter\blx@defpunctpairs + \expandafter{\the\csname blx@sf@\detokenize{#1}\endcsname}{#2}% + \else + \blx@err@invarg{\detokenize{#1}{}}% + \fi + \else + \blx@err@invarg{\detokenize{#1}{}}% + \fi} + {\blx@err@invarg{\detokenize{#1}{}}}} + +\def\blx@defpunctpairs#1#2{% + \blx@undefpair{#1}{\the\blx@sf@dot}% + \blx@undefpair{#1}{\the\blx@sf@comma}% + \blx@undefpair{#1}{\the\blx@sf@semicolon}% + \blx@undefpair{#1}{\the\blx@sf@colon}% + \blx@undefpair{#1}{\the\blx@sf@period}% + \blx@undefpair{#1}{\the\blx@sf@exclam}% + \blx@undefpair{#1}{\the\blx@sf@question}% + \ifblank{#2} + {} + {\begingroup + \def\blx@tempa{#1}% + \let\blx@tempb\@empty + \blx@setfrcodes + \sfcode`\*=\blx@sf@dot + \expandafter\blx@defpair\detokenize{#2}&% + \expandafter\endgroup\blx@tempb}} + +\def\blx@defpair#1{% + \ifx% + \else + \ifnum\the\sfcode`#1>\blx@sf@prefixchar + \ifnum\the\sfcode`#1<\blx@sf@nopunct + \eappto\blx@tempb{% + \cslet{blx@pp@\blx@tempa @\the\sfcode`#1}\noexpand\@empty}% + \else + \blx@err@invarg{#1}{}% + \fi + \else + \blx@err@invarg{#1}{}% + \fi + \expandafter\blx@defpair + \fi} + +\def\blx@undefpair#1#2{% + \ifcsdef{blx@pp@#1@#2} + {\csundef{blx@pp@#1@#2}} + {}} + +\protected\def\blx@resetpunct{% + \DeclareCapitalPunctuation{.!?}% + \DeclarePunctuationPairs{dot}{}% + \DeclarePunctuationPairs{comma}{*!?}% + \DeclarePunctuationPairs{semicolon}{*!?}% + \DeclarePunctuationPairs{colon}{*!?}% + \DeclarePunctuationPairs{period}{}% + \DeclarePunctuationPairs{exclam}{*}% + \DeclarePunctuationPairs{question}{*}% + \DeclareQuotePunctuation{}% + \def\abx@dot{\ifdim\lastkern>\z@\unkern\fi.\spacefactor\blx@sf@dot}% + \def\abx@comma{\ifdim\lastkern>\z@\unkern\fi\abx@puncthook{,}}% + \def\abx@semicolon{\abx@puncthook{;}}% + \def\abx@colon{\abx@puncthook{:}}% + \def\abx@period{\ifdim\lastkern>\z@\unkern\fi\abx@puncthook{.}}% + \def\abx@exclam{\abx@puncthook{!}}% + \def\abx@question{\abx@puncthook{?}}% + \global\let\abx@puncthook\@firstofone + \global\let\blx@postpunct\@empty} + +\blx@resetpunct + +% {<character>}{<true>}{<false>} +\protected\def\blx@imc@ifpunctmark#1{% + \ifhmode + \begingroup + \sfcode`\*=\blx@sf@dot + \ifnum\sfcode`#1=\spacefactor + \endgroup + \expandafter\expandafter + \expandafter\@firstoftwo + \else + \endgroup + \expandafter\expandafter + \expandafter\@secondoftwo + \fi + \else + \expandafter\@secondoftwo + \fi} + +% {<true>}{<false>} +\protected\def\blx@imc@ifterm{% + \ifhmode + \expandafter\blx@imc@ifcapital + \else + \expandafter\@secondoftwo + \fi} + +% {<true>}{<false>} +\protected\def\blx@imc@ifcapital{% + \ifcsdef{blx@cap@\blx@spacefactor}} + +% {<true>}{<false>} +\protected\def\blx@imc@ifpunct{% + \ifnum\blx@spacefactor>\blx@sf@threshold@low + \ifnum\blx@spacefactor<\blx@sf@threshold@high + \expandafter\expandafter + \expandafter\@firstoftwo + \else + \expandafter\expandafter + \expandafter\@secondoftwo + \fi + \else + \expandafter\@secondoftwo + \fi} + +% {<character>} +\newrobustcmd*{\autocap}[1]{#1} + +\protected\def\blx@imc@autocap{% + \blx@imc@ifcapital\MakeUppercase\@firstofone} + +\protected\def\blx@imc@nopunct{% + \leavevmode\spacefactor\blx@sf@nopunct} + +\protected\def\blx@imc@isdot{% + \ifnum\blx@spacefactor=\blx@sf@period + \spacefactor\blx@sf@dot + \fi} + +\protected\def\blx@imc@adddot{% + \blx@addpunct{dot}% + \ifnum\blx@spacefactor=\blx@sf@period + \spacefactor\blx@sf@dot + \fi} + +\protected\def\blx@imc@addperiod{% + \blx@addpunct{period}% + \ifnum\blx@spacefactor=\blx@sf@dot + \spacefactor\blx@sf@period + \fi} + +\protected\def\blx@imc@addcomma{\blx@addpunct{comma}} +\protected\def\blx@imc@addsemicolon{\blx@addpunct{semicolon}} +\protected\def\blx@imc@addcolon{\blx@addpunct{colon}} +\protected\def\blx@imc@addexclam{\blx@addpunct{exclam}} +\protected\def\blx@imc@addquestion{\blx@addpunct{question}} + +\def\blx@addpunct#1{% + \unspace + \ifnum\blx@spacefactor<\blx@sf@threshold@low + \csuse{blx@qp@#1}\csuse{abx@#1}% + \else + \ifnum\blx@spacefactor>\blx@sf@threshold@high + \csuse{blx@qp@#1}\csuse{abx@#1}% + \else + \ifcsdef{blx@pp@\the\csname blx@sf@#1\endcsname @\blx@spacefactor} + {\csuse{blx@qp@#1}\csuse{abx@#1}} + {\csuse{blx@qp@#1}}% + \fi + \fi + \csuse{blx@pq@#1}} + +\providerobustcmd*{\unspace}{% + \ifbool{hmode} + {\ifdimgreater\lastskip\z@ + {\unskip\unspace} + {\ifnumgreater\lastpenalty\z@ + {\unpenalty\unspace} + {}}} + {}} + +\newrobustcmd*{\bibsentence}{% + \leavevmode\spacefactor\blx@sf@par + \ignorespaces} + +\newrobustcmd*{\midsentence}{% + \leavevmode + \@ifstar + {\ifnum\spacefactor=\blx@sf@dot + \else + \spacefactor\@m + \fi} + {\spacefactor\@m}} + +\newrobustcmd*{\addslash}{% + \unspace/\penalty\hyphenpenalty\hskip\z@skip} + +\newrobustcmd*{\addspace}{% + \unspace\blx@postpunct + \space\blx@imc@resetpunctfont} + +\newrobustcmd*{\addnbspace}{% + \unspace\blx@postpunct + \nobreak\space\blx@imc@resetpunctfont} + +\newrobustcmd*{\addthinspace}{% + \unspace\blx@postpunct + \hskip0.16667em\relax + \blx@imc@resetpunctfont} + +\newrobustcmd*{\addnbthinspace}{% + \unspace\blx@postpunct + \nobreak\hskip0.16667em\relax + \blx@imc@resetpunctfont} + +\newrobustcmd*{\addlowpenspace}{% + \unspace\blx@postpunct + \penalty\value{lownamepenalty}\space + \blx@imc@resetpunctfont} + +\newrobustcmd*{\addhighpenspace}{% + \unspace\blx@postpunct + \penalty\value{highnamepenalty}\space + \blx@imc@resetpunctfont} + +\newrobustcmd*{\addlpthinspace}{% + \unspace\blx@postpunct + \penalty\value{lownamepenalty}% + \hskip0.16667em\relax\blx@imc@resetpunctfont} + +\newrobustcmd*{\addhpthinspace}{% + \unspace\blx@postpunct + \penalty\value{highnamepenalty}% + \hskip0.16667em\relax\blx@imc@resetpunctfont} + +\newrobustcmd*{\addabbrvspace}{% + \unspace\blx@postpunct + \penalty\value{abbrvpenalty}% + \space\blx@imc@resetpunctfont} + +\newrobustcmd*{\addabthinspace}{% + \unspace\blx@postpunct + \penalty\value{abbrvpenalty}% + \hskip0.16667em\relax + \blx@imc@resetpunctfont} + +\newrobustcmd*{\adddotspace}{% + \unspace\adddot\blx@postpunct + \penalty\value{abbrvpenalty}% + \space\blx@imc@resetpunctfont} + +\providerobustcmd*{\noligature}{% + \penalty\@M\discretionary{-}{}{\kern0.03em}% + \nobreak\hskip\z@skip} + +\providerobustcmd*{\hyphen}{% + \nobreak-\nobreak\hskip\z@skip} + +\providerobustcmd*{\nbhyphen}{% + \nobreak\mbox{-}\nobreak\hskip\z@skip} + +\providerobustcmd*{\hyphenate}{% + \nobreak\-\nobreak\hskip\z@skip} + +\providerobustcmd*{\allowhyphens}{% + \nobreak\hskip\z@skip} + +% Idea from Peter Wilson's hyphenat package +% https://ctan.org/pkg/hyphenat +% also https://texfaq.org/FAQ-hyphoff +\newlanguage\blx@langwohyphens + +\providerobustcmd*{\nohyphenation}{% + \language\blx@langwohyphens} + +\providerobustcmd*{\textnohyphenation}[1]{% + \bgroup\nohyphenation#1\egroup} + +\blx@regimcs{% + \setpunctfont \resetpunctfont \ifcapital \autocap \ifpunctmark + \ifpunct \ifterm \nopunct \isdot \adddot \addperiod \addcomma + \addsemicolon \addcolon \addexclam \addquestion} + +\appto\blx@blxinit{% + \appto\nocorrlist{\isdot\adddot\addperiod\addcomma}} + +%% Style definition + +% {<bibstyle>} +\newrobustcmd*{\RequireBibliographyStyle}[1]{% + \blx@inputonce{#1.bbx}{bibliography style '#1'}{}{}{} + {\blx@error + {Style '#1' not found} + {The bibliography style '#1' could not be found}}} +\@onlypreamble\RequireBibliographyStyle + +% {<code>} +\newrobustcmd*{\InitializeBibliographyStyle}{\appto\blx@hook@bbxinit} +\@onlypreamble\InitializeBibliographyStyle + +% {<entry type>}{<driverdef>} +\newrobustcmd*{\DeclareBibliographyDriver}[1]{% + \long\csdef{blx@bbx@#1}} +\@onlypreamble\DeclareBibliographyDriver + +% {<entry type>} +\def\blx@driver#1{% + \ifcsdef{blx@bbx@#1} + {\csuse{blx@bbx@#1}} + {\ifcsdef{blx@bbx@*} + {\blx@warning{% + No driver for entry type '#1'.\MessageBreak + Using fallback driver}% + \csuse{blx@bbx@*}} + {\blx@error + {No driver for '\abx@field@entrytype' found} + {I can't find a driver for the entry type + '\abx@field@entrytype'\MessageBreak + and there is no fallback driver either}}}} + +% {<type>}{<true>}{<false>} +\def\blx@imc@ifdriver#1{\ifcsdef{blx@bbx@#1}} + +% {<alias>}{<type>} +\newrobustcmd*{\DeclareBibliographyAlias}[2]{% + \csedef{blx@bbx@#1}{% + \expandafter\noexpand\csname blx@bbx@#2\endcsname}} +\@onlypreamble\DeclareBibliographyAlias + +%% Auxiliary commands +\newrobustcmd*{\citereset}{% + \csuse{blx@hook@cbxinit}% + \@ifstar + {} + {\global\cslet{blx@bsee@\the\c@refsection}\@empty + \global\cslet{blx@fsee@\the\c@refsection}\@empty + \blx@ibidreset@force + \blx@idemreset@force + \blx@opcitreset@force + \blx@loccitreset@force}} + +\def\blx@save#1{% + \ifcsdef{blx@saved@#1} + {} + {\blx@safe@actives + \csletcs{blx@saved@#1}{#1}% + \blx@rest@actives}} + +\def\blx@restore#1{% + \ifcsdef{blx@saved@#1} + {\blx@safe@actives + \csletcs{#1}{blx@saved@#1}% + \csundef{blx@saved@#1}% + \blx@rest@actives} + {}} + +\newrobustcmd*{\savecommand}[1]{% + \ifcsdef{blx@saved@cmd@\detokenize{#1}} + {} + {\cslet{blx@saved@cmd@\detokenize{#1}}{#1}}} + +\newrobustcmd*{\restorecommand}[1]{% + \ifcsdef{blx@saved@cmd@\detokenize{#1}} + {\letcs{#1}{blx@saved@cmd@\detokenize{#1}}% + \csundef{blx@saved@cmd@\detokenize{#1}}} + {}} + +% {<name>} +\newrobustcmd*{\savebibmacro}[1]{% + \blx@save{abx@macro@\detokenize{#1}}} + +\newrobustcmd*{\restorebibmacro}[1]{% + \blx@restore{abx@macro@\detokenize{#1}}} + +% {<name>}[<args>][<optarg>]{<definition>} +\newrobustcmd*{\newbibmacro}{% + \@star@or@long\blx@newbibmacro} + +\def\blx@newbibmacro#1{% + \ifcsundef{abx@macro@\detokenize{#1}} + {\blx@defbibmacro\new@command{#1}} + {\blx@warning{% + Macro '\detokenize{#1}' already defined.\MessageBreak + Using \string\renewbibmacro} + \blx@defbibmacro\renew@command{#1}}} + +\newrobustcmd*{\renewbibmacro}{% + \@star@or@long\blx@renewbibmacro} + +\def\blx@renewbibmacro#1{% + \ifcsundef{abx@macro@\detokenize{#1}} + {\blx@warning{% + Macro '\detokenize{#1}' undefined.\MessageBreak + Using \string\newbibmacro} + \blx@defbibmacro\new@command{#1}} + {\blx@defbibmacro\renew@command{#1}}} + +\newrobustcmd*{\providebibmacro}{% + \@star@or@long{\blx@defbibmacro\provide@command}} + +\def\blx@defbibmacro#1#2{% + \expandafter#1\csname abx@macro@\detokenize{#2}\endcsname} + +% {<alias>}{<name>} +\newrobustcmd*{\letbibmacro}{% + \@ifstar + {\blx@letbibmacro@i} + {\blx@letbibmacro}} + +\def\blx@letbibmacro#1#2{% + \blx@letbibmacro@i{\detokenize{#1}}{\detokenize{#2}}} + +\def\blx@letbibmacro@i#1#2{% + \ifcsundef{abx@macro@#2} + {\blx@error + {Bibliography macro '#2' undefined} + {Use '\string\newbibmacro' to define this macro}} + {\csletcs{abx@macro@#1}{abx@macro@#2}}} + +% {<name>} +\newrobustcmd*{\usebibmacro}{% + \@ifstar + {\blx@usebibmacro@i} + {\blx@usebibmacro}} + +\def\blx@usebibmacro#1{% + \blx@usebibmacro@i{\detokenize{#1}}} + +\def\blx@usebibmacro@i#1{% + \ifcsundef{abx@macro@#1} + {\blx@error + {Bibliography macro '#1' undefined} + {Use '\string\newbibmacro' to define this macro}} + {\csuse{abx@macro@#1}}} + +% {<name>}{<true>}{<false>} +\def\blx@imc@ifbibmacroundef#1{% + \ifcsundef{abx@macro@#1}} + +\def\ifbibmacroundef{\blx@imc@ifbibmacroundef} + +% {<field>} +\def\blx@imc@thefield#1{\csuse{abx@field@#1}} + +\def\blx@imc@strfield#1{% + \ifcsdef{abx@field@#1} + {\detokenize\expandafter\expandafter\expandafter + {\csname abx@field@#1\endcsname}} + {}} + +\def\blx@imc@csfield#1{\usefield{\unexpanded}{#1}} + +% {<command>}{<field>} +\def\blx@imc@usefield#1#2{% + \expandafter\expandafter\expandafter#1% + \expandafter\expandafter\expandafter{\csname abx@field@#2\endcsname}} + +% {<plainlist>} +\def\blx@imc@thelist#1{\csuse{abx@list@#1}} + +\def\blx@imc@strlist#1{% + \ifcsdef{abx@list@#1} + {\detokenize\expandafter\expandafter\expandafter + {\csname abx@list@#1\endcsname}} + {}} + +\def\blx@imc@thefirstlistitem#1{% + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \blx@imc@thefirstlistitem@grab + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + {\csuse{abx@list@#1}}} + +\def\blx@imc@thefirstlistitem@grab#1{% + \blx@imc@thefirstlistitem@grab@i + #1{}{}% + \blx@imc@thefirstlistitem@grab@i@end} +\def\blx@imc@thefirstlistitem@grab@i#1#2\blx@imc@thefirstlistitem@grab@i@end{#1} + +% {<command>}{<field>} +% needs 7 levels of expansion, i.e. 2^7-1=127 '\expandafter's +\def\blx@imc@usefirstlistitem#1#2{% + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter + #1% + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter + {\blx@imc@thefirstlistitem{#2}}} + +\def\blx@imc@strfirstlistitem#1{% + \ifcsdef{abx@list@#1} + {\blx@imc@usefirstlistitem{\detokenize}{#1}} + {}} + +% {<namelist>} +\def\blx@imc@thename#1{\csuse{abx@name@#1}} + +\def\blx@imc@strname#1{% + \ifcsdef{abx@name@#1} + {\detokenize\expandafter\expandafter\expandafter + {\csname abx@name@#1\endcsname}} + {}} + + +% We have to save cleared fields/lists/names in case a related entry +% needs them for tests +\let\abx@dorelfields\@empty +\let\abx@dorellists\@empty +\let\abx@dorelnames\@empty + +% {<field>} +% If there is a related field in the entry, save a special copy in case +% the related entry needs it for tests. See the corresponding tests in +% \blx@save{field,list,name} +\protected\def\blx@imc@clearfield#1{% + \ifdef\abx@field@related + {\csletcs{abx@field@relsaved#1}{abx@field@#1}% + \listadd\abx@dorelfields{#1}} + {}% + \csundef{abx@field@#1}} + +% {<plainlist>} +% If there is a related field in the entry, save a special copy in case +% the related entry needs it for tests. See the corresponding tests in +% \blx@save{field,list,name} +\protected\def\blx@imc@clearlist#1{% + \ifcsundef{abx@list@#1} + {} + {\ifdef\abx@field@related + {\csletcs{abx@list@relsaved#1}{abx@list@#1}% + \csletcs{etb@tgl@abx@bool@morerelsaved#1}{etb@tgl@abx@bool@more#1}% + \csletcs{c@relsaved#1}{c@#1}% + \listadd\abx@dorellists{#1}} + {}% + \togglefalse{abx@bool@more#1}% + \csundef{abx@list@#1}% + \csname c@#1\endcsname\z@}} + +% {<namelist>} +% If there is a related field in the entry, save a special copy in case +% the related entry needs it for tests. See the corresponding tests in +% \blx@save{field,list,name} +\protected\def\blx@imc@clearname#1{% + \ifcsundef{abx@name@#1} + {} + {\ifdef\abx@field@related + {\csletcs{abx@name@relsaved#1}{abx@name@#1}% + \csletcs{etb@tgl@abx@bool@morerelsaved#1}{etb@tgl@abx@bool@more#1}% + \csletcs{c@relsaved#1}{c@#1}% + \listadd\abx@dorelnames{#1}} + {}% + \togglefalse{abx@bool@more#1}% + \csundef{abx@name@#1}% + \csname c@#1\endcsname\z@}} + +% {<field>}{<macro>} +\protected\def\blx@imc@restorefield#1{\cslet{abx@field@#1}} + +% {<plainlist>}{<macro>} +\protected\def\blx@imc@restorelist#1{\cslet{abx@list@#1}} + +% {<namelist>}{<macro>} +\protected\def\blx@imc@restorename#1{\cslet{abx@name@#1}} + +% {<field>}{<macro>} +\protected\def\blx@imc@savefield{% + \@ifstar{\blx@savedata{field}}{\global\blx@savedata{field}}} +\def\blx@savedata#1#2#3{\letcs#3{abx@#1@#2}} + +% {<plainlist>}{<macro>} +\protected\def\blx@imc@savelist{% + \@ifstar{\blx@savedata{list}}{\global\blx@savedata{list}}} + +% {<namelist>}{<macro>} +\protected\def\blx@imc@savename{% + \@ifstar{\blx@savedata{name}}{\global\blx@savedata{name}}} + +% {<field>}{<csname>} +\protected\def\blx@imc@savefieldcs{% + \@ifstar{\blx@savedatacs{field}}{\global\blx@savedatacs{field}}} +\def\blx@savedatacs#1#2#3{\csletcs{#3}{abx@#1@#2}} + +% {<plainlist>}{<csname>} +\protected\def\blx@imc@savelistcs{% + \@ifstar{\blx@savedatacs{list}}{\global\blx@savedatacs{list}}} + +% {<namelist>}{<csname>} +\protected\def\blx@imc@savenamecs{% + \@ifstar{\blx@savedatacs{name}}{\global\blx@savedatacs{name}}} + +% {<field>}{<true>}{<false>} +\def\blx@imc@iffieldundef#1{% + \ifcsundef{abx@field@#1}} + +% {<plainlist>}{<true>}{<false>} +\def\blx@imc@iflistundef#1{% + \ifcsundef{abx@list@#1}} + +% {<namelist>}{<true>}{<false>} +\def\blx@imc@ifnameundef#1{% + \ifcsundef{abx@name@#1}} + +% {<field1>}{<field2>}{<true>}{<false>} +\def\blx@imc@iffieldsequal#1#2{% + \ifcsequal{abx@field@#1}{abx@field@#2}} + +% {<plainlist1>}{<plainlist2>}{<true>}{<false>} +\def\blx@imc@iflistsequal#1#2{% + \ifcsequal{abx@list@#1}{abx@list@#2}} + +% {<namelist1>}{<namelist2>}{<true>}{<false>} +\def\blx@imc@ifnamesequal#1#2{% + \ifcsundef{abx@name@#1} + {\@secondoftwo} + {\ifcsundef{abx@name@#2} + {\@secondoftwo} + {\blx@ifnamesequal{#1}{#2}}}} + +\def\blx@ifnamesequal#1#2{% + \begingroup + \let\blx@tempa\@empty + \expandafter\expandafter + \expandafter\blx@ifnamesequal@i\csname abx@name@#2\endcsname + \let\blx@tempb\blx@tempa + \let\blx@tempa\@empty + \expandafter\expandafter + \expandafter\blx@ifnamesequal@i\csname abx@name@#1\endcsname + \expandafter\endgroup + \ifx\blx@tempa\blx@tempb + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi} + +\def\blx@ifnamesequal@i#1#2{% + \expandafter\blx@ifnamesequal@ii#2{}&} + +\def\blx@ifnamesequal@ii#1{% + \ifblank{#1} + {\blx@namebreak} + {\blx@ifnamesequal@iii#1% + \blx@ifnamesequal@ii}} + +% These explicit nameparts are alright as they are for bibtex only +% biber names will always have a hash generated from all nameparts in datamodel +\def\blx@ifnamesequal@iii#1#2{% + \setkeys{blx@opt@name}{#1}% + \setkeys{blx@opt@namepart}{#2}% + \ifdef\abx@field@hash + {\eappto\blx@tempa{{\abx@field@hash}}} + {\eappto\blx@tempa{{{\namepartfamily}{\namepartgiven}{\namepartprefix}{\namepartsuffix}}}}} + +% {<field>}{<macro>}{<true>}{<false>} +\def\blx@imc@iffieldequals#1#2{% + \blx@imc@iffieldundef{#1} + {\@secondoftwo} + {\ifundef#2% + {\@secondoftwo} + {\expandafter\ifx\csname abx@field@#1\endcsname#2% + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi}}} + +% {<plainlist>}{<macro>}{<true>}{<false>} +\def\blx@imc@iflistequals#1#2{% + \blx@imc@iflistundef{#1} + {\@secondoftwo} + {\ifundef#2% + {\@secondoftwo} + {\expandafter\ifx\csname abx@list@#1\endcsname#2% + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi}}} + +% {<namelist>}{<macro>}{<true>}{<false>} +\def\blx@imc@ifnameequals#1#2{% FIXME + \blx@imc@ifnameundef{#1} + {\@secondoftwo} + {\ifundef#2% + {\@secondoftwo} + {\expandafter\ifx\csname abx@name@#1\endcsname#2% + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi}}} + +% {<field>}{<csname>}{<true>}{<false>} +\def\blx@imc@iffieldequalcs#1{% + \ifcsequal{abx@field@#1}} + +% {<plainlist>}{<csname>}{<true>}{<false>} +\def\blx@imc@iflistequalcs#1{% + \ifcsequal{abx@list@#1}} + +% {<namelist>}{<csname>}{<true>}{<false>} +\def\blx@imc@ifnameequalcs#1{% FIXME + \ifcsequal{abx@name@#1}} + +% {<field>}{<string>}{<true>}{<false>} +\protected\long\def\blx@imc@iffieldequalstr#1#2{% + \blx@imc@iffieldundef{#1} + {\@secondoftwo} + {\expandafter\expandafter\expandafter\ifstrequal + \expandafter\expandafter\expandafter{% + \csname abx@field@#1\endcsname}{#2}}} + +% {<field>}{<true>}{<false>} +\protected\def\blx@imc@iffieldxref#1{% + \blx@imc@iffieldundef{#1} + {\@secondoftwo} + {\blx@whichxref + {\blx@iffieldxref{#1}} + {\@secondoftwo}}} + +\def\blx@iffieldxref#1#2{% + \begingroup + \letcs\blx@tempa{abx@field@#2}% + \letcs\blx@tempb{abx@field@#1}% + \blx@resetdata + \blx@getdata{\blx@tempa}% + \blx@imc@iffieldequals{#1}\blx@tempb + {\aftergroup\@firstoftwo} + {\aftergroup\@secondoftwo}% + \endgroup} + +\def\blx@whichxref#1#2{% + \blx@imc@iffieldundef{crossref} + {\blx@imc@iffieldundef{xref} + {#2} + {#1{xref}}} + {#1{crossref}}} + +% {<plainlist>}{<true>}{<false>} +\protected\def\blx@imc@iflistxref#1{% + \blx@imc@iflistundef{#1} + {\@secondoftwo} + {\blx@whichxref + {\blx@iflistxref{#1}} + {\@secondoftwo}}} + +\def\blx@iflistxref#1#2{% + \begingroup + \letcs\blx@tempa{abx@field@#2}% + \letcs\blx@tempb{abx@list@#1}% + \blx@resetdata + \blx@getdata{\blx@tempa}% + \blx@imc@iflistequals{#1}\blx@tempb + {\aftergroup\@firstoftwo} + {\aftergroup\@secondoftwo}% + \endgroup} + +% {<namelist>}{<true>}{<false>} +\protected\def\blx@imc@ifnamexref#1{% + \blx@imc@ifnameundef{#1} + {\@secondoftwo} + {\blx@whichxref + {\blx@ifnamexref{#1}} + {\@secondoftwo}}} + +\def\blx@ifnamexref#1#2{% + \begingroup + \letcs\blx@tempa{abx@field@#2}% + \letcs\blx@tempb{abx@name@#1}% + \blx@resetdata + \blx@getdata{\blx@tempa}% + \blx@imc@ifnameequals{#1}\blx@tempb + {\aftergroup\@firstoftwo} + {\aftergroup\@secondoftwo}% + \endgroup} + +% {<string>}{<true>}{<false>} +\protected\def\blx@imc@ifcurrentfield#1{% + \begingroup + \def\blx@tempa{#1}% + \ifx\currentfield\blx@tempa + \aftergroup\@firstoftwo + \else + \aftergroup\@secondoftwo + \fi + \endgroup} + +% {<string>}{<true>}{<false>} +\protected\def\blx@imc@ifcurrentlist#1{% + \begingroup + \def\blx@tempa{#1}% + \ifx\currentlist\blx@tempa + \aftergroup\@firstoftwo + \else + \aftergroup\@secondoftwo + \fi + \endgroup} + +% {<string>}{<true>}{<false>} +\protected\def\blx@imc@ifcurrentname#1{% + \begingroup + \def\blx@tempa{#1}% + \ifx\currentname\blx@tempa + \aftergroup\@firstoftwo + \else + \aftergroup\@secondoftwo + \fi + \endgroup} + +% {<string>}{<true>}{<false>} +\protected\def\blx@imc@ifentrytype#1{% + \begingroup + \def\blx@tempa{#1}% + \ifx\abx@field@entrytype\blx@tempa + \aftergroup\@firstoftwo + \else + \aftergroup\@secondoftwo + \fi + \endgroup} + +% {<true>}{<false>} +\def\blx@imc@ifmorenames{% + \ifundef\currentname + {\@secondoftwo} + {\iftoggle{abx@bool@more\currentname} + {\@firstoftwo} + {\ifnum\c@listtotal>\c@liststop + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi}}} + +% {<true>}{<false>} +\def\blx@imc@ifmoreitems{% + \ifundef\currentlist + {\@secondoftwo} + {\iftoggle{abx@bool@more\currentlist} + {\@firstoftwo} + {\ifnum\c@listtotal>\c@liststop + \expandafter\@firstoftwo + \else + \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{% + \ifdef\abx@field@entrykey + {\blx@imc@ifentrycategory\abx@field@entrykey} + {\expandafter\@secondoftwo\@gobble}} + +% {<entrykey>}{<category>}{<true>}{<false>} +\protected\def\blx@imc@ifentrycategory{% + \blx@xsanitizeafter\blx@imc@ifentrycategory@i} + +\def\blx@imc@ifentrycategory@i#1#2{% + \ifcsdef{blx@catg@\detokenize{#2}} + {\ifinlistcs{#1}{blx@catg@\detokenize{#2}}} + {\@secondoftwo}} + +% {<keyword>}{<true>}{<false>} +\protected\def\blx@imc@ifkeyword{% + \ifdef\abx@field@entrykey + {\blx@imc@ifentrykeyword\abx@field@entrykey} + {\expandafter\@secondoftwo\@gobble}} + +% {<entrykey>}{<keyword>}{<true>}{<false>} +\protected\def\blx@imc@ifentrykeyword{% + \blx@xsanitizeafter\blx@imc@ifentrykeyword@i} + +\def\blx@imc@ifentrykeyword@i#1#2{% + \ifcsdef{blx@keyw@\the\c@refsection @\detokenize{#2}} + {\ifinlistcs{#1}{blx@keyw@\the\c@refsection @\detokenize{#2}}} + {\@secondoftwo}} + +% {<true>}{<false>} +\protected\def\blx@ifciteseen@global{% + \ifbool{citetracker} + {\ifdef\abx@field@entrykey + {\expandafter\blx@ifseen@global + \expandafter{\abx@field@entrykey}} + {\@secondoftwo}} + {\@secondoftwo}} + +\protected\def\blx@ifciteseen@context{% + \ifbool{citetracker} + {\ifdef\abx@field@entrykey + {\expandafter\blx@ifseen@context + \expandafter{\abx@field@entrykey}} + {\@secondoftwo}} + {\@secondoftwo}} + +\protected\def\blx@ifciteseen@context{% + \ifbool{citetracker} + {\ifdef\abx@field@entrykey + {\expandafter\blx@ifseen@context + \expandafter{\abx@field@entrykey}} + {\@secondoftwo}} + {\@secondoftwo}} + +% {<entrykey>}{<true>}{<false>} +\protected\def\blx@ifentryseen@global{% + \blx@xsanitizeafter\blx@ifseen@global} + +\protected\def\blx@ifentryseen@context{% + \blx@xsanitizeafter\blx@ifseen@context} + +\def\blx@ifseen@global#1{% + \ifbool{citetracker} + {\ifinlistcs{#1}{blx@bsee@\the\c@refsection}} + {\@secondoftwo}} + +\def\blx@ifseen@context#1{% + \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{% + \ifbool{citetracker} + {\blx@imc@iffieldequals{entrykey}\blx@lastkey@text} + {\@secondoftwo}} + +\def\blx@ifciteibid@context{% + \ifbool{citetracker} + {\iftoggle{blx@footnote} + {\blx@imc@iffieldequals{entrykey}\blx@lastkey@foot} + {\blx@imc@iffieldequals{entrykey}\blx@lastkey@text}} + {\@secondoftwo}} + +\def\blx@ifciteibid@strict{% + \ifbool{citetracker} + {\blx@ifcitesingle + {\blx@ifciteibid@global} + {\@secondoftwo}} + {\@secondoftwo}} + +\def\blx@ifciteibid@constrict{% + \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{% + \ifbool{citetracker} + {\blx@imc@iffieldequals{fullhash}\blx@lasthash@text} + {\@secondoftwo}} + +\def\blx@ifciteidem@context{% + \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{% + \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{% + \ifbool{citetracker} + {\blx@imc@iffieldundef{namehash} + {\@secondoftwo} + {\blx@imc@iffieldequalcs{entrykey}{blx@lastkey@text@\abx@field@namehash}}} + {\@secondoftwo}} + +\def\blx@ifopcit@context{% + \ifbool{citetracker} + {\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}}}} + {\@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{% + \ifbool{citetracker} + {\blx@loccit@check{text}} + {\@secondoftwo}} + +\def\blx@ifloccit@context{% + \ifbool{citetracker} + {\iftoggle{blx@footnote} + {\blx@loccit@check{foot}} + {\blx@loccit@check{text}}} + {\@secondoftwo}} + +\def\blx@ifloccit@strict{% + \ifbool{citetracker} + {\blx@ifcitesingle + {\blx@loccit@numcheck{text}} + {\@secondoftwo}} + {\@secondoftwo}} + +\def\blx@ifloccit@constrict{% + \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{% + \blx@imc@iffieldundef{postnote} + {\@secondoftwo} + {\blx@imc@iffieldequalcs{postnote}{blx@lastnote@#1@\abx@field@entrykey}}} + +\def\blx@loccit@numcheck#1{% + \blx@imc@iffieldundef{postnote} + {\@secondoftwo} + {\expandafter\blx@imc@ifpages + \expandafter{\abx@field@postnote} + {\blx@imc@iffieldequalcs{postnote}{blx@lastnote@#1@\abx@field@entrykey}} + {\@secondoftwo}}} + +% {<true>}{<false>} +\def\blx@ifmpfncheck{% + \ifnum\numexpr\value\@mpfn-\blx@lastmpfn<\tw@ + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi} + +\def\blx@mpfnsave{% + \xdef\blx@lastmpfn{\the\value\@mpfn}} + +\def\blx@mpfnreset{% + \global\let\blx@lastmpfn\z@} + +\blx@mpfnreset + +% {<true>}{<false>} +\def\blx@imc@iffirstonpage{% + \ifbool{pagetracker} + {\iftoggle{blx@footnote} + {\blx@iffirstonpage{fnpage}} + {\blx@iffirstonpage{page}}} + {\@secondoftwo}} + +\def\blx@iffirstonpage#1{% + \ifcsundef{blx@#1@\number\c@instcount} + {\@secondoftwo} + {\expandafter\blx@iffirstonpage@i + \expandafter{\number\numexpr\c@instcount-1}{#1}}} + +\def\blx@iffirstonpage@i#1#2{% + \ifcsundef{blx@#2@#1} + {\ifnum#1>\@ne + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi + {\expandafter\blx@iffirstonpage@i + \expandafter{\number\numexpr#1-1}{#2}} + {\@firstoftwo}} + {\ifnum\csuse{blx@#2@\number\c@instcount}=% + \csuse{blx@#2@#1} % + \expandafter\@secondoftwo + \else + \expandafter\@firstoftwo + \fi}} + +% {<count1>}{<count2>}{<true>}{<false>} +\def\blx@imc@ifsamepage#1#2{% + \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} + {\ifcsundef{blx@fnpage@\number\numexpr#2} + {\@secondoftwo} + {\blx@ifsamepage@i{#1}{#2}{#3}{fnpage}}} + {\blx@ifsamepage@i{#1}{#2}{#3}{page}}} + +\def\blx@ifsamepage@i#1#2#3#4{% + \ifnum\csuse{blx@#3@\number\numexpr#1}=% + \csuse{blx@#4@\number\numexpr#2} % + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi} + +% {<string>}{<true>}{<false>} +\protected\long\def\blx@imc@ifinteger#1{% + \begingroup + \def\do##1{\uccode`##1=`\%}% + \do\0\do\1\do\2\do\3\do\4\do\5\do\6\do\7\do\8\do\9% + \makeatletter + \catcode`\%=9 + \endlinechar\m@ne + \uppercase{\scantokens{\def\blx@tempa{#1}}}% + \ifx\blx@tempa\@empty + \aftergroup\@firstoftwo + \else + \aftergroup\@secondoftwo + \fi + \endgroup} + +% {<field>}{<true>}{<false>} +\protected\def\blx@imc@iffieldint#1{% + \blx@imc@iffieldundef{#1} + {\@secondoftwo} + {\expandafter\expandafter + \expandafter\blx@imc@ifinteger + \expandafter\expandafter + \expandafter{\csname abx@field@#1\endcsname}}} + +% {<string>}{<true>}{<false>} +\protected\def\blx@imc@ifnumeral{% + \blx@ifnum\blx@hook@ifnum} + +\protected\def\blx@imc@ifnumerals{% + \blx@ifnum\blx@hook@ifnums} + +\protected\def\blx@imc@ifpages{% + \blx@ifnum\blx@hook@ifpages} + +\long\def\blx@ifnum#1#2{% + \begingroup + \let\protect\@unexpandable@protect + \uppercase{\edef\blx@tempa{#2}}% + \ifx\blx@tempa\@empty + \aftergroup\@secondoftwo + \else + \makeatletter + \catcode`\%=9 + \endlinechar\m@ne + \everyeof{\noexpand}#1% + \uppercase{\edef\blx@tempa{\scantokens{#2}}}% + \ifx\blx@tempa\@empty + \aftergroup\@firstoftwo + \else + \aftergroup\@secondoftwo + \fi + \fi + \endgroup} + +\def\blx@hook@ifnum{% + \def\do##1{\uccode`##1=`\%}% + \do\ \do\0\do\1\do\2\do\3\do\4\do\5\do\6\do\7\do\8\do\9% + \do\i\do\v\do\x\do\l\do\c\do\d\do\m + \do\I\do\V\do\X\do\L\do\C\do\D\do\M + \blx@donumchars + \let\RN\@firstofone + \let\Rn\@firstofone} + +\def\blx@hook@ifnums{% + \blx@hook@ifnum + \def\do##1{\uccode`##1=`\%}% + \blx@dorangechars + \def\do##1{\let##1\@empty}% + \blx@dorangecmds} + +\def\blx@hook@ifpages{% + \blx@hook@ifnum + \blx@hook@ifnums + \def\do##1{\let##1\@empty}% + \blx@dopagecmds} + +% {<field>}{<true>}{<false>} +\protected\def\blx@imc@iffieldnum#1{% + \blx@imc@iffieldundef{#1} + {\@secondoftwo} + {\expandafter\expandafter + \expandafter\blx@imc@ifnumeral + \expandafter\expandafter + \expandafter{\csname abx@field@#1\endcsname}}} + +\protected\def\blx@imc@iffieldnums#1{% + \blx@imc@iffieldundef{#1} + {\@secondoftwo} + {\expandafter\expandafter + \expandafter\blx@imc@ifnumerals + \expandafter\expandafter + \expandafter{\csname abx@field@#1\endcsname}}} + +\protected\def\blx@imc@iffieldpages#1{% + \blx@imc@iffieldundef{#1} + {\@secondoftwo} + {\expandafter\expandafter + \expandafter\blx@imc@ifpages + \expandafter\expandafter + \expandafter{\csname abx@field@#1\endcsname}}} + +% {<chars>} +\newrobustcmd*{\DeclareNumChars}{% + \@ifstar + {\blx@defnumchars} + {\global\let\blx@donumchars\@empty + \blx@defnumchars}} + +\def\blx@defnumchars#1{% + \ifblank{#1} + {} + {\expandafter\blx@defdochars + \expandafter\blx@donumchars + \detokenize{#1}\relax}} + +% {<chars>} +\newrobustcmd*{\DeclareRangeChars}{% + \@ifstar + {\blx@defrangechars} + {\global\let\blx@dorangechars\@empty + \blx@defrangechars}} + +\def\blx@defrangechars#1{% + \ifblank{#1} + {} + {\expandafter\blx@defdochars + \expandafter\blx@dorangechars + \detokenize{#1}\relax}} + +\def\blx@defdochars#1#2{% + \ifx#2\relax + \else + \xdef#1{% + \expandonce#1\noexpand\do + \expandafter\noexpand\csname#2\endcsname}% + \expandafter\blx@defdochars + \expandafter#1% + \fi} + +% {<cstokens>} +\newrobustcmd*{\DeclareRangeCommands}{% + \@ifstar + {\blx@defrangecmds} + {\global\let\blx@dorangecmds\@empty + \blx@defrangecmds}} + +\def\blx@defrangecmds#1{% + \ifblank{#1} + {} + {\blx@defrangecmds@i#1&}} + +\def\blx@defrangecmds@i#1{% + \ifx% + \else + \gappto\blx@dorangecmds{\do#1}% + \expandafter\blx@defrangecmds@i + \fi} + +% {<cstokens>} +\newrobustcmd*{\DeclarePageCommands}{% + \@ifstar + {\blx@defpagecmds} + {\global\let\blx@dopagecmds\@empty + \blx@defpagecmds}} + +\def\blx@defpagecmds#1{% + \ifblank{#1} + {} + {\blx@defpagecmds@i#1&}} + +\def\blx@defpagecmds@i#1{% + \ifx% + \else + \gappto\blx@dopagecmds{\do#1}% + \expandafter\blx@defpagecmds@i + \fi} + +\DeclareNumChars{.} +\DeclareRangeChars{~,;-+/} +\DeclareRangeCommands{% + \ \,\space\nobreakspace\addspace\addnbspace + \addthinspace\addnbthinspace\addlowpenspace + \addhighpenspace\addlpthinspace\addhpthinspace + \adddotspace\addabbrvspace\&\psq\psqq + \bibrangedash\bibdaterangesep\bibtimerangesep\textendash\textemdash\bibrangessep} +\DeclarePageCommands{\pno\ppno} + +% *{<code>} +\newrobustcmd*{\NumCheckSetup}{\appto\blx@hook@ifnum} +\newcommand*{\NumcheckSetup}{\NumCheckSetup} + +% [<pagination>][<postpro>]{<string>} +\newrobustcmd*{\blx@imc@mkpageprefix}[1][pagination]{% + \begingroup + \def\blx@tempa{\blx@mkpageprefix{page}}% + \iffieldundef{#1} + {} + {\iffieldequalstr{#1}{none} + {\def\blx@tempa{\blx@mkpageprefix@i}} + {\iffieldbibstring{#1} + {\edef\blx@tempa{\blx@mkpageprefix{\thefield{#1}}}} + {\blx@warning@entry{% + Unknown pagination type '\strfield{#1}'}}}}% + \@ifnextchar[%] + {\blx@tempa} + {\blx@tempa[\@firstofone]}} + +\protected\long\def\blx@mkpageprefix#1[#2]#3{% + \ifnumeral{#3} + {\bibstring{#1}\ppspace} + {\ifnumerals{#3} + {\bibstring{#1s}\ppspace} + {\def\pno{\bibstring{#1}}% + \def\ppno{\bibstring{#1s}}}}% + \blx@mkpageprefix@i[#2]{#3}} + +\long\def\blx@mkpageprefix@i[#1]#2{#1{#2}\endgroup} + +% [<pagination>][<postpro>]{<string>} +\newrobustcmd*{\blx@imc@mkpagetotal}[1][bookpagination]{% + \begingroup + \def\blx@tempa{\blx@mkpagetotal{pagetotal}}% + \iffieldundef{#1} + {} + {\iffieldequalstr{#1}{none} + {\def\blx@tempa{\blx@mkpagetotal@i}} + {\iffieldplusstringbibstring{#1}{total} + {\edef\blx@tempa{\blx@mkpagetotal{\thefield{#1}total}}} + {\blx@warning@entry{% + Unknown pagination type '\strfield{#1}total'}}}}% + \@ifnextchar[%] + {\blx@tempa} + {\blx@tempa[\@firstofone]}} + +\protected\long\def\blx@mkpagetotal#1[#2]#3{% + \ifnumeral{#3} + {\setbox\@tempboxa=\hbox{% + \blx@tempcnta0#3\relax + \ifnum\blx@tempcnta=\@ne + \aftergroup\@firstoftwo + \else + \aftergroup\@secondoftwo + \fi}% + {#2{#3}\ppspace\bibstring{#1}} + {#2{#3}\ppspace\bibstring{#1s}}} + {\def\pno{\bibstring{#1}}% + \def\ppno{\bibstring{#1s}}% + #2{#3}}% + \endgroup} + +\long\def\blx@mkpagetotal@i[#1]#2{#1{#2}\endgroup} + +\newcounter{mincomprange} +\newcounter{maxcomprange} +\newcounter{mincompwidth} +\setcounter{mincomprange}{10} +\setcounter{maxcomprange}{100000} +\setcounter{mincompwidth}{1} +\def\abx@rangeproclimit{100000} + +% {<rangefield>} +\newcommand*{\rangelen}[1]{% + \ifcsdef{abx@range@#1} + {\csuse{abx@range@#1}} + {}} + +% <*>[<postpro>]{<string>} +\newrobustcmd*{\mknormrange}{% + \begingroup + \@ifstar + {\blx@range@aux\blx@normrange@ii} + {\blx@range@aux\blx@normrange@i}} + +\def\blx@range@aux#1{% + \@ifnextchar[{\blx@range@aux@i#1}{#1[\@firstofone][\@firstofone]}} + +\def\blx@range@aux@i#1[#2]{% + \@ifnextchar[{#1[#2]}{#1[#2][\@firstofone]}} + +\def\blx@normrange@i[#1][#2]#3{% + \let\blx@tempa\@empty + \protected\def\blx@range@out@value{\appto\blx@tempa}% + \def\blx@range@out@item@process{#2}% + \let\blx@range@out@delim\blx@range@out@value + \let\blx@range@split\blx@genrange@split + \let\blx@range@process\blx@normrange@process + \blx@range@chunk{#3}% + \begingroup + \edef\blx@tempa{\endgroup + \unexpanded{#1}{\expandonce\blx@tempa}}% + \blx@tempa + \endgroup} + +\def\blx@normrange@ii[#1][#2]#3{% + \protected\def\blx@range@out@value{#1}% + \def\blx@range@out@item@process{#2}% + \let\blx@range@out@delim\@firstofone + \let\blx@range@split\blx@genrange@split + \let\blx@range@process\blx@normrange@process + \blx@range@chunk{#3}% + \endgroup} + +\def\blx@range@chunk#1{% + \blx@range@chunk@semcol#1;&} + +\def\blx@range@chunk@semcol#1;#2&{% + \notblank{#1} + {\blx@range@chunk@comma#1,&} + {}% + \notblank{#2} + {\notblank{#1}{\blx@range@out@delim{\bibrangessep}}{}% + \blx@range@chunk@semcol#2&} + {}} + +\def\blx@range@chunk@comma#1,#2&{% + \notblank{#1} + {\blx@range@chunk@sep#1\bibrangessep&} + {}% + \notblank{#2} + {\notblank{#1}{\blx@range@out@delim{\bibrangessep}}{}% + \blx@range@chunk@comma#2&} + {}} + +\def\blx@range@chunk@sep#1\bibrangessep#2&{% + \notblank{#1} + {\expandafter\blx@range@split + \expandafter{\@firstofone#1}} + {}% + \notblank{#2} + {\notblank{#1}{\blx@range@out@delim{\bibrangessep}}{}% + \blx@range@chunk@sep#2&} + {}} + +% Unicode en-dashes are supported in blx-unicode.def +\def\blx@genrange@split#1{% + \edef\blx@normrange@abort{% + \blx@range@out@value{% + \expandonce\blx@range@out@item@process{\unexpanded{#1}}}}% + \blx@imc@ifpages{#1} + {\blx@normrange@range#1\bibrangedash\bibrangedash&} + {\blx@normrange@abort}} + +\def\blx@normrange@range#1\bibrangedash#2\bibrangedash#3&{% + \ifblank{#3} + {\blx@normrange@hyphen#1--&} + {\ifblank{#2} + {\begingroup + \edef\blx@tempc{\endgroup + \blx@range@out@value{% + \expandonce\blx@range@out@item@process{\unexpanded{#1}}% + \noexpand\bibrangedash}}% + \blx@tempc} + {\ifblank{#1} + {\begingroup + \edef\blx@tempc{\endgroup + \blx@range@out@value{% + \noexpand\bibrangedash + \expandonce\blx@range@out@item@process{% + \unexpanded{#2}}}}% + \blx@tempc} + {\blx@range@process{#1}{#2}}}}} + +\def\blx@normrange@hyphen#1-#2-#3&{% + \ifblank{#3} + {\blx@normrange@abort} + {\ifblank{#2} + {\ifblank{#1} + {\let\blx@tempb\@empty} + {\def\blx@tempb{#1}}% + \blx@normrange@hyphen@i#3&} + {\ifblank{#1} + {\begingroup + \edef\blx@tempc{\endgroup + \blx@range@out@value{% + \noexpand\bibrangedash + \expandonce\blx@range@out@item@process{% + \unexpanded{#2}}}}% + \blx@tempc} + {\blx@range@process{#1}{#2}}}}} + +\def\blx@normrange@hyphen@i#1-#2&{% + \ifblank{#1#2} + {\begingroup + \edef\blx@tempc{\endgroup + \blx@range@out@value{% + \expandonce\blx@range@out@item@process{\expandonce\blx@tempb}% + \noexpand\bibrangedash}}% + \blx@tempc} + {\notblank{#1} + {\ifdefempty\blx@tempb + {\begingroup + \edef\blx@tempc{\endgroup + \blx@range@out@value{% + \noexpand\bibrangedash + \expandonce\blx@range@out@item@process{% + \unexpanded{#1}}}}% + \blx@tempc} + {\expandafter\blx@range@process + \expandafter{\blx@tempb}{#1}}} + {\blx@normrange@hyphen@i#2&}}} + +\def\blx@normrange@process#1#2{% + \begingroup + \edef\blx@tempc{\endgroup + \blx@range@out@value{% + \expandonce\blx@range@out@item@process{\unexpanded{#1}}% + \noexpand\bibrangedash + \expandonce\blx@range@out@item@process{\unexpanded{#2}}}}% + \blx@tempc} + +% <*>[<postpro>]{<string>} +\newrobustcmd*{\mkcomprange}{% + \begingroup + \@ifstar + {\blx@range@aux\blx@comprange@ii} + {\blx@range@aux\blx@comprange@i}} + +\def\blx@comprange@i[#1][#2]#3{% + \let\blx@tempa\@empty + \protected\def\blx@range@out@value{\appto\blx@tempa}% + \def\blx@range@out@item@process{#2}% + \let\blx@range@out@delim\blx@range@out@value + \let\blx@range@split\blx@genrange@split + \let\blx@range@process\blx@comprange@check + \blx@range@chunk{#3}% + \begingroup + \edef\blx@tempa{\endgroup + \unexpanded{#1}{\expandonce\blx@tempa}}% + \blx@tempa + \endgroup} + +\def\blx@comprange@ii[#1][#2]#3{% + \protected\def\blx@range@out@value{#1}% + \def\blx@range@out@item@process{#2}% + \let\blx@range@out@delim\@firstofone + \let\blx@range@split\blx@genrange@split + \let\blx@range@process\blx@comprange@check + \blx@range@chunk{#3}% + \endgroup} + +\def\blx@comprange@check#1#2{% + \blx@imc@ifinteger{#1} + {\blx@imc@ifinteger{#2} + {\@firstoftwo} + {\@secondoftwo}} + {\@secondoftwo} + {\blx@comprange@comp{#1}{#2}} + {\begingroup + \edef\blx@tempc{\endgroup + \blx@range@out@value{% + \expandonce\blx@range@out@item@process{\unexpanded{#1}}% + \noexpand\bibrangedash + \expandonce\blx@range@out@item@process{\unexpanded{#2}}}}% + \blx@tempc}} + +\def\blx@comprange@comp#1#2{% + \def\blx@tempb{#1}% + \def\blx@tempc{#2}% + \let\blx@tempd\blx@tempc + \ifnum\c@maxcomprange<\abx@rangeproclimit\relax + \numdef\blx@tempe\abx@rangeproclimit + \else + \numdef\blx@tempe\c@maxcomprange + \fi + \blx@tempcntc=\blx@tempe\relax + \ifnum + \ifnum\c@mincompwidth<1\space1\fi + \ifnum\c@maxcomprange<10\space1\fi + \ifnum\c@mincomprange<\blx@tempb\space\else1\fi + \ifnum\blx@tempb<\numexpr\blx@tempcntc*10\relax\else1\fi + 0=\z@ + \expandafter\blx@comprange@comp@div + \else + \expandafter\blx@comprange@end + \fi} + +\def\blx@comprange@end{% + \numdef\blx@tempb\blx@tempb + \ifnum\blx@tempe>\c@maxcomprange\relax + \numdef\blx@tempc\blx@tempc + \else + \numdef\blx@tempc\blx@tempd + \fi + \begingroup + \edef\blx@tempb{\endgroup + \blx@range@out@value{% + \expandonce\blx@range@out@item@process{\blx@tempb}% + \noexpand\bibrangedash + \expandonce\blx@range@out@item@process{\blx@tempc}}}% + \blx@tempb} + +\def\blx@comprange@comp@div{% + \unless\ifnum\blx@tempb<\blx@tempcntc + \blx@tempcnta\blx@tempb\relax + \blx@tempcntb\blx@tempc\relax + \divide\blx@tempcnta\blx@tempcntc + \divide\blx@tempcntb\blx@tempcntc + \ifnum\blx@tempcnta=\blx@tempcntb + \edef\blx@tempd{\expandafter\@gobble\blx@tempd}% + \numdef\blx@tempe\blx@tempcntc + \fi + \fi + \divide\blx@tempcntc10\relax + \ifnum + \ifnum\blx@tempcntc<10 1\fi + \ifnum\blx@tempcntc>\c@mincompwidth\else 1\fi + 0=\z@ + \expandafter\blx@comprange@comp@div + \else + \expandafter\blx@comprange@end + \fi} + +% <*>[<postpro>]{<string>} +\newrobustcmd*{\mkfirstpage}{% + \begingroup + \@ifstar + {\blx@range@aux\blx@firstpage@ii} + {\blx@range@aux\blx@firstpage@i}} + +\def\blx@firstpage@i[#1][#2]#3{% + \let\blx@tempa\@empty + \protected\def\blx@range@out@value{\appto\blx@tempa}% + \def\blx@range@out@item@process{#2}% + \let\blx@range@out@delim\blx@range@out@value + \let\blx@range@split\blx@firstpage@split + \blx@range@chunk{#3}% + \begingroup + \edef\blx@tempa{\endgroup + \unexpanded{#1}{\expandonce\blx@tempa}}% + \blx@tempa + \endgroup} + +\def\blx@firstpage@ii[#1][#2]#3{% + \protected\def\blx@range@out@value{#1}% + \def\blx@range@out@item@process{#2}% + \let\blx@range@out@delim\@firstofone + \let\blx@range@split\blx@firstpage@split + \blx@range@chunk{#3}% + \endgroup} + +% Unicode en-dashes are supported in blx-unicode.def +\def\blx@firstpage@split#1{% + \edef\blx@firstpage@abort{% + \blx@range@out@value{% + \expandonce\blx@range@out@item@process{\unexpanded{#1}}}}% + \blx@firstpage@range#1\bibrangedash\bibrangedash&} + +\def\blx@firstpage@range#1\bibrangedash#2\bibrangedash#3&{% + \ifblank{#3} + {\blx@firstpage@hyphen#1--&} + {\ifblank{#1} + {\begingroup + \edef\blx@tempc{\endgroup + \blx@range@out@value{% + \noexpand\bibrangedash + \expandonce\blx@range@out@item@process{\unexpanded{#2}}}}% + \blx@tempc} + {\begingroup + \edef\blx@tempc{\endgroup + \blx@range@out@value{% + \expandonce\blx@range@out@item@process{\unexpanded{#1}}}}% + \blx@tempc}}} + +\def\blx@firstpage@hyphen#1-#2-#3&{% + \ifblank{#3} + {\blx@firstpage@abort} + {\ifblank{#1} + {\ifblank{#2} + {\blx@firstpage@hyphen@i#3&} + {\begingroup + \edef\blx@tempc{\endgroup + \blx@range@out@value{% + \noexpand\bibrangedash + \expandonce\blx@range@out@item@process{% + \unexpanded{#2}}}}% + \blx@tempc}} + {\begingroup + \edef\blx@tempc{\endgroup + \blx@range@out@value{% + \expandonce\blx@range@out@item@process{\unexpanded{#1}}}}% + \blx@tempc}}} + +\def\blx@firstpage@hyphen@i#1-#2&{% + \ifblank{#1} + {\ifblank{#2} + {\blx@firstpage@abort} + {\blx@firstpage@hyphen@i#2&}} + {\begingroup + \edef\blx@tempc{\endgroup + \blx@range@out@value{% + \noexpand\bibrangedash + \expandonce\blx@range@out@item@process{% + \unexpanded{#1}}}}% + \blx@tempc}} + +\newcommand*{\ppspace}{\addnbspace} +\newcommand*{\sqspace}{\addnbspace} + +\newrobustcmd*{\RN}[1]{% + \begingroup + \expandafter\RNfont + \expandafter{\romannumeral#1}% + \endgroup} +\newrobustcmd*{\Rn}[1]{% + \begingroup + \expandafter\Rnfont + \expandafter{\romannumeral#1}% + \endgroup} + +\newcommand*{\RNfont}{\uppercase} +\newcommand*{\Rnfont}{} + +% Delimiter interface + +% [<contextname, ...>]{<name, ...>}{<code>} +\newrobustcmd*{\DeclareDelimFormat}{% + \@ifstar + {\blx@declaredelimclear} + {\blx@declaredelim}} + +\def\blx@cleardelim#1{% + \ifcsvoid{blx@declaredelimcontexts@#1} + {} + {\def\do##1{\csundef{blx@printdelim@##1@#1}}% + \dolistcsloop{blx@declaredelimcontexts@#1}}% + \cslet{blx@declaredelimcontexts@#1}\@empty} + +\newrobustcmd*{\blx@declaredelimclear}[3][]{% + \blx@cleardelim{#2}% + \ifblank{#1} + {\blx@declaredelim{#2}{#3}} + {\blx@declaredelim[#1]{#2}{#3}}} + +\newrobustcmd*{\blx@declaredelim}[3][]{% + \ifblank{#1} + {\blx@declaredelim@i{}{}{#2}{#3}} + {\def\do##1{% + \listcsadd{blx@declaredelimcontexts@#2}{##1}% + \blx@declaredelim@i{blx@printdelim@##1@}{##1}{#2}{#3}}% + \docsvlist{#1}}}% + +\def\blx@declaredelim@i#1#2#3#4{% + \def\do@i##1{% + \ifcsdef{#1##1} + {\blx@inf@delimdeclare{##1}{#2}} + {}% + \csdef{#1##1}{#4}}% + \forcsvlist{\do@i}{#3}} + +% *[<alias context, ...>]{<alias>}[<delim context>]{<delim>} +\newrobustcmd*{\DeclareDelimAlias}{% + \@ifstar + {\blx@declaredelimalias@expl} + {\blx@declaredelimalias@auto}} + +\newrobustcmd*{\blx@declaredelimalias@auto}[2]{% + \blx@cleardelim{#1}% + \blx@declaredelimalias@def{}{#1}{}{#2}% + \ifcsvoid{blx@declaredelimcontexts@#2} + {} + {\def\do##1{% + \blx@declaredelimalias@def + {blx@printdelim@##1@}{#1}{blx@printdelim@##1@}{#2}}% + \dolistcsloop{blx@declaredelimcontexts@#2}}} + +\def\blx@declaredelimalias@expl{% + \@ifnextchar[%] + {\blx@declaredelimalias@expl@i} + {\blx@declaredelimalias@expl@i[]}} + +\def\blx@declaredelimalias@expl@i[#1]#2{% + \@ifnextchar[%] + {\blx@declaredelimalias@expl@iii{#1}{#2}} + {\blx@declaredelimalias@expl@ii{#1}{#2}}} + +\def\blx@declaredelimalias@expl@ii#1#2#3{% + \ifblank{#1} + {\blx@declaredelimalias@def{}{#2}{}{#3}} + {\def\do##1{% + \blx@declaredelimalias@def + {blx@printdelim@##1@}{#2}{blx@printdelim@##1@}{#3}}% + \docsvlist{#1}}} + +\def\blx@declaredelimalias@expl@iii#1#2[#3]#4{% + \ifblank{#1} + {\ifblank{#3} + {\blx@declaredelimalias@def{}{#2}{}{#4}} + {\blx@declaredelimalias@def{}{#2}{blx@printdelim@#3@}{#4}}} + {\ifblank{#3} + {\def\do##1{% + \blx@declaredelimalias@def + {blx@printdelim@##1@}{#2}{}{#4}}} + {\def\do##1{% + \blx@declaredelimalias@def + {blx@printdelim@##1@}{#2}{blx@printdelim@#3@}{#4}}}% + \docsvlist{#1}}} + +\def\blx@declaredelimalias@def#1#2#3#4{% + \ifcsdef{#1#2} + {\blx@inf@delimdeclare{#2}{#1}} + {}% + \ifblank{#1} + {} + {\ifinlistcs{#1}{blx@declaredelimcontexts@#2} + {} + {\listcsadd{blx@declaredelimcontexts@#2}{#1}}}% + \csdef{#1#2}{\ifcsundef{#3#4}{\csuse{#4}}{\csuse{#3#4}}}} + +\def\blx@delimcontext{none} +\newcommand*{\printdelim}[2][]{% + \ifblank{#1} + {\ifcsdef{blx@printdelim@\blx@delimcontext @#2} + {\csuse{blx@printdelim@\blx@delimcontext @#2}} + {\ifcsdef{#2}% fall back on legacy macros + {\csuse{#2}} + {\blx@warn@delimuse{#2}{*}}}} + {\ifcsdef{blx@printdelim@#1@#2} + {\csuse{blx@printdelim@#1@#2}} + {\blx@warn@delimuse{#2}{#1}}}} + +\newcommand*{\delimcontext}[1]{% + \edef\blx@delimcontext{\blx@delimcontextalias{#1}}} + +\def\blx@delimcontextalias#1{% + \ifcsdef{blx@delimcontextalias@#1} + {\csuse{blx@delimcontextalias@#1}} + {#1}} + +\newcommand*{\DeclareDelimcontextAlias}[2]{% + \csdef{blx@delimcontextalias@#1}{#2}} + +\newrobustcmd*{\AtUsedriver}{% + \@ifstar + {\global\undef\blx@hook@usedriver + \gappto\blx@hook@usedriver} + {\gappto\blx@hook@usedriver}} +\@onlypreamble\AtUsedriver +\def\blx@imc@UseUsedriverHook{\csuse{blx@hook@usedriver}} +\blx@regimcs{\UseUsedriverHook} + +\AtUsedriver{% + \let\finentry\blx@finentry@usedrv + \let\newblock\relax + \let\abx@macro@bibindex\@empty + \let\abx@macro@pageref\@empty} + +% {<init>}{<entrytype>} +\protected\def\blx@imc@usedriver#1#2{% + \begingroup + \delimcontext{bib}% + \csuse{blx@hook@usedriver}% + \csuse{blx@hook@bbxinit}#1% + \blx@beglangbib + \blx@driver{#2}% + \blx@endlangbib + \endgroup} + +% Punctuation + +\protected\def\blx@initunit{% + \global\togglefalse{blx@block}% + \global\togglefalse{blx@unit}% + \global\togglefalse{blx@insert}% + \global\togglefalse{blx@lastins}% + \global\togglefalse{blx@keepunit}% + \global\let\blx@unitpunct\newunitpunct + \blx@imc@resetpunctfont} + +\def\blx@begunit{% + \toggletrue{blx@tempa}% + \iftoggle{blx@insert} + {\iftoggle{blx@unit} + {\begingroup + \let\blx@begunit\@empty + \let\blx@endunit\@empty + \let\blx@endnounit\@empty + \blx@unitpunct\blx@postpunct + \endgroup + \global\togglefalse{blx@unit}% + \togglefalse{blx@tempa}} + {\blx@postpunct}% + \iftoggle{blx@block} + {\begingroup + \let\blx@begunit\@empty + \let\blx@endunit\@empty + \let\blx@endnounit\@empty + \newblockpunct + \endgroup + \global\togglefalse{blx@block}% + \togglefalse{blx@tempa}} + {}} + {}% + \blx@postpunct + \blx@imc@resetpunctfont + \iftoggle{blx@tempa} + {} + {\global\togglefalse{blx@insert}}% + \blx@leavevmode + \begingroup} + +\def\blx@endunit{% + \endgroup + \global\toggletrue{blx@insert}% + \global\toggletrue{blx@lastins}} + +\def\blx@nounit{% + \global\togglefalse{blx@lastins}} + +\def\blx@endnounit{% + \endgroup\blx@nounit} + +\protected\def\blx@imc@newblock{% + \global\toggletrue{blx@block}}% + +\protected\def\blx@imc@newunit{% + \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{% + \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 + \blx@initunit} + +\protected\def\blx@finentry@usedrv{% + \blx@setunit\relax} + +\protected\def\blx@finentry@inset{% + \blx@setunit\entrysetpunct + \global\toggletrue{blx@block}} + +\def\ifentryseen{\blx@imc@ifentryseen} +\def\ifentryinbib{\blx@imc@ifentryinbib} +\def\ifentrycategory{\blx@imc@ifentrycategory} +\def\ifentrykeyword{\blx@imc@ifentrykeyword} + +\def\blx@imc@iflabeldateisdate{% + \ifboolexpr{% + togl {blx@labeldateparts} + and not test {\iffieldundef{labeldatesource}} + and + (test {\iffieldequalstr{labeldatesource}{}} + or test {\iffieldequalstr{labeldatesource}{year}})}} + +\def\blx@imc@ifdatehasyearonlyprecision#1{% + \ifboolexpr{not test {\iffieldundef{#1year}} + and (test {\ifcsstring{blx@dateformat@#1date}{year}} + or (test {\iffieldundef{#1month}} + and test {\iffieldundef{#1season}}))}} + +\def\blx@imc@ifdatehastime#1{% + \ifboolexpr{togl {blx@#1dateusetime} + and not test {\iffieldundef{#1hour}}}} + +\def\blx@imc@ifdateshavedifferentprecision#1#2{% + \ifboolexpr{ (test {\ifdatehasyearonlyprecision{#1}} + and not test {\ifdatehasyearonlyprecision{#2}}) + or (not test {\ifdatehasyearonlyprecision{#1}} + and test {\ifdatehasyearonlyprecision{#2}}) + or (test {\ifdatehastime{#1}} + and not test {\ifdatehastime{#2}}) + or (not test {\ifdatehastime{#1}} + and test {\ifdatehastime{#2}})}} + +\def\blx@imc@ifdateyearsequal#1#2{% + \ifboolexpr{ test {\iffieldsequal{#1year}{#2year}} + and test {\iffieldsequal{#1dateera}{#2dateera}}}} + +\blx@regimcs{% + \ifdriver \thefield \strfield \csfield \usefield \thelist \strlist + \thefirstlistitem \usefirstlistitem \strfirstlistitem + \thename \strname + \clearfield \clearlist \clearname \restorefield \restorelist \restorename + \ifcategory \ifkeyword + \ifciteseen \ifciteibid \ifciteidem \ifopcit \ifloccit + \ifcurrentfield \ifcurrentlist \ifcurrentname \ifentrytype + \iffieldequalcs \iffieldequals \iffieldequalstr \iffieldsequal + \iffieldundef \iffieldxref \iflistequalcs \iflistequals + \iflistsequal \iflistundef \iflistxref + \ifmorenames \ifmoreitems \iffirstcitekey \iflastcitekey + \ifnameequalcs \ifnameequals \ifnamesequal \ifnameundef \ifnamexref + \iffirstonpage \ifsamepage \savefield \savefieldcs \savelist + \savelistcs \savename \savenamecs \usedriver + \ifinteger \ifnumeral \ifnumerals \ifpages + \iffieldint \iffieldnum \iffieldnums \iffieldpages + \iflabeldateisdate \ifdatehasyearonlyprecision \ifdatehastime + \ifdateshavedifferentprecision + \ifdateyearsequal + \mkpageprefix \mkpagetotal + \newblock \newunit \setunit \printunit \finentry} + +\appto\blx@blxinit{% + \def\ifnatbibmode{\iftoggle{blx@natbib}}% + \def\ifcitation{\iftoggle{blx@citation}}% + \def\ifvolcite{\iftoggle{blx@volcite}}% + \def\ifbibliography{\iftoggle{blx@bibliography}}% + \def\ifciteindex{\iftoggle{blx@citeindex}}% + \def\ifbibindex{\iftoggle{blx@bibindex}}% + \def\iffootnote{\iftoggle{blx@footnote}}% + \def\ifuseprefix{\iftoggle{blx@useprefix}}% + \def\ifterseinits{\iftoggle{blx@terseinits}}% + \def\ifcrossrefsource{\iftoggle{abx@bool@crossrefsource}}% + \def\ifxrefsource{\iftoggle{abx@bool@xrefsource}}% + \def\ifsingletitle{\iftoggle{abx@bool@singletitle}}% + \def\ifnocite{\iftoggle{abx@bool@nocite}}% + \def\ifuniquetitle{\iftoggle{abx@bool@uniquetitle}}% + \def\ifuniquebaretitle{\iftoggle{abx@bool@uniquebaretitle}}% + \def\ifuniquework{\iftoggle{abx@bool@uniquework}}% + \def\ifuniqueprimaryauthor{\iftoggle{abx@bool@uniqueprimaryauthor}}% + \def\ifandothers#1{\iftoggle{abx@bool@more#1}}% + \protected\def\pnfmt{\printtext[postnote]}% + \protected\def\pno{\bibstring{page}}% + \protected\def\ppno{\bibstring{pages}}% + \let\nopp\relax + \protected\def\psq{\sqspace\bibstring{sequens}}% + \protected\def\psqq{\sqspace\bibstring{sequentes}}} + +% Make sure that commands which might pop up inside an \edef will be defined +% as something. If they are taken \AtBeginDocument then we assume that all will +% be well. If not, then provide a definition which will give an error outside +% of a citation context. +\AtBeginDocument{% + \protected\def\do#1{% + \ifdefined#1% + \else + \protected\def#1{\ERROR}% + \fi + }% + \docsvlist{\pnfmt,\pno,\ppno,\nopp,\psq,\psqq}% +} + +%% Global formatting hooks + +% capitalization + +% {<text>} +\newrobustcmd{\MakeCapital}[1]{% + \begingroup + \blx@mkcp@init + \protected@edef\blx@tempa{#1}% + \expandafter\blx@mkcp@parse\blx@tempa\@empty\blx@mkcp@end} + +\def\blx@mkcp@init{% + \def\blx@mkcp@iec{\noexpand\blx@mkcp@iec\noexpand}% + \def\blx@mkcp@bbl{\noexpand\blx@mkcp@bbl\noexpand}% + \def\blx@mkcp@sgl{\noexpand\blx@mkcp@sgl\noexpand}% + \def\blx@mkcp@dbl{\noexpand\blx@mkcp@dbl\noexpand}% + \def\do##1{\def##1{\blx@mkcp@sgl##1}}\abx@dosingleaccents + \def\do##1{\def##1{\blx@mkcp@dbl##1}}\abx@dodoubleaccents + \def\IeC##1{\blx@mkcp@iec\IeC{##1}}% + \def\@tabacckludge##1{% + \expandafter\blx@mkcp@sgl\csname\string##1\endcsname}} + +\begingroup +\catcode`\"=\active +\gappto\blx@mkcp@init{% + \ifnum\catcode`\"=\active + \def"#1{\blx@mkcp@bbl"\noexpand#1}% + \fi} +\endgroup + +\def\blx@mkcp@parse{% + \futurelet\@let@token\blx@mkcp@eval} + +\long\def\blx@mkcp@eval{% + \ifx\@let@token\blx@mkcp@iec + \expandafter\blx@mkcp@getiec + \fi + \ifx\@let@token\blx@mkcp@bbl + \expandafter\blx@mkcp@gettwo + \fi + \ifx\@let@token\blx@mkcp@sgl + \expandafter\blx@mkcp@gettwo + \fi + \ifx\@let@token\blx@mkcp@dbl + \expandafter\blx@mkcp@getthree + \fi + \blx@mkcp@case} + +\def\blx@mkcp@getiec#1\blx@mkcp@case#2#3#4{% + \blx@mkcp@case{#2#3{#4}}} + +\def\blx@mkcp@gettwo#1\blx@mkcp@case#2#3#4{% + \blx@mkcp@case{#2#3#4}} + +\def\blx@mkcp@getthree#1\blx@mkcp@case#2#3#4#5{% + \blx@mkcp@case{#2#3#4#5}} + +\long\def\blx@mkcp@case#1{% + \begingroup + \def\i{I}\def\j{J}% + \def\do##1##2{\let##1##2\do}% + \expandafter\do\@uclclist\relax{\relax\@gobble}% + \uppercase{\protected@edef\blx@tempa{\endgroup\blx@mkcp@end#1}}% + \blx@tempa} + +\protected\long\def\blx@mkcp@end#1\blx@mkcp@end{% + \let\blx@mkcp@iec\noexpand + \let\blx@mkcp@bbl\noexpand + \let\blx@mkcp@sgl\noexpand + \let\blx@mkcp@dbl\noexpand + \protected@edef\blx@tempa{\endgroup#1}% + \blx@tempa} + +\def\abx@dosingleaccents{% + \do\"\do\'\do\`\do\^\do\~\do\=\do\.% + \do\H\do\b\do\c\do\d\do\r\do\u\do\v} +\def\abx@dodoubleaccents{% + \do\t} + +% {<text>} +\newrobustcmd*{\MakeSentenceCase}{% + \@ifstar\blx@mksc@i\blx@mksc@ii} + +% Check, in order: +% * explicit option language=<lang>, which overrides everything +% * langid field of entry +% * babel/polyglossia lang +% * main document lang +\def\blx@mksc@i{% + \ifdef\blx@forcelanguagename + {\xifinlist\blx@forcelanguagename\blx@cmksc@lang + {\blx@mksc@ii} + {\@firstofone}} + {\ifdef\abx@field@langid + {\xifinlist\abx@field@langid\blx@cmksc@lang + {\blx@mksc@ii} + {\@firstofone}} + {\ifdef\bbl@main@language + {\xifinlist\bbl@main@language\blx@cmksc@lang + {\blx@mksc@ii} + {\@firstofone}} + {\xifinlist\blx@languagename\blx@cmksc@lang + {\blx@mksc@ii} + {\@firstofone}}}}} + +\long\def\blx@mksc@ii#1{% + \begingroup + \let\blx@tempa\@empty + \let\blx@tempb\@empty + \blx@mksc@init + \protected@edef\@tempa{#1}% + \expandafter\blx@mksc@parse\@tempa\blx@mksc@end} + +\def\blx@mksc@init{% + \blx@mkcp@init + \def\blx@mkcp@nil{\noexpand\blx@mkcp@nil\noexpand}% + \def\i{\blx@mkcp@nil\i}\def\j{\blx@mkcp@nil\j}% + \def\do##1{% + \ifx##1\relax + \else + \def##1{\blx@mkcp@nil##1}% + \expandafter\do + \fi}% + \expandafter\do\@uclclist\relax} + +\def\blx@mksc@parse{% + \futurelet\@let@token\blx@mksc@eval} + +\def\blx@mksc@eval{% + \ifx\@let@token\blx@mksc@end + \expandafter\blx@mksc@end + \fi + \ifx\@let@token\bgroup + \expandafter\blx@mksc@group + \fi + \ifx\@let@token\@sptoken + \expandafter\blx@mksc@space + \fi + \ifx\@let@token\blx@mkcp@nil + \expandafter\blx@mksc@getone + \fi + \ifx\@let@token\blx@mkcp@iec + \expandafter\blx@mksc@getiec + \fi + \ifx\@let@token\blx@mkcp@bbl + \expandafter\blx@mksc@gettwo + \fi + \ifx\@let@token\blx@mkcp@sgl + \expandafter\blx@mksc@gettwo + \fi + \ifx\@let@token\blx@mkcp@dbl + \expandafter\blx@mksc@getthree + \fi + \if\noexpand\@let@token\relax + \expandafter\blx@mksc@cs + \fi + \blx@mksc@other} + +\def\blx@mksc@end#1\blx@mksc@end{% + \blx@mksc@eject + \let\blx@mkcp@nil\noexpand + \let\blx@mkcp@iec\noexpand + \let\blx@mkcp@bbl\noexpand + \let\blx@mkcp@sgl\noexpand + \let\blx@mkcp@dbl\noexpand + \let\MakeUppercase\relax + \let\MakeLowercase\relax + \protected@edef\blx@tempa{\endgroup\blx@tempa}% + \blx@tempa} + +\long\def\blx@mksc@group#1\blx@mksc@other#2{% + \futurelet\@let@token\blx@mksc@ingroup#2&{#2}% + \blx@mksc@endhead + \blx@mksc@parse} + +\long\def\blx@mksc@ingroup#1{% + \if\noexpand\@let@token\relax + \ifx\@let@token\blx@mkcp@sgl + \blx@mksc@nocase{{#2}}% + \else + \ifx\@let@token\blx@mkcp@dbl + \blx@mksc@nocase{{#2}}% + \else + \blx@mksc@locase{{#2}}% + \fi + \fi + \else + \blx@mksc@nocase{{#2}}% + \fi} + +\def\blx@mksc@space{\def\blx@mksc@space##1\blx@mksc@other} +\csuse{blx@mksc@space} {% + \blx@mksc@anycase{ }% + \blx@mksc@endhead + \blx@mksc@parse} + +\long\def\blx@mksc@cs#1\blx@mksc@other#2{% + \ifcat\noexpand~\noexpand#2% + \blx@mksc@locase{#2}% + \else + \blx@mksc@nocase{#2}% + \fi + \blx@mksc@endhead + \blx@mksc@parse} + +\def\blx@mksc@getiec#1\blx@mksc@other#2#3#4{% + \blx@mksc@other{#2#3{#4}}} + +\def\blx@mksc@getone#1\blx@mksc@other#2#3{% + \blx@mksc@other{#2#3}} + +\def\blx@mksc@gettwo#1\blx@mksc@other#2#3#4{% + \blx@mksc@other{#2#3#4}} + +\def\blx@mksc@getthree#1\blx@mksc@other#2#3#4#5{% + \blx@mksc@other{#2#3#4#5}} + +\long\def\blx@mksc@other#1{% + \blx@mksc@locase{#1}% + \blx@mksc@endhead + \blx@mksc@parse} + +\def\blx@mksc@locase{% + \appto\blx@tempb} + +\def\blx@mksc@nocase{% + \blx@mksc@eject + \appto\blx@tempa} + +\def\blx@mksc@anycase{% + \ifx\blx@tempb\@empty + \expandafter\appto + \expandafter\blx@tempa + \else + \expandafter\appto + \expandafter\blx@tempb + \fi} + +\def\blx@mksc@eject{% + \ifx\blx@tempb\@empty + \else + \eappto\blx@tempa{\noexpand\MakeLowercase{\expandonce\blx@tempb}}% + \let\blx@tempb\@empty + \fi} + +\def\blx@mksc@endhead{% + \ifx\blx@tempb\@empty + \else + \eappto\blx@tempa{\noexpand\MakeCapital{\expandonce\blx@tempb}}% + \let\blx@tempb\@empty + \fi + \let\blx@mksc@endhead\relax} + +% {<language,language,...>} +\newrobustcmd*{\DeclareCaseLangs}{% + \@ifstar + {\blx@defcaselangs} + {\global\let\blx@cmksc@lang\@empty + \blx@defcaselangs}} + +\def\blx@defcaselangs#1{% + \ifblank{#1} + {} + {\forcsvlist{\listgadd\blx@cmksc@lang}{#1}}} + +\DeclareCaseLangs{% + american,british,canadian, + english,USenglish,UKenglish, + australian,newzealand} + +\newrobustcmd*{\ifcaselang}[1][]{% + \ifblank{#1} + {\xifinlist\blx@languagename\blx@cmksc@lang} + {\xifinlist{#1}\blx@cmksc@lang}} + +%% Main formatting commands +% They work by creating a \let alias: +% \abx@<class>@<entrytype>@<formatname> -> \blx@defformat@d +% for later use in \print* +% Then, \blx@defformat@d is defined by calling +% \def\blx@defformat@d#1{format body} + +% [<entrytype>]{<name>}{<definiton>} +\newrobustcmd*{\DeclareNameFormat}{% + \@ifstar + {\blx@defformat\blx@defnameformat{nfd}*} + {\blx@defformat\blx@defnameformat{nfd}{}}} + +\newrobustcmd*{\DeclareIndexNameFormat}{% + \@ifstar + {\blx@defformat\blx@defnameformat{nid}*} + {\blx@defformat\blx@defnameformat{nid}{}}} + +\newrobustcmd*{\DeclareListFormat}{% + \@ifstar + {\blx@defformat\blx@defplainformat{lfd}*} + {\blx@defformat\blx@defplainformat{lfd}{}}} +\newrobustcmd*{\DeclareIndexListFormat}{% + \@ifstar + {\blx@defformat\blx@defplainformat{lid}*} + {\blx@defformat\blx@defplainformat{lid}{}}} + +\newrobustcmd*{\DeclareFieldFormat}{% + \@ifstar + {\blx@defformat\blx@defplainformat{ffd}*} + {\blx@defformat\blx@defplainformat{ffd}{}}} +\newrobustcmd*{\DeclareIndexFieldFormat}{% + \@ifstar + {\blx@defformat\blx@defplainformat{fid}*} + {\blx@defformat\blx@defplainformat{fid}{}}} + +\newrobustcmd*{\DeclareNameWrapperFormat}{% + \@ifstar + {\blx@defformat\blx@defnameformat{nwd}*} + {\blx@defformat\blx@defnameformat{nwd}{}}} +\newrobustcmd*{\DeclareIndexNameWrapperFormat}{% + \@ifstar + {\blx@defformat\blx@defnameformat{nxd}*} + {\blx@defformat\blx@defnameformat{nxd}{}}} + +\newrobustcmd*{\DeclareListWrapperFormat}{% + \@ifstar + {\blx@defformat\blx@defplainformat{lwd}*} + {\blx@defformat\blx@defplainformat{lwd}{}}} +\newrobustcmd*{\DeclareIndexListWrapperFormat}{% + \@ifstar + {\blx@defformat\blx@defplainformat{lxd}*} + {\blx@defformat\blx@defplainformat{lxd}{}}} + +% {<macro>}{<class>}{<*>} +\def\blx@defformat#1#2#3{% + \@ifnextchar[%] + {\blx@defformat@i{#1}{#2}{#3}} + {\blx@defformat@i{#1}{#2}{#3}[*]}} + +% {<macro>}{<class>}{<*>}[<entrytype>]{<name>} +\def\blx@defformat@i#1#2#3[#4]#5{% + \notblank{#3} + {\blx@resetformat{#2}{#5}} + {}% + \def\blx@defformat@a{#2}% + \def\blx@defformat@b{#4}% + \blx@xsanitizeafter{\def\blx@defformat@c}{#5}% + \afterassignment\blx@defformat@ii + #1} + +\def\blx@defformat@ii{% + \expandafter\forcsvlist + \expandafter\blx@defformat@iii + \expandafter{\blx@defformat@b}} + +\def\blx@defformat@iii#1{% + \cslet{abx@\blx@defformat@a @#1@\blx@defformat@c}\blx@defformat@d} + +\def\blx@defplainformat{% + \long\def\blx@defformat@d##1} + +\def\blx@defnameformat{% + \long\def\blx@defformat@d##1} + +\def\blx@resetformat#1#2{% + \let\blx@saved@do\do + \def\do##1{\blx@resetformat@i{#1}{#2}{##1}}% + \blx@safe@actives + \abx@doentrytypes + \blx@rest@actives + \let\do\blx@saved@do} + +\def\blx@resetformat@i#1#2#3{% + \ifcsdef{abx@#1@#3@#2} + {\csundef{abx@#1@#3@#2}} + {}} + +% {<name>}{<name>} +\def\blx@letformat#1#2{% + \blx@safe@actives + \afterassignment\blx@rest@actives + \csletcs{#1}{#2}} + +% [aliastype]{aliasname}[formattype]{formatname} +\def\blx@defalias#1{% + \@ifnextchar[%] + {\blx@defalias@i{#1}} + {\blx@defalias@i{#1}[*]}} +\def\blx@defalias@i#1[#2]#3{% + \@ifnextchar[%] + {\blx@defalias@ii{#1}{#2}{#3}} + {\blx@defalias@ii{#1}{#2}{#3}[*]}} +\def\blx@defalias@ii#1#2#3[#4]#5{% + \blx@safe@actives + \afterassignment\blx@rest@actives + \csedef{abx@#1@#2@#3}{% + \expandonce{\csname abx@#1@#4@#5\endcsname}}} + + + +% {<macro>}{<class>}{<name>}{<field>} +\def\blx@getformat#1#2#3#4{% + \blx@safe@actives + \afterassignment\blx@rest@actives + \ifcsundef{abx@#2@\blx@imc@thefield{entrytype}@#3} + {\ifcsundef{abx@#2@*@#3} + {\ifcsundef{abx@#2@\blx@imc@thefield{entrytype}@#4} + {\ifcsundef{abx@#2@*@#4} + {\letcs#1{abx@#2@*@default}} + {\letcs#1{abx@#2@*@#4}}} + {\letcs#1{abx@#2@\blx@imc@thefield{entrytype}@#4}}} + {\letcs#1{abx@#2@*@#3}}} + {\letcs#1{abx@#2@\blx@imc@thefield{entrytype}@#3}}} + +% [<entrytype>]{<name>} +\newrobustcmd*{\savefieldformat}[2][*]{\blx@save{abx@ffd@#1@#2}} +\newrobustcmd*{\savelistformat}[2][*]{\blx@save{abx@lfd@#1@#2}} +\newrobustcmd*{\savenameformat}[2][*]{\blx@save{abx@nfd@#1@#2}} +\newrobustcmd*{\savelistwrapperformat}[2][*]{\blx@save{abx@lwd@#1@#2}} +\newrobustcmd*{\savenamewrapperformat}[2][*]{\blx@save{abx@nwd@#1@#2}} + +\newrobustcmd*{\restorefieldformat}[2][*]{\blx@restore{abx@ffd@#1@#2}} +\newrobustcmd*{\restorelistformat}[2][*]{\blx@restore{abx@lfd@#1@#2}} +\newrobustcmd*{\restorenameformat}[2][*]{\blx@restore{abx@nfd@#1@#2}} +\newrobustcmd*{\restorelistwrapperformat}[2][*]{\blx@restore{abx@lwd@#1@#2}} +\newrobustcmd*{\restorenamewrapperformat}[2][*]{\blx@restore{abx@nwd@#1@#2}} + +% [<entrytype>]{<name>}{<true>}{<false>} +\newrobustcmd*{\iffieldformatundef}[2][*]{\ifcsundef{abx@ffd@#1@#2}} +\newrobustcmd*{\iflistformatundef}[2][*]{\ifcsundef{abx@lfd@#1@#2}} +\newrobustcmd*{\ifnameformatundef}[2][*]{\ifcsundef{abx@nfd@#1@#2}} +\newrobustcmd*{\iflistwrapperformatundef}[2][*]{\ifcsundef{abx@lwd@#1@#2}} +\newrobustcmd*{\ifnamewrapperformatundef}[2][*]{\ifcsundef{abx@nwd@#1@#2}} + +% [<entrytype>]{<alias>}[<entrytype>]{<name>} +\newrobustcmd*{\DeclareNameAlias}{\blx@defalias{nfd}} +\newrobustcmd*{\DeclareIndexNameAlias}{\blx@defalias{nid}} + +\newrobustcmd*{\DeclareListAlias}{\blx@defalias{lfd}} +\newrobustcmd*{\DeclareIndexListAlias}{\blx@defalias{lid}} + +\newrobustcmd*{\DeclareFieldAlias}{\blx@defalias{ffd}} +\newrobustcmd*{\DeclareIndexFieldAlias}{\blx@defalias{fid}} + +\newrobustcmd*{\DeclareNameWrapperAlias}{\blx@defalias{nwd}} +\newrobustcmd*{\DeclareIndexNameWrapperAlias}{\blx@defalias{nxd}} + +\newrobustcmd*{\DeclareListWrapperAlias}{\blx@defalias{lwd}} +\newrobustcmd*{\DeclareIndexListWrapperAlias}{\blx@defalias{lxd}} + +% #1: internal type signature, #2: type text for warning +% #3 #4 #5 #6 +% [aliastype]{aliasname}[formattype]{formatname} +\def\blx@deprecateformat#1#2{% + \@ifnextchar[%] + {\blx@deprecateformat@i{#1}{#2}} + {\blx@deprecateformat@i{#1}{#2}[*]}} +\def\blx@deprecateformat@i#1#2[#3]#4{% + \@ifnextchar[%] + {\blx@deprecateformat@ii{#1}{#2}{#3}{#4}} + {\blx@deprecateformat@ii{#1}{#2}{#3}{#4}[*]}} +\def\blx@deprecateformat@ii#1#2#3#4[#5]#6{% + \blx@safe@actives + \afterassignment\blx@rest@actives + \csdef{abx@#1@#3@#4}{% + \ifcsundef{abx@legacywarning@#1@#3@#4} + {\global\cslet{abx@legacywarning@#1@#3@#4}\@empty + \blx@warning@noline{% + #2 '#4' deprecated.\MessageBreak + Please use '#6' instead.\MessageBreak + Using '#6' now}} + {}% + \csname abx@#1@#5@#6\endcsname}} + +% [<entrytype>]{<alias>}[<entrytype>]{<name>} +\newrobustcmd*{\DeprecateNameFormatWithReplacement}{% + \blx@deprecateformat{nfd}{Name format}} +\newrobustcmd*{\DeprecateIndexNameFormatWithReplacement}{% + \blx@deprecateformat{nid}{Index name format}} + +\newrobustcmd*{\DeprecateListFormatWithReplacement}{% + \blx@deprecateformat{lfd}{List format}} +\newrobustcmd*{\DeprecateIndexListFormatWithReplacement}{% + \blx@deprecateformat{lid}{Index list format}} + +\newrobustcmd*{\DeprecateFieldFormatWithReplacement}{% + \blx@deprecateformat{ffd}{Field format}} +\newrobustcmd*{\DeprecateIndexFieldFormatWithReplacement}{% + \blx@deprecateformat{fid}{Index field format}} + +\newrobustcmd*{\DeprecateNameWrapperFormatWithReplacement}{% + \blx@deprecateformat{nwd}{Name wrapper format}} +\newrobustcmd*{\DeprecateIndexNameWrapperFormatWithReplacement}{% + \blx@deprecateformat{nxd}{Index name wrapper format}} + +\newrobustcmd*{\DeprecateListWrapperFormatWithReplacement}{% + \blx@deprecateformat{lwd}{List wrapper format}} +\newrobustcmd*{\DeprecateIndexListWrapperFormatWithReplacement}{% + \blx@deprecateformat{lxd}{Index list wrapper format}} + +% [<format>]{<text>} +\newrobustcmd{\blx@imc@printtext}[2][]{% + \ifblank{#2} + {\blx@nounit} + {\ifblank{#1} + {\let\blx@theformat\@firstofone} + {\blx@getformat\blx@theformat{ffd}{#1}{}}% + \ifdefvoid\blx@theformat + {\blx@nounit} + {\blx@begunit + \blx@theformat{#2}% + \blx@endunit}}} + +% [<format>]{<field>} +\newrobustcmd*{\blx@imc@printfield}[2][]{% + \blx@imc@iffieldundef{#2} + {\blx@nounit} + {\blx@getformat\blx@theformat{ffd}{#1}{#2}% + \ifdefvoid\blx@theformat + {\blx@nounit} + {\blx@begunit + \edef\currentfield{#2}% + \expandafter\expandafter + \expandafter\blx@theformat + \expandafter\expandafter + \expandafter{\csname abx@field@#2\endcsname}% + \blx@endunit}}} + +% [<format>]{<field>} +\newcommand*{\blx@imc@indexfield}[2][]{% + \blx@imc@iffieldundef{#2} + {} + {\blx@getformat\blx@theformat{fid}{#1}{#2}% + \ifdefvoid\blx@theformat + {} + {\begingroup + \edef\currentfield{#2}% + \letcs\blx@tempa{abx@field@#2}% + \expandafter\blx@theformat\expandafter{\blx@tempa}% + \endgroup}}} + +% [<format>]{<file>} +\newrobustcmd*{\blx@imc@printfile}[2][]{% + \iftoggle{blx@loadfiles} + {\IfFileExists{#2} + {\listxadd\blx@list@req@edit{#2}% + \blx@imc@printtext[#1]{\input{#2}\unspace}} + {\blx@nounit}} + {\blx@nounit}} + +% {<macro>}[<format>][<start>-<stop>] +% => <macro>{<format>}{<start>}{<stop>} +\def\blx@listargs#1{% + \@ifnextchar[%] + {\blx@listargs@i{#1}} + {#1{}{}{}}} + +\def\blx@listargs@i#1[#2]{% + \@ifnextchar[%] + {\blx@listargs@ii{#1}{#2}} + {#1{#2}{}{}}} + +\def\blx@listargs@ii#1#2[#3]{% + \blx@listargs@iii{#1}{#2}#3&} + +\def\blx@listargs@iii#1#2#3-#4&{% + #1{#2}{#3}{#4}} + +% [<format>][<start>-<stop>]{<namelist>} +\protected\def\blx@imc@printnames{% + \blx@listargs\blx@printnames} + +% {<format>}{<start>}{<stop>}{<namelist>} +\def\blx@printnames#1#2#3#4{% + \blx@imc@ifnameundef{#4} + {\blx@nounit} + {\blx@getformat\blx@thewrapperformat{nwd}{#1}{#4}% + \ifdefvoid\blx@thewrapperformat + {\blx@nounit} + {\blx@getformat\blx@theformat{nfd}{#1}{#4}% + \ifdefvoid\blx@theformat + {\blx@nounit} + {\blx@begunit + \blx@namesetup{#2}{#3}{#4}% + \blx@thewrapperformat{\expandafter\blx@nameparser\blx@thedata{}&}% + \blx@endunit}}}} + +\def\blx@namesetup#1#2#3{% + \def\currentname{#3}% + \c@listcount\@ne + \c@listtotal\csname c@#3\endcsname + \blx@namesetup@i{#3}% + \ifblank{#1} + {\c@liststart\@ne} + {\ifnum#1<\@ne + \c@liststart\@ne + \else + \c@liststart#1\relax + \fi}% + \ifblank{#2} + {\c@liststop\c@listtotal + \ifnum\c@liststop>\c@maxnames + \c@liststop\c@minnames + \ifnum\c@uniquelist>\c@liststop + \c@liststop\c@uniquelist + \fi + \fi} + {\ifnum#2>\c@listtotal + \c@liststop\c@listtotal + \else + \ifnum#2<\@ne + \c@liststop\@ne + \else + \c@liststop#2\relax + \fi + \fi}% + \blx@namecodes} + +\def\blx@namesetup@i#1{% + \expandafter\expandafter + \expandafter\blx@namesetup@ii\csname abx@name@#1\endcsname} + +\def\blx@namesetup@ii#1#2{% + \c@uniquelist\z@ + \ifblank{#1} + {} + {\setkeys{blx@opt@namelist}{#1}}% + \def\blx@thedata{#2}} + +% Biber-calculated info passed back to biblatex as an option in the .bbl +% unlike stuff defined with \DeclareBiblatexOption and +% \blx@DeclareBackendOption these are not 'real' options +\define@key{blx@opt@namelist}{ul}{\c@uniquelist#1\relax} + +\define@key{blx@opt@name}{un}{\c@uniquename#1\relax} +\define@key{blx@opt@name}{uniquepart}{\def\abx@field@uniquepart{#1}} +\define@key{blx@opt@name}{hash}{\edef\abx@field@hash{\detokenize{#1}}} + + +\newrobustcmd*{\bibinitperiod}{\adddot} +\newrobustcmd*{\bibinitdelim}{\addnbspace} +\newrobustcmd*{\bibinithyphendelim}{.\mbox{-}} +\newrobustcmd*{\bibnamedelima}{\addhighpenspace} +\newrobustcmd*{\bibnamedelimb}{\addlowpenspace} +\newrobustcmd*{\bibnamedelimc}{\addhighpenspace} +\newrobustcmd*{\bibnamedelimd}{\addlowpenspace} +\newrobustcmd*{\bibnamedelimi}{\addnbspace} + +% [<format>][<start>-<stop>]{<namelist>} +\protected\def\blx@imc@indexnames{% + \blx@listargs\blx@indexnames} + +% {<format>}{<start>}{<stop>}{<namelist>} +\def\blx@indexnames#1#2#3#4{% + \blx@imc@ifnameundef{#4} + {} + {\blx@getformat\blx@thewrapperformat{nxd}{#1}{#4}% + \ifdefvoid\blx@thewrapperformat + {} + {\blx@getformat\blx@theformat{nid}{#1}{#4}% + \ifdefvoid\blx@theformat + {} + {\begingroup + \blx@namesetup{#2}{#3}{#4}% + \blx@indexnamesetup + \expandafter\blx@nameparser\blx@thedata{}&% + \endgroup}}}} + +\def\blx@indexnamesetup{% + \let\bibinitperiod\bibindexinitperiod + \let\bibinitdelim\bibindexinitdelim + \let\bibinithyphendelim\bibindexinithyphendelim + \let\bibnamedelima\bibindexnamedelima + \let\bibnamedelimb\bibindexnamedelimb + \let\bibnamedelimc\bibindexnamedelimc + \let\bibnamedelimd\bibindexnamedelimd + \let\bibnamedelimi\bibindexnamedelimi} + +% {<name1>}{<name2>}{...} +\long\def\blx@nameparser#1{% + \ifblank{#1} + {\blx@namebreak} + {\ifnum\c@listcount<\c@liststart + \else + \blx@nameparser@i#1% + \fi + \advance\c@listcount\@ne + \ifnum\c@listcount>\c@liststop + \expandafter\blx@namebreak + \fi + \blx@nameparser}} + +% {name opts}{nameparts} +\long\def\blx@nameparser@i#1#2{% + \begingroup + \ifblank{#1} + {} + {\setkeys{blx@opt@name}{#1}}% + % reset all the nameparts to empty between names + \def\do##1{% + \cslet{namepart##1}\@empty + \cslet{namepart##1i}\@empty}% + \expandafter\docsvlist\expandafter{\blx@datamodel@constant@nameparts}% + \setkeys{blx@opt@namepart}{#2}% Extract nameparts information + % Still pass the nameparts forward for backwards compat + % When \nameparts is finally removed, remove the "{2}" and remove the + % arg to \blx@defformat@d in def of \blx@defnameformat + \blx@theformat{#2}% + \endgroup} + +\long\def\blx@namebreak#1&{} + +% [<format>][<start>-<stop>]{<plainlist>} +\protected\def\blx@imc@printlist{% + \blx@listargs\blx@printlist} + +% {<format>}{<start>}{<stop>}{<plainlist>} +\def\blx@printlist#1#2#3#4{% + \blx@imc@iflistundef{#4} + {\blx@nounit} + {\blx@getformat\blx@thewrapperformat{lwd}{#1}{#4}% + \ifdefvoid\blx@thewrapperformat + {\blx@nounit} + {\blx@getformat\blx@theformat{lfd}{#1}{#4}% + \ifdefvoid\blx@theformat + {\blx@nounit} + {\blx@begunit + \blx@listsetup{#2}{#3}{#4}% + \blx@thewrapperformat{\expandafter\blx@listparser\blx@thedata{}&}% + \blx@endunit}}}} + +\def\blx@listsetup#1#2#3{% + \def\currentlist{#3}% + \c@listcount\@ne + \expandafter\c@listtotal\csname c@#3\endcsname + \letcs\blx@thedata{abx@list@#3}% + \ifblank{#1} + {\c@liststart\@ne} + {\ifnum#1<\@ne + \c@liststart\@ne + \else + \c@liststart#1\relax + \fi}% + \ifblank{#2} + {\c@liststop\c@listtotal + \ifnum\c@listtotal>\c@maxitems + \c@liststop\c@minitems + \fi} + {\ifnum#2>\c@listtotal + \c@liststop\c@listtotal + \else + \ifnum#2<\@ne + \c@liststop\@ne + \else + \c@liststop#2\relax + \fi + \fi}} + +% [<format>][<start>-<stop>]{<plainlist>} +\protected\def\blx@imc@indexlist{% + \blx@listargs\blx@indexlist} + +% {<format>}{<start>}{<stop>}{<plainlist>} +\def\blx@indexlist#1#2#3#4{% + \blx@imc@iflistundef{#4} + {} + {\blx@getformat\blx@thewrapperformat{lxd}{#1}{#4}% + \ifdefvoid\blx@thewrapperformat + {} + {\blx@getformat\blx@theformat{lid}{#1}{#4}% + \ifdefvoid\blx@theformat + {} + {\begingroup + \blx@listsetup{#2}{#3}{#4}% + \expandafter\blx@listparser\blx@thedata{}&% + \endgroup}}}} + +% {<item1>}{<item2>}{...} +\long\def\blx@listparser#1{% + \ifblank{#1} + {\blx@listbreak} + {\ifnum\c@listcount<\c@liststart + \else + \blx@theformat{#1}% + \fi + \advance\c@listcount\@ne + \ifnum\c@listcount>\c@liststop + \expandafter\blx@listbreak + \fi + \blx@listparser}} + +\long\def\blx@listbreak#1&{} + +% <*>{<key>}{<code>} +\protected\def\blx@imc@entrydata{% + \@ifstar + {\blx@xsanitizeafter{\blx@imc@entrydata@i\blx@saveentry}} + {\blx@xsanitizeafter{\blx@imc@entrydata@i{}}}} + +\long\def\blx@imc@entrydata@i#1#2#3{% + \blx@getrefcontext{#2}% + \blx@ifdata{#2} + {\begingroup + #1% + \blx@resetdata + \blx@getdata{#2}% + \blx@entrysetcount + \blx@setoptions@type\abx@field@entrytype + \blx@setoptions@entry + \addtocounter{instcount}\@ne + \blx@execute + \blx@beglangbib#3\blx@endlangbib + \endgroup} + {}} + +\protected\def\blx@imc@entryset#1#2{% + \blx@imc@iffieldundef{entrykey} + {} + {\begingroup + \long\def\blx@entryset@precode{#1}% + \long\def\blx@entryset@postcode{#2}% + \let\finentry\blx@finentry@inset + \let\do\blx@entryset + \blx@imc@docsvfield{entryset}% + \endgroup}} + +\def\blx@entryset#1{% + \blx@ifdata{#1} + {\begingroup + \blx@imc@clearlist{pageref}% + \blx@getdata{#1}% + \blx@setoptions@type\abx@field@entrytype + \blx@setoptions@entry + \global\blx@entrysetcounter\@ne + \edef\abx@field@entrysetcount{\the\blx@entrysetcounter}% + \blx@execute + \blx@beglangbib + \blx@begunit + \blx@anchor + \blx@entryset@precode + \blx@driver{\blx@imc@thefield{entrytype}}% + \blx@entryset@postcode + \blx@endunit + \blx@endlangbib + \endgroup} + {}% + \let\do\blx@entryset@i} + +\def\blx@entryset@i#1{% + \blx@ifdata{#1} + {\begingroup + \blx@resetdata + \blx@getdata{#1}% + \blx@setoptions@type\abx@field@entrytype + \blx@setoptions@entry + \global\advance\blx@entrysetcounter\@ne + \edef\abx@field@entrysetcount{\the\blx@entrysetcounter}% + \addtocounter{instcount}\@ne + \blx@execute + \blx@beglangbib + \blx@begunit + \blx@anchor + \blx@entryset@precode + \blx@driver{\blx@imc@thefield{entrytype}}% + \blx@entryset@postcode + \blx@endunit + \blx@endlangbib + \endgroup} + {\blx@nounit}} + +\blx@regimcs{% + \printtext \printfield \printlist \printnames \printfile + \indexfield \indexlist \indexnames \entrydata \entryset} + +%% Localization + +% [<wrapper>]{<string>} +\newrobustcmd*{\blx@imc@bibstring}[2][\@firstofone]{% + \blx@bibstring{#1}{\abx@str}{#2}} + +\newrobustcmd*{\blx@imc@biblstring}[2][\@firstofone]{% + \blx@bibstring{#1}{abx@lstr}{#2}} + +\newrobustcmd*{\blx@imc@bibsstring}[2][\@firstofone]{% + \blx@bibstring{#1}{abx@sstr}{#2}} + +\def\blx@bibstringsimple{% + \let\bibstring\blx@imc@bibxstring + \let\biblstring\blx@imc@bibxlstring + \let\bibsstring\blx@imc@bibxsstring} + +\def\blx@bibstringnormal{% + \let\bibstring\blx@imc@bibstring + \let\biblstring\blx@imc@biblstring + \let\bibsstring\blx@imc@bibsstring} + +\protected\def\blx@bibstring#1#2#3{% + \blx@begunit + \blx@hyphenreset + \blx@bibstringsimple + \lowercase{\edef\blx@tempa{#3}}% + \ifcsundef{#2@\blx@tempa} + {\blx@warn@nostring\blx@tempa + \blx@endnounit} + {\blx@imc@ifcapital + {#1{\MakeCapital{\csuse{#2@\blx@tempa}}}} + {#1{\csuse{#2@\blx@tempa}}}% + \blx@endunit}} + +% [<wrapper>]{<string>} +\newrobustcmd*{\blx@imc@bibcpstring}[2][\@firstofone]{% + \blx@bibcpstring{#1}{\abx@str}{#2}} + +\newrobustcmd*{\blx@imc@bibcplstring}[2][\@firstofone]{% + \blx@bibcpstring{#1}{abx@lstr}{#2}} + +\newrobustcmd*{\blx@imc@bibcpsstring}[2][\@firstofone]{% + \blx@bibcpstring{#1}{abx@sstr}{#2}} + +\protected\def\blx@bibcpstring#1#2#3{% + \blx@begunit + \blx@hyphenreset + \blx@bibstringsimple + \lowercase{\edef\blx@tempa{#3}}% + \ifcsundef{#2@\blx@tempa} + {\blx@warn@nostring\blx@tempa + \blx@endnounit} + {#1{\MakeCapital{\csuse{#2@\blx@tempa}}}% + \blx@endunit}} + +% [<wrapper>]{<string>} +\newrobustcmd*{\blx@imc@biblcstring}[2][\@firstofone]{% + \blx@biblcstring{#1}{\abx@str}{#2}} + +\newrobustcmd*{\blx@imc@biblclstring}[2][\@firstofone]{% + \blx@biblcstring{#1}{abx@lstr}{#2}} + +\newrobustcmd*{\blx@imc@biblcsstring}[2][\@firstofone]{% + \blx@biblcstring{#1}{abx@sstr}{#2}} + +\protected\def\blx@biblcstring#1#2#3{% + \blx@begunit + \blx@hyphenreset + \blx@bibstringsimple + \lowercase{\edef\blx@tempa{#3}}% + \ifcsundef{#2@\blx@tempa} + {\blx@warn@nostring\blx@tempa + \blx@endnounit} + {#1{\MakeLowercase{\csuse{#2@\blx@tempa}}}% + \blx@endunit}} + +% [<wrapper>]{<string>} +\newrobustcmd*{\blx@imc@bibucstring}[2][\@firstofone]{% + \blx@bibucstring{#1}{\abx@str}{#2}} + +\newrobustcmd*{\blx@imc@bibuclstring}[2][\@firstofone]{% + \blx@bibucstring{#1}{abx@lstr}{#2}} + +\newrobustcmd*{\blx@imc@bibucsstring}[2][\@firstofone]{% + \blx@bibucstring{#1}{abx@sstr}{#2}} + +\protected\def\blx@bibucstring#1#2#3{% + \blx@begunit + \blx@hyphenreset + \blx@bibstringsimple + \lowercase{\edef\blx@tempa{#3}}% + \ifcsundef{#2@\blx@tempa} + {\blx@warn@nostring\blx@tempa + \blx@endnounit} + {#1{\MakeUppercase{\csuse{#2@\blx@tempa}}}% + \blx@endunit}} + +% {<string>} +\def\blx@imc@bibxstring#1{% + \blx@bibxstring{\abx@str}{#1}} + +\def\blx@imc@bibxlstring#1{% + \blx@bibxstring{abx@lstr}{#1}} + +\def\blx@imc@bibxsstring#1{% + \blx@bibxstring{abx@sstr}{#1}} + +\def\blx@bibxstring#1#2{% + \ifcsundef{#1@#2} + {\protect\blx@warn@nostring{#2}} + {\csuse{#1@#2}}} + +% {<string>}{<true>}{<false>} +\def\blx@imc@ifbibstring#1{% + \ifcsundef{\abx@str @\detokenize{#1}} + {\@secondoftwo} + {\@firstoftwo}} + +\def\blx@imc@ifbibxstring#1{% + \blx@xsanitizeafter\ifcsundef{\abx@str @#1} + {\@secondoftwo} + {\@firstoftwo}} + +% {<field>}{<true>}{<false>} +\def\blx@imc@iffieldbibstring#1{% + \blx@imc@iffieldundef{#1} + {\@secondoftwo} + {\ifcsundef{\abx@str @\detokenize\expandafter + \expandafter\expandafter{% + \csname abx@field@#1\endcsname}} + {\@secondoftwo} + {\@firstoftwo}}} + +% {<field>}{<string>}{<true>}{<false>} +\def\blx@imc@iffieldplusstringbibstring#1#2{% + \blx@imc@iffieldundef{#1} + {\@secondoftwo} + {\ifcsundef{\abx@str @\detokenize\expandafter + \expandafter\expandafter{% + \csname abx@field@#1\endcsname}#2} + {\@secondoftwo} + {\@firstoftwo}}} + +\blx@regimcs{% + \bibstring \biblstring \bibsstring + \bibxstring \bibxlstring \bibxsstring + \bibcpstring \bibcplstring \bibcpsstring + \biblcstring \biblclstring \biblcsstring + \bibucstring \bibuclstring \bibucsstring + \ifbibstring \ifbibxstring \iffieldbibstring + \iffieldplusstringbibstring} + +\let\blx@hook@uc\relax +\let\blx@hook@lc\relax + +\AtEndPreamble{% + \toggletrue{blx@tempa}% + \toggletrue{blx@tempb}% + \expandafter\patchcmd\csname MakeUppercase \endcsname + {\protected@edef} + {\blx@hook@uc\protected@edef} + {\togglefalse{blx@tempa}} + {}% + \expandafter\patchcmd\csname MakeLowercase \endcsname + {\protected@edef} + {\blx@hook@lc\protected@edef} + {\togglefalse{blx@tempb}} + {}% + \@ifpackageloaded{textcase} + {\expandafter\patchcmd\csname MakeUppercase \endcsname + {\def\i} + {\blx@hook@uc\def\i} + {\togglefalse{blx@tempa}} + {}% + \expandafter\patchcmd\csname MakeLowercase \endcsname + {\@uclcnotmath{}} + {\@uclcnotmath{\blx@hook@lc}} + {\togglefalse{blx@tempb}} + {}% + \expandafter\patchcmd\csname MakeTextUppercase \endcsname + {\def\i} + {\blx@hook@uc\def\i} + {} + {}% + \expandafter\patchcmd\csname MakeTextLowercase \endcsname + {\@uclcnotmath{}} + {\@uclcnotmath{\blx@hook@lc}} + {} + {}} + {}% + \iftoggle{blx@tempa}{\blx@err@patch{\string\MakeUppercase}}{}% + \iftoggle{blx@tempb}{\blx@err@patch{\string\MakeLowercase}}{}% +} + +\appto\blx@blxinit{% + \def\blx@hook@uc{% + \def\bibstring{\blx@imc@bibucstring}% + \def\biblstring{\blx@imc@bibuclstring}% + \def\bibsstring{\blx@imc@bibucsstring}% + \def\biblcstring{\blx@imc@bibucstring}% + \def\biblclstring{\blx@imc@bibuclstring}% + \def\biblcsstring{\blx@imc@bibucsstring}% + \def\bibcpstring{\blx@imc@bibucstring}% + \def\bibcplstring{\blx@imc@bibuclstring}% + \def\bibcpsstring{\blx@imc@bibucsstring}}% + \def\blx@hook@lc{% + \def\bibstring{\blx@imc@biblcstring}% + \def\biblstring{\blx@imc@biblclstring}% + \def\bibsstring{\blx@imc@biblcsstring}% + \def\bibucstring{\blx@imc@biblcstring}% + \def\bibuclstring{\blx@imc@biblclstring}% + \def\bibucsstring{\blx@imc@biblcsstring}% + \def\bibcpstring{\blx@imc@biblcstring}% + \def\bibcplstring{\blx@imc@biblclstring}% + \def\bibcpsstring{\blx@imc@biblcsstring}}} + +\def\abx@dostrings{% + \do{bibliography}% + \do{references}% + \do{shorthands}% + \do{editor}% + \do{editors}% + \do{compiler}% + \do{compilers}% + \do{redactor}% + \do{redactors}% + \do{reviser}% + \do{revisers}% + \do{founder}% + \do{founders}% + \do{continuator}% + \do{continuators}% + \do{collaborator}% + \do{collaborators}% + \do{translator}% + \do{translators}% + \do{commentator}% + \do{commentators}% + \do{annotator}% + \do{annotators}% + \do{commentary}% + \do{annotations}% + \do{introduction}% + \do{foreword}% + \do{afterword}% + \do{editortr}% + \do{editorstr}% + \do{editorco}% + \do{editorsco}% + \do{editoran}% + \do{editorsan}% + \do{editorin}% + \do{editorsin}% + \do{editorfo}% + \do{editorsfo}% + \do{editoraf}% + \do{editorsaf}% + \do{editortrco}% + \do{editorstrco}% + \do{editortran}% + \do{editorstran}% + \do{editortrin}% + \do{editorstrin}% + \do{editortrfo}% + \do{editorstrfo}% + \do{editortraf}% + \do{editorstraf}% + \do{editorcoin}% + \do{editorscoin}% + \do{editorcofo}% + \do{editorscofo}% + \do{editorcoaf}% + \do{editorscoaf}% + \do{editoranin}% + \do{editorsanin}% + \do{editoranfo}% + \do{editorsanfo}% + \do{editoranaf}% + \do{editorsanaf}% + \do{editortrcoin}% + \do{editorstrcoin}% + \do{editortrcofo}% + \do{editorstrcofo}% + \do{editortrcoaf}% + \do{editorstrcoaf}% + \do{editortranin}% + \do{editorstranin}% + \do{editortranfo}% + \do{editorstranfo}% + \do{editortranaf}% + \do{editorstranaf}% + \do{translatorco}% + \do{translatorsco}% + \do{translatoran}% + \do{translatorsan}% + \do{translatorin}% + \do{translatorsin}% + \do{translatorfo}% + \do{translatorsfo}% + \do{translatoraf}% + \do{translatorsaf}% + \do{translatorcoin}% + \do{translatorscoin}% + \do{translatorcofo}% + \do{translatorscofo}% + \do{translatorcoaf}% + \do{translatorscoaf}% + \do{translatoranin}% + \do{translatorsanin}% + \do{translatoranfo}% + \do{translatorsanfo}% + \do{translatoranaf}% + \do{translatorsanaf}% + \do{byauthor}% + \do{byeditor}% + \do{bycompiler}% + \do{byredactor}% + \do{byreviser}% + \do{byreviewer}% + \do{byfounder}% + \do{bycontinuator}% + \do{bycollaborator}% + \do{bytranslator}% + \do{bycommentator}% + \do{byannotator}% + \do{withcommentator}% + \do{withannotator}% + \do{withintroduction}% + \do{withforeword}% + \do{withafterword}% + \do{organizer}% + \do{organizers}% + \do{byorganizer}% + \do{byeditortr}% + \do{byeditorco}% + \do{byeditoran}% + \do{byeditorin}% + \do{byeditorfo}% + \do{byeditoraf}% + \do{byeditortrco}% + \do{byeditortran}% + \do{byeditortrin}% + \do{byeditortrfo}% + \do{byeditortraf}% + \do{byeditorcoin}% + \do{byeditorcofo}% + \do{byeditorcoaf}% + \do{byeditoranin}% + \do{byeditoranfo}% + \do{byeditoranaf}% + \do{byeditortrcoin}% + \do{byeditortrcofo}% + \do{byeditortrcoaf}% + \do{byeditortranin}% + \do{byeditortranfo}% + \do{byeditortranaf}% + \do{bytranslatorco}% + \do{bytranslatoran}% + \do{bytranslatorin}% + \do{bytranslatorfo}% + \do{bytranslatoraf}% + \do{bytranslatorcoin}% + \do{bytranslatorcofo}% + \do{bytranslatorcoaf}% + \do{bytranslatoranin}% + \do{bytranslatoranfo}% + \do{bytranslatoranaf}% + \do{and}% + \do{andothers}% + \do{andmore}% + \do{volume}% + \do{volumes}% + \do{involumes}% + \do{part}% + \do{jourvol}% + \do{jourser}% + \do{newseries}% + \do{oldseries}% + \do{edition}% + \do{reprint}% + \do{reprintof}% + \do{reprintas}% + \do{reprintfrom}% + \do{reviewof}% + \do{translationof}% + \do{translationas}% + \do{translationfrom}% + \do{origpubas}% + \do{origpubin}% + \do{astitle}% + \do{bypublisher}% + \do{nodate}% + \do{page}% + \do{pages}% + \do{column}% + \do{columns}% + \do{line}% + \do{lines}% + \do{verse}% + \do{verses}% + \do{section}% + \do{sections}% + \do{paragraph}% + \do{paragraphs}% + \do{pagetotal}% + \do{pagetotals}% + \do{columntotal}% + \do{columntotals}% + \do{linetotal}% + \do{linetotals}% + \do{versetotal}% + \do{versetotals}% + \do{sectiontotal}% + \do{sectiontotals}% + \do{paragraphtotal}% + \do{paragraphtotals}% + \do{in}% + \do{inseries}% + \do{ofseries}% + \do{book}% + \do{issue}% + \do{number}% + \do{chapter}% + \do{bathesis}% + \do{mathesis}% + \do{phdthesis}% + \do{candthesis}% + \do{resreport}% + \do{techreport}% + \do{software}% + \do{datacd}% + \do{audiocd}% + \do{version}% + \do{url}% + \do{urlfrom}% + \do{urlseen}% + \do{file}% + \do{inpreparation}% + \do{submitted}% + \do{inpress}% + \do{prepublished}% + \do{forthcoming}% + \do{library}% + \do{abstract}% + \do{annotation}% + \do{citedas}% + \do{seenote}% + \do{quotedin}% + \do{opcit}% + \do{loccit}% + \do{ibidem}% + \do{idem}% + \do{idemsf}% + \do{idemsm}% + \do{idemsn}% + \do{idempf}% + \do{idempm}% + \do{idempn}% + \do{idempp}% + \do{confer}% + \do{sequens}% + \do{sequentes}% + \do{passim}% + \do{see}% + \do{seealso}% + \do{backrefpage}% + \do{backrefpages}% + \do{thiscite}% + \do{january}% + \do{february}% + \do{march}% + \do{april}% + \do{may}% + \do{june}% + \do{july}% + \do{august}% + \do{september}% + \do{october}% + \do{november}% + \do{december}% + \do{langamerican}% + \do{langbrazilian}% + \do{langbulgarian}% + \do{langcatalan}% + \do{langcroatian}% + \do{langczech}% + \do{langdanish}% + \do{langdutch}% + \do{langenglish}% + \do{langestonian}% + \do{langfinnish}% + \do{langfrench}% + \do{langgalician}% + \do{langgerman}% + \do{langgreek}% + \do{langhungarian}% + \do{langitalian}% + \do{langjapanese}% + \do{langlatin}% + \do{langlatvian}% + \do{langnorwegian}% + \do{langpolish}% + \do{langportuguese}% + \do{langrussian}% + \do{langslovak}% + \do{langslovene}% + \do{langspanish}% + \do{langswedish}% + \do{langukrainian}% + \do{fromamerican}% + \do{frombrazilian}% + \do{frombulgarian}% + \do{fromcatalan}% + \do{fromcroatian}% + \do{fromczech}% + \do{fromdanish}% + \do{fromdutch}% + \do{fromenglish}% + \do{fromestonian}% + \do{fromfinnish}% + \do{fromfrench}% + \do{fromgalician}% + \do{fromgerman}% + \do{fromgreek}% + \do{fromhungarian}% + \do{fromitalian}% + \do{fromjapanese}% + \do{fromlatin}% + \do{fromlatvian}% + \do{fromnorwegian}% + \do{frompolish}% + \do{fromportuguese}% + \do{fromrussian}% + \do{fromslovak}% + \do{fromslovene}% + \do{fromspanish}% + \do{fromswedish}% + \do{fromukrainian}% + \do{countryde}% + \do{countryep}% + \do{countryeu}% + \do{countryfr}% + \do{countryuk}% + \do{countryus}% + \do{patent}% + \do{patentde}% + \do{patenteu}% + \do{patentfr}% + \do{patentuk}% + \do{patentus}% + \do{patreq}% + \do{patreqde}% + \do{patreqeu}% + \do{patreqfr}% + \do{patrequk}% + \do{patrequs}% + \do{commonera}% + \do{beforecommonera}% + \do{annodomini}% + \do{beforechrist}% + \do{circa}% + \do{spring}% + \do{summer}% + \do{autumn}% + \do{winter}% + \do{am}% + \do{pm}% +} + +\newrobustcmd*{\NewBibliographyString}[1]{% + \forcsvlist\blx@newstring{#1}} + +\def\blx@newstring#1{% + \ifcsundef{KV@blx@lbx@#1} + {\gappto\abx@dostrings{\do{#1}}% + \csgdef{KV@blx@lbx@#1}##1{\blx@defstring{#1}{##1}}} + {}} + +% in *.cbx/bbx/tex: <key> = {<string>}, +% in *.lbx: <key> = {{<longstring>}{<abbrevstring>}}, +\def\do#1{\define@key{blx@lbx}{#1}{\blx@defstring{#1}{##1}}} +\abx@dostrings + +% in *.cbx/bbx/tex: (implicit) +% in *.lbx: inherit = {<language>}, +\define@key{blx@lbx}{inherit}{% + \blx@lbxinput@strings{#1}{}{\blx@err@nolang{#1}}% + \csuse{abx@strings@#1}} + +\def\blx@cfg@defstring#1#2{% + \csdef{abx@lstr@#1}{#2}% + \csdef{abx@sstr@#1}{#2}} + +\def\blx@lbx@defstring#1#2{% + \blx@lbx@defstring@i{#1}#2} +\def\blx@lbx@defstring@i#1#2#3{% + \csdef{abx@lstr@#1}{#2}% + \csdef{abx@sstr@#1}{#3}} + +% {<language>} +\def\blx@lbxcheck#1{% + \ifcsdef{blx@lng@#1} + {\expandafter\expandafter\expandafter\IfFileExists + \expandafter\expandafter\expandafter{% + \csname blx@lng@#1\endcsname.lbx} + {} + {\blx@err@nolang{#1}}} + {\IfFileExists{#1.lbx} + {} + {\blx@err@nolang{#1}}}} + +% {<language>}{<definitions>} +\newrobustcmd*{\DefineBibliographyExtras}[2]{% + \blx@lbxcheck{#1}% + \csgappto{blx@hook@extras@#1}{% + \blx@defbibextras{#1}{#2}}} +\@onlypreamble\DefineBibliographyExtras + +\newrobustcmd*{\UndefineBibliographyExtras}[2]{% + \blx@lbxcheck{#1}% + \csgappto{blx@hook@noextras@#1}{% + \blx@undefbibextras{#1}{#2}}} +\@onlypreamble\UndefineBibliographyExtras + +\def\blx@defbibextras#1{\csgappto{abx@extras@#1}} +\def\blx@undefbibextras#1{\csgappto{abx@noextras@#1}} + +% {<language>}{<language>} +\def\blx@letbibextras#1#2{% + \blx@lbxinput@extras{#2}{}{\blx@err@nolang{#2}}% + \global\csletcs{abx@extras@#1}{abx@extras@#2} + \global\csletcs{abx@noextras@#1}{abx@noextras@#2}}% + +% {<language>}{<strings>} +\newrobustcmd*{\DefineBibliographyStrings}[2]{% + \blx@lbxcheck{#1}% + \csgappto{blx@hook@strings@#1}{% + \begingroup + \let\blx@defstring\blx@cfg@defstring + \blx@defbibstrings{#1}{#2}% + \endgroup}} +\@onlypreamble\DefineBibliographyStrings + +\def\blx@defbibstrings#1#2{% + \def\do##1{\csundef{abx@lstr@##1}\csundef{abx@sstr@##1}}% + \abx@dostrings + \csuse{abx@strings@#1}% + \setkeys{blx@lbx}{#2}% + \let\do\blx@defbibstrings@i + \csxdef{abx@strings@#1}{\abx@dostrings}% + \csgappto{abx@strings@#1}{% + \ifcsdef{\abx@str @bibliography} + {\letcs\bibname{\abx@str @bibliography}} + {\let\bibname\@empty}% + \ifcsdef{\abx@str @references} + {\letcs\refname{\abx@str @references}} + {\let\refname\@empty}% + \ifcsdef{\abx@str @shorthands} + {\letcs\biblistname{\abx@str @shorthands}} + {\let\biblistname\@empty}}} + +\def\blx@defbibstrings@i#1{% + \ifcsdef{abx@lstr@#1} + {\def\expandafter\noexpand\csname abx@lstr@#1\endcsname{% + \csexpandonce{abx@lstr@#1}}} + {\undef\expandafter\noexpand\csname abx@lstr@#1\endcsname}% + \ifcsdef{abx@sstr@#1} + {\def\expandafter\noexpand\csname abx@sstr@#1\endcsname{% + \csexpandonce{abx@sstr@#1}}} + {\undef\expandafter\noexpand\csname abx@sstr@#1\endcsname}} + +% {<language>}{<language>} +\def\blx@letbibstrings#1#2{% + \blx@lbxinput@strings{#2}{}{\blx@err@nolang{#2}}% + \global\csletcs{abx@strings@#1}{abx@strings@#2}}% + +% {<language>}{<exceptions>} +\newrobustcmd*{\DefineHyphenationExceptions}[2]{% + \ifcsundef{l@#1} + {\blx@warn@nohyph{#1}} + {}% + \csgappto{blx@hook@hyph@#1}{\blx@hyphexcept{#1}{#2}}} +\@onlypreamble\DefineHyphenationExceptions + +\def\blx@hyphexcept#1#2{% + \ifcsundef{l@#1} + {\blx@warn@nohyph{#1}} + {\begingroup + \language\csname l@#1\endcsname\relax + \hyphenation{#2}% + \endgroup}} + +% {<mapping suffix>} +\newrobustcmd*{\DeclareLanguageMappingSuffix}[1]{% + \gdef\blx@lng@suff{#1}} +\@onlypreamble\DeclareLanguageMappingSuffix +\let\blx@lng@suff\@empty + +% {<language>}{<mapping>} +\newrobustcmd*{\DeclareLanguageMapping}[2]{% + \csgdef{blx@lng@#1}{#2}% + \csgdef{blx@lng@explicit@#1}{#2}} +\@onlypreamble\DeclareLanguageMapping + +% to avoid copying, these commands simply redefine the input handlers and +% process and postprocess code +% {<language>}{<success>}{<failure>} +\def\blx@lbxinput#1{% + \csletcs{blx@lbx@input@handler}{blx@lbx@input@handler@once}% + \csletcs{blx@lbx@input@process}{blx@lbx@input@process@all}% + \csletcs{blx@lbx@input@postprocess}{blx@lbx@input@postprocess@all}% + \blx@lbxinput@i{#1}} + +\def\blx@lbxinput@strings#1{% + \csletcs{blx@lbx@input@handler}{blx@lbx@input@handler@simple}% + \csletcs{blx@lbx@input@process}{blx@lbx@input@process@strings}% + \csletcs{blx@lbx@input@postprocess}{blx@lbx@input@postprocess@strings}% + \blx@lbxinput@i{#1}} + +\def\blx@lbxinput@extras#1{% + \csletcs{blx@lbx@input@handler}{blx@lbx@input@handler@simple}% + \csletcs{blx@lbx@input@process}{blx@lbx@input@process@extras}% + \csletcs{blx@lbx@input@postprocess}{blx@lbx@input@postprocess@extras}% + \blx@lbxinput@i{#1}} + +\def\blx@lbxinput@i#1{% + \ifcsundef{blx@nolbxrecurse@#1} + {\ifcsdef{blx@lng@explicit@#1} + {\global\csletcs{blx@lng@#1}{blx@lng@explicit@#1}} + {\ifdefempty\blx@lng@suff + {} + {\csgdef{blx@lng@#1}{#1\blx@lng@suff}}}} + {}% + \blx@lbxinput@ii{#1}} + +\def\blx@lbxinput@ii#1{% + \ifcsdef{blx@lng@#1} + {\expandafter\expandafter\expandafter\blx@lbxinput@iii + \expandafter\expandafter\expandafter{% + \csname blx@lng@#1\endcsname}{#1}} + {\blx@lbxinput@iv{#1}{#1}{language '#1'}}} + +% {<mapping>}{<language>} +\def\blx@lbxinput@iii#1#2{% + \global\csundef{blx@lng@#2}% + \IfFileExists{#1.lbx} + {\blx@lbxinput@iv{#2}{#1}{language '#2' -> '#1'}} + {\ifcsdef{blx@suffmaptried@#2} + {} + {\blx@warning@noline{% + File '#1.lbx' not found!\MessageBreak + Ignoring mapping '#2' -> '#1'}% + \global\cslet{blx@suffmaptried@#2}\@empty}% + \blx@lbxinput@iv{#2}{#2}{language '#2'}}} + +% .lbx files must be read with one of the two following commands, +% do not use \blx@inputonce. Only the commands here make sure that the file +% is read as many times as necessary. +% blx@file@lbx@simple@#1 only blocks the file being added to the file list +% blx@file@lbx@once@#1 blocks a file from being loaded again by the input-once +% routine +% {<file>}{<message>}{<preload>}{<postload>}{<success>}{<failure>} +\protected\long\def\blx@lbx@input@handler@simple#1#2#3#4#5#6{% + \blx@info@noline{Trying to load #2..}% + \IfFileExists{#1} + {\blx@info@noline{... file '#1' found}% + #3\@@input\@filef@und#4#5% + \ifcsundef{blx@file@lbx@simple@#1} + {\listxadd\blx@list@req@stat{#1}% + \@addtofilelist{#1}% + \global\cslet{blx@file@lbx@simple@#1}\@empty} + {}} + {\blx@info@noline{... file '#1' not found}#6}} + +% {<file>}{<message>}{<preload>}{<postload>}{<success>}{<failure>} +\protected\long\def\blx@lbx@input@handler@once#1#2#3#4#5#6{% + \ifcsundef{blx@file@lbx@once@#1} + {\blx@info@noline{Trying to load #2..}% + \IfFileExists{#1} + {\blx@info@noline{... file '#1' found}% + #3\@@input\@filef@und#4#5% + \ifcsundef{blx@file@lbx@simple@#1} + {\listxadd\blx@list@req@stat{#1}% + \@addtofilelist{#1}} + {}} + {\blx@info@noline{... file '#1' not found}#6}% + \global\cslet{blx@file@lbx@once@#1}\@empty + \global\cslet{blx@file@lbx@simple@#1}\@empty} + {#5}} + +\def\blx@lbx@input@process@strings#1{% + \global\cslet{abx@strings@#1}\@empty + \def\InheritBibliographyStrings{% + \blx@letbibstrings{#1}}% + \def\DeclareBibliographyStrings##1{% + \begingroup + \let\blx@defstring\blx@lbx@defstring + \blx@defbibstrings{#1}{##1}% + \endgroup}} + +\def\blx@lbx@input@process@extras#1{% + \global\cslet{abx@extras@#1}\@empty + \global\cslet{abx@noextras@#1}\@empty + \def\InheritBibliographyExtras{\blx@letbibextras{#1}}% + \def\DeclareBibliographyExtras{\blx@defbibextras{#1}}% + \def\UndeclareBibliographyExtras{\blx@undefbibextras{#1}}} + +\def\blx@lbx@input@process@all#1{% + \blx@lbx@input@process@strings{#1}% + \blx@lbx@input@process@extras{#1}% + \def\DeclareHyphenationExceptions{\blx@hyphexcept{#1}}} + +\def\blx@lbx@input@postprocess@strings#1{% + \csuse{blx@hook@strings@#1}} + +\def\blx@lbx@input@postprocess@extras#1{% + \csuse{blx@hook@extras@#1}% + \csuse{blx@hook@noextras@#1}} + +\def\blx@lbx@input@postprocess@all#1{% + \blx@lbx@input@postprocess@strings{#1}% + \blx@lbx@input@postprocess@extras{#1}% + \csuse{blx@hook@hyph@#1}% + \blx@maplang{#1}{#1}} + +% {<language>}{<lbxfile>}{<message>} +\def\blx@lbxinput@iv#1#2#3{% + \begingroup + \blx@lbx@input@handler{#2.lbx}{#3} + {\let\InheritBibliographyStrings\@gobble + \let\DeclareBibliographyStrings\@gobble + \let\InheritBibliographyExtras\@gobble + \let\DeclareBibliographyExtras\@gobble + \let\UndeclareBibliographyExtras\@gobble + \blx@lbx@input@process{#1}% + \begingroup + \cslet{blx@nolbxrecurse@#1}\@empty + \blx@saneccodes + \makeatletter} + {\endgroup + \blx@lbx@input@postprocess{#1}} + {\aftergroup\@firstoftwo} + {\aftergroup\@secondoftwo}% + \endgroup} + +% {<language>} +\def\blx@langsetup#1{% + \blx@lbxinput{#1} + {\edef\blx@languagename{#1}} + {\blx@warning + {Language '#1' not supported.\MessageBreak + Using fallback language '\blx@languagename'}% + \blx@lbxinput{\blx@languagename} + {\blx@maplang{#1}{\blx@languagename}} + {\blx@err@nolang{\blx@languagename}}}} + +% auxiliary macros + +% {<field base name>} +\newrobustcmd*{\mkdaterangeshort}{% + \mkdaterangefull{short}} + +\newrobustcmd*{\mkdaterangelong}{% + \mkdaterangefull{long}} + +\newrobustcmd*{\mkdaterangeterse}{% + \mkdaterangetrunc{short}} + +\newrobustcmd*{\mkdaterangecomp}{% + \mkdaterangetrunc{long}} + +\newrobustcmd*{\mkdaterangeshortextra}{% + \mkdaterangefullextra{short}} + +\newrobustcmd*{\mkdaterangelongextra}{% + \mkdaterangefullextra{long}} + +\newrobustcmd*{\mkdaterangeterseextra}{% + \mkdaterangetruncextra{short}} + +\newrobustcmd*{\mkdaterangecompextra}{% + \mkdaterangetruncextra{long}} + +% calls to \blx@metadateinfo should be grouped to avoid name clashes +\def\blx@metadateinfo#1{% + \letcs\ifdateera{if#1dateera}% + \letcs\ifenddateera{if#1enddateera}% + \letcs\ifdatecirca{if#1datecirca}% + \letcs\ifenddatecirca{if#1enddatecirca}% + \letcs\ifdatejulian{if#1datejulian}% + \letcs\ifenddatejulian{if#1enddatejulian}% + \letcs\ifdateuncertain{if#1dateuncertain}% + \letcs\ifenddateuncertain{if#1enddateuncertain}% + \letcs\ifdateunknown{if#1dateunknown}% + \letcs\ifenddateunknown{if#1enddateunknown}} + +\expandafter\newrobustcmd\expandafter*\csname mktimerange24h\endcsname{% + \mktimerange{24h}} + +\expandafter\newrobustcmd\expandafter*\csname mktimerange12h\endcsname{% + \mktimerange{12h}} + +\expandafter\newrobustcmd\expandafter*\csname mktimerange24hcomp\endcsname[1]{% + \iffieldundef{#1hour} + {} + {\ifboolexpr{test {\iffieldundef{#1endhour}} + or + test {\iffieldequalstr{#1endhour}{}}} + {\mktimerange{24h}{#1}} + {\iffieldsequal{#1hour}{#1endhour} + % 14:xx:xx 14:xx:xx + {\iffieldsequal{#1minute}{#1endminute} + % 14:13:xx 14:13:xx + {\toggletrue{blx@seconds}% + \printtext[#1time]{% + \csuse{mkbibtime24h}{#1hour}{#1minute}{#1second}{}% + \bibtimerangesep + \csuse{mkbibtime24h}{}{}{#1endsecond}{}}} + % 14:13:xx 14:14:xx + {\toggletrue{blx@seconds}% + \printtext[#1time]{\csuse{mkbibtime24h}{#1hour}{#1minute}{}{}% + \bibtimerangesep + \csuse{mkbibtime24h}{}{#1endminute}{}{}}}} + % 14:xx:xx 15:xx:xx + {\mktimerange{24h}{#1}}}}} + +% {<24h|24hcomp|12h>}{<datetype>} +\newrobustcmd*{\mktimerange}[2]{% + \iffieldundef{#2hour} + {\blx@nounit} + {\blx@timepre{#2}{}% + \printtext[#2time]{\csuse{mkbibtime#1}{#2hour}{#2minute}{#2second}{#2timezone}% + \iffieldundef{#2endhour} + {} + {\blx@timepre{#2}{end}% + \iffieldequalstr{#2endhour}{} + {\mbox{\bibtimerangesep}} + {\bibtimerangesep + \csuse{mkbibtime#1}{#2endhour}{#2endminute}{#2endsecond}{#2endtimezone}}}}}} + +% {<datetype>}{''|end} +\newrobustcmd*{\blx@timepre}[2]{% + \iftoggle{blx@timezones}{} + {\blx@imc@clearfield{#1#2timezone}}% + \iftoggle{blx@seconds}{} + {\blx@imc@clearfield{#1#2second}}} + +\newcommand*{\blx@if@printtime}[2]{% + \ifboolexpr{% + togl {blx@#1dateusetime} + and + not test {\iffieldundef{#1#2hour}}}} + +\newcommand*{\blx@if@printanytimes}[1]{% + \ifboolexpr{ + togl {blx@#1dateusetime} + and + ( not test {\iffieldundef{#1hour}} + or not test {\iffieldundef{#1endhour}})}} + +% {<datetype>}{'' | end} +\newrobustcmd*{\blx@printtime}[2]{% + \blx@if@printtime{#1}{#2} + {\blx@timepre{#1}{#2}% + \printtext{\bibdatetimesep}% + \printtext[#1time]{% + \csuse{mkbibtime\csuse{blx@timeformat@#1time}} + {#1#2hour}{#1#2minute}{#1#2second}{#1#2timezone}}} + {}} + +% {<short|long>}{<datetype>} +\newrobustcmd*{\mkdaterangefull}[2]{% + \begingroup + \blx@metadateinfo{#2}% + \iffieldundef{#2year} + {\blx@nounit} + {\printtext[#2date]{% + \datecircaprint + % Such a season component can only come from an ISO8601 season which replaces + % a normal month so if it exists, we know that a normal date print is ruled out + \iffieldundef{#2season} + {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}% + % Optionally print the time after the date + \blx@printtime{#2}{}} + {\csuse{mkbibseasondate#1}{#2year}{#2season}}% + \dateuncertainprint + \dateeraprint{#2year}% + \iffieldundef{#2endyear} + {} + {\iffieldequalstr{#2endyear}{} + {\mbox{\bibdaterangesep}} + {\bibdaterangesep + \enddatecircaprint + \iffieldundef{#2endseason} + {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}% + % Optionally print the time after the date + \blx@printtime{#2}{end}} + {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}% + \enddateuncertainprint + \dateeraprint{#2endyear}}}}}% + \endgroup} + +\newrobustcmd*{\mkdaterangefullextra}[2]{% + \begingroup + \blx@metadateinfo{#2}% + \iffieldundef{#2year} + {\blx@nounit} + {\printtext[#2date]{% + \datecircaprint + % Such a season component can only come from an ISO8601 season which replaces + % a normal month so if it exists, we know that a normal date print is ruled out + \iffieldundef{#2season} + {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}% + % Optionally print the time after the date + \blx@printtime{#2}{}} + {\csuse{mkbibseasondate#1}{#2year}{#2season}}% + \dateuncertainprint + \dateeraprint{#2year}% + \iffieldundef{#2endyear} + {\printfield{extradate}} + {\iffieldequalstr{#2endyear}{} + {\printfield{extradate}% + \printtext{\mbox{\bibdaterangesep}}} + {\printtext{% + \bibdaterangesep + \enddatecircaprint + \iffieldundef{#2endseason} + {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}% + % Optionally print the time after the date + \blx@printtime{#2}{end}} + {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}}% + \printfield{extradate}% + \enddateuncertainprint + \dateeraprint{#2endyear}}}}}% + \endgroup} + +\newrobustcmd*{\mkdaterangetrunc}[2]{% + \blx@if@printanytimes{#2} + {\mkdaterangefull{#1}{#2}} + {\mkdaterangetrunc@i{#1}{#2}}} + +\newrobustcmd*{\mkdaterangetrunc@i}[2]{% + \begingroup + \blx@metadateinfo{#2}% + \iffieldundef{#2year} + {\blx@nounit} + {\printtext[#2date]{% + \datecircaprint + % Such a season component can only come from an ISO8601 season which replaces + % a normal month so if it exists, we know that a normal date print is ruled out + \iffieldundef{#2season} + {\ifdateyearsequal{#2}{#2end} + {\iffieldsequal{#2month}{#2endmonth} + {\csuse{mkbibdate#1}{}{}{#2day}} + {\csuse{mkbibdate#1}{}{#2month}{#2day}}} + {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}% + \iffieldsequal{#2dateera}{#2enddateera}{} + {\dateeraprint{#2year}}}} + {\ifdateyearsequal{#2}{#2end} + {\csuse{mkbibseasondate#1}{}{#2season}} + {\csuse{mkbibseasondate#1}{#2year}{#2season}% + \iffieldsequal{#2dateera}{#2enddateera}{} + {\dateeraprint{#2year}}}}% + \dateuncertainprint + \iffieldundef{#2endyear} + {} + {\iffieldequalstr{#2endyear}{} + {\mbox{\bibdaterangesep}} + {\bibdaterangesep + \enddatecircaprint + \iffieldundef{#2endseason} + {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}} + {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}% + \enddateuncertainprint + \dateeraprint{#2endyear}}}}}% + \endgroup} + +\newrobustcmd*{\mkdaterangetruncextra}[2]{% + \blx@if@printanytimes{#2} + {\mkdaterangefullextra{#1}{#2}} + {\mkdaterangetruncextra@i{#1}{#2}}} + +\newrobustcmd*{\mkdaterangetruncextra@i}[2]{% + \begingroup + \blx@metadateinfo{#2}% + \iffieldundef{#2year} + {\blx@nounit} + {\printtext[#2date]{% + \datecircaprint + % Such a season component can only come from an ISO8601 season which replaces + % a normal month so if it exists, we know that a normal date print is ruled out + \iffieldundef{#2season} + {\ifdateyearsequal{#2}{#2end} + {\iffieldsequal{#2month}{#2endmonth} + {\csuse{mkbibdate#1}{}{}{#2day}} + {\csuse{mkbibdate#1}{}{#2month}{#2day}}} + {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}% + \iffieldsequal{#2dateera}{#2enddateera}{} + {\dateeraprint{#2year}}}} + {\ifdateyearsequal{#2}{#2end} + {\csuse{mkbibseasondate#1}{}{#2season}} + {\csuse{mkbibseasondate#1}{#2year}{#2season}% + \iffieldsequal{#2dateera}{#2enddateera}{} + {\dateeraprint{#2year}}}}% + \dateuncertainprint + \iffieldundef{#2endyear} + {\printfield{extradate}} + {\iffieldequalstr{#2endyear}{} + {\printfield{extradate}% + \printtext{\mbox{\bibdaterangesep}}} + {\printtext{% + \bibdaterangesep + \enddatecircaprint + \iffieldundef{#2endseason} + {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}} + {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}}% + \printfield{extradate}% + \enddateuncertainprint + \dateeraprint{#2endyear}}}}}% + \endgroup} + +\newrobustcmd*{\mkdaterangeyear}[1]{% + \blx@imc@clearfield{#1season}% + \blx@imc@clearfield{#1month}% + \blx@imc@clearfield{#1day}% + \blx@imc@clearfield{#1hour}% + \blx@imc@clearfield{#1minute}% + \blx@imc@clearfield{#1second}% + \blx@imc@clearfield{#1timezone}% + \blx@imc@clearfield{#1endseason}% + \blx@imc@clearfield{#1endmonth}% + \blx@imc@clearfield{#1endday}% + \blx@imc@clearfield{#1endhour}% + \blx@imc@clearfield{#1endminute}% + \blx@imc@clearfield{#1endsecond}% + \blx@imc@clearfield{#1endtimezone}% + \ifdateyearsequal{#1}{#1end} + {\blx@imc@clearfield{#1endyear}} + {}% + \mkdaterangefull{short}{#1}} + +% {<datetype>} +\newrobustcmd*{\mkdaterangeymd}[1]{% + \begingroup + \blx@metadateinfo{#1}% + \iffieldundef{#1year} + {\blx@nounit} + {\printtext[#1date]{% + \datecircaprint + % Such a season component can only come from an ISO8601 season which replaces + % a normal month so if it exists, we know that a normal date print is ruled out + \iffieldundef{#1season} + {\blx@ymddate{#1}{}% + % Optionally print the time after the date + \blx@printtime{#1}{}} + {\csuse{mkbibseasondateshort}{#1year}{#1season}}% + \dateuncertainprint + \dateeraprint{#1year}% + \iffieldundef{#1endyear} + {} + {\iffieldequalstr{#1endyear}{} + {\mbox{\bibdaterangesep}} + {\bibdaterangesep + \enddatecircaprint + \iffieldundef{#1season} + {\blx@ymddate{#1}{end}% + % Optionally print the time after the date + \blx@printtime{#1}{end}} + {\csuse{mkbibseasondateshort}{#1endyear}{#1endseason}}% + \enddateuncertainprint + \dateeraprint{#1endyear}}}}}% + \endgroup} + +% {<datetype>} +\newrobustcmd*{\mkdaterangeymdextra}[1]{% + \begingroup + \blx@metadateinfo{#1}% + \iffieldundef{#1year} + {\blx@nounit} + {\printtext[#1date]{% + \datecircaprint + % Such a season component can only come from an ISO8601 season which replaces + % a normal month so if it exists, we know that a normal date print is ruled out + \iffieldundef{#1season} + {\blx@ymddate[extradate]{#1}{}% + % Optionally print the time after the date + \blx@printtime{#1}{}} + {\csuse{mkbibseasondateshort}{#1year}{#1season}}% + \dateuncertainprint + \dateeraprint{#1year}% + \iffieldundef{#1endyear} + {} + {\iffieldequalstr{#1endyear}{} + {\mbox{\bibdaterangesep}} + {\printtext{% + \bibdaterangesep + \enddatecircaprint + \iffieldundef{#1season} + {\blx@ymddate{#1}{end}% + % Optionally print the time after the date + \blx@printtime{#1}{end}} + {\csuse{mkbibseasondateshort}{#1endyear}{#1endseason}}}% + \enddateuncertainprint + \dateeraprint{#1endyear}}}}}% + \endgroup} + +% [extradate]{<datetype>}{''|end} +\newrobustcmd*{\blx@ymddate}[3][]{% + \dateeraprintpre{#2#3year}% + \mkyearzeros{\thefield{#2#3year}}\ifblank{#1}{}{\printfield{#1}}% + \iffieldundef{#2#3month}{}{\bibdatesep\mkmonthzeros{\thefield{#2#3month}}}% + \iffieldundef{#2#3day}{}{\bibdatesep\mkdayzeros{\thefield{#2#3day}}}} + +\newrobustcmd*{\mkdaterangeyearextra}[1]{% + \blx@imc@clearfield{#1season}% + \blx@imc@clearfield{#1month}% + \blx@imc@clearfield{#1day}% + \blx@imc@clearfield{#1hour}% + \blx@imc@clearfield{#1minute}% + \blx@imc@clearfield{#1second}% + \blx@imc@clearfield{#1timezone}% + \blx@imc@clearfield{#1endseason}% + \blx@imc@clearfield{#1endmonth}% + \blx@imc@clearfield{#1endday}% + \blx@imc@clearfield{#1endhour}% + \blx@imc@clearfield{#1endminute}% + \blx@imc@clearfield{#1endsecond}% + \blx@imc@clearfield{#1endtimezone}% + \ifdateyearsequal{#1}{#1end} + {\blx@imc@clearfield{#1endyear}} + {}% + \mkdaterangefullextra{short}{#1}} + +\newrobustcmd*{\mkdaterangeiso}[1]{% + \begingroup + \blx@metadateinfo{#1}% + \def\bibdatetimesep{T}% + \iffieldundef{#1year} + {\blx@nounit} + {\printtext[#1date]{% + \blx@isodate{#1}{}% + \ifboolexpr{% + togl {blx@#1dateusetime} + and + not test {\iffieldundef{#1hour}}} + {\printtext{\bibdatetimesep}% + \blx@isotime{#1}{}} + {}% + \dateuncertainprint + \datecircaprintiso + \iffieldundef{#1endyear} + {} + {\addslash + \blx@isodate{#1}{end}% + \ifboolexpr{% + togl {blx@#1dateusetime} + and + not test {\iffieldundef{#1endhour}}} + {\printtext{\bibdatetimesep}% + \blx@isotime{#1}{end}} + {}% + \enddateuncertainprint + \enddatecircaprintiso}}}% + \endgroup} + +\newrobustcmd*{\mkdaterangeisoextra}[1]{% + \begingroup + \blx@metadateinfo{#1}% + \def\bibdatetimesep{T}% + \iffieldundef{#1year} + {\blx@nounit} + {\printtext[#1date]{% + \blx@isodate[extradate]{#1}{}% + \ifboolexpr{% + togl {blx@#1dateusetime} + and + not test {\iffieldundef{#1hour}}} + {\printtext{\bibdatetimesep}% + \blx@isotime{#1}{}} + {}% + \dateuncertainprint + \datecircaprintiso + \iffieldundef{#1endyear} + {} + {\addslash + \blx@isodate{#1}{end}}% + \ifboolexpr{% + togl {blx@#1dateusetime} + and + not test {\iffieldundef{#1endhour}}} + {\printtext{\bibdatetimesep}% + \blx@isotime{#1}{end}} + {}% + \enddateuncertainprint + \enddatecircaprintiso}}% + \endgroup} + +% [extradate]{<datetype>}{''|end} +\newrobustcmd*{\blx@isodate}[3][]{% + \dateeraprintpre{#2#3year}% + \blx@imc@forcezerosy{\thefield{#2#3year}}\ifblank{#1}{}{\printfield{#1}}% + % Such a season component can only come from an ISO8601 season which replaces + % a normal month so if it exists, we know that a normal date print is ruled out + \iffieldundef{#2#3season} + {\iffieldundef{#2#3month}{}{\hyphen\blx@imc@forcezerosmdt{\thefield{#2#3month}}}% + \iffieldundef{#2#3day}{}{\hyphen\blx@imc@forcezerosmdt{\thefield{#2#3day}}}} + {\hyphen\blx@seasonmap{\thefield{#2#3season}}}} + +\def\blx@seasonmap#1{% + \blx@xifstrequal{#1}{spring}{21} + {\blx@xifstrequal{#1}{summer}{22} + {\blx@xifstrequal{#1}{autumn}{23} + {\blx@xifstrequal{#1}{winter}{24}{}}}}} + +\newrobustcmd*{\blx@isotime}[2]{% + \blx@imc@forcezerosmdt{\thefield{#1#2hour}}% + :\blx@imc@forcezerosmdt{\thefield{#1#2minute}}% + :\blx@imc@forcezerosmdt{\thefield{#1#2second}}% + \iftoggle{blx@timezones} + {\mkbibtimezone{\thefield{#1#2timezone}}} + {}} + +% some sane defaults for bibliography extras +% many of these should be redefined in the .lbx files +% all .lbx files should have date and time handling, so the fallback values +% issue a warning to make people aware of the deficiency in their file +% \mkbibordinal should also only be used if it is defined, so it warns as well +% times +\newrobustcmd*{\bibtimesep}{:} +\newrobustcmd*{\bibtimerangesep}{\textendash} +\newrobustcmd*{\bibutctimezone}{Z} +\newrobustcmd*{\bibtimezonesep}{} +\newrobustcmd*{\bibtzminsep}{\bibtimesep} +% dates +\newrobustcmd*{\bibdateuncertain}{?} +% \textminus is only guaranteed for non-PDFTeX +\newrobustcmd*{\bibdateeraprefix}{\ifdef\textminus\textminus\textendash} +\newrobustcmd*{\bibdateeraendprefix}{\,\bibdateeraprefix} +\newrobustcmd*{\bibdatesep}{\hyphen} +\newrobustcmd*{\bibdaterangesep}{\bibrangedash} +% date+times +\newrobustcmd*{\bibdatetimesep}{\space} +% ranges +\newrobustcmd*{\bibrangedash}{\textendash} +\newrobustcmd*{\bibrangessep}{,\space} +% formatters +\newrobustcmd*{\mkbibtimezone}[1]{\blx@xifstrequal{#1}{Z}{\bibutctimezone}{#1}} +% you should never end up needing the next few definitions +% but it is safer to do something than just swallow the input +\newrobustcmd*{\mkbibdatelong}[3]{% + \blx@warning@noline{% + Using fallback definition for \string\mkbibdatelong.\MessageBreak + The command should be defined in the .lbx file.\MessageBreak + If you see this message, the .lbx file could not be\MessageBreak + loaded, is faulty or does not contain a definition\MessageBreak + for \string\mkbibdatelong + }% + \iffieldundef{#3} + {} + {\mkbibordinal{\thefield{#3}}% + \iffieldundef{#2}{}{\nobreakspace}}% + \iffieldundef{#2} + {} + {\mkbibmonth{\thefield{#2}}% + \iffieldundef{#1}{}{\space}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}} + +\newrobustcmd*{\mkbibdateshort}[3]{% + \blx@warning@noline{% + Using fallback definition for \string\mkbibdateshort.\MessageBreak + The command should be defined in the .lbx file.\MessageBreak + If you see this message, the .lbx file could not be\MessageBreak + loaded, is faulty or does not contain a definition\MessageBreak + for \string\mkbibdateshort + }% + \iffieldundef{#3} + {} + {\mkdayzeros{\thefield{#3}}% + \iffieldundef{#2}{}{/}}% + \iffieldundef{#2} + {} + {\mkmonthzeros{\thefield{#2}}% + \iffieldundef{#1}{}{/}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}} + +\expandafter\newrobustcmd\expandafter*\csname mkbibtime24h\endcsname[4]{% + \blx@warning@noline{% + Using fallback definition for + \expandafter\string\csname mkbibtime24h\endcsname.\MessageBreak + The command should be defined in the .lbx file.\MessageBreak + If you see this message, the .lbx file could not be\MessageBreak + loaded, is faulty or does not contain a definition\MessageBreak + for \expandafter\string\csname mkbibtime24h\endcsname + }% + \iffieldundef{#1}{} + {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}% + \iffieldundef{#2}{} + {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}% + \iffieldundef{#3}{} + {\printtext{\mktimezeros{\thefield{#3}}}}% + \setunit{}% + \iffieldundef{#4}{} + {\bibtimezonesep + \mkbibtimezone{\thefield{#4}}}} + +\expandafter\newrobustcmd\expandafter*\csname mkbibtime12h\endcsname[4]{% + \blx@warning@noline{% + Using fallback definition for + \expandafter\string\csname mkbibtime12h\endcsname.\MessageBreak + The command should be defined in the .lbx file.\MessageBreak + If you see this message, the .lbx file could not be\MessageBreak + loaded, is faulty or does not contain a definition\MessageBreak + for \expandafter\string\csname mkbibtime12h\endcsname + }% + \stripzeros{\mktimehh{\thefield{#1}}}% + \bibtimesep + \forcezerosmdt{\thefield{#2}}% + \iffieldundef{#3}{} + {\bibtimesep + \forcezeros{\thefield{#3}}}% + \space + \ifnumless{\thefield{#1}}{12} + {\bibstring{am}} + {\bibstring{pm}}% + \iffieldundef{#4}{} + {\space\bibtimezonesep + \parentext{\mkbibtimezone{\thefield{#4}}}}} + +\newrobustcmd*{\mkbibseasondateshort}[2]{% + \blx@warning@noline{% + Using fallback definition for \string\mkbibseasondateshort.\MessageBreak + The command should be defined in the .lbx file.\MessageBreak + If you see this message, the .lbx file could not be\MessageBreak + loaded, is faulty or does not contain a definition\MessageBreak + for \string\mkbibseasondateshort + }% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}} + +\newrobustcmd*{\mkbibseasondatelong}[2]{% + \blx@warning@noline{% + Using fallback definition for \string\mkbibseasondatelong.\MessageBreak + The command should be defined in the .lbx file.\MessageBreak + If you see this message, the .lbx file could not be\MessageBreak + loaded, is faulty or does not contain a definition\MessageBreak + for \string\mkbibseasondatelong + }% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}} + +\newrobustcmd*{\bibdatedash}{\bibrangedash} +\newrobustcmd*{\finalandcomma}{} +\newrobustcmd*{\finalandsemicolon}{} +\newrobustcmd*{\mkbibordinal}[1]{% + \blx@warning@noline{% + Using fallback definition for \string\mkbibordinal.\MessageBreak + The command should be defined in the .lbx file.\MessageBreak + If you see this message, the .lbx file could not be\MessageBreak + loaded, is faulty or does not contain a definition\MessageBreak + for \string\mkbibordinal + }% + #1% +} +\newrobustcmd*{\mkbibmascord}{\mkbibordinal} +\newrobustcmd*{\mkbibfemord}{\mkbibordinal} +\newrobustcmd*{\mkbibneutord}{\mkbibordinal} +% the following is usually not redefined in an .lbx +\newrobustcmd*{\mkbibseason}[1]{\abx@bibseason{#1}} +\newrobustcmd*{\mkbibmonth}[1]{% + \ifcase0#1\relax + \blx@warning@entry{Month out of range or not an integer}% + \or\abx@bibmonth{january}% + \or\abx@bibmonth{february}% + \or\abx@bibmonth{march}% + \or\abx@bibmonth{april}% + \or\abx@bibmonth{may}% + \or\abx@bibmonth{june}% + \or\abx@bibmonth{july}% + \or\abx@bibmonth{august}% + \or\abx@bibmonth{september}% + \or\abx@bibmonth{october}% + \or\abx@bibmonth{november}% + \or\abx@bibmonth{december}% + \else + \blx@warning@entry{Month out of range}#1% + \fi} + +% strip leading zeros and prepend zero for month/day/timeparts +% Allow for non numeric labelyear values +\protected\def\blx@imc@forcezerosmdt#1{% + \protected@edef\blx@tempa{#1}% + \expandafter\blx@imc@forcezerosmdt@i\expandafter{\blx@tempa}} + +\protected\def\blx@imc@forcezerosmdt@i#1{% + \notblank{#1} + {\blx@imc@ifinteger{#1} + {\ifnumless{#1}{10} + {0\the\numexpr(#1)\relax} + {#1}} + {#1}} + {#1}} + +% strip leading zeros and prepend zero(s) for year +% Allow for non numeric labelyear values +\protected\def\blx@imc@forcezerosy#1{% + \protected@edef\blx@tempa{#1}% + \expandafter\blx@imc@forcezerosy@i\expandafter{\blx@tempa}} + +\protected\def\blx@imc@forcezerosy@i#1{% + \notblank{#1} + {\blx@imc@ifinteger{#1} + {\ifnumless{#1}{10}% 1-digit year + {000\the\numexpr(#1)\relax} + {\ifnumless{#1}{100}% 2-digit year + {00\the\numexpr(#1)\relax} + {\ifnumless{#1}{1000}% 3-digit year + {0\the\numexpr(#1)\relax} + {#1}}}} + {#1}} + {#1}}% + +\let\blx@imc@mkyearzeros\blx@imc@forcezerosy +\let\blx@imc@mkmonthzeros\blx@imc@forcezerosmdt +\let\blx@imc@mkdayzeros\blx@imc@forcezerosmdt +\protected\def\blx@imc@stripzeros#1{% + \begingroup + \setbox\@tempboxa=\hbox\bgroup + \aftergroup\endgroup + \abx@hook@xsanitize + \if0#1\relax + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi + {\@tempcnta#1\relax + \expandafter\egroup + \number\@tempcnta + \@tempcnta#1\relax} + {\egroup#1}} + +\let\blx@imc@printlabeldate\@empty +\let\blx@imc@printlabeltime\@empty +\let\blx@imc@printlabeldateextra\@empty + +\blx@regimcs{\printlabeldate \printlabeltime \printlabeldateextra + \stripzeros \forcezerosy \forcezerosmdt + \mkyearzeros \mkmonthzeros \mkdayzeros \mktimezeros} + +% User macro for retrieving currrent language +\def\currentlang{\blx@languagename} + +% {<language>}{<strings>} +\def\blx@maplang#1#2{% + \csgappto{extras#1}{% + \blx@resetpunct + \csuse{abx@extras@#2}% + \csuse{abx@strings@#2}}% + \csgappto{noextras#1}{% + \blx@resetpunct + \csuse{abx@noextras@#2}}} + +%% babel/polyglossia interface +\def\blx@beglang{\blx@clearlang\begingroup} +\def\blx@endlang{\endgroup} +\let\blx@beglangbib\blx@beglang +\let\blx@endlangbib\blx@endlang +\let\blx@beglangcite\blx@beglang +\let\blx@endlangcite\blx@endlang +\let\blx@hook@endlang\@empty +\let\blx@hook@initlang\@empty +\let\blx@imc@mainlang\@empty +\def\blx@hyphenreset{% + \ifcsundef{l@\blx@languagename} + {} + {\language\csname l@\blx@languagename\endcsname\relax}% + \ifcsundef{\blx@languagename hyphenmins} + {\blx@sethyphenmins\tw@\thr@@} + {\expandafter\expandafter\expandafter\blx@sethyphenmins + \csname\blx@languagename hyphenmins\endcsname}} +\def\blx@sethyphenmins#1#2{% + \lefthyphenmin#1\relax + \righthyphenmin#2\relax} + +\begingroup +\@makeother\# +\gdef\blx@mkautolangbabel{% + \ifundef\bbl@main@language + {\blx@error + {No default 'babel' language defined} + {You must define a default language for 'babel'}} + {}% + \pretocmd\select@language{\blx@langsetup{#1}} + {\ifdef\blx@thelangenv + {\def\blx@beglang{% + \blx@clearlang + \begingroup + % Need to override all entries, regardless of if there is a langid + % if language=<language> option is given + \ifboolexpr { test {\ifdef\abx@field@langid } + or + test {\ifdef\blx@forcelanguagename} } + % override local langid if we forced it with + % language=<language> option + {\ifdef\blx@forcelanguagename + {\let\abx@field@langid\blx@forcelanguagename} + {}% + \let\blx@languagename\abx@field@langid% track global language + \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}% + \iftoggle{blx@autolangbib} + {\let\blx@endlangbib\blx@endlang} + {}% + \iftoggle{blx@autolangcite} + {\let\blx@endlangcite\blx@endlang} + {}% + \csname\blx@thelangenv\expandafter\endcsname + \expandafter{\abx@field@langid}}} + {}}} + {}% + \def\blx@langstrings{}% + \def\blx@imc@mainlang{\select@language{\bbl@main@language}}% + \blx@langsetup\bbl@main@language} + {\blx@err@patch{'babel' package}% + \blx@mknoautolang}} + +\gdef\blx@mkautolangpoly{% + \ifundef\bbl@main@language + {\blx@error + {No default 'polyglossia' language defined} + {You must define a default language for 'polyglossia'}} + {}% + \edef\blx@saved@underscore@catcode{\the\catcode`\_}% + \catcode`\_=11% polyglossia uses "_" as a letter + \pretocmd\select@language{\blx@langsetup{#1}} + {\ifdef\blx@thelangenv + {\def\blx@beglang{% + \blx@clearlang + \begingroup + % Need to override all entries, regardless of if there is a langid + % if language=<language> option is given + \ifboolexpr { test {\ifdef\abx@field@langid } + or + test {\ifdef\blx@forcelanguagename} } + % override local langid if we forced it with + % language=<language> option + {\ifdef\blx@forcelanguagename + {\let\abx@field@langid\blx@forcelanguagename} + {}% + \let\blx@languagename\abx@field@langid% track global language + \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>[] + \ifcsstring{blx@thelangenv}{langname} + {\csname end\abx@field@langid\endcsname} + {\csname end\blx@thelangenv\endcsname}% + \endgroup}% + \iftoggle{blx@autolangbib} + {\let\blx@endlangbib\blx@endlang} + {}% + \iftoggle{blx@autolangcite} + {\let\blx@endlangcite\blx@endlang} + {}% + \ifcsstring{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 + \ifcsstring{blx@thelangenv}{hyphenrules} + {} + {\blx@resetpunct + \csuse{abx@extras@\abx@field@langid}% + \csuse{abx@strings@\abx@field@langid}}}} + {}}} + {}% + % polyglossia needs this - it doesn't get the + % strings automatically set for some reason + \def\blx@langstrings{% + \csuse{abx@extras@\languagename}% + \csuse{abx@strings@\languagename}}% + \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`\_=\blx@saved@underscore@catcode\relax} +\endgroup + +\def\blx@mknoautolang{% + \blx@lbxinput{\blx@languagename} + {} + {\blx@err@nolang{\blx@languagename}}} + +\blx@regimcs{\mainlang} + +\newrobustcmd*{\DeclareRedundantLanguages}[2]{% + \begingroup + \ifblank{#2} + {\def\do##1{% + \global\csundef{blx@rlm@##1}% + \global\csundef{blx@rlm@lang##1}}} + {\def\do##1{% + \csxdef{blx@rlm@##1}{#2}% + \csxdef{blx@rlm@lang##1}{#2}}}% + \docsvlist{#1}% + \endgroup} + +\def\blx@clearlang{% + \iftoggle{blx@clearlang} + {\iflistundef{language} + {} + {\ifnumgreater{\value{language}}{1} + {} + {\expandafter\blx@clearlang@i\abx@list@language}}} + {}} + +\def\blx@clearlang@i#1{% + \ifcsdef{blx@rlm@#1} + {\expandafter\expandafter\expandafter\forcsvlist + \expandafter\expandafter\expandafter\blx@clearlang@ii + \expandafter\expandafter\expandafter{% + \csname blx@rlm@#1\endcsname}} + {}} + +\def\blx@clearlang@ii#1{% + \ifdefstring\languagename{#1} + {\clearlist{language}} + {}} + +%% Biber equivalents to bibtex data interface + +\def\abx@doentrytypes{\dolistloop\blx@datamodel@entrytypes} + +% fields which can be used as labels - we auto-create some macros for these +\def\abx@dolabelfields{\dolistloop\blx@datamodel@labelfields} + +\def\abx@donames{\dolistloop\blx@datamodel@names} +\def\abx@donameparts{\expandafter\docsvlist\expandafter{\blx@datamodel@constant@nameparts}} + +\def\abx@dofields{\dolistloop\blx@datamodel@fields} + +\def\abx@dolists{% + \dolistloop\blx@datamodel@lists% + \do{pageref}} + +% Used to pass regexps to .bcf +\def\regexp#1{\expandafter\zap@space\detokenize{#1} \@empty} + +% Have to do this otherwise the '~'s in the .bcf strings are not expanded +% This is done for the .bcf later but since we have to do all the +% data model things much earlier, have to set this here and reset on finishing +\let\blx@tsave~ +\let~\space +% Data model and supporting macros must be loaded early +\blx@inputonce{blx-dm.def}{biblatex default data model}{}{}{}{} +\let~\blx@tsave + +% We need to now load any style data model +% Order of precedence is: +% <datamodel option>.dbx +% <style option>.dbx +% <citestyle option>.dbx and <bibstyle option>.dbx +% This has to be done before the real options processing so we need to +% pick out just these four options to look at. You can't do this with keyval, +% you have to use kvoptions. So, pick out these four, pass through all +% others and delete datamodel option as we don't care about it when we come +% to really set options below +\SetupKeyvalOptions{ + family=blx@opt@eldt, + prefix=blx@opt@eldt@} +\DeclareStringOption{datamodel} +\DeclareStringOption{style} +\DeclareStringOption{citestyle} +\DeclareStringOption{bibstyle} +\DeclareDefaultOption{} +\ProcessLocalKeyvalOptions{blx@opt@eldt} +\ifx\blx@opt@eldt@datamodel\@empty + \ifx\blx@opt@eldt@style\@empty + \ifx\blx@opt@eldt@citestyle\@empty + \else + \blx@inputonce{\blx@opt@eldt@citestyle.dbx}{biblatex citestyle data model}{}{}{}{} + \fi + \ifx\blx@opt@eldt@bibstyle\@empty + \else + \blx@inputonce{\blx@opt@eldt@bibstyle.dbx}{biblatex bibstyle data model}{}{}{}{} + \fi + \else + \blx@inputonce{\blx@opt@eldt@style.dbx}{biblatex style data model}{}{}{}{} + \fi +\else + \blx@inputonce{\blx@opt@eldt@datamodel.dbx}{biblatex style data model}{}{}{}{} +\fi +\DisableKeyvalOption[action=undef,local]{blx@opt@eldt}{datamodel} + +% Override with user-defined data model if there is one +\blx@inputonce{biblatex-dm.cfg}{biblatex custom data model}{}{}{}{} + +% Initialise option datatypes lists +\global\let\blx@bcf@options@scope@global\@empty +\global\let\blx@bcf@options@scope@type\@empty +\global\let\blx@bcf@options@scope@entry\@empty +\global\let\blx@bcf@options@scope@namelist\@empty +\global\let\blx@bcf@options@scope@name\@empty +\global\let\blx@globalopts@datatypes\@empty +\global\let\blx@typeopts@datatypes\@empty +\global\let\blx@entryopts@datatypes\@empty +\global\let\blx@namelistopts@datatypes\@empty +\global\let\blx@nameopts@datatypes\@empty +\def\do#1{% + \global\cslet{blx@globalopts@#1}\@empty + \global\cslet{blx@typeopts@#1}\@empty + \global\cslet{blx@entryopts@#1}\@empty + \global\cslet{blx@namelistopts@#1}\@empty + \global\cslet{blx@nameopts@#1}\@empty} +\expandafter\expandafter\expandafter +\docsvlist +\expandafter\expandafter\expandafter +{\csname blx@datamodel@constant@optiondatatypes\endcsname} + +% Helper for collecting options and datatypes +% {<datatype>}{<scope>}{<name>} +\def\blx@collectopts#1#2#3{% + \ifinlistcs{#1}{#2@datatypes} + {} + {\listcsgadd{#2@datatypes}{#1}}% + \ifinlistcs{#3}{#2@#1} + {} + {\listcsgadd{#2@#1}{#3}}} + + +% entry, namelist, name scopes are input/handled on the backend side +% if we want to see the info back on the biblatex side, we need the backend +% to pass the info through via the .bbl file +\def\blx@declareblxopt@extrahandler@entry#1{% + \csgdef{blx@bcf@backendout@entry@#1}{1}} +\def\blx@declareblxopt@extrahandler@namelist#1{% + \csgdef{blx@bcf@backendout@namelist@#1}{1}} +\def\blx@declareblxopt@extrahandler@name#1{% + \csgdef{blx@bcf@backendout@name@#1}{1}} + +% {<option scope>}[<datatype>]{<key>}[<value>]{<code>} +\protected\def\blx@declareblxopt#1{% + \@ifnextchar[%] + {\blx@declareblxopt@i#1} + {\blx@declareblxopt@i#1[]}} + +\def\blx@declareblxopt@i#1[#2]#3{% + \begingroup + \ifblank{#2} + {\def\blx@tempa{boolean}} + {\ifcsundef{blx@#1opts@#2} + {\blx@warn@badoptdt{#2}% + \def\blx@tempa{boolean}} + {\def\blx@tempa{#2}}}% + \expandafter\blx@collectopts\expandafter{\blx@tempa}{blx@#1opts}{#3}% + \ifcsundef{blx@declareblxopt@extrahandler@#1} + {} + {\csuse{blx@declareblxopt@extrahandler@#1}{#3}}% + \endgroup + \@ifnextchar[%] + {\csuse{blx@defblxopt@#1opt}{#3}} + {\csuse{blx@defblxopt@#1opt}{#3}[]}} + +\long\def\blx@defblxopt@globalopt#1[#2]#3{% + \ifcsundef{KV@blx@opt@ldt@#1} + {\ifcsundef{KV@blx@opt@pre@#1} + {\ifblank{#2} + {\define@key{blx@opt@pre}{#1}{#3}} + {\define@key{blx@opt@pre}{#1}[#2]{#3}}} + {\blx@err@optdef{#1}{pre/global}}} + {\blx@err@optdef{#1}{ldt/global}}} + +\long\def\blx@defblxopt@typeentryopt#1#2[#3]#4{% + \ifcsundef{KV@blx@opt@#1@#2} + {\ifblank{#3} + {\define@key{blx@opt@#1}{#2}{#4}} + {\define@key{blx@opt@#1}{#2}[#3]{#4}}} + {\blx@err@optdef{#2}{#1}}} + +\def\blx@defblxopt@typeopt{\blx@defblxopt@typeentryopt{typ}} +\def\blx@defblxopt@entryopt{\blx@defblxopt@typeentryopt{ent}} +\def\blx@defblxopt@nameopt{\blx@defblxopt@typeentryopt{name}} +\def\blx@defblxopt@namelistopt{\blx@defblxopt@typeentryopt{namelist}} + +% The Declare*Option macros are for options which need to be visible +% to biblatex. For options which only biber needs to see, they can be +% passed to the .bcf directly using \blx@collectopts +% [<datatype>]{<key>}[<default value>]{<code>} +\newcommand*{\DeclareBibliographyOption}{\blx@declareblxopt{global}} +\newcommand*{\DeclareTypeOption}{\blx@declareblxopt{type}} +\newcommand*{\DeclareEntryOption}{\blx@declareblxopt{entry}} + +% we'll assume that \blx@optscopes is non-empty from now on +\newcommand*{\blx@optscopes}{} +\forcsvlist{\listadd\blx@optscopes}{global,type,entry} + +\long\def\blx@defblxopt@loopscopes@i#1[#2]#3#4{% + \csuse{blx@defblxopt@#4opt}{#1}[#2]{#3}} + +\long\def\blx@defblxopt@loopscopes#1[#2]#3{% + \forlistloop{\blx@defblxopt@loopscopes@i{#1}[#2]{#3}}{\blx@optscopes}} + +% {<option scopes>}[<datatype>]{<key>}[<default value>]{<code>} +\newrobustcmd*{\DeclareBiblatexOption}[1]{% + \let\blx@optscopes\@empty + \forcsvlist{\listadd\blx@optscopes}{#1}% + \blx@DeclareBiblatexOption@i} + +\newrobustcmd*{\blx@DeclareBiblatexOption@i}[2][]{% + \begingroup + \ifblank{#1} + {\def\blx@tempa{boolean}} + {\let\blx@tempb\@secondoftwo + \def\do##1{% + \ifcsundef{blx@##1opts@#1} + {\let\blx@tempb\@firstoftwo\listbreak} + {}}% + \dolistloop{\blx@optscopes}% + \blx@tempb + {\blx@warn@badoptdt{#1}% + \def\blx@tempa{boolean}} + {\def\blx@tempa{#1}}}% + \def\do##1{% + \expandafter\blx@collectopts\expandafter{\blx@tempa}{blx@##1opts}{#2}% + \ifcsundef{blx@declareblxopt@extrahandler@##1} + {} + {\csuse{blx@declareblxopt@extrahandler@##1}{#2}}}% + \dolistloop{\blx@optscopes}% + \endgroup + \@ifnextchar[%] + {\blx@defblxopt@loopscopes{#2}} + {\blx@defblxopt@loopscopes{#2}[]}} + +% this macro is internal for now because options declared with it need +% support on the backend side and are not useful for document or style authors +% {<option scopes>}[<datatype>]{<key>} +\newrobustcmd*{\blx@DeclareBackendOption}[1]{% + \let\blx@optscopes\@empty + \forcsvlist{\listadd\blx@optscopes}{#1}% + \blx@DeclareBackendOption@i} + +\newrobustcmd*{\blx@DeclareBackendOption@i}[2][]{% + \begingroup + \ifblank{#1} + {\def\blx@tempa{boolean}} + {\let\blx@tempb\@secondoftwo + \def\do##1{% + \ifcsundef{blx@##1opts@#1} + {\let\blx@tempb\@firstoftwo\listbreak} + {}}% + \dolistloop{\blx@optscopes}% + \blx@tempb + {\blx@warn@badoptdt{#1}% + \def\blx@tempa{boolean}} + {\def\blx@tempa{#1}}}% + \def\do##1{% + \expandafter\blx@collectopts\expandafter{\blx@tempa}{blx@##1opts}{#2}}% + \dolistloop{\blx@optscopes}% + \endgroup} + +% per-entry inheritance blocking option for biber +\blx@DeclareBackendOption{entry}[string]{noinherit} + + +% nametemplates meta-option entry/namelist/name scope +% this meta option is resolved by Biber +\blx@DeclareBackendOption{entry,namelist,name}[string]{nametemplates} +\gdef\blx@bcf@backendin@entry@nametemplates{sortingnamekeytemplatename,% + uniquenametemplatename,labelalphanametemplatename}% +\gdef\blx@bcf@backendin@namelist@nametemplates{sortingnamekeytemplatename,% + uniquenametemplatename,labelalphanametemplatename}% +\gdef\blx@bcf@backendin@name@nametemplates{sortingnamekeytemplatename,% + uniquenametemplatename,labelalphanametemplatename}% + +% Misc globalopts +\blx@DeclareBackendOption{global}[xml]{datamodel} +\blx@collectopts{string}{blx@globalopts}{controlversion} + +\newcommand*{\labelalphaothers}{+} +\newcommand*{\sortalphaothers}{\labelalphaothers} +\blx@DeclareBackendOption{global,type}[string]{alphaothers} +\blx@DeclareBackendOption{global,type}[string]{sortalphaothers} + +% date, eventdate, urldate etc. +\def\abx@dodates{\dolistloop\blx@datamodel@dates} +% year, endyear, month, endmonth etc. +\def\abx@dodateparts{\expandafter\docsvlist\expandafter{\blx@dateparts}} + +% '', event, url, orig etc. +\def\do#1{% + \blx@stripfromendinto{#1}{date}\blx@datetype + \listxadd\blx@datetypes{\blx@datetype}} +\abx@dodates +% main date field has an empty prefix (''date) which can't be added to a list +% and so do it explicity +% This is one of the few (only?) hard-coded datamodel assumptions but it is +% very unlikely that anyone would *remove* the main date field in a custom application ... +\def\abx@dodatetypes{\do{}\dolistloop\blx@datetypes} + +% Sanity check on date field names - they *must* end in 'date' to make things easier/possible later +\def\do#1{% + \blx@ifstrendswith{#1}{date} + {} + {\blx@error + {Invalid date field name '#1'} + {Date fields in the datamodel must end in the string 'date' but '#1' doesn't}}} +\abx@dodates + +% date meta-information option fallbacks +\def\do#1{% + \cslet{#1datecircaprint}\@empty + \cslet{#1enddatecircaprint}\@empty + \cslet{#1datecircaprintiso}\@empty + \cslet{#1enddatecircaprintiso}\@empty + \cslet{#1dateuncertainprint}\@empty + \cslet{#1enddateuncertainprint}\@empty + \cslet{#1dateeraprint}\@gobble + \cslet{#1dateeraprintpre}\@gobble + \csdef{if#1dateera}##1{\@secondoftwo}% + \csdef{if#1enddateera}##1{\@secondoftwo}% + \cslet{if#1datecirca}\@secondoftwo + \cslet{if#1enddatecirca}\@secondoftwo + \cslet{if#1datejulian}\@secondoftwo + \cslet{if#1enddatejulian}\@secondoftwo + \cslet{if#1dateuncertain}\@secondoftwo + \cslet{if#1enddateuncertain}\@secondoftwo + \cslet{if#1dateunknown}\@secondoftwo + \cslet{if#1enddateunknown}\@secondoftwo} +\abx@dodatetypes +\do{labeldate} + +% These are internal fields/booleans which are not part of the data model but +% which need to be dealt with along with data model fields in places +\def\do#1{% + \listxadd\blx@datemetafields{#1dateera}% + \listxadd\blx@datemetafields{#1enddateera}% + \listxadd\blx@datemetafields{#1dateunspecified}} +\abx@dodatetypes + +\def\do#1{% + \listxadd\blx@datemetabooleans{#1datecirca}% + \listxadd\blx@datemetabooleans{#1enddatecirca}% + \listxadd\blx@datemetabooleans{#1datejulian}% + \listxadd\blx@datemetabooleans{#1enddatejulian}% + \listxadd\blx@datemetabooleans{#1dateuncertain}% + \listxadd\blx@datemetabooleans{#1enddateuncertain}% + \listxadd\blx@datemetabooleans{#1dateunknown}% + \listxadd\blx@datemetabooleans{#1enddateunknown}} +\abx@dodatetypes + +\def\do#1{% + \listxadd\blx@namepartmetafields{#1namehash}% + \listxadd\blx@namepartmetafields{#1fullhash}% + \listxadd\blx@namepartmetafields{#1bibnamehash}} +\abx@donameparts + +\def\do#1{% + \listxadd\blx@labeldatepartfields{label#1}} +\abx@dodateparts + +\def\abx@dointernalfields{% + \do{clonesourcekey}% + \do{labeldate}% + \do{labeldatesource}% + \do{labeldateera}% + \do{labelenddateera}% + \do{labelyear}% + \do{labelendyear}% + \do{labelmonth}% + \do{labelendmonth}% + \do{labelday}% + \do{labelendday}% + \do{labelhour}% + \do{labelendhour}% + \do{labelminute}% + \do{labelendminute}% + \do{labelsecond}% + \do{labelendsecond}% + \do{labeltimezone}% + \do{labelendtimezone}% + \do{labelseason}% + \do{labelendseason}% + \do{entrykey}% + \do{entryset}% + \do{entrysetcount}% + \do{entrytype}% + \do{extraalpha}% + \do{extraname}% + \do{extratitle}% + \do{extratitleyear}% + \do{extradate}% + \do{fullhash}% + \do{labelalpha}% + \do{labelnumber}% + \do{labelprefix}% + \do{labeltitleyear}% + \do{localnumber}% + \do{namehash}% + \do{bibnamehash}% + \do{options}% + \do{sortinit}% + \do{sortinithash}% + \dolistloop\blx@datemetafields + \dolistloop\blx@namepartmetafields + \dolistloop\blx@labeldatepartfields} + +\def\abx@dobooleans{% + \do{crossrefsource}% + \do{xrefsource}% + \do{singletitle}% + \do{uniquetitle}% + \do{uniquebaretitle}% + \do{uniquework}% + \do{uniqueprimaryauthor}% + \do{nocite}% + \dolistloop\blx@datemetabooleans} + +% Date datatype fields +\def\do#1{% + \protected\csdef{blx@imc@print#1date}{}% + \protected\csdef{blx@imc@print#1dateextra}{}% + \protected\csdef{blx@imc@print#1time}{}} +\abx@dodatetypes + +% \blx@regimcs doesn't work in do-lists nicely so use internal macro it calls +\def\do#1{% + \xappto\blx@blxinit{\csletcs{print#1date}{blx@imc@print#1date}}% + \xappto\blx@blxinit{\csletcs{print#1time}{blx@imc@print#1time}}% + \xappto\blx@blxinit{\csletcs{print#1dateextra}{blx@imc@print#1dateextra}}} +\abx@dodatetypes + +% Set up circa, julian and uncertain date internals +\def\blx@makeifdatemeta@bools@i#1#2{% + \appto\blx@blxinit{% + \blx@makeifdatemeta@bools{#1}{#2}}} + +\def\blx@makeifdatemeta@bools#1#2{% + \csdef{if#1date#2}{\iftoggle{abx@bool@#1date#2}}% + \csdef{if#1enddate#2}{\iftoggle{abx@bool@#1enddate#2}}% + \appto\blx@TE@hook{% + \csdef{if#1date#2}{\blx@TE{\iftoggle{abx@bool@#1date#2}}}% + \csdef{if#1enddate#2}{\blx@TE{\iftoggle{abx@bool@#1enddate#2}}}}} + +% Set up date era internals +\def\blx@makeifdatemeta@fields@i#1{% + \appto\blx@blxinit{% + \blx@makeifdatemeta@fields{#1}}} + +\def\blx@makeifdatemeta@fields#1{% + \csdef{if#1dateera}##1{\ifcsstring{abx@field@#1dateera}{##1}}% + \csdef{if#1enddateera}##1{\ifcsstring{abx@field@#1enddateera}{##1}}% + \appto\blx@TE@hook{% + \csdef{if#1dateera}##1{\blx@TE{\ifcsstring{abx@field@#1dateera}{##1}}}% + \csdef{if#1enddateera}##1{\blx@TE{\ifcsstring{abx@field@#1enddateera}{##1}}}}} + +% Create date meta information boolean tests +\def\do#1{% + \blx@makeifdatemeta@bools@i{#1}{circa}% + \blx@makeifdatemeta@bools@i{#1}{julian}% + \blx@makeifdatemeta@bools@i{#1}{uncertain}% + \blx@makeifdatemeta@bools@i{#1}{unknown}} +\abx@dodatetypes + +% Create date meta information field tests +\def\do#1{% + \blx@makeifdatemeta@fields@i{#1}} +\abx@dodatetypes + +% Resolve date meta information tests and print routines for labeldate +% We have to test here, in each \def, whether the labeldatesource +% is a real date field or not. If it's not, then we don't want to use +% any of the meta-information and so make the conditionals always return false +% This can't be neater by testing for the \abx@field@labeldatesource value +% earlier because its not available until the tests are in scope. +\appto\blx@blxinit{% + \ifdefstring\blx@dateera{astronomical} + {\protected\def\dateeraprintpre#1{% + \iffieldnum{#1} + {\begingroup + \let\blx@tempa\@empty + \blx@ifstrendswith{#1}{endyear} + {\blx@stripfromendinto{#1}{endyear}\blx@datetype + \def\blx@tempa{end}} + {\blx@stripfromendinto{#1}{year}\blx@datetype}% + \csuse{if\blx@datetype\blx@tempa dateera}{bce} + {\ifnumless{0-\thefield{#1}}{0} + {\printtext{\csuse{bibdateera\blx@tempa prefix}}} + {}} + {}% + \endgroup} + {}}} + {\protected\def\dateeraprint#1{% + \iffieldnum{#1} + {\begingroup + \let\blx@tempa\@empty + \blx@ifstrendswith{#1}{endyear} + {\blx@stripfromendinto{#1}{endyear}\blx@datetype + \def\blx@tempa{end}} + {\blx@stripfromendinto{#1}{year}\blx@datetype}% + \csuse{if\blx@datetype\blx@tempa dateera}{bce} + {\ifnum\numexpr0-\thefield{#1}\relax<\blx@dateeraauto + % \midsentence is to suppress automatic capitalisation + \printtext{\printdelim{dateeradelim}\midsentence\bibstring{\blx@dateera@bce}}\relax + \fi} + {\ifnumless{\thefield{#1}}\blx@dateeraauto + {\printtext{\printdelim{dateeradelim}\midsentence\bibstring{\blx@dateera@ce}}} + {}}% + \endgroup} + {}}}% + \iftoggle{blx@labeldateparts} + {\def\iflabeldateera#1{% start era + \xifinlist{\abx@field@labeldatesource date}\blx@datamodel@dates + {\ifcsstring{abx@field@\abx@field@labeldatesource dateera}{#1}} + {\@secondoftwo}}% + \appto\blx@TE@hook{\def\iflabeldateera#1{% + \xifinlist{\abx@field@labeldatesource date}\blx@datamodel@dates + {\blx@TE{\ifcsstring{abx@field@\abx@field@labeldatesource dateera}{#1}}} + {\@secondoftwo}}}% + % end era + \def\iflabelenddateera#1{% + \xifinlist{\abx@field@labeldatesource date}\blx@datamodel@dates + {\ifcsstring{abx@field@\abx@field@labeldatesource enddateera}{#1}} + {\@secondoftwo}}% + \appto\blx@TE@hook{\def\iflabelenddateera#1{% + \xifinlist{\abx@field@labeldatesource date}\blx@datamodel@dates + {\blx@TE{\ifcsstring{abx@field@\abx@field@labeldatesource enddateera}{#1}}} + {\@secondoftwo}}}% + % start circa + \def\iflabeldatecirca{% + \xifinlist{\abx@field@labeldatesource date}\blx@datamodel@dates + {\iftoggle{abx@bool@\abx@field@labeldatesource datecirca}} + {\@secondoftwo}}% + \appto\blx@TE@hook{\def\iflabeldatecirca{% + \xifinlist{\abx@field@labeldatesource date}\blx@datamodel@dates + {\blx@TE{\iftoggle{abx@bool@\abx@field@labeldatesource datecirca}}} + {\@secondoftwo}}}% + % end circa + \def\iflabelenddatecirca{% + \xifinlist{\abx@field@labeldatesource date}\blx@datamodel@dates + {\iftoggle{abx@bool@\abx@field@labeldatesource enddatecirca}} + {\@secondoftwo}}% + \appto\blx@TE@hook{\def\iflabelenddatecirca{% + \xifinlist{\abx@field@labeldatesource date}\blx@datamodel@dates + {\blx@TE{\iftoggle{abx@bool@\abx@field@labeldatesource enddatecirca}}} + {\@secondoftwo}}}% + % start julian + \def\iflabeldatejulian{% + \xifinlist{\abx@field@labeldatesource date}\blx@datamodel@dates + {\iftoggle{abx@bool@\abx@field@labeldatesource datejulian}} + {\@secondoftwo}}% + \appto\blx@TE@hook{\def\iflabeldatejulian{% + \xifinlist{\abx@field@labeldatesource date}\blx@datamodel@dates + {\blx@TE{\iftoggle{abx@bool@\abx@field@labeldatesource datejulian}}} + {\@secondoftwo}}}% + % end julian + \def\iflabelenddatejulian{% + \xifinlist{\abx@field@labeldatesource date}\blx@datamodel@dates + {\iftoggle{abx@bool@\abx@field@labeldatesource enddatejulian}} + {\@secondoftwo}}% + \appto\blx@TE@hook{\def\iflabelenddatejulian{% + \xifinlist{\abx@field@labeldatesource date}\blx@datamodel@dates + {\blx@TE{\iftoggle{abx@bool@\abx@field@labeldatesource enddatejulian}}} + {\@secondoftwo}}}% + % start uncertain + \def\iflabeldateuncertain{% + \xifinlist{\abx@field@labeldatesource date}\blx@datamodel@dates + {\iftoggle{abx@bool@\abx@field@labeldatesource dateuncertain}} + {\@secondoftwo}}% + \appto\blx@TE@hook{\def\iflabeldateuncertain{% + \xifinlist{\abx@field@labeldatesource date}\blx@datamodel@dates + {\blx@TE{\iftoggle{abx@bool@\abx@field@labeldatesource dateuncertain}}} + {\@secondoftwo}}}% + % end uncertain + \def\iflabelenddateuncertain{% + \xifinlist{\abx@field@labeldatesource date}\blx@datamodel@dates + {\iftoggle{abx@bool@\abx@field@labeldatesource enddateuncertain}} + {\@secondoftwo}}% + \appto\blx@TE@hook{\def\iflabelenddateuncertain{% + \xifinlist{\abx@field@labeldatesource date}\blx@datamodel@dates + {\blx@TE{\iftoggle{abx@bool@\abx@field@labeldatesource enddateuncertain}}} + {\@secondoftwo}}}}% + {}} + +% Name toggles like \ifauthor etc. need to be dynamically created for all +% name datatypes in the data model and we have to do this here after the +% datamodel is available. Need to be careful about expansions here as these +% go into hooks to be executed later + +% toggle to say if we have set any <name>inits to true. Used for conflict +% tests with uniquename settings (see \AtEndPreamble below) +\newtoggle{abx@bool@xinits} +% define <name>inits options and tests (terseinits is global for all initials) +\def\do#1{% + \newtoggle{abx@bool@#1inits}% + \appto\blx@blxinit{% + \csdef{if#1inits}{\iftoggle{abx@bool@#1inits}}% + \appto\blx@TE@hook{% + \csdef{if#1inits}{\blx@TE{\iftoggle{abx@bool@#1inits}}}}}% + \DeclareBiblatexOption{global,type,entry,namelist,name}[boolean]{#1inits}[true]{% + \settoggle{abx@bool@#1inits}{##1}}} +\abx@donameparts + +\def\do#1{% + % Define use<name> options scope for biber + \blx@DeclareBackendOption{global,type,entry}[boolean]{use#1}% + % Define name toggles + \newtoggle{blx@use#1}\toggletrue{blx@use#1}% + % Define tests + \appto\blx@blxinit{% + \csdef{ifuse#1}{\iftoggle{blx@use#1}}% + \appto\blx@TE@hook{% + \csdef{ifuse#1}{\blx@TE{\iftoggle{blx@use#1}}}}}} +\abx@donames + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Since these are bare counters which define \the<string>, save any current values +% (memoir, titling, koma etc. have a \theauthor macro, for example) and restore at +% end of package +\def\do#1{% + \csletcs{blx@compat@the#1}{the#1}% + \newcounter{#1}% + \newcounter{saved#1}% + \appto\abx@dobooleans{\do{more#1}}} + +\abx@donames +\abx@dornames +\abx@dolists +%\abx@dorlists + +\AtEndOfPackage{% + \def\do#1{\csletcs{the#1}{blx@compat@the#1}}% + \abx@donames + \abx@dornames + \abx@dolists} + +\def\do#1{\newtoggle{abx@bool@#1}} +\abx@dobooleans + +\def\do#1{\expandafter\newlength\expandafter{\csname #1width\endcsname}} +\abx@dolabelfields + +\newlength{\locallabelnumberwidth} +\newlength{\locallabelalphawidth} +\def\do#1{\expandafter\newlength\expandafter{\csname local#1width\endcsname}} +\abx@dolabelfields + +\protected\def\blx@resetdata{% + \let\blx@saved@do\do + \let\do\blx@imc@clearname + \abx@donames + \let\do\blx@imc@clearlist + \abx@dolists + \let\do\blx@imc@clearfield + \abx@dofields + \abx@dointernalfields + \ifundef\abx@annotation@defined + {} + {\def\do##1{\csundef{abx@annotation@##1}}% + \dolistloop\abx@annotation@defined}% + \let\abx@annotation@defined\@empty + \def\do##1{\togglefalse{abx@bool@##1}}% + \abx@dobooleans + \let\do\blx@saved@do + \c@citecounter\z@ + \iftoggle{blx@bibliography} + {\c@maxnames\blx@maxbibnames\relax + \c@minnames\blx@minbibnames\relax} + {\c@maxnames\blx@maxcitenames\relax + \c@minnames\blx@mincitenames\relax}% + \c@maxitems\blx@maxitems\relax + \c@minitems\blx@minitems\relax} + +\protected\def\blx@saveentry{% + \let\blx@saved@do\do + \let\do\blx@savename + \abx@donames + \let\do\blx@saverelname + \dolistloop\abx@dorelnames + \let\do\blx@savelist + \abx@dolists + \let\do\blx@saverellist + \dolistloop\abx@dorellists + \let\do\blx@savefield + \abx@dofields + \abx@dointernalfields + \let\do\blx@saverelfield + \dolistloop\abx@dorelfields + \ifundef\abx@savedannotation@defined + {} + {\def\do##1{\csundef{abx@annotation@\blx@saveannotations@makesaved##1}}% + \dolistloop\abx@savedannotation@defined}% + \let\abx@savedannotation@defined\@empty + \ifundef\abx@annotation@defined + {} + {\let\do\blx@saveannotations + \dolistloop\abx@annotation@defined}% + \let\abx@savedannotation@defined\abx@annotation@defined + \let\do\blx@savebool + \abx@dobooleans + \let\do\blx@savedatetype + \abx@dodatetypes + \do{label}% + \c@savedcitecounter\c@citecounter + \let\do\blx@saved@do} + +\protected\def\blx@savename#1{% + \csletcs{etb@tgl@abx@bool@moresaved#1}{etb@tgl@abx@bool@more#1}% + \csletcs{abx@name@saved#1}{abx@name@#1}% + \csname c@saved#1\endcsname\csname c@#1\endcsname} + +% override with name saved from \clearfield for related processing +\protected\def\blx@saverelname#1{% + \csletcs{etb@tgl@abx@bool@moresaved#1}{etb@tgl@abx@bool@morerelsaved#1}% + \csletcs{abx@name@saved#1}{abx@name@relsaved#1}% + \csname c@saved#1\endcsname\csname c@relsaved#1\endcsname} + +\protected\def\blx@savelist#1{% + \csletcs{etb@tgl@abx@bool@moresaved#1}{etb@tgl@abx@bool@more#1}% + \csletcs{abx@list@saved#1}{abx@list@#1}% + \csname c@saved#1\endcsname\csname c@#1\endcsname} + +% override with list saved from \clearfield for related processing +\protected\def\blx@saverellist#1{% + \csletcs{etb@tgl@abx@bool@moresaved#1}{etb@tgl@abx@bool@morerelsaved#1}% + \csletcs{abx@list@saved#1}{abx@list@relsaved#1}% + \csname c@saved#1\endcsname\csname c@relsaved#1\endcsname} + +\protected\def\blx@savefield#1{% + \csletcs{abx@field@saved#1}{abx@field@#1}} + +% override with field saved from \clearfield for related processing +\protected\def\blx@saverelfield#1{% + \csletcs{abx@field@saved@#1}{abx@field@relsaved#1}} + +\protected\def\blx@savebool#1{% + \csletcs{etb@tgl@abx@bool@saved#1}{etb@tgl@abx@bool@#1}} + +\protected\def\blx@savedatetype#1{% + \csletcs{blx@dateformat@saved#1date}{blx@dateformat@#1date}% + \protected\csedef{blx@imc@printsaved#1date}{% + \noexpand\csuse{mkdaterange\csuse{blx@dateformat@saved#1date}} + {saved#1}}% + \protected\csedef{blx@imc@printsaved#1dateextra}{% + \begingroup + % extradate is hard-coded in date macros, so reset it temporarily + \csletcs{abx@field@extradate}{abx@field@savedextradate}% + \noexpand\csuse{mkdaterange\csuse{blx@dateformat@saved#1date}extra} + {saved#1}% + \endgroup}% + \csletcs{blx@timeformat@saved#1time}{blx@timeformat@#1time}% + \protected\csedef{blx@imc@printsaved#1time}{% + \noexpand\csuse{mktimerange\csuse{blx@timeformat@saved#1time}} + {saved#1}}% + \csletcs{etb@tgl@blx@saved#1dateusetime}{etb@tgl@blx@#1dateusetime}% + % the datemetabooleans are here again for labeldate + \blx@savebool{#1datecirca}% + \blx@savebool{#1enddatecirca}% + \blx@savebool{#1datejulian}% + \blx@savebool{#1enddatejulian}% + \blx@savebool{#1dateuncertain}% + \blx@savebool{#1enddateuncertain}% + \blx@savebool{#1dateunknown}% + \blx@savebool{#1enddateunknown}% + \blx@makeifdatemeta@bools{saved#1}{circa}% + \blx@makeifdatemeta@bools{saved#1}{julian}% + \blx@makeifdatemeta@bools{saved#1}{uncertain}% + \blx@makeifdatemeta@bools{saved#1}{unknown}% + \blx@makeifdatemeta@fields{saved#1}% + \csletcs{printsaved#1date}{blx@imc@printsaved#1date}% + \csletcs{printsaved#1time}{blx@imc@printsaved#1time}% + \csletcs{printsaved#1dateextra}{blx@imc@printsaved#1dateextra}} + +\def\blx@saveannotations@makesaved#1@#2{#1@saved#2} +\protected\def\blx@saveannotations#1{% + \csletcs{abx@annotation@\blx@saveannotations@makesaved#1}{abx@annotation@#1}} + +% {<code>} +\protected\long\def\blx@bbl@preamble#1{% + \gappto\abx@preamble{#1}} + +% {<message>} +\protected\def\blx@bbl@warn#1{% + \begingroup + \def\item{\MessageBreak-\space}% + \def\break{\MessageBreak\space\space}% + \edef\blx@tempa{% + Biber reported the following issues% + \ifdef\abx@field@entrykey + {\MessageBreak with '\abx@field@entrykey'} + {}% + :#1}% + \blx@warning@noline{\blx@tempa}% + \endgroup} + +% {<field>}{<code>} +\newrobustcmd{\DeclareFieldInputHandler}[2]{% + \ifblank{#2} + {\csundef{blx@fih@#1}} + {\long\csdef{blx@fih@#1}##1{#2}}} +\@onlypreamble\DeclareFieldInputHandler + +% {<list>}{<code>} +\newrobustcmd*{\DeclareListInputHandler}[2]{% + \ifblank{#2} + {\csundef{blx@lih@#1}} + {\csdef{blx@lih@#1}##1{#2}}} +\@onlypreamble\DeclareListInputHandler + +% {<name>}{<code>} +\newrobustcmd*{\DeclareNameInputHandler}[2]{% + \ifblank{#2} + {\csundef{blx@nih@#1}} + {\csdef{blx@nih@#1}##1{#2}}} +\@onlypreamble\DeclareNameInputHandler + +% {<entrykey>}{<refsection>}{<field>}{<refcontext>}{<value>} +\long\def\blx@bbl@addentryfield#1#2#3#4#5{% + \csxappto{blx@data@#2@#4@#1}{% + \def\expandafter\noexpand\csname abx@field@#3\endcsname{#5}}} + +% {<rangefield>}{<value>} +\protected\def\blx@bbl@rangedef#1#2{% + \csxappto\blx@bbl@data{% + \def\expandafter\noexpand\csname abx@range@#1\endcsname{#2}}} + +% {<field>}{<value>} +\long\def\blx@bbl@addfield#1#2{% + \csxappto\blx@bbl@data{% + \def\expandafter\noexpand\csname abx@field@#1\endcsname{#2}}} + +\protected\long\def\blx@bbl@fielddef#1#2{% + \def\NewValue{#2}% + \ifcsdef{blx@fih@#1} + {\csname blx@fih@#1\endcsname{#2}% + \ifdefvoid\NewValue} + {\@secondoftwo} + {} + {\blx@bbl@addfield{#1}{\expandonce\NewValue}}} + +\protected\long\def\blx@bbl@fieldedef#1#2{% + \edef\NewValue{#2}% + \ifcsdef{blx@fih@#1} + {\csname blx@fih@#1\expandafter + \endcsname\expandafter{\NewValue}% + \ifdefvoid\NewValue} + {\@secondoftwo} + {} + {\blx@bbl@addfield{#1}{\NewValue}}} + +\protected\long\def\blx@bbl@stringdef#1#2{% + \begingroup + \edef\blx@tempa{\endgroup + \blx@bbl@fielddef{#1}{\detokenize{#2}}}% + \blx@tempa} + +% Verbatim lists +% {<list>}{<listcount>} +\protected\def\blx@bbl@verbldef#1#2{% + \begingroup + \let\lverb\blx@bbl@verbladd + \def\blx@tempa{#1}% + \def\blx@tempb{#2}% + \let\blx@tempc\@empty + \let\NewValue\@empty} + +\protected\def\blx@bbl@verblend{% + \expandafter\blx@bbl@listdef\expandafter{\expandafter\blx@tempa\expandafter}\expandafter{\expandafter\blx@tempb\expandafter}\expandafter{\blx@tempc}% + \endgroup} + +\protected\def\blx@bbl@verbladd{% + \begingroup + \let\do\@makeother + \dospecials + \catcode\endlinechar=12\relax + \blx@bbl@verbladd@i} + +% Verbatim fields +% {<field>} +\protected\def\blx@bbl@verbdef#1{% + \begingroup + \let\verb\blx@bbl@verbadd + \def\blx@tempa{#1}% + \let\NewValue\@empty} + +\protected\def\blx@bbl@verbend{% + \ifcsdef{blx@fih@\blx@tempa} + {\csname blx@fih@\blx@tempa\expandafter + \endcsname\expandafter{\NewValue}% + \ifdefvoid\NewValue} + {\@secondoftwo} + {} + {\blx@bbl@addfield{\blx@tempa}{\NewValue}}% + \endgroup} + +\protected\def\blx@bbl@verbadd{% + \begingroup + \let\do\@makeother + \dospecials + \catcode\endlinechar=12\relax + \blx@bbl@verbadd@i} + +% {<scope>}{<field>}{<name>}{<itemcount>}{<part>}{<isliteral>}{<value>} +\protected\def\blx@bbl@annotationdef#1#2#3#4#5#6#7{% + \ifstrequal{#1}{field} + {\csxappto\blx@bbl@data{% + \listadd\noexpand\abx@annotation@defined{field@#2@#3}}% + \ifstrequal{#6}{1} + {\csgappto\blx@bbl@data{% + \csdef{abx@annotation@literal@field@#2@#3}{#7}}} + {\csxappto\blx@bbl@data{% + \def\do####1{\listcsadd{abx@annotation@field@#2@#3}{####1}}% + \docsvlist{#7}}}} + {}% + \ifstrequal{#1}{item} + {\csxappto\blx@bbl@data{% + \listadd\noexpand\abx@annotation@defined{item@#2@#3@#4}}% + \ifstrequal{#6}{1} + {\csgappto\blx@bbl@data{% + \csdef{abx@annotation@literal@item@#2@#3@#4}{#7}}} + {\csxappto\blx@bbl@data{% + \def\do####1{\listcsadd{abx@annotation@item@#2@#3@#4}{####1}}% + \docsvlist{#7}}}} + {}% + \ifstrequal{#1}{part} + {\csxappto\blx@bbl@data{% + \listadd\noexpand\abx@annotation@defined{part@#2@#3@#4@#5}}% + \ifstrequal{#6}{1} + {\csgappto\blx@bbl@data{% + \csdef{abx@annotation@literal@part@#2@#3@#4@#5}{#7}}} + {\csxappto\blx@bbl@data{% + \def\do####1{\listcsadd{abx@annotation@part@#2@#3@#4@#5}{####1}}% + \docsvlist{#7}}}} + {}} + +% [<field>][<annotationname>] +\def\blx@imc@getfieldannotation{% + \let\blx@tempa\@empty + \ifdefvoid\currentfield{}{\let\blx@tempa\currentfield}% + \ifdefvoid\currentlist{}{\let\blx@tempa\currentlist}% + \ifdefvoid\currentname{}{\let\blx@tempa\currentname}% + \@ifnextchar[%] + {\blx@imc@getfieldannotation@i} + {\blx@imc@getfieldannotation@i[\blx@tempa]}} + +\def\blx@imc@getfieldannotation@i[#1]{% + \ifstrempty{#1} + {\blx@imc@getfieldannotation@i[\blx@tempa]} + {\@ifnextchar[%] + {\blx@imc@getfieldannotation@ii{#1}} + {\blx@imc@getfieldannotation@ii{#1}[default]}}} + +\def\blx@imc@getfieldannotation@ii#1[#2]{% + \def\blx@tempb{#1}% + \blx@resolve@annotation@label{\blx@tempb}% + \ifcsdef{abx@annotation@literal@field@\blx@tempb @#2} + {\csuse{abx@annotation@literal@field@\blx@tempb @#2}} + {}} + +% [<field>][<annotationname>][<item>] +\def\blx@imc@getitemannotation{% + \let\blx@tempa\@empty + \ifdefvoid\currentfield{}{\let\blx@tempa\currentfield}% + \ifdefvoid\currentlist{}{\let\blx@tempa\currentlist}% + \ifdefvoid\currentname{}{\let\blx@tempa\currentname}% + \@ifnextchar[%] + {\blx@imc@getitemannotation@i} + {\blx@imc@getitemannotation@i[\blx@tempa]}} + +\def\blx@imc@getitemannotation@i[#1]{% + \ifstrempty{#1} + {\blx@imc@getitemannotation@i[\blx@tempa]} + {\@ifnextchar[%] + {\blx@imc@getitemannotation@ii{#1}} + {\blx@imc@getitemannotation@ii{#1}[default]}}} + +\def\blx@imc@getitemannotation@ii#1[#2]{% + \ifstrempty{#2} + {\def\blx@tempb{default}} + {\def\blx@tempb{#2}}% + \@ifnextchar[%] + {\blx@imc@getitemannotation@iii{#1}{\blx@tempb}} + {\blx@imc@getitemannotation@iii{#1}{\blx@tempb}[\the\value{listcount}]}} + +\def\blx@imc@getitemannotation@iii#1#2[#3]{% + \def\blx@tempc{#1}% + \blx@resolve@annotation@label{\blx@tempc}% + \ifcsdef{abx@annotation@literal@item@\blx@tempc @#2@#3} + {\csuse{abx@annotation@literal@item@\blx@tempc @#2@#3}} + {}} + +% [<field>][<annotationname>][<item>]{<part>} +\def\blx@imc@getpartannotation{% + \let\blx@tempa\@empty + \ifdefvoid\currentfield{}{\let\blx@tempa\currentfield}% + \ifdefvoid\currentlist{}{\let\blx@tempa\currentlist}% + \ifdefvoid\currentname{}{\let\blx@tempa\currentname}% + \@ifnextchar[%] + {\blx@imc@getpartannotation@i} + {\blx@imc@getpartannotation@i[\blx@tempa]}} + +\def\blx@imc@getpartannotation@i[#1]{% + \ifstrempty{#1} + {\blx@imc@getpartannotation@i[\blx@tempa]} + {\@ifnextchar[%] + {\blx@imc@getpartannotation@ii{#1}} + {\blx@imc@getpartannotation@ii{#1}[default]}}} + +\def\blx@imc@getpartannotation@ii#1[#2]{% + \ifstrempty{#2} + {\def\blx@tempb{default}} + {\def\blx@tempb{#2}}% + \@ifnextchar[%] + {\blx@imc@getpartannotation@iii{#1}{\blx@tempb}} + {\blx@imc@getpartannotation@iii{#1}{\blx@tempb}[\the\value{listcount}]}} + +\def\blx@imc@getpartannotation@iii#1#2[#3]#4{% + \ifstrempty{#3} + {\def\blx@tempc{\the\value{listcount}}} + {\def\blx@tempc{#3}}% + \def\blx@tempd{#1}% + \blx@resolve@annotation@label{\blx@tempd}% + \ifcsdef{abx@annotation@literal@part@\blx@tempd @#2@\blx@tempc @#4} + {\csuse{abx@annotation@literal@part@\blx@tempd @#2@\blx@tempc @#4}} + {}} + +% [<field>][<annotationname>]{<annotation>} +\def\blx@imc@iffieldannotation{% + \let\blx@tempa\@empty + \ifdefvoid\currentfield{}{\let\blx@tempa\currentfield}% + \ifdefvoid\currentlist{}{\let\blx@tempa\currentlist}% + \ifdefvoid\currentname{}{\let\blx@tempa\currentname}% + \@ifnextchar[%] + {\blx@imc@iffieldannotation@i} + {\blx@imc@iffieldannotation@i[\blx@tempa]}} + +\def\blx@imc@iffieldannotation@i[#1]{% + \ifstrempty{#1} + {\blx@imc@iffieldannotation@i[\blx@tempa]} + {\@ifnextchar[%] + {\blx@imc@iffieldannotation@ii{#1}} + {\blx@imc@iffieldannotation@ii{#1}[default]}}} + +\def\blx@imc@iffieldannotation@ii#1[#2]#3{% + \ifstrempty{#2} + {\def\blx@tempb{default}} + {\def\blx@tempb{#2}}% + \def\blx@tempc{#1}% + \blx@resolve@annotation@label{\blx@tempc}% + \ifinlistcs{#3}{abx@annotation@field@\blx@tempc @\blx@tempb}} + +% [<field>][<annotationname>][<item>]{<annotation>} +\def\blx@imc@ifitemannotation{% + \let\blx@tempa\@empty + \ifdefvoid\currentfield{}{\let\blx@tempa\currentfield}% + \ifdefvoid\currentlist{}{\let\blx@tempa\currentlist}% + \ifdefvoid\currentname{}{\let\blx@tempa\currentname}% + \@ifnextchar[%] + {\blx@imc@ifitemannotation@i} + {\blx@imc@ifitemannotation@i[\blx@tempa]}} + +\def\blx@imc@ifitemannotation@i[#1]{% + \ifstrempty{#1} + {\blx@imc@ifitemannotation@i[\blx@tempa]} + {\@ifnextchar[%] + {\blx@imc@ifitemannotation@ii{#1}} + {\blx@imc@ifitemannotation@ii{#1}[default]}}} + +\def\blx@imc@ifitemannotation@ii#1[#2]{% + \ifstrempty{#2} + {\def\blx@tempb{default}} + {\def\blx@tempb{#2}}% + \@ifnextchar[%] + {\blx@imc@ifitemannotation@iii{#1}{\blx@tempb}} + {\blx@imc@ifitemannotation@iii{#1}{\blx@tempb}[\the\value{listcount}]}} + +\def\blx@imc@ifitemannotation@iii#1#2[#3]#4{% + \def\blx@tempc{#1}% + \blx@resolve@annotation@label{\blx@tempc}% + \ifinlistcs{#4}{abx@annotation@item@\blx@tempc @#2@#3}} + +% [<field>][<annotationname>][<item>]{<part>}{<annotation>} +\def\blx@imc@ifpartannotation{% + \let\blx@tempa\@empty + \ifdefvoid\currentfield{}{\let\blx@tempa\currentfield}% + \ifdefvoid\currentlist{}{\let\blx@tempa\currentlist}% + \ifdefvoid\currentname{}{\let\blx@tempa\currentname}% + \@ifnextchar[%] + {\blx@imc@ifpartannotation@i} + {\blx@imc@ifpartannotation@i[\blx@tempa]}} + +\def\blx@imc@ifpartannotation@i[#1]{% + \ifstrempty{#1} + {\blx@imc@ifpartannotation@i[\blx@tempa]} + {\@ifnextchar[%] + {\blx@imc@ifpartannotation@ii{#1}} + {\blx@imc@ifpartannotation@ii{#1}[default]}}} + +\def\blx@imc@ifpartannotation@ii#1[#2]{% + \ifstrempty{#2} + {\def\blx@tempb{default}} + {\def\blx@tempb{#2}}% + \@ifnextchar[%] + {\blx@imc@ifpartannotation@iii{#1}{\blx@tempb}} + {\blx@imc@ifpartannotation@iii{#1}{\blx@tempb}[\the\value{listcount}]}} + +\def\blx@imc@ifpartannotation@iii#1#2[#3]#4#5{% + \ifstrempty{#3} + {\def\blx@tempc{\the\value{listcount}}} + {\def\blx@tempc{#3}}% + \def\blx@tempd{#1}% + \blx@resolve@annotation@label{\blx@tempd}% + \ifinlistcs{#5}{abx@annotation@part@\blx@tempd @#2@\blx@tempc @#4}} + +% [<field>][<annotationname>] +\def\blx@imc@hasfieldannotation{% + \let\blx@tempa\@empty + \ifdefvoid\currentfield{}{\let\blx@tempa\currentfield}% + \ifdefvoid\currentlist{}{\let\blx@tempa\currentlist}% + \ifdefvoid\currentname{}{\let\blx@tempa\currentname}% + \@ifnextchar[%] + {\blx@imc@hasfieldannotation@i} + {\blx@imc@hasfieldannotation@i[\blx@tempa]}} + +\def\blx@imc@hasfieldannotation@i[#1]{% + \ifstrempty{#1} + {\blx@imc@hasfieldannotation@i[\blx@tempa]} + {\@ifnextchar[%] + {\blx@imc@hasfieldannotation@ii{#1}} + {\blx@imc@hasfieldannotation@ii{#1}[default]}}} + +\def\blx@imc@hasfieldannotation@ii#1[#2]{% + \ifstrempty{#2} + {\def\blx@tempb{default}} + {\def\blx@tempb{#2}}% + \def\blx@tempc{#1}% + \blx@resolve@annotation@label{\blx@tempc}% + \ifcsdef{abx@annotation@literal@field@\blx@tempc @\blx@tempb}} + +% [<field>][<annotationname>][<item>] +\def\blx@imc@hasitemannotation{% + \let\blx@tempa\@empty + \ifdefvoid\currentfield{}{\let\blx@tempa\currentfield}% + \ifdefvoid\currentlist{}{\let\blx@tempa\currentlist}% + \ifdefvoid\currentname{}{\let\blx@tempa\currentname}% + \@ifnextchar[%] + {\blx@imc@hasitemannotation@i} + {\blx@imc@hasitemannotation@i[\blx@tempa]}} + +\def\blx@imc@hasitemannotation@i[#1]{% + \ifstrempty{#1} + {\blx@imc@hasitemannotation@i[\blx@tempa]} + {\@ifnextchar[%] + {\blx@imc@hasitemannotation@ii{#1}} + {\blx@imc@hasitemannotation@ii{#1}[default]}}} + +\def\blx@imc@hasitemannotation@ii#1[#2]{% + \ifstrempty{#2} + {\def\blx@tempb{default}} + {\def\blx@tempb{#2}}% + \@ifnextchar[%] + {\blx@imc@hasitemannotation@iii{#1}{\blx@tempb}} + {\blx@imc@hasitemannotation@iii{#1}{\blx@tempb}[\the\value{listcount}]}} + +\def\blx@imc@hasitemannotation@iii#1#2[#3]{% + \def\blx@tempc{#1}% + \blx@resolve@annotation@label{\blx@tempc}% + \ifcsdef{abx@annotation@literal@item@\blx@tempc @#2@#3}} + +% [<field>][<annotationname>][<item>]{<part>} +\def\blx@imc@haspartannotation{% + \let\blx@tempa\@empty + \ifdefvoid\currentfield{}{\let\blx@tempa\currentfield}% + \ifdefvoid\currentlist{}{\let\blx@tempa\currentlist}% + \ifdefvoid\currentname{}{\let\blx@tempa\currentname}% + \@ifnextchar[%] + {\blx@imc@haspartannotation@i} + {\blx@imc@haspartannotation@i[\blx@tempa]}} + +\def\blx@imc@haspartannotation@i[#1]{% + \ifstrempty{#1} + {\blx@imc@haspartannotation@i[\blx@tempa]} + {\@ifnextchar[%] + {\blx@imc@haspartannotation@ii{#1}} + {\blx@imc@haspartannotation@ii{#1}[default]}}} + +\def\blx@imc@haspartannotation@ii#1[#2]{% + \ifstrempty{#2} + {\def\blx@tempb{default}} + {\def\blx@tempb{#2}}% + \@ifnextchar[%] + {\blx@imc@haspartannotation@iii{#1}{\blx@tempb}} + {\blx@imc@haspartannotation@iii{#1}{\blx@tempb}[\the\value{listcount}]}} + +\def\blx@imc@haspartannotation@iii#1#2[#3]#4{% + \ifstrempty{#3} + {\def\blx@tempc{\the\value{listcount}}} + {\def\blx@tempc{#3}}% + \def\blx@tempd{#1}% + \blx@resolve@annotation@label{\blx@tempd}% + \ifcsdef{abx@annotation@literal@part@\blx@tempd @#2@\blx@tempc @#4}} + +% labeldatesource has a slightly different format than other <field>sources +% that's one reason for a dedicated command, the other being that this command +% is probably only used in contexts where \currentfield is not defined, so +% the <datetype> argument is always required +% [<annotationname>]{<datetype>}{<annotation>} +\newcommand*{\blx@imc@ifdateannotation}[3][]{% + \ifblank{#1} + {\def\blx@tempa{default}} + {\def\blx@tempa{#1}}% + \def\blx@tempb{#2}% + \ifcsundef{abx@field@\blx@tempb source} + {}% + {\letcs\blx@tempa{abx@field@\blx@tempb source}% + \edef\blx@tempb{\blx@tempb date}}% + \ifinlistcs{#3}{abx@annotation@field@\blx@tempb @\blx@tempa}} + +% [<annotationname>]{<datetype>} +\newcommand*{\blx@imc@hasdateannotation}[2][]{% + \ifblank{#1} + {\def\blx@tempa{default}} + {\def\blx@tempa{#1}}% + \def\blx@tempb{#2}% + \ifcsundef{abx@field@\blx@tempb source} + {}% + {\letcs\blx@tempa{abx@field@\blx@tempb source}% + \edef\blx@tempb{\blx@tempb date}}% + \ifboolexpr { test {\ifcsdef{abx@annotation@field@\blx@tempb @\blx@tempa}} + or + test {\ifcsdef{abx@annotation@literal@field@\blx@tempb @\blx@tempa}} }} + +% [<annotationname>]{<datetype>} +\newcommand*{\blx@imc@getdateannotation}[2][]{% + \ifblank{#1} + {\def\blx@tempa{default}} + {\def\blx@tempa{#1}}% + \def\blx@tempb{#1}% + \ifcsundef{abx@field@\blx@tempb source} + {}% + {\letcs\blx@tempb{abx@field@\blx@tempb source}% + \edef\blx@tempb{\blx@tempb date}}% + \ifcsdef{abx@annotation@literal@field@\blx@tempb @\blx@tempa} + {\csuse{abx@annotation@literal@field@\blx@tempb @\blx@tempa}} + {}} + +\blx@regimcs{\iffieldannotation \ifitemannotation \ifpartannotation + \ifdateannotation \getfieldannotation \getitemannotation \getpartannotation + \getdateannotation \hasfieldannotation \hasitemannotation \haspartannotation + \hasdateannotation} + +% {<fieldname>} +\def\blx@resolve@annotation@label#1{% + \ifcsundef{abx@field@#1source} + {}% + {\letcs\blx@tempa{abx@field@#1source}}} + +\begingroup +\catcode`\<=12 +\catcode`\>=12 +\uccode`\<=`\ % +\uccode`\>=\endlinechar +\uppercase{\gdef\blx@bbl@verbadd@i<#1>}{% + \endgroup + \edef\NewValue{\NewValue\detokenize{#1}}} +\uppercase{\gdef\blx@bbl@verbladd@i<#1>}{% + \endgroup + \eappto\blx@tempc{{\detokenize{#1}}}}% +\endgroup + +% {<counter>}{<value>} +\protected\long\def\blx@bbl@cntdef#1#2{% + \csxappto\blx@bbl@data{% + \csname c@#1\endcsname#2\relax}} + +% {<boolean>} +\protected\def\blx@bbl@booltrue#1{% + \csgappto\blx@bbl@data{% + \toggletrue{abx@bool@#1}}} + +\protected\def\blx@bbl@boolfalse#1{% + \csgappto\blx@bbl@data{% + \togglefalse{abx@bool@#1}}} + +% {<list>}{<itemcount>}{<value>} +\protected\def\blx@bbl@listdef#1#2#3{% + \def\NewCount{#2}% + \def\NewValue{#3}% + \ifcsdef{blx@lih@#1} + {\csname blx@lih@#1\endcsname{#3}% + \ifdefvoid\NewValue} + {\@secondoftwo} + {} + {\csxappto\blx@bbl@data{% + \csname c@#1\endcsname\NewCount\relax + \def\expandafter\noexpand\csname abx@list@#1\endcsname + {\expandonce\NewValue}}}} + +% {<name>}{<itemcount>}{<nameoptions>}{<value>} +\protected\def\blx@bbl@namedef#1#2#3#4{% + \def\NewCount{#2}% + \def\NewOption{#3}% + \def\NewValue{#4}% + \ifcsdef{blx@nih@#1} + {\csname blx@nih@#1\endcsname{#4}% + \ifdefvoid\NewValue} + {\@secondoftwo} + {} + {\csxappto\blx@bbl@data{% + \csname c@#1\endcsname\NewCount\relax + \def\expandafter\noexpand\csname abx@name@#1\endcsname + {{\expandonce\NewOption}{\expandonce\NewValue}}}}} + +% blx@setp@<rs>@<sp> = map of set parent <sp> in a refsection <rs> to csv +% of set children +% blx@seti@<rs>@<sc> = position of set child <sc> in entry set in +% refsection <rs> +% blx@setc@<rs>@<sc> = map of set child <sc> in refsection <rs> to set parent + +% {<entrykey>,...} +\protected\def\blx@bbl@set#1{% + \blx@bbl@fieldedef{entryset}{\detokenize{#1}}% + \csxdef{blx@setp@\the\c@refsection @\abx@field@entrykey}{\detokenize{#1}}% + \begingroup + \blx@tempcnta\z@ + \expandafter\forcsvlist + \expandafter\blx@bbl@set@i + \expandafter{\detokenize{#1}}% + \endgroup} + +\def\blx@bbl@set@i#1{% + \advance\blx@tempcnta\@ne + \csxdef{blx@seti@\the\c@refsection @#1}{\the\blx@tempcnta}} + +% {<entrykey>} +\protected\def\blx@bbl@inset#1{% + \toggletrue{blx@setonly}% + \blx@bbl@fieldedef{entryset}{\detokenize{#1}}% + \csxdef{blx@setc@\the\c@refsection @\abx@field@entrykey}{\detokenize{#1}}} + +% {<entrykey>} +\protected\def\blx@bbl@xref#1{}% No-op to avoid an error with BibTeX .bbl + +% {<keyword>,...} +\protected\def\blx@bbl@keyw#1{% + \forcsvlist{\blx@addkeyword{\abx@field@entrykey}}{#1}% + \blx@bbl@fielddef{keywords}{#1}} + +\def\blx@addkeyword#1#2{% + \listcsxadd{blx@keyw@\the\c@refsection @\detokenize{#2}}{#1}} + +% {<options>} +\protected\long\def\blx@bbl@options#1{% + \begingroup + \let\blx@tempa\@empty + \forcsvlist\blx@bbl@options@i{#1}% + \edef\blx@tempa{% + \endgroup + \ifx\blx@tempa\@empty + \else + \def\noexpand\abx@field@options{\expandonce\blx@tempa}% + \fi}% + \blx@tempa} + +\long\def\blx@bbl@options@i#1{\blx@bbl@options@ii#1==&} + +\long\def\blx@bbl@options@ii#1=#2=#3&{% + \ifcsundef{KV@blx@opt@ent@#1} + {\blx@warning@noline{% + Ignoring undefined option '#1'\MessageBreak + at entry '\abx@field@entrykey'}} + {\eappto\blx@tempa{% + \ifx\blx@tempa\@empty\else,\fi + \unexpanded{#1}\ifblank{#2}{}{=\unexpanded{#2}}}}} + +\def\blx@ifdata#1{% + \ifcsdef{blx@data@\the\c@refsection @\blx@refcontext@context @#1}} +\let\blx@imc@ifentryinbib\blx@ifdata + +\def\blx@getdata#1{% + \csuse{blx@data@\the\c@refsection @\blx@refcontext@context @#1}% + \blx@adjustyears + \blx@getlabeldata + \blx@aliasfields + \blx@setcitecounter} + +\def\blx@adjustyears{% + % All dates by default are output from biber in astronomical era with a year 0 + % So, if we are ouputting BCE/BC era, we need to adjust the years by +1 + \def\do##1{% + \ifdefstring\blx@dateera{astronomical} + {} + {\ifcsdef{abx@field@##1year} + {\csuse{if##1dateera}{bce} + {\csedef{abx@field@##1year}{\number\numexpr\csuse{abx@field@##1year}+1}} + {}} + {}% + \ifcsdef{abx@field@##1endyear} + {\csuse{if##1enddateera}{bce} + {\csedef{abx@field@##1endyear}{\number\numexpr\csuse{abx@field@##1endyear}+1}} + {}} + {}}% + {}}% + \abx@dodatetypes} + +\def\blx@getlabeldata{% + % Here we resolve label* bib fields to their real fields. In fact, currently biber resolves + % the label* fields too, as it needs to do this to generate various internal + % counters for tracking things like singletitle etc. internally. However, it does not output + % the resolved values to the .bbl. It is conceptually neater to have just the calculated label* + % source field in the .bbl and let biblatex resolve the label* field using the label*source + % fields. However, currently there is no way/need to vary the label* resolution to pick up a + % different target field in biblatex and so practically, this resolution is being done twice, + % once by biber, once by biblatex. It is possible in the future that it would be useful to + % to change the resolution of the label* fields dynamically in a style/document and so this + % biblatex-side resolution remains. + % + % An unanswered question is whether such dynamic resolution causes problems due to the fact + % that biber uses the label* field to generate counters internally and changing the + % label* field resolution in biblatex would occur after such counters have been used to + % generate the .bbl + % This could all be removed from biblatex if necessary and biber could output all resolved + % label* fields to the .bbl but then it potentially removes control of such things from + % macros + % + % fields + \def\do##1{% + \ifcsundef{abx@field@##1source} + {}% + {\csletcs{abx@field@##1}{abx@field@\csuse{abx@field@##1source}}}}% + \dolistloop\abx@rfields% + % names + \def\do##1{% + \ifcsundef{abx@field@##1source} + {} + {\csname c@##1\expandafter\endcsname\expandafter + \the\csname c@\csuse{abx@field@##1source}\endcsname + \csletcs{abx@name@##1}{abx@name@\csuse{abx@field@##1source}}% + \csletcs{etb@tgl@abx@bool@more##1}{% + etb@tgl@abx@bool@more\csuse{abx@field@##1source}}}}% + \dolistloop\abx@rnames% + % Resolve labeldate + % Note that here we can't refer to labelyear as this is where we create it, hence the + % complications in constructing test names etc. + % This also shows why biber shouldn't resolve labeldate fields as we have to add + % circa/uncertain/era etc. information to them and that has to be done here. + \ifundef\abx@field@labeldatesource + {} + {\ifcsundef{abx@field@\abx@field@labeldatesource year} + % \DeclareLabeldate resolved to a literal/localisation string or a non-date field + % in which case we only set labelyear. + {\ifcsundef{abx@field@\abx@field@labeldatesource} + % \DeclareLabeldate resolved to a literal/localisation string + {\edef\abx@field@labelyear{\abx@field@labeldatesource}} + % \DeclareLabeldate resolved to a non-date field. Not safe to \edef because + % such contents could contain arbitrary macros, unlike ETDF sourced labeldatesource values + {\letcs\abx@field@labelyear{abx@field@\abx@field@labeldatesource}}} + % \DeclareLabeldate resolved to a date field name prefix like '', 'event', 'url' + % or 'orig' + {% labeldateera/labelenddateera + \ifcsdef{abx@field@\abx@field@labeldatesource dateera} + {\edef\abx@field@labeldateera{\csuse{abx@field@\abx@field@labeldatesource dateera}}} + {}% + \ifcsdef{abx@field@\abx@field@labeldatesource enddateera} + {\edef\abx@field@labelenddateera{\csuse{abx@field@\abx@field@labeldatesource enddateera}}} + {}% + % labelyear/labelendyear + \ifcsdef{abx@field@\abx@field@labeldatesource year} + {\edef\abx@field@labelyear{\csuse{abx@field@\abx@field@labeldatesource year}}} + {}% + \ifcsdef{abx@field@\abx@field@labeldatesource endyear} + {\edef\abx@field@labelendyear{\csuse{abx@field@\abx@field@labeldatesource endyear}}} + {}% + % labelmonth + \ifcsdef{abx@field@\abx@field@labeldatesource month} + {\edef\abx@field@labelmonth{\csuse{abx@field@\abx@field@labeldatesource month}}} + {}% + \ifcsdef{abx@field@\abx@field@labeldatesource endmonth} + {\edef\abx@field@labelendmonth{\csuse{abx@field@\abx@field@labeldatesource endmonth}}} + {}% + % labelday/labelendday + \ifcsdef{abx@field@\abx@field@labeldatesource day} + {\edef\abx@field@labelday{\csuse{abx@field@\abx@field@labeldatesource day}}} + {}% + \ifcsdef{abx@field@\abx@field@labeldatesource endday} + {\edef\abx@field@labelendday{\csuse{abx@field@\abx@field@labeldatesource endday}}} + {}% + % labelhour/labelendhour + \ifcsdef{abx@field@\abx@field@labeldatesource hour} + {\edef\abx@field@labelhour{\csuse{abx@field@\abx@field@labeldatesource hour}}} + {}% + \ifcsdef{abx@field@\abx@field@labeldatesource endhour} + {\edef\abx@field@labelendhour{\csuse{abx@field@\abx@field@labeldatesource endhour}}} + {}% + % labelminute/labelendminute + \ifcsdef{abx@field@\abx@field@labeldatesource minute} + {\edef\abx@field@labelminute{\csuse{abx@field@\abx@field@labeldatesource minute}}} + {}% + \ifcsdef{abx@field@\abx@field@labeldatesource endminute} + {\edef\abx@field@labelendminute{\csuse{abx@field@\abx@field@labeldatesource endminute}}} + {}% + % labelsecond/labelendsecond + \ifcsdef{abx@field@\abx@field@labeldatesource second} + {\edef\abx@field@labelsecond{\csuse{abx@field@\abx@field@labeldatesource second}}} + {}% + \ifcsdef{abx@field@\abx@field@labeldatesource endsecond} + {\edef\abx@field@labelendsecond{\csuse{abx@field@\abx@field@labeldatesource endsecond}}} + {}% + % labeltimezone/labelendtimezone + \ifcsdef{abx@field@\abx@field@labeldatesource timezone} + {\edef\abx@field@labeltimezone{\csuse{abx@field@\abx@field@labeldatesource timezone}}} + {}% + \ifcsdef{abx@field@\abx@field@labeldatesource endtimezone} + {\edef\abx@field@labelendtimezone{\csuse{abx@field@\abx@field@labeldatesource endtimezone}}} + {}% + % labelseason/labelendseason + \ifcsdef{abx@field@\abx@field@labeldatesource season} + {\edef\abx@field@labelseason{\csuse{abx@field@\abx@field@labeldatesource season}}} + {}% + \ifcsdef{abx@field@\abx@field@labeldatesource endseason} + {\edef\abx@field@labelendseason{\csuse{abx@field@\abx@field@labeldatesource endseason}}} + {}% + % labeldateunspecified + \ifcsdef{abx@field@\abx@field@labeldatesource dateunspecified} + {\csletcs{abx@field@labeldateunspecified}{abx@field@\abx@field@labeldatesource dateunspecified}} + {}% + % labeldatecirca/labelenddatecirca + \ifcsdef{etb@tgl@abx@bool@\abx@field@labeldatesource datecirca} + {\csletcs{etb@tgl@abx@bool@labeldatecirca}{etb@tgl@abx@bool@\abx@field@labeldatesource datecirca}} + {}% + \ifcsdef{etb@tgl@abx@bool@\abx@field@labeldatesource enddatecirca} + {\csletcs{etb@tgl@abx@bool@labelenddatecirca}{etb@tgl@abx@bool@\abx@field@labeldatesource enddatecirca}} + {}% + % labeldatejulian/labelenddatejulian + \ifcsdef{etb@tgl@abx@bool@\abx@field@labeldatesource datejulian} + {\csletcs{etb@tgl@abx@bool@labeldatejulian}{etb@tgl@abx@bool@\abx@field@labeldatesource datejulian}} + {}% + \ifcsdef{etb@tgl@abx@bool@\abx@field@labeldatesource enddatejulian} + {\csletcs{etb@tgl@abx@bool@labelenddatejulian}{etb@tgl@abx@bool@\abx@field@labeldatesource enddatejulian}} + {}% + % labeldateuncertain/labelenddateuncertain + \ifcsdef{etb@tgl@abx@bool@\abx@field@labeldatesource dateuncertain} + {\csletcs{etb@tgl@abx@bool@labeldateuncertain}{etb@tgl@abx@bool@\abx@field@labeldatesource dateuncertain}} + {}% + \ifcsdef{etb@tgl@abx@bool@\abx@field@labeldatesource enddateuncertain} + {\csletcs{etb@tgl@abx@bool@labelenddateuncertain}{etb@tgl@abx@bool@\abx@field@labeldatesource enddateuncertain}} + {}% + % labeldateunknown/labelenddateunknown + \ifcsdef{etb@tgl@abx@bool@\abx@field@labeldatesource dateunknown} + {\csletcs{etb@tgl@abx@bool@labeldateunknown}{etb@tgl@abx@bool@\abx@field@labeldatesource dateunknown}} + {}% + \ifcsdef{etb@tgl@abx@bool@\abx@field@labeldatesource enddateunknown} + {\csletcs{etb@tgl@abx@bool@labelenddateunknown}{etb@tgl@abx@bool@\abx@field@labeldatesource enddateunknown}} + {}}}} + +% This gets the entry data for a citation +\def\blx@getdata@cite#1{% + \blx@getdata{#1}% + % Inject the relevant set parent fields like labelnumber/labelprefix into child + \ifcsdef{blx@setc@\the\c@refsection @#1} + {\blx@ifdata{#1} + {\def\abx@field@childentrykey{#1}%LEGACY(<3.8) + \edef\abx@field@childentrytype{\abx@field@entrytype}%LEGACY(<3.8) + \begingroup + \expandafter\expandafter\expandafter\blx@getdata\expandafter\expandafter\expandafter{% + \csname blx@setc@\the\c@refsection @#1\endcsname}% + \let\blx@tempa\@empty + % Inject labelnumber if it exists + \ifdef\abx@field@labelnumber + {\appto\blx@tempa{\def\noexpand\abx@field@labelnumber{\abx@field@labelnumber}}} + {}% + % Inject labelprefix if it exists + \ifdef\abx@field@labelprefix + {\appto\blx@tempa{\def\noexpand\abx@field@labelprefix{\abx@field@labelprefix}}} + {}% + % Inject labelalpha if it exists + \ifdef\abx@field@labelalpha + {\appto\blx@tempa{\def\noexpand\abx@field@labelalpha{\abx@field@labelalpha}}} + {}% + % Inject extraalpha if it exists + \ifdef\abx@field@extraalpha + {\appto\blx@tempa{\def\noexpand\abx@field@extraalpha{\abx@field@extraalpha}}} + {}% + % Perform the injection + \edef\blx@tempb{\endgroup\blx@tempa}% + \blx@tempb} + {}} + {}% + \ifcsdef{blx@seti@\the\c@refsection @#1} + {\letcs\abx@field@entrysetcount{blx@seti@\the\c@refsection @#1}} + {}} + +\def\blx@execute{% + \blx@imc@thefield{execute}} + +\def\blx@setoptions@entry{% + \blx@imc@iffieldundef{options} + {} + {\begingroup + \edef\blx@tempa{\endgroup + \noexpand\setkeys{blx@opt@ent}{\abx@field@options}}% + \blx@tempa + \blx@checkoptions@entry}} + +\def\blx@setoptions@type#1{% + \ifcsdef{blx@opts@type@#1} + {\begingroup + \edef\blx@tempa{\endgroup + \noexpand\setkeys{blx@opt@typ}{\csuse{blx@opts@type@#1}}}% + \blx@tempa} + {}} + +\def\blx@checkoptions@global{} +\def\blx@checkoptions@type{} +\def\blx@checkoptions@entry{} + +\def\blx@entrysetcount{% + \ifdef\abx@field@entrykey + {\ifcsdef{blx@seti@\the\c@refsection @\abx@field@entrykey} + {\letcs\abx@field@entrysetcount{% + blx@seti@\the\c@refsection @\abx@field@entrykey}} + {}} + {}} + +% {<section>} +\def\blx@bbl@refsection#1{% + \begingroup + \c@refsection#1\relax} + +\def\blx@bbl@endrefsection{% + \iftoggle{blx@addset} + {\blx@addset + \global\togglefalse{blx@addset}} + {}% + \endgroup} + +% {<entrykey>} +\protected\def\blx@bbl@missing#1{% + \listcsxadd{blx@miss@\the\c@refsection}{\detokenize{#1}}% + \blx@warning@noline{% + The following entry could not be found\MessageBreak + in the database% + \ifnumgreater\c@refsection\z@ + { (refsection \the\c@refsection)} + {}:\MessageBreak + \detokenize{#1}\MessageBreak + Please verify the spelling and rerun\MessageBreak + LaTeX afterwards}} + +% We create an alias resolving macro and also a list of aliases +% which we need to add to the .bcf. We need to resolve the aliases +% for internal use but we always want the aliases themselves in the .bcf +% so that biber can correctly use and resolve them too. +\protected\def\blx@bbl@keyalias#1#2{% + \csgdef{blx@keyalias@\the\c@refsection @#1}{\detokenize{#2}}% + \listcsgadd{blx@keyaliases@\the\c@refsection}{#1}} + +% blx@dlist@list@<section>@<refcontext> - a list of list items in a refcontext in a +% section (for tracking bibliography lists, +% obeys skipbiblist) +% blx@dlist@entry@<section>@<list> - a list of normal entries in a list in a +% section (for tracking bibliographies, +% obeys skipbib) +% blx@dlist@centry@<section>@<list> - a list of normal entries in a list in a +% section (for tracking citations, +% obeys skipbib). Same as @entry@ but +% with added set children + +% {<entrykey>}{<entrytype>}{<options>} +\protected\def\blx@bbl@entry#1#2#3{% + \begingroup + \edef\abx@field@entrykey{\detokenize{#1}}% + \blx@setoptions@type{#2}% + \blx@bbl@options{#3}% + \blx@setoptions@entry + \edef\blx@bbl@data{blx@data@\the\c@refsection @\blx@dlist@name @\abx@field@entrykey}% + \blx@bbl@addfield{entrykey}{\abx@field@entrykey}% + \listxadd\blx@entries{\abx@field@entrykey}% + \blx@bbl@addfield{entrytype}{#2}% + \csuse\blx@bbl@data + \blx@imc@iffieldundef{options} + {} + {\blx@bbl@fieldedef{options}{\expandonce\abx@field@options}}} + +\protected\def\blx@bbl@endentry{% + \csuse\blx@bbl@data + \ifcsundef{blx@pref@\the\c@refsection @\abx@field@entrykey} + {} + {\blx@addpageref{\abx@field@entrykey}}% + \nottoggle{blx@setonly} + {} + {\global\toggletrue{blx@addset}% + \toggletrue{blx@skipbib}% + \toggletrue{blx@skipbiblist}% + \toggletrue{blx@skiplab}}% + \nottoggle{blx@skipbib} + {\expandafter\ifstrequal\expandafter{\blx@dlist@type}{entry} + {\listcsxadd{blx@dlist@entry@\the\c@refsection @\blx@dlist@name}{\abx@field@entrykey}% + \listcsxadd{blx@dlist@centry@\the\c@refsection @\blx@dlist@name}{\abx@field@entrykey}% + \listcsxadd{blx@type@\the\c@refsection @\abx@field@entrytype}{\abx@field@entrykey}% + \ifdef\abx@field@entrysubtype + {\listcsxadd{blx@subt@\the\c@refsection @\abx@field@entrysubtype}{\abx@field@entrykey}} + {}} + {}}% + {}% + \nottoggle{blx@skipbiblist} + {\expandafter\ifstrequal\expandafter{\blx@dlist@type}{list} + {\blx@bbl@labelfields + \listcsxadd{blx@dlist@\blx@dlist@type @\the\c@refsection @\blx@dlist@name}{\abx@field@entrykey}} + {}}% + {}% + \nottoggle{blx@skiplab} + {\iftoggle{blx@labelnumber} + {\blx@bbl@labelnumber} + {}% + \iftoggle{blx@labelalpha} + {\blx@bbl@labelalpha} + {}% + \iftoggle{blx@labeltitle} + {\blx@bbl@labeltitle} + {}% + \iftoggle{blx@labeltitleyear} + {\blx@bbl@labeltitleyear} + {}% + \iftoggle{blx@labeldateparts} + {\blx@bbl@labeldate} + {}% + \blx@bbl@labelname} + {}% + \blx@bbl@titles + \blx@bbl@hooks + \endgroup} + +% This, at the end of the .bbl, puts any set parent children into the +% current context sort list of citations (a separate list *@centry@* to the +% bibliography *@entry@* which doesn't want the children adding if they weren't +% cited) as this is needed for the subentry citing +% when sortcites is enabled as for sortcites, the current context sorting list +% is used and the parent set of a subentry is not necessarily +% available in the current context sortlist. +\def\blx@addset{% + \begingroup + \ifcsdef{blx@dlist@centry@\the\c@refsection @\blx@refcontext@context} + {\letcs\blx@tempa{blx@dlist@centry@\the\c@refsection @\blx@refcontext@context}% + \global\cslet{blx@dlist@centry@\the\c@refsection @\blx@refcontext@context}\@empty + \forlistloop\blx@addset@i\blx@tempa} + {\blx@warning@noline{Sorting template has changed}}% + \endgroup} + +\def\blx@addset@i#1{% + \listcsgadd{blx@dlist@centry@\the\c@refsection @\blx@refcontext@context}{#1}% + \ifcsdef{blx@setp@\the\c@refsection @#1} + {\expandafter\expandafter\expandafter\forcsvlist + \expandafter\expandafter\expandafter\blx@addset@ii + \expandafter\expandafter\expandafter{% + \csname blx@setp@\the\c@refsection @#1\endcsname}} + {}} + +\def\blx@addset@ii#1{% + \listcsgadd{blx@dlist@centry@\the\c@refsection @\blx@refcontext@context}{#1}} + +% {<csname>}{<field>/<format>}{<field>} +\def\abx@flfw@getfieldformat#1#2#3{% + \blx@getformat\abx@tmp@theformat{ffd}{#2}{#3}% + \csletcs{#1}{abx@tmp@theformat}} + +\def\blx@labelwidth@resetlocal{% + \locallabelnumberwidth\z@ + \locallabelalphawidth\z@ + \def\do##1{% + \csname local##1width\endcsname\z@}% + \abx@dolabelfields} + +\def\blx@labelwidth@settolocal{% + \labelnumberwidth\locallabelnumberwidth + \labelalphawidth\locallabelalphawidth + \def\do##1{% + \csname ##1width\endcsname\csname local##1width\endcsname}% + \abx@dolabelfields} + +\def\blx@locallabelwidth#1{% + \blx@labelwidth@resetlocal + \let\blx@do\blx@lengthitem + \let\blx@done\relax + \blx@listloop{#1}% + \blx@labelwidth@settolocal} + +% {<prefix for labelwidth fields>} +\def\blx@bbl@labelnumberwidth@numeric#1{% + \abx@flfw@getfieldformat{abx@flfw@labelnumberwidth}{labelnumberwidth}{}% + \abx@flfw@getfieldformat{abx@flfw@labelprefix}{labelprefix}{}% + \abx@flfw@getfieldformat{abx@flfw@labelnumber}{labelnumber}{}% + \iftoggle{blx@defernumbers} + {\ifundef\abx@field@localnumber + {\numdef\abx@field@localnumber{0}}% + {}} + {\ifundef\abx@field@localnumber + {\edef\abx@field@localnumber{% + \csuse{blx@labelnumber@\the\c@refsection}}} + {}}% + \blx@setlabwidth{\csname #1labelnumberwidth\endcsname}{% + \csuse{abx@flfw@labelnumberwidth}{% + \ifdef\abx@field@labelprefix + {\csuse{abx@flfw@labelprefix}{\abx@field@labelprefix}} + {}% + \csuse{abx@flfw@labelnumber}{\abx@field@localnumber}}}} + +\def\blx@bbl@labelnumberwidth@shorthand#1{% + \abx@flfw@getfieldformat{abx@flfw@labelnumberwidth}{labelnumberwidth}{}% + \abx@flfw@getfieldformat{abx@flfw@labelnumber}{labelnumber}{}% + \blx@setlabwidth{\csname #1labelnumberwidth\endcsname}{% + \csuse{abx@flfw@labelnumberwidth}{% + \csuse{abx@flfw@labelnumber}{\abx@field@shorthand}}}} + +\def\blx@bbl@locallabelnumberwidth{% + \ifdefempty\abx@field@localnumber + {} + {\ifundef\abx@field@shorthand + {\blx@bbl@labelnumberwidth@numeric{local}} + {\blx@bbl@labelnumberwidth@shorthand{local}}}} + +% {<prefix for labelwidth fields>} +\def\blx@bbl@labelalphawidth#1{% + \abx@flfw@getfieldformat{abx@flfw@labelalphawidth}{labelalphawidth}{}% + \abx@flfw@getfieldformat{abx@flfw@labelprefix}{labelprefix}{}% + \abx@flfw@getfieldformat{abx@flfw@labelalpha}{labelalpha}{}% + \abx@flfw@getfieldformat{abx@flfw@extraalpha}{extraalpha}{}% + \blx@setlabwidth{\csname #1labelalphawidth\endcsname}{% + \csuse{abx@flfw@labelalphawidth}{% + \ifdef\abx@field@labelprefix + {\csuse{abx@flfw@labelprefix}{\abx@field@labelprefix}} + {}% + \csuse{abx@flfw@labelalpha}{\abx@field@labelalpha}% + \ifundef\abx@field@extraalpha + {} + {\csuse{abx@flfw@extraalpha}{\abx@field@extraalpha}}}}} + +\def\blx@bbl@locallabelalphawidth{% + \ifundef\abx@field@labelalpha + {} + {\blx@bbl@labelalphawidth{local}}} + +\def\blx@bbl@locallabelfields{\blx@bbl@labelfields@i{local}} + +\def\blx@bbl@labelfields{\blx@bbl@labelfields@i{}} + +% {<prefix for labelwidth fields>} +\def\blx@bbl@labelfields@i#1{% + \def\do##1{% + \ifcsundef{abx@field@##1} + {} + {\abx@flfw@getfieldformat{abx@flfw@##1width}{##1width}{##1}% + \blx@setlabwidth{\csname #1##1width\endcsname}{% + \csuse{abx@flfw@##1width}{\csname abx@field@##1\endcsname}}}}% + \abx@dolabelfields} + +\def\blx@bbl@labelnumber{% + % Used at endentry, when reading .bbl + % only do this for the global sorting list otherwise we increment + % the labelnumbers for each sortlist + \ifdefempty\abx@field@localnumber + {}% only if omitnumbers=true + {\ifundef\abx@field@shorthand + {\iftoggle{blx@defernumbers} + % only if defernumbers=true, we have to define localnumber to + % something to stop labelnumberwidth def complaining on first + % post-backend run since there will be nothing in the .aux yet + % for defernums localnumbers. On the second post-backend run, + % it will have a value correct for generating labelnumberwidth + % We also have to define a dummy value for labelnumber here for + % first post-backend runs otherwise references to labelnumber + % in cite styles like numeric-comp will die. + {\ifundef\abx@field@localnumber + {\numdef\abx@field@localnumber{0}% + \blx@bbl@fielddef{labelnumber}{0}}% + {}} + {\csnumgdef{blx@labelnumber@\the\c@refsection}{% + \csuse{blx@labelnumber@\the\c@refsection}+1}% + \edef\abx@field@localnumber{% + \csuse{blx@labelnumber@\the\c@refsection}}% + \blx@bbl@fieldedef{labelnumber}{\abx@field@localnumber}}% + \iftoggle{blx@skipbib} + {} + {\blx@bbl@labelnumberwidth@numeric{}}} + {\csgappto\blx@bbl@data{\let\abx@field@labelnumber\abx@field@shorthand}% + \iftoggle{blx@skipbib} + {} + {\blx@bbl@labelnumberwidth@shorthand{}}}}} + +\def\blx@bbl@labelalpha{% + \ifundef\abx@field@labelalpha + {} + {\ifundef\abx@field@extraalpha + {} + {\ifnum\abx@field@extraalpha>\c@maxextraalpha + \global\c@maxextraalpha\abx@field@extraalpha\relax + \fi}% + \iftoggle{blx@skipbib} + {} + {\blx@bbl@labelalphawidth{}}}} + +\def\blx@bbl@labeltitle{% + \ifundef\abx@field@extratitle + {} + {\ifnum\abx@field@extratitle>\c@maxextratitle + \global\c@maxextratitle\abx@field@extratitle\relax + \fi}} + +\def\blx@bbl@labeltitleyear{% + \ifundef\abx@field@extratitleyear + {} + {\ifnum\abx@field@extratitleyear>\c@maxextratitleyear + \global\c@maxextratitleyear\abx@field@extratitleyear\relax + \fi}} + +\def\blx@bbl@labelname{% + \ifundef\abx@field@extraname + {} + {\ifnum\abx@field@extraname>\c@maxextraname + \global\c@maxextraname\abx@field@extraname\relax + \fi}} + +\def\blx@bbl@labeldate{% + \ifundef\abx@field@extradate + {} + {\ifnum\abx@field@extradate>\c@maxextradate + \global\c@maxextradate\abx@field@extradate\relax + \fi}} + +\def\blx@bbl@titles{% + \ifundef\abx@field@indextitle + {\csgappto\blx@bbl@data{% + \let\abx@field@indextitle\abx@field@title}} + {}% + \ifundef\abx@field@indexsorttitle + {\csgappto\blx@bbl@data{% + \let\abx@field@indexsorttitle\abx@field@indextitle}} + {}} + +\def\blx@bbl@hooks{% + \ifcsundef{blx@hook@bblitem@*} + {\ifcsundef{blx@hook@bblitem@\abx@field@entrytype} + {} + {\csuse\blx@bbl@data + \csuse{blx@hook@bblitem@\abx@field@entrytype}}} + {\csuse\blx@bbl@data + \csuse{blx@hook@bblitem@*}% + \csuse{blx@hook@bblitem@\abx@field@entrytype}}} + +\newrobustcmd*{\AtDataInput}[1][*]{\csgappto{blx@hook@bblitem@#1}} +\@onlypreamble\AtDataInput + +\def\blx@setlabwidth#1#2{% + \begingroup + \settowidth{\@tempdima}{\bibfont#2}% + \ifnum\@tempdima>#1% + \global#1\@tempdima + \fi + \endgroup} + +\def\blx@bblstart{% + \let\preamble\blx@bbl@preamble + \let\warn\blx@bbl@thewarn + \let\refsection\blx@bbl@refsection + \let\endrefsection\blx@bbl@endrefsection + \let\entry\blx@bbl@entry + \let\endentry\blx@bbl@endentry + \let\missing\blx@bbl@missing + \let\keyalias\blx@bbl@keyalias + \let\datalist\blx@bbl@dlist + \let\enddatalist\blx@bbl@enddlist + \let\set\blx@bbl@set + \let\inset\blx@bbl@inset + \let\xref\blx@bbl@xref % A No-op for Biber + \let\keyw\blx@bbl@keyw + \let\name\blx@bbl@namedef + \let\list\blx@bbl@listdef + \let\field\blx@bbl@fielddef + \let\range\blx@bbl@rangedef + \let\strng\blx@bbl@stringdef + \let\cnt\blx@bbl@cntdef + \let\true\blx@bbl@booltrue + \let\false\blx@bbl@boolfalse + \let\verb\blx@bbl@verbdef + \let\endverb\blx@bbl@verbend + \let\lverb\blx@bbl@verbldef + \let\endlverb\blx@bbl@verblend + \let\annotation\blx@bbl@annotationdef} + +\def\blx@bblend{% + % Special warning for defernumbers when a citation cannot be found + \iftoggle{blx@defernumbers} + {\def\do##1{\ifinlist{##1}\blx@entries + {} + {\blx@warning@noline{% + citation '##1' was not found at all in the .bbl, bibliography labels cannot be generated, please correct the citation}}}% + \dolistloop\blx@lastcites} + {}} + +% {<entrykey>} +% Get the saved information on which citations were mentioned last run +\protected\def\abx@aux@cite#1{% + \xifinlist{\detokenize{#1}}\blx@lastcites + {} + {\listxadd\blx@lastcites{\detokenize{#1}}}} + +% {<refcontext>} +% Get the saved information on which refcontexts were mentioned last run +\protected\def\abx@aux@refcontext#1{% + \xifinlist{\detokenize{#1}}\blx@lastrefcontexts + {} + {\listxadd\blx@lastrefcontexts{\detokenize{#1}}}} + +% {<sortingtemplatename>} +% Get the saved information on which shorthand sorting templates were mentioned last run +\protected\def\abx@aux@biblist#1{% + \ifinlist{#1}\blx@lastbiblists + {} + {\listgadd\blx@lastbiblists{#1}}} + +% Here we mustn't change the checksum if we used localnumbers from the +% .aux file as this means that deferred numbering is +% complete. Otherwise we get in an endless rerun loop because the +% checksum due to number changes is always different. +\AtEndDocument{% + \def\abx@aux@number#1#2#3#4#5{% + \ifblank{#5} + {} + {\nottoggle{blx@localnumber} + {\blx@addchecksum{#1}{#5}} + {}}}} + +\AtEndDocument{% + % Here we run some tests to decide if we need to issue re-run + % messages in certain circumstances. In general, if we add/remove + % any citations or add/remove any sorting templates, we need to re-run + % biber. Also, if we have to re-run biber, we need to defer writing + % the defernumbers .aux information because it will not yet be correct. + + % Test to see if we *removed* any citations since last run + % (adding citations is dealt with naturally in \blx@citation@entry) + % If so, give a rerun biber message. This also sets the + % rerun biber toggle so defernums doesn't consume the localnumbers + % in the .aux but instead, re-writes them, which is what we need. + \begingroup + \def\do#1{\ifinlist{#1}\blx@cites{}{\blx@logreq@active{}}\relax}% + \dolistloop\blx@lastcites + % Special case - if we are using sortingtemplate "none" anywhere, then changes + % in citation order matter and we need to re-run biber. So a special test + % to see if the cites from last run are identical in order. We have + % already tested for more or less cites between runs by now, we are + % testing here for exactly the same cites by treating the cite and + % lastcite lists as strings and comparing them. This doesn't apply + % to biblist sortingtemplates as nobody wants to sort biblists with + % "none", since it makes no sense + \ifinlist{none}\blx@sortingtemplatenames + {\ifdefstrequal{\blx@cites}{\blx@lastcites} + {} + {\blx@logreq@active{}}} + {}% + % Test if we removed any mention of a reference context since last run + % If we did, we need to re-run biber + \def\do#1{\ifinlist{#1}\blx@refcontexts{}{\blx@logreq@active{}}\relax}% + \dolistloop\blx@lastrefcontexts + % Test if we added any mention of a reference context since last run + % If we did, we need to re-run biber + \def\do#1{\ifinlist{#1}\blx@lastrefcontexts{}{\blx@logreq@active{}}\relax}% + \dolistloop\blx@refcontexts + % Test if we removed any mention of a biblist since last run. + % If we did, we need to re-run biber + \def\do#1{\ifinlist{#1}\blx@biblists{}{\blx@logreq@active{}}\relax}% + \dolistloop\blx@lastbiblists + % Test to see if we added any mention of a biblist since last run. + % If we did, we need to re-run biber + \def\do#1{\ifinlist{#1}\blx@lastbiblists{}{\blx@logreq@active{}}\relax}% + \dolistloop\blx@biblists + % If we have to run biber or latex again and we are using defernumbers, + % don't write the localnumber information to the .aux file yet as we will + % potentially have to regenerate sorting order first in biber + \iftoggle{blx@defernumbers} + {\iftoggle{blx@runbiber} + {} + {\def\do#1{\blx@auxwrite\@mainaux{}{#1}} + \dolistloop\blx@localnumaux}} + {}% + \endgroup} + +% {<instcount>}{<entrykey>}{<refsection>}{<refcontext>}{<labelnumber>} +\protected\def\blx@aux@number#1#2#3#4#5{% + \blx@bbl@addentryfield{\detokenize{#2}}{#3}{localnumber}{#4}{#5}% + \blx@bbl@addentryfield{\detokenize{#2}}{#3}{labelnumber}{#4}{#5}% + \global\toggletrue{blx@localnumber}% + \ifblank{#5} + {} + {\csgdef{blx@labelnumber@#3}{#5}}} + +% Called as part of bib output for an entry +% Only used when defernumbers=true +\def\blx@addlabelnumber{% + \begingroup + \nottoggle{blx@skiplab} + {\iftoggle{blx@labelnumber} + {\ifundef\abx@field@shorthand + % Need to know if we set any localnumber from .aux file, not + % just current item. Otherwise, we may just write new + % localnumbers but not existing ones + % Also, don't want to regenerate localnumber for any key in a + % refsection which we've already seen because this has the nasty + % side-effect of incrementing the localnum counter + {\ifboolexpr { not togl {blx@localnumber} + and + not test {\ifcsdef{blx@defer@\the\c@refsection @\blx@refcontext@context @\abx@field@entrykey}} } + {\iftoggle{blx@omitnumbers} + {\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}}% + \blx@bbl@addentryfield{\abx@field@entrykey}{\the\c@refsection}% + {localnumber}{\blx@refcontext@context}{\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. + \ifcsundef{blx@defer@\the\c@refsection @\blx@refcontext@context @\abx@field@entrykey} + {\ifundef\abx@field@localnumber + {} + {\listxadd\blx@localnumaux{% + \string\abx@aux@number% + {\the\c@instcount}% + {\abx@field@entrykey}% + {\the\c@refsection}% + {\blx@refcontext@context}% + {\abx@field@localnumber}}% + % record that we have already generated and output localnum + % for this key in this refsection/refcontext + \global\cslet{blx@defer@\the\c@refsection @\blx@refcontext@context @\abx@field@entrykey}\@empty}} + {}} + {}}% + {}} + {}% + \endgroup} + +% {<datalistname>} +\def\blx@bbl@dlist[#1]#2{% + \begingroup + \def\blx@dlist@type{#1}% + \def\blx@dlist@name{#2}} + +\def\blx@bbl@enddlist{% + \csnumgdef{blx@labelnumber@\the\c@refsection}{0}% + \endgroup} + +\def\blx@addpageref#1{% + \begingroup + \blx@tempcnta\z@ + \let\blx@tempa\@empty + \def\do##1{% + \appto\blx@tempa{{##1}}% + \advance\blx@tempcnta\@ne}% + \dolistcsloop{blx@pref@\the\c@refsection @#1}% + \edef\blx@tempa{\endgroup\noexpand\blx@bbl@listdef + {pageref}{\the\blx@tempcnta}{\expandonce{\blx@tempa}}}% + \blx@tempa} + +%% Data input +\def\blx@bblinput{% + \begingroup + \blx@info@noline{Trying to load bibliographic data..}% + \blx@blxinit + \blx@bblfile + \endgroup} + +\def\blx@bblfile{% + \blx@secinit + \begingroup + \blx@bblstart + \blx@ifsigned{\jobname}{bbl} + {\InputIfFileExists{\jobname.bbl} + {\blx@info@noline{... file '\jobname.bbl' found}% + \global\toggletrue{blx@bbldone}} + {\blx@info@noline{... file '\jobname.bbl' not found}% + \typeout{No file \jobname.bbl.}}} + {}% + \blx@bblend + \endgroup + % global sorting as this is called at BeginDocument + \csnumgdef{blx@labelnumber@\the\c@refsection}{0}} + +%% Bibliography + +% {<name>}{<start code>}[<end code>]{<item code>} +\newrobustcmd*{\defbibenvironment}[4]{% + \long\csdef{blx@env@#1}{#2}% + \long\csdef{blx@endenv@#1}{#3}% + \long\csdef{blx@item@#1}{#4}} + +\defbibenvironment{bibliography} + {\list{}{% + \leftmargin\bibhang + \itemindent-\leftmargin + \itemsep\bibitemsep + \parsep\bibparsep}} + {\endlist} + {\item} + +\def\do#1{% + \defbibenvironment{#1} + {\list{\thefield{#1}}{% + \labelwidth\csname #1width\endcsname + \labelsep\biblabelsep + \leftmargin\labelwidth + \advance\leftmargin\labelsep + \itemsep\bibitemsep + \parsep\bibparsep + \def\makelabel####1{####1\hss}}} + {\endlist} + {\item}} +\abx@dolabelfields + +% {<name>}[<default>]{<code>} +\newrobustcmd*{\defbibheading}[1]{% + \@ifnextchar[%] + {\blx@defbibheading{blx@head@#1}} + {\blx@defbibheading{blx@head@#1}[\bibname]}} + +\def\blx@defbibheading#1[#2]{% + \csundef{#1}% + \expandafter\newcommand\csname#1\endcsname[1][#2]} + +% {<name>}{<text>} +\newrobustcmd*{\defbibnote}[1]{% + \long\csdef{blx@note@#1}} + +% {<name>}{<code>} +\newrobustcmd*{\defbibfilter}[2]{% + \begingroup + \def\blx@flt@error{\csname blx@flt@errortrue\endcsname}% + \let\not\blx@flt@not \let\NOT\not + \let\and\blx@flt@and \let\AND\and + \let\or\blx@flt@or \let\OR\or + \letcs\({blx@flt@(} \letcs\){blx@flt@)}% + \def\section##1{\blx@flt@error}% + \def\segment##1{segment=##1}% + \def\type##1{type=##1}% + \def\subtype##1{subtype=##1}% + \def\keyword##1{keyword={##1}}% + \def\category##1{category={##1}}% + \edef\blx@tempa{\noexpand\blx@defbibfilter{#2}}% + \ifdef\blx@flt@errortrue + {\blx@err@filter} + {\let\the\relax + \let\blx@flt@item\relax + \edef\blx@tempa{\blx@tempa}% + \ifdef\blx@flt@errortrue + {\blx@err@filter} + {\csxdef{blx@filter@#1}{\blx@tempa}}}% + \endgroup} + +\def\blx@defbibfilter#1{% + \blx@defbibfilter@i#1 &} +\def\blx@defbibfilter@i#1 #2&{% + \blx@defbibfilter@ii#1==&% + \ifblank{#2}{}{\blx@defbibfilter@i#2 &}} +\def\blx@defbibfilter@ii#1=#2=#3&{% + \ifblank{#2} + {\ifblank{#1} + {} + {\ifcsdef{blx@flt@#1} + {\csname blx@flt@#1\endcsname} + {\blx@flt@error}}} + {\ifcsdef{blx@flt@#1} + {\csname blx@flt@#1\endcsname{\detokenize{#2}}} + {\blx@flt@error}}} + +\def\blx@flt@and{ and } +\def\blx@flt@or{ or } +\def\blx@flt@not{ not } +\csdef{blx@flt@(}{ ( } +\csdef{blx@flt@)}{ ) } +\def\blx@flt@segment#1{% + test {\xifinlistcs\blx@flt@item{blx@segm@\the\c@refsection @#1}}} +\def\blx@flt@type#1{% + test {\xifinlistcs\blx@flt@item{blx@type@\the\c@refsection @#1}}} +\def\blx@flt@subtype#1{% + test {\xifinlistcs\blx@flt@item{blx@subt@\the\c@refsection @#1}}} +\def\blx@flt@keyword#1{% + test {\xifinlistcs\blx@flt@item{blx@keyw@\the\c@refsection @#1}}} +\def\blx@flt@category#1{% + test {\xifinlistcs\blx@flt@item{blx@catg@#1}}} + +% {<name>}{<code>} +\newrobustcmd*{\defbibcheck}[2]{% + \csdef{blx@bibcheck@#1}{% + \togglefalse{blx@skipentry}% + \def\skipentry{\toggletrue{blx@skipentry}}% + #2\undef\skipentry}} + +% options +% We need a 2-pass structure for options in \printbibliography and +% \printbiblist because the section has to be set before any +% other options and this partly determines which list to use for later filtering +\define@key{blx@bib1}{segment}{} +\define@key{blx@bib1}{type}{} +\define@key{blx@bib1}{nottype}{} +\define@key{blx@bib1}{subtype}{} +\define@key{blx@bib1}{notsubtype}{} +\define@key{blx@bib1}{keyword}{} +\define@key{blx@bib1}{notkeyword}{} +\define@key{blx@bib1}{category}{} +\define@key{blx@bib1}{notcategory}{} +\define@key{blx@bib1}{filter}{} +\define@key{blx@bib1}{check}{} +\define@key{blx@bib1}{heading}{} +\define@key{blx@bib1}{env}{} +\define@key{blx@bib1}{title}{} +\define@key{blx@bib1}{prenote}{} +\define@key{blx@bib1}{postnote}{} +\define@key{blx@bib1}{omitnumbers}[]{} +% Here we are using the first pass to see if there is an explicit setting for resetnumbers +% If there isn't we will use the default behaviour where if there is a labelprefix, +% resetnumbers will default to "true" +\define@key{blx@bib1}{resetnumbers}[true]{% + \toggletrue{blx@resetnumsexplicit}} + +\define@key{blx@bib2}{section}{} +\define@key{blx@bib2}{sorting}{} + +\define@key{blx@biblist1}{segment}{} +\define@key{blx@biblist1}{type}{} +\define@key{blx@biblist1}{nottype}{} +\define@key{blx@biblist1}{subtype}{} +\define@key{blx@biblist1}{notsubtype}{} +\define@key{blx@biblist1}{keyword}{} +\define@key{blx@biblist1}{notkeyword}{} +\define@key{blx@biblist1}{category}{} +\define@key{blx@biblist1}{notcategory}{} +\define@key{blx@biblist1}{filter}{} +\define@key{blx@biblist1}{check}{} +\define@key{blx@biblist1}{heading}{} +\define@key{blx@biblist1}{env}{} +\define@key{blx@biblist1}{title}{} +\define@key{blx@biblist1}{prenote}{} +\define@key{blx@biblist1}{postnote}{} + +\define@key{blx@biblist2}{section}{} +\define@key{blx@biblist2}{sorting}{} + +\define@key{blx@bib1}{section}{% + \ifcsundef{blx@sections@#1} + {\blx@err@nosec{#1}} + {\c@refsection#1\relax + \def\blx@tempe{#1}}} + +\define@key{blx@biblist1}{section}{% + \ifcsundef{blx@sections@#1} + {\blx@err@nosec{#1}} + {\c@refsection#1\relax + \def\blx@tempe{#1}}} + +\define@key{blx@bbg}{section}{% + \ifcsundef{blx@sections@#1} + {\blx@err@nosec{#1}} + {\c@refsection#1\relax}} + +\define@key{blx@bbc}{section}{% + \ifcsundef{blx@sections@#1} + {\blx@err@nosec{#1}} + {\c@refsection#1\relax}} + +\define@key{blx@bib2}{segment}{\blx@key@segment{#1}} +\define@key{blx@biblist2}{segment}{\blx@key@segment{#1}} + +\def\blx@key@segment#1{% + \ifcsundef{blx@segm@\the\c@refsection @#1} + {\blx@warning{Segment '#1' not found in section '\the\c@refsection'}} + {\c@refsegment#1\relax + \blx@printbibchecks + \blx@filter\blx@tempa{blx@segm@\the\c@refsection @#1}}} + +\define@key{blx@bib2}{type}{\blx@key@type{#1}} +\define@key{blx@biblist2}{type}{\blx@key@type{#1}} + +\def\blx@key@type#1{% + \ifcsundef{blx@type@\the\c@refsection @#1} + {\blx@warning{Type '#1' not found}% + \let\blx@tempa\@empty} + {\blx@printbibchecks + \iftoggle{blx@tempb} + {\togglefalse{blx@tempb}% + \blx@filter\blx@tempa{blx@type@\the\c@refsection @#1}} + {\let\blx@tempa\@empty + \blx@error + {'type' used multiple times} + {When passing multiple filter options, each entry\MessageBreak + must satisfy all conditions (AND conjunction),\MessageBreak + hence some options may not be used twice.\MessageBreak + Use 'filter' and '\string\defbibfilter' with OR conjunctions}}}} + +\define@key{blx@bib2}{nottype}{\blx@key@nottype{#1}} +\define@key{blx@biblist2}{nottype}{\blx@key@nottype{#1}} + +\def\blx@key@nottype#1{% + \ifcsundef{blx@type@\the\c@refsection @#1} + {} + {\blx@printbibchecks + \blx@notfilter\blx@tempa{blx@type@\the\c@refsection @#1}}} + +\define@key{blx@bib2}{subtype}{\blx@key@subtype{#1}} +\define@key{blx@biblist2}{subtype}{\blx@key@subtype{#1}} + +\def\blx@key@subtype#1{% + \ifcsundef{blx@subt@\the\c@refsection @#1} + {\blx@warning{Subtype '#1' not found}% + \let\blx@tempa\@empty} + {\blx@printbibchecks + \iftoggle{blx@tempb} + {\togglefalse{blx@tempb}% + \blx@filter\blx@tempa{blx@subt@\the\c@refsection @#1}} + {\let\blx@tempa\@empty + \blx@error + {'subtype' used multiple times} + {When passing multiple filter options, each entry\MessageBreak + must satisfy all conditions (AND conjunction),\MessageBreak + hence some options may not be used twice.\MessageBreak + Use 'filter' and '\string\defbibfilter' with OR conjunctions}}}} + +\define@key{blx@bib2}{notsubtype}{\blx@key@notsubtype{#1}} +\define@key{blx@biblist2}{notsubtype}{\blx@key@notsubtype{#1}} + +\def\blx@key@notsubtype#1{% + \ifcsundef{blx@subt@\the\c@refsection @#1} + {} + {\blx@printbibchecks + \blx@notfilter\blx@tempa{blx@subt@\the\c@refsection @#1}}} + +\define@key{blx@bib2}{keyword}{\blx@key@keyword{#1}} +\define@key{blx@biblist2}{keyword}{\blx@key@keyword{#1}} + +\def\blx@key@keyword#1{% + \ifcsundef{blx@keyw@\the\c@refsection @\detokenize{#1}} + {\blx@warning{Keyword '\detokenize{#1}' not found}% + \let\blx@tempa\@empty} + {\blx@printbibchecks + \blx@filter\blx@tempa{blx@keyw@\the\c@refsection @\detokenize{#1}}}} + +\define@key{blx@bib2}{notkeyword}{\blx@key@notkeyword{#1}} +\define@key{blx@biblist2}{notkeyword}{\blx@key@notkeyword{#1}} + +\def\blx@key@notkeyword#1{% + \ifcsundef{blx@keyw@\the\c@refsection @\detokenize{#1}} + {} + {\blx@printbibchecks + \blx@notfilter\blx@tempa{blx@keyw@\the\c@refsection @\detokenize{#1}}}} + +\define@key{blx@bib2}{category}{\blx@key@category{#1}} +\define@key{blx@biblist2}{category}{\blx@key@category{#1}} + +\def\blx@key@category#1{% + \ifcsundef{blx@catg@\detokenize{#1}} + {\blx@warning{Category '\detokenize{#1}' not found}% + \let\blx@tempa\@empty} + {\blx@printbibchecks + \blx@filter\blx@tempa{blx@catg@\detokenize{#1}}}} + +\define@key{blx@bib2}{notcategory}{\blx@key@notcategory{#1}} +\define@key{blx@biblist2}{notcategory}{\blx@key@notcategory{#1}} + +\def\blx@key@notcategory#1{% + \ifcsundef{blx@catg@#1} + {} + {\blx@printbibchecks + \blx@notfilter\blx@tempa{blx@catg@#1}}} + +\define@key{blx@bib2}{filter}{\blx@key@filter{#1}} +\define@key{blx@biblist2}{filter}{\blx@key@filter{#1}} + +\def\blx@key@filter#1{% + \ifcsdef{blx@filter@#1} + {\blx@printbibchecks + \blx@bibfilter\blx@tempa{blx@filter@#1}} + {\let\blx@tempa\@empty + \blx@error + {Filter '#1' not found} + {The filter '#1' could not be found.\MessageBreak + Use \string\defbibfilter\space to define it}}} + +\define@key{blx@bib2}{check}{\blx@key@bibcheck{#1}} +\define@key{blx@biblist2}{check}{\blx@key@bibcheck{#1}} + +% empty bibcheck does nothing +\cslet{blx@bibcheck@}\relax +\def\blx@key@bibcheck#1{% + \ifcsdef{blx@bibcheck@#1} + {\letcs\blx@bibcheck{blx@bibcheck@#1}} + {\let\blx@tempa\@empty + \blx@error + {Check '#1' not found} + {The check '#1' could not be found.\MessageBreak + Use \string\defbibcheck\space to define it}}} + +\def\blx@default@theheading{bibliography} +\define@key{blx@bibdefaults}{heading}{% + \blx@key@heading{\blx@default@theheading}{#1}} +\define@key{blx@bhd}{heading}{% + \blx@key@heading{\blx@theheading}{#1}} +\define@key{blx@bib2}{heading}{% + \blx@key@heading{\blx@theheading}{#1}} +\define@key{blx@biblist2}{heading}{% + \blx@key@heading{\blx@theheading}{#1}} +\define@key{blx@bbs}{heading}{% + \blx@key@heading{\blx@theheading}{#1}} +\define@key{blx@bbg}{heading}{% + \blx@key@heading{\blx@theheading}{#1}} + +\def\blx@key@heading#1#2{% + \ifcsundef{blx@head@#2} + {\blx@error + {Heading '#2' not found} + {The heading '#2' could not be found.\MessageBreak + Use \string\defbibheading\space to define it}} + {\def#1{#2}}} + +\def\blx@default@theenv{bibliography} +\define@key{blx@bibdefaults}{env}{% + \blx@key@env{\blx@default@theenv}{#1}} +\define@key{blx@bib2}{env}{\blx@key@env{\blx@theenv}{#1}} +\define@key{blx@biblist2}{env}{\blx@key@env{\blx@theenv}{#1}} +\define@key{blx@bbs}{env}{\blx@key@env{\blx@theenv}{#1}} +\define@key{blx@bbg}{env}{\blx@key@env{\blx@theenv}{#1}} +\define@key{blx@bbc}{env}{\blx@key@env{\blx@theenv}{#1}} + +\def\blx@key@env#1#2{% + \ifcsundef{blx@env@#2} + {\blx@error + {Environment '#2' not found} + {The environment '#2' could not be found.\MessageBreak + Use \string\defbibenvironment\space to define it}} + {\def#1{#2}}} + +\let\blx@default@thetitle\@empty +\define@key{blx@bibdefaults}{title}{% + \def\blx@default@thetitle{#1}} +\define@key{blx@bhd}{title}{\def\blx@thetitle{#1}} +\define@key{blx@bib2}{title}{\def\blx@thetitle{#1}} +\define@key{blx@biblist2}{title}{\def\blx@thetitle{#1}} + +\cslet{blx@note@}\@empty +\def\blx@key@bibnote#1#2{% + \ifcsundef{blx@note@#2} + {\blx@error + {Note '#2' not found} + {The note '#2' could not be found.\MessageBreak + Use \string\defbibnote\space to define it}} + {\def#1{#2}}} + +\let\blx@default@theprenote\@empty +\define@key{blx@bibdefaults}{prenote}{% + \blx@key@bibnote{\blx@default@theprenote}{#1}} +\define@key{blx@bib2}{prenote}{% + \blx@key@bibnote{\blx@theprenote}{#1}} +\define@key{blx@biblist2}{prenote}{% + \blx@key@bibnote{\blx@theprenote}{#1}} +\define@key{blx@bbs}{prenote}{% + \blx@key@bibnote{\blx@theprenote}{#1}} +\define@key{blx@bbg}{prenote}{% + \blx@key@bibnote{\blx@theprenote}{#1}} +\define@key{blx@bbc}{prenote}{% + \blx@key@bibnote{\blx@theprenote}{#1}} + +\let\blx@default@thepostnote\@empty +\define@key{blx@bibdefaults}{postnote}{% + \blx@key@bibnote{\blx@default@thepostnote}{#1}} +\define@key{blx@bib2}{postnote}{% + \blx@key@bibnote{\blx@thepostnote}{#1}} +\define@key{blx@biblist2}{postnote}{% + \blx@key@bibnote{\blx@thepostnote}{#1}} +\define@key{blx@bbs}{postnote}{% + \blx@key@bibnote{\blx@thepostnote}{#1}} +\define@key{blx@bbg}{postnote}{% + \blx@key@bibnote{\blx@thepostnote}{#1}} +\define@key{blx@bbc}{postnote}{% + \blx@key@bibnote{\blx@thepostnote}{#1}} + +\let\abx@default@locallabelwidth\@gobble +\define@key{blx@bibdefaults}{locallabelwidth}{% + \blx@key@locallabelwidth{\abx@default@locallabelwidth}{#1}} +\define@key{blx@bib1}{locallabelwidth}[]{} +\define@key{blx@biblist1}{locallabelwidth}[]{} +\define@key{blx@bib2}{locallabelwidth}[true]{% + \blx@key@locallabelwidth{\abx@locallabelwidth}{#1}} +\define@key{blx@biblist2}{locallabelwidth}[true]{% + \blx@key@locallabelwidth{\abx@locallabelwidth}{#1}} + +\def\blx@key@locallabelwidth#1#2{% + \ifstrequal{#2}{true} + {\def#1{\blx@locallabelwidth}} + {\let#1\@gobble}} + +\define@key{blx@bib2}{resetnumbers}[true]{% + \iftoggle{blx@defernumbers} + {\ifstrequal{#1}{true} + {\csnumdef{blx@labelnumber@\the\c@refsection}{0}} + {\ifstrequal{#1}{false} + {} + {\csnumdef{blx@labelnumber@\the\c@refsection}{#1-1}}}} + {\blx@warning{% + Option 'resetnumbers' requires 'defernumbers=true'.\MessageBreak + Ignoring 'resetnumbers=true'}}} + +\define@key{blx@bib2}{omitnumbers}[true]{% + \ifstrequal{#1}{true} + {\iftoggle{blx@defernumbers} + {\toggletrue{blx@omitnumbers}} + {\blx@warning{% + Option 'omitnumbers' requires 'defernumbers=true'.\MessageBreak + Ignoring 'omitnumbers=true'}}} + {}} + + +\newrobustcmd*{\DeclarePrintbibliographyDefaults}{% + \setkeys{blx@bibdefaults}} + +% [<options>] +\newrobustcmd*{\printbibheading}{% + \begingroup + \edef\on@line{\on@line}% + \@ifnextchar[%] + {\blx@printbibheading} + {\blx@printbibheading[]}} + +\def\blx@printbibheading[#1]{% + \let\blx@theheading\blx@default@theheading + \let\blx@thetitle\blx@default@thetitle + \blx@safe@actives + \setkeys{blx@bhd}{#1}% + \blx@rest@actives + \blx@langstrings + \blx@bibheading\blx@theheading\blx@thetitle + \endgroup} + +% We use this to determine whether an explicit value for resetnumbers is passed to +% \printbibliography, if not, then we use the default behaviour where a labelprefix forces +% a reset. It is useful that we have a 2-pass structure for \printbibliography keys anyway. +\newtoggle{blx@resetnumsexplicit} + +% [<options>] +\newrobustcmd*{\printbibliography}{% + \begingroup + \delimcontext{bib}% + \edef\on@line{\on@line}% + \@ifnextchar[%] + {\blx@printbibliography} + {\blx@printbibliography[]}} + +\def\blx@printbibliography[#1]{% + \toggletrue{blx@tempa}% + \toggletrue{blx@tempb}% + \let\blx@theheading\blx@default@theheading + \let\blx@theenv\blx@default@theenv + \let\blx@theprenote\blx@default@theprenote + \let\blx@thepostnote\blx@default@thepostnote + \let\blx@thetitle\blx@default@thetitle + % defaults + \let\blx@tempa\@empty% before there is a .bbl, this must not be undef + \edef\blx@tempe{\the\c@refsection}% default refsection is current + \blx@safe@actives + \togglefalse{blx@resetnumsexplicit}% + \setkeys{blx@bib1}{#1}% First pass options keys - section and resetnumbers + % Is there a user-specified option for resetnumbers? If so, this overrides the default + % "labelprefix implies resetnumbers" behaviour + \iftoggle{blx@resetnumsexplicit} + {} + {\ifdefempty\blx@refcontext@labelprefix + {\ifdefempty\blx@refcontext@labelprefix@real} + {\@secondoftwo} + {} + {\setkeys{blx@bib2}{resetnumbers}}}% + \blx@rest@actives + \ifcsvoid{blx@dlist@entry@\blx@tempe @\blx@refcontext@context} + {} + {\letcs\blx@tempa{blx@dlist@entry@\blx@tempe @\blx@refcontext@context}}% + \blx@safe@actives + % Must reset omitnumbers as it's a global macro and if we don't, any + % \printbibliography following one with this set will inherit any + % previous "true" value + \togglefalse{blx@omitnumbers}% + \setkeys{blx@bib2}{#1}% ... now we have correct \blx@tempa, set rest of options + \blx@rest@actives + % Add datalist to list of seen datalists to prevent duplicates + \xifinlist{\blx@refcontext@context @\blx@tempe @entry}\blx@dlistnames + {} + {\listxadd\blx@dlistnames{\blx@refcontext@context @\blx@tempe @entry}% + \csxappto{blx@dlists}{% + \blx@xml@dlist{\blx@refcontext@context}{entry}{\blx@tempe}{\blx@xml@dlist@refcontext{\blx@refcontext@sortingtemplatename}{\blx@refcontext@sortingnamekeytemplatename}{\blx@refcontext@labelprefix@real}{\blx@refcontext@uniquenametemplatename}{\blx@refcontext@labelalphanametemplatename}}{}}}% + \ifdefvoid\blx@tempa + {\blx@warn@bibempty\endgroup} + {\blx@bibliography\blx@tempa}} + +% [<options>] +\newrobustcmd*{\bibbysection}{% + \begingroup + \delimcontext{bib}% + \ifnum\blx@maxsection=\z@ + \blx@warning{No reference sections found}% + \fi + \edef\on@line{\on@line}% + \@ifnextchar[%] + {\blx@bibbysection} + {\blx@bibbysection[]}} + +\def\blx@bibbysection[#1]{% + \let\blx@theheading\blx@default@theheading + \let\blx@theenv\blx@default@theenv + \let\blx@theprenote\blx@default@theprenote + \let\blx@thepostnote\blx@default@thepostnote + \let\blx@thetitle\blx@default@thetitle + \c@refsection\z@ + \blx@safe@actives + \setkeys{blx@bbs}{#1}% + \blx@rest@actives + \togglefalse{blx@tempa}% + \blx@refsections} + +\def\blx@refsections{% + \ifcsvoid{blx@dlist@entry@\the\c@refsection @\blx@refcontext@context} + {} + {\toggletrue{blx@tempa}% + \begingroup + \expandafter\blx@bibliography\csname blx@dlist@entry@\the\c@refsection @\blx@refcontext@context\endcsname}% + \ifnum\c@refsection<\blx@maxsection + \advance\c@refsection\@ne + \expandafter\blx@refsections + \else + \iftoggle{blx@tempa}{}{\blx@warn@bibempty}% + \endgroup + \fi} + +% [<options>] +\newrobustcmd*{\bibbysegment}{% + \begingroup + \delimcontext{bib}% + \edef\on@line{\on@line}% + \ifnum\csname blx@maxsegment@\the\c@refsection\endcsname=\z@ + \blx@warning{No reference segments found}% + \fi + \@ifnextchar[%] + {\blx@bibbysegment} + {\blx@bibbysegment[]}} + +\def\blx@bibbysegment[#1]{% + \let\blx@theheading\blx@default@theheading + \let\blx@theenv\blx@default@theenv + \let\blx@theprenote\blx@default@theprenote + \let\blx@thepostnote\blx@default@thepostnote + \let\blx@thetitle\blx@default@thetitle + \c@refsegment\@ne + \blx@safe@actives + \setkeys{blx@bbg}{#1}% + \blx@rest@actives + \togglefalse{blx@tempa}% + \blx@refsegments} + +\def\blx@refsegments{% + \ifcsvoid{blx@segm@\the\c@refsection @\the\c@refsegment} + {} + {\toggletrue{blx@tempa}% + \begingroup + \let\blx@tempa\@empty + \ifcsvoid{blx@dlist@entry@\the\c@refsection @\blx@refcontext@context} + {} + {\letcs\blx@tempa{blx@dlist@entry@\the\c@refsection @\blx@refcontext@context}}% + \blx@filter\blx@tempa{blx@segm@\the\c@refsection @\the\c@refsegment}% + \blx@bibliography\blx@tempa}% + \ifnum\c@refsegment<\csname blx@maxsegment@\the\c@refsection\endcsname + \advance\c@refsegment\@ne + \expandafter\blx@refsegments + \else + \iftoggle{blx@tempa}{}{\blx@warn@bibempty}% + \endgroup + \fi} + +% [<options>] +\newrobustcmd*{\bibbycategory}{% + \begingroup + \delimcontext{bib}% + \edef\on@line{\on@line}% + \ifx\blx@categories\@empty + \blx@warning{No categories found}% + \fi + \@ifnextchar[%] + {\blx@bibbycategory} + {\blx@bibbycategory[]}} + +\def\blx@bibbycategory[#1]{% + \let\blx@theheading\blx@default@theheading + \let\blx@theenv\blx@default@theenv + \let\blx@theprenote\blx@default@theprenote + \let\blx@thepostnote\blx@default@thepostnote + \let\blx@thetitle\blx@default@thetitle + \c@refsection\z@ + \blx@safe@actives + \setkeys{blx@bbc}{#1}% + \blx@rest@actives + \togglefalse{blx@tempa}% + \forlistloop\blx@bibcategory\blx@categories + \blx@endbibcategory} + +\def\blx@bibcategory#1{% + \ifcsvoid{blx@catg@#1} + {} + {\toggletrue{blx@tempa}% + \begingroup + \blx@key@heading{\blx@theheading}{#1}% + \let\blx@tempa\@empty + \ifcsvoid{blx@dlist@entry@\the\c@refsection @\blx@refcontext@context} + {} + {\letcs\blx@tempa{blx@dlist@entry@\the\c@refsection @\blx@refcontext@context}}% + \blx@filter\blx@tempa{blx@catg@#1}% + \blx@bibliography\blx@tempa}}% + +\def\blx@endbibcategory{% + \iftoggle{blx@tempa}{}{\blx@warn@bibempty}% + \endgroup} + +% {<entrykey>,...} +\def\blx@bibliography#1{% + \blx@langstrings + \blx@bibheading\blx@theheading\blx@thetitle + \blx@bibnote\blx@theprenote + \begingroup + \blx@bibinit + \let\@noitemerr\@empty + \let\blx@noitem\blx@warn@bibempty + \ifnum\bibinitsep=\z@ + \let\blx@initsep\relax + \fi + \ifnum\bibnamesep=\z@ + \let\blx@namesep\relax + \fi + \abx@locallabelwidth{#1}% + \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{#1}} + +\def\blx@endbibliography{% + \csuse{blx@endenv@\blx@theenv}% + \blx@noitem + \endgroup + \blx@bibnote\blx@thepostnote + \endgroup} + +\def\blx@bibheading#1#2{% + \begingroup + \edef\blx@tempa{\endgroup + \noexpand\blx@bibheading@i{\expandonce#1}{\expandonce#2}}% + \blx@tempa} + +\def\blx@bibheading@i#1#2{% + \let\newrefsection\relax + \let\newrefsegment\relax + \ifblank{#2} + {\csuse{blx@head@#1}} + {\csuse{blx@head@#1}[#2]}% + \let\newrefsection\blx@newrefsection + \let\newrefsegment\blx@newrefsegment} + +\def\blx@bibnote#1{% + \ifdefempty#1 + {} + {\begingroup + \let\newrefsection\relax + \let\newrefsegment\relax + \noindent + \csuse{blx@note@#1}\par\nobreak + \endgroup}} + +\def\blx@bibinit{% + \iftoggle{blx@citation} + {} + {\toggletrue{blx@bibliography}}% + \blx@blxinit + \blx@resetdata + \csuse{blx@hook@bbxinit}% + \bibsetup\bibfont + \blx@setsfcodes + \csuse{blx@bibsetup}} + +% {<entrykey>} +\def\blx@lengthitem#1{% + \blx@ifdata{#1} + {\begingroup + \blx@getdata{#1}% + \blx@bibcheck + \iftoggle{blx@skipentry}{}{% + \iftoggle{blx@labelnumber} + {\blx@bbl@locallabelnumberwidth} + {}% + \iftoggle{blx@labelalpha} + {\blx@bbl@locallabelalphawidth} + {}% + \nottoggle{blx@skipbiblist} + {\blx@bbl@locallabelfields} + {}}% + \endgroup} + {}} + +% {<entrykey>} +% output a bib item, this is why \blx@thelabelnumber is here so that +% labelnumber is deferred if defernumbers=true +\def\blx@bibitem#1{% + \blx@ifdata{#1} + {\begingroup + \blx@getdata{#1}% + \blx@bibcheck + \iftoggle{blx@skipentry}{}{% + \blx@setdefaultrefcontext{#1}% + \global\let\blx@noitem\@empty + \blx@setoptions@type\abx@field@entrytype + \blx@setoptions@entry + \blx@thelabelnumber + \addtocounter{instcount}\@ne + \csuse{blx@item@\blx@theenv}\relax + \blx@initsep + \blx@namesep + \csuse{blx@hook@bibitem}% + \blx@execute + \blx@initunit + \blx@anchor + \blx@beglangbib + \bibsentence + \blx@pagetracker + \blx@driver\abx@field@entrytype + \blx@postpunct + \blx@endlangbib}% + \endgroup} + {}} + +\let\blx@bibcheck\relax + +\def\blx@edef@refcontext#1{% + \edef\blx@refcontext@context{#1}% + \expandafter\edef\expandafter\blx@refcontext@context\expandafter{% + \expandafter\detokenize\expandafter{\blx@refcontext@context}}} + +\def\blx@xdef@refcontext#1{% + \edef\blx@refcontext@context{#1}% + \expandafter\xdef\expandafter\blx@refcontext@context\expandafter{% + \expandafter\detokenize\expandafter{\blx@refcontext@context}}} + + +% This sets and saves to the .aux the default refcontext for an entry. The +% default refcontext for an entry is the refcontext of the last +% bibliography in the refsection in which it is actually printed. This +% allows citations to default to selecting data from the correct +% bibliography list in standard cases where entries are not listed in +% multiple bibliographies +\def\blx@setdefaultrefcontext#1{% + \ifbool{refcontextdefaults} + {\blx@rerun@latex}% + {}% + \ifinlistcs{#1}{blx@defaultrefcontexts@\the\c@refsection} + {} + {\listcsgadd{blx@defaultrefcontexts@\the\c@refsection}{#1}}% + \csxdef{blx@assignedrefcontextbib@\the\c@refsection @#1}{\blx@refcontext@context}} +% <refsection><key><refcontext> +\def\abx@aux@defaultrefcontext#1#2#3{% + \global\boolfalse{refcontextdefaults}% + \csxdef{blx@assignedrefcontextbib@#1@#2}{\detokenize{#3}}} +\def\abx@aux@refcontextdefaultsdone{% + \global\boolfalse{refcontextdefaults}} +% \abx@aux@defaultlabelprefix is a dummy only used by BibTeX to implement a +% simple labelprefix not based on full refcontexts, which BibTeX does not +% support. +\let\abx@aux@defaultlabelprefix\@gobblethree + +\AtEndDocument{% + % write the .aux to say we don't need to re-run to consume refcontext defaults + \ifbool{refcontextdefaults} + {} + {\blx@auxwrite\@mainaux{}{\string\abx@aux@refcontextdefaultsdone}}% + % always add default refcontext declarations to .aux after biber run + \iftoggle{blx@bbldone} + {\def\do#1{% + \begingroup + \def\do##1{% + \blx@auxwrite\@mainaux{}{\string\abx@aux@defaultrefcontext{#1}{##1}{\csuse{blx@assignedrefcontextbib@#1@##1}}}}% + \dolistcsloop{blx@defaultrefcontexts@#1}% + \endgroup} + \dolistloop\blx@allrefsections} + {}} + +\def\blx@initsep{% + \blx@imc@iffieldundef{sortinithash} + {} + {\ifnum\c@instcount>\@ne + \blx@imc@iffieldequals{sortinithash}\blx@previnithash + {} + {\addvspace{\bibinitsep}}% + \fi + \global\let\blx@previnithash\abx@field@sortinithash}} + +\def\blx@namesep{% + \ifnum\c@instcount>\@ne + \blx@imc@iffieldequals{fullhash}\blx@prevhash + {} + {\addvspace{\bibnamesep}}% + \fi + \global\let\blx@prevhash\abx@field@fullhash} + +\newrobustcmd*{\AtBeginBibliography}{\gappto\blx@hook@bibinit} +\newrobustcmd*{\AtEveryBibitem}{\gappto\blx@hook@bibitem} +\@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}} + {}% + \gappto\blx@hook@bibinit@next} + +% page tracker +\def\blx@pagetracker@context{% + \blx@leavevmode + \ifbool{@filesw} + {\ifbool{pagetracker} + {\protected@write\@mainaux{}{% + \iftoggle{blx@footnote} + {\string\abx@aux@fnpage} + {\string\abx@aux@page}% + {\the\c@instcount}{\noexpand\the\c@page}}} + {}} + {}} + +% {<instcount>}{<page>} +\protected\def\blx@aux@page#1#2{% + \csgdef{blx@page@#1}{#2}% + \blx@addpagesum{#1}{#2}} +\protected\def\blx@aux@spread#1#2{% + \ifodd#2\relax + \csxdef{blx@page@#1}{\number\numexpr#2-1}% + \else + \csgdef{blx@page@#1}{#2}% + \fi + \blx@addpagesum{#1}{#2}} + +\protected\def\blx@aux@fnpage#1#2{% + \csgdef{blx@fnpage@#1}{#2}% + \blx@addpagesum{#1}{#2}} +\protected\def\blx@aux@fnspread#1#2{% + \ifodd#2\relax + \csxdef{blx@fnpage@#1}{\number\numexpr#2-1}% + \else + \csgdef{blx@fnpage@#1}{#2}% + \fi + \blx@addpagesum{#1}{#2}} + +\AtEndDocument{% + \def\abx@aux@page#1#2{\blx@addpagesum{#1}{#2}}% + \def\abx@aux@fnpage#1#2{\blx@addpagesum{#1}{#2}}} + +% hyperref interface +\appto\blx@mkhyperref{% + \let\blx@anchors\@empty + \ifundef\hyper@natanchorstart + {\protected\def\blx@anchor{% + \xifinlist{\the\c@refsection @\abx@field@entrykey}{\blx@anchors} + {} + {\listxadd\blx@anchors{\the\c@refsection @\abx@field@entrykey}% + \hypertarget{cite.\the\c@refsection @\abx@field@entrykey}{}}}} + {\protected\def\blx@anchor{% + \xifinlist{\the\c@refsection @\abx@field@entrykey}{\blx@anchors} + {} + {\listxadd\blx@anchors{\the\c@refsection @\abx@field@entrykey}% + \hyper@natanchorstart{\the\c@refsection @\abx@field@entrykey}% + \hyper@natanchorend}}}} + +\appto\blx@mknohyperref{\let\blx@anchor\relax} + +\define@key{blx@biblist2}{driver}{\blx@key@driver{#1}} +\define@key{blx@biblist1}{driver}{} + +\def\blx@key@driver#1{% + \def\blx@thebiblistdriver{#1}} + +% Custom bibliography list +% [<otions>]{biblistname} +\newrobustcmd*{\printbiblist}[2][]{% + \begingroup + \delimcontext{biblist}% + \edef\on@line{\on@line}% + \toggletrue{blx@tempa}% + \toggletrue{blx@tempb}% + \def\blx@theheading{biblist}% default to biblist heading + \def\blx@theenv{#2}% default to list name + \def\blx@thebiblist{#2}% + \def\blx@thebiblistdriver{#2}% + \def\blx@thebiblistfilter{#2}% + \let\blx@theprenote\@empty + \let\blx@thepostnote\@empty + \let\blx@thetitle\@empty + % defaults + \let\blx@tempa\@empty% before there is a .bbl, this must not be undef + % default sorting template and template name for list is same name as list + % name, then current context if not found + \edef\blx@tempc{% + \ifcsdef{blx@sortingtemplate@#2} + {#2} + {\blx@refcontext@sortingtemplatename}}% + % locally define this since we want to fetch data from the datalist named + % after the list we are printing rather than the data in refcontext list + % Note that the name must be unique so we prepend "#2:" because the combination of + % options might not generate a unique name since sortschemename has a fallback to the + % refcontext scheme if there is no sortscheme named after the list + \blx@edef@refcontext{#2:\blx@tempc/% + \blx@refcontext@sortingnamekeytemplatename/% + \blx@refcontext@labelprefix/% + \blx@refcontext@uniquenametemplatename/% + \blx@refcontext@labelalphanametemplatename}% + \xifinlist\blx@tempc\blx@sortingtemplatenames + {} + {\listxadd\blx@sortingtemplatenames\blx@tempc}% + \let\blx@printbibchecks\relax + \edef\blx@tempe{\the\c@refsection}% default refsection is current + \blx@safe@actives + \blx@printbibchecks + % Add the sortingtemplate to the list of sortingtemplates for this biblist + % so we can compare on next run + \xifinlist\blx@tempc\blx@biblists + {} + {\listxadd\blx@biblists\blx@tempc}% + \blx@auxwrite\@mainaux{}{\string\abx@aux@biblist{\blx@tempc}}% + \setkeys{blx@biblist1}{#1}% Set section only, if present ... + \blx@rest@actives + \ifcsvoid{blx@dlist@list@\blx@tempe @\blx@refcontext@context} + {} + {\letcs\blx@tempa{blx@dlist@list@\blx@tempe @\blx@refcontext@context}}% + \blx@safe@actives + \setkeys{blx@biblist2}{#1}% ... now we have correct \blx@tempa, set rest of options + \ifundef\blx@bibcheck + {\ifcsdef{blx@bibcheck@#2} + {\letcs\blx@bibcheck{blx@bibcheck@#2}} + {}} + {}% + \blx@rest@actives + % Add datalist to list of seen datalists to prevent duplicates + \xifinlist{\blx@refcontext@context @\blx@tempe @list}\blx@dlistnames + {} + {\listxadd\blx@dlistnames{\blx@refcontext@context @\blx@tempe @list}% + \xappto\blx@dlists{% + \blx@xml@dlist{\blx@refcontext@context}{list}{\blx@tempe}{\blx@xml@dlist@refcontext{\blx@tempc}{\blx@refcontext@sortingnamekeytemplatename}{\blx@refcontext@labelprefix@real}{\blx@refcontext@uniquenametemplatename}{\blx@refcontext@labelalphanametemplatename}}{\csuse{blx@biblistfilters@\blx@thebiblistfilter}}}}% + \ifdefvoid\blx@tempa + {\blx@warn@biblistempty{#2}\endgroup} + {\blx@biblist\blx@tempa}} + +\def\blx@printbibchecks{% + \togglefalse{blx@tempa}% + \iftoggle{blx@defernumbers} + {\global\let\blx@printbibchecks\relax} + {\iftoggle{blx@labelnumber} + {} + {\global\let\blx@printbibchecks\relax}}} + +% {<entrykey>,...} +\def\blx@biblist#1{% + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse + \fi + \blx@langstrings + \blx@bibheading\blx@theheading\blx@thetitle + \blx@bibnote\blx@theprenote + \begingroup + \blx@bibinit + \let\@noitemerr\@empty + \def\blx@noitem{\blx@warn@biblistempty{\blx@thebiblist}}% + \abx@locallabelwidth{#1}% + \csuse{blx@env@\blx@theenv}% + \csuse{blx@hook@biblistinit@\blx@thebiblist}% + \let\blx@do\blx@biblistitem + \let\blx@done\blx@endbiblist + \blx@listloop{#1}} + +\def\blx@endbiblist{% + \csuse{blx@endenv@\blx@theenv}% + \blx@noitem + \endgroup + \blx@bibnote\blx@thepostnote + \endgroup + \if@restonecol\twocolumn\fi} + +% {<biblistname>} +\newrobustcmd*{\AtBeginBiblist}[1]{\csgappto{blx@hook@biblistinit@#1}} +\newrobustcmd*{\AtEveryBiblistitem}[1]{\csgappto{blx@hook@biblistitem@#1}} +\@onlypreamble\AtBeginBiblist +\@onlypreamble\AtEveryBiblistitem + +% {<entrykey>} +\def\blx@biblistitem#1{% + \blx@ifdata{#1} + {\begingroup + \blx@getdata{#1}% + \blx@bibcheck + \iftoggle{blx@skipentry}{}{% + \blx@setdefaultrefcontext{#1}% + \global\let\blx@noitem\@empty + \blx@setoptions@type\abx@field@entrytype + \blx@setoptions@entry + \addtocounter{instcount}\@ne + \csuse{blx@item@\blx@theenv}\relax + \csuse{blx@hook@biblistitem@\blx@thebiblist}% + \blx@execute + \blx@initunit + \blx@beglangbib + \bibsentence + \blx@pagetracker + \blx@driver{\blx@thebiblistdriver}% + \blx@postpunct + \blx@endlangbib}% + \endgroup} + {}} + +% Just a default in case .bbx doesn't define it. standard.bbx defines +% it to print a complete entry, like the bibliography. +\DeclareBibliographyDriver{shorthand}{% + \iffieldundef{shorttitle} + {\printfield{title}} + {\printfield{shorttitle}}} + +% Reference contexts +\newcommand*{\DeclareRefcontext}[2]{% + \csgdef{blx@refcontext@name@#1}{#2}} +\@onlypreamble\DeclareRefcontext + +\def\newrefcontext{% + \endrefcontext + \refcontext} + +% Backwards compat for older \refcontext[] format +\def\refcontext{% + \@ifnextchar[%] + {\refcontext@i} + {\refcontext@i[]}} + +\def\refcontext@i[#1]{% + \@ifnextchar\bgroup + {\refcontext@ii[#1]} + {\refcontext@ii[#1]{}}} + +\newcommand*{\refcontext@ii}[2][]{% + \iftoggle{blx@refcontext} + {\blx@err@nestenv{refcontext}% + \endrefcontext} + {\toggletrue{blx@refcontext}% + % Set refcontext from named refcontext, if given + \ifblank{#2} + {} + {\edef\z{% + \noexpand\setkeys{blx@refcontext}{\csuse{blx@refcontext@name@#2}}}% + \z}% + % Override with explicit refcontext keyvals, if given + \setkeys{blx@refcontext}{#1}% + % Add the sortingtemplate to the list of sortingtemplates so we can track + % special cases like sorting=none which need cite order change detection + \xifinlist\blx@refcontext@sortingtemplatename\blx@sortingtemplatenames + {} + {\listxadd\blx@sortingtemplatenames\blx@refcontext@sortingtemplatename}% + \blx@xdef@refcontext{% + \blx@refcontext@sortingtemplatename/% + \blx@refcontext@sortingnamekeytemplatename/% + \blx@refcontext@labelprefix/% + \blx@refcontext@uniquenametemplatename/% + \blx@refcontext@labelalphanametemplatename}% + % Add the refcontext to the list of refcontexts so we can compare on next run + \xifinlist\blx@refcontext@context\blx@refcontexts + {} + {\listxadd\blx@refcontexts\blx@refcontext@context}% + \blx@auxwrite\@mainaux{}{\string\abx@aux@refcontext{\blx@refcontext@context}}% + \ifcsundef{blx@sortingtemplate@\blx@refcontext@sortingtemplatename} + {\blx@err@invopt{sorting=\blx@refcontext@sortingtemplatename}{}} + {}% + \ifcsundef{blx@sortingnamekeytemplate@\blx@refcontext@sortingnamekeytemplatename} + {\blx@err@invopt{sortingnamekeytemplate=\blx@refcontext@sortingnamekeytemplatename}{}} + {}% + \ifcsundef{blx@uniquenametemplate@\blx@refcontext@uniquenametemplatename} + {\blx@err@invopt{uniquenametemplate=\blx@refcontext@uniquenametemplatename}{}} + {}% + \ifcsundef{blx@labelalphanametemplate@\blx@refcontext@labelalphanametemplatename} + {\blx@err@invopt{labelalphanametemplate=\blx@refcontext@labelalphanametemplatename}{}} + {}}} + +% Reset to global sorting etc. when we leave a ref context (since they can't be nested) +\protected\def\endrefcontext{% + \togglefalse{blx@refcontext}% + \global\let\blx@refcontext@labelprefix\@empty + \global\let\blx@refcontext@labelprefix@real\@empty + \xdef\blx@refcontext@sortingtemplatename{\blx@sorting}% + \gdef\blx@refcontext@sortingnamekeytemplatename{global}% + \gdef\blx@refcontext@uniquenametemplatename{global}% + \gdef\blx@refcontext@labelalphanametemplatename{global}% + \blx@xdef@refcontext{% + \blx@refcontext@sortingtemplatename/% + \blx@refcontext@sortingnamekeytemplatename/% + /% + \blx@refcontext@uniquenametemplatename/% + \blx@refcontext@labelalphanametemplatename}} + +% Meta option to set all name template options +\define@key{blx@refcontext}{nametemplates}{% + \gdef\blx@refcontext@sortingnamekeytemplatename{#1}% + \gdef\blx@refcontext@uniquenametemplatename{#1}% + \gdef\blx@refcontext@labelalphanametemplatename{#1}} + +\define@key{blx@refcontext}{sorting}{\gdef\blx@refcontext@sortingtemplatename{#1}} +\define@key{blx@refcontext}{sortingnamekeytemplatename}{\gdef\blx@refcontext@sortingnamekeytemplatename{#1}} +\define@key{blx@refcontext}{uniquenametemplatename}{\gdef\blx@refcontext@uniquenametemplatename{#1}} +\define@key{blx@refcontext}{labelalphanametemplatename}{\gdef\blx@refcontext@labelalphanametemplatename{#1}} + +% labelprefix cannot be used as is because it is used to construct the internal +% refcontext name which is referenced/expanded a lot all over the place. So, +% we hash the given input and use the safe hash as internal name. +% But that is not enough since the MD5 hash function expands the argument all +% the way and so unexpandable content like \dag breaks. +% Unexpandable content should be protected with \detokenize. +\define@key{blx@refcontext}{labelprefix}{% + \xdef\blx@refcontext@labelprefix{\blx@mdfivesum{#1}}% + \gdef\blx@refcontext@labelprefix@real{#1}% + \iftoggle{blx@defernumbers} + {}% + {\iftoggle{blx@labelnumber} + {\blx@warning{% + Option 'labelprefix' requires global\MessageBreak + 'defernumbers=true'}} + {}}} + +% [refcontext keys]{<keyword1>,<keyword2>,...} +\newcommand*{\assignrefcontextkeyws}{% + \@ifstar + {\blx@assignrefcontextkeyws[*]} + {\blx@assignrefcontextkeyws[]}} + +\def\blx@assignrefcontextkeyws[#1][#2]#3{% + \edef\blx@tempa{\blx@sorting}% + \def\blx@tempb{global}% + \let\blx@tempc\@empty% + \def\blx@tempd{global}% + \def\blx@tempe{global}% + \setkeys{blx@assignrefcontext}{#2}% + \def\do##1{% + \listxadd\blx@assignedrefcontextkeywlist{##1}% + \csxdef{blx@assignedrefcontextkeyws#1@\the\c@refsection @##1}% + {\blx@tempa/\blx@tempb/\blx@tempc/\blx@tempd/\blx@tempe}}% + \docsvlist{#3}} + +% [refcontext keys]{<category1>,<category2>,...} +\newcommand*{\assignrefcontextcats}{% + \@ifstar + {\blx@assignrefcontextcats[*]} + {\blx@assignrefcontextcats[]}} + +\def\blx@assignrefcontextcats[#1][#2]#3{% + \edef\blx@tempa{\blx@sorting}% + \def\blx@tempb{global}% + \let\blx@tempc\@empty% + \def\blx@tempd{global}% + \def\blx@tempe{global}% + \setkeys{blx@assignrefcontext}{#2}% + \def\do##1{% + \listxadd\blx@assignedrefcontextcatlist{##1}% + \csxdef{blx@assignedrefcontextcats#1@\the\c@refsection @##1}% + {\blx@tempa/\blx@tempb/\blx@tempc/\blx@tempd/\blx@tempe}}% + \docsvlist{#3}} + +% [refcontext keys]{<entrykey1>,<entrykey2>,...} +\newcommand*{\assignrefcontextentries}{% + \@ifstar + {\blx@assignrefcontextentries[*]} + {\blx@assignrefcontextentries[]}} + +\def\blx@assignrefcontextentries[#1][#2]#3{% + \edef\blx@tempa{\blx@sorting}% + \def\blx@tempb{global}% + \let\blx@tempc\@empty% + \def\blx@tempd{global}% + \def\blx@tempe{global}% + \setkeys{blx@assignrefcontext}{#2}% + \def\do##1{% + \csxdef{blx@assignedrefcontextkeys#1@\the\c@refsection @##1}% + {\blx@tempa/\blx@tempb/\blx@tempc/\blx@tempd/\blx@tempe}}% + \docsvlist{#3}} + +% Meta option to set all name template options +\define@key{blx@assignrefcontext}{nametemplates}{% + \def\blx@tempb{#1}% + \def\blx@tempd{#1}% + \def\blx@tempe{#1}} + +\define@key{blx@assignrefcontext}{sorting}{\def\blx@tempa{#1}} +\define@key{blx@assignrefcontext}{sortingnamekeytemplatename}{\def\blx@tempb{#1}} +\define@key{blx@assignrefcontext}{labelprefix}{% + \edef\blx@tempc{\blx@mdfivesum{#1}}} +\define@key{blx@assignrefcontext}{uniquenametemplatename}{\def\blx@tempd{#1}} +\define@key{blx@assignrefcontext}{labelalphanametemplatename}{\def\blx@tempe{#1}} + +% Reference sections +\newrobustcmd*{\newrefsection}{% + \endrefcontext + \ifnum\c@refsection>\z@ + \endrefsection + \fi + \refsection} +\let\blx@newrefsection\newrefsection + +\newrobustcmd*{\refsection}{% + \begingroup + \edef\on@line{\on@line}% + \ifnum\c@refsection>\z@ + \blx@err@nestenv{refsection}% + \blx@endrefsection + \fi + \ifnum\c@refsegment>\z@ + \blx@err@nestenv{refsection}% + \blx@endrefsegment + \fi + \@ifnextchar[%] + {\blx@refsection} + {\blx@refsection[]}} + +\def\blx@refsection{% + \begingroup + \blx@hook@fileverb + \blx@refsection@i} + +\def\blx@refsection@i[#1]{% + \endgroup + \global\advance\blx@maxsection\@ne + \global\c@refsection\blx@maxsection + \xifinlist{\the\c@refsection}\blx@allrefsections + {} + {\listxadd\blx@allrefsections{\the\c@refsection}}% + \ifcsdef{blx@defaultrefcontexts@\the\c@refsection} + {} + {\global\cslet{blx@defaultrefcontexts@\the\c@refsection}\@empty}% + \expandafter\newcount\csname blx@maxsegment@\the\c@refsection\endcsname + \expandafter\newcount\csname blx@sectionciteorder@\the\c@refsection\endcsname + \blx@inf@refsec + \blx@secinit + \if@filesw + \blx@auxwrite\@mainaux{}{% + \string\abx@aux@refsection{\the\c@refsection}{\the\c@page}}% + \ifblank{#1} + {} + {\let\blx@bibfiles\@empty + % 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@ii + \fi + \blx@info{Setting label 'refsection:\the\c@refsection'}% + \label{refsection:\the\c@refsection}% + \endgroup} + +\def\blx@refsection@addfile#1{% + \ifcsdef{blx@res@labl@#1} + {\blx@refsection@addfile@i{\csuse{blx@res@labl@#1}}} + {\blx@refsection@addfile@i{#1}}} + +\def\blx@refsection@addfile@i#1{% + \ifcsdef{blx@res@loca@#1} + {\listeadd\blx@bibfiles{#1}} + {\listeadd\blx@bibfiles{\blx@stripbib{#1}\detokenize{.bib}}}} + +\def\blx@refsection@ii{% + \blx@regbibfiles\jobname\blx@bibfiles + \begingroup + \let\blx@tempa\@empty + \blx@bibdata\blx@tempa\blx@bibfiles + \blx@auxwrite\blx@bcfout + {\let\do\blx@datasource} + {\blx@xml@endsection\blx@nl + \blx@xml@comment{SECTION \the\c@refsection}% + \blx@xml@bibdata{\the\c@refsection}{\blx@tempa}% + \blx@xml@section{\the\c@refsection}}% + \endgroup} + +\protected\def\endrefsection{% + \endrefcontext + \blx@endrefsection + \blx@inf@refsec} + +\def\blx@endrefsection{% + \blx@endrefsegment + % make sure we always output aliases to the .bcf otherwise after their + % first resolution by biber, they will be invisible to subsequent biber + % runs since biblatex will resolve the \keyalias{} macro to the main + % entry key, biber won't put \keyalias{}in the .bbl on subsequent runs + % and biblatex will report a missing citekey + \def\do##1{% + % Make sure this counter exists. Sometimes it might not when using, e.g: + % refsection=chapter and \includeonly to put in the chapters or when + % inserting citations into table of contents + \ifcscounter{blx@sectionciteorder@\the\c@refsection} + {} + {\expandafter\newcount\csname blx@sectionciteorder@\the\c@refsection\endcsname}% + \global\advance\csname blx@sectionciteorder@\the\c@refsection\endcsname\@ne + \blx@auxwrite\blx@bcfout{}{\blx@xml@citekey{##1}{}{\expandafter\the\csname blx@sectionciteorder@\the\c@refsection\endcsname}}}% + \dolistcsloop{blx@keyaliases@\the\c@refsection}% + \ifnum\c@refsection>\z@ + \blx@auxwrite\blx@bcfout{}{% + \blx@xml@endsection\blx@nl + \blx@xml@comment{SECTION 0 (cont.)}% + \blx@xml@section{0}}% + \fi + \global\c@refsection\z@} + +\AtEndDocument{% + \endrefcontext + \blx@endrefsection + \def\abx@aux@refsection#1#2{\blx@addchecksum{#1}{#2}}} + +\protected\def\abx@aux@refsection#1#2{% + \ifnum#1>\blx@maxsection + \global\blx@maxsection#1\relax + \fi + \blx@addchecksum{#1}{#2}} + +% Reference segments +\newrobustcmd*{\newrefsegment}{% + \ifnum\c@refsegment>\z@ + \blx@endrefsegment + \fi + \refsegment} +\let\blx@newrefsegment\newrefsegment + +\newrobustcmd*{\refsegment}{% + \ifnum\c@refsegment>\z@ + \blx@err@nestenv{refsegment}% + \blx@endrefsegment + \fi + \global\advance\csname blx@maxsegment@\the\c@refsection\endcsname\@ne + \global\c@refsegment\csname blx@maxsegment@\the\c@refsection\endcsname + \blx@inf@refseg + \blx@info{Setting label 'refsegment:\the\c@refsection\the\c@refsegment'}% + \label{refsegment:\the\c@refsection\the\c@refsegment}% + \ifcsundef{blx@segm@\the\c@refsection @\the\c@refsegment} + {\global\cslet{blx@segm@\the\c@refsection @\the\c@refsegment}\@empty} + {}} + +\protected\def\endrefsegment{% + \blx@endrefsegment + \blx@inf@refseg} + +\def\blx@endrefsegment{% + \global\c@refsegment\z@} + +% Reference section/segment auto-reset +% we are prepending to the commands so that the resets happen before +% the part title is typeset otherwise \cites in there could be "ibid" +% which makes no sense + +% option switch +%{<option level counter>}{<patch>}{<pre>}{<post>} +\def\blx@patchsection@switch#1#2#3#4{% + \AtEndPreamble{% + #3% + \ifcase#1 + \or % 1: part + \blx@refpatch@part{#2}% + \or % 2: chapter + \blx@refpatch@chapter{#2}% + \or % 3: section + \blx@refpatch@sect{section}{#2}{1}% + \or % 4: subsection + \blx@refpatch@sect{subsection}{#2}{2}% + \or % 5: chapter+ = part, chapter + \blx@refpatch@part{#2}% + \blx@refpatch@chapter{#2}% + \or % 6: section+ = part, chapter, section + \blx@refpatch@part{#2}% + \ifundef\chapter + {} + {\blx@refpatch@chapter{#2}}% + \blx@refpatch@sect{section}{#2}{1}% + \or % 7: subsection+ = part, chapter, section, subsection + \blx@refpatch@part{#2}% + \ifundef\chapter + {} + {\blx@refpatch@chapter{#2}}% + \blx@refpatch@sect{section}{#2}{1}% + \blx@refpatch@sect{subsection}{#2}{2}% + \fi + #4% + }% +} + +%% Patching all the different document classes and their sectioning +%% commands is ... messy at best +%% For now we do the big three: (1) Standard classes, (2) KOMA-Script +%% and (3) memoir. +%% +%% Timing of the patch can be tricky. +%% Ideally we want the code to be executed when all counters have +%% been increased so the labels attach to the right thing, but +%% at the same time we want the code to be executed before the heading +%% is typeset so it already applies to the text in the heading. +%% Bonus points for actually executing the code on the correct page. + +%% memoir has hooks for section headings that we can use here +%% see 18.25 'Heading Hooks' of the manual (v3.7h, 2018/12/12) +%% they are in a good position, when the counters have been +%% increased but heading text not yet typeset. +%% The manual suggests this hooks have been around since 2005 or so, +%% so we take them for granted. + +%% Newer versions of KOMA-Script (>=3.27) (will) have a hook system +%% that we can use for that purpose as well. +%% This is fairly new, so we need to have a fallback for older versions. + +%% The standard classes are tricky. They have no good hooks and just +%% for sections at least \pretocmd-ing executes the code before +%% counters are increased, so the labels attach to the wrong thing. + +%% Test for correct KOMA patch method +% KOMA 3.27 has \AddtoDoHook +\newcommand*{\blx@ifkoma@AddtoDoHook}{% + \ifboolexpr{not test {\ifcsundef{KOMAClassName}} + and not test {\ifcsundef{AddtoDoHook}}}} + +% KOMA 3.26 has \startsection@secnumdepth for some testing +\newcommand*{\blx@ifkoma@startsection}{% + \ifboolexpr{not test {\ifcsundef{KOMAClassName}} + and not test {\ifcsundef{startsection@secnumdepth}}}} + +\newcommand*{\blx@ifmemoir}{\@ifclassloaded{memoir}} + +% Note that \ExecuteDoHook always feeds an argument to the code, here that is +% going to be an empty group, which we explicitly gobble to avoid trouble. +\def\blx@refpatch@koma@AddtoDoHook#1#2{% + \AddtoDoHook{heading/begingroup/#1}{#2\@gobble}} + +% \part +\def\blx@refpatch@part@memoir#1{% + \apptocmd\mempartinfo{#1} + {}{\blx@err@patch{\string\mempartinfo}}% + \apptocmd\mempartstarinfo{#1} + {}{\blx@err@patch{\string\mempartstarinfo}}} + +\def\blx@refpatch@part@std#1{% + \toggletrue{blx@tempa}% + \def\do##1{% + \pretocmd##1{#1} + {\togglefalse{blx@tempa}\listbreak} + {}}% + \docsvlist{% + \H@old@part,% hyperref + \NR@part,% nameref + \@part}% latex/koma-script/memoir + \iftoggle{blx@tempa} + {\blx@err@patch{\string\@part}} + {}% + \let\do\noexpand} + +\def\blx@refpatch@part#1{% + \ifundef\part + {\blx@err@nodocdiv{part}} + {\blx@ifkoma@AddtoDoHook + {\blx@refpatch@koma@AddtoDoHook{part}{#1}} + {\blx@ifmemoir + {\blx@refpatch@part@memoir{#1}} + {\blx@refpatch@part@std{#1}}}}} + +% \chapter +\def\blx@refpatch@chapter@memoir#1{% + \apptocmd\memchapinfo{#1} + {}{\blx@err@patch{\string\memchapinfo}}% + \apptocmd\memchapstarinfo{#1} + {}{\blx@err@patch{\string\memchapstarinfo}}} + +\def\blx@refpatch@chapter@std#1{% + \pretocmd\@makechapterhead{#1} + {} + {\blx@err@patch{\string\@makechapterhead}} + \pretocmd\@makeschapterhead{#1} + {} + {\blx@err@patch{\string\@makeschapterhead}}} + +\def\blx@refpatch@chapter#1{% + \ifundef\chapter + {\blx@err@nodocdiv{chapter}} + {\blx@ifkoma@AddtoDoHook + {\blx@refpatch@koma@AddtoDoHook{chapter}{#1}} + {\blx@ifmemoir + {\blx@refpatch@chapter@memoir{#1}} + {\blx@refpatch@chapter@std{#1}}}}} + +% \section, \subsection +% {<section csname>}{<precode>}{<section level number>} +\def\blx@refpatch@sect#1#2#3{% + \ifcsundef{#1} + {\blx@err@nodocdiv{#1}\@gobbletwo} + {\blx@ifkoma@AddtoDoHook + {\blx@refpatch@koma@AddtoDoHook{#1}{#2}} + {\blx@ifkoma@startsection + {\blx@refpatch@sect@koma@startsection{#2}{#3}} + {\blx@ifmemoir + {\blx@refpatch@sect@memoir{#1}{#2}} + {\blx@refpatch@sect@std{#2}{#3}}}}}} + +% KOMA >= 3.26 defines \startsection@secnumdepth to check the sectioning level, +% so we can now use \At@startsection. +% Starting from 3.27 we use AddtoDoHook, so this is a short-lived +% intermezzo. +\def\blx@refpatch@sect@koma@startsection#1#2{% + \At@startsection{\ifnumequal{\startsection@secnumdepth}{#2}{#1}{}}} + +\edef\blx@refpatch@sect@memoir#1#2{% + \apptocmd\noexpand\memsecinfo + {\noexpand\blx@refpatch@sect@memoir@i{\string#1}{#1}{#2}} + {}{\noexpand\blx@err@patch{\string\memsecinfo}}% + \apptocmd\noexpand\memsecstarinfo + {\noexpand\blx@refpatch@sect@memoir@i{\string#1}{#1}{#2}} + {}{\noexpand\blx@err@patch{\string\memsecstarinfo}}} + +\def\blx@refpatch@sect@memoir@i#1#2#3{% + \ifstrequal{#1}{#2}{#3}{}} + +\edef\blx@refpatch@sect@std#1#2{% + \def\noexpand\do##1{% + \pretocmd##1% + {\noexpand\blx@refpatch@sect@std@i{#1}{#2}{\string#2}} + {\togglefalse{blx@tempa}\noexpand\listbreak} + {}}% + \noexpand\blx@refpatch@sect@std@ii} + +\def\blx@refpatch@sect@std@i#1#2#3{% + \ifnumequal{#2}{#3}{#1}{}} + +\def\blx@refpatch@sect@std@ii{% + \toggletrue{blx@tempa}% + \docsvlist{% order does matter: + \H@old@sectm@m,% memoir+hyperref (what a mess...) + \M@sect,% memoir + \H@old@sect,% hyperref + \NR@sect,% nameref + \scr@sect,% koma-script 3.x + \scr@startsection,% bad hack for koma 3.15 <= v <= 3.25 + \@startsection}% latex + \iftoggle{blx@tempa} + {\blx@err@patch{\string\@sect}} + {}% + \let\do\noexpand} + +% Bibliography categories + +\let\blx@categories\@empty + +% {<category>} +\newrobustcmd*{\DeclareBibliographyCategory}[1]{% + \ifcsundef{blx@catg@#1} + {\global\cslet{blx@catg@#1}\@empty + \listgadd\blx@categories{#1}} + {\blx@error + {Category '#1' already declared} + {The bibliography category '#1'\MessageBreak + has already been declared}}} +\@onlypreamble\DeclareBibliographyCategory + +% {<category>}{<entrykey>,...} +\newrobustcmd*{\addtocategory}[2]{% + \ifcsundef{blx@catg@#1} + {\blx@error + {Category '#1' not declared} + {Use \string\DeclareBibliographyCategory\space to declare}} + {\AfterPreamble{% + \blx@xsanitizeafter{\forcsvlist{\blx@addtocategory{#1}}}{#2}}}} + +% {<category>}{<entrykey>,...} +\def\blx@addtocategory#1#2{% + % If we are adding a set member to a category, make sure we also add the + % set parent if it is cited. If it is cited, we should be using the set + % parent in the category, not the set child member. blx@setc@... will + % only exist if the set parent is also cited as it is only defined when a + % member contains \inset which only happens when the set parent is cited. + \ifcsdef{blx@setc@\the\c@refsection @#2} + {\blx@auxwrite\@mainaux{}{\string\abx@aux@category{#1}{\csuse{blx@setc@\the\c@refsection @#2}}}% + \abx@aux@category{#1}{\csuse{blx@setc@\the\c@refsection @#2}}} + {}% + \blx@auxwrite\@mainaux{}{\string\abx@aux@category{#1}{#2}}% + \abx@aux@category{#1}{#2}} + +% {<category>}{<entrykey>,...} +\protected\def\abx@aux@category#1#2{% + \xifinlistcs{\detokenize{#2}}{blx@catg@#1} + {} + {\listcsxadd{blx@catg@#1}{\detokenize{#2}}}} + +\AtEndDocument{\let\abx@aux@category\@gobbletwo} + +% [<options>]{<resource>,...} +\renewrobustcmd*{\bibliography}[1]{% + \begingroup + \def\blx@tempa{file}% + \def\blx@tempb{bibtex}% + \def\blx@tempc{local}% + \undef\blx@tempd + \let\blx@tempe\@empty + \blx@xsanitizeafter{\forcsvlist\blx@addbib@legacy}{#1}% + \endgroup} +\@onlypreamble\bibliography + +\def\blx@addbib@legacy#1{% + \begingroup + \edef\blx@tempa{\endgroup + \noexpand\blx@addbib@resource{\blx@stripbib{#1}\detokenize{.bib}}}% + \blx@tempa} + +\def\blx@stripbib#1{% + \expandafter\blx@stripbib@i\detokenize{#1.bib}&} +\edef\blx@stripbib@i{% + \def\noexpand\blx@stripbib@i##1\detokenize{.bib}##2&} +\blx@stripbib@i{#1} + +% [<options>]{<resource>,...} +\newrobustcmd*{\addbibresource}{% + \blx@addbib\blx@addbib@resource} +\@onlypreamble\addbibresource + +\newrobustcmd*{\addglobalbib}{% + \blx@addbib\blx@addbib@global} +\@onlypreamble\addglobalbib + +\newrobustcmd*{\addsectionbib}{% + \blx@addbib\blx@addbib@register} +\@onlypreamble\addsectionbib + +\def\blx@addbib#1{% + \@ifnextchar[%] + {\blx@addbib@i{#1}} + {\blx@addbib@i{#1}[]}} + +\def\blx@addbib@i#1[#2]{% + \begingroup + \blx@hook@fileverb + \blx@addbib@ii{#1}{#2}} + +\def\blx@addbib@ii#1#2#3{% + \endgroup + \begingroup + \def\blx@tempa{file}% + \def\blx@tempb{bibtex}% + \def\blx@tempc{local}% + \undef\blx@tempd + \let\blx@tempe\@empty + \setkeys{blx@addbib}{#2}% + \blx@xsanitizeafter{#1}{#3}% + \endgroup} + +\def\blx@hook@fileverb{% + \let\do\@makeother + \dospecials + \catcode`\\=\z@ + \catcode`\{=\@ne + \catcode`\}=\tw@} + +\define@key{blx@addbib}{type}{\def\blx@tempa{#1}} +\define@key{blx@addbib}{datatype}{\def\blx@tempb{#1}} +\define@key{blx@addbib}{location}{\def\blx@tempc{#1}} +\define@key{blx@addbib}{label}{\edef\blx@tempd{\detokenize{#1}}} +\define@key{blx@addbib}{bibencoding}{\def\blx@tempe{#1}} + +% \blx@res@type@<resource> resource -> type +% \blx@res@data@<resource> resource -> datatype +% \blx@res@loca@<resource> resource -> datatype +% \blx@res@labl@<resource> label -> resource + +\def\blx@addbib@register#1{% + \csxdef{blx@res@type@#1}{\blx@tempa}% + \csxdef{blx@res@data@#1}{\blx@tempb}% + \csxdef{blx@res@loca@#1}{\blx@tempc}% + \csxdef{blx@res@bibencoding@#1}{\blx@tempe}% + \ifdef\blx@tempd + {\csxdef{blx@res@labl@\blx@tempd}{#1}} + {}} + +\def\blx@addbib@resource#1{% + \blx@addbib@register{#1}% + \listgadd\blx@bibfiles{#1}% + \blx@regbibfile\jobname{#1}} + +\def\blx@addbib@global#1{% + \blx@addbib@resource{#1}% + \listgadd\blx@bibfiles@global{#1}} + +\let\blx@bibfiles\@empty +\let\blx@bibfiles@global\@empty + +\def\blx@bibdata#1#2{% + \forlistloop{\blx@bibdata@i{#1}}#2} +\def\blx@bibdata@i#1#2{% + \blx@xmlsanitizeafter{\blx@bibdata@ii{#1}{#2}}{#2}} +\def\blx@bibdata@ii#1#2#3{% + \eappto#1{% + \blx@xml@datasource + {\ifcsdef{blx@res@type@#2} + {\csuse{blx@res@type@#2}} + {file}} + {\ifcsdef{blx@res@data@#2} + {\csuse{blx@res@data@#2}} + {bibtex}} + {\ifcsvoid{blx@res@bibencoding@#2} + {} + { encoding="\csuse{blx@res@bibencoding@#2}"}} + {#3}}} + +%% Citations + +\newrobustcmd*{\AtEveryCite}{\gappto\blx@hook@cite} +\newrobustcmd*{\AtEveryCitekey}{\gappto\blx@hook@citekey} +\newrobustcmd*{\AtEveryMultiCite}{\gappto\blx@hook@mcite} +\@onlypreamble\AtEveryCite +\@onlypreamble\AtEveryCitekey +\@onlypreamble\AtEveryMultiCite + +\newrobustcmd*{\AtEachCitekey}{% + \iftoggle{blx@citation}{\appto\blx@hook@citekey}{\@gobble}} + +\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 + {\gdef\blx@hook@cite@next{\global\undef\blx@hook@cite@next}} + {}% + \gappto\blx@hook@cite@next} + +\newrobustcmd*{\AtNextCitekey}{% + \ifundef\blx@hook@citekey@next + {\gdef\blx@hook@citekey@next{\global\undef\blx@hook@citekey@next}} + {}% + \gappto\blx@hook@citekey@next} + +\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'}{}{}{} + {\blx@error + {Style '#1' not found} + {The citation style '#1' could not be found}}} +\@onlypreamble\RequireCitationStyle + +% {<code>} + +\newrobustcmd*{\InitializeCitationStyle}{\appto\blx@hook@cbxinit} +\@onlypreamble\InitializeCitationStyle + +% {<code>} + +\newrobustcmd*{\OnManualCitation}{\appto\blx@hook@mancite} +\@onlypreamble\OnManualCitation + +\newrobustcmd*{\mancite}{% + \csuse{blx@hook@mancite}% + \blx@ibidreset + \blx@idemreset + \blx@opcitreset + \blx@loccitreset} + +% {<entrykey>}{<message>} +% Wrapper to track cite keys which are \nocited +\def\blx@nocitation#1#2{% + \ifinlist{#1}\blx@nocites + {} + {\listgadd\blx@nocites{#1}}% + \blx@citation@i{#1}{#2}} + +% {<entrykey>}{<message>} +% Just a wrapper to suppress citation tracking in toc/lof etc. +\def\blx@citation#1#2{% + \ifinlist{#1}\blx@directcites + {} + {\listgadd\blx@directcites{#1}}% + \blx@citation@i{#1}{#2}} + +\def\blx@citation@i#1#2{% + \ifbool{citerequest} + {\blx@citation@entry{#1}{#2}} + {}} + +\def\blx@citation@entry#1#2{% + \blx@bibreq{#1}% + \ifinlist{#1}\blx@cites + {} + {\listgadd{\blx@cites}{#1}}% + \blx@auxwrite\@mainaux{}{\string\abx@aux@cite{#1}}% + \ifinlistcs{#1}{blx@segm@\the\c@refsection @\the\c@refsegment} + {} + {\listcsgadd{blx@segm@\the\c@refsection @\the\c@refsegment}{#1}}% + \blx@auxwrite\@mainaux{}{\string\abx@aux@segm{\the\c@refsection}% + {\the\c@refsegment}% + {\detokenize{#1}}}% + \blx@ifdata{#1} + {} + {\ifcsdef{blx@miss@\the\c@refsection} + {\ifinlistcs{#1}{blx@miss@\the\c@refsection} + {} + {\blx@logreq@active{#2{#1}}}} + {\blx@logreq@active{#2{#1}}}}} + +\protected\def\abx@aux@segm#1#2#3{% + \xifinlistcs{\detokenize{#3}}{blx@segm@#1@#2} + {} + {\listcsxadd{blx@segm@#1@#2}{\detokenize{#3}}}} + +\def\blx@nocitation@all{% + \ifinlist{*}\blx@nocites + {} + {\listgadd\blx@nocites{*}}% + \blx@citation@all} + +\def\blx@citation@all{% + \ifbool{citerequest} + {\blx@bibreq{*}% + \global\csletcs + {blx@segm@\the\c@refsection @\the\c@refsegment} + {blx@dlist@entry@\the\c@refsection @\blx@refcontext@context}% + \ifcsvoid{blx@dlist@entry@\the\c@refsection @\blx@refcontext@context} + {\blx@logreq@active{}} + {}} + {}} + +\protected\def\blx@bibreq#1{% + \begingroup + \blx@xmlsanitizeafter{\def\blx@tempa}{#1}% + \let\blx@tempb\@empty + % Only output as \nocited if a key wasn't also directly \cite'd + % Since citekey output is sequential as cites are read, the .bcf might contain + % duplicate keys with differring nocite attributes if \nocite{X} and \cite{X} both occur + % but biber deals with this and priorities \cites + \ifboolexpr{test {\ifinlist{#1}\blx@nocites} + and + not test {\ifinlist{#1}\blx@directcites}} + {\def\blx@tempb{ nocite="1"}} + {}% + % citeall is always order "0" - this makes no real difference as biber + % ignores all other citekeys in the section if citeall is present + \ifstrequal{*}{#1} + {\blx@auxwrite\blx@bcfout{}{\blx@xml@citekey{\blx@tempa}{\blx@tempb}{0}}} + {\blx@auxwrite\blx@bcfout{}{\blx@xml@citekey{\blx@tempa}{\blx@tempb}{\expandafter\the\csname blx@sectionciteorder@\the\c@refsection\endcsname}}}% + \endgroup} + +% {<set>}{<key1,key2,key3>} + +\newrobustcmd*{\defbibentryset}[2]{% + \@bsphack + \begingroup + \blx@xsanitizeafter{\def\blx@tempa}{#1}% + \let\blx@tempb\@empty + \let\blx@tempc\@empty + \blx@xsanitizeafter{\forcsvlist\blx@defentryset@add}{#2}% + \ifcsdef{blx@set@\the\c@refsection @\blx@tempa} + {\expandafter\ifdefequal + \csname blx@set@\the\c@refsection @\blx@tempa\endcsname + \blx@tempb + {} + {\blx@error + {Conflicting definitions of '\blx@tempa'} + {The entry set '\blx@tempa' has been defined before.% + \MessageBreak + old: \blx@tempa\space = % + \csuse{blx@set@\the\c@refsection @\blx@tempa}\MessageBreak + new: \blx@tempa\space = \blx@tempb\MessageBreak + I'm ignoring the new definition}}} + {\global\cslet{blx@set@\the\c@refsection @\blx@tempa}\blx@tempb + \edef\blx@tempa{% + \AfterPreamble{\blx@setreq{\blx@tempa}{\blx@tempb}}}% + \blx@tempa}% + \endgroup + \@esphack} + +\def\blx@defentryset@add#1{% + \edef\blx@tempb{\blx@tempb\blx@tempc#1}% + \def\blx@tempc{,}} + +\protected\def\blx@setreq#1#2{% + \begingroup + \blx@xmlsanitizeafter{\def\blx@tempa}{#1}% + \blx@xmlsanitizeafter{\def\blx@tempb}{#2}% + \blx@auxwrite\blx@bcfout{}{\blx@xml@citeset{\blx@tempa}{\blx@tempb}}% + \endgroup} + +% {<entrykey>,...} +\protected\def\blx@citeloop#1{% + \expandafter\blx@citeloop@i\expandafter{\detokenize{#1}}} +\protected\def\blx@citeloop@i#1{% + \begingroup + % This must be here and not after \blx@citeadd as this changes the refcontext + \letcs\blx@tempb{blx@dlist@centry@\the\c@refsection @\blx@refcontext@context}% + \ifundef\blx@tempb + {\let\blx@tempb\@empty} + {}% + % Make sure this counter exists. Sometimes it might not when using, e.g: + % refsection=chapter and \includeonly to put in the chapters or when + % inserting citations into table of contents + \ifcscounter{blx@sectionciteorder@\the\c@refsection} + {} + {\expandafter\newcount\csname blx@sectionciteorder@\the\c@refsection\endcsname}% + \global\advance\csname blx@sectionciteorder@\the\c@refsection\endcsname\@ne + \blx@tempcnta\z@ + \blx@tempcntb\z@ + \let\blx@tempa\@empty + \forcsvlist\blx@citeadd{#1}% adds to \blx@tempa + \blx@thenotecheck + \ifnum\blx@tempcnta>\z@ + \ifnum\blx@tempcntb>\z@ + \multicitedelim + \fi + \else + \blx@postpunct@saved + \fi + % \blx@tempb is a sorted list of all cites, \blx@tempa is the list of cites to + % sort using this list + \blx@thecitesort + \edef\blx@tempa{\endgroup + \c@citecount\z@ + \c@citetotal\the\blx@tempcnta\relax + \unexpanded{\forlistloop\blx@citeprint}{\blx@tempb}}% + \blx@tempa} + +\def\blx@notecheck{% + \ifnum\blx@tempcnta>\@ne + \blx@warning{% + Package option 'sortcites' enabled.\MessageBreak + Verify postnote placement}% + \fi} + +\def\blx@citesort{% + \ifnum\blx@tempcnta>\@ne + \blx@filtercitesort\blx@tempb{blx@tempa}% + \else + \blx@citenosort + \fi} + +\def\blx@citenosort{% + \let\blx@tempb\blx@tempa} + +\def\abx@missing@entry#1{% + \abx@missing{#1}} + +% {<entrykey>} +\def\blx@citeadd#1{% + \ifcsdef{blx@keyalias@\the\c@refsection @#1} + {\edef\blx@realkey{\csuse{blx@keyalias@\the\c@refsection @#1}}} + {\def\blx@realkey{#1}}% + \expandafter\blx@getrefcontext\expandafter{\blx@realkey}% needed for \ifdata + \expandafter\blx@citation\expandafter{\blx@realkey}\blx@msg@cundefon + \expandafter\blx@ifdata\expandafter{\blx@realkey} + {\advance\blx@tempcnta\@ne + \listeadd\blx@tempa{\blx@realkey}} + {\ifnum\blx@tempcntb>\z@\multicitedelim\fi + \expandafter\abx@missing@entry\expandafter{\blx@realkey}% + \advance\blx@tempcntb\@ne}} + +% set default refcontext for one citation key +% and then override with data from auto-assign \assignrefcontext* macros, if any +% <entrykey> +\def\blx@getrefcontext#1{% + % Save refcontext for restoration at end of \citeprint + \let\blx@refcontext@context@saved\blx@refcontext@context + % Get the default refcontext + % If there was one due to appearance in a bib/biblist, use it + % otherwise fall back on global refcontext. This can happen for cites + % made (a bit strangely but some styles do this) inside a biblist + % which never appear in any printed bib/biblist and therefore have no default + % refcontext defined + \ifcsdef{blx@assignedrefcontextbib@\the\c@refsection @#1} + {\letcs\blx@refcontext@context{blx@assignedrefcontextbib@\the\c@refsection @#1}} + {\blx@edef@refcontext{\blx@sorting/global//global/global}}% + % assignment via keyword list + \ifdef\blx@assignedrefcontextkeywlist + {\def\do##1{% + \blx@imc@ifentrykeyword{#1}{##1} + {% weak version + \ifboolexpr{test {\ifcsdef{blx@assignedrefcontextkeyws*@\the\c@refsection @##1}} + and + not togl {blx@refcontext}}% inside explicit non-global refcontext + {\letcs\blx@refcontext@context{blx@assignedrefcontextkeyws*@\the\c@refsection @##1}} + {}% + % strong version + \ifcsdef{blx@assignedrefcontextkeyws@\the\c@refsection @##1} + {\letcs\blx@refcontext@context{blx@assignedrefcontextkeyws@\the\c@refsection @##1}} + {}} + {}}% + \dolistloop\blx@assignedrefcontextkeywlist} + {}% + % assignment via category + \ifdef\blx@assignedrefcontextcatlist + {\def\do##1{% + \blx@imc@ifentrycategory{#1}{##1} + {% weak version + \ifboolexpr{test {\ifcsdef{blx@assignedrefcontextcats*@\the\c@refsection @##1}} + and + not togl {blx@refcontext}}% inside explicit non-global refcontext + {\letcs\blx@refcontext@context{blx@assignedrefcontextcats*@\the\c@refsection @##1}} + {}% + % strong version + \ifcsdef{blx@assignedrefcontextcats@\the\c@refsection @##1} + {\letcs\blx@refcontext@context{blx@assignedrefcontextcats@\the\c@refsection @##1}} + {}} + {}}% + \dolistloop\blx@assignedrefcontextcatlist} + {}% + % assignment via entrykeys + % weak version + \nottoggle{blx@refcontext} + {\ifcsdef{blx@assignedrefcontextkeys*@\the\c@refsection @*} + {\letcs\blx@refcontext@context{blx@assignedrefcontextkeys*@\the\c@refsection @*}} + {\ifcsdef{blx@assignedrefcontextkeys*@\the\c@refsection @#1} + {\letcs\blx@refcontext@context{blx@assignedrefcontextkeys*@\the\c@refsection @#1}} + {}}} + {}% + % strong version + \ifcsdef{blx@assignedrefcontextkeys@\the\c@refsection @*} + {\letcs\blx@refcontext@context{blx@assignedrefcontextkeys@\the\c@refsection @*}} + {\ifcsdef{blx@assignedrefcontextkeys@\the\c@refsection @#1} + {\letcs\blx@refcontext@context{blx@assignedrefcontextkeys@\the\c@refsection @#1}} + {}}} + +% {<entrykey>} +\protected\def\blx@citeprint#1{% + \blx@getrefcontext{#1}% + \advance\c@citecount\@ne + \addtocounter{instcount}\@ne + \ifnum\c@citecount=\@ne + \blx@getdata@cite{#1}% + \blx@precode + \ifnum\c@citetotal>\@ne + \blx@resetdata + \fi + \else + \blx@dlimcode + \fi + \begingroup + \ifnum\c@citetotal>\@ne + \blx@getdata@cite{#1}% + \fi + \blx@entrysetcount + \blx@setoptions@type\abx@field@entrytype + \blx@setoptions@entry + \blx@backref{#1}% + \blx@pagetracker + \csuse{blx@hook@citekey}% + \csuse{blx@hook@citekey@next}% + \blx@beglangcite + \blx@execute + \blx@loopcode + \blx@citecounter + \blx@citetracker + \blx@ibidtracker + \blx@idemtracker + \blx@opcittracker + \blx@loccittracker + \ifnum\c@citecount=\c@citetotal + \def\blx@thecheckpunct{\blx@err@nestcite\@gobble}% + \blx@postcode + \blx@postpunct@saved + \fi + \blx@endlangcite + \endgroup + \let\blx@refcontext@context\blx@refcontext@context@saved} + +% cite counter +\def\blx@citecounter@global{% + \ifbool{@filesw} + {\ifbool{citetracker} + {\immediate\write\@mainaux{% + \string\abx@aux@count + {\the\c@refsection}{\abx@field@entrykey}}} + {}} + {}} + +\def\blx@citecounter@context{% + \ifbool{@filesw} + {\ifbool{citetracker} + {\immediate\write\@mainaux{% + \iftoggle{blx@footnote} + {\string\abx@aux@fncount} + {\string\abx@aux@count}% + {\the\c@refsection}{\abx@field@entrykey}}} + {}} + {}} + +% {<refsection>}{<entrykey>} +% set maxcitecounter as well, note that we also define a maxcitecounter across +% all refsections, but that does not have a high-level interface +\protected\def\blx@aux@count#1#2{% + \csnumgdef{blx@count@#1@\detokenize{#2}}{% + \csuse{blx@count@#1@\detokenize{#2}}+1}% + \ifnumgreater{\csuse{blx@count@#1@\detokenize{#2}}}{% + 0\csuse{blx@maxcitecounter@#1}} + {\csnumgdef{blx@maxcitecounter@#1}{% + \csuse{blx@count@#1@\detokenize{#2}}}} + {}% + \ifnumgreater{\csuse{blx@count@#1@\detokenize{#2}}}{% + 0\csuse{blx@maxcitecounter}} + {\csnumgdef{blx@maxcitecounter}{% + \csuse{blx@count@#1@\detokenize{#2}}}} + {}} + +\protected\def\blx@aux@fncount#1#2{% + \csnumgdef{blx@fncount@#1@\detokenize{#2}}{% + \csuse{blx@fncount@#1@\detokenize{#2}}+1}% + \ifnumgreater{\csuse{blx@fncount@#1@\detokenize{#2}}}{% + 0\csuse{blx@maxfncitecounter@#1}} + {\csnumgdef{blx@maxfncitecounter@#1}{% + \csuse{blx@fncount@#1@\detokenize{#2}}}} + {}% + \ifnumgreater{\csuse{blx@fncount@#1@\detokenize{#2}}}{% + 0\csuse{blx@maxfncitecounter}} + {\csnumgdef{blx@maxfncitecounter}{% + \csuse{blx@fncount@#1@\detokenize{#2}}}} + {}} + +\let\abx@aux@count\@gobbletwo +\let\abx@aux@fncount\@gobbletwo + +\AtEndDocument{% + \let\abx@aux@count\@gobbletwo + \let\abx@aux@fncount\@gobbletwo} + +\protected\def\blx@setcitecounter@global{% + \c@citecounter0% + \csuse{blx@count@\the\c@refsection @\abx@field@entrykey}% + \relax + \c@maxcitecounter0% + \csuse{blx@maxcitecounter@\the\c@refsection}% + \relax} + +\protected\def\blx@setcitecounter@context{% + \c@citecounter0% + \iftoggle{blx@footnote} + {\csuse{blx@fncount@\the\c@refsection @\abx@field@entrykey}} + {\csuse{blx@count@\the\c@refsection @\abx@field@entrykey}}% + \relax + \c@maxcitecounter0% + \iftoggle{blx@footnote} + {\csuse{blx@maxfncitecounter@\the\c@refsection}} + {\csuse{blx@maxcitecounter@\the\c@refsection}}% + \relax} + +% cite tracker +\def\blx@citetracker@global{% + \ifbool{citetracker} + {\xifinlistcs\abx@field@entrykey{blx@bsee@\the\c@refsection} + {} + {\listcsxadd{blx@bsee@\the\c@refsection}\abx@field@entrykey}} + {}} + +\def\blx@citetracker@context{% + \ifbool{citetracker} + {\iftoggle{blx@footnote} + {\xifinlistcs\abx@field@entrykey{blx@fsee@\the\c@refsection} + {} + {\listcsxadd{blx@fsee@\the\c@refsection}\abx@field@entrykey}} + {\xifinlistcs\abx@field@entrykey{blx@bsee@\the\c@refsection} + {} + {\listcsxadd{blx@bsee@\the\c@refsection}\abx@field@entrykey}}} + {}} + +\protected\appto\abx@savetrackers{% + \global\csletcs{blx@saved@bsee@\the\c@refsection}{blx@bsee@\the\c@refsection}% + \global\csletcs{blx@saved@fsee@\the\c@refsection}{blx@fsee@\the\c@refsection}} + +\protected\appto\abx@resttrackers{% + \global\csletcs{blx@bsee@\the\c@refsection}{blx@saved@bsee@\the\c@refsection}% + \global\csletcs{blx@fsee@\the\c@refsection}{blx@saved@fsee@\the\c@refsection}} + +\protected\appto\abx@cleartrackers{% + \global\cslet{blx@saved@bsee@\the\c@refsection}\@empty + \global\cslet{blx@saved@fsee@\the\c@refsection}\@empty} + +% ibidem tracker +\def\blx@ibidtracker@global{% + \ifbool{citetracker} + {\global\let\blx@lastkey@text\abx@field@entrykey} + {}} + +\def\blx@ibidtracker@context{% + \ifbool{citetracker} + {\iftoggle{blx@footnote} + {\global\let\blx@lastkey@foot\abx@field@entrykey} + {\global\let\blx@lastkey@text\abx@field@entrykey}} + {}} + +\def\blx@ibidtracker@strict{% + \blx@ifcitesingle + {\blx@ibidtracker@global} + {\blx@ibidreset@global}}% + +\def\blx@ibidtracker@constrict{% + \blx@ifcitesingle + {\blx@mpfnsave + \blx@ibidtracker@context} + {\blx@ibidreset@context}}% + +\def\blx@ibidreset@force{% + \global\undef\blx@lastkey@text + \global\undef\blx@lastkey@foot + \blx@mpfnreset} + +\def\blx@ibidreset@global{% + \global\undef\blx@lastkey@text} + +\def\blx@ibidreset@context{% + \iftoggle{blx@footnote} + {\blx@mpfnreset + \global\undef\blx@lastkey@foot} + {\global\undef\blx@lastkey@text}} + +\protected\appto\abx@savetrackers{% + \global\let\blx@saved@lastkey@text\blx@lastkey@text + \global\let\blx@saved@lastkey@foot\blx@lastkey@foot} + +\protected\appto\abx@resttrackers{% + \global\let\blx@lastkey@text\blx@saved@lastkey@text + \global\let\blx@lastkey@foot\blx@saved@lastkey@foot} + +\protected\appto\abx@cleartrackers{% + \global\undef\blx@saved@lastkey@text + \global\undef\blx@saved@lastkey@foot} + +% idem tracker +\def\blx@idemtracker@global{% + \ifbool{citetracker} + {\global\let\blx@lasthash@text\abx@field@fullhash} + {}} + +\def\blx@idemtracker@context{% + \ifbool{citetracker} + {\iftoggle{blx@footnote} + {\global\let\blx@lasthash@foot\abx@field@fullhash} + {\global\let\blx@lasthash@text\abx@field@fullhash}} + {}} + +\let\blx@idemtracker@strict\blx@idemtracker@global + +\def\blx@idemtracker@constrict{% + \blx@mpfnsave + \blx@idemtracker@context} + +\def\blx@idemreset@force{% + \global\undef\blx@lasthash@text + \global\undef\blx@lasthash@foot + \blx@mpfnreset} + +\def\blx@idemreset@global{% + \global\undef\blx@lasthash@text} + +\def\blx@idemreset@context{% + \iftoggle{blx@footnote} + {\blx@mpfnreset + \global\undef\blx@lasthash@foot} + {\global\undef\blx@lasthash@text}} + +\protected\appto\abx@savetrackers{% + \global\let\blx@saved@lasthash@text\blx@lasthash@text + \global\let\blx@saved@lasthash@text\blx@lasthash@text} + +\protected\appto\abx@resttrackers{% + \global\let\blx@lasthash@text\blx@saved@lasthash@text + \global\let\blx@lasthash@text\blx@saved@lasthash@text} + +\protected\appto\abx@cleartrackers{% + \global\undef\blx@saved@lasthash@text + \global\undef\blx@saved@lasthash@foot} + +% opcit tracker +\def\blx@opcittracker@global{% + \ifbool{citetracker} + {\blx@opcit@tracker{text}} + {}} + +\def\blx@opcittracker@context{% + \ifbool{citetracker} + {\iftoggle{blx@footnote} + {\blx@opcit@tracker{foot}} + {\blx@opcit@tracker{text}}} + {}} + +\def\blx@opcittracker@strict{% + \blx@ifcitesingle + {\blx@opcittracker@global} + {\blx@opcitreset@global}}% + +\def\blx@opcittracker@constrict{% + \blx@ifcitesingle + {\blx@mpfnsave + \blx@opcittracker@context} + {\blx@opcitreset@context}}% + +\def\blx@opcit@tracker#1{% + \blx@imc@iffieldundef{namehash} + {} + {\global\cslet{blx@lastkey@#1@\abx@field@namehash}\abx@field@entrykey + \xifinlistcs\abx@field@namehash{blx@trackhash@#1} + {} + {\listcsxadd{blx@trackhash@#1}\abx@field@namehash}}} + +\def\blx@opcit@reset#1{% + \begingroup + \def\do##1{\global\csundef{blx@lastkey@#1@##1}}% + \dolistcsloop{blx@trackhash@#1}% + \global\cslet{blx@trackhash@#1}\@empty + \endgroup} + +\def\blx@opcitreset@force{% + \blx@opcit@reset{text}% + \blx@opcit@reset{foot}% + \blx@mpfnreset} + +\def\blx@opcitreset@global{% + \blx@opcit@reset{text}} + +\def\blx@opcitreset@context{% + \iftoggle{blx@footnote} + {\blx@opcit@reset{foot}% + \blx@mpfnreset} + {\blx@opcit@reset{text}}} + +\let\blx@trackhash@text\@empty +\let\blx@trackhash@foot\@empty + +\protected\appto\abx@savetrackers{% + \begingroup + \def\do#1{\global\csletcs{blx@saved@lastkey@text@#1}{blx@lastkey@text@#1}}% + \dolistloop\blx@trackhash@text + \global\let\blx@saved@trackhash@text\blx@trackhash@text + \def\do#1{\global\csletcs{blx@saved@lastkey@foot@#1}{blx@lastkey@foot@#1}}% + \dolistloop\blx@trackhash@foot + \global\let\blx@saved@trackhash@foot\blx@trackhash@foot + \endgroup} + +\protected\appto\abx@resttrackers{% + \begingroup + \blx@opcit@reset{text}% + \global\let\blx@trackhash@text\blx@saved@trackhash@text + \def\do#1{\global\csletcs{blx@lastkey@text@#1}{blx@saved@lastkey@text@#1}}% + \dolistloop\blx@trackhash@text + \blx@opcit@reset{foot}% + \global\let\blx@trackhash@foot\blx@saved@trackhash@foot + \def\do#1{\global\csletcs{blx@lastkey@foot@#1}{blx@saved@lastkey@foot@#1}}% + \dolistloop\blx@trackhash@foot + \endgroup} + +\protected\appto\abx@cleartrackers{% + \begingroup + \def\do#1{\global\csundef{blx@saved@lastkey@text@#1}}% + \dolistloop\blx@saved@trackhash@text + \global\undef\blx@saved@trackhash@text + \def\do#1{\global\csundef{blx@saved@lastkey@foot@#1}}% + \dolistloop\blx@saved@trackhash@foot + \global\undef\blx@saved@trackhash@foot + \endgroup} + +% loccit tracker +\def\blx@loccittracker@global{% + \ifbool{citetracker} + {\blx@loccit@tracker{text}} + {}} + +\def\blx@loccittracker@context{% + \ifbool{citetracker} + {\iftoggle{blx@footnote} + {\blx@loccit@tracker{foot}} + {\blx@loccit@tracker{text}}} + {}} + +\def\blx@loccittracker@strict{% + \ifbool{citetracker} + {\blx@loccit@stricttracker{text}} + {}} + +\def\blx@loccittracker@constrict{% + \ifbool{citetracker} + {\iftoggle{blx@footnote} + {\blx@mpfnsave + \blx@loccit@stricttracker{foot}} + {\blx@loccit@stricttracker{text}}} + {}} + +\def\blx@loccit@tracker#1{% + \global\csundef{blx@lastnote@#1@\abx@field@entrykey}% + \blx@imc@iffieldundef{postnote} + {} + {\global\cslet{blx@lastnote@#1@\abx@field@entrykey}\abx@field@postnote + \xifinlistcs\abx@field@entrykey{blx@trackkeys@#1} + {} + {\listcsxadd{blx@trackkeys@#1}\abx@field@entrykey}}} + +\def\blx@loccit@stricttracker#1{% + \global\csundef{blx@lastnote@#1@\abx@field@entrykey}% + \blx@imc@iffieldundef{postnote} + {} + {\blx@ifcitesingle + {\expandafter\blx@imc@ifpages + \expandafter{\abx@field@postnote} + {\global\cslet{blx@lastnote@#1@\abx@field@entrykey}\abx@field@postnote + \xifinlistcs\abx@field@entrykey{blx@trackkeys@#1} + {} + {\listcsxadd{blx@trackkeys@#1}\abx@field@entrykey}} + {}} + {}}} + +\def\blx@loccit@reset#1{% + \begingroup + \def\do##1{\global\csundef{blx@lastnote@#1@##1}}% + \dolistcsloop{blx@trackkeys@#1}% + \global\cslet{blx@trackkeys@#1}\@empty + \endgroup} + +\def\blx@loccitreset@force{% + \blx@loccit@reset{text}% + \blx@loccit@reset{foot}% + \blx@mpfnreset} + +\def\blx@loccitreset@global{% + \blx@loccit@reset{text}} + +\def\blx@loccitreset@context{% + \iftoggle{blx@footnote} + {\blx@loccit@reset{foot}% + \blx@mpfnreset} + {\blx@loccit@reset{text}}} + +\let\blx@trackkeys@text\@empty +\let\blx@trackkeys@foot\@empty + +\protected\appto\abx@savetrackers{% + \begingroup + \def\do#1{\global\csletcs{blx@saved@lastnote@text@#1}{blx@lastnote@text@#1}}% + \dolistloop\blx@trackkeys@text + \global\let\blx@saved@trackkeys@text\blx@trackkeys@text + \def\do#1{\global\csletcs{blx@saved@lastnote@foot@#1}{blx@lastnote@foot@#1}}% + \dolistloop\blx@trackkeys@foot + \global\let\blx@saved@trackkeys@foot\blx@trackkeys@foot + \endgroup} + +\protected\appto\abx@resttrackers{% + \begingroup + \blx@loccit@reset{text}% + \global\let\blx@trackkeys@text\blx@saved@trackkeys@text + \def\do#1{\global\csletcs{blx@lastnote@text@#1}{blx@saved@lastnote@text@#1}}% + \dolistloop\blx@trackkeys@text + \blx@loccit@reset{foot}% + \global\let\blx@trackkeys@foot\blx@saved@trackkeys@foot + \def\do#1{\global\csletcs{blx@lastnote@foot@#1}{blx@saved@lastnote@foot@#1}}% + \dolistloop\blx@trackkeys@foot + \endgroup} + +\protected\appto\abx@cleartrackers{% + \begingroup + \def\do#1{\global\csundef{blx@saved@lastnote@text@#1}}% + \dolistloop\blx@saved@trackkeys@text + \global\undef\blx@saved@trackkeys@text + \def\do#1{\global\csundef{blx@saved@lastnote@foot@#1}}% + \dolistloop\blx@saved@trackkeys@foot + \global\undef\blx@saved@trackkeys@foot + \endgroup} + +\def\blx@addbackref#1{% + \ifcsdef{blx@setp@\the\c@refsection @#1} + {\ifcase\blx@backrefsetstyle + \blx@addbackref@i{#1}% + \or + \blx@addbackref@ii{setp}{#1}% + \or + \blx@addbackref@i{#1}% + \or + \blx@addbackref@i{#1}% + \or + \blx@addbackref@i{#1}% + \blx@addbackref@ii{setp}{#1}% + \or + \blx@addbackref@i{#1}% + \blx@addbackref@ii{setp}{#1}% + \fi} + {\ifcsdef{blx@setc@\the\c@refsection @#1} + {\ifcase\blx@backrefsetstyle + \blx@addbackref@ii{setc}{#1}% + \or + \blx@addbackref@i{#1}% + \or + \blx@addbackref@i{#1}% + \or + \blx@addbackref@i{#1}% + \blx@addbackref@ii{setc}{#1}% + \or + \blx@addbackref@i{#1}% + \or + \blx@addbackref@i{#1}% + \blx@addbackref@ii{setc}{#1}% + \fi} + {\blx@addbackref@i{#1}}}} + +\def\blx@addbackref@i#1{% + \ifbacktracker + \blx@leavevmode + \if@filesw + \protected@write\@mainaux{}{\string\abx@aux@backref + {\the\c@instcount}{#1}{\the\c@refsection}% + {\thepage}{\noexpand\the\c@page}}% + \fi + \fi} + +\def\blx@addbackref@ii#1#2{% + \expandafter\expandafter\expandafter\forcsvlist + \expandafter\expandafter\expandafter\blx@addbackref@i + \expandafter\expandafter\expandafter{% + \csname blx@#1@\the\c@refsection @#2\endcsname}} + +% {<instcount>}{<entrykey>}{<refsection>}{<page>}{<page int>} +\protected\def\blx@aux@backref#1#2#3#4#5{% + \ifcsundef{blx@pref@#3@\detokenize{#2}} + {\global\cslet{blx@pref@#3@\detokenize{#2}}\@empty + \expandafter\blx@onlypreamble\csname blx@pref@#3@\detokenize{#2}\endcsname} + {}% + \blx@ifprintableinlistcs{#4}{blx@pref@#3@\detokenize{#2}} + {} + {\listcsgadd{blx@pref@#3@\detokenize{#2}}{#4}}% + \blx@addpagesum{#1}{#5}} + +\AtEndDocument{% + \def\abx@aux@backref#1#2#3#4#5{\blx@addpagesum{#1}{#5}}} + +% {<true>}{<false>} +\def\blx@ifcitesingle{% + \ifnum\c@citetotal=\@ne + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi} + +% hyperref interface +\appto\blx@mkhyperref{% + \protected\def\blx@imc@bibhyperref{% + \@ifnextchar[%] + {\blx@bibhyperref} + {\blx@bibhyperref[\abx@field@entrykey]}}% + \ifundef\hyper@natanchorstart + {\long\def\blx@bibhyperref[#1]#2{% + \blx@sfsave\hyperlink{cite.\the\c@refsection @#1}{\blx@sfrest + #2% + \blx@sfsave}\blx@sfrest}% + \protected\long\def\blx@imc@bibhyperlink#1#2{% + \blx@sfsave\hyperlink{cite.\the\c@refsection:#1}{\blx@sfrest + #2% + \blx@sfsave}\blx@sfrest}% + \protected\long\def\blx@imc@bibhypertarget#1#2{% + \blx@sfsave\hypertarget{cite.\the\c@refsection:#1}{\blx@sfrest + #2% + \blx@sfsave}\blx@sfrest}}% + {\long\def\blx@bibhyperref[#1]#2{% + \blx@sfsave\hyper@natlinkstart{\the\c@refsection @#1}\blx@sfrest + #2% + \blx@sfsave\hyper@natlinkend\blx@sfrest}% + \protected\long\def\blx@imc@bibhyperlink#1#2{% + \blx@sfsave\hyper@natlinkstart{\the\c@refsection:#1}\blx@sfrest + #2% + \blx@sfsave\hyper@natlinkend\blx@sfrest}% + \protected\long\def\blx@imc@bibhypertarget#1#2{% + \blx@sfsave\hyper@natanchorstart{\the\c@refsection:#1}\blx@sfrest + #2% + \blx@sfsave\hyper@natanchorend\blx@sfrest}} + \let\blx@imc@ifhyperref\@firstoftwo + \def\blx@sf{\spacefactor}% + \def\blx@sfsave{% + \blx@leavevmode + \numgdef\blx@sf{\spacefactor}}% + \def\blx@sfrest{% + \ifhmode\spacefactor\blx@sf\relax\fi + \gdef\blx@sf{\spacefactor}}} + +\appto\blx@mknohyperref{% + \protected\def\blx@imc@bibhyperref{\@ifnextchar[\blx@nohyperref\@firstofone}% + \def\blx@nohyperref[#1]#2{#2}% + \let\blx@imc@bibhyperlink\@secondoftwo + \let\blx@imc@bibhypertarget\@secondoftwo + \let\blx@imc@ifhyperref\@secondoftwo} + +\blx@regimcs{% + \bibhyperref \bibhyperlink \bibhypertarget \ifhyperref} + +% {<entrykey>,...} +\protected\def\nocite#{\blx@nocite} + +\def\blx@nocite#1{% + \@bsphack + \AfterPreamble{% + \ifstrequal{*}{#1} + {\blx@nocitation@all} + {\blx@xsanitizeafter{\forcsvlist\blx@nocite@do}{#1}}}% + \@esphack} + +\def\blx@nocite@do#1{% + % Make sure this counter exists. Sometimes it might not when using, e.g: + % refsection=chapter and \includeonly to put in the chapters or when + % inserting citations into table of contents + \ifcscounter{blx@sectionciteorder@\the\c@refsection} + {} + {\expandafter\newcount\csname blx@sectionciteorder@\the\c@refsection\endcsname}% + \global\advance\csname blx@sectionciteorder@\the\c@refsection\endcsname\@ne + \blx@nocitation{#1}\blx@msg@cundef} + +% {<macro>}[<arg1>][<arg2>]{<arg3>} +% => <macro>{<arg1>}{<arg2>}{<arg3>} +\protected\def\blx@citeargs#1{% + \@ifnextchar[%] + {\blx@citeargs@i{#1}} + {\blx@citeargs@iii{#1{}{}}}} +\long\def\blx@citeargs@i#1[#2]{% + \@ifnextchar[%] + {\blx@citeargs@ii{#1{#2}}} + {\blx@citeargs@iii{#1{}{#2}}}} +\long\def\blx@citeargs@ii#1[#2]{% + \blx@citeargs@iii{#1{#2}}} +\long\def\blx@citeargs@iii#1#2{% + \blx@xsanitizeafter{#1}{#2}} + +% {<macro>}(<arg1>)(<arg2>) +% => <macro>{<arg1>}{<arg2>} +\protected\def\blx@multiargs#1{% + \@ifnextchar(%) + {\blx@multiargs@i{#1}} + {#1{}{}}} +\long\def\blx@multiargs@i#1(#2){% + \@ifnextchar(%) + {\blx@multiargs@ii{#1{#2}}} + {#1{}{#2}}} +\long\def\blx@multiargs@ii#1(#2){#1{#2}} + +% {<macro>}[<arg1>][<arg2>]{<arg3>}<punct> +% => <macro>{<arg1>}{<arg2>}{<arg3>}{<punctcmd>} +\protected\def\blx@citepunct#1{% + \blx@citeargs{\blx@citepunct@i{#1}}} +\long\def\blx@citepunct@i#1#2#3#4{% + \blx@thecheckpunct{#1{#2}{#3}{#4}}} + +% {<csname>}[<arg1>][<arg2>]{arg3}[arg4]{arg5}<punct> +% => <macro>{<arg1>}{<arg2>}{<arg3>}{<arg4>}{arg5}{<punctcmd>} +\protected\def\blx@citexpunct#1{% + \blx@citeargs{\blx@citexpunct@i{#1}}} +\long\def\blx@citexpunct@i#1#2#3#4{% + \@ifnextchar[%] + {\blx@citexpunct@ii{#1}{{#2}{#3}{#4}}} + {\blx@citexpunct@ii{#1}{{#2}{#3}{#4}}[#1]}} +\long\def\blx@citexpunct@ii#1#2[#3]#4{% + \blx@thecheckpunct{\blxcitecmd{#1}#2{#3}{#4}}} + +% {<code>}<punct> => <code>{<punctcmd>} +\long\def\blx@checkpunct#1{% + \begingroup + \def\blx@tempa{\endgroup#1}% + \futurelet\blx@tempb\blx@checkpunct@i} +\def\blx@checkpunct@i{% + \expandafter\blx@checkpunct@ii\blx@autopunct&} +\def\blx@checkpunct@ii#1{% + \ifx#1&% + \expandafter\blx@checkpunct@iii + \fi + \ifx#1\blx@tempb + \expandafter\blx@checkpunct@iv + \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{% + \gdef\abx@field@postpunct{#3}% + \edef\blx@tempa{% + \expandonce\blx@tempa{% + \ifcsdef{blx@pm@\detokenize{#3}} + {\csname blx@imc@add\csname blx@pm@\detokenize{#3}\endcsname + \endcsname} + {\noexpand#3}}}% + \blx@tempa} + +\long\def\blx@nocheckpunct#1{#1{}} + +\protected\def\blx@citeinit{% + \iftoggle{blx@bibliography} + {} + {\toggletrue{blx@citation}}% + \blx@blxinit + \blx@langstrings + \citesetup + \blx@setsfcodes + \blx@postpunct@agroup + \blx@resetdata + \blx@leavevmode + \csuse{blx@hook@cite}% + \csuse{blx@hook@cite@next}% + \let\blx@citeinit\blx@resetdata} + +\protected\def\blx@citecmdinit{% + \blx@leavevmode@cite + \iftoggle{blx@bibliography} + {} + {\blx@initunit}} + +% *{<command>}[<wrapper>]{<precode>}{<loopcode>}{<delimcode>}{<postcode>} +\newrobustcmd*{\DeclareCiteCommand}{% + \@ifstar{\blx@defcitecmd*}{\blx@defcitecmd{}}} + +\def\blx@defcitecmd#1#2{% + \begingroup + \escapechar\m@ne + \edef\blx@tempa{\endgroup + \noexpand\blx@defcitecmd@i{#1}{\string#2}}% + \blx@tempa} + +\def\blx@defcitecmd@i#1#2{% + \blx@checkcitecmd{#2}{#1}% + \protected\csdef{#2}{% + \blx@citecmdinit + \@ifstar + {\blx@citepunct{\blxcitecmd{#2*}}} + {\blx@citepunct{\blxcitecmd{#2}}}}% + \@ifnextchar[%] + {\blx@defcitecmd@iii{#2#1}} + {\blx@defcitecmd@ii{#2#1}}} + +\long\def\blx@defcitecmd@ii#1{% + \csundef{blx@defcite@wrapper@#1}% + \blx@defcitecmd@iv{#1}% + \blx@defcitecmd@v{#1}} + +\long\def\blx@defcitecmd@iii#1[#2]{% + \csdef{blx@defcite@wrapper@#1}{#2}% + \blx@defcitecmd@iv{#1}% + \blx@defcitecmd@v{#1}} + +\long\def\blx@defcitecmd@iv#1{% + \protected\long\csedef{blx@cite@#1}##1##2##3##4{% + \ifboolexpe{test {\ifcsundef{blx@defcite@wrapper@#1}} + and + (test {\ifcsundef{blx@citepunct@#1}} + or + test {\ifcsequal{blx@citepunct@#1}{blx@citepunctid@pos@c}})} + {} + {\begingroup + \blx@citeinit}% + \ifcsequal{blx@citepunct@#1}{blx@citepunctid@pos@l} + {\noexpand\unspace##4} + {}% + \ifcsequal{blx@citepunct@#1}{blx@citepunctid@pos@f} + {\noexpand\iftoggle{blx@footnote}{}{\unspace##4}} + {}% + \ifcsundef{blx@defcite@wrapper@#1} + {\blxciteicmd{#1}{##1}{##2}{##3}{% + \ifcsundef{blx@citepunct@#1}{##4}{}% + \ifcsequal{blx@citepunct@#1}{blx@citepunctid@pos@c}{##4}{}}} + {\csexpandonce{blx@defcite@wrapper@#1}{% + \blxciteicmd{#1}{##1}{##2}{##3}{% + \ifcsequal{blx@citepunct@#1}{blx@citepunctid@pos@c}{##4}{}}}% + \ifcsundef{blx@citepunct@#1}{##4}{}}% + \ifcsequal{blx@citepunct@#1}{blx@citepunctid@pos@r}{##4}{}% + \ifcsequal{blx@citepunct@#1}{blx@citepunctid@pos@f} + {\noexpand\iftoggle{blx@footnote}{##4}{}} + {}% + \ifboolexpe{test {\ifcsundef{blx@defcite@wrapper@#1}} + and + (test {\ifcsundef{blx@citepunct@#1}} + or + test {\ifcsequal{blx@citepunct@#1}{blx@citepunctid@pos@c}})} + {} + {\endgroup}}} + +\long\def\blx@defcitecmd@v#1#2#3#4#5{% + \protected\long\csdef{blx@citei@#1}##1##2##3##4{% + \ifblank{##1} + {} + {\def\abx@field@prenote{##1}}% + \ifblank{##2} + {\let\blx@thenotecheck\relax} + {\def\abx@field@postnote{##2}% + \iftoggle{blx@volcite} + {\blx@defvolcitepostnote##2} + {}}% + \def\blx@precode{\delimcontext{#1}#2}% + \def\blx@loopcode{#3}% + \def\blx@dlimcode{#4}% + \def\blx@postcode{#5}% + \def\blx@postpunct@saved{##4}% + \blx@citeloop{##3}% + \endgroup}} + +% {<type>}{<name>}{*} +\def\blx@checkcitecmd#1#2{% + \ifblank{#2} + {\ifcsdef{blx@cite@#1} + {\blx@info{Redefining '\@backslashchar#1'}} + {\ifcsundef{#1} + {} + {\blx@warning@noline{Redefining '\@backslashchar#1'}}}% + \ifcsdef{blx@cite@#1*} + {} + {\csedef{blx@cite@#1*}{% + \expandafter\noexpand\csname blx@cite@#1\endcsname}% + \csedef{blx@citei@#1*}{% + \expandafter\noexpand\csname blx@citei@#1\endcsname}}} + {\ifcsdef{blx@cite@#1} + {} + {\csdef{blx@cite@#1}{\blx@err@citecmd{#1}}% + \csdef{blx@citei@#1}{\blx@err@citecmd{#1}}}}} + +% {<name>}{prenote}{postnote}{citekey}{punct} +\newrobustcmd*{\blxcitecmd}[1]{% + \ifcsundef{blx@cite@#1} + {\blx@err@citecmd{#1}} + {\csuse{blx@cite@#1}}} + +\newrobustcmd*{\blxciteicmd}[1]{% + \begingroup + \blx@citeinit + \ifcsundef{blx@citei@#1} + {\blx@err@citecmd{#1}} + {\csuse{blx@citei@#1}}} + +% {<multicitecount>}{<name>}{prenote}{postnote}{citekey}{punct} +\protected\def\blxmciteicmd#1{% + \c@multicitecount#1\relax + \blxciteicmd} + +% {<multicitetotal>}{<multiprenote>}{<multipostnote>} +\protected\def\blxmcites#1#2#3{% + \begingroup + \blx@citeinit + \c@multicitecount\z@ + \c@multicitetotal#1\relax + \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}}% + \ifblank{#3}% + {} + {\def\abx@field@multipostnote{#3}}% + \usebibmacro{multiprenote}} + +\protected\def\blxendmcites{% + \usebibmacro{multipostnote}% + \endgroup} + +% {<command>}[<wrapper>]{<cite>}{<delimiter>} +\newrobustcmd{\DeclareMultiCiteCommand}[1]{% + \ifundef#1% + {} + {\blx@info{Redefining '\string#1'}}% + \@ifnextchar[%] + {\blx@defmcitecmd{#1}} + {\blx@defmcitecmd{#1}[\@firstofone]}} + +\def\blx@defmcitecmd#1[#2]#3#4{% + \begingroup + \escapechar\m@ne + \edef\blx@tempa{\endgroup + \protected\def\noexpand#1{% + \blx@citecmdinit + \noexpand\@ifstar + {\expandafter\noexpand + \csname blx@mcite@\string#1\endcsname*% + \expandafter\noexpand + \csname blx@mcitei@\string#1\endcsname} + {\expandafter\noexpand + \csname blx@mcite@\string#1\endcsname{}% + \expandafter\noexpand + \csname blx@mcitei@\string#1\endcsname}}% + \protected\csdef{blx@mcite@\string#1}####1####2{% + \begingroup + \blx@citeinit + \noexpand\blx@multicite + ####2% + {\unexpanded{#2}}% + {\string#3####1}% + {\unexpanded{#4}}}% + \protected\long\csdef{blx@mcitei@\string#1}}% + \blx@tempa##1##2##3{##1{##2}##3\endgroup}} + +% {<command>}{<wrapper>}{<citecmd>}{<delimiter>} => +% <init><command>{<wrapper>}{<cites>}{<punct>} +\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}% + \def\blx@tempd{#4}% + \c@multicitetotal\z@ + \blx@multiargs\blx@multicite@i} + +\def\blx@multicite@i#1#2{% + \ifblank{#1}% + {\let\abx@field@multiprenote\@empty}% + {\def\abx@field@multiprenote{#1}}% + \ifblank{#2}% + {\let\abx@field@multipostnote\@empty}% + {\def\abx@field@multipostnote{#2}}% + \let\blx@tempe\@empty + \let\blx@tempf\@empty + \togglefalse{blx@tempa}% + \blx@multiparse} + +\def\blx@multicite@add#1#2#3{% + \togglefalse{blx@tempa}% + \advance\c@multicitetotal\@ne + \eappto\blx@tempe{% + \expandonce\blx@tempf + \blxmciteicmd{\the\c@multicitetotal}% + {\expandonce\blx@tempc}\unexpanded{{#1}{#2}{#3}}{}}% + \let\blx@tempf\blx@tempd + \blx@multiparse} + +\def\blx@multicite@end#1{% + \edef\blx@tempa{\endgroup + \expandonce\blx@tempa + {\expandonce\blx@tempb}% + {\blxmcites + {\the\c@multicitetotal}% + {\expandonce\abx@field@multiprenote}% + {\expandonce\abx@field@multipostnote}% + \expandonce\blx@tempe + \blxendmcites}% + {#1}% + \iftoggle{blx@tempa}{\relax\space}{}}% + \blx@tempa} + +\def\blx@multiparse{% + \futurelet\@let@token\blx@multiparse@i} + +\def\blx@multiparse@i{% + \ifx\@let@token\relax + \blx@multiparse@ii{\blx@multicite@end{}}% + \fi + \ifx\@let@token[%] + \blx@multiparse@ii{\blx@citeargs\blx@multicite@add}% + \fi + \ifx\@let@token\bgroup + \blx@multiparse@ii{\blx@citeargs\blx@multicite@add}% + \fi + \ifx\@let@token\@sptoken + \blx@multiparse@ii\blx@multiparse@iii + \fi + \iftrue + \iftoggle{blx@tempa} + {\blx@multiparse@ii{\blx@multicite@end{}}} + {\blx@multiparse@ii{\blx@thecheckpunct\blx@multicite@end}}% + \fi + &} + +\def\blx@multiparse@ii#1#2&{\fi#1} +\csdef{blx@multiparse@iii} {\toggletrue{blx@tempa}\blx@multiparse} + +% {<name>}[l|i|r]{<cite>}{<multicite>} +\newrobustcmd*{\DeclareAutoCiteCommand}[1]{% + \ifcsundef{blx@acite@#1} + {} + {\blx@info{Redefining autocite command '#1'}}% + \@ifnextchar[%] + {\blx@defautocmd@i{#1}} + {\blx@defautocmd@i{#1}[r]}} + +\def\blx@defautocmd@i#1[#2]#3#4{% + \begingroup + \escapechar\m@ne + \edef\blx@tempa{\endgroup + \noexpand\blx@defautocmd@ii{#1}{#2}% + {\string#3}{\string#4}}% + \blx@tempa} + +\def\blx@defautocmd@ii#1#2#3#4{% + \protected\csedef{blx@acite@#1}{% + \blx@citecmdinit + \noexpand\@ifstar + {\blx@citepunct{\expandafter\noexpand + \csname blx@acitei@#1\endcsname*}} + {\blx@citepunct{\expandafter\noexpand + \csname blx@acitei@#1\endcsname{}}}}% + \protected\csedef{blx@acitei@#1}##1##2##3##4##5{% + \begingroup + \blx@citeinit + \if l#2\noexpand\unspace##5\fi + \if f#2\noexpand\iftoggle{blx@footnote}{}{\unspace##5}\fi + \blxcitecmd{#3##1}{##2}{##3}{##4}{}% + \if r#2##5\fi + \if f#2\noexpand\iftoggle{blx@footnote}{##5}{}\fi + \endgroup}% + \protected\csedef{blx@macite@#1}{% + \blx@citecmdinit + \noexpand\@ifstar + {\expandafter\noexpand + \csname blx@macitei@#1\endcsname*% + \expandafter\noexpand + \csname blx@maciteii@#1\endcsname} + {\expandafter\noexpand + \csname blx@macitei@#1\endcsname{}% + \expandafter\noexpand + \csname blx@maciteii@#1\endcsname}}% + \csedef{blx@macitei@#1}{\csname blx@mcite@#4\endcsname}% + \protected\csedef{blx@maciteii@#1}##1##2##3{% + \if l#2\noexpand\unspace##3\fi + \if f#2\noexpand\iftoggle{blx@footnote}{}{\unspace##3}\fi + ##1{##2}% + \if r#2##3\fi + \if f#2\noexpand\iftoggle{blx@footnote}{##3}{}\fi + \endgroup}} + +% {<characters>} +\newrobustcmd*{\DeclareAutoPunctuation}[1]{% + \ifblank{#1} + {\let\blx@thecheckpunct\blx@nocheckpunct} + {\let\blx@thecheckpunct\blx@checkpunct + \def\blx@autopunct{#1}}} + +% {<command>}{<pos marker>} +% pos markers are: +% l: move punctuation before the command (i.e. left of it) +% r: leave punctuation after the command (i.e. to the right) +% f: like l in normal text, like r in footnotes +% c: pass on to the cite command, +% the punctuation will eventually end up as field 'postpunct' +% d: discard the punctuation +% o (or any other value): restores the old standard behaviour +% r for wrapped citation commands, +% c for unwrapped ones +\newrobustcmd*{\DeclareCitePunctuationPosition}[2]{% + \begingroup + \escapechar\m@ne + \edef\blx@tempa{\endgroup + \noexpand\blx@defcitepunctpos@i{\string#1}{#2}}% + \blx@tempa} + +\def\blx@citepunctid@pos@l{l} +\def\blx@citepunctid@pos@r{r} +\def\blx@citepunctid@pos@f{f} +\def\blx@citepunctid@pos@c{c} +\def\blx@citepunctid@pos@d{d} + +\def\blx@defcitepunctpos@i#1#2{% + \ifcsundef{blx@citepunctid@pos@#2} + {\csundef{blx@citepunct@#1}} + {\csletcs{blx@citepunct@#1}{blx@citepunctid@pos@#2}}% + \blx@defcitecmd@iv{#1}} + +\AfterEndPreamble{% babel + \begingroup + \makeatletter + \endlinechar\m@ne + \scantokens\expandafter{% + \expandafter\gdef + \expandafter\blx@autopunct + \expandafter{\blx@autopunct}}% + \endgroup} + +% [<prenote>][<postnote>]{<entrykey>,...}[<format>]{<namelist>}<punct> +\newrobustcmd*{\citename}{\blx@citexpunct{citename}} +\long\csdef{blx@cite@citename}#1#2#3#4#5#6{% + \begingroup + \blx@citecmdinit + \blx@citeinit + \ifblank{#1} + {} + {\def\abx@field@prenote{#1}}% + \ifblank{#2} + {\let\blx@thenotecheck\relax} + {\def\abx@field@postnote{#2}}% + \def\blx@precode{\usebibmacro{prenote}}% + \def\blx@loopcode{% + \ifnameundef{#5} + {\blx@warning@entry{'#5' undefined or not a name list}% + \abx@missing{#5}} + {\printnames[#4]{#5}}}% + \def\blx@dlimcode{\multicitedelim}% + \def\blx@postpunct@saved{#6}% + \ifblank{#2} + {\let\blx@postcode\@empty} + {\def\blx@postcode{\usebibmacro{postnote}}}% + \boolfalse{citetracker}% + \boolfalse{pagetracker}% + \blx@citeloop{#3}% + \endgroup} + +% [<prenote>][<postnote>]{<entrykey>,...}[<format>]{<list>}<punct> +\newrobustcmd*{\citelist}{\blx@citexpunct{citelist}} +\long\csdef{blx@cite@citelist}#1#2#3#4#5#6{% + \begingroup + \blx@citecmdinit + \blx@citeinit + \ifblank{#1} + {} + {\def\abx@field@prenote{#1}}% + \ifblank{#2} + {\let\blx@thenotecheck\relax} + {\def\abx@field@postnote{#2}}% + \def\blx@precode{\usebibmacro{prenote}}% + \def\blx@loopcode{% + \iflistundef{#5} + {\blx@warning@entry{'#5' undefined or not a literal list}% + \abx@missing{#5}} + {\printlist[#4]{#5}}}% + \def\blx@dlimcode{\multicitedelim}% + \def\blx@postpunct@saved{#6}% + \ifblank{#2} + {\let\blx@postcode\@empty} + {\def\blx@postcode{\usebibmacro{postnote}}}% + \boolfalse{citetracker}% + \boolfalse{pagetracker}% + \blx@citeloop{#3}% + \endgroup} + +% [<prenote>][<postnote>]{<entrykey>,...}[<format>]{<field>}<punct> + +\newrobustcmd*{\citefield}{\blx@citexpunct{citefield}} +\long\csdef{blx@cite@citefield}#1#2#3#4#5#6{% + \begingroup + \blx@citecmdinit + \blx@citeinit + \ifblank{#1} + {} + {\def\abx@field@prenote{#1}}% + \ifblank{#2} + {\let\blx@thenotecheck\relax} + {\def\abx@field@postnote{#2}}% + \def\blx@precode{\usebibmacro{prenote}}% + \def\blx@loopcode{% + \iffieldundef{#5} + {\blx@warning@entry{'#5' undefined or not a field}% + \abx@missing{#5}} + {\printfield[#4]{#5}}}% + \def\blx@dlimcode{\multicitedelim}% + \def\blx@postpunct@saved{#6}% + \ifblank{#2} + {\let\blx@postcode\@empty} + {\def\blx@postcode{\usebibmacro{postnote}}}% + \boolfalse{citetracker}% + \boolfalse{pagetracker}% + \blx@citeloop{#3}% + \endgroup} + +\renewrobustcmd*{\cite}{\blx@err@citecmd\cite} +\let\blx@cite@cite\relax +\newrobustcmd*{\parencite}{\blx@warn@citecmd\parencite\cite} +\let\blx@cite@parencite\relax +\newrobustcmd*{\footcite}{\blx@warn@citecmd\footcite\cite} +\let\blx@cite@footcite\relax +\newrobustcmd*{\footcitetext}{\blx@warn@citecmd\footcitetext\cite} +\let\blx@cite@footcitetext\relax +\newrobustcmd*{\smartcite}{\blx@warn@citecmd\smartcite\cite} +\let\blx@cite@smartcite\relax +\newrobustcmd*{\textcite}{\blx@warn@citecmd\textcite\cite} +\let\blx@cite@textcite\relax +\newrobustcmd*{\supercite}{\blx@warn@citecmd\supercite\cite} +\let\blx@cite@supercite\relax + +%% ifthen interface + +\def\blx@TE#1#2{% + \TE@throw + \unexpanded{% + \iftrue\@nameuse{fi}% + #1{\@nameuse{iftrue}}{\@nameuse{iffalse}}}#2} + +\def\blx@xTE#1#2{% + \TE@throw + \unexpanded{\iftrue\@nameuse{fi}}% + #1\unexpanded{{\@nameuse{iftrue}}{\@nameuse{iffalse}}}#2} + +\let\blx@TE@hook\@empty + +\appto\blx@blxinit{% + \appto\blx@TE@hook{% + \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}% + \def\ifloccit{\blx@TE\blx@imc@ifloccit}% + \def\ifsamepage{\blx@TE\blx@imc@ifsamepage}% + \def\iffirstonpage{\blx@TE\blx@imc@iffirstonpage}% + \def\ifcurrentfield#1{\blx@TE{\blx@imc@ifcurrentfield{#1}}}% + \def\ifcurrentlist#1{\blx@TE{\blx@imc@ifcurrentlist{#1}}}% + \def\ifcurrentname#1{\blx@TE{\blx@imc@ifcurrentname{#1}}}% + \def\ifentrytype#1{\blx@TE{\blx@imc@ifentrytype{#1}}}% + \def\iffieldequalcs#1#2{\blx@TE{\blx@imc@iffieldequalcs{#1}{#2}}}% + \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}}}% + \def\ifnamesequal#1#2{\blx@TE{\blx@imc@ifnamesequal{#1}{#2}}}% + \def\ifnameundef#1{\blx@TE{\blx@imc@ifnameundef{#1}}}% + \def\ifcategory#1{\blx@TE{\blx@imc@ifcategory{#1}}}% + \def\ifkeyword#1{\blx@TE{\blx@imc@ifkeyword{#1}}}% + \def\ifentrycategory#1#2{\blx@TE{\blx@imc@ifentrycategory{#1}{#2}}}% + \def\ifentrykeyword#1#2{\blx@TE{\blx@imc@ifentrykeyword{#1}{#2}}}% + \def\ifcapital{\blx@TE\blx@imc@ifcapital}% + \def\ifinteger#1{\blx@TE{\blx@imc@ifinteger{#1}}}% + \def\iffieldint#1{\blx@TE{\blx@imc@iffieldint{#1}}}% + \def\ifnumeral#1{\blx@TE{\blx@imc@ifnumeral{#1}}}% + \def\ifnumerals#1{\blx@TE{\blx@imc@ifnumerals{#1}}}% + \def\ifpages#1{\blx@TE{\blx@imc@ifpages{#1}}}% + \def\iffieldnum#1{\blx@TE{\blx@imc@iffieldnum{#1}}}% + \def\iffieldnums#1{\blx@TE{\blx@imc@iffieldnums{#1}}}% + \def\iffieldpages#1{\blx@TE{\blx@imc@iffieldpages{#1}}}% + \def\ifbibstring#1{\blx@TE{\blx@imc@ifbibstring{#1}}}% + \def\iffieldbibstring#1{\blx@TE{\blx@imc@iffieldbibstring{#1}}}% + \def\ifnatbibmode{\blx@TE{\iftoggle{blx@natbib}}}% + \def\ifcitation{\blx@TE{\iftoggle{blx@citation}}}% + \def\ifvolcite{\blx@TE{\iftoggle{blx@volcite}}}% + \def\ifbibliography{\blx@TE{\iftoggle{blx@bibliography}}}% + \def\ifciteindex{\blx@TE{\iftoggle{blx@citeindex}}}% + \def\ifbibindex{\blx@TE{\iftoggle{blx@bibindex}}}% + \def\iffootnote{\blx@TE{\iftoggle{blx@footnote}}}% + \def\ifuseprefix{\blx@TE{\iftoggle{blx@useprefix}}}% + \def\ifterseinits{\blx@TE{\iftoggle{blx@terseinits}}}% + \def\ifsingletitle{\blx@TE{\iftoggle{abx@bool@singletitle}}}% + \def\ifnocite{\blx@TE{\iftoggle{abx@bool@nocite}}}% + \def\ifuniquetitle{\blx@TE{\iftoggle{abx@bool@uniquetitle}}}% + \def\ifuniquebaretitle{\blx@TE{\iftoggle{abx@bool@uniquebaretitle}}}% + \def\ifuniquework{\blx@TE{\iftoggle{abx@bool@uniquework}}}% + \def\ifuniqueprimaryauthor{\blx@TE{\iftoggle{abx@bool@uniqueprimaryauthor}}}% + \def\ifandothers#1{\blx@TE{\iftoggle{abx@bool@more#1}}}% + \def\iflabeldateisdate{\blx@TE\blx@imc@iflabeldateisdate}% + \def\ifdatehasyearonlyprecision#1{% + \blx@TE{\blx@imc@ifdatehasyearonlyprecision{#1}}}% + \def\ifdatehastime#1{\blx@TE{\blx@imc@ifdatehastime{#1}}}% + \def\ifdateshavedifferentprecision#1#2{% + \blx@TE{\blx@imc@ifdateshavedifferentprecision{#1}{#2}}}% + \def\ifdateyearsequal#1#2{% + \blx@TE{\blx@imc@ifdateyearsequal{#1}{#2}}}}} + +% {<listmacro>}{<filtercsname>} => matches in <listmacro> +\protected\def\blx@bibfilter#1#2{% + \begingroup + \edef\blx@do##1{% + \def\noexpand\blx@flt@item{##1}% + \ifboolexpr{\csexpandonce{#2}}% + {\listadd\noexpand\blx@tempa{##1}}% + {}}% + \let\blx@done\relax + \edef\blx@tempa{% + \let\noexpand\blx@tempa\noexpand\@empty + \blx@listloop{#1}}% + \blx@tempa + \edef\blx@tempa{\endgroup + \def\noexpand#1{\blx@tempa}}% + \blx@tempa} + +%% Auxiliary macros +\newrobustcmd*{\mkbibquote}{\blx@enquote} +\protected\def\blx@imc@mkbibquote{% + \blx@ifuspunct\blx@usquote\blx@enquote} + +\def\blx@usquote{% + \ifnum\@quotelevel>\z@ + \expandafter\blx@usiquote + \else + \expandafter\blx@usoquote + \fi} + +\long\def\blx@usoquote#1{% + \begingroup + \blx@initoquote + \blx@textooquote#1% + \futurelet\@let@token\blx@usoquote@i} + +\def\blx@usoquote@i{% + \blx@usqcheck + {\ifx\blx@postpunct\@empty\else\blx@dopostpunct\fi + \blx@textcoquote\endgroup} + {\blx@setpostpunct\blx@textcoquote\endgroup}} + +\long\def\blx@usiquote#1{% + \begingroup + \blx@initiquote + \blx@textoiquote#1% + \futurelet\@let@token\blx@usiquote@i} + +\def\blx@usiquote@i{% + \blx@usqcheck + {\blx@textciquote\endgroup} + {\blx@setpostpunct\blx@textciquote\endgroup}} + +\long\def\blx@usqcheck#1#2{% + \def\blx@tempa{#1}% + \def\blx@tempb{#2}% + \ifx\@let@token\space + \blx@usqcheck@i\blx@tempa + \fi + \ifx\@let@token\@sptoken + \blx@usqcheck@i\blx@tempa + \fi + \if\noexpand\@let@token\relax + \expandafter\blx@usqcheck@iv + \fi + \expandafter\blx@usqcheck@ii\blx@quotepunct\relax&} + +\long\def\blx@usqcheck@i#1#2&{\fi#1} + +\long\def\blx@usqcheck@ii#1{% + \if\noexpand#1\relax + \blx@usqcheck@i\blx@tempa + \fi + \if\noexpand#1\noexpand\@let@token + \blx@usqcheck@i{\blx@usqcheck@iii\blx@tempa}% + \fi + \blx@usqcheck@ii +} + +\long\def\blx@usqcheck@iii#1#2{#2#1} + +\long\def\blx@usqcheck@iv#1{% + \begingroup + \escapechar=-1 % + \edef\blx@tempa{\expandafter\@gobble\string#2}% + \expandafter\endgroup + \ifx\blx@tempa\@empty + \else + \blx@usqcheck@i\blx@tempb + \fi + #1% +} + +\newrobustcmd*{\mkbibemph}{\emph} +\protected\long\def\blx@imc@mkbibemph#1{% + \emph{#1}\blx@imc@setpunctfont\emph} + +\newrobustcmd*{\mkbibbold}{\textbf} +\protected\long\def\blx@imc@mkbibbold#1{% + \textbf{#1}\blx@imc@setpunctfont\textbf} + +\newrobustcmd*{\mkbibitalic}{\textit} +\protected\long\def\blx@imc@mkbibitalic#1{% + \textit{#1}\blx@imc@setpunctfont\textit} + +\blx@regimcs{\mkbibquote \mkbibemph \mkbibbold \mkbibitalic} + +\newcommand*{\bibleftparen}{\blx@postpunct(} +\newcommand*{\bibrightparen}{\blx@postpunct)\midsentence} +\newcommand*{\bibleftbracket}{\blx@postpunct[} +\newcommand*{\bibrightbracket}{\blx@postpunct]\midsentence} + +\def\blx@parenlevel{% + \iftoggle{blx@footnote} + {\blx@parenlevel@foot} + {\blx@parenlevel@text}} + +\newrobustcmd*{\blx@bibopenparen}{% + \blx@opencheck\bibopenparen + \blx@postpunct + \ifnum\blx@parenlevel=\z@ + \global\blx@parenlevel\@ne + \global\c@parenlevel\@ne + \expandafter\bibleftparen + \else + \expandafter\blx@openparen + \fi} + +\newrobustcmd*{\blx@bibopenbracket}{% + \blx@opencheck\bibopenbracket + \blx@postpunct + \ifnum\blx@parenlevel=\z@ + \global\blx@parenlevel1002 + \global\c@parenlevel\@ne + \expandafter\bibleftbracket + \else + \expandafter\blx@openparen + \fi} + +\newrobustcmd*{\blx@bibcloseparen}{% + \blx@closecheck\bibcloseparen + \blx@postpunct\blx@closeparen} + +\newrobustcmd*{\blx@bibclosebracket}{% + \blx@closecheck\bibclosebracket + \blx@postpunct\blx@closeparen} + +\def\blx@openparen{% + \ifodd\blx@parenlevel + \global\advance\blx@parenlevel\@ne + \global\advance\c@parenlevel\@ne + \expandafter\bibleftbracket + \else + \global\advance\blx@parenlevel\@ne + \global\advance\c@parenlevel\@ne + \expandafter\bibleftparen + \fi} + +\def\blx@closeparen{% + \ifodd\blx@parenlevel + \blx@closeparen@i + \expandafter\bibrightparen + \else + \blx@closeparen@i + \expandafter\bibrightbracket + \fi} + +\def\blx@closeparen@i{% + \ifnum\blx@parenlevel=1002 + \global\blx@parenlevel\z@ + \global\c@parenlevel\z@ + \else + \global\advance\blx@parenlevel\m@ne + \global\advance\c@parenlevel\m@ne + \fi} + +\def\blx@opencheck#1{% + \ifnum\numexpr\blx@parenlevel+\@ne + \ifnum\blx@parenlevel>\@m -1001\fi + >\c@maxparens + \blx@err@nestparen{\string#1}% + \blx@errormark + \fi} + +\def\blx@closecheck#1{% + \ifnum\numexpr\blx@parenlevel + \ifnum\blx@parenlevel>\@m -1001\fi + >\c@maxparens + \blx@err@nestparen{\string#1}% + \blx@errormark + \fi + \ifnum\blx@parenlevel<\@ne + \blx@err@matchparen{Unmatched \string#1}% + \blx@errormark + \fi} + +\protected\def\blx@errormark{% + \rule[0.25ex]{1.25ex}{1.25ex}} + +\AtEndDocument{% + \unless\ifnum\blx@parenlevel@text=\z@ + \blx@err@matchparen{% + Unbalanced parentheses or brackets in the document body}% + \fi + \unless\ifnum\blx@parenlevel@foot=\z@ + \blx@err@matchparen{% + Unbalanced parentheses or brackets in a foot or endnote}% + \fi} + +\newrobustcmd{\mkbibparens}[1]{% + \begingroup + \blx@blxinit + \blx@setsfcodes + \bibopenparen#1\bibcloseparen + \endgroup} + +\newrobustcmd{\mkbibbrackets}[1]{% + \begingroup + \blx@blxinit + \blx@setsfcodes + \bibopenbracket#1\bibclosebracket + \endgroup} + +\newrobustcmd*{\parentext}{\mkbibparens} +\newrobustcmd*{\brackettext}{\mkbibbrackets} + +\newrobustcmd{\mkbibsuperscript}[1]{% + \unspace\allowhyphens\textsuperscript{% + \begingroup + \protected\long\def\mkbibsuperscript##1{% + \blx@warning{Nested superscript}% + \mkbibbrackets{##1}}% + #1\endgroup}} + +\newrobustcmd{\mkbibfootnote}{\blx@mkbibfootnote{}} +\newrobustcmd{\mkbibfootnotetext}{\blx@mkbibfootnote{text}} +\newrobustcmd{\blx@mkbibfootnote}[2]{% + \iftoggle{blx@footnote} + {\blx@warning{Nested notes}% + \addspace\mkbibparens{#2}} + {\unspace + \ifnum\blx@notetype=\tw@ + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi + {\csuse{blx@theendnote#1}{\protecting{\blxmkbibnote{end}{#2}}}} + {\csuse{footnote#1}{\protecting{\blxmkbibnote{foot}{#2}}}}}} + +\newrobustcmd{\mkbibendnote}{\blx@mkbibendnote{}} +\newrobustcmd{\mkbibendnotetext}{\blx@mkbibendnote{text}} +\newrobustcmd{\blx@mkbibendnote}[2]{% + \iftoggle{blx@footnote} + {\blx@warning{Nested notes}% + \addspace\mkbibparens{#2}} + {\unspace + \ifnum\blx@notetype=\@ne + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi + {\csuse{footnote#1}{\protecting{\blxmkbibnote{foot}{#2}}}} + {\csuse{blx@theendnote#1}{\protecting{\blxmkbibnote{end}{#2}}}}}} + +\newrobustcmd{\blxmkbibnote}[2]{% + \begingroup + \blx@blxinit + \blx@setsfcodes + \blx@postpunct@agroup + \toggletrue{blx@footnote}% + \csuse{bib#1notewrapper}{#2}% + \endgroup} + +\newcommand{\bibfootnotewrapper}[1]{% + \bibsentence#1\addperiod} + +\newcommand{\bibendnotewrapper}[1]{% + \bibsentence#1\addperiod} + +\AtEndPreamble{% + \def\blx@theendnote{\blx@err@endnote\footnote}% + \def\blx@theendnotetext{\blx@err@endnote\footnotetext}% + \ifdef\endnote + {\def\blx@theendnote{\endnote}% + \ifdef\endnotetext + {\def\blx@theendnotetext{\endnotetext}} + {}} + {\ifdef\pagenote + {\def\blx@theendnote{\pagenote}% + \ifdef\pagenotetext + {\def\blx@theendnotetext{\pagenotetext}} + {}} + {}}} + +\newrobustcmd*{\mknumalph}[1]{% + \begingroup + \blx@tempcnta=#1\relax + \ifnum\blx@tempcnta>702 % + \else + \ifnum\blx@tempcnta>26 % + \advance\blx@tempcnta\m@ne + \divide\blx@tempcnta26\relax + \blx@numalph\blx@tempcnta + \multiply\blx@tempcnta26\relax + \blx@tempcnta=\numexpr#1-\blx@tempcnta\relax + \fi + \fi + \blx@numalph\blx@tempcnta + \endgroup} +\def\blx@numalph#1{% + \ifcase#1\relax\blx@warning@entry{Value out of range}\number#1\or + a\or b\or c\or d\or e\or f\or g\or h\or i\or j\or k\or l\or m\or + 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} + +% {<macro>}[<pre>]{<vol>}[<post>] => <macro>{<pre>}{{<vol>}{<post>}} + +\newrobustcmd*{\volcitecmd}{% + \AtNextCite{% + \toggletrue{blx@volcite}% + \csuse{blx@hook@volcite}}% + \begingroup\let\blx@citeargs\blx@volciteargs} + +\protected\def\blx@volciteargs#1{% + \endgroup + \@ifnextchar[%] + {\blx@volciteargs@i{#1}} + {\blx@volciteargs@i{#1}[]}} + +\long\def\blx@volciteargs@i#1[#2]#3{% + \@ifnextchar[%] + {\blx@volciteargs@ii{#1}{#2}{#3}} + {\blx@citeargs@iii{#1{#2}{{#3}{}}}}} + +\long\def\blx@volciteargs@ii#1#2#3[#4]{% + \blx@citeargs@iii{#1{#2}{{#3}{#4}}}} + +\newrobustcmd*{\multivolcitecmd}{% + \AtNextCite{% + \toggletrue{blx@volcite}% + \csuse{blx@hook@volcite}}% + \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}[]}} + +\long\def\blx@defvolcitepostnote#1#2{% + \def\abx@field@volcitevolume{#1}% + \ifblank{#2} + {} + {\def\abx@field@volcitepages{#2}}} + +\newrobustcmd*{\AtVolcite}{% + \@ifstar + {\global\undef\blx@hook@volcite + \gappto\blx@hook@volcite} + {\gappto\blx@hook@volcite}} +\@onlypreamble\AtVolcite +\def\blx@imc@UseVolciteHook{\csuse{blx@hook@volcite}} +\blx@regimcs{\UseVolciteHook} + +\AtVolcite{% + \DeclareFieldAlias{postnote}{volcitenote}} + +%% Control file + +\begingroup +\let~\space +\@makeother\< +\@makeother\> +\@makeother\. +\@makeother\: +\@makeother\? +\@makeother\" +\@makeother\- +\@makeother\= +\@makeother\/ +\xdef\blx@xml@file{% + \blx@sig@bcf\blx@nl + \blx@ver@bcf\blx@nl} +\xdef\blx@xml@endfile{% + </bcf:controlfile>} +\xdef\blx@xml@comment#1{% + ~~<!-- #1 -->\blx@nl} +\xdef\blx@xml@options#1#2#3{% + ~~<bcf:options% + \noexpand\ifblank{#1}{}{ component="#1"}% + \noexpand\ifblank{#2}{}{ type="#2"}% + >\blx@nl + #3% + ~~</bcf:options>\blx@nl} +\xdef\blx@xml@option#1#2{% + ~~~~<bcf:option type="#1">\blx@nl + #2% + ~~~~</bcf:option>\blx@nl} +\xdef\blx@xml@ordered#1#2#3{% + ~~~~~~<bcf:value order="#1"#2% + >#3</bcf:value>\blx@nl} + +\xdef\blx@xml@datafieldset#1#2{% + ~~<bcf:datafieldset name="#1">\blx@nl + #2% + ~~</bcf:datafieldset>\blx@nl} + +\xdef\blx@xml@datafieldsets@member#1{% + ~~~~<bcf:member#1/>\blx@nl} + +\xdef\blx@xml@transliteration#1#2{% + ~~<bcf:transliteration entrytype="#1">\blx@nl + #2% + ~~</bcf:transliteration>\blx@nl} +\xdef\blx@xml@translit#1#2#3#4{% + ~~~~<bcf:translit #1target="#2" from="#3" to="#4"/>\blx@nl} + +\xdef\blx@xml@sourcemap#1{% + ~~<bcf:sourcemap>\blx@nl + #1% + ~~</bcf:sourcemap>\blx@nl} +\xdef\blx@xml@sourcemap@maps#1#2{% + ~~~~<bcf:maps#1>\blx@nl + #2% + ~~~~</bcf:maps>\blx@nl} +\xdef\blx@xml@sourcemap@map#1#2{% + ~~~~~~<bcf:map#1>\blx@nl + #2% + ~~~~~~</bcf:map>\blx@nl} +\xdef\blx@xml@sourcemap@perdatasource#1{% + ~~~~~~~~<bcf:per\string_datasource>#1</bcf:per\string_datasource>\blx@nl} +\xdef\blx@xml@sourcemap@pertype#1{% + ~~~~~~~~<bcf:per\string_type>#1</bcf:per\string_type>\blx@nl} +\xdef\blx@xml@sourcemap@pernottype#1{% + ~~~~~~~~<bcf:per\string_nottype>#1</bcf:per\string_nottype>\blx@nl} +\xdef\blx@xml@sourcemap@step#1{% + ~~~~~~~~<bcf:map\string_step#1/>\blx@nl} + +\xdef\blx@xml@labelalphanametemplate#1#2{% + ~~<bcf:labelalphanametemplate name="#1">\blx@nl + #2% + ~~</bcf:labelalphanametemplate>\blx@nl} +\xdef\blx@xml@labelalphanametemplatenamepart#1#2#3{% + ~~~~<bcf:namepart #1#2>#3</bcf:namepart>\blx@nl} + +\xdef\blx@xml@labelalphatemplate#1#2{% + ~~<bcf:labelalphatemplate type="#1">\blx@nl + #2% + ~~</bcf:labelalphatemplate>\blx@nl} +\xdef\blx@xml@labelalpha@element#1#2{% + ~~~~<bcf:labelelement order="#1">\blx@nl + #2% + ~~~~</bcf:labelelement>\blx@nl} +\xdef\blx@xml@labelalpha@part#1#2{% + ~~~~~~<bcf:labelpart#1>#2</bcf:labelpart>\blx@nl} + +\xdef\blx@xml@extradate#1{% + ~~<bcf:extradatespec>\blx@nl + #1% + ~~</bcf:extradatespec>\blx@nl} +\xdef\blx@xml@extradatescope#1{% + ~~~~<bcf:scope>\blx@nl + #1% + ~~~~</bcf:scope>\blx@nl} +\xdef\blx@xml@edordered#1#2{% + ~~~~~~<bcf:field order="#1">#2</bcf:field>\blx@nl} + +\xdef\blx@xml@inheritance#1{% + ~~<bcf:inheritance>\blx@nl + #1% + ~~</bcf:inheritance>\blx@nl} +\xdef\blx@xml@inherit@defaults#1#2{% + ~~~~<bcf:defaults#1>\blx@nl + #2% + ~~~~</bcf:defaults>\blx@nl} +\xdef\blx@xml@inherit@data#1#2{% + ~~~~<bcf:inherit#1>\blx@nl + #2% + ~~~~</bcf:inherit>\blx@nl} +\xdef\blx@xml@inherit@type#1#2#3{% + ~~~~~~<bcf:type\string_pair source="#1" target="#2"#3/>\blx@nl} +\xdef\blx@xml@inherit@field#1#2#3{% + ~~~~~~<bcf:field source="#1" target="#2"#3/>\blx@nl} +\xdef\blx@xml@inherit@block#1{% + ~~~~~~<bcf:field source="#1" skip="true"/>\blx@nl} + +\xdef\blx@xml@nosorts#1{% + ~~<bcf:nosorts>\blx@nl + #1% + ~~</bcf:nosorts>\blx@nl} +\xdef\blx@xml@nosort#1#2{% + ~~~~<bcf:nosort field="#1" value="#2"/>\blx@nl} + +\xdef\blx@xml@noinits#1{% + ~~<bcf:noinits>\blx@nl + #1% + ~~</bcf:noinits>\blx@nl} +\xdef\blx@xml@noinit#1{% + ~~~~<bcf:noinit value="#1"/>\blx@nl} + +\xdef\blx@xml@nolabels#1{% + ~~<bcf:nolabels>\blx@nl + #1% + ~~</bcf:nolabels>\blx@nl} +\xdef\blx@xml@nolabel#1{% + ~~~~<bcf:nolabel value="#1"/>\blx@nl} + +\xdef\blx@xml@nolabelwidthcounts#1{% + ~~<bcf:nolabelwidthcounts>\blx@nl + #1% + ~~</bcf:nolabelwidthcounts>\blx@nl} +\xdef\blx@xml@nolabelwidthcount#1{% + ~~~~<bcf:nolabelwidthcount value="#1"/>\blx@nl} + +\xdef\blx@xml@uniquenametemplate#1#2{% + ~~<bcf:uniquenametemplate name="#1">\blx@nl% + #2% + ~~</bcf:uniquenametemplate>\blx@nl} + +\xdef\blx@xml@uniquenametemplatenamepart#1#2#3{% + ~~~~<bcf:namepart #1#2>#3</bcf:namepart>\blx@nl} + +\xdef\blx@xml@sortingnamekeytemplate#1#2{% + ~~<bcf:sortingnamekeytemplate name="#1">\blx@nl% + #2% + ~~</bcf:sortingnamekeytemplate>\blx@nl} + +\xdef\blx@xml@sortingnamekeykeypart#1#2{% + ~~~~<bcf:keypart#1>\blx@nl + #2% + ~~~~</bcf:keypart>\blx@nl} + +\xdef\blx@xml@sortingnamekeynamepart#1#2#3{% + ~~~~~~<bcf:part type="namepart"#1#2>#3</bcf:part>\blx@nl} + +\xdef\blx@xml@sortingnamekeyliteral#1#2{% + ~~~~~~<bcf:part type="literal"#1>#2</bcf:part>\blx@nl} + +\xdef\blx@xml@sortingtemplate#1#2#3{% + ~~<bcf:sortingtemplate name="#1"#2>\blx@nl% + #3% + ~~</bcf:sortingtemplate>\blx@nl} +\xdef\blx@xml@presort#1#2{% + ~~<bcf:presort\noexpand\ifblank{#1}{}{ type="#1"}>% + #2</bcf:presort>\blx@nl} + +\xdef\blx@xml@sortexclude#1#2{% + ~~<bcf:sortexclusion\noexpand\ifblank{#1}{}{ type="#1"}>\blx@nl + #2% + ~~</bcf:sortexclusion>\blx@nl} +\xdef\blx@xml@exclude#1{% + ~~~~<bcf:exclusion>#1</bcf:exclusion>\blx@nl} +\xdef\blx@xml@sortinclude#1#2{% + ~~<bcf:sortinclusion\noexpand\ifblank{#1}{}{ type="#1"}>\blx@nl + #2% + ~~</bcf:sortinclusion>\blx@nl} +\xdef\blx@xml@include#1{% + ~~~~<bcf:inclusion>#1</bcf:inclusion>\blx@nl} +\xdef\blx@xml@sort#1#2{% + ~~~~<bcf:sort #1>\blx@nl + #2% + ~~~~</bcf:sort>\blx@nl} +\xdef\blx@xml@sortitem#1#2{% + ~~~~~~<bcf:sortitem #1>#2</bcf:sortitem>\blx@nl} +\xdef\blx@xml@section#1{% + ~~<bcf:section number="#1">} +\xdef\blx@xml@endsection{% + ~~</bcf:section>} + +\xdef\blx@xml@dlist@refcontext#1#2#3#4#5{% + ~~~~~~~~~~~~~~~~sortingtemplatename="#1"\blx@nl + ~~~~~~~~~~~~~~~~sortingnamekeytemplatename="#2"\blx@nl + ~~~~~~~~~~~~~~~~labelprefix="#3"\blx@nl + ~~~~~~~~~~~~~~~~uniquenametemplatename="#4"\blx@nl + ~~~~~~~~~~~~~~~~labelalphanametemplatename="#5"} +\xdef\blx@xml@dlist#1#2#3#4#5{% + ~~<bcf:datalist section="#3"\blx@nl + ~~~~~~~~~~~~~~~~name="#1"\blx@nl + ~~~~~~~~~~~~~~~~type="#2"\blx@nl + #4>\blx@nl + #5% + ~~</bcf:datalist>\blx@nl} +\xdef\blx@xml@dlistfilterorbegin{% + ~~~~<bcf:filteror>\blx@nl} +\xdef\blx@xml@dlistfilterorend{% + ~~~~</bcf:filteror>\blx@nl} +\xdef\blx@xml@dlistfilter#1#2{% + ~~~~<bcf:filter type="#1">#2</bcf:filter>\blx@nl} + +\xdef\blx@xml@bibdata#1#2{% + ~~<bcf:bibdata section="#1">\blx@nl + #2% + ~~</bcf:bibdata>\blx@nl} +\xdef\blx@xml@datasource#1#2#3#4{% + ~~~~<bcf:datasource type="#1" datatype="#2"#3>#4</bcf:datasource>\blx@nl} +\xdef\blx@xml@citekey#1#2#3{% + ~~~~<bcf:citekey order="#3"#2>#1</bcf:citekey>} +\xdef\blx@xml@citeset#1#2{% + ~~~~<bcf:citekey type="set" members="#2">#1</bcf:citekey>} +\xdef\blx@xml@svalue#1#2{% + \blx@xml@option{singlevalued}{% + ~~~~~~<bcf:key>#1</bcf:key>\blx@nl + ~~~~~~<bcf:value>#2</bcf:value>\blx@nl}} +\xdef\blx@xml@mvalue#1#2{% + \blx@xml@option{multivalued}{% + ~~~~~~<bcf:key>#1</bcf:key>\blx@nl + #2}} +\xdef\blx@xml@toggle#1{% + \blx@xml@svalue{#1}{\noexpand\iftoggle{blx@#1}{1}{0}}} +\xdef\blx@xml@options@scope#1#2{% + ~~<bcf:optionscope type="#1">\blx@nl + #2% + ~~</bcf:optionscope>\blx@nl} +\xdef\blx@xml@option@scope#1#2{% GLOBAL/TYPE scope + ~~~~<bcf:option datatype="#1">#2</bcf:option>\blx@nl} +\xdef\blx@xml@option@entryscope#1#2{% ENTRY scope + ~~~~<bcf:option datatype="#1"\noexpand\ifcsdef{blx@bcf@backendout@entry@#2}{ backendout="1"}{}\noexpand\ifcsdef{blx@bcf@backendin@entry@#2}{ backendin="\noexpand\csuse{blx@bcf@backendin@entry@#2}"}{}>#2</bcf:option>\blx@nl} +\xdef\blx@xml@option@namelistscope#1#2{% NAMELIST scope + ~~~~<bcf:option datatype="#1"\noexpand\ifcsdef{blx@bcf@backendout@namelist@#2}{ backendout="1"}{}\noexpand\ifcsdef{blx@bcf@backendin@namelist@#2}{ backendin="\noexpand\csuse{blx@bcf@backendin@namelist@#2}"}{}>#2</bcf:option>\blx@nl} +\xdef\blx@xml@option@namescope#1#2{% NAME scope + ~~~~<bcf:option datatype="#1"\noexpand\ifcsdef{blx@bcf@backendout@name@#2}{ backendout="1"}{}\noexpand\ifcsdef{blx@bcf@backendin@name@#2}{ backendin="\noexpand\csuse{blx@bcf@backendin@name@#2}"}{}>#2</bcf:option>\blx@nl} +\endgroup + +\def\blx@bcf@options@global{% + \blx@xml@comment{GLOBAL}% + \blx@xml@options{biblatex}{global}{% + \blx@xml@svalue{alphaothers}{\labelalphaothers}% + \blx@xml@toggle{labelalpha}% + \blx@xml@mvalue{labelnamespec}{\blx@bcf@labelnamespec}% + \blx@xml@toggle{labeltitle}% + \blx@xml@mvalue{labeltitlespec}{\blx@bcf@labeltitlespec}% + \blx@xml@toggle{labeltitleyear}% + \blx@xml@toggle{labeldateparts}% + \blx@xml@mvalue{labeldatespec}{\blx@bcf@labeldatespec}% + \blx@xml@toggle{julian}% + \blx@xml@svalue{gregorianstart}{\blx@gregorianstart}% + \blx@xml@svalue{maxalphanames}{\blx@maxalphanames}% + \blx@xml@svalue{maxbibnames}{\blx@maxbibnames}% + \blx@xml@svalue{maxcitenames}{\blx@maxcitenames}% + \blx@xml@svalue{maxsortnames}{\blx@maxsortnames}% + \blx@xml@svalue{maxitems}{\blx@maxitems}% + \blx@xml@svalue{minalphanames}{\blx@minalphanames}% + \blx@xml@svalue{minbibnames}{\blx@minbibnames}% + \blx@xml@svalue{mincitenames}{\blx@mincitenames}% + \blx@xml@svalue{minsortnames}{\blx@minsortnames}% + \blx@xml@svalue{minitems}{\blx@minitems}% + \blx@xml@toggle{nohashothers}% + \blx@xml@toggle{noroman}% + \blx@xml@toggle{nosortothers}% + \blx@xml@toggle{singletitle}% + \blx@xml@toggle{skipbib}% + \blx@xml@toggle{skipbiblist}% + \blx@xml@toggle{skiplab}% + \blx@xml@svalue{sortalphaothers}{\sortalphaothers}% + \blx@xml@svalue{sortlocale}{\blx@sortlocale}% + \blx@xml@svalue{sortingtemplatename}{\blx@sorting}% + \blx@xml@toggle{sortsets}% + \blx@xml@svalue{uniquelist}{\blx@uniquelist}% + \blx@xml@svalue{uniquename}{\blx@uniquename}% + \blx@xml@toggle{uniqueprimaryauthor}% + \blx@xml@toggle{uniquetitle}% + \blx@xml@toggle{uniquebaretitle}% + \blx@xml@toggle{uniquework}% + \blx@xml@toggle{useprefix}% + \blx@xml@nametoggles + }% +} + +\def\blx@bcf@options@type#1{% + \blx@xml@comment{#1}% + \blx@xml@options{biblatex}{#1}{% + \blx@xml@toggle{labelalpha}% + \blx@xml@mvalue{labelnamespec}{% + \ifcsdef{blx@bcf@labelnamespec@#1} + {\csuse{blx@bcf@labelnamespec@#1}} + {\blx@bcf@labelnamespec}}% + \blx@xml@toggle{labeltitle}% + \blx@xml@mvalue{labeltitlespec}{% + \ifcsdef{blx@bcf@labeltitlespec@#1} + {\csuse{blx@bcf@labeltitlespec@#1}} + {\blx@bcf@labeltitlespec}}% + \blx@xml@toggle{labeltitleyear}% + \blx@xml@toggle{labeldateparts}% + \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}% + \blx@xml@svalue{maxcitenames}{\blx@maxcitenames}% + \blx@xml@svalue{maxsortnames}{\blx@maxsortnames}% + \blx@xml@svalue{maxitems}{\blx@maxitems}% + \blx@xml@svalue{minalphanames}{\blx@minalphanames}% + \blx@xml@svalue{minbibnames}{\blx@minbibnames}% + \blx@xml@svalue{mincitenames}{\blx@mincitenames}% + \blx@xml@svalue{minsortnames}{\blx@minsortnames}% + \blx@xml@svalue{minitems}{\blx@minitems}% + \blx@xml@toggle{nohashothers}% + \blx@xml@toggle{noroman}% + \blx@xml@toggle{nosortothers}% + \blx@xml@toggle{singletitle}% + \blx@xml@toggle{skipbib}% + \blx@xml@toggle{skiplab}% + \blx@xml@toggle{skipbiblist}% + \blx@xml@svalue{uniquelist}{\blx@uniquelist}% + \blx@xml@svalue{uniquename}{\blx@uniquename}% + \blx@xml@toggle{uniqueprimaryauthor}% + \blx@xml@toggle{uniquetitle}% + \blx@xml@toggle{uniquebaretitle}% + \blx@xml@toggle{uniquework}% + \blx@xml@toggle{useprefix}% + \blx@xml@nametoggles + }% +} + +\def\blx@ctrlwrite{% + \begingroup + \blx@safe@actives + \let\protect\string + % options + \edef\labelalphaothers{\labelalphaothers}% + \edef\sortalphaothers{\sortalphaothers}% + \blx@xmlsanitizeafter{\def\labelalphaothers}{\labelalphaothers}% + \blx@xmlsanitizeafter{\def\sortalphaothers}{\sortalphaothers}% + % Expand the global use* name toggles + \let\blx@xml@nametoggles\@empty + \def\do##1{\eappto\blx@xml@nametoggles{\blx@xml@toggle{use##1}}}% + \abx@donames + \edef\blx@tempa{% + \blx@xml@file + \blx@xml@comment{BIBER OPTIONS}% + \blx@xml@options{biber}{global}{% + \blx@xml@svalue{output_encoding}{\blx@texencoding}% + \blx@xml@svalue{input_encoding}{\blx@bibencoding}% + \blx@xml@toggle{debug}% + \blx@xml@svalue{mincrossrefs}{\blx@mincrossrefs}% + \blx@xml@svalue{minxrefs}{\blx@minxrefs}% + \blx@xml@toggle{sortcase}% + \blx@xml@toggle{sortupper}% + }% + \blx@xml@comment{BIBLATEX OPTIONS}% + \blx@bcf@options@global + }% + \ifdef\blx@opts@type + {\def\do##1{% + \begingroup + \let\protect\relax + \blx@setoptions@type{##1}% + % Expand the type use* name toggles + \let\blx@xml@nametoggles\@empty + \def\do####1{\eappto\blx@xml@nametoggles{\blx@xml@toggle{use####1}}}% + \abx@donames + \blx@checkoptions@type + \xappto\blx@tempa{\blx@bcf@options@type{##1}}% + \endgroup}% + \dolistloop\blx@opts@type} + {}% + % options scope + % GLOBAL + \def\do##1{% + \begingroup + \def\do####1{\xappto\blx@bcf@options@scope@global{\blx@xml@option@scope{##1}{####1}}}% + \dolistcsloop{blx@globalopts@##1}% + \endgroup}% + \dolistloop\blx@globalopts@datatypes + % ENTRYTYPE + \def\do##1{% + \begingroup + \def\do####1{\xappto\blx@bcf@options@scope@type{\blx@xml@option@scope{##1}{####1}}}% + \dolistcsloop{blx@typeopts@##1}% + \endgroup}% + \dolistloop\blx@typeopts@datatypes + % ENTRY + \def\do##1{% + \begingroup + \def\do####1{\xappto\blx@bcf@options@scope@entry{\blx@xml@option@entryscope{##1}{####1}}}% + \dolistcsloop{blx@entryopts@##1}% + \endgroup}% + \dolistloop\blx@entryopts@datatypes + % NAMELIST + \def\do##1{% + \begingroup + \def\do####1{\xappto\blx@bcf@options@scope@namelist{\blx@xml@option@namelistscope{##1}{####1}}}% + \dolistcsloop{blx@namelistopts@##1}% + \endgroup}% + \dolistloop\blx@entryopts@datatypes + % NAME + \def\do##1{% + \begingroup + \def\do####1{\xappto\blx@bcf@options@scope@name{\blx@xml@option@namescope{##1}{####1}}}% + \dolistcsloop{blx@nameopts@##1}% + \endgroup}% + \dolistloop\blx@entryopts@datatypes + + \eappto\blx@tempa{% + \blx@xml@comment{BIBLATEX OPTION SCOPE}% + \blx@xml@options@scope{GLOBAL}{\blx@bcf@options@scope@global}% + \blx@xml@options@scope{ENTRYTYPE}{\blx@bcf@options@scope@type}% + \blx@xml@options@scope{ENTRY}{\blx@bcf@options@scope@entry}% + \blx@xml@options@scope{NAMELIST}{\blx@bcf@options@scope@namelist}% + \blx@xml@options@scope{NAME}{\blx@bcf@options@scope@name}} + % datafieldsets + \def\do##1{% + \xappto\blx@bcf@datafieldsets{\blx@xml@datafieldset{##1}{\csuse{blx@datafieldsetmembers@##1}}}} + \dolistloop\blx@datafieldsets + + \eappto\blx@tempa{% + \blx@xml@comment{DATAFIELDSETS}% + \blx@bcf@datafieldsets}% + % sourcemap + \ifbool{sourcemap} + {\eappto\blx@tempa{% + \blx@xml@comment{SOURCEMAP}% + \blx@xml@sourcemap{% + \ifdef\blx@sourcemap@user + {\blx@sourcemap@user} + {}% + \ifdef\blx@sourcemap@style + {\blx@sourcemap@style} + {}% + \ifdef\blx@sourcemap@defaults@bibtex + {\blx@sourcemap@defaults@bibtex} + {}% + \ifdef\blx@sourcemap@defaults@biblatexml + {\blx@sourcemap@defaults@biblatexml} + {}}}} + {}% + % labelalpha name template + \eappto\blx@tempa{\blx@xml@comment{LABELALPHA NAME TEMPLATE}}% + \def\do##1{% + \eappto\blx@tempa{% + \blx@xml@labelalphanametemplate{##1}{\csuse{blx@labelalphanametemplate@##1}}}}% + \dolistloop\blx@lantemplatespecs + % labelalpha template + \eappto\blx@tempa{% + \blx@xml@comment{LABELALPHA TEMPLATE}}% + \def\do##1{% + \eappto\blx@tempa{% + \blx@xml@labelalphatemplate{##1}{% + \csuse{blx@labelalphatemplate@##1}}}}% + \dolistloop\blx@latem@type + % extradate specification + \eappto\blx@tempa{% + \blx@xml@comment{EXTRADATE}% + \blx@xml@extradate{\csuse{blx@bcf@extradatespec}}}% + % data inheritance + \eappto\blx@tempa{% + \blx@xml@comment{INHERITANCE}% + \blx@xml@inheritance{% + \csuse{blx@inherit@default}% + \csuse{blx@inherit@data}}}% + % noinit + \ifcsdef{blx@noinit} + {\eappto\blx@tempa{% + \blx@xml@comment{NOINIT}% + \blx@xml@noinits{% + \csuse{blx@noinit}}}}% + {}% + % nolabel + \ifcsdef{blx@nolabel} + {\eappto\blx@tempa{% + \blx@xml@comment{NOLABEL}% + \blx@xml@nolabels{% + \csuse{blx@nolabel}}}}% + {}% + % nolabel + \ifcsdef{blx@nolabelwidthcount} + {\eappto\blx@tempa{% + \blx@xml@comment{NOLABELWIDTHCOUNT}% + \blx@xml@nolabelwidthcounts{% + \csuse{blx@nolabelwidthcount}}}}% + {}% + % nosort + \ifcsdef{blx@nosort} + {\eappto\blx@tempa{% + \blx@xml@comment{NOSORT}% + \blx@xml@nosorts{% + \csuse{blx@nosort}}}}% + {}% + % transliteration + \ifdefempty\blx@translits + {} + {\eappto\blx@tempa{\blx@xml@comment{TRANSLITERATION}}% + \def\do##1{% + \eappto\blx@tempa{\blx@xml@transliteration{##1}{\csuse{blx@translit@##1}}}}% + \dolistloop\blx@translits}% + % uniquenametemplate + \eappto\blx@tempa{\blx@xml@comment{UNIQUENAME TEMPLATES}}% + \def\do##1{% + \eappto\blx@tempa{% + \blx@xml@uniquenametemplate{##1}{\csuse{blx@uniquenametemplate@##1}}}}% + \dolistloop\blx@untemplatespecs + % sortingnamekeytemplate + \eappto\blx@tempa{\blx@xml@comment{SORTING NAME KEY TEMPLATES}}% + \def\do##1{% + \eappto\blx@tempa{% + \blx@xml@sortingnamekeytemplate{##1}{\csuse{blx@sortingnamekeytemplate@##1}}}}% + \dolistloop\blx@sortingnamekeytemplates + % presort/sorting excludes/sorting includes + \def\do##1{% + \eappto\blx@bcf@presort{\csuse{blx@bcf@presort@##1}}% + \eappto\blx@bcf@exclude{\csuse{blx@bcf@exclude@##1}}% + \eappto\blx@bcf@include{\csuse{blx@bcf@include@##1}}}% + \abx@doentrytypes + \do{*}% entrytype wildcard + \eappto\blx@tempa{% + \blx@bcf@presort + \blx@bcf@exclude + \blx@bcf@include}% + % datamodel + \eappto\blx@tempa{% + \blx@xml@comment{DATA MODEL}% + \blx@xml@datamodel{% + \blx@xml@datamodel@constants{% + \blx@bcf@datamodel@constants + }% + \blx@xml@datamodel@entrytypes{% + \blx@bcf@datamodel@entrytypes + }% + \blx@xml@datamodel@fields{% + \blx@bcf@datamodel@fields + }% + \blx@bcf@datamodel@entryfields + \blx@bcf@datamodel@constraints + }% + }% + % files + \let\blx@tempb\@empty + \blx@bibdata\blx@tempb\blx@bibfiles + \eappto\blx@tempa{% + \blx@xml@comment{CITATION DATA}% + \blx@xml@comment{SECTION 0}% + \blx@xml@bibdata{0}{\blx@tempb}% + \blx@xml@section{0}% + }% + \immediate\openout\blx@bcfout\jobname.bcf\relax + \blx@auxwrite\blx@bcfout{}{\blx@tempa}% + \global\undef\blx@tempa + \endgroup + \AfterEndDocument{% + \def\do##1{% + \csxappto{blx@sortingtemplates}{% + \blx@xml@sortingtemplate{##1} + {\ifcsdef{blx@sortdef@locale@##1}{ locale="\csuse{blx@sortdef@locale@##1}"}{}} + {\csuse{blx@sortingtemplate@##1}}}}% + \dolistloop\blx@sortingtemplatenames + \blx@auxwrite\blx@bcfout{}{% + \blx@xml@endsection\blx@nl + \blx@xml@comment{SORTING TEMPLATES}% + \csuse{blx@sortingtemplates}% + \blx@xml@comment{DATALISTS}% + \csuse{blx@dlists}% + \blx@xml@endfile}% + \immediate\closeout\blx@bcfout}} + +%% Customisation + +% nolabel +\newrobustcmd*{\DeclareNolabel}[1]{% + \begingroup + \let\nolabel\blx@nolabel@setup + \let\blx@tempa\@empty + #1% + \global\let\blx@nolabel\blx@tempa + \endgroup} +\@onlypreamble\DeclareNolabel + +\newcommand*{\blx@nolabel@setup}[1]{% + \eappto\blx@tempa{% + \blx@xml@nolabel{#1}}} + +% nolabelwidthcount +\newrobustcmd*{\DeclareNolabelwidthcount}[1]{% + \begingroup + \let\nolabel\blx@nolabelwidthcount@setup + \let\blx@tempa\@empty + #1% + \global\let\blx@nolabelwidthcount\blx@tempa + \endgroup} +\@onlypreamble\DeclareNolabelwidthcount + +\newcommand*{\blx@nolabelwidthcount@setup}[1]{% + \eappto\blx@tempa{% + \blx@xml@nolabelwidthcount{#1}}} + +% nosort +\newrobustcmd*{\DeclareNosort}[1]{% + \begingroup + \let\nosort\blx@nosort@setup + \let\blx@tempa\@empty + #1% + \global\let\blx@nosort\blx@tempa + \endgroup} +\@onlypreamble\DeclareNosort + +\newcommand*{\blx@nosort@setup}[2]{% + \eappto\blx@tempa{% + \blx@xml@nosort{#1}{#2}}} + +% noinit +\newrobustcmd*{\DeclareNoinit}[1]{% + \begingroup + \let\noinit\blx@noinit@setup + \let\blx@tempa\@empty + #1% + \global\let\blx@noinit\blx@tempa + \endgroup} +\@onlypreamble\DeclareNoinit + +\newcommand*{\blx@noinit@setup}[1]{% + \eappto\blx@tempa{% + \blx@xml@noinit{#1}}} + +% datafieldsets +\newrobustcmd*{\DeclareDatafieldSet}[2]{% + \begingroup + \let\member\blx@datafieldset@member + \let\blx@tempa\@empty + \def\blx@setname{#1} + \cslet{blx@datafieldset@#1}\@empty + #2% + \csxdef{blx@datafieldsetmembers@#1}{\blx@tempa}% + \listgadd\blx@datafieldsets{#1}% + \global\csletcs{datafieldset#1}{blx@datafieldset@#1}% expose user-facing macro + \endgroup} +\@onlypreamble\DeclareDatafieldSet + +\newcommand*{\blx@datafieldset@member}[1][2]{% + \let\blx@dm@fieldtype\@empty + \let\blx@dm@datatype\@empty + \let\blx@member@field\@empty + \let\blx@tempb\@empty + \setkeys{blx@datafieldsets@member}{#1}% + \eappto\blx@tempa{% + \blx@xml@datafieldsets@member{\blx@tempb}}% + \ifdefempty\blx@member@field + {} + {\listcsxadd{blx@datafieldset@\blx@setname}{\blx@member@field}}% + % Set some internal macros in case biblatex needs to use the set + \ifboolexpr{% + not test {\ifdefempty{\blx@dm@fieldtype}} + and + not test {\ifdefempty{\blx@dm@datatype}}} + {\def\do##1{% + \listcsxadd{blx@datafieldset@\blx@setname}{##1}} + \dolistcsloop{blx@datamodelfields@types@\blx@dm@fieldtype @\blx@dm@datatype}} + {\ifdefempty{\blx@dm@fieldtype} + {} + {\def\do##1{% + \listcsxadd{blx@datafieldset@\blx@setname}{##1}} + \dolistcsloop{blx@datamodelfields@fieldtypes@\blx@dm@fieldtype}}% + \ifdefempty{\blx@dm@datatype} + {} + {\def\do##1{% + \listcsxadd{blx@datafieldset@\blx@setname}{##1}} + \dolistcsloop{blx@datamodelfields@datatypes@\blx@dm@datatype}}}} + +\define@key{blx@datafieldsets@member}{datatype}{% characters + \appto\blx@tempb{ datatype="#1"}% + \def\blx@dm@datatype{#1}} +\define@key{blx@datafieldsets@member}{fieldtype}{% characters + \appto\blx@tempb{ fieldtype="#1"}% + \def\blx@dm@fieldtype{#1}} +\define@key{blx@datafieldsets@member}{field}{% characters + \appto\blx@tempb{ field="#1"}% + \def\blx@member@field{#1}} + +% sourcemap +\newrobustcmd*{\DeclareSourcemap}[1]{% + \booltrue{sourcemap}% + \begingroup + \let\maps\blx@usersourcemap@maps + \let\blx@tempa\@empty + #1% + \xappto\blx@sourcemap@user\blx@tempa% + \endgroup} +\@onlypreamble\DeclareSourcemap + +\newrobustcmd*{\DeclareStyleSourcemap}[1]{% + \booltrue{sourcemap}% + \begingroup + \let\maps\blx@stylesourcemap@maps + \let\blx@tempa\@empty + #1% + \xappto\blx@sourcemap@style\blx@tempa% + \endgroup} + +\@onlypreamble\DeclareStyleSourcemap + +\newrobustcmd*{\DeclareDriverSourcemap}[2][]{% + \booltrue{sourcemap}% + \begingroup + \let\blx@tempa\@empty + \let\blx@tempb\@empty + \let\blx@tempc\@empty + \let\blx@tempd\@empty + \let\map\blx@sourcemap@map + #2% + \ifblank{#1} + {\setkeys{blx@sourcemap@maps}{datatype=bibtex, level=driver}} + {\setkeys{blx@sourcemap@maps}{#1, level=driver}}% + \eappto\blx@tempa{% + \blx@xml@sourcemap@maps{\blx@tempb}{\blx@tempc}}% + \csxdef{blx@sourcemap@defaults@\blx@tempd}{\blx@tempa}% + \endgroup} +\@onlypreamble\DeclareDriverSourcemap + +\newcommand*{\blx@usersourcemap@maps}[2][]{% + \let\blx@tempb\@empty + \let\blx@tempc\@empty + \let\map\blx@sourcemap@map + \ifblank{#1} + {\setkeys{blx@sourcemap@maps}{datatype=bibtex, level=user}} + {\setkeys{blx@sourcemap@maps}{#1, level=user}}% + #2% + \eappto\blx@tempa{% + \blx@xml@sourcemap@maps{\blx@tempb}{\blx@tempc}}} + +\newcommand*{\blx@stylesourcemap@maps}[2][]{% + \let\blx@tempb\@empty + \let\blx@tempc\@empty + \let\map\blx@sourcemap@map + \ifblank{#1} + {\setkeys{blx@sourcemap@maps}{datatype=bibtex, level=style}} + {\setkeys{blx@sourcemap@maps}{#1, level=style}}% + #2% + \eappto\blx@tempa{% + \blx@xml@sourcemap@maps{\blx@tempb}{\blx@tempc}}} + +\define@key{blx@sourcemap@maps}{datatype}{% characters + \eappto\blx@tempb{ datatype="#1"}% + \eappto\blx@tempd{#1}} +\define@key{blx@sourcemap@maps}{overwrite}[true]{% true|false + \ifstrequal{#1}{true} + {\appto\blx@tempb{ map\string_overwrite="1"}} + {}} +\define@key{blx@sourcemap@maps}{level}{% user|style|driver + \appto\blx@tempb{ level="#1"}} + +\newcommand*{\blx@sourcemap@map}[2][]{% + \let\blx@tempm\@empty + \let\blx@tempe\@empty + \let\perdatasource\blx@sourcemap@perdatasource + \let\pertype\blx@sourcemap@pertype + \let\pernottype\blx@sourcemap@pernottype + \let\step\blx@sourcemap@step + \ifblank{#1} + {} + {\setkeys{blx@sourcemap@map}{#1}}% + #2% + \eappto\blx@tempc{% + \blx@xml@sourcemap@map{\blx@tempm}{\blx@tempe}}} + +\define@key{blx@sourcemap@map}{overwrite}[true]{% true|false + \ifstrequal{#1}{true} + {\appto\blx@tempm{ map\string_overwrite="1"}} + {}} +\define@key{blx@sourcemap@map}{foreach}{% characters + \eappto\blx@tempm{ map\string_foreach="#1"}} +\define@key{blx@sourcemap@map}{refsection}{% integer + \eappto\blx@tempm{ refsection="#1"}} + +\newcommand*{\blx@sourcemap@perdatasource}[1]{% + \eappto\blx@tempe{% + \blx@xml@sourcemap@perdatasource{#1}}} + +\newcommand*{\blx@sourcemap@pertype}[1]{% + \eappto\blx@tempe{% + \blx@xml@sourcemap@pertype{#1}}} + +\newcommand*{\blx@sourcemap@pernottype}[1]{% + \eappto\blx@tempe{% + \blx@xml@sourcemap@pernottype{#1}}} + +\newcommand*{\blx@sourcemap@step}[1][2]{% + \let\blx@tempf\@empty + \setkeys{blx@sourcemap@step}{#1}% + \eappto\blx@tempe{% + \blx@xml@sourcemap@step{\blx@tempf}}} + +\define@key{blx@sourcemap@step}{typesource}{% characters + \eappto\blx@tempf{ map\string_type\string_source="#1"}} +\define@key{blx@sourcemap@step}{typetarget}{% characters + \eappto\blx@tempf{ map\string_type\string_target="#1"}} +\define@key{blx@sourcemap@step}{final}[true]{% true|false + \ifstrequal{#1}{true} + {\appto\blx@tempf{ map\string_final="1"}} + {}} +\define@key{blx@sourcemap@step}{fieldsource}{% characters + \eappto\blx@tempf{ map\string_field\string_source="#1"}} +\define@key{blx@sourcemap@step}{notfield}{% characters + \eappto\blx@tempf{ map\string_notfield="#1"}} +\define@key{blx@sourcemap@step}{fieldtarget}{% characters + \eappto\blx@tempf{ map\string_field\string_target="#1"}} +\define@key{blx@sourcemap@step}{fieldset}{% characters + \eappto\blx@tempf{ map\string_field\string_set="#1"}} +% We are sanitising the XML here as it's the value of an attribute which +% might contain quotes or ampersands (URLs, for example) +\define@key{blx@sourcemap@step}{fieldvalue}{% characters + \blx@xmlsanitizeafter{\def\blx@temps}{#1}% + \eappto\blx@tempf{ map\string_field\string_value="\blx@temps"}} +\define@key{blx@sourcemap@step}{append}[true]{% true|false + \ifstrequal{#1}{true} + {\appto\blx@tempf{ map\string_append="1"}} + {}} +\define@key{blx@sourcemap@step}{appendstrict}[true]{% true|false + \ifstrequal{#1}{true} + {\appto\blx@tempf{ map\string_appendstrict="1"}} + {}} +\define@key{blx@sourcemap@step}{null}[true]{% true|false + \ifstrequal{#1}{true} + {\appto\blx@tempf{ map\string_null="1"}} + {}} +\define@key{blx@sourcemap@step}{entrynull}[true]{% true|false + \ifstrequal{#1}{true} + {\appto\blx@tempf{ map\string_entry\string_null="1"}} + {}} +\define@key{blx@sourcemap@step}{entrynocite}[true]{% true|false + \ifstrequal{#1}{true} + {\appto\blx@tempf{ map\string_entry\string_nocite="1"}} + {}} +\define@key{blx@sourcemap@step}{entrynew}{% characters + \appto\blx@tempf{ map\string_entry\string_new="#1"}} +\define@key{blx@sourcemap@step}{entrynewtype}{% characters + \appto\blx@tempf{ map\string_entry\string_newtype="#1"}} +\define@key{blx@sourcemap@step}{entrytarget}{% characters + \appto\blx@tempf{ map\string_entrytarget="#1"}} +\define@key{blx@sourcemap@step}{entryclone}{% characters + \appto\blx@tempf{ map\string_entry\string_clone="#1"}} +\define@key{blx@sourcemap@step}{origfield}[true]{% true|false + \ifstrequal{#1}{true} + {\appto\blx@tempf{ map\string_origfield="1"}} + {}} +\define@key{blx@sourcemap@step}{origfieldval}[true]{% true|false + \ifstrequal{#1}{true} + {\appto\blx@tempf{ map\string_origfieldval="1"}} + {}} +\define@key{blx@sourcemap@step}{origentrytype}[true]{% true|false + \ifstrequal{#1}{true} + {\appto\blx@tempf{ map\string_origentrytype="1"}} + {}} +\define@key{blx@sourcemap@step}{match}{% characters + \appto\blx@tempf{ map\string_match="#1"}} +\define@key{blx@sourcemap@step}{matchi}{% characters + \appto\blx@tempf{ map\string_matchi="#1"}} +\define@key{blx@sourcemap@step}{notmatch}{% characters + \appto\blx@tempf{ map\string_notmatch="#1"}} +\define@key{blx@sourcemap@step}{notmatchi}{% characters + \appto\blx@tempf{ map\string_notmatchi="#1"}} +\define@key{blx@sourcemap@step}{replace}{% characters + \eappto\blx@tempf{ map\string_replace="#1"}} + +% [<specname>]{<spec>} +\newrobustcmd*{\DeclareLabelalphaNameTemplate}[2][]{% + \begingroup + \ifblank{#1} + {\def\blx@lantname{global}}% default + {\def\blx@lantname{#1}}% + \let\namepart\blx@lantem@namepart + \let\blx@tempa\@empty + \blx@tempcnta\z@ + #2% + \global\cslet{blx@labelalphanametemplate@\blx@lantname}\blx@tempa + \xifinlist\blx@lantname\blx@lantemplatespecs + {} + {\listxadd\blx@lantemplatespecs\blx@lantname}% + \endgroup} +\@onlypreamble\DeclareLabelalphaNameTemplate +\blx@DeclareBackendOption{global}[xml]{labelalphanametemplate} +\DeclareBiblatexOption{entry,namelist,name}[string]{labelalphanametemplatename}{% + \def\blx@refcontext@labelalphanametemplatename{#1}} + +\newcommand*{\blx@lantem@namepart}[2][]{% + \advance\blx@tempcntb\@ne + \edef\blx@tempe{order="\the\blx@tempcntb"}% + \let\blx@tempc\@empty + \ifblank{#1} + {} + {\setkeys{blx@lantem@namepart}{#1}}% + \eappto\blx@tempa{% + \blx@xml@labelalphanametemplatenamepart{\blx@tempe}{\blx@tempc}{#2}}} + +\define@key{blx@lantem@namepart}{use}[true]{% use* option for namepart true|false + \ifstrequal{#1}{true} + {\appto\blx@tempc{ use="1"}} + {}} + +\define@key{blx@lantem@namepart}{pre}[true]{% pre option for namepart true|false + \ifstrequal{#1}{true} + {\appto\blx@tempc{ pre="1"}} + {}} + +\define@key{blx@lantem@namepart}{compound}[true]{% base option for namepart true|false + \ifstrequal{#1}{true} + {\appto\blx@tempc{ substring\string_compound="1"}} + {}} + +\define@key{blx@lantem@namepart}{strwidth}{% integer + \eappto\blx@tempc{ substring\string_width="#1"}} + +\define@key{blx@lantem@field}{strside}{% left|right + \ifstrequal{#1}{right} + {\eappto\blx@tempc{ substring\string_side="right"}} + {\eappto\blx@tempc{ substring\string_side="left"}}} + +% [<entrytype>]{<spec>} +\newrobustcmd*{\DeclareLabelalphaTemplate}[2][]{% + \ifblank{#1} + {\blx@latem{#2}{global}} + {\forcsvlist{\blx@latem{#2}}{#1}}} +\@onlypreamble\DeclareLabelalphaTemplate +\blx@DeclareBackendOption{global,type}[xml]{labelalphatemplate} + +\def\blx@latem#1#2{% + \begingroup + \let\labelelement\blx@latem@element + \let\field\blx@latem@field + \let\literal\blx@latem@literal + \blx@tempcnta\z@ + \let\blx@tempa\@empty + #1% + \ifdef\blx@latem@type + {\ifinlist{#2}\blx@latem@type + {\global\cslet{blx@labelalphatemplate@#2}\blx@tempa} + {\listgadd\blx@latem@type{#2}% + \global\cslet{blx@labelalphatemplate@#2}\blx@tempa}} + {\listgadd\blx@latem@type{#2}% + \global\cslet{blx@labelalphatemplate@#2}\blx@tempa}% + \endgroup} + +\newcommand*{\blx@latem@element}[1]{% + \advance\blx@tempcnta\@ne + \let\blx@tempb\@empty + #1% + \eappto\blx@tempa{% + \blx@xml@labelalpha@element{\the\blx@tempcnta}{\blx@tempb}}} + +\newcommand*{\blx@latem@literal}[1]{% + \blx@xmlsanitizeafter{\def\blx@temps}{#1}% + \eappto\blx@tempb{% + \blx@xml@labelalpha@part{}{\expandafter\regexp\expandafter{\blx@temps}}}} + +\newcommand*{\blx@latem@field}[2][]{% + \let\blx@tempc\@empty + \ifblank{#1} + {} + {\setkeys{blx@latem@field}{#1}}% + \eappto\blx@tempb{% + \blx@xml@labelalpha@part{\blx@tempc}{#2}}} + +\define@key{blx@latem@field}{uppercase}[true]{% true|false + \ifstrequal{#1}{true} + {\appto\blx@tempc{ uppercase="1"}} + {}} +\define@key{blx@latem@field}{lowercase}[true]{% true|false + \ifstrequal{#1}{true} + {\appto\blx@tempc{ lowercase="1"}} + {}} +\define@key{blx@latem@field}{final}[true]{% true|false + \ifstrequal{#1}{true} + {\appto\blx@tempc{ final="1"}} + {}} +\define@key{blx@latem@field}{strwidth}{% integer + \eappto\blx@tempc{ substring\string_width="#1"}} +\define@key{blx@latem@field}{varwidth}[true]{% "v" + \ifstrequal{#1}{true} + {\appto\blx@tempc{ substring\string_width="v"}} + {}} +\define@key{blx@latem@field}{varwidthnorm}[true]{% "vf" + \ifstrequal{#1}{true} + {\appto\blx@tempc{ substring\string_width="vf"}} + {}} +\define@key{blx@latem@field}{varwidthlist}[true]{% "l" + \ifstrequal{#1}{true} + {\appto\blx@tempc{ substring\string_width="l"}} + {}} +\define@key{blx@latem@field}{strfixedcount}{% + \eappto\blx@tempc{ substring\string_fixed\string_threshold="#1"}} +\define@key{blx@latem@field}{strwidthmax}{% + \eappto\blx@tempc{ substring\string_width\string_max="#1"}} +\define@key{blx@latem@field}{strside}{% left|right + \ifstrequal{#1}{right} + {\eappto\blx@tempc{ substring\string_side="right"}} + {\eappto\blx@tempc{ substring\string_side="left"}}} +\define@key{blx@latem@field}{namessep}{% + \eappto\blx@tempc{ namessep="#1"}} +\define@key{blx@latem@field}{ifnames}{% + \eappto\blx@tempc{ ifnames="#1"}} +\define@key{blx@latem@field}{names}{% + \eappto\blx@tempc{ names="#1"}} +\define@key{blx@latem@field}{noalphaothers}[true]{% + \eappto\blx@tempc{ noalphaothers="1"}} +\define@key{blx@latem@field}{padchar}{% + \blx@xmlsanitizeafter{\def\blx@temps}{#1}% + \eappto\blx@tempc{ pad\string_char="\expandafter\regexp\expandafter{\blx@temps}"}} +\define@key{blx@latem@field}{padside}{% left|right + \ifstrequal{#1}{left} + {\eappto\blx@tempc{ pad\string_side="left"}} + {\eappto\blx@tempc{ pad\string_side="right"}}} + +% [<exceptions>]{<options>} +\newrobustcmd*{\DefaultInheritance}[2][]{% + \begingroup + \let\blx@tempf\@empty + \ifblank{#2} + {} + {\setkeys{blx@inherit@default}{#2}}% + \edef\blx@tempa{\space + inherit\string_all="\iftoggle{blx@inherit@all}{true}{false}"\space + override\string_target="\iftoggle{blx@inherit@override}{true}{false}"% + \blx@tempf}% + \let\blx@tempb\@empty + \let\except\blx@inherit@except + #1% + \xdef\blx@inherit@default{% + \blx@xml@inherit@defaults{\blx@tempa}{\blx@tempb}}% + \endgroup} +\@onlypreamble\DefaultInheritance + +\newtoggle{blx@inherit@all} +\newtoggle{blx@inherit@override} + +\define@key{blx@inherit@default}{all}[true]{% true|false + \settoggle{blx@inherit@all}{#1}} +\define@key{blx@inherit@default}{override}[true]{% true|false + \settoggle{blx@inherit@override}{#1}} +\define@key{blx@inherit@default}{ignore}{% csv list + \edef\blx@tempf{ ignore="#1"}} + +% {<source>}{<target>}{<options>} +\newcommand*{\blx@inherit@except}[3]{% + \let\blx@tempc\@empty + \ifblank{#3} + {} + {\setkeys{blx@inherit@except}{#3}}% + \eappto\blx@tempb{% + \blx@xml@inherit@type{#1}{#2}{\blx@tempc}}} + +\define@key{blx@inherit@except}{all}[true]{% true|false + \eappto\blx@tempc{ inherit\string_all="#1"}} +\define@key{blx@inherit@except}{override}[true]{% true|false + \eappto\blx@tempc{ override\string_target="#1"}} +\define@key{blx@inherit@except}{ignore}{% csv list + \eappto\blx@tempc{ ignore="#1"}} + +% {<type,type,...>}{<type,type,...>}{<spec>} +\newrobustcmd*{\DeclareDataInheritance}[4][]{% + \begingroup + \let\blx@tempa\@empty + \let\blx@tempf\@empty + \ifblank{#1} + {} + {\setkeys{blx@inherit}{#1}}% + \forcsvlist{\blx@inherit@i{#3}}{#2}% + \let\blx@tempb\@empty + \let\inherit\blx@inherit@field + \let\noinherit\blx@inherit@block + #4% + \xappto\blx@inherit@data{% + \blx@xml@inherit@data{\blx@tempf}{% + \blx@tempa + \blx@tempb}}% + \endgroup} +\@onlypreamble\DeclareDataInheritance + +\def\blx@inherit@i#1#2{% + \forcsvlist{\blx@inherit@ii{#2}}{#1}} + +\def\blx@inherit@ii#1#2{% + \eappto\blx@tempa{\blx@xml@inherit@type{#1}{#2}{}}} + +\blx@DeclareBackendOption{global}[xml]{inheritance} + +% [<options>]{<source>}{<target>} +\newcommand*{\blx@inherit@field}[3][]{% + \let\blx@tempc\@empty + \ifblank{#1} + {} + {\setkeys{blx@inherit@field}{#1}}% + \eappto\blx@tempb{% + \blx@xml@inherit@field{#2}{#3}{\blx@tempc}}} + +\newcommand*{\blx@inherit@block}[1]{% + \eappto\blx@tempb{\blx@xml@inherit@block{#1}}} + +\define@key{blx@inherit}{ignore}{% csv list + \edef\blx@tempf{ ignore="#1"}} + +\define@key{blx@inherit@field}{override}[true]{% true|false + \ifstrequal{#1}{true} + {\edef\blx@tempc{ override\string_target="true"}} + {\edef\blx@tempc{ override\string_target="false"}}} + +\newrobustcmd*{\ResetDataInheritance}{% + \global\csundef{blx@inherit@data}} +\@onlypreamble\ResetDataInheritance + +% {<name>}{<spec>} +\newrobustcmd*{\DeclareBiblistFilter}[2]{% + \begingroup + \let\filteror\blx@biblistfilteror + \let\filter\blx@biblistfilter + \let\blx@tempa\@empty + #2% + \global\cslet{blx@biblistfilters@#1}\blx@tempa + \endgroup} +\@onlypreamble\DeclareBiblistFilter + +\newcommand*{\blx@biblistfilteror}[1]{% + \eappto\blx@tempa{\blx@xml@dlistfilterorbegin}% + #1% + \eappto\blx@tempa{\blx@xml@dlistfilterorend}} + +\newcommand*{\blx@biblistfilter}[1][2]{% + \let\blx@tempc\@empty + \let\blx@tempd\@empty + \setkeys{blx@biblistfilter@filter}{#1}% + \eappto\blx@tempa{% + \blx@xml@dlistfilter{\blx@tempc}{\blx@tempd}}} + +\define@key{blx@biblistfilter@filter}{type}{% + \def\blx@tempc{#1}} +\define@key{blx@biblistfilter@filter}{filter}{% + \def\blx@tempd{#1}} + +% Predefine filters for label fields +\def\do#1{\DeclareBiblistFilter{#1}{\filter[type=field,filter=#1]}} +\abx@dolabelfields + +\define@key{blx@biblist2}{biblistfilter}{\blx@key@biblistfilter{#1}} +\define@key{blx@biblist1}{biblistfilter}{} + +\def\blx@key@biblistfilter#1{% + \ifcsundef{blx@biblistfilters@#1} + {\blx@error + {BiblistFilter '#1' not found} + {The BiblistFilter '#1' could not be found.\MessageBreak + Use '\string\DeclareBiblistFilter' to define it}} + {\def\blx@thebiblistfilter{#1}}} + +% [<langids>][<entrytype>]{translitsource}{translittarget} +\newrobustcmd*{\DeclareSortTranslit}[2][]{% + \begingroup + \ifblank{#1} + {\def\blx@tempa{*}} + {\def\blx@tempa{#1}}% + \let\translit\blx@translit@setup + \let\blx@tempb\@empty + #2% + \global\cslet{blx@translit@\blx@tempa}\blx@tempb + \xifinlist\blx@tempa\blx@translits + {} + {\listxadd\blx@translits\blx@tempa}% + \endgroup} +\@onlypreamble\DeclareSortTranslit +\blx@DeclareBackendOption{global,type}[xml]{translit} + +\newcommand*{\blx@translit@setup}[4][]{% + \eappto\blx@tempb{% + \ifblank{#1} + {\blx@xml@translit{}{#2}{#3}{#4}} + {\blx@xml@translit{langids="#1" }{#2}{#3}{#4}}}} + +% [<specname>]{<spec>} +\newrobustcmd*{\DeclareUniquenameTemplate}[2][]{% + \begingroup + \ifblank{#1} + {\def\blx@untname{global}}% default + {\def\blx@untname{#1}}% + \let\namepart\blx@untemp@namepart + \let\blx@tempa\@empty + \blx@tempcnta\z@ + #2% + \global\cslet{blx@uniquenametemplate@\blx@untname}\blx@tempa + \xifinlist\blx@untname\blx@untemplatespecs + {} + {\listxadd\blx@untemplatespecs\blx@untname}% + \endgroup} +\@onlypreamble\DeclareUniquenameTemplate +\blx@DeclareBackendOption{global}[xml]{uniquenametemplate} +\DeclareBiblatexOption{entry,namelist,name}[string]{uniquenametemplatename}{% + \def\blx@refcontext@uniquenametemplatename{#1}} + +\newcommand*{\blx@untemp@namepart}[2][]{% + \advance\blx@tempcntb\@ne + \edef\blx@tempe{order="\the\blx@tempcntb"}% + \let\blx@tempc\@empty + \ifblank{#1} + {} + {\setkeys{blx@untemp@namepart}{#1}}% + \eappto\blx@tempa{% + \blx@xml@uniquenametemplatenamepart{\blx@tempe}{\blx@tempc}{#2}}} + +\define@key{blx@untemp@namepart}{use}[true]{% use* option for namepart true|false + \ifstrequal{#1}{true} + {\appto\blx@tempc{ use="1"}} + {}} + +\define@key{blx@untemp@namepart}{base}[true]{% base option for namepart true|false + \ifstrequal{#1}{true} + {\appto\blx@tempc{ base="1"}} + {}} + +\define@key{blx@untemp@namepart}{disambiguation}{% disambiguation option for namepart none|inits|full|fullonly + \appto\blx@tempc{ disambiguation="#1"}} + +% [<templatename>]{<template>} +\newrobustcmd*{\DeclareSortingNamekeyTemplate}[2][]{% + \begingroup + \ifblank{#1} + {\def\blx@snkname{global}}% default + {\def\blx@snkname{#1}}% + \let\namepart\blx@sortnk@namepart + \let\keypart\blx@sortnk@keypart + \let\literal\blx@sortnk@literal + \let\blx@tempa\@empty + \blx@tempcnta\z@ + #2% + \global\cslet{blx@sortingnamekeytemplate@\blx@snkname}\blx@tempa + \xifinlist\blx@snkname\blx@sortingnamekeytemplates + {} + {\listxadd\blx@sortingnamekeytemplates\blx@snkname}% + \endgroup} +\@onlypreamble\DeclareSortingNamekeyTemplate +\blx@DeclareBackendOption{global}[xml]{sortingnamekeytemplate} +\DeclareBiblatexOption{entry,namelist,name}[string]{sortingnamekeytemplatename}{% + \def\blx@refcontext@sortingnamekeytemplatename{#1}} + +% User-mode macro for checking sorting name template options +\def\ifuniquenametemplatename#1{% + \expandafter\ifstrequal\expandafter{\blx@refcontext@uniquenametemplatename}{#1}} +\def\iflabelalphanametemplatename#1{% + \expandafter\ifstrequal\expandafter{\blx@refcontext@labelalphanametemplatename}{#1}} +\def\ifsortingnamekeytemplatename#1{% + \expandafter\ifstrequal\expandafter{\blx@refcontext@sortingnamekeytemplatename}{#1}} + +\newcommand*{\blx@sortnk@keypart}[1]{% + \advance\blx@tempcnta\@ne + \blx@tempcntb\z@ + \edef\blx@tempd{ order="\the\blx@tempcnta"}% + \let\blx@tempb\@empty + #1% + \eappto\blx@tempa{% + \blx@xml@sortingnamekeykeypart{\blx@tempd}{\blx@tempb}}} + +\newcommand*{\blx@sortnk@literal}[1]{% + \advance\blx@tempcntb\@ne + \edef\blx@tempe{ order="\the\blx@tempcntb"}% + \let\blx@tempc\@empty + \eappto\blx@tempb{% + \blx@xml@sortingnamekeyliteral{\blx@tempe}{#1}}} + +\newcommand*{\blx@sortnk@namepart}[2][]{% + \advance\blx@tempcntb\@ne + \edef\blx@tempe{ order="\the\blx@tempcntb"}% + \let\blx@tempc\@empty + \ifblank{#1} + {} + {\setkeys{blx@sortnk@namepart}{#1}}% + \eappto\blx@tempb{% + \blx@xml@sortingnamekeynamepart{\blx@tempe}{\blx@tempc}{#2}}} + +\define@key{blx@sortnk@namepart}{use}[true]{% use* option for namepart true|false + \ifstrequal{#1}{true} + {\appto\blx@tempc{ use="1"}} + {\appto\blx@tempc{ use="0"}}} + +\define@key{blx@sortnk@namepart}{inits}[true]{% initials only option for namepart true|false + \ifstrequal{#1}{true} + {\appto\blx@tempc{ inits="1"}} + {\appto\blx@tempc{ inits="0"}}} + +% [options]{<templatename>}{<template>} +\newrobustcmd*{\DeclareSortingTemplate}[3][]{% + \ifblank{#1} + {} + {\setkeys{blx@sortdef@sorting}{#1}% + \csxdef{blx@sortdef@locale@#2}{\blx@templ}}% + \begingroup + \def\name{%LEGACY(<2.0) + \blx@warning@noline{% + '\string\name' is deprecated in sorting specifications, please use '\string\field'}% + \blx@sortdef@field}% + \def\list{%LEGACY(<2.0) + \blx@warning@noline{% + '\string\list' is deprecated in sorting specifications, please use '\string\field'}% + \blx@sortdef@field}% + \let\sort\blx@sortdef@sort + \let\field\blx@sortdef@field + \let\literal\blx@sortdef@literal + \def\citeorder{\blx@sortdef@field{citeorder}}% + \blx@tempcnta\z@ + \let\blx@tempa\@empty + #3% + \global\cslet{blx@sortingtemplate@#2}\blx@tempa + \endgroup} +\@onlypreamble\DeclareSortingTemplate +\blx@DeclareBackendOption{global}[xml]{sortingtemplate} + +\define@key{blx@sortdef@sorting}{locale}{% locale name + \def\blx@templ{#1}} + +\newcommand*{\blx@sortdef@sort}[2][]{% + \advance\blx@tempcnta\@ne + \blx@tempcntb\z@ + \let\blx@tempb\@empty + \edef\blx@tempc{order="\the\blx@tempcnta"}% + \ifblank{#1} + {} + {\setkeys{blx@sortdef@sort}{#1}}% + \let\do\@firstofone + #2% + \eappto\blx@tempa{% + \blx@xml@sort{\blx@tempc}{\blx@tempb}}} + +\define@key{blx@sortdef@sort}{locale}{% locale name + \eappto\blx@tempc{ locale="#1"}} +\define@key{blx@sortdef@sort}{direction}{% ascending|descending + \ifstrequal{#1}{ascending} + {\eappto\blx@tempc{ sort\string_direction="ascending"}} + {\eappto\blx@tempc{ sort\string_direction="descending"}}} +\define@key{blx@sortdef@sort}{final}[true]{% true|false + \ifstrequal{#1}{true} + {\appto\blx@tempc{ final="1"}} + {}} +\define@key{blx@sortdef@sort}{sortcase}[true]{% true|false + \ifstrequal{#1}{true} + {\appto\blx@tempc{ sortcase="1"}} + {\appto\blx@tempc{ sortcase="0"}}} +\define@key{blx@sortdef@sort}{sortupper}[true]{% true|false + \ifstrequal{#1}{true} + {\appto\blx@tempc{ sortupper="1"}} + {\appto\blx@tempc{ sortupper="0"}}} + +\newcommand*{\blx@sortdef@field}[2][]{% + \advance\blx@tempcntb\@ne + \edef\blx@tempd{order="\the\blx@tempcntb"}% + \ifblank{#1} + {} + {\setkeys{blx@sortdef@field}{#1}}% + \eappto\blx@tempb{% + \blx@xml@sortitem{\blx@tempd}{#2}}} + +\define@key{blx@sortdef@field}{padside}{% left|right + \ifstrequal{#1}{right} + {\eappto\blx@tempd{ pad\string_side="right"}} + {\eappto\blx@tempd{ pad\string_side="left"}}} +\define@key{blx@sortdef@field}{padwidth}{% integer + \eappto\blx@tempd{ pad\string_width="#1"}} +\define@key{blx@sortdef@field}{padchar}{% character + \blx@xmlsanitizeafter{\def\blx@tempe}{#1}% + \eappto\blx@tempd{ pad\string_char="\blx@tempe"}} +\define@key{blx@sortdef@field}{strside}{% left|right + \ifstrequal{#1}{right} + {\eappto\blx@tempd{ substring\string_side="right"}} + {\eappto\blx@tempd{ substring\string_side="left"}}} +\define@key{blx@sortdef@field}{strwidth}{% integer + \eappto\blx@tempd{ substring\string_width="#1"}} + +\def\blx@sortdef@literal#1{% + \advance\blx@tempcntb\@ne + \blx@xmlsanitizeafter{\def\blx@tempe}{#1}% + \eappto\blx@tempb{% + \blx@xml@sortitem{literal="1" order="\the\blx@tempcntb"}{\blx@tempe}}} + +% [<type,type,...>]{<string>} +\newrobustcmd*{\DeclarePresort}[2][]{% + \begingroup + \blx@xmlsanitizeafter{\def\blx@tempa}{#2}% + \ifblank{#1} + {\xdef\blx@bcf@presort{\blx@xml@presort{}{\blx@tempa}}} + {\notblank{#2} + {\forcsvlist{\blx@defpresort\blx@tempa}{#1}} + {\forcsvlist\blx@undefpresort{#1}}}% + \endgroup} +\@onlypreamble\DeclarePresort +\blx@DeclareBackendOption{global,type,entry}[string]{presort} + +\def\blx@defpresort#1#2{% + \csxdef{blx@bcf@presort@#2}{\blx@xml@presort{#2}{#1}}} +\def\blx@undefpresort#1{% + \global\csundef{blx@bcf@presort@#1}} + +% {<entrytype,...>}{<field,...>} +\newrobustcmd*{\DeclareSortExclusion}[2]{% + \forcsvlist{\blx@sortexclude{#2}}{#1}} +\blx@DeclareBackendOption{type}[xml]{sortexclusion} + +% {<field>}{<entrytype>} +\def\blx@sortexclude#1#2{% + \begingroup + \ifblank{#1} + {\global\csundef{blx@bcf@exclude@#2}} + {\let\blx@tempa\@empty + \forcsvlist\blx@sortexclude@i{#1}% + \csxdef{blx@bcf@exclude@#2}{% + \blx@xml@sortexclude{#2}{\blx@tempa}}} + \endgroup} + +\def\blx@sortexclude@i#1{% + \appto\blx@tempa{\blx@xml@exclude{#1}}} + +% {<entrytype,...>}{<field,...>} +\newrobustcmd*{\DeclareSortInclusion}[2]{% + \forcsvlist{\blx@sortinclude{#2}}{#1}} +\blx@DeclareBackendOption{type}[xml]{sortinclusion} + +% {<field>}{<entrytype>} +\def\blx@sortinclude#1#2{% + \begingroup + \ifblank{#1} + {\global\csundef{blx@bcf@include@#2}} + {\let\blx@tempa\@empty + \forcsvlist\blx@sortinclude@i{#1}% + \csxdef{blx@bcf@include@#2}{% + \blx@xml@sortinclude{#2}{\blx@tempa}}} + \endgroup} + +\def\blx@sortinclude@i#1{% + \appto\blx@tempa{\blx@xml@include{#1}}} + +% {<field,field,...>} +\newrobustcmd*{\DeclareExtradate}[1]{% + \begingroup + \let\blx@tempa\@empty + \let\scope\blx@extradate@scope + #1% + \global\let\blx@bcf@extradatespec\blx@tempa + \endgroup} +\@onlypreamble\DeclareExtradate +\blx@DeclareBackendOption{global}[xml]{extradatespec} + +\newrobustcmd*{\blx@extradate@scope}[1]{% + \let\blx@tempb\@empty + \let\field\blx@ordereded@field + #1% + \csxappto{blx@tempa}{% + \noexpand\blx@xml@extradatescope{\blx@tempb}}} + +\newcommand*{\blx@ordereded@field}[1]{% + \advance\blx@tempcnta\@ne + \csxappto{blx@tempb}{% + \noexpand\blx@xml@edordered{\the\blx@tempcnta}{#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}% + \def\do##1{\global\cslet{blx@bcf@labelnamespec@##1}\@empty}% + \expandafter\docsvlist\expandafter{#1}}% + #2% + \endgroup} +\@onlypreamble\DeclareLabelname +\blx@DeclareBackendOption{global,type}[xml]{labelnamespec} + +\newrobustcmd*{\DeclareLabeltitle}[2][]{% + \begingroup + \let\blx@tempa\@empty + \def\blx@tempb{labeltitlespec}% + \let\field\blx@ordered@field + \ifblank{#1} + {\global\cslet{blx@bcf@labeltitlespec}\@empty} + {\def\blx@tempa{#1}% + \def\do##1{\global\cslet{blx@bcf@labeltitlespec@##1}\@empty}% + \expandafter\docsvlist\expandafter{#1}}% + #2% + \endgroup} +\@onlypreamble\DeclareLabeltitle +\blx@DeclareBackendOption{global,type}[xml]{labeltitlespec} + +\newrobustcmd*{\DeclareLabeldate}[2][]{% + \begingroup + \let\blx@tempa\@empty + \def\blx@tempb{labeldatespec}% + \let\field\blx@orderedld@field + \let\literal\blx@orderedld@literal + \ifblank{#1} + {\global\cslet{blx@bcf@labeldatespec}\@empty} + {\def\blx@tempa{#1}% + \def\do##1{\global\cslet{blx@bcf@labeldatespec@##1}\@empty}% + \expandafter\docsvlist\expandafter{#1}}% + #2% + \endgroup} +\@onlypreamble\DeclareLabeldate +\blx@DeclareBackendOption{global,type}[xml]{labeldatespec} + +\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##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][]{% + \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}{ type="field"\blx@tempc}{#2}}} + {\def\do##1{% + \blx@addtypeopt{##1}% + \csxappto{blx@bcf@\blx@tempb @##1}{% + \noexpand\blx@xml@ordered{\the\blx@tempcnta}{ type="field"\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}}}% + \expandafter\docsvlist\expandafter{\blx@tempa}}} + +%% Package options + +% [<entrytype,entrytype,...>]{<options>} + +\newrobustcmd*{\ExecuteBibliographyOptions}[2][]{% + \ifblank{#1} + {\setkeys{blx@opt@pre}{#2}} + {\forcsvlist{\blx@typeoptions{#2}}{#1}}} +\@onlypreamble\ExecuteBibliographyOptions + +\def\blx@typeoptions#1#2{% + \blx@addtypeopt{#2}% + \csappto{blx@opts@type@#2}{#1,}} + +\def\blx@addtypeopt#1{% + \notblank{#1} + {\ifdef\blx@opts@type + {\ifinlist{#1}\blx@opts@type + {} + {\listgadd\blx@opts@type{#1}}} + {\listgadd\blx@opts@type{#1}}} + {}} + +% load-time only + +% Have to have a dummy for this as it's set much earlier but is passed +% through to here where we just ignore it +\define@key{blx@opt@ldt}{datamodel}{} + +\define@key{blx@opt@ldt}{backend}{% + \ifstrequal{#1}{biber} + {} + {\ifboolexpr{ + test {\ifstrequal{#1}{bibtex}} + or + test {\ifstrequal{#1}{bibtex8}}} + {\settoggle{blx@bibtex}{true}% + \newtoggle{blx@bibtex8}% + \ifstrequal{#1}{bibtex8} + {\settoggle{blx@bibtex8}{true}} + {}}% + {\blx@err@invopt{backend=#1}{}}}} + +\define@key{blx@opt@ldt}{style}{% + \def\blx@cbxfile{#1}% + \def\blx@bbxfile{#1}} + +\define@key{blx@opt@ldt}{bibstyle}{% + \def\blx@bbxfile{#1}} + +\define@key{blx@opt@ldt}{citestyle}{% + \def\blx@cbxfile{#1}} + +\define@key{blx@opt@ldt}{natbib}[true]{% + \settoggle{blx@natbib}{#1}} + +\define@key{blx@opt@ldt}{mcite}[true]{% + \settoggle{blx@mcite}{#1}} + +\define@key{blx@opt@ldt}{noerroretextools}[true]{% + \blx@warning@noline{% + The option 'noerroretextools' is deprecated.\MessageBreak + Define the control sequence '\string\blx@noerroretextools'\MessageBreak + before loading biblatex instead}% + \ifstrequal{#1}{true} + {\global\cslet{blx@noerroretextools}\@empty} + {\csgundef{blx@noerroretextools}}} + +% load-time and preamble + +\DeclareBibliographyOption[boolean]{debug}[true]{% + \settoggle{blx@debug}{#1}} + +\DeclareBibliographyOption[boolean]{loadfiles}[true]{% + \settoggle{blx@loadfiles}{#1}} + +\DeclareBibliographyOption[integer]{mincrossrefs}{% + \ifnum#1<\z@ + \def\blx@mincrossrefs{1}% + \else + \def\blx@mincrossrefs{#1}% + \fi} + +\DeclareBibliographyOption[integer]{minxrefs}{% + \ifnum#1<\z@ + \def\blx@minxrefs{1}% + \else + \def\blx@minxrefs{#1}% + \fi} +\def\blx@minxrefs{2} + +\DeclareBibliographyOption[string]{texencoding}{% + \ifstrequal{#1}{auto} + {\undef\blx@texencoding} + {\def\blx@texencoding{#1}}} + +\DeclareBibliographyOption[string]{bibencoding}{% + \ifcsdef{blx@bibenc@#1} + {\letcs\blx@bibencoding{blx@bibenc@#1}} + {\def\blx@bibencoding{#1}}} + +\def\abx@mapbibenc#1#2{\csdef{blx@bibenc@#1}{#2}} +\abx@mapbibenc{inputenc}{auto} +\abx@mapbibenc{x-ascii}{ascii} + +\def\abx@mapinpenc#1#2{\csdef{blx@inpenc@#1}{#2}} +\abx@mapinpenc{utf8x}{utf8} +\abx@mapinpenc{lutf8}{utf8} +\abx@mapinpenc{x-ascii}{ascii} + +\DeclareBibliographyOption[boolean]{safeinputenc}[true]{% + \settoggle{blx@safeinputenc}{#1}} +\newtoggle{blx@safeinputenc} + +% global "sorting" option becomes "sortingtemplatename" in the .bcf and so +% don't use \DeclareBibliographyOption. This is a legacy naming issue +% unlikely to be corrected as "sorting" is an obvious name for biblatex users +% "sorting" is used in the .bcf for the actual sorting template definitions and is +% an XML format option +\define@key{blx@opt@pre}{sorting}{% + \def\blx@sorting{#1}% + \def\blx@refcontext@sortingtemplatename{#1}} +\blx@DeclareBackendOption{global}[string]{sortingtemplatename} + +\AtEndPreamble{% + \ifcsdef{blx@sortingtemplate@\blx@sorting} + {} + {\blx@err@invopt{sorting=\blx@sorting}{}% + \def\blx@sorting{nty}% + \def\blx@refcontext@sortingtemplatename{nty}}% + \listxadd\blx@sortingtemplatenames\blx@sorting + \def\blx@refcontext@sortingnamekeytemplatename{global}% + \let\blx@refcontext@labelprefix\@empty + \let\blx@refcontext@labelprefix@real\@empty + \def\blx@refcontext@uniquenametemplatename{global}% + \def\blx@refcontext@labelalphanametemplatename{global}% + \blx@xdef@refcontext{% + \blx@refcontext@sortingtemplatename/% + \blx@refcontext@sortingnamekeytemplatename/% + \blx@refcontext@labelprefix/% + \blx@refcontext@uniquenametemplatename/% + \blx@refcontext@labelalphanametemplatename}% + \listxadd\blx@refcontexts\blx@refcontext@context} + +\DeclareBibliographyOption[boolean]{sortcase}[true]{% + \settoggle{blx@sortcase}{#1}} + +\DeclareBibliographyOption[boolean]{sortupper}[true]{% + \settoggle{blx@sortupper}{#1}} + +\DeclareBiblatexOption{global,type}[integer]{maxnames}{% + \numdef\blx@maxcitenames{#1}% + \numdef\blx@maxbibnames{#1}% + \numdef\blx@maxsortnames{#1}% + \c@maxnames#1\relax} +\DeclareBiblatexOption{global,type}[integer]{minnames}{% + \numdef\blx@mincitenames{#1}% + \numdef\blx@minbibnames{#1}% + \numdef\blx@minsortnames{#1}% + \c@minnames#1\relax} +% the per-entry option is resolved by Biber directly +\blx@DeclareBackendOption{entry}[integer]{maxnames} +\blx@DeclareBackendOption{entry}[integer]{minnames} +\gdef\blx@bcf@backendin@entry@maxnames{maxcitenames,maxbibnames,maxsortnames}% +\gdef\blx@bcf@backendin@entry@minnames{mincitenames,minbibnames,minsortnames}% + + +\DeclareBiblatexOption{global,type,entry}[integer]{maxbibnames}{% + \numdef\blx@maxbibnames{#1}% + \numdef\blx@maxsortnames{#1}% + \iftoggle{blx@bibliography} + {\c@maxnames#1\relax} + {}} +\DeclareBiblatexOption{global,type,entry}[integer]{minbibnames}{% + \numdef\blx@minbibnames{#1}% + \numdef\blx@minsortnames{#1}% + \iftoggle{blx@bibliography} + {\c@minnames#1\relax} + {}} + +\DeclareBiblatexOption{global,type,entry}[integer]{maxcitenames}{% + \numdef\blx@maxcitenames{#1}% + \iftoggle{blx@bibliography} + {} + {\c@maxnames#1\relax}} +\DeclareBiblatexOption{global,type,entry}[integer]{mincitenames}{% + \numdef\blx@mincitenames{#1}% + \iftoggle{blx@bibliography} + {} + {\c@minnames#1\relax}} + +\DeclareBiblatexOption{global,type,entry}[integer]{maxsortnames}{% + \numdef\blx@maxsortnames{#1}} +\DeclareBiblatexOption{global,type,entry}[integer]{minsortnames}{% + \numdef\blx@minsortnames{#1}} + +\appto\blx@checkoptions@global{% + \blx@maxmin@num{maxbibnames}{minbibnames}\blx@maxbibnames\blx@minbibnames + \blx@maxmin@num{maxcitenames}{mincitenames}\blx@maxcitenames\blx@mincitenames + \blx@maxmin@num{maxsortnames}{minsortnames}\blx@maxsortnames\blx@minsortnames} +\appto\blx@checkoptions@type{% + \blx@maxmin@num{maxbibnames}{minbibnames}\blx@maxbibnames\blx@minbibnames + \blx@maxmin@num{maxcitenames}{mincitenames}\blx@maxcitenames\blx@mincitenames + \blx@maxmin@num{maxsortnames}{minsortnames}\blx@maxsortnames\blx@minsortnames} +\appto\blx@checkoptions@entry{% + \blx@maxmin@cnt{maxnames}{minnames}\c@maxnames\c@minnames} + +\DeclareBiblatexOption{global,type,entry}[integer]{maxitems}{% + \numdef\blx@maxitems{#1}% + \c@maxitems#1\relax} +\DeclareBiblatexOption{global,type,entry}[integer]{minitems}{% + \numdef\blx@minitems{#1}% + \c@minitems#1\relax} + +\appto\blx@checkoptions@global{% + \blx@maxmin@num{maxitems}{minitems}\blx@maxitems\blx@minitems} +\appto\blx@checkoptions@type{% + \blx@maxmin@num{maxitems}{minitems}\blx@maxitems\blx@minitems} +\appto\blx@checkoptions@entry{% + \blx@maxmin@cnt{maxitems}{minitems}\c@maxitems\blx@minitems} + +\DeclareBiblatexOption{global,type,entry}[integer]{maxalphanames}{% + \numdef\blx@maxalphanames{#1}} +\DeclareBiblatexOption{global,type,entry}[integer]{minalphanames}{% + \numdef\blx@minalphanames{#1}} + +\appto\blx@checkoptions@global{% + \blx@maxmin@num{maxalphanames}{minalphanames}\blx@maxalphanames\blx@minalphanames} +\appto\blx@checkoptions@type{% + \blx@maxmin@num{maxalphanames}{minalphanames}\blx@maxalphanames\blx@minalphanames} + +\def\blx@maxmin@num#1#2#3#4{% + \ifnumless#3\@ne + {\blx@err@invopt{#1=#3}{'#1' must be greater than zero}% + \let#3\@ne} + {}% + \ifnumless#4\@ne + {\blx@err@invopt{#2=#4}{'#2' must be greater than zero}% + \let#4\@ne} + {}% + \ifnumless#3#4 + {\blx@err@confopt{#1/#2}{'#1' must be greater than or equal to '#2'}% + \let#3#4} + {}} + +\def\blx@maxmin@cnt#1#2#3#4{% + \ifnumless#3\@ne + {\blx@err@invopt{#1=\number#3}{'#1' must be greater than zero}% + #3\@ne} + {}% + \ifnumless#4\@ne + {\blx@err@invopt{#2=\number#4}{'#2' must be greater than zero}% + #4\@ne} + {}% + \ifnumless#3#4 + {\blx@err@confopt{#1/#2}{'#1' must be greater than or equal to '#2'}% + #3=#4} + {}} + +\DeclareBiblatexOption{global,type,entry,namelist,name}[boolean]{terseinits}[true]{% + \ifstrequal{#1}{true} + {\toggletrue{blx@terseinits} + \renewrobustcmd*{\bibinitperiod}{} + \renewrobustcmd*{\bibinitdelim}{} + \renewrobustcmd*{\bibinithyphendelim}{}} + {\togglefalse{blx@terseinits} + \renewrobustcmd*{\bibinitperiod}{\adddot} + \renewrobustcmd*{\bibinitdelim}{\addnbspace} + \renewrobustcmd*{\bibinithyphendelim}{\adddot\mbox{-}}}} + +\DeclareBiblatexOption{global,type,entry}[boolean]{abbreviate}[true]{% + \ifstrequal{#1}{true} + {\def\abx@str{abx@sstr}} + {\def\abx@str{abx@lstr}}} + +\DeclareBiblatexOption{global,type,entry}[boolean]{dateabbrev}[true]{% + \ifstrequal{#1}{true} + {\let\abx@bibmonth\blx@imc@bibsstring + \let\abx@bibseason\blx@imc@bibsstring} + {\let\abx@bibmonth\blx@imc@biblstring + \let\abx@bibseason\blx@imc@biblstring}} + +\DeclareBibliographyOption[string]{sortlocale}{% + \edef\blx@sortlocale{\detokenize{#1}}} + +\DeclareBibliographyOption[string]{language}{% + \togglefalse{blx@autolangbib}% + \togglefalse{blx@autolangcite}% + \undef\blx@languagename + \undef\blx@forcelanguagename + \ifboolexpr{ + test {\ifstrequal{#1}{auto}} + or + test {\ifstrequal{#1}{autobib}} + or + test {\ifstrequal{#1}{autocite}} + } + {\def\blx@languagename{english}% + \ifstrequal{#1}{auto} + {\toggletrue{blx@autolangbib}% + \toggletrue{blx@autolangcite}} + {}% + \ifstrequal{#1}{autobib} + {\toggletrue{blx@autolangbib}} + {}% + \ifstrequal{#1}{autocite} + {\toggletrue{blx@autolangcite}} + {}} + % If language is explicit, we do want to auto-switch but only to the + % selected language + {\IfFileExists{#1.lbx} + {\toggletrue{blx@autolangbib}% + \toggletrue{blx@autolangcite}% + \edef\blx@languagename{#1}% + \edef\blx@forcelanguagename{#1}} + {\blx@error + {Language '#1' not supported} + {Failed to find a matching '#1.lbx' file}}}} + +\DeclareBiblatexOption{global,type,entry}[boolean]{clearlang}[true]{% + \settoggle{blx@clearlang}{#1}} + +\DeclareBibliographyOption[string]{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@autolang@hyphen{% + \def\blx@thelangenv{hyphenrules}% + \let\blx@hook@initlang\@empty + \let\blx@hook@endlang\@empty} +\csdef{blx@opt@autolang@other*}{% + \def\blx@thelangenv{otherlanguage*}% + \def\blx@hook@initlang{\@quotereset\@ne}% + \def\blx@hook@endlang{\blx@postpunct}} +\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}} + +\DeclareBiblatexOption{global,type,entry}[string]{indexing}[true]{% + \blx@opt@index{#1}} +\def\blx@opt@index#1{% + \ifcsdef{blx@opt@index@#1} + {\csuse{blx@opt@index@#1}} + {\blx@err@invopt{indexing=#1}{}}} +\def\blx@opt@index@true{% + \toggletrue{blx@citeindex}% + \toggletrue{blx@bibindex}} +\def\blx@opt@index@false{% + \togglefalse{blx@citeindex}% + \togglefalse{blx@bibindex}} +\def\blx@opt@index@cite{% + \toggletrue{blx@citeindex}% + \togglefalse{blx@bibindex}} +\def\blx@opt@index@bib{% + \togglefalse{blx@citeindex}% + \toggletrue{blx@bibindex}} + +\DeclareBibliographyOption[boolean]{sortcites}[true]{% + \ifstrequal{#1}{true} + {\let\blx@thecitesort\blx@citesort + \let\blx@thenotecheck\blx@notecheck + \booltrue{sortcites}} + {\let\blx@thecitesort\blx@citenosort + \let\blx@thenotecheck\relax}} + +\DeclareBibliographyOption[boolean]{sortsets}[true]{% + \settoggle{blx@sortsets}{#1}} + +\DeclareBibliographyOption[string]{hyperref}[true]{% + \ifcsdef{blx@opt@hyperref@#1} + {\letcs\blx@hyperref{blx@opt@hyperref@#1}} + {\blx@err@invopt{hyperref=#1}{}}} +\def\blx@opt@hyperref@false{0} +\def\blx@opt@hyperref@true{1} +\def\blx@opt@hyperref@auto{2} +\def\blx@opt@hyperref@manual{3} + +\def\blx@warn@usedmanualhyperrefs#1{% + \blx@warning@noline{The command '\string#1' can\MessageBreak + only be used with 'hyperref=manual'}} +\def\blx@warn@multiplemanualhyperrefs{% + \blx@warning@noline{You must call either '\string\BiblatexManualHyperrefOn'\MessageBreak + or '\string\BiblatexManualHyperrefOff' exactly once.\MessageBreak + Subsequent calls to either command will be ignored}} +\def\BiblatexManualHyperrefOn{% + \ifnum\blx@hyperref=\thr@@ + \blx@mkhyperref + \global\undef\blx@mkhyperref + \global\undef\blx@mknohyperref + \global\let\BiblatexManualHyperrefOn\blx@warn@multiplemanualhyperrefs + \global\let\BiblatexManualHyperrefOff\blx@warn@multiplemanualhyperrefs + \else + \blx@warn@usedmanualhyperrefs{\BiblatexManualHyperrefOn}% + \fi} +\def\BiblatexManualHyperrefOff{% + \ifnum\blx@hyperref=\thr@@ + \blx@mknohyperref + \global\undef\blx@mkhyperref + \global\undef\blx@mknohyperref + \global\let\BiblatexManualHyperrefOn\blx@warn@multiplemanualhyperrefs + \global\let\BiblatexManualHyperrefOff\blx@warn@multiplemanualhyperrefs + \else + \blx@warn@usedmanualhyperrefs{\BiblatexManualHyperrefOff}% + \fi} + +\DeclareBibliographyOption[boolean]{backref}[true]{% + \ifstrequal{#1}{true} + {\let\blx@backref\blx@addbackref + \let\abx@aux@backref\blx@aux@backref + \booltrue{backtracker}} + {\let\blx@backref\@gobble + \let\abx@aux@backref\@gobblefive + \boolfalse{backtracker}}} + +\DeclareBibliographyOption[string]{backrefsetstyle}{% + \ifcsdef{blx@opt@backrefsetstyle@#1} + {\letcs\blx@backrefsetstyle{blx@opt@backrefsetstyle@#1}} + {\blx@err@invopt{backrefsetstyle=#1}{}}} +\def\blx@opt@backrefsetstyle@setonly{0} +\def\blx@opt@backrefsetstyle@memonly{1} +\def\blx@opt@backrefsetstyle@setormem{2} +\def\blx@opt@backrefsetstyle@setandmem{3} +\def\blx@opt@backrefsetstyle@memandset{4} +\def\blx@opt@backrefsetstyle@setplusmem{5} + +\appto\blx@mkhyperref{% + \ifHy@plainpages + \blx@warning@noline{% + hyperref package option 'plainpages' enabled.\MessageBreak + This may cause problems with hyperlinked back\MessageBreak + references. 'plainpages=false' is recommended}% + \fi + \ifHy@pageanchor\else + \blx@warning@noline{% + hyperref package option 'pageanchor' disabled.\MessageBreak + This will cause problems with hyperlinked back\MessageBreak + references. 'pageanchor=true' is required}% + \fi} + +\DeclareBibliographyOption[string]{block}{% + \ifcsdef{blx@opt@block@#1} + {\csuse{blx@opt@block@#1}} + {\blx@err@invopt{block=#1}{}}} +\def\blx@opt@block@none{% + \let\blx@bibsetup\@empty + \let\newblockpunct\@empty} +\def\blx@opt@block@par{% + \let\blx@bibsetup\@empty + \def\newblockpunct{\par}} +\def\blx@opt@block@nbpar{% + \def\blx@bibsetup{\interlinepenalty\@M}% + \def\newblockpunct{\par\nobreak}} +\def\blx@opt@block@space{% + \let\blx@bibsetup\@empty + \def\newblockpunct{% + \unspace\space + \hskip 0.11em + \@plus 0.33em + \@minus 0.07em}} +\def\blx@opt@block@ragged{% + \let\blx@bibsetup\raggedright + \def\newblockpunct{% + \unspace\penalty-9\relax\space}} + +\DeclareBibliographyOption[string]{pagetracker}[true]{% + \ifcsdef{blx@opt@pagetracker@#1} + {\csuse{blx@opt@pagetracker@#1}} + {\blx@err@invopt{pagetracker=#1}{}}} +\def\blx@opt@pagetracker@true{% + \if@twoside + \blx@opt@pagetracker@spread + \else + \blx@opt@pagetracker@page + \fi} +\def\blx@opt@pagetracker@false{% + \let\blx@pagetracker\relax + \let\abx@aux@page\@gobbletwo + \let\abx@aux@fnpage\@gobbletwo + \boolfalse{pagetracker}} +\def\blx@opt@pagetracker@page{% + \let\blx@pagetracker\blx@pagetracker@context + \let\abx@aux@page\blx@aux@page + \let\abx@aux@fnpage\blx@aux@fnpage + \booltrue{pagetracker}} +\def\blx@opt@pagetracker@spread{% + \if@twoside + \let\blx@pagetracker\blx@pagetracker@context + \let\abx@aux@page\blx@aux@spread + \let\abx@aux@fnpage\blx@aux@fnspread + \booltrue{pagetracker}% + \else + \blx@warning@noline{% + LaTeX not in twoside mode\MessageBreak + Falling back to 'pagetracker=page'}% + \blx@opt@pagetracker@page + \fi} + +\DeclareBibliographyOption[string]{citecounter}[true]{% + \ifcsdef{blx@opt@citecounter@#1} + {\csuse{blx@opt@citecounter@#1}} + {\blx@err@invopt{citecounter=#1}{}}} +\def\blx@opt@citecounter@true{% + \let\blx@setcitecounter\blx@setcitecounter@global + \let\blx@citecounter\blx@citecounter@global + \let\abx@aux@count\blx@aux@count + \let\abx@aux@fncount\blx@aux@fncount + \booltrue{citetracker}} +\def\blx@opt@citecounter@context{% + \let\blx@setcitecounter\blx@setcitecounter@context + \let\blx@citecounter\blx@citecounter@context + \let\abx@aux@count\blx@aux@count + \let\abx@aux@fncount\blx@aux@fncount + \booltrue{citetracker}} +\def\blx@opt@citecounter@false{% + \let\blx@setcitecounter\relax + \let\blx@citecounter\relax + \let\abx@aux@count\@gobbletwo + \let\abx@aux@fncount\@gobbletwo} + +\DeclareBiblatexOption{global,type,entry}[string]{citetracker}[true]{% + \ifcsdef{blx@opt@citetracker@#1} + {\csuse{blx@opt@citetracker@#1}} + {\blx@err@invopt{citetracker=#1}{}}} +\def\blx@opt@citetracker@true{% + \let\blx@imc@ifciteseen\blx@ifciteseen@global + \let\blx@imc@ifentryseen\blx@ifentryseen@global + \let\blx@citetracker\blx@citetracker@global + \booltrue{citetracker}} +\def\blx@opt@citetracker@false{% + \let\blx@imc@ifciteseen\@secondoftwo + \protected\long\def\blx@imc@ifentryseen##1##2##3{##3}% + \let\blx@citetracker\relax} +\def\blx@opt@citetracker@context{% + \let\blx@imc@ifciteseen\blx@ifciteseen@context + \let\blx@imc@ifentryseen\blx@ifentryseen@context + \let\blx@citetracker\blx@citetracker@context + \booltrue{citetracker}} +\def\blx@opt@citetracker@strict{% + \let\blx@imc@ifciteseen\blx@ifciteseen@global + \let\blx@imc@ifentryseen\blx@ifentryseen@global + \def\blx@citetracker{% + \blx@ifcitesingle{\blx@citetracker@global}{}}% + \booltrue{citetracker}} +\def\blx@opt@citetracker@constrict{% + \let\blx@imc@ifciteseen\blx@ifciteseen@context + \let\blx@imc@ifentryseen\blx@ifentryseen@context + \def\blx@citetracker{% + \blx@ifcitesingle{\blx@citetracker@context}{}}% + \booltrue{citetracker}} + +\DeclareBiblatexOption{global,type,entry}[string]{ibidtracker}[true]{% + \ifcsdef{blx@opt@ibidtracker@#1} + {\csuse{blx@opt@ibidtracker@#1}} + {\blx@err@invopt{ibidtracker=#1}{}}} +\def\blx@opt@ibidtracker@true{% + \let\blx@imc@ifciteibid\blx@ifciteibid@global + \let\blx@ibidtracker\blx@ibidtracker@global + \let\blx@ibidreset\blx@ibidreset@global + \booltrue{citetracker}} +\def\blx@opt@ibidtracker@false{% + \let\blx@imc@ifciteibid\@secondoftwo + \let\blx@ibidtracker\relax + \let\blx@ibidreset\relax} +\def\blx@opt@ibidtracker@context{% + \let\blx@imc@ifciteibid\blx@ifciteibid@context + \let\blx@ibidtracker\blx@ibidtracker@context + \let\blx@ibidreset\blx@ibidreset@context + \booltrue{citetracker}} +\def\blx@opt@ibidtracker@strict{% + \let\blx@imc@ifciteibid\blx@ifciteibid@strict + \let\blx@ibidtracker\blx@ibidtracker@strict + \let\blx@ibidreset\blx@ibidreset@global + \booltrue{citetracker}} +\def\blx@opt@ibidtracker@constrict{% + \let\blx@imc@ifciteibid\blx@ifciteibid@constrict + \let\blx@ibidtracker\blx@ibidtracker@constrict + \let\blx@ibidreset\blx@ibidreset@context + \booltrue{citetracker}} + +\DeclareBiblatexOption{global,type,entry}[string]{idemtracker}[true]{% + \ifcsdef{blx@opt@idemtracker@#1} + {\csuse{blx@opt@idemtracker@#1}} + {\blx@err@invopt{idemtracker=#1}{}}} +\def\blx@opt@idemtracker@true{% + \let\blx@imc@ifciteidem\blx@ifciteidem@global + \let\blx@idemtracker\blx@idemtracker@global + \let\blx@idemreset\blx@idemreset@global + \booltrue{citetracker}} +\def\blx@opt@idemtracker@false{% + \let\blx@imc@ifciteidem\@secondoftwo + \let\blx@idemtracker\relax + \let\blx@idemreset\relax} +\def\blx@opt@idemtracker@context{% + \let\blx@imc@ifciteidem\blx@ifciteidem@context + \let\blx@idemtracker\blx@idemtracker@context + \let\blx@idemreset\blx@idemreset@context + \booltrue{citetracker}} +\def\blx@opt@idemtracker@strict{% + \let\blx@imc@ifciteidem\blx@ifciteidem@strict + \let\blx@idemtracker\blx@idemtracker@strict + \let\blx@idemreset\blx@idemreset@global + \booltrue{citetracker}} +\def\blx@opt@idemtracker@constrict{% + \let\blx@imc@ifciteidem\blx@ifciteidem@constrict + \let\blx@idemtracker\blx@idemtracker@constrict + \let\blx@idemreset\blx@idemreset@context + \booltrue{citetracker}} + +\DeclareBiblatexOption{global,type,entry}[string]{opcittracker}[true]{% + \ifcsdef{blx@opt@opcittracker@#1} + {\csuse{blx@opt@opcittracker@#1}} + {\blx@err@invopt{opcittracker=#1}{}}} +\def\blx@opt@opcittracker@true{% + \let\blx@imc@ifopcit\blx@ifopcit@global + \let\blx@opcittracker\blx@opcittracker@global + \let\blx@opcitreset\blx@opcitreset@global + \booltrue{citetracker}} +\def\blx@opt@opcittracker@false{% + \let\blx@imc@ifopcit\@secondoftwo + \let\blx@opcittracker\relax + \let\blx@opcitreset\relax} +\def\blx@opt@opcittracker@context{% + \let\blx@imc@ifopcit\blx@ifopcit@context + \let\blx@opcittracker\blx@opcittracker@context + \let\blx@opcitreset\blx@opcitreset@context + \booltrue{citetracker}} +\def\blx@opt@opcittracker@strict{% + \let\blx@imc@ifopcit\blx@ifopcit@strict + \let\blx@opcittracker\blx@opcittracker@strict + \let\blx@opcitreset\blx@opcitreset@global + \booltrue{citetracker}} +\def\blx@opt@opcittracker@constrict{% + \let\blx@imc@ifopcit\blx@ifopcit@constrict + \let\blx@opcittracker\blx@opcittracker@constrict + \let\blx@opcitreset\blx@opcitreset@context + \booltrue{citetracker}} + +\DeclareBiblatexOption{global,type,entry}[string]{loccittracker}[true]{% + \ifcsdef{blx@opt@loccittracker@#1} + {\csuse{blx@opt@loccittracker@#1}} + {\blx@err@invopt{loccittracker=#1}{}}} +\def\blx@opt@loccittracker@true{% + \let\blx@imc@ifloccit\blx@ifloccit@global + \let\blx@loccittracker\blx@loccittracker@global + \let\blx@loccitreset\blx@loccitreset@global + \booltrue{citetracker}} +\def\blx@opt@loccittracker@false{% + \let\blx@imc@ifloccit\@secondoftwo + \let\blx@loccittracker\relax + \let\blx@loccitreset\relax} +\def\blx@opt@loccittracker@context{% + \let\blx@imc@ifloccit\blx@ifloccit@context + \let\blx@loccittracker\blx@loccittracker@context + \let\blx@loccitreset\blx@loccitreset@context + \booltrue{citetracker}} +\def\blx@opt@loccittracker@strict{% + \let\blx@imc@ifloccit\blx@ifloccit@strict + \let\blx@loccittracker\blx@loccittracker@strict + \let\blx@loccitreset\blx@loccitreset@global + \booltrue{citetracker}} +\def\blx@opt@loccittracker@constrict{% + \let\blx@imc@ifloccit\blx@ifloccit@constrict + \let\blx@loccittracker\blx@loccittracker@constrict + \let\blx@loccitreset\blx@loccitreset@context + \booltrue{citetracker}} + +\DeclareBibliographyOption[boolean]{parentracker}[true]{% + \ifstrequal{#1}{true} + {\let\bibopenparen\blx@bibopenparen + \let\bibcloseparen\blx@bibcloseparen + \let\bibopenbracket\blx@bibopenbracket + \let\bibclosebracket\blx@bibclosebracket} + {\protected\def\bibopenparen{\bibleftparen}% + \protected\def\bibcloseparen{\bibrightparen}% + \protected\def\bibopenbracket{\bibleftbracket}% + \protected\def\bibclosebracket{\bibrightbracket}}} + +\DeclareBibliographyOption[integer]{maxparens}{% + \ifnumless{#1}{1} + {\blx@err@invopt{maxparens=#1}{}} + {\setcounter{maxparens}{#1}}} + +\newtoggle{blx@labeldateusetime} +\DeclareBibliographyOption[boolean]{labeldateusetime}[true]{% + \ifstrequal{#1}{true} + {\toggletrue{blx@labeldateusetime}} + {\togglefalse{blx@labeldateusetime}}} + +\DeclareBibliographyOption[string]{labeldate}{% + % 'true' or 'false' means that the user thinks that this is the old 'labeldate' + % option which is now 'labeldateparts' (which is a boolean). + \ifboolexpr{% + test {\ifstrequal{#1}{true}} + or + test {\ifstrequal{#1}{false}}} + {\blx@warning@noline{% + 'labeldate' option used to determine whether to provide label date fields and\MessageBreak + extradate field is renamed to 'labeldateparts', setting this instead. This option is + now used to set the format of the labeldate}% + \settoggle{blx@labeldateparts}{#1}} + {\ifstrequal{#1}{iso8601} + {\blx@warning@noline{% + 'iso8601' date format specifier is deprecated.\MessageBreak + Use 'iso' instead}% + \def\blx@dateformat@labeldate{iso}% + \renewrobustcmd*{\bibdateeraendprefix}{\bibdateeraprefix}} + {\ifstrequal{#1}{edtf} + {\blx@warning@noline{% + 'edtf' date format specifier is deprecated.\MessageBreak + Use 'iso' instead}% + \def\blx@dateformat@labeldate{iso}% + \renewrobustcmd*{\bibdateeraendprefix}{\bibdateeraprefix}} + {\def\blx@dateformat@labeldate{#1}}}% + \ifstrequal{#1}{ymd} + {\renewrobustcmd*{\bibdaterangesep}{\slash}% + \renewrobustcmd*{\bibtimerangesep}{\slash}% + \renewrobustcmd*{\bibdateeraendprefix}{\bibdateeraprefix}} + {}% + \ifstrequal{#1}{iso}% bibdaterangesep hard-coded to slash, no extra space before prefices + {\renewrobustcmd*{\bibdateeraendprefix}{\bibdateeraprefix}} + {}% + \ifcsdef{mkdaterange#1} + {\protected\def\blx@imc@printlabeldate{\csuse{mkdaterange#1}{label}} + \protected\def\blx@imc@printlabeldateextra{\csuse{mkdaterange#1extra}{label}}} + {\ifcsdef{mkbibrange#1}%LEGACY(<3.5) + {\protected\def\blx@imc@printlabeldate{\csuse{mkbibrange#1}{label}} + \protected\def\blx@imc@printlabeldateextra{\csuse{mkbibrange#1extra}{label}}} + {\blx@err@invopt{labeldate=#1}{}}}}} + +\DeclareBibliographyOption[string]{labeltime}{% + \ifcsdef{mktimerange#1} + {\def\blx@timeformat@labeltime{#1}% + \protected\def\blx@imc@printlabeltime{\csuse{mktimerange#1}{label}}} + {\blx@err@invopt{labeltime=#1}{}}} + +% Date meta-information +\DeclareBibliographyOption[string]{dateera}{% + \ifboolexpr{% + test {\ifstrequal{#1}{astronomical}} + or + test {\ifstrequal{#1}{secular}} + or + test {\ifstrequal{#1}{christian}}} + {\def\blx@dateera{#1}% + \ifstrequal{#1}{secular} + {\def\blx@dateera@bce{beforecommonera}% + \def\blx@dateera@ce{commonera}} + {}% + \ifstrequal{#1}{christian} + {\def\blx@dateera@bce{beforechrist}% + \def\blx@dateera@ce{annodomini}} + {}} + {\blx@err@invopt{dateera=#1}{}}} + +% Effectively turns off dateeraauto since it's only used on ce dates which +% are never less than zero (as that would be a bce date) +\numdef\blx@dateeraauto{0} +\DeclareBibliographyOption[integer]{dateeraauto}{% + \numdef\blx@dateeraauto{#1}} + +\newtoggle{blx@datecirca} +\DeclareBibliographyOption[boolean]{datecirca}[true]{% + \ifstrequal{#1}{true} + {\toggletrue{blx@datecirca}% + \protected\def\datecircaprint{% + \ifdatecirca{\bibstring{circa}\printdelim{datecircadelim}}{}}% + \protected\def\enddatecircaprint{% + \ifenddatecirca{\bibstring{circa}\printdelim{datecircadelim}}{}}% + \protected\def\datecircaprintedtf{%LEGACY(<3.9) + \blx@warning@noline{% + '\string\datecircaprintedtf' is deprecated. + Please use '\string\datecircaprintiso'}% + \datecircaprintiso}% + \protected\def\enddatecircaprintedtf{%LEGACY(<3.9) + \blx@warning@noline{% + '\string\enddatecircaprintedtf' is deprecated. + Please use '\string\enddatecircaprintiso'}% + \enddatecircaprintiso}% + \protected\def\datecircaprintiso{% + \ifdatecirca{\textasciitilde}{}}% + \protected\def\enddatecircaprintiso{% + \ifenddatecirca{\textasciitilde}{}}} + {\togglefalse{blx@datecirca}}} + +\newtoggle{blx@dateuncertain} +\DeclareBibliographyOption[boolean]{dateuncertain}[true]{% + \ifstrequal{#1}{true} + {\toggletrue{blx@dateuncertain}% + \protected\def\dateuncertainprint{% + \ifdateuncertain{\bibdateuncertain}{}}% + \protected\def\enddateuncertainprint{% + \ifenddateuncertain{\bibdateuncertain}{}}} + {\togglefalse{blx@dateuncertain}}} + +% *time format options - auto-created for all datamodel date fields +% *date format options - auto-created for all datamodel date fields +% *dateusetime options - auto-created for all datamodel date fields +% Date metadata toggles are defined in one of the \abx@dobooleans calls +\def\do#1{% + \DeclareBibliographyOption[string]{#1date}{% + \ifstrequal{##1}{iso8601} + {\blx@warning@noline{'iso8601' date format specifier is deprecated.\MessageBreak + Use 'iso' instead}% + \csdef{blx@dateformat@#1date}{iso}} + {\ifstrequal{##1}{edtf} + {\blx@warning@noline{'edtf' date format specifier is deprecated.\MessageBreak + Use 'iso' instead}% + \csdef{blx@dateformat@#1date}{iso}} + {\csdef{blx@dateformat@#1date}{##1}}}% + \ifstrequal{##1}{ymd} + {\renewrobustcmd*{\bibdaterangesep}{\slash}% + \renewrobustcmd*{\bibtimerangesep}{\slash}% + \renewrobustcmd*{\bibdateeraendprefix}{\bibdateeraprefix}} + {}% + \ifcsdef{mkdaterange##1} + {\protected\csedef{blx@imc@print#1date}{\noexpand\csuse{mkdaterange##1}{#1}}% + \protected\csedef{blx@imc@print#1dateextra}{\noexpand\csuse{mkdaterange##1extra}{#1}}} + {\ifcsdef{mkbibrange##1}%LEGACY(<3.5) + {\blx@warning@noline{% + '\string\mkbibrange##1(extra)' date range macro in style is deprecated,\MessageBreak + please define '\string\mkdaterange##1(extra)' instead}% + \protected\csedef{blx@imc@print#1date}{\noexpand\csuse{mkbibrange##1}{#1}}% + \protected\csedef{blx@imc@print#1dateextra}{\noexpand\csuse{mkbibrange##1extra}{#1}}} + {\blx@err@invopt{#1date=##1}{}}}}% + % Default for new date fields is "comp" but this is overridden below by + % biblatex defaults + \setkeys{blx@opt@pre}{#1date=comp}% + % Time format options + \DeclareBibliographyOption[string]{#1time}{% + \csdef{blx@timeformat@#1time}{##1}% + \ifcsdef{mktimerange##1} + {\protected\csedef{blx@imc@print#1time}{\csuse{mktimerange##1}{#1}}} + {\blx@err@invopt{#1time=##1}{}}}% + % Default for new time fields is "24h" + \setkeys{blx@opt@pre}{#1time=24h}% + % Boolean to determine if times are printed with dates + \newtoggle{blx@#1dateusetime}% + \DeclareBibliographyOption[boolean]{#1dateusetime}{% + \ifstrequal{##1}{true} + {\toggletrue{blx@#1dateusetime}} + {\togglefalse{blx@#1dateusetime}}}} +\abx@dodatetypes + +\DeclareBibliographyOption[string]{alldatesusetime}{% + \def\do##1{\ExecuteBibliographyOptions{##1usetime=#1}}% + \abx@dodates + \do{labeldate}} + +\DeclareBibliographyOption[string]{alldates}{% + \def\do##1{\ExecuteBibliographyOptions{##1=#1}}% + \abx@dodates + \do{labeldate}} + +\DeclareBibliographyOption[string]{alltimes}{% + \def\do##1{% + \ExecuteBibliographyOptions{##1time=#1}}% + \abx@dodatetypes + \do{label}} + +\newtoggle{blx@julian} +\def\blx@gregorianstart{1582-10-15} +\DeclareBibliographyOption[boolean]{julian}[true]{% + \ifstrequal{#1}{true} + {\toggletrue{blx@julian}} + {\togglefalse{blx@julian}}} + +\DeclareBibliographyOption[string]{gregorianstart}{% + \def\blx@gregorianstart{#1}} + +\newtoggle{blx@datezeros}\toggletrue{blx@datezeros} +\DeclareBibliographyOption[boolean]{datezeros}[true]{% + \ifstrequal{#1}{true} + {\toggletrue{blx@datezeros}% + \let\blx@imc@mkyearzeros\blx@imc@forcezerosy + \let\blx@imc@mkmonthzeros\blx@imc@forcezerosmdt + \let\blx@imc@mkdayzeros\blx@imc@forcezerosmdt} + {\togglefalse{blx@datezeros}% + \let\blx@imc@mkyearzeros\blx@imc@stripzeros + \let\blx@imc@mkmonthzeros\blx@imc@stripzeros + \let\blx@imc@mkdayzeros\blx@imc@stripzeros}} + +\newtoggle{blx@timezeros}\toggletrue{blx@timezeros} +\DeclareBibliographyOption[boolean]{timezeros}[true]{% + \ifstrequal{#1}{true} + {\toggletrue{blx@timezeros}% + \let\blx@imc@mktimezeros\blx@imc@forcezerosmdt} + {\togglefalse{blx@timezeros}% + \let\blx@imc@mktimezeros\blx@imc@stripzeros}} + +\newtoggle{blx@timezones} +\DeclareBibliographyOption[boolean]{timezones}[true]{% + \ifstrequal{#1}{true} + {\toggletrue{blx@timezones}} + {\togglefalse{blx@timezones}}} + +\newtoggle{blx@seconds} +\DeclareBibliographyOption[boolean]{seconds}[true]{% + \ifstrequal{#1}{true} + {\toggletrue{blx@seconds}} + {\togglefalse{blx@seconds}}} + +\DeclareBibliographyOption[string]{autocite}{% + \ifcsundef{blx@acite@#1} + {\blx@error + {Autocite command '#1' undefined} + {The autocite command '#1' has not been defined by + the\MessageBreak selected citation style}} + {\letcs\autocite{blx@acite@#1}% + \letcs\autocites{blx@macite@#1}}} + +\DeclareBibliographyOption[string]{notetype}{% + \ifcsdef{blx@opt@notetype@#1} + {\blx@notetype\csuse{blx@opt@notetype@#1}} + {\blx@err@invopt{notetype=#1}{}}} +\cslet{blx@opt@notetype@foot+end}\z@ +\let\blx@opt@notetype@footonly\@ne +\let\blx@opt@notetype@endonly\tw@ + +\DeclareBibliographyOption[boolean]{autopunct}[true]{% + \ifstrequal{#1}{true} + {\DeclareAutoPunctuation{.,;:!?}} + {\DeclareAutoPunctuation{}}} + +\DeclareBibliographyOption[boolean]{punctfont}[true]{% + \ifstrequal{#1}{true} + {\let\blx@ifpuncthook\@firstoftwo} + {\let\blx@ifpuncthook\@secondoftwo}} + +\DeclareBibliographyOption[boolean]{labelnumber}[true]{% + \settoggle{blx@labelnumber}{#1}% + \iftoggle{blx@labelnumber} + {} + {\setkeys{blx@opt@pre}{defernumbers=false}}} +\DeclareBiblatexOption{type,entry}[boolean]{labelnumber}[true]{% + \settoggle{blx@labelnumber}{#1}} + +\DeclareBiblatexOption{global,type,entry}[boolean]{labelalpha}[true]{% + \settoggle{blx@labelalpha}{#1}} + +\DeclareBiblatexOption{global,type,entry}[boolean]{labeltitle}[true]{% + \settoggle{blx@labeltitle}{#1}} + +\DeclareBiblatexOption{global,type,entry}[boolean]{labeltitleyear}[true]{% + \settoggle{blx@labeltitleyear}{#1}} + +\DeclareBiblatexOption{global,type,entry}[boolean]{labeldateparts}[true]{% + \settoggle{blx@labeldateparts}{#1}} + +\DeclareBiblatexOption{global,type}[string]{uniquelist}[true]{% + \ifcsdef{blx@opt@uniquelist@#1} + {\letcs\blx@uniquelist{blx@opt@uniquelist@#1}} + {\blx@err@invopt{uniquelist=#1}{}}} +\def\blx@opt@uniquelist@false{false} +\def\blx@opt@uniquelist@true{true} +\def\blx@opt@uniquelist@minyear{minyear} + +\blx@DeclareBackendOption{entry,namelist}[string]{uniquelist} + +\DeclareBiblatexOption{global,type}[boolean]{nohashothers}[true]{% + \settoggle{blx@nohashothers}{#1}} +\blx@DeclareBackendOption{entry,namelist}[boolean]{nohashothers} + +\DeclareBiblatexOption{global,type}[boolean]{nosortothers}[true]{% + \settoggle{blx@nosortothers}{#1}} +\blx@DeclareBackendOption{entry,namelist}[boolean]{nosortothers} + +\DeclareBiblatexOption{global,type}[string]{uniquename}[true]{% + \ifcsdef{blx@opt@uniquename@#1} + {\letcs\blx@uniquename{blx@opt@uniquename@#1}} + {\blx@err@invopt{uniquename=#1}{}}} +\def\blx@opt@uniquename@false{false} +\def\blx@opt@uniquename@init{init} +\def\blx@opt@uniquename@true{full} +\def\blx@opt@uniquename@full{full} +\def\blx@opt@uniquename@allinit{allinit} +\def\blx@opt@uniquename@allfull{allfull} +\def\blx@opt@uniquename@mininit{mininit} +\def\blx@opt@uniquename@minfull{minfull} + +\blx@DeclareBackendOption{entry,namelist,name}[string]{uniquename} + +\DeclareBiblatexOption{global,type}[boolean]{noroman}[true]{% + \settoggle{blx@noroman}{#1}} +\blx@DeclareBackendOption{entry}[boolean]{noroman} + +\DeclareBiblatexOption{global,type}[boolean]{singletitle}[true]{% + \settoggle{blx@singletitle}{#1}} +\blx@DeclareBackendOption{entry}[boolean]{singletitle} + +\DeclareBiblatexOption{global,type}[boolean]{uniquetitle}[true]{% + \settoggle{blx@uniquetitle}{#1}} +\blx@DeclareBackendOption{entry}[boolean]{uniquetitle} + +\DeclareBiblatexOption{global,type}[boolean]{uniquebaretitle}[true]{% + \settoggle{blx@uniquebaretitle}{#1}} +\blx@DeclareBackendOption{entry}[boolean]{uniquebaretitle} + +\DeclareBiblatexOption{global,type}[boolean]{uniquework}[true]{% + \settoggle{blx@uniquework}{#1}} +\blx@DeclareBackendOption{entry}[boolean]{uniquework} + +\DeclareBiblatexOption{global,type}[boolean]{uniqueprimaryauthor}[true]{% + \settoggle{blx@uniqueprimaryauthor}{#1}} +\blx@DeclareBackendOption{entry}[boolean]{uniqueprimaryauthor} + + +\DeclareBibliographyOption[boolean]{defernumbers}[true]{% + \settoggle{blx@defernumbers}{#1}% + \iftoggle{blx@defernumbers} + {\setkeys{blx@opt@pre}{labelnumber}% + \let\blx@thelabelnumber\blx@addlabelnumber + \let\abx@aux@number\blx@aux@number} + {\let\blx@thelabelnumber\relax + \let\abx@aux@number\@gobblefive}} + +\DeclareBibliographyOption[boolean]{locallabelwidth}[true]{% + \blx@key@locallabelwidth{\abx@locallabelwidth}{#1}} + + +\DeclareBibliographyOption[string]{refsection}{% + \ifcsdef{blx@opt@refsection@#1} + {\letcs\blx@refsecreset@level{blx@opt@refsection@#1}} + {\blx@err@invopt{refsection=#1}{}}} +\csdef{blx@opt@refsection@none}{0} +\csdef{blx@opt@refsection@part}{1} +\csdef{blx@opt@refsection@chapter}{2} +\csdef{blx@opt@refsection@section}{3} +\csdef{blx@opt@refsection@subsection}{4} +\csdef{blx@opt@refsection@chapter+}{5} +\csdef{blx@opt@refsection@section+}{6} +\csdef{blx@opt@refsection@subsection+}{7} + +\blx@patchsection@switch{\blx@refsecreset@level}{\newrefsection}{}{} + +\DeclareBibliographyOption[string]{refsegment}{% + \ifcsdef{blx@opt@refsegment@#1} + {\letcs\blx@refsegreset@level{blx@opt@refsegment@#1}} + {\blx@err@invopt{refsegment=#1}{}}} +\csdef{blx@opt@refsegment@none}{0} +\csdef{blx@opt@refsegment@part}{1} +\csdef{blx@opt@refsegment@chapter}{2} +\csdef{blx@opt@refsegment@section}{3} +\csdef{blx@opt@refsegment@subsection}{4} +\csdef{blx@opt@refsegment@chapter+}{5} +\csdef{blx@opt@refsegment@section+}{6} +\csdef{blx@opt@refsegment@subsection+}{7} + +\blx@patchsection@switch{\blx@refsegreset@level} + {\newrefsegment} + {\ifnumgreater\blx@refsegreset@level\z@ + {\ifnumgreater\blx@refsegreset@level\blx@refsecreset@level + {} + {\blx@err@confopt + {refsegment/refsection} + {The 'refsegment' option must point to a + lower-level\MessageBreak document division + than 'refsection'}% + \def\blx@refsegreset@level{0}}} + {}} + {} + +\DeclareBibliographyOption[string]{citereset}{% + \ifcsdef{blx@opt@citereset@#1} + {\letcs\blx@citereset@level{blx@opt@citereset@#1}} + {\blx@err@invopt{citereset=#1}{}}} +\csdef{blx@opt@citereset@none}{0} +\csdef{blx@opt@citereset@part}{1} +\csdef{blx@opt@citereset@chapter}{2} +\csdef{blx@opt@citereset@section}{3} +\csdef{blx@opt@citereset@subsection}{4} +\csdef{blx@opt@citereset@chapter+}{5} +\csdef{blx@opt@citereset@section+}{6} +\csdef{blx@opt@citereset@subsection+}{7} + +\blx@patchsection@switch{\blx@citereset@level}{\citereset\blx@inf@creset}{}{} + +\DeclareBibliographyOption[boolean]{bibwarn}[true]{% + \ifstrequal{#1}{true} + {\def\blx@bbl@thewarn{\blx@bbl@warn}} + {\let\blx@bbl@thewarn\@gobble}} + +% Name field options +\def\do#1{% + \DeclareBiblatexOption{global,type,entry}[boolean]{use#1}[true]{% + \settoggle{blx@use#1}{##1}}} +\abx@donames + +% Entry options +\DeclareBiblatexOption{global,type,entry,namelist,name}[boolean]{useprefix}[true]{% + \settoggle{blx@useprefix}{#1}} + +\DeclareBiblatexOption{global,type,entry}[boolean]{skipbib}[true]{% + \settoggle{blx@skipbib}{#1}} + +\DeclareBiblatexOption{global,type,entry}[boolean]{skipbiblist}[true]{% + \settoggle{blx@skipbiblist}{#1}} + +\DeclareBiblatexOption{global,type,entry}[boolean]{skiplab}[true]{% + \settoggle{blx@skiplab}{#1}} + +\DeclareBiblatexOption{global,type}[boolean]{dataonly}[true]{% + \settoggle{blx@skipbib}{#1}% + \settoggle{blx@skipbiblist}{#1}% + \settoggle{blx@skiplab}{#1}} +% the entry option is resolved by Biber +\blx@DeclareBackendOption{entry}[boolean]{dataonly} +% This is handled in a special way by by biber. It indicates what to set for various options +% if the dataonly option is "true". If biber finds dataonly=false +% in an entry, the booleans here will be reversed (skip*) and the unique* options (which are not +% booleans) will be ignored, defaulting to higher scope values. biber assumes +% that \blx@bcf@backendin@entry@* options are boolean options as otherwise, negating them +% per-entry makes little sense and it is not clear what to do with such lower-scope overrides. +\gdef\blx@bcf@backendin@entry@dataonly{uniquename=false,uniquelist=false,% + skipbib=true,skipbiblist=true,skiplab=true} + +% Option processor/scheduler +\DeclareOption*{% + \begingroup + \def\blx@tempa#1=#2&{#1}% + \edef\blx@tempa{% + \expandafter\blx@tempa\CurrentOption=&}% + \ifcsundef{KV@blx@opt@ldt@\blx@tempa} + {\endgroup + \eappto\blx@theoptions{\CurrentOption,}} + {\edef\blx@tempa{\endgroup + \noexpand\setkeys{blx@opt@ldt}{\CurrentOption}}% + \blx@tempa}} + +\def\blx@processoptions{% + \ifundef\blx@theoptions + {} + {\begingroup + \edef\blx@tempa{\endgroup + \noexpand\setkeys{blx@opt@pre}{\blx@theoptions}}% + \blx@tempa}} + +%% Initial setup + +% Set defaults +\setkeys{blx@opt@ldt}{style=numeric} +\setkeys{blx@opt@pre}{% + sorting=nty,sortlocale=auto,sortcase,sortupper,sortcites=false, + maxnames=3,minnames=1,maxalphanames=3,minalphanames=1, + maxitems=3,minitems=1,mincrossrefs=2,minxrefs=2,useauthor=true,useeditor=true, + usetranslator=false,indexing=false,abbreviate=true,dateabbrev=true,dateera=astronomical, + backref=false,backrefsetstyle=setonly,pagetracker=false,ibidtracker=false, + idemtracker=false,opcittracker=false,loccittracker=false,citetracker=false, + citecounter=false,block=none,language=autobib,clearlang=true,autolang=none, + date=comp,labeldate=year,origdate=comp,eventdate=comp,urldate=short, + autopunct=true,punctfont=false,defernumbers=false,timezeros=true, + refsection=none,refsegment=none,citereset=none,hyperref=auto, + parentracker,maxparens=3,bibencoding=auto,bibwarn,timezones=false, + seconds=false,julian=false,labeltime=24h,locallabelwidth=false} + +% Load Unicode enhancements (only for LuaTeX and XeTeX) +\ifboolexpr{ + not test {\ifundef\XeTeXrevision} + or + not test {\ifundef\luatexversion}} + {\blx@inputonce{blx-unicode.def}{enhanced support for Unicode engines}{}{}{}{}} + {} + +% Load compatibility code +\blx@inputonce{blx-compat.def}{compatibility code}{}{}{}{} + +% Restore catcodes +\blx@catcodes +\undef\blx@catcodes + +% Process load-time options +\ProcessOptions* + +% Switch to BibTeX support if requested +\iftoggle{blx@bibtex} + {\blx@inputonce{blx-bibtex.def}{BibTeX backend compatibility}{}{}{}{}} + {} + +% Load citation and bibliography styles, configuration file +\blx@inputonce{biblatex.def}{generic definitions}{}{}{}{} +\iftoggle{blx@natbib} + {\blx@inputonce{blx-natbib.def}{natbib compatibility}{}{}{}{}} + {} +\iftoggle{blx@mcite} + {\blx@inputonce{blx-mcite.def}{mcite-like commands}{}{}{}{}} + {} +\RequireBibliographyStyle{\blx@bbxfile} +\RequireCitationStyle{\blx@cbxfile} +\blx@secinit +\citereset +\blx@inputonce{biblatex.cfg}{configuration file}{}{}{}{} + +% Process preamble options +\blx@processoptions + +% Deferred setup at end of preamble +\AtEndPreamble{% + \blx@checkoptions@global + \c@maxnames\blx@maxcitenames\relax + \c@minnames\blx@mincitenames\relax + \c@maxitems\blx@maxitems\relax + \c@minitems\blx@minitems\relax + \togglefalse{abx@bool@xinits} + \def\do#1{\iftoggle{abx@bool@#1inits}{\toggletrue{abx@bool@xinits}}{}} + \abx@donameparts + \iftoggle{abx@bool@xinits} + {\ifdefstrequal\blx@uniquename\blx@opt@uniquename@full + {\blx@warn@conflopt{% + '<namepart>inits' conflicts with 'uniquename=full'.\MessageBreak + Setting 'uniquename=init'}% + \setkeys{blx@opt@pre}{uniquename=init}} + {}% + \ifdefstrequal\blx@uniquename\blx@opt@uniquename@allfull + {\blx@warn@conflopt{% + '<namepart>inits' conflicts with 'uniquename=allfull'.\MessageBreak + Setting 'uniquename=allinit}% + \setkeys{blx@opt@pre}{uniquename=allinit}} + {}% + \ifdefstrequal\blx@uniquename\blx@opt@uniquename@minfull + {\blx@warn@conflopt{% + '<namepart>inits' conflicts with 'uniquename=minfull'.\MessageBreak + Setting 'uniquename=mininit}% + \setkeys{blx@opt@pre}{uniquename=mininit}} + {}} + {}% + \nottoggle{blx@labeldateparts} + {\ifdefstrequal\blx@uniquelist\blx@opt@uniquelist@minyear + {\blx@warn@conflopt{% + 'uniquelist=minyear' requires 'labeldateparts'.\MessageBreak + Setting 'uniquelist=true'}% + \setkeys{blx@opt@pre}{uniquelist}} + {}} + {}% + \def\do#1{% + \ifcsstring{blx@dateformat@#1}{iso} + {\blx@stripfromendinto{#1}{date}\blx@datetype + \ifdefstring\blx@dateera{astronomical}{} + {\blx@warn@conflopt{% + '#1=iso' requires 'dateera=astronomical'.\MessageBreak + Setting 'dateera=astrononmical'}% + \setkeys{blx@opt@pre}{dateera=astronomical}}% + \ifcsstring{blx@timeformat@\blx@datetype time}{24h}% + {} + {\blx@warn@conflopt{% + '#1=iso' requires '\blx@datetype time=24h'.\MessageBreak + Setting '\blx@datetype time=24h'}% + \setkeys{blx@opt@pre}{\blx@datetype time=24h}}% + \iftoggle{blx@julian} + {\blx@warn@conflopt{% + '#1=iso' requires 'julian=false'.\MessageBreak + Setting 'julian=false'}% + \setkeys{blx@opt@pre}{julian=false}} + {}% + \nottoggle{blx@datezeros} + {\blx@warn@conflopt{% + '#1=iso' requires 'datezeros=true'.\MessageBreak + Setting 'datezeros=true'}% + \setkeys{blx@opt@pre}{datezeros=true}} + {}% + \nottoggle{blx@timezeros} + {\blx@warn@conflopt{% + '#1=iso' requires 'timezeros=true'.\MessageBreak + Setting 'timezeros=true'}% + \setkeys{blx@opt@pre}{timezeros=true}} + {}% + \nottoggle{blx@seconds} + {\blx@warn@conflopt{% + '#1=iso' requires 'seconds=true'.\MessageBreak + Setting 'seconds=true'}% + \setkeys{blx@opt@pre}{seconds=true}} + {}} + {}}% + \abx@dodates + \do{labeldate}} + +\def\blx@checkencoding{% + \ifdef\blx@texencoding + {\blx@info@noline{% + Input encoding '\blx@texencoding' specified}} + {\ifundef\inputencodingname + {\ifundef\XeTeXrevision + {\ifundef\luatexversion + {\def\blx@texencoding{ascii}% + \blx@info@noline{% + No input encoding detected.\MessageBreak + Assuming '\blx@texencoding'}} + {\def\blx@texencoding{utf8}% + \blx@info@noline{% + LuaTeX detected.\MessageBreak + Assuming input encoding '\blx@texencoding'}}} + {\def\blx@texencoding{utf8}% + \blx@info@noline{% + XeTeX detected.\MessageBreak + Assuming input encoding '\blx@texencoding'}}} + {\ifcsdef{blx@inpenc@\inputencodingname} + {\letcs\blx@texencoding{blx@inpenc@\inputencodingname}} + {\let\blx@texencoding\inputencodingname}% + \blx@info@noline{% + Input encoding '\blx@texencoding' detected}}}% + \ifdef\blx@bibencoding + {\ifdefstring\blx@bibencoding{ascii} + {\blx@info@noline{% + Data encoding '\blx@bibencoding' specified.\MessageBreak + No need to reencode data}} + {\ifdefstring\blx@bibencoding{auto} + {\let\blx@bibencoding\blx@texencoding + \blx@info@noline{% + Automatic encoding selection.\MessageBreak + Assuming data encoding '\blx@bibencoding'}} + {\ifdefstrequal\blx@bibencoding\blx@texencoding + {\blx@info@noline{% + Data encoding '\blx@bibencoding' specified.\MessageBreak + No need to reencode data}} + {\blx@info@noline{% + Data encoding '\blx@bibencoding' specified.\MessageBreak + Backend will reencode on the fly}}}}} + {\def\blx@bibencoding{ascii}% + \blx@info@noline{% + Data encoding not specified.\MessageBreak + Assuming '\blx@bibencoding'}}% + \ifboolexpr{% + togl {blx@safeinputenc} + and ( test {\@ifpackageloaded{inputenc}} + or + test {\@ifpackageloaded{inputenx}} ) + } + {\def\blx@texencoding{ascii}% + \blx@info@noline{% + Input encoding '\blx@texencoding' forced by\MessageBreak + 'safeinputenc' option}} + {}% +} + +% Deferred last minute setup +\AtBeginDocument{% + \blx@auxwrite\@mainaux{}{\string\abx@aux@refcontext{\blx@refcontext@context}} + \blx@checkencoding + \if@filesw + \blx@ctrlwrite + \fi + \blx@bblinput + \blx@maxsection\z@ + \csuse{abx@preamble}% + \blx@inf@refsec + \blx@inf@refseg} + +\AtEndOfPackage{% + % Data model macros are forbidden after package load is finished + \def\blx@warn@dm#1{\blx@warning@noline{Data model macro '#1' cannot be used in preamble}} + \def\ResetDatamodelEntrytypes{\blx@warn@dm{ResetDatamodelEntrytypes}} + \def\ResetDatamodelFields{\blx@warn@dm{ResetDatamodelFields}} + \def\ResetDatamodelEntryfields{\blx@warn@dm{ResetDatamodelEntryfields}} + \def\ResetDatamodelConstraints{\blx@warn@dm{ResetDatamodelConstraints}} + \renewcommand*{\DeclareDatamodelEntrytypes}[2][]{\blx@warn@dm{DeclareDatamodelEntrytypes}} + \renewcommand*{\DeclareDatamodelFields}[2][]{\blx@warn@dm{DeclareDatamodelFields}} + \renewcommand*{\DeclareDatamodelEntryfields}[2][]{\blx@warn@dm{DeclareDatamodelEntryfields}} + \renewcommand*{\DeclareDatamodelConstraints}[2][]{\blx@warn@dm{DeclareDatamodelConstraints}} + \renewcommand*{\DeclareDatamodelConstant}[3][]{\blx@warn@dm{DeclareDatamodelConstant}} + \AtBeginDocument{% + \let\do\undef + \blx@dopreamblecmds + \let\do\noexpand}} + +\def\BiblatexHungarianWarningOff{\global\let\lbx@hu@loadinfo\@empty} +\def\BiblatexLatvianWarningOff{\global\let\lbx@lv@loadinfo\@empty} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/blx-bibtex.def b/macros/latex/contrib/biblatex/latex/blx-bibtex.def new file mode 100644 index 0000000000..c333e5f17d --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/blx-bibtex.def @@ -0,0 +1,562 @@ +\ProvidesFile{blx-bibtex.def} +[\abx@cptid] + +\blx@warning@noline{% + Using fall-back BibTeX(8) backend:\MessageBreak + functionality may be reduced/unavailable% +} + +% Initialisation of backend-related switches, variables, etc. +\newtoggle{blx@runbtx} + +% No interface provided for this but can be set 'in emergency' by user +\def\blx@maxline{79} + +% Rename write stream so use is clear +\let\blx@write\blx@bcfout + +% Data file initialisation +\edef\blx@auxfile{\jobname} +\let\blx@aux\@mainaux +\newcommand*{\blxauxsuffix}{-blx} + +\begingroup +\def\blx@tempa#1"#2{% + #1\ifx#2\@empty\else + \expandafter\blx@tempa + \fi#2} +\edef\blx@ctrlfile{% + \noexpand\blx@tempa + \expandafter\blx@tempa\jobname"\@empty + \space\noexpand\@empty} +\def\blx@tempa#1 #2{% + #1\ifx#2\@empty\else + \string_\expandafter\blx@tempa + \fi#2} +\xdef\blx@ctrlfile{\blx@ctrlfile} +\endgroup + +\def\blx@auxinit#1{% + \blx@auxwrite\blx@aux + {\def\do##1{,\blx@stripbib{##1}}} + {\ifx\blx@aux\@mainaux + \else + \blx@msg@aux + \fi + \string\bibstyle{biblatex}\blx@nl + \string\bibdata{% + \blx@ctrlfile\blxauxsuffix + \ifx#1\@empty + \else + \dolistloop#1% + \fi}\blx@nl + \string\citation{biblatex-control}}} + +\def\blx@sig@bib{@Comment{$ biblatex control file $}} +\edef\blx@ver@bib{% + @Comment{$ biblatex bcf format version \blx@bcfversion\space $}} + +\let\blx@sig@aux\blx@sig@bbl +\let\blx@ver@aux\blx@ver@bbl + +\edef\blx@msg@text{% + \@percentchar\space Do not modify this file!\blx@nl + \@percentchar\blx@nl + \@percentchar\space This is an auxiliary file + used by the 'biblatex' package.\blx@nl + \@percentchar\space This file may safely be deleted. + It will be recreated as\blx@nl + \@percentchar\space required.\blx@nl} + +\edef\blx@msg@aux{% + \blx@sig@aux\blx@nl + \blx@ver@aux\blx@nl + \blx@msg@text + \@percentchar\blx@nl\string\relax\blx@nl} +\edef\blx@msg@bib{% + \blx@sig@bib\blx@nl + \blx@ver@bib\blx@nl + \blx@msg@text\blx@nl} + +% User feedback + +\renewrobustcmd*{\RequireBiber}[1][2]{% + \ifnumgreater{#1}\blx@reqbiber + {\numgdef\blx@reqbiber{#1}} + {}% + \blx@checkbackend{style}} +\@onlypreamble\RequireBiber +\let\blx@reqbiber\z@ + +\def\blx@checkbackend#1{% + \ifnum\blx@reqbiber>2 % + \blx@error + {Biber backend is required by #1} + {The selected style or one of the .bib files + requires Biber.\MessageBreak It will + not work at all with BibTeX.}% + \fi} + +\def\blx@check@logreq{% + \begingroup + \ltxrequest{biblatex}{{\iftoggle{blx@runltx}{1}{0}}}{% + \provides[type=dynamic]{ + \def\do##1{\file{##1.aux}} + \dolistloop\blx@list@inactive + \file{\blx@ctrlfile\blxauxsuffix.bib} + } + \requires[type=dynamic]{ + \def\do##1{\file{##1.bbl}} + \dolistloop\blx@list@inactive + } + \ifdef\blx@list@req@edit + {\requires[type=editable]{ + \forlistloop\file\blx@list@req@edit + }} + {} + \ifdef\blx@list@req@stat + {\requires[type=static]{ + \forlistloop\file\blx@list@req@stat + }} + {} + }% + \def\do##1{% + \ifinlist{##1}{\blx@list@active} + {\blx@logreq@bibtex{1}{##1}} + {\blx@logreq@bibtex{0}{##1}}}% + \dolistloop\blx@list@inactive + \endgroup} + +\def\blx@logreq@bibtex#1#2{% + \logrequest[package=biblatex,priority=5,active=#1]{% + \generic{bibtex} + \cmdline{% + \iftoggle{blx@bibtex8} + {\binary{bibtex8} + \option{--wolfgang} + \option{--min\string_crossrefs \blx@mincrossrefs}} + {\binary{bibtex} + \option{-min-crossrefs \blx@mincrossrefs}}% + \infile{#2} + } + \input{ + \file{#2.aux} + } + \output{ + \file{#2.bbl} + } + \provides[type=dynamic]{ + \file{#2.bbl} + } + \requires[type=dynamic]{ + \file{#2.aux} + \file{\blx@ctrlfile\blxauxsuffix.bib} + } + \requires[type=editable]{ + \ifcsdef{blx@list@bibfiles@#2} + {\def\do{\file} + \dolistcsloop{blx@list@bibfiles@#2}} + {} + } + \requires[type=static]{ + \file{biblatex.bst}} + }% +} + +\def\blx@logreq@active#1{% + \xifinlist{\blx@auxfile}{\blx@list@active} + {} + {\listxadd\blx@list@active{\blx@auxfile}}% + \ifblank{#1} + {} + {\@latex@warning{#1}}% + \blx@rerun@latex + \blx@rerun@bibtex} + +\def\blx@logreq@inactive{% + \xifinlist{\blx@auxfile}{\blx@list@inactive} + {} + {\listxadd\blx@list@inactive{\blx@auxfile}}} + +\def\blx@rerun@bibtex{% + \global\toggletrue{blx@runbtx}% + \global\let\blx@rerun@bibtex\relax} + +% Only the toggle name changes here +\patchcmd{\blx@check@rerun}{blx@runbiber}{blx@runbtx}{}{} + +\def\blx@warn@auxlist{% + \begingroup + \edef\blx@tempa{Please (re)run BibTeX on the file(s):}% + \def\do##1{\appto\blx@tempa{\MessageBreak##1}}% + \dolistloop\blx@list@active + \blx@warning@noline{% + \blx@tempa\MessageBreak + and rerun LaTeX afterwards}% + \endgroup} + +\protected\def\blx@bibreq#1{% + \blx@auxwrite\blx@aux{}{\string\citation{#1}}} + +% bibtex doesn't parse ISO8601 dates so these overrides do nothing +\appto\blx@blxinit{% + \def\iflabeldateera#1{\@secondoftwo}% + \def\iflabelenddateera#1{\@secondoftwo}% + \let\iflabeldatecirca\@secondoftwo + \let\iflabelenddatecirca\@secondoftwo + \let\iflabeldateuncertain\@secondoftwo + \let\iflabelenddateuncertain\@secondoftwo} + +% {<string>} +% This mustn't be robust as it's likely to be used mainly in tests and so +% needs to be expandable +\renewcommand*\rangelen[1]{% + \ifblank{#1} + {0}% + {\expandafter\blx@rangelen@range\romannumeral-`\q% + #1\bibrangedash\bibrangedash&% + }} + +\def\blx@rangelen@range#1\bibrangedash#2\bibrangedash#3&{% + \ifblank{#3} + {\blx@rangelen@hyphen#1--&} + {\blx@rangelen@check{#1}{#2}}% +} +\def\blx@rangelen@hyphen#1-#2-#3&{% + \ifblank{#3} + {1}% No range at all: assume one page + {\blx@rangelen@check{#1}{#2}}% +} +\def\blx@rangelen@check#1#2{% + \expandafter\blx@rangelen@check@aux + \number\numexpr + \blx@rangelen@check@int{#2} + - + \blx@rangelen@check@int{#1} + + 1 + \relax + &\stop +} +\def\blx@rangelen@check@aux#1\stop{% + \ifblank{#2} + {#1} + {-1}% +} +\def\blx@rangelen@check@int#1{% + \ifblank{#1} + {0&} + {% + \if\number\numexpr0#1-0#1\relax0 + #1 + \else + 0& + \fi + }% +} + +% Alter message text +\patchcmd{\blx@bbl@warn}{Biber}{BibTeX}{}{} + +%% Data input + +\patchcmd{\blx@bblinput}{\blx@bblfile}{\blx@bblfile\blx@bblsecs}{}{} + +\def\blx@bblfile{% + \blx@secinit + \begingroup + \blx@bblstart + \ifnum\c@refsection>\z@ + \edef\blx@auxfile{\jobname\the\c@refsection\blxauxsuffix}% + \else + \edef\blx@auxfile{\jobname}% + \fi + \blx@ifsigned{\blx@auxfile}{bbl} + {\InputIfFileExists{\blx@auxfile.bbl} + {\blx@info@noline{... file '\blx@auxfile.bbl' found}% + \global\toggletrue{blx@bbldone}} + {\blx@info@noline{... file '\blx@auxfile.bbl' not found}% + \typeout{No file \blx@auxfile.bbl.}% + \global\togglefalse{blx@bbldone}}} + {}% + \blx@bblend + \endgroup + \csnumgdef{blx@labelnumber@\the\c@refsection}{0}} + +\def\blx@bblsecs{% + \advance\c@refsection\@ne + \ifnum\c@refsection>\blx@maxsection + \else + \blx@bblfile + \expandafter\blx@bblsecs + \fi} + +\def\blx@refsection@ii{% + \xdef\blx@auxfile{\jobname\the\c@refsection\blxauxsuffix}% + \blx@regbibfiles\blx@auxfile\blx@bibfiles + \blx@logreq@inactive + \blx@ifsigned{\blx@auxfile}{aux} + {\immediate\openout\blx@write\blx@auxfile.aux\relax + \global\let\blx@aux\blx@write + \blx@auxinit\blx@bibfiles} + {}} + +\def\blx@endrefsection{% + \blx@endrefsegment + \ifx\blx@aux\blx@write + \immediate\closeout\blx@write + \global\let\blx@aux\@mainaux + \xdef\blx@auxfile{\jobname}% + \fi + \global\c@refsection\z@} + +% xref support + +% {<entrykey>} +\protected\def\blx@bbl@xref#1{% + \ifcsdef{blx@refp@\the\c@refsection @\detokenize{#1}} + {} + {\listcsxadd{blx@refs@\the\c@refsection}{\detokenize{#1}}}% + \listcsxadd{blx@refp@\the\c@refsection @\detokenize{#1}}{\abx@field@entrykey}% + \csxdef{blx@refc@\the\c@refsection @\abx@field@entrykey}{\detokenize{#1}}} + +\def\blx@addxref#1{% + \blx@ifdata{#1} + {\begingroup + \def\do##1{% + \csgappto{blx@data@\the\c@refsection @##1}{% + \def\abx@field@xref{#1}}}% + \dolistcsloop{blx@refp@\the\c@refsection @#1}% + \endgroup} + {}% + \global\csundef{blx@refp@\the\c@refsection @#1}} + +\def\blx@bblend{% + \ifcsdef{blx@refs@\the\c@refsection}% + {\begingroup + \let\do\blx@addxref + \dolistcsloop{blx@refs@\the\c@refsection}% + \endgroup + \global\csundef{blx@refs@\the\c@refsection}} + {}% + \iftoggle{blx@addset} + {\blx@addset + \global\togglefalse{blx@addset}} + {}} + +\def\blx@citation#1#2{% + \ifbool{citerequest} + {\ifcsdef{blx@setp@\the\c@refsection @#1} + {\blx@citation@set{#1}{#2}} + {\ifcsdef{blx@setc@\the\c@refsection @#1} + {\blx@citation@inset{#1}{#2}} + {\blx@citation@entry{#1}{#2}}}% + \ifcsdef{blx@refc@\the\c@refsection @#1}% + {\blx@citation@xref{#1}} + {}} + {}} + +\def\blx@citation@set#1#2{% + \blx@citation@entry{#1}{#2}% + \begingroup + \def\do##1{\blx@citation@entry{##1}\blx@msg@cundef}% + \expandafter\expandafter\expandafter\docsvlist + \expandafter\expandafter\expandafter{% + \csname blx@setp@\the\c@refsection @#1\endcsname}% + \endgroup} + +\def\blx@citation@inset#1#2{% + \blx@citation@entry{#1}{#2}% + \expandafter\expandafter\expandafter\blx@citation@inset@i + \expandafter\expandafter\expandafter{% + \csname blx@setc@\the\c@refsection @#1\endcsname}\blx@msg@cundef} + +\def\blx@citation@inset@i#1{% + \ifcsdef{blx@setp@\the\c@refsection @#1} + {\blx@citation@set{#1}} + {\blx@citation@entry{#1}}} + +\def\blx@citation@xref#1{% + \begingroup + \edef\blx@tempa{blx@refp@\the\c@refsection @% + \csname blx@refc@\the\c@refsection @#1\endcsname}% + \ifcsdef\blx@tempa + {\ifinlistcs{#1}\blx@tempa + {} + {\listcsxadd\blx@tempa{#1}}% + \blx@tempcnta\z@ + \def\do##1{\advance\blx@tempcnta\@ne}% + \dolistcsloop\blx@tempa} + {\listcsxadd\blx@tempa{#1}% + \blx@tempcnta\@ne}% + \expandafter\endgroup\ifnum\blx@tempcnta<\blx@minxrefs\relax + \else + \expandafter\expandafter\expandafter\blx@citation@entry + \expandafter\expandafter\expandafter{% + \csname blx@refc@\the\c@refsection @#1\endcsname}\blx@msg@cundef + \fi} + +% refcontexts are out, but we can try to save labelprefix + +% Luckily all refcontext names use \blx@refcontext@labelprefix, so if we +% don't modify that macro, we don't actually change the refcontext. +% Remember that \blx@refcontext@labelprefix contains a hash of the labelprefix +% and that \blx@refcontext@labelprefix@real contains the value. +% Effectively we always stay in \blx@sorting/global/global//global/global, +% and additionally carry around the labelprefix value +% in \blx@refcontext@labelprefix@real and pass it to the aux file. +% There are differences to the result obtained with Biber, +% but it should be good enough for very simple applications. +\define@key{blx@refcontext}{labelprefix}{% + \xdef\blx@refcontext@labelprefix@real{#1}% + \iftoggle{blx@defernumbers} + {}% + {\iftoggle{blx@labelnumber} + {\blx@warning{% + Option 'labelprefix' requires global\MessageBreak + 'defernumbers=true'}} + {}}% + \ifundef{\blx@bibtexwarn@labelprefix@used} + {\blx@warning@noline{% + The option 'labelprefix' is limited\MessageBreak + when used with BibTeX.\MessageBreak + Consider using Biber instead}% + \global\let\blx@bibtexwarn@labelprefix@used\@empty} + {}} + +\def\blx@warn@bibtexrefcontext#1{% + \blx@warning{% + The refcontext option\MessageBreak + '#1'\MessageBreak + is not supported by the BibTeX backend.\MessageBreak + Consider switching to Biber instead.\MessageBreak + The option will be ignored}} + +\def\blx@bibtexrefcontext@disable#1{% + \define@key{blx@refcontext}{#1}{% + \blx@warn@bibtexrefcontext{#1}}} + +\forcsvlist{\blx@bibtexrefcontext@disable}{% + nametemplates,sorting,sortingnamekeytemplatename,uniquenametemplatename, + labelalphanametemplatename} + +\def\blx@assignrefcontext@disable#1{% + \blx@warning{% + BibTeX does not support refcontext assignments with\MessageBreak + '\string\assignrefcontext#1'.\MessageBreak + Consider using Biber instead.\MessageBreak + Ignoring the refconext assignment}} + +\def\blx@assignrefcontextkeyws[#1][#2]#3{% + \blx@assignrefcontext@disable{keyws}} +\def\blx@assignrefcontextcats[#1][#2]#3{% + \blx@assignrefcontext@disable{cats}} +\def\blx@assignrefcontextentries[#1][#2]#3{% + \blx@assignrefcontext@disable{entries}} + +\apptocmd{\blx@setdefaultrefcontext} + {\csxdef{blx@assignedlabelprefix@\the\c@refsection @#1}{% + \blx@refcontext@labelprefix@real}} + {} + {\blx@error + {Failed to patch '\string\blx@setdefaultrefcontext'} + {Patching '\string\blx@setdefaultrefcontext' failed for some reason. + \MessageBreak + Please report this bug}} + +\def\abx@aux@defaultlabelprefix#1#2#3{% + \csgdef{blx@assignedlabelprefix@#1@#2}{#3}} + +\apptocmd{\blx@bbl@entry} + {\ifcsundef{blx@assignedlabelprefix@\the\c@refsection @\thefield{entrykey}} + {} + {\blx@bbl@addfield{labelprefix}{% + \csuse{blx@assignedlabelprefix@\the\c@refsection + @\thefield{entrykey}}}}} + {} + {\blx@error + {Failed to patch '\string\blx@bbl@entry'} + {Patching '\string\blx@bbl@entry' failed for some reason. + \MessageBreak + Please report this bug}} + +\AtEndDocument{% + % always add default labelprefix declarations to .aux + \iftoggle{blx@bbldone} + {\def\do#1{% + \begingroup + \def\do##1{% + \blx@auxwrite\@mainaux{}{\string\abx@aux@defaultlabelprefix{#1}{##1}{% + \csuse{blx@assignedlabelprefix@#1@##1}}}}% + \dolistcsloop{blx@defaultrefcontexts@#1}% + \endgroup} + \dolistloop\blx@allrefsections} + {}} + + +% Translate sorting schemes to BibTeX form +\def\blx@sorting@none{0} +\def\blx@sorting@nty{1} +\def\blx@sorting@nyt{2} +\def\blx@sorting@nyvt{3} +\def\blx@sorting@anyt{12} +\def\blx@sorting@anyvt{13} +\def\blx@sorting@ynt{21} +\def\blx@sorting@ydnt{22} +\def\blx@sorting@debug{99} + +% Control file + +\edef\blx@ctrl{% + \blx@msg@bib + @Control\string{biblatex-control,\blx@nl + \space\space options = \string{% + \blx@bcfversion:% + \noexpand\iftoggle{blx@debug}{1}{0}:% + \noexpand\iftoggle{blx@bibtex8}{1}{0}:% + \noexpand\iftoggle{blx@sortcase}{1}{0}:% + \noexpand\iftoggle{blx@useprefix}{1}{0}:% + \noexpand\iftoggle{blx@useauthor}{1}{0}:% + \noexpand\iftoggle{blx@useeditor}{1}{0}:% + \noexpand\iftoggle{blx@usetranslator}{1}{0}:% + \noexpand\iftoggle{blx@labelalpha}{1}{0}:% + \noexpand\iftoggle{blx@labeldateparts}{1}{0}:% + \noexpand\iftoggle{blx@singletitle}{1}{0}:% + \noexpand\csuse{blx@sorting@\noexpand\blx@sorting}:% + \noexpand\blx@maxcitenames:% + \noexpand\blx@mincitenames:% + \noexpand\blx@maxsortnames:% + \noexpand\blx@minsortnames:% + \noexpand\iftoggle{blx@nohashothers}{1}{0}:% + \noexpand\iftoggle{blx@nosortothers}{1}{0}:% + \noexpand\blx@maxalphanames:% + \noexpand\blx@minalphanames:% + \noexpand\blx@maxline:% + \noexpand\detokenize\noexpand\expandafter{\noexpand\labelalphaothers}:% + \noexpand\detokenize\noexpand\expandafter{\noexpand\blx@sortalphaothers}:% + \noexpand\detokenize\noexpand\expandafter{\noexpand\blx@sorting}% + \string},\blx@nl + \string}% +} + +\def\blx@ctrlwrite{% + % \sortalphaothers should only contain safe characters, + % so we should be able to \edef it + \edef\blx@sortalphaothers{\sortalphaothers}% + \immediate\openout\blx@write\blx@ctrlfile\blxauxsuffix.bib\relax + \blx@auxwrite\blx@write{}{\blx@ctrl}% + \immediate\closeout\blx@write} + +% Disable some interfaces + +\renewrobustcmd*{\DeclareSortingScheme}[3][]{} +\renewrobustcmd*{\DeclareExtradate}[1]{} + +\def\blx@checkencoding{} + +\AtBeginDocument{% + \blx@checkencoding + \if@filesw + \blx@auxinit\blx@bibfiles + \fi} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/blx-compat.def b/macros/latex/contrib/biblatex/latex/blx-compat.def new file mode 100644 index 0000000000..e315c5cc88 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/blx-compat.def @@ -0,0 +1,354 @@ +\ProvidesFile{blx-compat.def} +[\abx@cptid] + +% LaTeX + +\AtBeginDocument{% + \renewrobustcmd*{\bibliography}[1]{% + \blx@error + {'\string\bibliography' invalid} + {Use '\string\addbibresource' instead.\MessageBreak + I'm ignoring this command}}} + +\renewrobustcmd*{\bibliographystyle}[1]{% + \blx@error + {'\string\bibliographystyle' invalid} + {Use the package option 'style' instead.\MessageBreak + I'm ignoring this command}} + +% standard classes + +\DeclareOption{openbib}{\ExecuteBibliographyOptions{block=par}} + +% biblatex <0.9b + +\DeclareBibliographyOption[boolean]{defernums}[true]{% + \ExecuteBibliographyOptions{defernumbers=#1}} + +\providecommand*{\lbx@fromlang}{% + \iffieldundef{origlanguage} + {\unspace} + {\bibstring{from\thefield{origlanguage}}}} + +% memoir + +\ifdef\ifnobibintoc + {\newcommand*{\ifmemoirbibintoc}{\notbool{nobibintoc}}} + {\newcommand{\ifmemoirbibintoc}[2]{#2}} + +% KOMA-Script + +\newcommand{\ifkomabibtotoc}[2]{#2} +\newcommand{\ifkomabibtotocnumbered}[2]{#2} + +\ifdef\ds@bibtotoc + {% xkeyval breaks inheritance of key=value class options + \ifdef\XKV@classoptionslist + {\let\blx@classoptionslist\@classoptionslist + \let\@classoptionslist\XKV@classoptionslist + \AtEndOfPackage{\let\@classoptionslist\blx@classoptionslist}} + {}% + \DeclareOption{bibtotoc}{% + \let\ifkomabibtotoc=\@firstoftwo + \let\ifkomabibtotocnumbered=\@secondoftwo}% + \DeclareOption{bibtotocnumbered}{% + \let\ifkomabibtotoc=\@firstoftwo + \let\ifkomabibtotocnumbered=\@firstoftwo}% + \DeclareOption{bibliography=notoc}{% + \let\ifkomabibtotoc=\@secondoftwo + \let\ifkomabibtotocnumbered=\@secondoftwo}% + \DeclareOption{bibliography=nottotoc}{% + \let\ifkomabibtotoc=\@secondoftwo + \let\ifkomabibtotocnumbered=\@secondoftwo}% + \DeclareOption{bibliography=plainheading}{% + \let\ifkomabibtotoc=\@secondoftwo + \let\ifkomabibtotocnumbered=\@secondoftwo}% + \DeclareOption{bibliography=totoc}{% + \let\ifkomabibtotoc=\@firstoftwo + \let\ifkomabibtotocnumbered=\@secondoftwo}% + \DeclareOption{bibliography=toc}{% + \let\ifkomabibtotoc=\@firstoftwo + \let\ifkomabibtotocnumbered=\@secondoftwo}% + \DeclareOption{bibliography=notnumbered}{% + \let\ifkomabibtotoc=\@firstoftwo + \let\ifkomabibtotocnumbered=\@secondoftwo}% + \DeclareOption{bibliography=numbered}{% + \let\ifkomabibtotoc=\@firstoftwo + \let\ifkomabibtotocnumbered=\@firstoftwo}% + \DeclareOption{bibliography=totocnumbered}{% + \let\ifkomabibtotoc=\@firstoftwo + \let\ifkomabibtotocnumbered=\@firstoftwo}% + \DeclareOption{bibliography=tocnumbered}{% + \let\ifkomabibtotoc=\@firstoftwo + \let\ifkomabibtotocnumbered=\@firstoftwo}% + \DeclareOption{bibliography=numberedtotoc}{% + \let\ifkomabibtotoc=\@firstoftwo + \let\ifkomabibtotocnumbered=\@firstoftwo}% + \DeclareOption{bibliography=numberedtoc}{% + \let\ifkomabibtotoc=\@firstoftwo + \let\ifkomabibtotocnumbered=\@firstoftwo}% + \DeclareOption{bibliography=oldstyle}{% + \ExecuteBibliographyOptions{block=space}}% + \DeclareOption{bibliography=openstyle}{% + \ExecuteBibliographyOptions{block=par}}% + \DeclareOption{toc=bib}{% + \let\ifkomabibtotoc=\@firstoftwo + \let\ifkomabibtotocnumbered=\@secondoftwo}% + \DeclareOption{toc=bibliography}{% + \let\ifkomabibtotoc=\@firstoftwo + \let\ifkomabibtotocnumbered=\@secondoftwo}% + \DeclareOption{toc=nobib}{% + \let\ifkomabibtotoc=\@secondoftwo + \let\ifkomabibtotocnumbered=\@secondoftwo}% + \DeclareOption{toc=nobibliography}{% + \let\ifkomabibtotoc=\@secondoftwo + \let\ifkomabibtotocnumbered=\@secondoftwo}% + \DeclareOption{toc=bibnumbered}{% + \let\ifkomabibtotoc=\@firstoftwo + \let\ifkomabibtotocnumbered=\@firstoftwo}% + \DeclareOption{toc=numberedbib}{% + \let\ifkomabibtotoc=\@firstoftwo + \let\ifkomabibtotocnumbered=\@firstoftwo}% + \DeclareOption{toc=bibliographynumbered}{% + \let\ifkomabibtotoc=\@firstoftwo + \let\ifkomabibtotocnumbered=\@firstoftwo}% + \DeclareOption{toc=numberedbibliography}{% + \let\ifkomabibtotoc=\@firstoftwo + \let\ifkomabibtotocnumbered=\@firstoftwo}} + {} + +% biblatex <1.6 + +\define@key{blx@bib}{maxnames}{\blx@warn@depropt{maxnames}} +\define@key{blx@los}{maxnames}{\blx@warn@depropt{maxnames}} +\define@key{blx@bbs}{maxnames}{\blx@warn@depropt{maxnames}} +\define@key{blx@bbg}{maxnames}{\blx@warn@depropt{maxnames}} +\define@key{blx@bbc}{maxnames}{\blx@warn@depropt{maxnames}} + +\define@key{blx@bib}{minnames}{\blx@warn@depropt{minnames}} +\define@key{blx@los}{minnames}{\blx@warn@depropt{minnames}} +\define@key{blx@bbs}{minnames}{\blx@warn@depropt{minnames}} +\define@key{blx@bbg}{minnames}{\blx@warn@depropt{minnames}} +\define@key{blx@bbc}{minnames}{\blx@warn@depropt{minnames}} + +\define@key{blx@bib}{maxitems}{\blx@warn@depropt{maxitems}} +\define@key{blx@los}{maxitems}{\blx@warn@depropt{maxitems}} +\define@key{blx@bbs}{maxitems}{\blx@warn@depropt{maxitems}} +\define@key{blx@bbg}{maxitems}{\blx@warn@depropt{maxitems}} +\define@key{blx@bbc}{maxitems}{\blx@warn@depropt{maxitems}} + +\define@key{blx@bib}{minitems}{\blx@warn@depropt{minitems}} +\define@key{blx@los}{minitems}{\blx@warn@depropt{minitems}} +\define@key{blx@bbs}{minitems}{\blx@warn@depropt{minitems}} +\define@key{blx@bbg}{minitems}{\blx@warn@depropt{minitems}} +\define@key{blx@bbc}{minitems}{\blx@warn@depropt{minitems}} + +% Legacy alias for \printshorthands +\def\printshorthands{% + \@ifnextchar[%] + {\blx@printshorthands} + {\blx@printshorthands[]}} + +\def\blx@printshorthands[#1]{\printbiblist[#1]{shorthand}} + +% Legacy aliases +\def\AtBeginShorthands{\AtBeginBiblist{shorthand}} +\def\AtEveryLositem{\AtEveryBiblistitem{shorthand}} +\@onlypreamble\AtBeginShorthands +\@onlypreamble\AtEveryLositem + +\let\frangelen\rangelen % Legacy name for \rangelen + +\DeclareBibliographyOption[string]{sortlos}{% + \blx@warning@noline{% + 'sortlos' option is deprecated.\MessageBreak + Please use 'sorting' option to '\string\printbiblist'}} + +\define@key{blx@bib1}{sorting}{% + \blx@warning@noline{% + 'sorting' option to '\string\printbibliography' is no longer supported.\MessageBreak + Please use 'sorting' option to '\string\newrefcontext'}} + +\define@key{blx@biblist1}{sorting}{% + \blx@warning@noline{% + 'sorting' option to '\string\printbiblist' is no longer supported.\MessageBreak + Please use 'sorting' option to '\string\newrefcontext'}} + +\define@key{blx@bib2}{prefixnumbers}{% + \blx@warning@noline{% + 'prefixnumbers' option to '\string\printbibliography' is no longer supported.\MessageBreak + Please use 'labelprefix' option to '\string\newrefcontext'}} + + +\DeclareBibliographyOption[string]{babel}{% + \blx@warning@noline{% + 'babel' option is deprecated.\MessageBreak + Please use 'autolang' instead}% + \blx@autolang@i{#1}} + +\DeclareTypeOption[boolean]{skiplos}{% + \blx@warning@noline{% + skiplos option is deprecated.\MessageBreak + Please use 'skipbiblist' instead}% + \settoggle{blx@skipbiblist}{#1}} +\DeclareEntryOption[boolean]{skiplos}{% + \blx@warning@noline{% + skiplos option is deprecated.\MessageBreak + Please use 'skipbiblist' instead}% + \settoggle{blx@skipbiblist}{#1}} + +% Legacy options moved to \namepart in \DeclareLabelalphaNameTemplate +\define@key{blx@latem@field}{compound}{% deprecated + \blx@warning@noline{% + Ignored 'compound' option to '\string\field' in '\string\DeclareLabelalphaNameTemplate'\MessageBreak + This is now the 'compound' option of '\string\namepart\space' in\MessageBreak + '\string\DeclareLabelalphaNameTemplate'}} +\define@key{blx@latem@field}{pcompound}{% deprecated + \blx@warning@noline{% + Ignored 'pcompound' option to '\string\field' in '\string\DeclareLabelalphaNameTemplate'\MessageBreak + This is now the 'compound' option of '\string\namepart' in\MessageBreak + '\string\DeclareLabelalphaNameTemplate'}} +\define@key{blx@latem@field}{pstrwidth}{% deprecated + \blx@warning@noline{% + Ignored 'pstrwidth' option to '\string\field' in '\string\DeclareLabelalphaNameTemplate'\MessageBreak + This is now the 'strwidth' option of '\string\namepart' in\MessageBreak + '\string\DeclareLabelalphaNameTemplate'}} + +%LEGACY(<3.3) legacy name for \ifgiveninits which is autogenerated now +\def\iffirstinits{ + \blx@warning@noline{% + '\string\iffirstinits' is deprecated.\MessageBreak + Please use '\string\ifgiveninits'}% + \iftoggle{abx@bool@giveninits}} + +% Legacy for giveninits +\DeclareBibliographyOption[boolean]{firstinits}[true]{% + \blx@warning@noline{% + 'firstinits' option is deprecated.\MessageBreak + Please use 'giveninits' instead}% + \settoggle{abx@bool@giveninits}{#1}} + +% Legacy for sortfirstinits/sortgiveninits +\DeclareBibliographyOption[boolean]{sortfirstinits}[true]{% + \blx@warning@noline{% + 'sortfirstinits' option is deprecated.\MessageBreak + Please use 'inits' option to '\string\namepart\space'\MessageBreak + in '\string\DeclareSortingNamekeyTemplate'}} +\DeclareBibliographyOption[boolean]{sortgiveninits}{% + \blx@warning@noline{% + 'sortgiveninits' option is deprecated.\MessageBreak + Please use 'inits' option to '\string\namepart'\MessageBreak + in '\string\DeclareSortingNamekeyTemplate' instead}} + +\define@key{blx@refcontext}{prefixnumbers}{%LEGACY(<3.3) + \blx@warning@noline{% + prefixnumbers option to '\string\newrefcontext' has been renamed.\MessageBreak + Please use 'labelprefix' option instead}% + \setkeys{blx@refcontext}{labelprefix=#1}} + +% biblatex < 3.4 +\define@key{blx@bib1}{prefixnumbers}{}%LEGACY(<3.4) legacy name for labelprefix +\DeprecateFieldWithReplacement{prefixnumber}{labelprefix} +\DeclareFieldAlias{prefixnumber}{labelprefix} + +% biblatex < 3.5 +\DeclareBibliographyOption[string]{datelabel}{% + \blx@warning@noline{% + 'datelabel' option is deprecated.\MessageBreak + Please use 'labeldate' instead}% + \setkeys{blx@opt@pre}{labeldate=#1}} + +\DeclareBibliographyOption[boolean]{labelyear}[true]{% + \blx@warning@noline{% + 'labelyear' option is deprecated.\MessageBreak + Please use 'labeldateparts' instead}% + \settoggle{blx@labeldateparts}{#1}} +\DeclareTypeOption[boolean]{labelyear}[true]{% + \blx@warning@noline{% + 'labelyear' option is deprecated.\MessageBreak + Please use 'labeldateparts' instead}% + \settoggle{blx@labeldateparts}{#1}} + +\protected\def\mkdatezeros{% + \blx@warning@noline{% + '\string\mkdatezeros' is deprecated.\MessageBreak + Please use '\string\mkyearzeros', '\string\mkmonthzeros' or\MessageBreak + '\string\mkdayzeros' as appropriate. \MessageBreak + Falling back to '\string\mkmonthzeros'}% + \mkmonthzeros} + +\protected\def\printdatelabel{% + \blx@warning@noline{% + '\string\printdatelabel' is deprecated.\MessageBreak + Please use '\string\printlabeldate'}% + \blx@imc@printlabeldate} + +\protected\def\printdatelabelextra{% + \blx@warning@noline{% + '\string\printdatelabelextra' is deprecated.\MessageBreak + Please use '\string\printlabeldateextra'}% + \blx@imc@printlabeldateextra} + +\newrobustcmd*{\DeclareLabelyear}[2][]{% + \blx@warning@noline{% + 'DeclareLabelyear' is deprecated.\MessageBreak + Please use 'DeclareLabeldate'}} + +\csdef{mkdaterangeiso8601}{% + \blx@warning@noline{% + '\string\mkdaterangeiso8601' is deprecated.\MessageBreak + Please use '\string\mkdaterangeiso'}% + \mkdaterangeiso} + +\csdef{mkdaterangeiso8601extra}{% + \blx@warning@noline{% + '\string\mkdaterangeiso8601extra' is deprecated.\MessageBreak + Please use '\string\mkdaterangeisoextra'}% + \mkdaterangeisoextra} + +% biblatex < 3.8 +\define@key{blx@refcontext}{sortingnamekeyscheme}{% + \blx@warning@noline{'sortingnamekeyscheme' is deprecated.\MessageBreak + Please use 'sortingnamekeytemplatename' instead}% + \gdef\blx@refcontext@sortingnamekeytemplatename{#1}} + +\define@key{blx@assignrefcontext}{sortingnamekeyscheme}{% + \blx@warning@noline{'sortingnamekeyscheme' is deprecated.\MessageBreak + Please use 'sortingnamekeytemplatename' instead}% + \def\blx@tempb{#1}} + +\def\DeclareSortingScheme{% + \blx@warning@noline{% + '\string\DeclareSortingScheme' is deprecated.\MessageBreak + Please use '\string\DeclareSortingTemplate'}% + \DeclareSortingTemplate} + +\def\DeclareSortingNamekeyScheme{% + \blx@warning@noline{% + '\string\DeclareSortingNamekeyScheme' is deprecated.\MessageBreak + Please use '\string\DeclareSortingNamekeyTemplate'}% + \DeclareSortingNamekeyTemplate} + +\def\ifsortnamekeyscheme#1{% + \blx@warning@noline{% + '\string\ifsortnamekeyscheme' is deprecated in sorting specifications.\MessageBreak + Please use '\string\ifsortingnamekeytemplate'}% + \expandafter\ifstrequal\expandafter{\blx@refcontext@sortingnamekeytemplatename}{#1}} + +\DeprecateFieldWithReplacement{extrayear}{extradate} +\DeclareFieldAlias{extrayear}{extradate} + +% EDTF -> ISO +\def\mkdaterangeedtf{% + \blx@warning@noline{% + '\string\mkdaterangeedtf' is deprecated.\MessageBreak + Please use '\string\mkdaterangeiso'}% + \mkdaterangeiso} + +\def\mkdaterangeedtfextra{% + \blx@warning@noline{% + '\string\mkdaterangeedtfextra' is deprecated.\MessageBreak + Please use '\string\mkdaterangeisoextra'}% + \mkdaterangeisoextra} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/blx-dm.def b/macros/latex/contrib/biblatex/latex/blx-dm.def new file mode 100644 index 0000000000..c9097281b1 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/blx-dm.def @@ -0,0 +1,1586 @@ +\ProvidesFile{blx-dm.def} +[\abx@lbxid] + +% -*- mode: LaTeX -*- +\newbool{dmskipout}% +\newbool{dmlabelfield}% + +% Data model .bcf output macros +\xdef\blx@xml@datamodel#1{% + ~~<bcf:datamodel>\blx@nl + #1% + ~~</bcf:datamodel>\blx@nl} +\xdef\blx@xml@datamodel@constants#1{% + ~~~~<bcf:constants>\blx@nl + #1% + ~~~~</bcf:constants>\blx@nl} +\xdef\blx@xml@datamodel@constant#1#2#3{% + ~~~~~~<bcf:constant type="#1" name="#2">#3</bcf:constant>\blx@nl} +\xdef\blx@xml@datamodel@entrytypes#1{% + ~~~~<bcf:entrytypes>\blx@nl + #1% + ~~~~</bcf:entrytypes>\blx@nl} +\xdef\blx@xml@datamodel@entrytype#1#2{% + ~~~~~~<bcf:entrytype#1>#2</bcf:entrytype>\blx@nl} +\xdef\blx@xml@datamodel@fields#1{% + ~~~~<bcf:fields>\blx@nl + #1% + ~~~~</bcf:fields>\blx@nl} +\xdef\blx@xml@datamodel@field#1#2{% + ~~~~~~<bcf:field#1>#2</bcf:field>\blx@nl} +\xdef\blx@xml@datamodel@entryfields#1{% + ~~~~<bcf:entryfields>\blx@nl + #1% + ~~~~</bcf:entryfields>\blx@nl} +\xdef\blx@xml@datamodel@entryfield@type#1{% + ~~~~~~<bcf:entrytype>#1</bcf:entrytype>\blx@nl} +\xdef\blx@xml@datamodel@entryfield@field#1{% + ~~~~~~<bcf:field>#1</bcf:field>\blx@nl} +\xdef\blx@xml@datamodel@constraints#1{% + ~~~~<bcf:constraints>\blx@nl + #1% + ~~~~</bcf:constraints>\blx@nl} +\xdef\blx@xml@datamodel@constraints@type#1{% + ~~~~~~<bcf:entrytype>#1</bcf:entrytype>\blx@nl} +\xdef\blx@xml@datamodel@constraint#1#2{% + ~~~~~~<bcf:constraint#1>\blx@nl + #2% + ~~~~~~</bcf:constraint>\blx@nl} +\xdef\blx@xml@datamodel@constraintfieldsxor#1{% + ~~~~~~~~<bcf:fieldxor>\blx@nl + #1% + ~~~~~~~~</bcf:fieldxor>\blx@nl} +\xdef\blx@xml@datamodel@constraintfieldsor#1{% + ~~~~~~~~<bcf:fieldor>\blx@nl + #1% + ~~~~~~~~</bcf:fieldor>\blx@nl} +\xdef\blx@xml@datamodel@constraint@antecedent#1#2{% + ~~~~~~~~<bcf:antecedent#1>\blx@nl + #2% + ~~~~~~~~</bcf:antecedent>\blx@nl} +\xdef\blx@xml@datamodel@constraint@consequent#1#2{% + ~~~~~~~~<bcf:consequent#1>\blx@nl + #2% + ~~~~~~~~</bcf:consequent>\blx@nl} +\xdef\blx@xml@datamodel@constraintfield#1{% + ~~~~~~~~<bcf:field>#1</bcf:field>\blx@nl} +\xdef\blx@xml@datamodel@constraintfieldsub#1{% + ~~~~~~~~~~<bcf:field>#1</bcf:field>\blx@nl} + +% Data model specification macros +\newrobustcmd*{\ResetDatamodelEntrytypes}{% + \global\let\blx@bcf@datamodel@entrytypes\@empty + \global\let\blx@datamodel@entrytypes\@empty} + +\newrobustcmd*{\ResetDatamodelFields}{% + \global\let\blx@datamodel@labelfields\@empty + \global\let\blx@bcf@datamodel@fields\@empty + \global\let\blx@datamodel@fields\@empty + \global\let\blx@datamodel@names\@empty + \global\let\blx@datamodel@dates\@empty + \global\let\blx@datamodel@lists\@empty} + +\newrobustcmd*{\ResetDatamodelEntryfields}{% + \global\let\blx@bcf@datamodel@entryfields\@empty} + +\newrobustcmd*{\ResetDatamodelConstraints}{% + \global\let\blx@bcf@datamodel@constraints\@empty} + +\newrobustcmd*{\DeclareDatamodelEntrytypes}[2][]{% + \begingroup + \let\blx@tempa\@empty + \def\do##1{% + \ifinlistcs{##1}{blx@datamodel@entrytypes} + {} + {\listcsgadd{blx@datamodel@entrytypes}{##1}}% + \xappto\blx@bcf@datamodel@entrytypes{% + \blx@xml@datamodel@entrytype{\blx@tempa}{##1}}}% + \ifblank{#1} + {\docsvlist{#2}} + {\setkeys{blx@datamodel@entrytypes}{#1} + \docsvlist{#2}}% + \endgroup} + +\define@key{blx@datamodel@entrytypes}{skipout}[true]{% true|false + \ifstrequal{#1}{true} + {\appto\blx@tempa{ skip\string_output="true"}} + {}} + +% Valid dateparts +\def\blx@notnulldateparts{month,day,hour,minute,second,timezone,season,endmonth,endday,endhour,endminute,endsecond,endtimezone,endseason} +\def\blx@nullokdateparts{endyear,year} +\edef\blx@dateparts{\blx@notnulldateparts,\blx@nullokdateparts} + +\newrobustcmd*{\DeclareDatamodelFields}[2][]{% + \begingroup + \let\blx@dm@fieldtype\@empty + \let\blx@dm@datatype\@empty + \let\blx@dm@format\@empty + \boolfalse{dmskipout}% + \boolfalse{dmlabelfield}% + \let\blx@tempa\@empty + \setkeys{blx@datamodel@field}{#1}% + \def\do##1{% + % Generic lists of field/datatypes for testing bib fields + \ifinlistcs{##1}{blx@datamodelfields@fieldtypes@\blx@dm@fieldtype} + {} + {\listcsgadd{blx@datamodelfields@fieldtypes@\blx@dm@fieldtype}{##1}}% + \ifinlistcs{##1}{blx@datamodelfields@datatypes@\blx@dm@datatype} + {} + {\listcsgadd{blx@datamodelfields@datatypes@\blx@dm@datatype}{##1}}% + \ifinlistcs{##1}{blx@datamodelfields@types@\blx@dm@fieldtype @\blx@dm@datatype} + {} + {\listcsgadd{blx@datamodelfields@types@\blx@dm@fieldtype @\blx@dm@datatype}{##1}}% + + % Processed convenience lists of various datamodel fields + + % add to list of dates. These are skipout in the default datamodel but + % we want to auto-create some internals/options for all date fields in + % biblatex + \ifboolexpr{% + test {\ifcsstring{blx@dm@datatype}{date}} + and + not test {\ifinlistcs{##1}{blx@datamodel@dates}}} + {\listcsgadd{blx@datamodel@dates}{##1}} + {}% + \ifboolexpr{% add to list of label fields + not bool {dmskipout} + and + bool {dmlabelfield} + and + not test {\ifinlistcs{##1}{blx@datamodel@labelfields}}} + {\listcsgadd{blx@datamodel@labelfields}{##1}} + {}% + \ifboolexpr{% add to list of names if it is a name which appears in .bbl + not bool {dmskipout} + and + test {\ifcsstring{blx@dm@datatype}{name}} + and + not test {\ifinlistcs{##1}{blx@datamodel@names}}} + {\listcsgadd{blx@datamodel@names}{##1}} + {}% + \ifboolexpr{% add to list of lists if it is a list which appears in .bbl + not bool {dmskipout} + test {\ifcsstring{blx@dm@fieldtype}{list}} + and + ( test {\ifcsstring{blx@dm@datatype}{literal}} + or + test {\ifcsstring{blx@dm@datatype}{key}} + or + test {\ifcsstring{blx@dm@datatype}{uri}} + or + test {\ifcsstring{blx@dm@datatype}{verbatim}} + ) + and + not test {\ifinlistcs{##1}{blx@datamodel@lists}}} + {\listcsgadd{blx@datamodel@lists}{##1}} + {}% + \ifboolexpr{% add to list of fields unless certain type/datatype etc. + bool {dmskipout} + or + test {\ifcsstring{blx@dm@datatype}{name}} + or + ( test {\ifcsstring{blx@dm@fieldtype}{list}} + and + test {\ifcsstring{blx@dm@datatype}{literal}} + ) + or + ( test {\ifcsstring{blx@dm@fieldtype}{list}} + and + test {\ifcsstring{blx@dm@datatype}{key}} + ) + or + ( test {\ifcsstring{blx@dm@fieldtype}{list}} + and + test {\ifcsstring{blx@dm@datatype}{uri}} + ) + or + ( test {\ifcsstring{blx@dm@fieldtype}{list}} + and + test {\ifcsstring{blx@dm@datatype}{verbatim}} + ) + or + ( test {\ifcsstring{blx@dm@fieldtype}{field}} + and + test {\ifcsstring{blx@dm@datatype}{code}} + ) + or + test {\ifinlistcs{##1}{blx@datamodel@fields}}} + {} + {\listcsgadd{blx@datamodel@fields}{##1}}% + \xappto\blx@bcf@datamodel@fields{% + \blx@xml@datamodel@field{\blx@tempa}{##1}}% + + % Dateparts are special - auto-create for all date fields + \ifcsstring{blx@dm@datatype}{date} + {\begingroup + \let\blx@tempa\@empty% reset setkeys buffer due to manual calls below + % add to list of dates. These are skipout in the default datamodel but + % we want to auto-create some internals/options for all date fields in + % biblatex + \ifinlistcs{##1}{blx@datamodel@dates} + {} + {\listcsgadd{blx@datamodel@dates}{##1}}% + \ifinlistcs{##1}{blx@datamodel@fields} + {} + {\listcsgadd{blx@datamodel@fields}{##1}}% + \blx@stripfromendinto{##1}{date}\blx@datetype + % dateparts which are ok to be null (by default *endyear) + \def\do####1{% + \let\blx@tempa\@empty% reset setkeys buffer due to loop calls + \xifinlistcs{\blx@datetype ####1}{blx@datamodel@fields} + {} + {\listcsxadd{blx@datamodel@fields}{\blx@datetype ####1}}% + \setkeys{blx@datamodel@field}{type=field,datatype=datepart,nullok}% + \xappto\blx@bcf@datamodel@fields{% + \blx@xml@datamodel@field{\blx@tempa}{\blx@datetype ####1}}}% + \expandafter\docsvlist\expandafter{\blx@nullokdateparts}% + % dateparts which are not ok to be null by default: + % *year, *(end)month, *(end)day, *(end)hour, *(end)minute, *(end)second, *(end)timezone + % *(end)season + \def\do####1{% + \let\blx@tempa\@empty% reset setkeys buffer due to loop calls + \xifinlistcs{\blx@datetype ####1}{blx@datamodel@fields} + {} + {\listcsxadd{blx@datamodel@fields}{\blx@datetype ####1}}% + \setkeys{blx@datamodel@field}{type=field,datatype=datepart}% + \xappto\blx@bcf@datamodel@fields{% + \blx@xml@datamodel@field{\blx@tempa}{\blx@datetype ####1}}}% + \expandafter\docsvlist\expandafter{\blx@notnulldateparts}% + \endgroup} + {}}% + \docsvlist{#2} + \endgroup} + +\define@key{blx@datamodel@field}{type}{% characters + \eappto\blx@tempa{ fieldtype="#1"}% + \def\blx@dm@fieldtype{#1}} +\define@key{blx@datamodel@field}{datatype}{% characters + \eappto\blx@tempa{ datatype="#1"}% + \def\blx@dm@datatype{#1}} +\define@key{blx@datamodel@field}{format}{% characters + \eappto\blx@tempa{ format="#1"}% + \def\blx@dm@format{#1}} +\define@key{blx@datamodel@field}{nullok}[true]{% true|false + \ifstrequal{#1}{true} + {\appto\blx@tempa{ nullok="true"}} + {}} +\define@key{blx@datamodel@field}{skipout}[true]{% true|false + \ifstrequal{#1}{true} + {\appto\blx@tempa{ skip\string_output="true"}% + \booltrue{dmskipout}} + {}} +\define@key{blx@datamodel@field}{label}[true]{% true|false + \ifstrequal{#1}{true} + {\appto\blx@tempa{ label="true"}% + \booltrue{dmlabelfield}} + {}} + +\newrobustcmd*{\DeclareDatamodelConstant}[3][]{% + \begingroup + \let\blx@tempa\@empty + \ifblank{#1} + {\def\blx@tempa{string}} + {\setkeys{blx@datamodel@constant}{#1}}% + \xappto\blx@bcf@datamodel@constants{\blx@xml@datamodel@constant{\blx@tempa}{#2}{#3}}% + \csxdef{blx@datamodel@constant@#2}{#3}% + \csxdef{blx@datamodel@constanttype@#2}{\blx@tempa}% + \endgroup} + +\define@key{blx@datamodel@constant}{type}{% + \def\blx@tempa{#1}} + +\newrobustcmd*{\DeclareDatamodelEntryfields}[2][]{% + \begingroup + \let\blx@tempa\@empty + \let\blx@tempb\@empty + \ifblank{#1} + {} + {\def\do##1{% + \eappto\blx@tempa{\blx@xml@datamodel@entryfield@type{##1}}}% + \docsvlist{#1}}% + \def\do##1{% + \eappto\blx@tempb{\blx@xml@datamodel@entryfield@field{##1}}}% + \docsvlist{#2}% + \xappto\blx@bcf@datamodel@entryfields{\blx@xml@datamodel@entryfields{\blx@tempa\blx@tempb}}% + \endgroup} + +\newrobustcmd*{\DeclareDatamodelConstraints}[2][]{% + \begingroup + \let\blx@tempa\@empty + \let\blx@tempb\@empty + \let\constraint\blx@datamodel@constraint + \ifblank{#1} + {} + {\def\do##1{% + \eappto\blx@tempa{\blx@xml@datamodel@constraints@type{##1}}}% + \docsvlist{#1}}% + #2% + \xappto\blx@bcf@datamodel@constraints{\blx@xml@datamodel@constraints{\blx@tempa\blx@tempb}}% + \endgroup} + +\newcommand*{\blx@datamodel@constraint}[2][]{% + \let\blx@tempc\@empty + \let\blx@tempd\@empty + \setkeys{blx@datamodel@constraint}{#1}% + \let\constraintfieldsxor\blx@datamodel@constraintfieldsxor + \let\constraintfieldsor\blx@datamodel@constraintfieldsor + \let\constraintfield\blx@datamodel@constraintfield + \let\antecedent\blx@datamodel@constraint@antecedent + \let\consequent\blx@datamodel@constraint@consequent + #2% + \eappto\blx@tempb{\blx@xml@datamodel@constraint{\blx@tempc}{\blx@tempd}}} + +\define@key{blx@datamodel@constraint}{type}{% characters + \eappto\blx@tempc{ type="#1"}} +\define@key{blx@datamodel@constraint}{datatype}{% characters + \eappto\blx@tempc{ datatype="#1"}} +\define@key{blx@datamodel@constraint}{rangemin}{% integer + \eappto\blx@tempc{ rangemin="#1"}} +\define@key{blx@datamodel@constraint}{rangemax}{% integer + \eappto\blx@tempc{ rangemax="#1"}} +\define@key{blx@datamodel@constraint}{pattern}{% regexp + \eappto\blx@tempc{ pattern="#1"}} + +\newcommand*{\blx@datamodel@constraint@antecedent}[2][]{% + \let\blx@tempe\@empty + \let\blx@temph\@empty + \let\constraintfield\blx@datamodel@constraintfieldsub + \setkeys{blx@datamodel@constraint@quant}{#1}% + #2% + \let\constraintfield\blx@datamodel@constraintfield% back to default + \eappto\blx@tempd{\blx@xml@datamodel@constraint@antecedent{\blx@tempe}{\blx@temph}}} + +\newcommand*{\blx@datamodel@constraint@consequent}[2][]{% + \let\blx@tempe\@empty + \let\blx@temph\@empty + \let\constraintfield\blx@datamodel@constraintfieldsub + \setkeys{blx@datamodel@constraint@quant}{#1}% + #2% + \let\constraintfield\blx@datamodel@constraintfield% back to default + \eappto\blx@tempd{\blx@xml@datamodel@constraint@consequent{\blx@tempe}{\blx@temph}}} + +\define@key{blx@datamodel@constraint@quant}{quantifier}{% characters + \eappto\blx@tempe{ quant="#1"}} + +\newcommand*{\blx@datamodel@constraintfieldsxor}[1]{% + \let\blx@temph\@empty + \let\constraintfield\blx@datamodel@constraintfieldsub + #1% + \let\constraintfield\blx@datamodel@constraintfield% back to default + \eappto\blx@tempd{\blx@xml@datamodel@constraintfieldsxor{\blx@temph}}} + +\newcommand*{\blx@datamodel@constraintfieldsor}[1]{% + \let\blx@temph\@empty + \let\constraintfield\blx@datamodel@constraintfieldsub + #1% + \let\constraintfield\blx@datamodel@constraintfield% back to default + \eappto\blx@tempd{\blx@xml@datamodel@constraintfieldsor{\blx@temph}}} + +\newcommand*{\blx@datamodel@constraintfield}[1]{% + \eappto\blx@tempd{\blx@xml@datamodel@constraintfield{#1}}} + +\newcommand*{\blx@datamodel@constraintfieldsub}[1]{% + \eappto\blx@temph{\blx@xml@datamodel@constraintfieldsub{#1}}} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Data model specification + +\DeclareDatamodelConstant[type=list]{gender}{sf,sm,sn,pf,pm,pn,pp} +\DeclareDatamodelConstant[type=list]{nameparts}{family,given,prefix,suffix} +\DeclareDatamodelConstant[type=list]{optiondatatypes}{boolean,integer,string,xml} + +\DeclareDatamodelEntrytypes{ + article, + artwork, + audio, + bibnote, + book, + bookinbook, + booklet, + collection, + commentary, + customa, + customb, + customc, + customd, + custome, + customf, + dataset, + inbook, + incollection, + inproceedings, + inreference, + image, + jurisdiction, + legal, + legislation, + letter, + manual, + misc, + movie, + music, + mvcollection, + mvreference, + mvproceedings, + mvbook, + online, + patent, + performance, + periodical, + proceedings, + reference, + report, + review, + set, + software, + standard, + suppbook, + suppcollection, + suppperiodical, + thesis, + unpublished, + video} + +\DeclareDatamodelEntrytypes[skipout]{xdata} + +\DeclareDatamodelFields[type=field, datatype=integer]{ + sortyear, + volume, + volumes} + +\DeclareDatamodelFields[type=field, datatype=literal]{ + abstract, + addendum, + annotation, + booksubtitle, + booktitle, + booktitleaddon, + chapter, + edition, + eid, + entrysubtype, + eprintclass, + eprinttype, + eventtitle, + eventtitleaddon, + gender, + howpublished, + indexsorttitle, + indextitle, + isan, + isbn, + ismn, + isrn, + issn, + issue, + issuesubtitle, + issuetitle, + iswc, + journalsubtitle, + journaltitle, + label, + langid, + langidopts, + library, + mainsubtitle, + maintitle, + maintitleaddon, + nameaddon, + note, + number, + origtitle, + pagetotal, + part, + relatedstring, + relatedtype, + reprinttitle, + series, + shorthandintro, + subtitle, + title, + titleaddon, + usera, + userb, + userc, + userd, + usere, + userf, + venue, + version} + +\DeclareDatamodelFields[type=field, datatype=literal, label=true]{ + shorthand, + shortjournal, + shortseries, + shorttitle} + +\DeclareDatamodelFields[type=field, datatype=literal, skipout]{ + sorttitle, + sortshorthand, + sortkey, + presort} + +\DeclareDatamodelFields[type=list, datatype=literal]{ + institution, + lista, + listb, + listc, + listd, + liste, + listf, + location, + organization, + origlocation, + origpublisher, + publisher} + +\DeclareDatamodelFields[type=list, datatype=name]{ + afterword, + annotator, + author, + bookauthor, + commentator, + editor, + editora, + editorb, + editorc, + foreword, + holder, + introduction, + namea, + nameb, + namec, + translator} + +\DeclareDatamodelFields[type=list, datatype=name, label=true]{ + shortauthor, + shorteditor} + +\DeclareDatamodelFields[type=list, datatype=name, skipout]{sortname} + +\DeclareDatamodelFields[type=field, datatype=key]{ + authortype, + editoratype, + editorbtype, + editorctype, + editortype, + bookpagination, + nameatype, + namebtype, + namectype, + pagination, + pubstate, + type} + +\DeclareDatamodelFields[type=list, datatype=key]{language,origlanguage} + +\DeclareDatamodelFields[type=field, datatype=entrykey]{ + crossref, + xref} + +\DeclareDatamodelFields[type=field, datatype=date, skipout]{ + date, + eventdate, + origdate, + urldate} + +\DeclareDatamodelFields[type=field, datatype=verbatim]{ + doi, + eprint, + file, + verba, + verbb, + verbc} + +\DeclareDatamodelFields[type=field, datatype=uri]{url} + +\DeclareDatamodelFields[type=field, format=xsv, datatype=entrykey, skipout]{xdata, ids, entryset} +\DeclareDatamodelFields[type=field, format=xsv, datatype=entrykey]{related} + +\DeclareDatamodelFields[type=field, format=xsv, datatype=keyword]{keywords} + +\DeclareDatamodelFields[type=field, format=xsv, datatype=option, skipout]{options, relatedoptions} +\DeclareDatamodelFields[type=field, datatype=range]{pages} + +\DeclareDatamodelFields[type=field, datatype=code]{execute} + +\DeclareDatamodelEntryfields{ + abstract, + annotation, + authortype, + bookpagination, + crossref, + day, + endday, + endhour, + endminute, + endmonth, + endseason, + endsecond, + endtimezone, + endyear, + entryset, + entrysubtype, + execute, + file, + gender, + hour, + ids, + indextitle, + indexsorttitle, + isan, + ismn, + iswc, + keywords, + label, + langid, + langidopts, + library, + lista, + listb, + listc, + listd, + liste, + listf, + minute, + month, + nameaddon, + options, + origday, + origendday, + origendhour, + origendminute, + origendmonth, + origendseason, + origendsecond, + origendtimezone, + origendyear, + orighour, + origminute, + origmonth, + origseason, + origsecond, + origtimezone, + origyear, + origlocation, + origpublisher, + origtitle, + pagination, + presort, + related, + relatedoptions, + relatedstring, + relatedtype, + season, + second, + shortauthor, + shorteditor, + shorthand, + shorthandintro, + shortjournal, + shortseries, + shorttitle, + sortkey, + sortname, + sortshorthand, + sorttitle, + sortyear, + timezone, + url, + urlday, + urlendday, + urlendhour, + urlendminute, + urlendmonth, + urlendsecond, + urlendtimezone, + urlendyear, + urlhour, + urlminute, + urlmonth, + urlsecond, + urltimezone, + urlyear, + usera, + userb, + userc, + userd, + usere, + userf, + verba, + verbb, + verbc, + xdata, + xref, + year} + +\DeclareDatamodelEntryfields[set]{ + entryset} + +\DeclareDatamodelEntryfields[article]{ + addendum, + annotator, + author, + commentator, + doi, + editor, + editora, + editorb, + editorc, + editortype, + editoratype, + editorbtype, + editorctype, + eid, + eprint, + eprintclass, + eprinttype, + issn, + issue, + issuetitle, + issuesubtitle, + journalsubtitle, + journaltitle, + language, + note, + number, + origlanguage, + pages, + pubstate, + series, + subtitle, + title, + titleaddon, + translator, + version, + volume} + +\DeclareDatamodelEntryfields[bibnote]{note} + +\DeclareDatamodelEntryfields[book]{ + author, + addendum, + afterword, + annotator, + chapter, + commentator, + doi, + edition, + editor, + editora, + editorb, + editorc, + editortype, + editoratype, + editorbtype, + editorctype, + eprint, + eprintclass, + eprinttype, + foreword, + introduction, + isbn, + language, + location, + maintitle, + maintitleaddon, + mainsubtitle, + note, + number, + origlanguage, + pages, + pagetotal, + part, + publisher, + pubstate, + series, + subtitle, + title, + titleaddon, + translator, + volume, + volumes} + +\DeclareDatamodelEntryfields[mvbook]{ + addendum, + afterword, + annotator, + author, + commentator, + doi, + edition, + editor, + editora, + editorb, + editorc, + editortype, + editoratype, + editorbtype, + editorctype, + eprint, + eprintclass, + eprinttype, + foreword, + introduction, + isbn, + language, + location, + note, + number, + origlanguage, + pagetotal, + publisher, + pubstate, + series, + subtitle, + title, + titleaddon, + translator, + volume, + volumes} + +\DeclareDatamodelEntryfields[inbook,bookinbook,suppbook]{ + addendum, + afterword, + annotator, + author, + booktitle, + bookauthor, + booksubtitle, + booktitleaddon, + chapter, + commentator, + doi, + edition, + editor, + editora, + editorb, + editorc, + editortype, + editoratype, + editorbtype, + editorctype, + eprint, + eprintclass, + eprinttype, + foreword, + introduction, + isbn, + language, + location, + mainsubtitle, + maintitle, + maintitleaddon, + note, + number, + origlanguage, + part, + publisher, + pages, + pubstate, + series, + subtitle, + title, + titleaddon, + translator, + volume, + volumes} + +\DeclareDatamodelEntryfields[booklet]{ + addendum, + author, + chapter, + doi, + editor, + editortype, + eprint, + eprintclass, + eprinttype, + howpublished, + language, + location, + note, + pages, + pagetotal, + pubstate, + subtitle, + title, + titleaddon, + type} + +\DeclareDatamodelEntryfields[collection,reference]{ + addendum, + afterword, + annotator, + chapter, + commentator, + doi, + edition, + editor, + editora, + editorb, + editorc, + editortype, + editoratype, + editorbtype, + editorctype, + eprint, + eprintclass, + eprinttype, + foreword, + introduction, + isbn, + language, + location, + mainsubtitle, + maintitle, + maintitleaddon, + note, + number, + origlanguage, + pages, + pagetotal, + part, + publisher, + pubstate, + series, + subtitle, + title, + titleaddon, + translator, + volume, + volumes} + +\DeclareDatamodelEntryfields[mvcollection,mvreference]{ + addendum, + afterword, + annotator, + author, + commentator, + doi, + edition, + editor, + editora, + editorb, + editorc, + editortype, + editoratype, + editorbtype, + editorctype, + eprint, + eprintclass, + eprinttype, + foreword, + introduction, + isbn, + language, + location, + note, + number, + origlanguage, + publisher, + pubstate, + subtitle, + title, + titleaddon, + translator, + volume, + volumes} + +\DeclareDatamodelEntryfields[incollection,suppcollection,inreference]{ + addendum, + afterword, + annotator, + author, + booksubtitle, + booktitle, + booktitleaddon, + chapter, + commentator, + doi, + edition, + editor, + editora, + editorb, + editorc, + editortype, + editoratype, + editorbtype, + editorctype, + eprint, + eprintclass, + eprinttype, + foreword, + introduction, + isbn, + language, + location, + mainsubtitle, + maintitle, + maintitleaddon, + note, + number, + origlanguage, + pages, + part, + publisher, + pubstate, + series, + subtitle, + title, + titleaddon, + translator, + volume, + volumes} + +\DeclareDatamodelEntryfields[dataset]{ + addendum, + author, + doi, + edition, + editor, + editortype, + eprint, + eprintclass, + eprinttype, + language, + location, + note, + number, + organization, + publisher, + pubstate, + series, + subtitle, + title, + titleaddon, + type, + version} + +\DeclareDatamodelEntryfields[manual]{ + addendum, + author, + chapter, + doi, + edition, + editor, + editortype, + eprint, + eprintclass, + eprinttype, + isbn, + language, + location, + note, + number, + organization, + pages, + pagetotal, + publisher, + pubstate, + series, + subtitle, + title, + titleaddon, + type, + version} + +\DeclareDatamodelEntryfields[misc,software]{ + addendum, + author, + doi, + editor, + editortype, + eprint, + eprintclass, + eprinttype, + howpublished, + language, + location, + note, + organization, + pubstate, + subtitle, + title, + titleaddon, + type, + version} + +\DeclareDatamodelEntryfields[online]{ + addendum, + author, + doi, + editor, + editortype, + eprint, + eprintclass, + eprinttype, + language, + note, + organization, + pubstate, + subtitle, + title, + titleaddon, + version} + +\DeclareDatamodelEntryfields[patent]{ + addendum, + author, + doi, + eprint, + eprintclass, + eprinttype, + holder, + location, + note, + number, + pubstate, + subtitle, + title, + titleaddon, + type, + version} + +\DeclareDatamodelEntryfields[periodical]{ + addendum, + doi, + editor, + editora, + editorb, + editorc, + editortype, + editoratype, + editorbtype, + editorctype, + eprint, + eprintclass, + eprinttype, + issn, + issue, + issuesubtitle, + issuetitle, + language, + note, + number, + pubstate, + season, + series, + subtitle, + title, + volume} + +\DeclareDatamodelEntryfields[mvproceedings]{ + addendum, + doi, + editor, + editortype, + eprint, + eprintclass, + eprinttype, + eventday, + eventendday, + eventendhour, + eventendminute, + eventendmonth, + eventendseason, + eventendsecond, + eventendtimezone, + eventendyear, + eventhour, + eventminute, + eventmonth, + eventseason, + eventsecond, + eventtimezone, + eventyear, + eventtitle, + eventtitleaddon, + isbn, + language, + location, + note, + number, + organization, + pagetotal, + publisher, + pubstate, + series, + subtitle, + title, + titleaddon, + venue, + volumes} + +\DeclareDatamodelEntryfields[proceedings]{ + addendum, + chapter, + doi, + editor, + editortype, + eprint, + eprintclass, + eprinttype, + eventday, + eventendday, + eventendhour, + eventendminute, + eventendmonth, + eventendseason, + eventendsecond, + eventendtimezone, + eventendyear, + eventhour, + eventminute, + eventmonth, + eventseason, + eventsecond, + eventtimezone, + eventyear, + eventtitle, + eventtitleaddon, + isbn, + language, + location, + mainsubtitle, + maintitle, + maintitleaddon, + note, + number, + organization, + pages, + pagetotal, + part, + publisher, + pubstate, + series, + subtitle, + title, + titleaddon, + venue, + volume, + volumes} + +\DeclareDatamodelEntryfields[inproceedings]{ + addendum, + author, + booksubtitle, + booktitle, + booktitleaddon, + chapter, + doi, + editor, + editortype, + eprint, + eprintclass, + eprinttype, + eventday, + eventendday, + eventendhour, + eventendminute, + eventendmonth, + eventendseason, + eventendsecond, + eventendtimezone, + eventendyear, + eventhour, + eventminute, + eventmonth, + eventseason, + eventsecond, + eventtimezone, + eventyear, + eventtitle, + eventtitleaddon, + isbn, + language, + location, + mainsubtitle, + maintitle, + maintitleaddon, + note, + number, + organization, + pages, + part, + publisher, + pubstate, + series, + subtitle, + title, + titleaddon, + venue, + volume, + volumes} + +\DeclareDatamodelEntryfields[report]{ + addendum, + author, + chapter, + doi, + eprint, + eprintclass, + eprinttype, + institution, + isrn, + language, + location, + note, + number, + pages, + pagetotal, + pubstate, + subtitle, + title, + titleaddon, + type, + version} + +\DeclareDatamodelEntryfields[thesis]{ + addendum, + author, + chapter, + doi, + eprint, + eprintclass, + eprinttype, + institution, + language, + location, + note, + pages, + pagetotal, + pubstate, + subtitle, + title, + titleaddon, + type} + +\DeclareDatamodelEntryfields[unpublished]{ + addendum, + author, + eventday, + eventendday, + eventendhour, + eventendminute, + eventendmonth, + eventendseason, + eventendsecond, + eventendtimezone, + eventendyear, + eventhour, + eventminute, + eventmonth, + eventseason, + eventsecond, + eventtimezone, + eventyear, + eventtitle, + eventtitleaddon, + howpublished, + language, + location, + note, + pubstate, + subtitle, + title, + titleaddon, + type, + venue} + +\DeclareDatamodelConstraints[ + article, + book, + inbook, + bookinbook, + suppbook, + booklet, + collection, + incollection, + suppcollection, + manual, + misc, + mvbook, + mvcollection, + online, + patent, + periodical, + suppperiodical, + proceedings, + inproceedings, + reference, + inreference, + report, + set, + thesis, + unpublished]{ + \constraint[type=mandatory]{ + \constraintfieldsxor{ + \constraintfield{date} + \constraintfield{year} + } + } + } + +\DeclareDatamodelConstraints[set]{ + \constraint[type=mandatory]{ + \constraintfield{entryset} + } +} + +\DeclareDatamodelConstraints[article]{ + \constraint[type=mandatory]{ + \constraintfield{author} + \constraintfield{journaltitle} + \constraintfield{title} + } +} + +\DeclareDatamodelConstraints[book,mvbook,mvcollection,mvreference]{ + \constraint[type=mandatory]{ + \constraintfield{author} + \constraintfield{title} + } +} + +\DeclareDatamodelConstraints[inbook,bookinbook,suppbook]{ + \constraint[type=mandatory]{ + \constraintfield{author} + \constraintfield{title} + \constraintfield{booktitle} + } +} + +\DeclareDatamodelConstraints[booklet]{ + \constraint[type=mandatory]{ + \constraintfieldsor{ + \constraintfield{author} + \constraintfield{editor} + } + \constraintfield{title} + } +} + +\DeclareDatamodelConstraints[collection,reference]{ + \constraint[type=mandatory]{ + \constraintfield{editor} + \constraintfield{title} + } +} + +\DeclareDatamodelConstraints[incollection,suppcollection,inreference]{ + \constraint[type=mandatory]{ + \constraintfield{author} + \constraintfield{editor} + \constraintfield{title} + \constraintfield{booktitle} + } +} + +\DeclareDatamodelConstraints[dataset]{ + \constraint[type=mandatory]{ + \constraintfield{title} + } +} + +\DeclareDatamodelConstraints[manual]{ + \constraint[type=mandatory]{ + \constraintfield{title} + } +} + +\DeclareDatamodelConstraints[misc,software]{ + \constraint[type=mandatory]{ + \constraintfield{title} + } +} + +\DeclareDatamodelConstraints[online]{ + \constraint[type=mandatory]{ + \constraintfield{title} + \constraintfieldsor{ + \constraintfield{url} + \constraintfield{doi} + \constraintfield{eprint} + } + } +} + +\DeclareDatamodelConstraints[patent]{ + \constraint[type=mandatory]{ + \constraintfield{author} + \constraintfield{title} + \constraintfield{number} + } +} + +\DeclareDatamodelConstraints[periodical]{ + \constraint[type=mandatory]{ + \constraintfield{editor} + \constraintfield{title} + } +} + +\DeclareDatamodelConstraints[proceedings,mvproceedings]{ + \constraint[type=mandatory]{ + \constraintfield{editor} + \constraintfield{title} + } +} + +\DeclareDatamodelConstraints[inproceedings]{ + \constraint[type=mandatory]{ + \constraintfield{author} + \constraintfield{title} + \constraintfield{booktitle} + } +} + +\DeclareDatamodelConstraints[report]{ + \constraint[type=mandatory]{ + \constraintfield{author} + \constraintfield{title} + \constraintfield{type} + \constraintfield{institution} + } +} + +\DeclareDatamodelConstraints[thesis]{ + \constraint[type=mandatory]{ + \constraintfield{author} + \constraintfield{title} + \constraintfield{type} + \constraintfield{institution} + } +} + +\DeclareDatamodelConstraints[unpublished]{ + \constraint[type=mandatory]{ + \constraintfield{author} + \constraintfield{title} + } +} + +\DeclareDatamodelConstraints{ + \constraint[type=data, datatype=isbn]{ + \constraintfield{isbn} + } + \constraint[type=data, datatype=issn]{ + \constraintfield{issn} + } + \constraint[type=data, datatype=ismn]{ + \constraintfield{ismn} + } + \constraint[type=data, datatype=date]{ + \constraintfield{date} + \constraintfield{eventdate} + \constraintfield{origdate} + \constraintfield{urldate} + } + \constraint[type=data, datatype=pattern, pattern=\regexp{(?:sf|sm|sn|pf|pm|pn|pp)}]{ + \constraintfield{gender} + } +} + diff --git a/macros/latex/contrib/biblatex/latex/blx-mcite.def b/macros/latex/contrib/biblatex/latex/blx-mcite.def new file mode 100644 index 0000000000..b4a8976e50 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/blx-mcite.def @@ -0,0 +1,75 @@ +\ProvidesFile{blx-mcite.def} +[\abx@cptid] + +\newrobustcmd*{\mcite}{\mcitelike\cite} +\newrobustcmd*{\Mcite}{\mcitelike\Cite} +\newrobustcmd*{\mparencite}{\mcitelike\parencite} +\newrobustcmd*{\Mparencite}{\mcitelike\Parencite} +\newrobustcmd*{\mfootcite}{\mcitelike\footcite} +\newrobustcmd*{\mfootcitetext}{\mcitelike\footcitetext} +\newrobustcmd*{\mtextcite}{\mcitelike\textcite} +\newrobustcmd*{\Mtextcite}{\mcitelike\Textcite} +\newrobustcmd*{\msupercite}{\mcitelike\supercite} + +% \mcite{key1,setA,*keyA1,*keyA2,*keyA3,key2,setB,*keyB1,*keyB2,*keyB3} +% => \mcitelike\cite{key1,setA,*keyA1,*keyA2,*keyA3,key2,setB,*keyB1,*keyB2,*keyB3} +% => \defbibentryset{setA}{keyA1,keyA2,keyA3} +% \defbibentryset{setB}{keyB1,keyB2,keyB3} +% \cite{key1,setA,key2,setB} + +\newrobustcmd*{\mcitelike}[1]{% + \@ifstar + {\blx@citeargs{\blx@mclike{#1*}}} + {\blx@citeargs{\blx@mclike{#1}}}} + +\long\def\blx@mclike#1#2#3#4{% + \begingroup + \let\blx@mclike@tempa\@empty + \let\blx@mclike@tempb\@empty + \let\blx@mclike@tempc\@empty + \blx@xsanitizeafter\blx@mclike@i{#4}% + \edef\blx@mclike@tempa{\endgroup\unexpanded{#1[#2][#3]}{\blx@mclike@tempa}}% + \blx@mclike@tempa} + +\def\blx@mclike@i#1{% + \forcsvlist\blx@mclike@ii{#1}% + \blx@mclike@iv} + +\def\blx@mclike@ii#1{\blx@mclike@iii#1&} + +\def\blx@mclike@iii#1#2&{% + \if*#1% + \blx@mclike@tail{#2}% + \else + \blx@mclike@head{#1#2}% + \fi} + +\def\blx@mclike@iv{% + \ifx\blx@mclike@tempb\@empty + \else + \ifx\blx@mclike@tempc\@empty + \else + \defbibentryset{\blx@mclike@tempb}{\blx@mclike@tempc}% + \let\blx@mclike@tempc\@empty + \fi + \nocite{\blx@mclike@tempb}% preserve citation order for sorting=none + \let\blx@mclike@tempb\@empty + \fi} + +\def\blx@mclike@head#1{% + \blx@mclike@iv + \edef\blx@mclike@tempa{% + \ifx\blx@mclike@tempa\@empty + \else + \blx@mclike@tempa,% + \fi#1}% + \def\blx@mclike@tempb{#1}} + +\def\blx@mclike@tail#1{% + \edef\blx@mclike@tempc{% + \ifx\blx@mclike@tempc\@empty + \else + \blx@mclike@tempc,% + \fi#1}} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/blx-natbib.def b/macros/latex/contrib/biblatex/latex/blx-natbib.def new file mode 100644 index 0000000000..4817f72e16 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/blx-natbib.def @@ -0,0 +1,84 @@ +\ProvidesFile{blx-natbib.def} +[\abx@cptid] + +\DeclareDelimFormat{nameyeardelim}{\addcomma\space} + +\newrobustcmd*{\citet}{% + \@ifstar + {\AtNextCite{\AtEachCitekey{\defcounter{maxnames}{999}}}% + \textcite} + {\textcite}} + +\newrobustcmd*{\citep}{% + \@ifstar + {\AtNextCite{\AtEachCitekey{\defcounter{maxnames}{999}}}% + \parencite} + {\parencite}} + +\newrobustcmd*{\citealt}{% + \AtNextCite{\DeclareDelimFormat{nameyeardelim}{\addspace}}% + \@ifstar + {\AtNextCite{\AtEachCitekey{\defcounter{maxnames}{999}}}% + \cite} + {\cite}} + +\newrobustcmd*{\citealp}{% + \@ifstar + {\AtNextCite{\AtEachCitekey{\defcounter{maxnames}{999}}}% + \cite} + {\cite}} + +\DeclareCiteCommand*{\citeauthor} + {\defcounter{maxnames}{999}% + \boolfalse{citetracker}% + \boolfalse{pagetracker}% + \usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \printnames{labelname}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\citeyearpar}[\mkbibparens] + {\boolfalse{citetracker}% + \boolfalse{pagetracker}% + \usebibmacro{prenote}} + {\printfield{year}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\newrobustcmd*{\Citet}{\bibsentence\citet} +\newrobustcmd*{\Citep}{\bibsentence\citep} +\newrobustcmd*{\Citealt}{\bibsentence\citealt} +\newrobustcmd*{\Citealp}{\bibsentence\citealp} +\newrobustcmd*{\citefullauthor}{\citeauthor*} +\newrobustcmd*{\Citefullauthor}{\bibsentence\citeauthor*} +\newrobustcmd*{\citetext}{\parentext} + +\newrobustcmd*{\defcitealias}[2]{% + \ifcsdef{abx@alias@\detokenize{#1}} + {\PackageWarning{biblatex}{% + Overwriting alias for entry '\detokenize{#1}'}} + {}% + \csgdef{abx@alias@\detokenize{#1}}{#2}} + +\newcommand*{\@citealias}[1]{% + \ifcsdef{abx@alias@#1} + {\csuse{abx@alias@#1}} + {\PackageWarning{biblatex}{No alias for entry '#1'}% + \textbf{#1}}} + +\DeclareCiteCommand{\citetalias} + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \@citealias{\thefield{entrykey}}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\citepalias}[\mkbibparens] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \@citealias{\thefield{entrykey}}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/blx-unicode.def b/macros/latex/contrib/biblatex/latex/blx-unicode.def new file mode 100644 index 0000000000..79e003c190 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/blx-unicode.def @@ -0,0 +1,115 @@ +% This test should not be needed since biblatex.sty already checks +% if LuaTeX or XeTeX is used. +% Currently Unicode-aware engines are only XeTeX and LuaTeX, +% both of which define \Umathcode. +\ifx\Umathcode\undefined + \expandafter\endinput +\fi + +\begingroup +\openin\blx@bcfin=UnicodeData.txt % +\ifeof\blx@bcfin +\else + \let\blx@setazcodes\@empty + \def\Lu{Lu} + \def\storedpar{\par} + \def\blx@tempa#1;#2;#3;#4\relax{% + \def\temp{#3}% + \ifx\temp\Lu + \xdef\blx@setazcodes{% + \blx@setazcodes + \sfcode"#1=\@m + } + \fi + } + \loop\unless\ifeof\blx@bcfin + \read\blx@bcfin to \blx@tempb + \unless\ifx\blx@tempb\storedpar + \expandafter\blx@tempa\blx@tempb\relax + \fi + \repeat +\fi +\closein\blx@bcfin +\endgroup + +\appto\blx@setfrcodes{% + % … should probably have dot spacefactor, but pdfLaTeX + % makes it a period, so we have this here for consistency + \sfcode`\…=\blx@sf@period +} + +\DeclarePrefChars*{’} +\DeclareRangeChars*{–—} + +\def\blx@normrange@range#1\bibrangedash#2\bibrangedash#3&{% + \ifblank{#3} + {\blx@normrange@endash#1––&} + {\ifblank{#2} + {\begingroup + \edef\blx@tempc{\endgroup + \blx@range@out@value{% + \expandonce\blx@range@out@item@process{\unexpanded{#1}}% + \noexpand\bibrangedash}}% + \blx@tempc} + {\ifblank{#1} + {\begingroup + \edef\blx@tempc{\endgroup + \blx@range@out@value{% + \noexpand\bibrangedash + \expandonce\blx@range@out@item@process{% + \unexpanded{#2}}}}% + \blx@tempc} + {\blx@range@process{#1}{#2}}}}} + +\def\blx@normrange@endash#1–#2–#3&{% + \ifblank{#3} + {\blx@normrange@hyphen#1--&} + {\ifblank{#2} + {\begingroup + \edef\blx@tempc{\endgroup + \blx@range@out@value{% + \expandonce\blx@range@out@item@process{\unexpanded{#1}}% + \noexpand\bibrangedash}}% + \blx@tempc} + {\ifblank{#1} + {\begingroup + \edef\blx@tempc{\endgroup + \blx@range@out@value{% + \noexpand\bibrangedash + \expandonce\blx@range@out@item@process{\unexpanded{#2}}}}% + \blx@tempc} + {\blx@range@process{#1}{#2}}}}} + +\def\blx@firstpage@range#1\bibrangedash#2\bibrangedash#3&{% + \ifblank{#3} + {\blx@firstpage@endash#1––&} + {\ifblank{#1} + {\begingroup + \edef\blx@tempc{\endgroup + \blx@range@out@value{% + \noexpand\bibrangedash + \expandonce\blx@range@out@item@process{\unexpanded{#2}}}}% + \blx@tempc} + {\begingroup + \edef\blx@tempc{\endgroup + \blx@range@out@value{% + \expandonce\blx@range@out@item@process{\unexpanded{#1}}}}% + \blx@tempc}}} + +\def\blx@firstpage@endash#1–#2–#3&{% + \ifblank{#3} + {\blx@firstpage@hyphen#1--&} + {\ifblank{#1} + {\begingroup + \edef\blx@tempc{\endgroup + \blx@range@out@value{% + \noexpand\bibrangedash + \expandonce\blx@range@out@item@process{\unexpanded{#2}}}}% + \blx@tempc} + {\begingroup + \edef\blx@tempc{\endgroup + \blx@range@out@value{% + \expandonce\blx@range@out@item@process{\unexpanded{#1}}}}% + \blx@tempc}}} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/cbx/alphabetic-verb.cbx b/macros/latex/contrib/biblatex/latex/cbx/alphabetic-verb.cbx new file mode 100644 index 0000000000..efcc901a71 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/cbx/alphabetic-verb.cbx @@ -0,0 +1,88 @@ +\ProvidesFile{alphabetic-verb.cbx} +[\abx@cbxid] + +\ExecuteBibliographyOptions{labelalpha,autocite=inline} + +\renewcommand*{\iffinalcitedelim}{\iflastcitekey} + +\providebool{bbx:subentry} + +\DeclareFieldFormat{entrysetcount}{\mkbibparens{\mknumalph{#1}}} + +\newbibmacro*{cite}{% + \printtext[bibhyperref]{% + \printfield{labelprefix}% + \printfield{labelalpha}% + \printfield{extraalpha}% + \ifbool{bbx:subentry} + {\printfield{entrysetcount}} + {}}} + +\newbibmacro*{textcite}{% + \ifnameundef{labelname} + {\printfield[citetitle]{labeltitle}} + {\printnames{labelname}}% + \printdelim{namelabeldelim}\bibopenbracket + \ifnumequal{\value{citecount}}{1} + {\usebibmacro{prenote}} + {}% + \usebibmacro{cite}} + +\DeclareCiteCommand{\cite} + {\bibopenbracket + \usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \ifnumgreater{\value{citecount}}{1} + {\bibopenbracket} + {}% + \usebibmacro{cite}} + {\bibclosebracket\multicitedelim} + {\usebibmacro{postnote}% + \bibclosebracket} + +\DeclareCiteCommand{\parencite}[\mkbibbrackets] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\footcite}[\mkbibfootnote] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibbrackets\mkbibfootnote] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\textcite} + {} + {\usebibmacro{citeindex}% + \iffirstcitekey + {\setcounter{textcitetotal}{1}} + {\stepcounter{textcitetotal}% + \textcitedelim}% + \usebibmacro{textcite}} + {\bibclosebracket} + {\usebibmacro{postnote}% + \bibclosebracket} + +\DeclareMultiCiteCommand{\parencites}[\mkbibbrackets]{\parencite}{\multicitedelim} +\DeclareMultiCiteCommand{\smartcites}[\iffootnote\mkbibbrackets\mkbibfootnote] + {\smartcite}{\multicitedelim} +\DeclareMultiCiteCommand{\textcites}{\textcite}{} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/cbx/alphabetic.cbx b/macros/latex/contrib/biblatex/latex/cbx/alphabetic.cbx new file mode 100644 index 0000000000..e6f4d7d425 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/cbx/alphabetic.cbx @@ -0,0 +1,145 @@ +\ProvidesFile{alphabetic.cbx} +[\abx@cbxid] + +\ExecuteBibliographyOptions{labelalpha,autocite=inline} + +\renewcommand*{\iffinalcitedelim}{% + \ifnumequal{\value{textcitecount}}{\value{textcitetotal}-1}} + +\providebool{bbx:subentry} +\newbool{cbx:parens} + +\DeclareFieldFormat{entrysetcount}{\mkbibparens{\mknumalph{#1}}} + +\newbibmacro*{cite}{% + \printtext[bibhyperref]{% + \printfield{labelprefix}% + \printfield{labelalpha}% + \printfield{extraalpha}% + \ifbool{bbx:subentry} + {\printfield{entrysetcount}} + {}}} + +\newbibmacro*{textcite}{% + \iffieldequals{namehash}{\cbx@lasthash} + {\setunit{\multicitedelim}} + {\ifnameundef{labelname} + {\printfield[citetitle]{labeltitle}} + {\printnames{labelname}}% + \setunit{% + \global\booltrue{cbx:parens}% + \printdelim{namelabeldelim}\bibopenbracket}% + \stepcounter{textcitecount}% + \savefield{namehash}{\cbx@lasthash}}% + \ifnumequal{\value{citecount}}{1} + {\usebibmacro{prenote}} + {}% + \usebibmacro{cite}% + \setunit{% + \ifbool{cbx:parens} + {\bibclosebracket\global\boolfalse{cbx:parens}} + {}% + \textcitedelim}} + +\newbibmacro*{textcite:init}{% + \ifnumless{\value{multicitecount}}{2} + {\global\boolfalse{cbx:parens}% + \global\undef\cbx@lasthash} + {\global\undef\cbx@lasthash}} + +\newbibmacro*{textcite:postnote}{% + \usebibmacro{postnote}% + \ifthenelse{\value{multicitecount}=\value{multicitetotal}} + {\setunit{}% + \printtext{% + \ifbool{cbx:parens} + {\bibclosebracket\global\boolfalse{cbx:parens}} + {}}} + {\setunit{% + \ifbool{cbx:parens} + {\bibclosebracket\global\boolfalse{cbx:parens}} + {}% + \textcitedelim}}} + +\DeclareCiteCommand{\cite}[\mkbibbrackets] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\parencite}[\mkbibbrackets] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\footcite}[\mkbibfootnote] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibbrackets\mkbibfootnote] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\cbx@textcite} + {\usebibmacro{textcite:init}} + {\usebibmacro{citeindex}% + \usebibmacro{textcite}} + {} + {\usebibmacro{textcite:postnote}} + +\DeclareCiteCommand{\textcite}[\cbx@textcite@init\cbx@textcite] + {\gdef\cbx@savedkeys{}% + \citetrackerfalse% + \pagetrackerfalse% + \DeferNextCitekeyHook% + \usebibmacro{textcite:init}} + {\ifthenelse{\iffirstcitekey\AND\value{multicitetotal}>0} + {\protected@xappto\cbx@savedcites{()(\thefield{multipostnote})}% + \global\clearfield{multipostnote}} + {}% + \xappto\cbx@savedkeys{\thefield{entrykey},}% + \iffieldequals{namehash}{\cbx@lasthash} + {} + {\stepcounter{textcitetotal}% + \savefield{namehash}{\cbx@lasthash}}} + {} + {\protected@xappto\cbx@savedcites{% + [\thefield{prenote}][\thefield{postnote}]{\cbx@savedkeys}}} + +% textcite has nested \DeclareCiteCommand definitions for textcite and we want to use +% the normal textcite context +\DeclareDelimcontextAlias{cbx@textcite}{textcite} + +\newrobustcmd{\cbx@textcite@init}[2]{% + \setcounter{textcitetotal}{0}% + \setcounter{textcitecount}{0}% + \def\cbx@savedcites{#1}#2\cbx@savedcites\empty} + +\DeclareMultiCiteCommand{\cbx@textcites}{\cbx@textcite}{} +\DeclareMultiCiteCommand{\textcites}[\cbx@textcites@init\cbx@textcites]{\textcite}{} + +\let\cbx@textcites@init\cbx@textcite@init +\pretocmd{\cbx@textcites@init}{\UseNextMultiCiteHook}{}{} + +\DeclareMultiCiteCommand{\cites}[\mkbibbrackets]{\cite}{\multicitedelim} +\DeclareMultiCiteCommand{\parencites}[\mkbibbrackets]{\parencite}{\multicitedelim} +\DeclareMultiCiteCommand{\smartcites}[\iffootnote\mkbibbrackets\mkbibfootnote] + {\smartcite}{\multicitedelim} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/cbx/authortitle-comp.cbx b/macros/latex/contrib/biblatex/latex/cbx/authortitle-comp.cbx new file mode 100644 index 0000000000..f27955b113 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/cbx/authortitle-comp.cbx @@ -0,0 +1,195 @@ +\ProvidesFile{authortitle-comp.cbx} +[\abx@cbxid] + +\ExecuteBibliographyOptions{uniquename,uniquelist,sortcites,autocite=footnote} + +\renewcommand*{\iffinalcitedelim}{% + \ifnameundef{labelname} + {\ifnumequal{\value{textcitecount}}{\value{textcitetotal}}} + {\ifnumequal{\value{textcitecount}}{\value{textcitetotal}-1}}} + +\newbool{cbx:parens} + +\newbibmacro*{cite:init}{% + \ifnumless{\value{multicitecount}}{2} + {\global\boolfalse{cbx:parens}% + \global\undef\cbx@lasthash} + {\iffieldundef{prenote} + {} + {\global\undef\cbx@lasthash}}} + +\newbibmacro*{cite:reinit}{% + \global\undef\cbx@lasthash} + +\newbibmacro*{cite}{% + \iffieldundef{shorthand} + {\iffieldequals{namehash}{\cbx@lasthash} + {\setunit{\compcitedelim}} + {\printnames{labelname}% + \setunit*{\printdelim{nametitledelim}}% + \savefield{namehash}{\cbx@lasthash}}% + \usebibmacro{cite:title}} + {\usebibmacro{cite:shorthand}% + \usebibmacro{cite:reinit}}% + \setunit{\multicitedelim}} + +\newbibmacro*{citetitle}{% + \iffieldundef{shorthand} + {\usebibmacro{cite:title}} + {\usebibmacro{cite:shorthand}}% + \setunit{\multicitedelim}} + +\newbibmacro*{textcite}{% + \iffieldequals{namehash}{\cbx@lasthash} + {\setunit{\compcitedelim}} + {\printnames{labelname}% + \setunit*{% + \global\booltrue{cbx:parens}% + \printdelim{nametitledelim}\bibopenparen}% + \stepcounter{textcitecount}% + \savefield{namehash}{\cbx@lasthash}}% + \ifnumequal{\value{citecount}}{1} + {\usebibmacro{prenote}} + {}% + \iffieldundef{shorthand} + {\usebibmacro{cite:title}}% + {\usebibmacro{cite:shorthand}}% + \setunit{% + \ifbool{cbx:parens} + {\bibcloseparen\global\boolfalse{cbx:parens}} + {}% + \textcitedelim}} + +\newbibmacro*{cite:title}{% + \printtext[bibhyperref]{\printfield[citetitle]{labeltitle}}} + +\newbibmacro*{cite:shorthand}{% + \printtext[bibhyperref]{\printfield{shorthand}}} + +\newbibmacro*{textcite:postnote}{% + \ifnameundef{labelname} + {\setunit{% + \global\booltrue{cbx:parens}% + \printdelim{extpostnotedelim}\bibopenparen}} + {\setunit{\printdelim{postnotedelim}}}% + \printfield{postnote}% + \ifthenelse{\value{multicitecount}=\value{multicitetotal}} + {\setunit{}% + \printtext{% + \ifbool{cbx:parens} + {\bibcloseparen\global\boolfalse{cbx:parens}} + {}}} + {\setunit{% + \ifbool{cbx:parens} + {\bibcloseparen\global\boolfalse{cbx:parens}} + {}% + \textcitedelim}}} + +\DeclareCiteCommand{\cite} + {\usebibmacro{cite:init}% + \usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {} + {\usebibmacro{postnote}} + +\DeclareCiteCommand*{\cite} + {\usebibmacro{cite:init}% + \usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{citetitle}} + {} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\parencite}[\mkbibparens] + {\usebibmacro{cite:init}% + \usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {} + {\usebibmacro{postnote}} + +\DeclareCiteCommand*{\parencite}[\mkbibparens] + {\usebibmacro{cite:init}% + \usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{citetitle}} + {} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\footcite}[\mkbibfootnote] + {\usebibmacro{cite:init}% + \usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext] + {\usebibmacro{cite:init}% + \usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibparens\mkbibfootnote] + {\usebibmacro{cite:init}% + \usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\cbx@textcite} + {\usebibmacro{cite:init}} + {\usebibmacro{citeindex}% + \usebibmacro{textcite}} + {} + {\usebibmacro{textcite:postnote}} + +\DeclareCiteCommand{\textcite}[\cbx@textcite@init\cbx@textcite] + {\gdef\cbx@savedkeys{}% + \citetrackerfalse% + \pagetrackerfalse% + \DeferNextCitekeyHook% + \usebibmacro{cite:init}} + {\ifthenelse{\iffirstcitekey\AND\value{multicitetotal}>0} + {\protected@xappto\cbx@savedcites{()(\thefield{multipostnote})}% + \global\clearfield{multipostnote}} + {}% + \xappto\cbx@savedkeys{\thefield{entrykey},}% + \iffieldequals{namehash}{\cbx@lasthash} + {} + {\stepcounter{textcitetotal}% + \savefield{namehash}{\cbx@lasthash}}} + {} + {\protected@xappto\cbx@savedcites{% + [\thefield{prenote}][\thefield{postnote}]{\cbx@savedkeys}}} + +% textcite has nested \DeclareCiteCommand definitions for textcite and we want to use +% the normal textcite context +\DeclareDelimcontextAlias{cbx@textcite}{textcite} + +\newrobustcmd{\cbx@textcite@init}[2]{% + \setcounter{textcitetotal}{0}% + \setcounter{textcitecount}{0}% + \def\cbx@savedcites{#1}#2\cbx@savedcites\empty} + +\DeclareMultiCiteCommand{\cbx@textcites}{\cbx@textcite}{} +\DeclareMultiCiteCommand{\textcites}[\cbx@textcites@init\cbx@textcites]{\textcite}{} + +\let\cbx@textcites@init\cbx@textcite@init +\pretocmd{\cbx@textcites@init}{\UseNextMultiCiteHook}{}{} + +\DeclareMultiCiteCommand{\cites}{\cite}{\setunit{\multicitedelim}} +\DeclareMultiCiteCommand{\parencites}[\mkbibparens] + {\parencite}{\setunit{\multicitedelim}} +\DeclareMultiCiteCommand{\footcites}[\mkbibfootnote] + {\footcite}{\setunit{\multicitedelim}} +\DeclareMultiCiteCommand{\footcitetexts}[\mkbibfootnotetext] + {\footcitetext}{\setunit{\multicitedelim}} +\DeclareMultiCiteCommand{\smartcites}[\iffootnote\mkbibparens\mkbibfootnote] + {\smartcite}{\setunit{\multicitedelim}} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/cbx/authortitle-ibid.cbx b/macros/latex/contrib/biblatex/latex/cbx/authortitle-ibid.cbx new file mode 100644 index 0000000000..4ccfc33cab --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/cbx/authortitle-ibid.cbx @@ -0,0 +1,143 @@ +\ProvidesFile{authortitle-ibid.cbx} +[\abx@cbxid] + +\ExecuteBibliographyOptions{uniquename,uniquelist,ibidtracker=constrict, + pagetracker,autocite=footnote} + +\providecommand*{\mkibid}[1]{#1} +\renewcommand*{\iffinalcitedelim}{\iflastcitekey} + +\newbool{cbx:parens} +\newbool{cbx:loccit} + +\DeclareBibliographyOption[boolean]{ibidpage}[true]{% + \ifstrequal{#1}{true} + {\ExecuteBibliographyOptions{loccittracker=constrict}} + {\ExecuteBibliographyOptions{loccittracker=false}}} + +\newbibmacro*{cite}{% + \global\boolfalse{cbx:loccit}% + \iffieldundef{shorthand} + {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage} + {\usebibmacro{cite:ibid}} + {\printnames{labelname}% + \setunit*{\printdelim{nametitledelim}}% + \usebibmacro{cite:title}}}% + {\usebibmacro{cite:shorthand}}} + +\newbibmacro*{citetitle}{% + \global\boolfalse{cbx:loccit}% + \iffieldundef{shorthand} + {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage} + {\usebibmacro{cite:ibid}} + {\usebibmacro{cite:title}}}% + {\usebibmacro{cite:shorthand}}} + +\newbibmacro*{textcite}{% + \global\boolfalse{cbx:loccit}% + \printnames{labelname}% + \setunit*{% + \global\booltrue{cbx:parens}% + \printdelim{nametitledelim}\bibopenparen}% + \ifnumequal{\value{citecount}}{1} + {\usebibmacro{prenote}} + {}% + \iffieldundef{shorthand} + {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage} + {\usebibmacro{cite:ibid}} + {\usebibmacro{cite:title}}}% + {\usebibmacro{cite:shorthand}}} + +\newbibmacro*{cite:title}{% + \printtext[bibhyperref]{% + \printfield[citetitle]{labeltitle}}} + +\newbibmacro*{cite:shorthand}{% + \printtext[bibhyperref]{\printfield{shorthand}}} + +\newbibmacro*{cite:ibid}{% + \printtext[bibhyperref]{\bibstring[\mkibid]{ibidem}}% + \ifloccit + {\global\booltrue{cbx:loccit}} + {}} + +\newbibmacro*{cite:postnote}{% + \ifbool{cbx:loccit} + {} + {\usebibmacro{postnote}}} + +\newbibmacro*{textcite:postnote}{% + \ifthenelse{\iffieldundef{postnote}\OR\boolean{cbx:loccit}} + {\ifbool{cbx:parens} + {\bibcloseparen} + {}} + {\ifbool{cbx:parens} + {\printdelim{postnotedelim}} + {\printdelim{extpostnotedelim}\bibopenparen}% + \printfield{postnote}\bibcloseparen}} + +\DeclareCiteCommand{\cite} + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand*{\cite} + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{citetitle}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\parencite}[\mkbibparens] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand*{\parencite}[\mkbibparens] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{citetitle}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\footcite}[\mkbibfootnote] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibparens\mkbibfootnote] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\textcite} + {\boolfalse{cbx:parens}} + {\usebibmacro{citeindex}% + \iffirstcitekey + {\setcounter{textcitetotal}{1}} + {\stepcounter{textcitetotal}% + \textcitedelim}% + \usebibmacro{textcite}} + {\ifbool{cbx:parens} + {\bibcloseparen\boolfalse{cbx:parens}} + {}} + {\usebibmacro{textcite:postnote}} + +\DeclareMultiCiteCommand{\textcites}{\textcite}{} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/cbx/authortitle-icomp.cbx b/macros/latex/contrib/biblatex/latex/cbx/authortitle-icomp.cbx new file mode 100644 index 0000000000..8109110103 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/cbx/authortitle-icomp.cbx @@ -0,0 +1,224 @@ +\ProvidesFile{authortitle-icomp.cbx} +[\abx@cbxid] + +\ExecuteBibliographyOptions{uniquename,uniquelist,ibidtracker=constrict, + pagetracker,sortcites,autocite=footnote} + +\providecommand*{\mkibid}[1]{#1} +\renewcommand*{\iffinalcitedelim}{% + \ifnameundef{labelname} + {\ifnumequal{\value{textcitecount}}{\value{textcitetotal}}} + {\ifnumequal{\value{textcitecount}}{\value{textcitetotal}-1}}} + +\newbool{cbx:parens} +\newbool{cbx:loccit} + +\DeclareBibliographyOption[boolean]{ibidpage}[true]{% + \ifstrequal{#1}{true} + {\ExecuteBibliographyOptions{loccittracker=constrict}} + {\ExecuteBibliographyOptions{loccittracker=false}}} + +\newbibmacro*{cite:init}{% + \global\boolfalse{cbx:loccit}% + \ifnumless{\value{multicitecount}}{2} + {\global\boolfalse{cbx:parens}% + \global\undef\cbx@lasthash} + {\iffieldundef{prenote} + {} + {\global\undef\cbx@lasthash}}} + +\newbibmacro*{cite:reinit}{% + \global\undef\cbx@lasthash} + +\newbibmacro*{cite}{% + \iffieldundef{shorthand} + {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage} + {\usebibmacro{cite:ibid}} + {\iffieldequals{namehash}{\cbx@lasthash} + {\setunit{\compcitedelim}} + {\printnames{labelname}% + \setunit*{\printdelim{nametitledelim}}% + \savefield{namehash}{\cbx@lasthash}}% + \usebibmacro{cite:title}}}% + {\usebibmacro{cite:shorthand}% + \usebibmacro{cite:reinit}}% + \setunit{\multicitedelim}} + +\newbibmacro*{citetitle}{% + \iffieldundef{shorthand} + {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage} + {\usebibmacro{cite:ibid}} + {\usebibmacro{cite:title}}}% + {\usebibmacro{cite:shorthand}}% + \setunit{\multicitedelim}} + +\newbibmacro*{textcite}{% + \iffieldequals{namehash}{\cbx@lasthash} + {\setunit{\compcitedelim}} + {\printnames{labelname}% + \setunit*{% + \global\booltrue{cbx:parens}% + \printdelim{nametitledelim}\bibopenparen}% + \stepcounter{textcitecount}% + \savefield{namehash}{\cbx@lasthash}}% + \ifnumequal{\value{citecount}}{1} + {\usebibmacro{prenote}} + {}% + \iffieldundef{shorthand} + {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage} + {\usebibmacro{cite:ibid}} + {\usebibmacro{cite:title}}}% + {\usebibmacro{cite:shorthand}}% + \setunit{% + \ifbool{cbx:parens} + {\bibcloseparen\global\boolfalse{cbx:parens}} + {}% + \textcitedelim}} + +\newbibmacro*{cite:title}{% + \printtext[bibhyperref]{\printfield[citetitle]{labeltitle}}} + +\newbibmacro*{cite:shorthand}{% + \printtext[bibhyperref]{\printfield{shorthand}}} + +\newbibmacro*{cite:ibid}{% + \printtext[bibhyperref]{\bibstring[\mkibid]{ibidem}}% + \ifloccit + {\global\booltrue{cbx:loccit}} + {}} + +\newbibmacro*{cite:postnote}{% + \ifbool{cbx:loccit} + {} + {\setunit{\printdelim{postnotedelim}}% + \printfield{postnote}}} + +\newbibmacro*{textcite:postnote}{% + \ifbool{cbx:loccit} + {} + {\ifnameundef{labelname} + {\setunit{% + \global\booltrue{cbx:parens}% + \printdelim{extpostnotedelim}\bibopenparen}} + {\setunit{\printdelim{postnotedelim}}}% + \printfield{postnote}}% + \ifthenelse{\value{multicitecount}=\value{multicitetotal}} + {\setunit{}% + \printtext{% + \ifbool{cbx:parens} + {\bibcloseparen\global\boolfalse{cbx:parens}} + {}}} + {\setunit{% + \ifbool{cbx:parens} + {\bibcloseparen\global\boolfalse{cbx:parens}} + {}% + \textcitedelim}}} + +\DeclareCiteCommand{\cite} + {\usebibmacro{cite:init}% + \usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand*{\cite} + {\usebibmacro{cite:init}% + \usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{citetitle}} + {} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\parencite}[\mkbibparens] + {\usebibmacro{cite:init}% + \usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand*{\parencite}[\mkbibparens] + {\usebibmacro{cite:init}% + \usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{citetitle}} + {} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\footcite}[\mkbibfootnote] + {\usebibmacro{cite:init}% + \usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext] + {\usebibmacro{cite:init}% + \usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibparens\mkbibfootnote] + {\usebibmacro{cite:init}% + \usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\cbx@textcite} + {\usebibmacro{cite:init}} + {\usebibmacro{citeindex}% + \usebibmacro{textcite}} + {} + {\usebibmacro{textcite:postnote}} + +\DeclareCiteCommand{\textcite}[\cbx@textcite@init\cbx@textcite] + {\gdef\cbx@savedkeys{}% + \citetrackerfalse% + \pagetrackerfalse% + \DeferNextCitekeyHook% + \usebibmacro{cite:init}} + {\ifthenelse{\iffirstcitekey\AND\value{multicitetotal}>0} + {\protected@xappto\cbx@savedcites{()(\thefield{multipostnote})}% + \global\clearfield{multipostnote}} + {}% + \xappto\cbx@savedkeys{\thefield{entrykey},}% + \iffieldequals{namehash}{\cbx@lasthash} + {} + {\stepcounter{textcitetotal}% + \savefield{namehash}{\cbx@lasthash}}} + {} + {\protected@xappto\cbx@savedcites{% + [\thefield{prenote}][\thefield{postnote}]{\cbx@savedkeys}}} + +% textcite has nested \DeclareCiteCommand definitions for textcite and we want to use +% the normal textcite context +\DeclareDelimcontextAlias{cbx@textcite}{textcite} + +\newrobustcmd{\cbx@textcite@init}[2]{% + \setcounter{textcitetotal}{0}% + \setcounter{textcitecount}{0}% + \def\cbx@savedcites{#1}#2\cbx@savedcites\empty} + +\DeclareMultiCiteCommand{\cbx@textcites}{\cbx@textcite}{} +\DeclareMultiCiteCommand{\textcites}[\cbx@textcites@init\cbx@textcites]{\textcite}{} + +\let\cbx@textcites@init\cbx@textcite@init +\pretocmd{\cbx@textcites@init}{\UseNextMultiCiteHook}{}{} + +\DeclareMultiCiteCommand{\cites}{\cite}{\setunit{\multicitedelim}} +\DeclareMultiCiteCommand{\parencites}[\mkbibparens] + {\parencite}{\setunit{\multicitedelim}} +\DeclareMultiCiteCommand{\footcites}[\mkbibfootnote] + {\footcite}{\setunit{\multicitedelim}} +\DeclareMultiCiteCommand{\footcitetexts}[\mkbibfootnotetext] + {\footcitetext}{\setunit{\multicitedelim}} +\DeclareMultiCiteCommand{\smartcites}[\iffootnote\mkbibparens\mkbibfootnote] + {\smartcite}{\setunit{\multicitedelim}} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/cbx/authortitle-tcomp.cbx b/macros/latex/contrib/biblatex/latex/cbx/authortitle-tcomp.cbx new file mode 100644 index 0000000000..33ef145614 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/cbx/authortitle-tcomp.cbx @@ -0,0 +1,90 @@ +\ProvidesFile{authortitle-tcomp.cbx} +[\abx@cbxid] + +\RequireCitationStyle{authortitle-comp} +\ExecuteBibliographyOptions{singletitle,uniquename,uniquelist,autocite=inline} + +\renewcommand*{\iffinalcitedelim}{% + \ifnumequal{\value{textcitecount}}{\value{textcitetotal}-1}} + +\renewbibmacro*{cite}{% + \iffieldundef{shorthand} + {\iffieldequals{namehash}{\cbx@lasthash} + {\setunit{\compcitedelim}% + \usebibmacro{cite:title}} + {\ifnameundef{labelname} + {\usebibmacro{cite:title}} + {\ifsingletitle + {\printtext[bibhyperref]{\printnames{labelname}}} + {\printnames{labelname}% + \setunit{\printdelim{nametitledelim}}% + \usebibmacro{cite:title}}}% + \savefield{namehash}{\cbx@lasthash}}} + {\usebibmacro{cite:shorthand}% + \usebibmacro{cite:reinit}}% + \setunit{\multicitedelim}} + +\renewbibmacro*{citetitle}{% + \iffieldundef{shorthand} + {\iffieldequals{namehash}{\cbx@lasthash} + {\setunit{\compcitedelim}} + {\savefield{namehash}{\cbx@lasthash}}% + \usebibmacro{cite:title}} + {\usebibmacro{cite:shorthand}% + \usebibmacro{cite:reinit}}% + \setunit{\multicitedelim}} + +\renewbibmacro*{textcite}{% + \iffieldequals{namehash}{\cbx@lasthash} + {\setunit{\compcitedelim}% + \iffieldundef{shorthand} + {\usebibmacro{cite:title}}% + {\usebibmacro{cite:shorthand}}} + {\ifnameundef{labelname} + {\ifnumequal{\value{citecount}}{1} + {\usebibmacro{prenote}} + {}% + \iffieldundef{shorthand} + {\usebibmacro{cite:title}}% + {\usebibmacro{cite:shorthand}}} + {\ifthenelse{\ifsingletitle\AND + \(\iffieldundef{prenote}\OR\value{citecount}>1\)} + {\printtext[bibhyperref]{\printnames{labelname}}} + {\printnames{labelname} + \setunit{% + \global\booltrue{cbx:parens}% + \printdelim{nametitledelim}\bibopenparen}% + \ifnumequal{\value{citecount}}{1} + {\usebibmacro{prenote}} + {}% + \iffieldundef{shorthand} + {\usebibmacro{cite:title}}% + {\usebibmacro{cite:shorthand}}}}% + \stepcounter{textcitecount}% + \savefield{namehash}{\cbx@lasthash}}% + \setunit{% + \ifbool{cbx:parens} + {\bibcloseparen\global\boolfalse{cbx:parens}} + {}% + \textcitedelim}} + +\renewbibmacro*{textcite:postnote}{% + \ifbool{cbx:parens} + {\setunit{\printdelim{postnotedelim}}} + {\setunit{% + \global\booltrue{cbx:parens}% + \printdelim{extpostnotedelim}\bibopenparen}}% + \printfield{postnote}% + \ifthenelse{\value{multicitecount}=\value{multicitetotal}} + {\setunit{}% + \printtext{% + \ifbool{cbx:parens} + {\bibcloseparen\global\boolfalse{cbx:parens}} + {}}} + {\setunit{% + \ifbool{cbx:parens} + {\bibcloseparen\global\boolfalse{cbx:parens}} + {}% + \textcitedelim}}} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/cbx/authortitle-terse.cbx b/macros/latex/contrib/biblatex/latex/cbx/authortitle-terse.cbx new file mode 100644 index 0000000000..1ffd3ba454 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/cbx/authortitle-terse.cbx @@ -0,0 +1,40 @@ +\ProvidesFile{authortitle-terse.cbx} +[\abx@cbxid] + +\RequireCitationStyle{authortitle} +\ExecuteBibliographyOptions{singletitle,uniquename,uniquelist,autocite=inline} + +\renewbibmacro*{cite}{% + \iffieldundef{shorthand} + {\ifnameundef{labelname} + {\usebibmacro{cite:title}} + {\ifsingletitle + {\printtext[bibhyperref]{\printnames{labelname}}} + {\printnames{labelname}% + \setunit{\printdelim{nametitledelim}}% + \usebibmacro{cite:title}}}}% + {\usebibmacro{cite:shorthand}}} + +\renewbibmacro*{textcite}{% + \ifnameundef{labelname} + {\ifnumequal{\value{citecount}}{1} + {\usebibmacro{prenote}} + {}% + \iffieldundef{shorthand} + {\usebibmacro{cite:title}}% + {\usebibmacro{cite:shorthand}}} + {\ifthenelse{\ifsingletitle\AND + \(\iffieldundef{prenote}\OR\value{citecount}>1\)} + {\printtext[bibhyperref]{\printnames{labelname}}} + {\printnames{labelname}% + \setunit{% + \global\booltrue{cbx:parens}% + \printdelim{nametitledelim}\bibopenparen}% + \ifnumequal{\value{citecount}}{1} + {\usebibmacro{prenote}} + {}% + \iffieldundef{shorthand} + {\usebibmacro{cite:title}}% + {\usebibmacro{cite:shorthand}}}}} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/cbx/authortitle-ticomp.cbx b/macros/latex/contrib/biblatex/latex/cbx/authortitle-ticomp.cbx new file mode 100644 index 0000000000..7dd3d8a528 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/cbx/authortitle-ticomp.cbx @@ -0,0 +1,100 @@ +\ProvidesFile{authortitle-ticomp.cbx} +[\abx@cbxid] + +\RequireCitationStyle{authortitle-icomp} +\ExecuteBibliographyOptions{singletitle,uniquename,uniquelist,autocite=inline} + +\renewcommand*{\iffinalcitedelim}{% + \ifnumequal{\value{textcitecount}}{\value{textcitetotal}-1}} + +\renewbibmacro*{cite}{% + \iffieldundef{shorthand} + {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage} + {\usebibmacro{cite:ibid}} + {\iffieldequals{namehash}{\cbx@lasthash} + {\setunit{\compcitedelim}% + \usebibmacro{cite:title}} + {\ifnameundef{labelname} + {\usebibmacro{cite:title}} + {\ifsingletitle + {\printtext[bibhyperref]{\printnames{labelname}}} + {\printnames{labelname}% + \setunit{\printdelim{nametitledelim}}% + \usebibmacro{cite:title}}}% + \savefield{namehash}{\cbx@lasthash}}}} + {\usebibmacro{cite:shorthand}% + \usebibmacro{cite:reinit}}% + \setunit{\multicitedelim}} + +\renewbibmacro*{citetitle}{% + \iffieldundef{shorthand} + {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage} + {\usebibmacro{cite:ibid}} + {\iffieldequals{namehash}{\cbx@lasthash} + {\setunit{\compcitedelim}} + {\savefield{namehash}{\cbx@lasthash}}% + \usebibmacro{cite:title}}} + {\usebibmacro{cite:shorthand}% + \usebibmacro{cite:reinit}}% + \setunit{\multicitedelim}} + +\renewbibmacro*{textcite}{% + \iffieldequals{namehash}{\cbx@lasthash} + {\setunit{\compcitedelim}% + \iffieldundef{shorthand} + {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage} + {\usebibmacro{cite:ibid}} + {\usebibmacro{cite:title}}}% + {\usebibmacro{cite:shorthand}}} + {\ifnameundef{labelname} + {\ifnumequal{\value{citecount}}{1} + {\usebibmacro{prenote}} + {}% + \iffieldundef{shorthand} + {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage} + {\usebibmacro{cite:ibid}} + {\usebibmacro{cite:title}}}% + {\usebibmacro{cite:shorthand}}} + {\ifthenelse{\ifsingletitle\AND + \(\iffieldundef{prenote}\OR\value{citecount}>1\)} + {\printtext[bibhyperref]{\printnames{labelname}}} + {\printnames{labelname} + \setunit{% + \global\booltrue{cbx:parens}% + \printdelim{nametitledelim}\bibopenparen}% + \ifnumequal{\value{citecount}}{1} + {\usebibmacro{prenote}} + {}% + \iffieldundef{shorthand} + {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage} + {\usebibmacro{cite:ibid}} + {\usebibmacro{cite:title}}}% + {\usebibmacro{cite:shorthand}}}}% + \stepcounter{textcitecount}% + \savefield{namehash}{\cbx@lasthash}}% + \setunit{% + \ifbool{cbx:parens} + {\bibcloseparen\global\boolfalse{cbx:parens}} + {}% + \textcitedelim}} + +\renewbibmacro*{textcite:postnote}{% + \ifbool{cbx:parens} + {\setunit{\printdelim{postnotedelim}}} + {\setunit{% + \global\booltrue{cbx:parens}% + \printdelim{extpostnotedelim}\bibopenparen}}% + \printfield{postnote}% + \ifthenelse{\value{multicitecount}=\value{multicitetotal}} + {\setunit{}% + \printtext{% + \ifbool{cbx:parens} + {\bibcloseparen\global\boolfalse{cbx:parens}} + {}}} + {\setunit{% + \ifbool{cbx:parens} + {\bibcloseparen\global\boolfalse{cbx:parens}} + {}% + \textcitedelim}}} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/cbx/authortitle.cbx b/macros/latex/contrib/biblatex/latex/cbx/authortitle.cbx new file mode 100644 index 0000000000..985ead9286 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/cbx/authortitle.cbx @@ -0,0 +1,115 @@ +\ProvidesFile{authortitle.cbx} +[\abx@cbxid] + +\ExecuteBibliographyOptions{uniquename,uniquelist,autocite=footnote} + +\renewcommand*{\iffinalcitedelim}{\iflastcitekey} + +\newbool{cbx:parens} + +\newbibmacro*{cite}{% + \iffieldundef{shorthand} + {\printnames{labelname}% + \setunit*{\printdelim{nametitledelim}}% + \usebibmacro{cite:title}}% + {\usebibmacro{cite:shorthand}}} + +\newbibmacro*{citetitle}{% + \iffieldundef{shorthand} + {\usebibmacro{cite:title}}% + {\usebibmacro{cite:shorthand}}} + +\newbibmacro*{textcite}{% + \printnames{labelname}% + \setunit*{% + \global\booltrue{cbx:parens}% + \printdelim{nametitledelim}\bibopenparen}% + \ifnumequal{\value{citecount}}{1} + {\usebibmacro{prenote}} + {}% + \iffieldundef{shorthand} + {\usebibmacro{cite:title}}% + {\usebibmacro{cite:shorthand}}} + +\newbibmacro*{cite:title}{% + \printtext[bibhyperref]{% + \printfield[citetitle]{labeltitle}}} + +\newbibmacro*{cite:shorthand}{% + \printtext[bibhyperref]{\printfield{shorthand}}} + +\newbibmacro*{textcite:postnote}{% + \iffieldundef{postnote} + {\ifbool{cbx:parens} + {\bibcloseparen} + {}} + {\ifbool{cbx:parens} + {\printdelim{postnotedelim}} + {\printdelim{extpostnotedelim}\bibopenparen}% + \printfield{postnote}\bibcloseparen}} + +\DeclareCiteCommand{\cite} + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand*{\cite} + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{citetitle}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\parencite}[\mkbibparens] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand*{\parencite}[\mkbibparens] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{citetitle}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\footcite}[\mkbibfootnote] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibparens\mkbibfootnote] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\textcite} + {\boolfalse{cbx:parens}} + {\usebibmacro{citeindex}% + \iffirstcitekey + {\setcounter{textcitetotal}{1}} + {\stepcounter{textcitetotal}% + \textcitedelim}% + \usebibmacro{textcite}} + {\ifbool{cbx:parens} + {\bibcloseparen\global\boolfalse{cbx:parens}} + {}} + {\usebibmacro{textcite:postnote}} + +\DeclareMultiCiteCommand{\textcites}{\textcite}{} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/cbx/authoryear-comp.cbx b/macros/latex/contrib/biblatex/latex/cbx/authoryear-comp.cbx new file mode 100644 index 0000000000..11d91b054e --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/cbx/authoryear-comp.cbx @@ -0,0 +1,267 @@ +\ProvidesFile{authoryear-comp.cbx} +[\abx@cbxid] + +\ExecuteBibliographyOptions{labeldateparts,uniquename,uniquelist,sortcites, + autocite=inline} + +\renewcommand*{\iffinalcitedelim}{% + \ifnumequal{\value{textcitecount}}{\value{textcitetotal}-1}} + +\newbool{cbx:parens} + +\newbibmacro*{cite:init}{% + \ifnumless{\value{multicitecount}}{2} + {\global\boolfalse{cbx:parens}% + \global\undef\cbx@lasthash + \global\undef\cbx@lastyear} + {\iffieldundef{prenote} + {} + {\global\undef\cbx@lasthash + \global\undef\cbx@lastyear}}} + +\newbibmacro*{cite:reinit}{% + \global\undef\cbx@lasthash + \global\undef\cbx@lastyear} + +\newbibmacro*{cite}{% + \iffieldundef{shorthand} + {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}} + {\usebibmacro{cite:label}% + \setunit{\printdelim{nonameyeardelim}}% + \usebibmacro{cite:labeldate+extradate}% + \usebibmacro{cite:reinit}} + {\iffieldequals{namehash}{\cbx@lasthash} + {\ifthenelse{\iffieldequals{labelyear}{\cbx@lastyear}\AND + \(\value{multicitecount}=0\OR\iffieldundef{postnote}\)} + {\setunit{\addcomma}% + \usebibmacro{cite:extradate}} + {\setunit{\compcitedelim}% + \usebibmacro{cite:labeldate+extradate}% + \savefield{labelyear}{\cbx@lastyear}}} + {\printnames{labelname}% + \setunit{\printdelim{nameyeardelim}}% + \usebibmacro{cite:labeldate+extradate}% + \savefield{namehash}{\cbx@lasthash}% + \savefield{labelyear}{\cbx@lastyear}}}} + {\usebibmacro{cite:shorthand}% + \usebibmacro{cite:reinit}}% + \setunit{\multicitedelim}} + +\newbibmacro*{citeyear}{% + \iffieldundef{shorthand} + {\iffieldundef{labelyear} + {\usebibmacro{cite:label}% + \usebibmacro{cite:reinit}} + {\iffieldequals{namehash}{\cbx@lasthash} + {\ifthenelse{\iffieldequals{labelyear}{\cbx@lastyear}\AND + \(\value{multicitecount}=0\OR\iffieldundef{postnote}\)} + {\setunit{\addcomma}% + \usebibmacro{cite:extradate}} + {\setunit{\compcitedelim}% + \usebibmacro{cite:labeldate+extradate}% + \savefield{labelyear}{\cbx@lastyear}}} + {\usebibmacro{cite:labeldate+extradate}% + \savefield{namehash}{\cbx@lasthash}% + \savefield{labelyear}{\cbx@lastyear}}}} + {\usebibmacro{cite:shorthand}% + \usebibmacro{cite:reinit}}% + \setunit{\multicitedelim}} + +\newbibmacro*{textcite}{% + \iffieldequals{namehash}{\cbx@lasthash} + {\iffieldundef{shorthand} + {\ifthenelse{\iffieldequals{labelyear}{\cbx@lastyear}\AND + \(\value{multicitecount}=0\OR\iffieldundef{postnote}\)} + {\setunit{\addcomma}% + \usebibmacro{cite:extradate}} + {\setunit{\compcitedelim}% + \usebibmacro{cite:labeldate+extradate}% + \savefield{labelyear}{\cbx@lastyear}}} + {\setunit{\compcitedelim}% + \usebibmacro{cite:shorthand}% + \global\undef\cbx@lastyear}} + {\ifnameundef{labelname} + {\iffieldundef{shorthand} + {\usebibmacro{cite:label}% + \setunit{% + \global\booltrue{cbx:parens}% + \printdelim{nonameyeardelim}\bibopenparen}% + \ifnumequal{\value{citecount}}{1} + {\usebibmacro{prenote}} + {}% + \usebibmacro{cite:labeldate+extradate}} + {\usebibmacro{cite:shorthand}}} + {\printnames{labelname}% + \setunit{% + \global\booltrue{cbx:parens}% + \printdelim{nameyeardelim}\bibopenparen}% + \ifnumequal{\value{citecount}}{1} + {\usebibmacro{prenote}} + {}% + \iffieldundef{shorthand} + {\iffieldundef{labelyear} + {\usebibmacro{cite:label}} + {\usebibmacro{cite:labeldate+extradate}}% + \savefield{labelyear}{\cbx@lastyear}} + {\usebibmacro{cite:shorthand}% + \global\undef\cbx@lastyear}}% + \stepcounter{textcitecount}% + \savefield{namehash}{\cbx@lasthash}}% + \setunit{% + \ifbool{cbx:parens} + {\bibcloseparen\global\boolfalse{cbx:parens}} + {}% + \textcitedelim}} + +\newbibmacro*{cite:shorthand}{% + \printtext[bibhyperref]{\printfield{shorthand}}} + +\newbibmacro*{cite:label}{% + \iffieldundef{label} + {\printtext[bibhyperref]{\printfield[citetitle]{labeltitle}}} + {\printtext[bibhyperref]{\printfield{label}}}} + +\newbibmacro*{cite:labeldate+extradate}{% + \iffieldundef{labelyear} + {} + {\printtext[bibhyperref]{\printlabeldateextra}}} + +\newbibmacro{cite:labelyear+extrayear}{% + \blx@warning{bibmacro 'cite:labelyear+extrayear' is deprecated.\MessageBreak + Please use 'cite:labeldate+extradate'.\MessageBreak + Using 'cite:labeldate+extradate' instead}% + \usebibmacro{cite:labeldate+extradate}} + +\newbibmacro*{cite:extradate}{% + \iffieldundef{extradate} + {} + {\printtext[bibhyperref]{\printfield{extradate}}}} + +\newbibmacro{cite:extrayear}{% + \blx@warning{bibmacro 'cite:extrayear' is deprecated.\MessageBreak + Please use 'cite:extradate'.\MessageBreak + Using 'cite:extradate' instead}% + \usebibmacro{cite:extradate}} + +\newbibmacro*{textcite:postnote}{% + \usebibmacro{postnote}% + \ifthenelse{\value{multicitecount}=\value{multicitetotal}} + {\setunit{}% + \printtext{% + \ifbool{cbx:parens} + {\bibcloseparen\global\boolfalse{cbx:parens}} + {}}} + {\setunit{% + \ifbool{cbx:parens} + {\bibcloseparen\global\boolfalse{cbx:parens}} + {}% + \textcitedelim}}} + +\DeclareCiteCommand{\cite} + {\usebibmacro{cite:init}% + \usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {} + {\usebibmacro{postnote}} + +\DeclareCiteCommand*{\cite} + {\usebibmacro{cite:init}% + \usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{citeyear}} + {} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\parencite}[\mkbibparens] + {\usebibmacro{cite:init}% + \usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {} + {\usebibmacro{postnote}} + +\DeclareCiteCommand*{\parencite}[\mkbibparens] + {\usebibmacro{cite:init}% + \usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{citeyear}} + {} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\footcite}[\mkbibfootnote] + {\usebibmacro{cite:init}% + \usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext] + {\usebibmacro{cite:init}% + \usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibparens\mkbibfootnote] + {\usebibmacro{cite:init}% + \usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\cbx@textcite} + {\usebibmacro{cite:init}} + {\usebibmacro{citeindex}% + \usebibmacro{textcite}} + {} + {\usebibmacro{textcite:postnote}} + +\DeclareCiteCommand{\textcite}[\cbx@textcite@init\cbx@textcite] + {\gdef\cbx@savedkeys{}% + \citetrackerfalse% + \pagetrackerfalse% + \DeferNextCitekeyHook% + \usebibmacro{cite:init}} + {\ifthenelse{\iffirstcitekey\AND\value{multicitetotal}>0} + {\protected@xappto\cbx@savedcites{()(\thefield{multipostnote})}% + \global\clearfield{multipostnote}} + {}% + \xappto\cbx@savedkeys{\thefield{entrykey},}% + \iffieldequals{namehash}{\cbx@lasthash} + {} + {\stepcounter{textcitetotal}% + \savefield{namehash}{\cbx@lasthash}}} + {} + {\protected@xappto\cbx@savedcites{% + [\thefield{prenote}][\thefield{postnote}]{\cbx@savedkeys}}} + +% textcite has nested \DeclareCiteCommand definitions for textcite and we want to use +% the normal textcite context +\DeclareDelimcontextAlias{cbx@textcite}{textcite} + +\newrobustcmd{\cbx@textcite@init}[2]{% + \setcounter{textcitetotal}{0}% + \setcounter{textcitecount}{0}% + \def\cbx@savedcites{#1}#2\cbx@savedcites\empty} + +\DeclareMultiCiteCommand{\cbx@textcites}{\cbx@textcite}{} +\DeclareMultiCiteCommand{\textcites}[\cbx@textcites@init\cbx@textcites]{\textcite}{} + +\let\cbx@textcites@init\cbx@textcite@init +\pretocmd{\cbx@textcites@init}{\UseNextMultiCiteHook}{}{} + +\DeclareMultiCiteCommand{\cites}{\cite}{\setunit{\multicitedelim}} +\DeclareMultiCiteCommand{\parencites}[\mkbibparens]{\parencite} + {\setunit{\multicitedelim}} +\DeclareMultiCiteCommand{\footcites}[\mkbibfootnote]{\footcite} + {\setunit{\multicitedelim}} +\DeclareMultiCiteCommand{\footcitetexts}[\mkbibfootnotetext] + {\footcitetext}{\setunit{\multicitedelim}} +\DeclareMultiCiteCommand{\smartcites}[\iffootnote\mkbibparens\mkbibfootnote] + {\smartcite}{\setunit{\multicitedelim}} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/cbx/authoryear-ibid.cbx b/macros/latex/contrib/biblatex/latex/cbx/authoryear-ibid.cbx new file mode 100644 index 0000000000..2f361a0033 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/cbx/authoryear-ibid.cbx @@ -0,0 +1,173 @@ +\ProvidesFile{authoryear-ibid.cbx} +[\abx@cbxid] + +\ExecuteBibliographyOptions{labeldateparts,uniquename,uniquelist,pagetracker, + ibidtracker=constrict,autocite=inline} + +\providecommand*{\mkibid}[1]{#1} +\renewcommand*{\iffinalcitedelim}{\iflastcitekey} + +\newbool{cbx:parens} +\newbool{cbx:loccit} + +\DeclareBibliographyOption[boolean]{ibidpage}[true]{% + \ifstrequal{#1}{true} + {\ExecuteBibliographyOptions{loccittracker=constrict}} + {\ExecuteBibliographyOptions{loccittracker=false}}} + +\newbibmacro*{cite}{% + \global\boolfalse{cbx:loccit}% + \iffieldundef{shorthand} + {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage} + {\usebibmacro{cite:ibid}} + {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}} + {\usebibmacro{cite:label}% + \setunit{\printdelim{nonameyeardelim}}} + {\printnames{labelname}% + \setunit{\printdelim{nameyeardelim}}}% + \usebibmacro{cite:labeldate+extradate}}} + {\usebibmacro{cite:shorthand}}} + +\newbibmacro*{citeyear}{% + \global\boolfalse{cbx:loccit}% + \iffieldundef{shorthand} + {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage} + {\usebibmacro{cite:ibid}} + {\iffieldundef{labelyear} + {\usebibmacro{cite:label}} + {\usebibmacro{cite:labeldate+extradate}}}} + {\usebibmacro{cite:shorthand}}} + +\newbibmacro*{textcite}{% + \global\boolfalse{cbx:loccit}% + \ifnameundef{labelname} + {\iffieldundef{shorthand} + {\usebibmacro{cite:label}% + \setunit{% + \global\booltrue{cbx:parens}% + \printdelim{nonameyeardelim}\bibopenparen}% + \ifnumequal{\value{citecount}}{1} + {\usebibmacro{prenote}} + {}% + \usebibmacro{cite:labeldate+extradate}} + {\usebibmacro{cite:shorthand}}} + {\printnames{labelname}% + \setunit{% + \global\booltrue{cbx:parens}% + \printdelim{nameyeardelim}\bibopenparen}% + \ifnumequal{\value{citecount}}{1} + {\usebibmacro{prenote}} + {}% + \iffieldundef{shorthand} + {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage} + {\usebibmacro{cite:ibid}} + {\iffieldundef{labelyear} + {\usebibmacro{cite:label}} + {\usebibmacro{cite:labeldate+extradate}}}} + {\usebibmacro{cite:shorthand}}}} + +\newbibmacro*{cite:shorthand}{% + \printtext[bibhyperref]{\printfield{shorthand}}} + +\newbibmacro*{cite:ibid}{% + \printtext[bibhyperref]{\bibstring[\mkibid]{ibidem}}% + \ifloccit + {\global\booltrue{cbx:loccit}} + {}} + +\newbibmacro*{cite:label}{% + \iffieldundef{label} + {\printtext[bibhyperref]{\printfield[citetitle]{labeltitle}}} + {\printtext[bibhyperref]{\printfield{label}}}} + +\newbibmacro*{cite:labeldate+extradate}{% + \iffieldundef{labelyear} + {} + {\printtext[bibhyperref]{\printlabeldateextra}}} + +\newbibmacro{cite:labelyear+extrayear}{% + \blx@warning{bibmacro 'cite:labelyear+extrayear' is deprecated.\MessageBreak + Please use 'cite:labeldate+extradate'.\MessageBreak + Using 'cite:labeldate+extradate' instead}% + \usebibmacro{cite:labeldate+extradate}} + +\newbibmacro*{cite:postnote}{% + \ifbool{cbx:loccit} + {} + {\usebibmacro{postnote}}} + +\newbibmacro*{textcite:postnote}{% + \ifthenelse{\iffieldundef{postnote}\OR\boolean{cbx:loccit}} + {\ifbool{cbx:parens} + {\bibcloseparen} + {}} + {\ifbool{cbx:parens} + {\printdelim{postnotedelim}} + {\printdelim{extpostnotedelim}\bibopenparen}% + \printfield{postnote}\bibcloseparen}} + +\DeclareCiteCommand{\cite} + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand*{\cite} + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{citeyear}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\parencite}[\mkbibparens] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand*{\parencite}[\mkbibparens] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{citeyear}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\footcite}[\mkbibfootnote] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibparens\mkbibfootnote] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\textcite} + {\boolfalse{cbx:parens}} + {\usebibmacro{citeindex}% + \iffirstcitekey + {\setcounter{textcitetotal}{1}} + {\stepcounter{textcitetotal}% + \textcitedelim}% + \usebibmacro{textcite}} + {\ifbool{cbx:parens} + {\bibcloseparen\global\boolfalse{cbx:parens}} + {}} + {\usebibmacro{textcite:postnote}} + +\DeclareMultiCiteCommand{\textcites}{\textcite}{} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/cbx/authoryear-icomp.cbx b/macros/latex/contrib/biblatex/latex/cbx/authoryear-icomp.cbx new file mode 100644 index 0000000000..a194473bea --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/cbx/authoryear-icomp.cbx @@ -0,0 +1,296 @@ +\ProvidesFile{authoryear-icomp.cbx} +[\abx@cbxid] + +\ExecuteBibliographyOptions{labeldateparts,uniquename,uniquelist,ibidtracker=constrict, + pagetracker,sortcites,autocite=inline} + +\providecommand*{\mkibid}[1]{#1} +\renewcommand*{\iffinalcitedelim}{% + \ifnumequal{\value{textcitecount}}{\value{textcitetotal}-1}} + +\newbool{cbx:parens} +\newbool{cbx:loccit} + +\DeclareBibliographyOption[boolean]{ibidpage}[true]{% + \ifstrequal{#1}{true} + {\ExecuteBibliographyOptions{loccittracker=constrict}} + {\ExecuteBibliographyOptions{loccittracker=false}}} + +\newbibmacro*{cite:init}{% + \global\boolfalse{cbx:loccit}% + \ifnumless{\value{multicitecount}}{2} + {\global\boolfalse{cbx:parens}% + \global\undef\cbx@lasthash + \global\undef\cbx@lastyear} + {\iffieldundef{prenote} + {} + {\global\undef\cbx@lasthash + \global\undef\cbx@lastyear}}} + +\newbibmacro*{cite:reinit}{% + \global\undef\cbx@lasthash + \global\undef\cbx@lastyear} + +\newbibmacro*{cite}{% + \iffieldundef{shorthand} + {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage} + {\usebibmacro{cite:ibid}} + {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}} + {\usebibmacro{cite:label}% + \setunit{\printdelim{nonameyeardelim}}% + \usebibmacro{cite:labeldate+extradate}% + \usebibmacro{cite:reinit}} + {\iffieldequals{namehash}{\cbx@lasthash} + {\ifthenelse{\iffieldequals{labelyear}{\cbx@lastyear}\AND + \(\value{multicitecount}=0\OR\iffieldundef{postnote}\)} + {\setunit{\addcomma}% + \usebibmacro{cite:extradate}} + {\setunit{\compcitedelim}% + \usebibmacro{cite:labeldate+extradate}% + \savefield{labelyear}{\cbx@lastyear}}} + {\printnames{labelname}% + \setunit{\printdelim{nameyeardelim}}% + \usebibmacro{cite:labeldate+extradate}% + \savefield{namehash}{\cbx@lasthash}% + \savefield{labelyear}{\cbx@lastyear}}}}} + {\usebibmacro{cite:shorthand}% + \usebibmacro{cite:reinit}}% + \setunit{\multicitedelim}} + +\newbibmacro*{citeyear}{% + \iffieldundef{shorthand} + {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage} + {\usebibmacro{cite:ibid}} + {\iffieldundef{labelyear} + {\usebibmacro{cite:label}% + \usebibmacro{cite:reinit}} + {\iffieldequals{namehash}{\cbx@lasthash} + {\ifthenelse{\iffieldequals{labelyear}{\cbx@lastyear}\AND + \(\value{multicitecount}=0\OR\iffieldundef{postnote}\)} + {\setunit{\addcomma}% + \usebibmacro{cite:extradate}} + {\setunit{\compcitedelim}% + \usebibmacro{cite:labeldate+extradate}% + \savefield{labelyear}{\cbx@lastyear}}} + {\usebibmacro{cite:labeldate+extradate}% + \savefield{namehash}{\cbx@lasthash}% + \savefield{labelyear}{\cbx@lastyear}}}}} + {\usebibmacro{cite:shorthand}% + \usebibmacro{cite:reinit}}% + \setunit{\multicitedelim}} + +\newbibmacro*{textcite}{% + \iffieldequals{namehash}{\cbx@lasthash} + {\iffieldundef{shorthand} + {\ifthenelse{\iffieldequals{labelyear}{\cbx@lastyear}\AND + \(\value{multicitecount}=0\OR\iffieldundef{postnote}\)} + {\setunit{\addcomma}% + \usebibmacro{cite:extradate}} + {\setunit{\compcitedelim}% + \usebibmacro{cite:labeldate+extradate}% + \savefield{labelyear}{\cbx@lastyear}}} + {\setunit{\compcitedelim}% + \usebibmacro{cite:shorthand}% + \global\undef\cbx@lastyear}} + {\ifnameundef{labelname} + {\iffieldundef{shorthand} + {\usebibmacro{cite:label}% + \setunit{% + \global\booltrue{cbx:parens}% + \printdelim{nonameyeardelim}\bibopenparen}% + \ifnumequal{\value{citecount}}{1} + {\usebibmacro{prenote}} + {}% + \ifthenelse{\ifciteibid\AND\NOT\iffirstonpage} + {\usebibmacro{cite:ibid}} + {\usebibmacro{cite:labeldate+extradate}}} + {\usebibmacro{cite:shorthand}}} + {\printnames{labelname}% + \setunit{% + \global\booltrue{cbx:parens}% + \printdelim{nameyeardelim}\bibopenparen}% + \ifnumequal{\value{citecount}}{1} + {\usebibmacro{prenote}} + {}% + \iffieldundef{shorthand} + {\iffieldundef{labelyear} + {\usebibmacro{cite:label}} + {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage} + {\usebibmacro{cite:ibid}} + {\usebibmacro{cite:labeldate+extradate}}}% + \savefield{labelyear}{\cbx@lastyear}} + {\usebibmacro{cite:shorthand}% + \global\undef\cbx@lastyear}}% + \stepcounter{textcitecount}% + \savefield{namehash}{\cbx@lasthash}}% + \setunit{% + \ifbool{cbx:parens} + {\bibcloseparen\global\boolfalse{cbx:parens}} + {}% + \textcitedelim}} + +\newbibmacro*{cite:shorthand}{% + \printtext[bibhyperref]{\printfield{shorthand}}} + +\newbibmacro*{cite:label}{% + \iffieldundef{label} + {\printtext[bibhyperref]{\printfield[citetitle]{labeltitle}}} + {\printtext[bibhyperref]{\printfield{label}}}} + +\newbibmacro*{cite:labeldate+extradate}{% + \iffieldundef{labelyear} + {} + {\printtext[bibhyperref]{\printlabeldateextra}}} + +\newbibmacro{cite:labelyear+extrayear}{% + \blx@warning{bibmacro 'cite:labelyear+extrayear' is deprecated.\MessageBreak + Please use 'cite:labeldate+extradate'.\MessageBreak + Using 'cite:labeldate+extradate' instead}% + \usebibmacro{cite:labeldate+extradate}} + +\newbibmacro*{cite:extradate}{% + \iffieldundef{extradate} + {} + {\printtext[bibhyperref]{\printfield{extradate}}}} + +\newbibmacro{cite:extrayear}{% + \blx@warning{bibmacro 'cite:extrayear' is deprecated.\MessageBreak + Please use 'cite:extradate'.\MessageBreak + Using 'cite:extradate' instead}% + \usebibmacro{cite:extradate}} + +\newbibmacro*{cite:ibid}{% + \printtext[bibhyperref]{\bibstring[\mkibid]{ibidem}}% + \ifloccit + {\global\booltrue{cbx:loccit}} + {}} + +\newbibmacro*{cite:postnote}{% + \ifbool{cbx:loccit} + {} + {\usebibmacro{postnote}}} + +\newbibmacro*{textcite:postnote}{% + \ifbool{cbx:loccit} + {} + {\usebibmacro{postnote}}% + \ifthenelse{\value{multicitecount}=\value{multicitetotal}} + {\setunit{}% + \printtext{% + \ifbool{cbx:parens} + {\bibcloseparen\global\boolfalse{cbx:parens}} + {}}} + {\setunit{% + \ifbool{cbx:parens} + {\bibcloseparen\global\boolfalse{cbx:parens}} + {}% + \textcitedelim}}} + +\DeclareCiteCommand{\cite} + {\usebibmacro{cite:init}% + \usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand*{\cite} + {\usebibmacro{cite:init}% + \usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{citeyear}} + {} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\parencite}[\mkbibparens] + {\usebibmacro{cite:init}% + \usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand*{\parencite}[\mkbibparens] + {\usebibmacro{cite:init}% + \usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{citeyear}} + {} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\footcite}[\mkbibfootnote] + {\usebibmacro{cite:init}% + \usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext] + {\usebibmacro{cite:init}% + \usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibparens\mkbibfootnote] + {\usebibmacro{cite:init}% + \usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\cbx@textcite} + {\usebibmacro{cite:init}} + {\usebibmacro{citeindex}% + \usebibmacro{textcite}} + {} + {\usebibmacro{textcite:postnote}} + +\DeclareCiteCommand{\textcite}[\cbx@textcite@init\cbx@textcite] + {\gdef\cbx@savedkeys{}% + \citetrackerfalse% + \pagetrackerfalse% + \DeferNextCitekeyHook% + \usebibmacro{cite:init}} + {\ifthenelse{\iffirstcitekey\AND\value{multicitetotal}>0} + {\protected@xappto\cbx@savedcites{()(\thefield{multipostnote})}% + \global\clearfield{multipostnote}} + {}% + \xappto\cbx@savedkeys{\thefield{entrykey},}% + \iffieldequals{namehash}{\cbx@lasthash} + {} + {\stepcounter{textcitetotal}% + \savefield{namehash}{\cbx@lasthash}}} + {} + {\protected@xappto\cbx@savedcites{% + [\thefield{prenote}][\thefield{postnote}]{\cbx@savedkeys}}} + +% textcite has nested \DeclareCiteCommand definitions for textcite and we want to use +% the normal textcite context +\DeclareDelimcontextAlias{cbx@textcite}{textcite} + +\newrobustcmd{\cbx@textcite@init}[2]{% + \setcounter{textcitetotal}{0}% + \setcounter{textcitecount}{0}% + \def\cbx@savedcites{#1}#2\cbx@savedcites\empty} + +\DeclareMultiCiteCommand{\cbx@textcites}{\cbx@textcite}{} +\DeclareMultiCiteCommand{\textcites}[\cbx@textcites@init\cbx@textcites]{\textcite}{} + +\let\cbx@textcites@init\cbx@textcite@init +\pretocmd{\cbx@textcites@init}{\UseNextMultiCiteHook}{}{} + +\DeclareMultiCiteCommand{\cites}{\cite}{\setunit{\multicitedelim}} +\DeclareMultiCiteCommand{\parencites}[\mkbibparens] + {\parencite}{\setunit{\multicitedelim}} +\DeclareMultiCiteCommand{\footcites}[\mkbibfootnote] + {\footcite}{\setunit{\multicitedelim}} +\DeclareMultiCiteCommand{\footcitetexts}[\mkbibfootnotetext] + {\footcitetext}{\setunit{\multicitedelim}} +\DeclareMultiCiteCommand{\smartcites}[\iffootnote\mkbibparens\mkbibfootnote] + {\smartcite}{\setunit{\multicitedelim}} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/cbx/authoryear.cbx b/macros/latex/contrib/biblatex/latex/cbx/authoryear.cbx new file mode 100644 index 0000000000..49c8d9d03a --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/cbx/authoryear.cbx @@ -0,0 +1,141 @@ +\ProvidesFile{authoryear.cbx} +[\abx@cbxid] + +\ExecuteBibliographyOptions{labeldateparts,uniquename,uniquelist,autocite=inline} + +\renewcommand*{\iffinalcitedelim}{\iflastcitekey} + +\newbool{cbx:parens} + +\newbibmacro*{cite}{% + \iffieldundef{shorthand} + {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}} + {\usebibmacro{cite:label}% + \setunit{\printdelim{nonameyeardelim}}} + {\printnames{labelname}% + \setunit{\printdelim{nameyeardelim}}}% + \usebibmacro{cite:labeldate+extradate}} + {\usebibmacro{cite:shorthand}}} + +\newbibmacro*{citeyear}{% + \iffieldundef{shorthand} + {\iffieldundef{labelyear} + {\usebibmacro{cite:label}} + {\usebibmacro{cite:labeldate+extradate}}} + {\usebibmacro{cite:shorthand}}} + +\newbibmacro*{textcite}{% + \ifnameundef{labelname} + {\iffieldundef{shorthand} + {\usebibmacro{cite:label}% + \setunit{% + \global\booltrue{cbx:parens}% + \printdelim{nonameyeardelim}\bibopenparen}% + \ifnumequal{\value{citecount}}{1} + {\usebibmacro{prenote}} + {}% + \usebibmacro{cite:labeldate+extradate}} + {\usebibmacro{cite:shorthand}}} + {\printnames{labelname}% + \setunit{% + \global\booltrue{cbx:parens}% + \printdelim{nameyeardelim}\bibopenparen}% + \ifnumequal{\value{citecount}}{1} + {\usebibmacro{prenote}} + {}% + \usebibmacro{citeyear}}} + +\newbibmacro*{cite:shorthand}{% + \printtext[bibhyperref]{\printfield{shorthand}}} + +\newbibmacro*{cite:label}{% + \iffieldundef{label} + {\printtext[bibhyperref]{\printfield[citetitle]{labeltitle}}} + {\printtext[bibhyperref]{\printfield{label}}}} + +\newbibmacro*{cite:labeldate+extradate}{% + \iffieldundef{labelyear} + {} + {\printtext[bibhyperref]{\printlabeldateextra}}} + +\newbibmacro{cite:labelyear+extrayear}{% + \blx@warning{bibmacro 'cite:labelyear+extrayear' is deprecated.\MessageBreak + Please use 'cite:labeldate+extradate'.\MessageBreak + Using 'cite:labeldate+extradate' instead}% + \usebibmacro{cite:labeldate+extradate}} + +\newbibmacro*{textcite:postnote}{% + \iffieldundef{postnote} + {\ifbool{cbx:parens} + {\bibcloseparen} + {}} + {\ifbool{cbx:parens} + {\setunit{\printdelim{postnotedelim}}} + {\setunit{\printdelim{extpostnotedelim}\bibopenparen}}% + \printfield{postnote}\bibcloseparen}} + +\DeclareCiteCommand{\cite} + {\usebibmacro{prenote}}% + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand*{\cite} + {\usebibmacro{prenote}}% + {\usebibmacro{citeindex}% + \usebibmacro{citeyear}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\parencite}[\mkbibparens] + {\usebibmacro{prenote}}% + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand*{\parencite}[\mkbibparens] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{citeyear}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\footcite}[\mkbibfootnote] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibparens\mkbibfootnote] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\textcite} + {\boolfalse{cbx:parens}} + {\usebibmacro{citeindex}% + \iffirstcitekey + {\setcounter{textcitetotal}{1}} + {\stepcounter{textcitetotal}% + \textcitedelim}% + \usebibmacro{textcite}} + {\ifbool{cbx:parens} + {\bibcloseparen\global\boolfalse{cbx:parens}} + {}} + {\usebibmacro{textcite:postnote}} + +\DeclareMultiCiteCommand{\textcites}{\textcite}{} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/cbx/debug.cbx b/macros/latex/contrib/biblatex/latex/cbx/debug.cbx new file mode 100644 index 0000000000..dc3405dd7f --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/cbx/debug.cbx @@ -0,0 +1,93 @@ +\ProvidesFile{debug.cbx} +[\abx@cbxid] + +\ExecuteBibliographyOptions{autocite=plain} + +\DeclareUrlCommand{\cbx@citekey}{\urlstyle{citekey}} +\def\url@citekeystyle{\def\UrlFont{\ttfamily}} + +\DeclareFieldFormat{key}{\cbx@citekey{#1}} +\DeclareFieldFormat{pre}{\texttt{pre=\detokenize{#1}}} +\DeclareFieldFormat{post}{\texttt{post=\detokenize{#1}}} +\DeclareFieldFormat{meta}{\texttt{#1}} + +\renewbibmacro*{multiprenote}{% + \printtext[meta]{[multi}% + \setunit{\addspace}% + \printfield[pre]{multiprenote}% + \setunit{\addspace}% + \printfield[post]{multipostnote}% + \setunit{\addspace}} + +\renewbibmacro*{multipostnote}{% + \printtext[meta]{]}} + +\newbibmacro*{begin}[1]{% + \printtext[meta]{[#1}% + \setunit{\addspace}% + \printfield[pre]{prenote}% + \setunit{\addspace}% + \printfield[post]{postnote}% + \setunit{\addspace}% + \printtext[meta]{key=}} + +\newbibmacro*{end}{% + \printtext[meta]{]}} + +\newbibmacro*{key}{% + \printtext[bibhyperref]{\printfield[key]{entrykey}}} + +\newbibmacro*{next}{% + \printtext[meta]{\addcomma}% + \setunit{\addspace}} + +\DeclareCiteCommand{\cite} + {\usebibmacro{begin}{cite}} + {\usebibmacro{key}} + {\usebibmacro{next}} + {\usebibmacro{end}} + +\DeclareCiteCommand{\parencite} + {\usebibmacro{begin}{parencite}} + {\usebibmacro{key}} + {\usebibmacro{next}} + {\usebibmacro{end}} + +\DeclareCiteCommand{\footcite} + {\usebibmacro{begin}{footcite}} + {\usebibmacro{key}} + {\usebibmacro{next}} + {\usebibmacro{end}} + +\DeclareCiteCommand{\footcitetext} + {\usebibmacro{begin}{footcitetext}} + {\usebibmacro{key}} + {\usebibmacro{next}} + {\usebibmacro{end}} + +\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibparens\mkbibfootnote] + {\usebibmacro{begin}{smartcite}} + {\usebibmacro{key}} + {\usebibmacro{next}} + {\usebibmacro{end}} + +\DeclareCiteCommand{\textcite} + {\usebibmacro{begin}{textcite}} + {\usebibmacro{key}} + {\usebibmacro{next}} + {\usebibmacro{end}} + +\DeclareCiteCommand{\supercite} + {\usebibmacro{begin}{supercite}} + {\usebibmacro{key}} + {\usebibmacro{next}} + {\usebibmacro{end}} + +\DeclareMultiCiteCommand{\cites}{\cite}{\addspace} +\DeclareMultiCiteCommand{\parencites}{\parencite}{\addspace} +\DeclareMultiCiteCommand{\footcites}{\footcite}{\addspace} +\DeclareMultiCiteCommand{\footcitetexts}{\footcitetext}{\addspace} +\DeclareMultiCiteCommand{\supercites}{\supercite}{\addspace} +\DeclareMultiCiteCommand{\textcites}{\textcite}{\addspace} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/cbx/draft.cbx b/macros/latex/contrib/biblatex/latex/cbx/draft.cbx new file mode 100644 index 0000000000..9823820769 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/cbx/draft.cbx @@ -0,0 +1,73 @@ +\ProvidesFile{draft.cbx} +[\abx@cbxid] + +\ExecuteBibliographyOptions{autocite=plain} + +\DeclareFieldFormat{citekey}{\cbx@mkcitekey{#1}} +\DeclareUrlCommand{\cbx@mkcitekey}{\urlstyle{citekey}} +\def\url@citekeystyle{\def\UrlFont{\bfseries}} +\newbool{cbx:parens} + +\newbibmacro*{cite}{% + \printtext[bibhyperref]{\printfield[citekey]{entrykey}}} + +\newbibmacro*{textcite}{% + \printnames{labelname}% + \setunit*{% + \global\booltrue{cbx:parens}% + \addspace\bibopenparen}% + \ifnumequal{\value{citecount}}{1} + {\usebibmacro{prenote}} + {}% + \usebibmacro{cite}} + +\newbibmacro*{textcite:postnote}{% + \iffieldundef{postnote} + {\ifbool{cbx:parens} + {\bibcloseparen} + {}} + {\ifbool{cbx:parens} + {\setunit{\printdelim{postnotedelim}}} + {\setunit{\addspace\bibopenparen}}% + \printfield{postnote}\bibcloseparen}} + +\DeclareCiteCommand{\cite} + {\usebibmacro{prenote}} + {\usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\parencite}[\mkbibparens] + {\usebibmacro{prenote}} + {\usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\footcite}[\mkbibfootnote] + {\usebibmacro{prenote}} + {\usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext] + {\usebibmacro{prenote}} + {\usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibparens\mkbibfootnote] + {\usebibmacro{prenote}} + {\usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\textcite} + {\boolfalse{cbx:parens}} + {\usebibmacro{textcite}} + {\ifbool{cbx:parens} + {\bibcloseparen\global\boolfalse{cbx:parens}} + {}% + \multicitedelim} + {\usebibmacro{textcite:postnote}} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/cbx/numeric-comp.cbx b/macros/latex/contrib/biblatex/latex/cbx/numeric-comp.cbx new file mode 100644 index 0000000000..b649cbeaee --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/cbx/numeric-comp.cbx @@ -0,0 +1,233 @@ +\ProvidesFile{numeric-comp.cbx} +[\abx@cbxid] + +\ExecuteBibliographyOptions{labelnumber,sortcites,autocite=inline} + +\renewcommand*{\multicitedelim}{\addcomma\space} +\renewcommand*{\iffinalcitedelim}{% + \ifnumequal{\value{textcitecount}}{\value{textcitetotal}-1}} + +\providebool{bbx:subentry} +\newbool{cbx:parens} + +\newcounter{cbx@tempcnta} +\newcounter{cbx@tempcntb} + +\DeclareFieldFormat{entrysetcount}{\mknumalph{#1}} + +\newbibmacro*{cite:init}{% + \global\boolfalse{cbx:parens}% + \global\undef\cbx@lasthash + \global\undef\cbx@lastnumber + \global\undef\cbx@lastprefix + \setcounter{cbx@tempcnta}{0}% + \setcounter{cbx@tempcntb}{-2}} + +\newbibmacro*{cite:comp}{% + \addtocounter{cbx@tempcntb}{1}% + \iffieldundef{shorthand} + {\ifbool{bbx:subentry} + {\iffieldundef{entrysetcount} + {\usebibmacro{cite:comp:comp}} + {\usebibmacro{cite:comp:inset}}} + {\usebibmacro{cite:comp:comp}}} + {\usebibmacro{cite:comp:shand}}} + +\newbibmacro*{cite:comp:comp}{% + \ifboolexpr{ + ( test {\iffieldundef{labelprefix}} and test {\ifundef\cbx@lastprefix} ) + or + test {\iffieldequals{labelprefix}{\cbx@lastprefix}} + } + {\ifnumequal{\thefield{labelnumber}}{\value{cbx@tempcntb}} + {\savefield{entrykey}{\cbx@lastkey}% + \savefield{labelnumber}{\cbx@lastnumber}% + \addtocounter{cbx@tempcnta}{1}} + {\ifnumequal{\thefield{labelnumber}}{\value{cbx@tempcntb}-1} + {} + {\usebibmacro{cite:dump}% + \ifnumgreater{\value{cbx@tempcntb}}{-1} + {\multicitedelim} + {}% + \printtext[bibhyperref]{% + \printfield{labelprefix}% + \printfield{labelnumber}}}}} + {\usebibmacro{cite:comp:end}}% + \setcounter{cbx@tempcntb}{\thefield{labelnumber}}% + \savefield{labelprefix}{\cbx@lastprefix}} + +\newbibmacro*{cite:comp:end}{% + \usebibmacro{cite:dump}% + \ifnumgreater{\value{cbx@tempcntb}}{-1} + {\multicitedelim} + {}% + \printtext[bibhyperref]{% + \printfield{labelprefix}% + \printfield{labelnumber}}} + +\newbibmacro*{cite:comp:inset}{% + \usebibmacro{cite:dump}% + \ifnumgreater{\value{cbx@tempcntb}}{-1} + {\multicitedelim} + {}% + \printtext[bibhyperref]{% + \printfield{labelprefix}% + \printfield{labelnumber}% + \printfield{entrysetcount}}% + \setcounter{cbx@tempcntb}{-1}} + +\newbibmacro*{cite:comp:shand}{% + \usebibmacro{cite:dump}% + \ifnumgreater{\value{cbx@tempcntb}}{-1} + {\multicitedelim} + {}% + \printtext[bibhyperref]{\printfield{shorthand}}% + \setcounter{cbx@tempcntb}{-1}} + +\newbibmacro*{cite:dump}{% + \ifnumgreater{\value{cbx@tempcnta}}{0} + {\ifnumgreater{\value{cbx@tempcnta}}{1} + {\bibrangedash} + {\multicitedelim}% + \bibhyperref[\cbx@lastkey]{% + \ifdef\cbx@lastprefix + {\printtext[labelprefix]{\cbx@lastprefix}} + {}% + \printtext[labelnumber]{\cbx@lastnumber}}} + {}% + \setcounter{cbx@tempcnta}{0}% + \global\undef\cbx@lastprefix} + +\newbibmacro*{textcite}{% + \iffieldequals{namehash}{\cbx@lasthash} + {\usebibmacro{cite:comp}} + {\usebibmacro{cite:dump}% + \ifbool{cbx:parens} + {\printtext{\bibclosebracket}\global\boolfalse{cbx:parens}} + {}% + \iffirstcitekey + {} + {\textcitedelim}% + \usebibmacro{cite:init}% + \ifnameundef{labelname} + {\printfield[citetitle]{labeltitle}} + {\printnames{labelname}}% + \setunit*{\printdelim{namelabeldelim}}% + \printtext{\bibopenbracket}\global\booltrue{cbx:parens}% + \ifnumequal{\value{citecount}}{1} + {\usebibmacro{prenote}} + {}% + \usebibmacro{cite:comp}% + \stepcounter{textcitecount}% + \savefield{namehash}{\cbx@lasthash}}} + +\DeclareCiteCommand{\cite}[\mkbibbrackets] + {\usebibmacro{cite:init}% + \usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite:comp}} + {} + {\usebibmacro{cite:dump}% + \usebibmacro{postnote}} + +\DeclareCiteCommand{\parencite}[\mkbibbrackets] + {\usebibmacro{cite:init}% + \usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite:comp}} + {} + {\usebibmacro{cite:dump}% + \usebibmacro{postnote}} + +\DeclareCiteCommand{\footcite}[\mkbibfootnote] + {\usebibmacro{cite:init}% + \usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite:comp}} + {} + {\usebibmacro{cite:dump}% + \usebibmacro{postnote}} + +\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext] + {\usebibmacro{cite:init}% + \usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite:comp}} + {} + {\usebibmacro{cite:dump}% + \usebibmacro{postnote}} + +\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibbrackets\mkbibfootnote] + {\usebibmacro{cite:init}% + \usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite:comp}} + {} + {\usebibmacro{cite:dump}% + \usebibmacro{postnote}} + +\DeclareCiteCommand{\supercite}[\mkbibsuperscript] + {\usebibmacro{cite:init}% + \let\multicitedelim=\supercitedelim + \iffieldundef{prenote} + {} + {\BibliographyWarning{Ignoring prenote argument}}% + \iffieldundef{postnote} + {} + {\BibliographyWarning{Ignoring postnote argument}}} + {\usebibmacro{citeindex}% + \usebibmacro{cite:comp}} + {} + {\usebibmacro{cite:dump}} + +\DeclareCiteCommand{\cbx@textcite} + {\usebibmacro{cite:init}} + {\usebibmacro{citeindex}% + \usebibmacro{textcite}} + {} + {\usebibmacro{cite:dump}% + \usebibmacro{postnote}% + \ifbool{cbx:parens} + {\bibclosebracket\global\boolfalse{cbx:parens}} + {}} + +\DeclareCiteCommand{\textcite}[\cbx@textcite@init\cbx@textcite] + {\gdef\cbx@savedkeys{}% + \citetrackerfalse% + \pagetrackerfalse% + \DeferNextCitekeyHook% + \usebibmacro{cite:init}} + {\ifthenelse{\iffirstcitekey\AND\value{multicitetotal}>0} + {\protected@xappto\cbx@savedcites{()(\thefield{multipostnote})}% + \global\clearfield{multipostnote}} + {}% + \xappto\cbx@savedkeys{\thefield{entrykey},}% + \iffieldequals{namehash}{\cbx@lasthash} + {} + {\stepcounter{textcitetotal}% + \savefield{namehash}{\cbx@lasthash}}} + {} + {\protected@xappto\cbx@savedcites{% + [\thefield{prenote}][\thefield{postnote}]{\cbx@savedkeys}}} + +% textcite has nested \DeclareCiteCommand definitions for textcite and we want to use +% the normal textcite context +\DeclareDelimcontextAlias{cbx@textcite}{textcite} + +\newrobustcmd{\cbx@textcite@init}[2]{% + \setcounter{textcitetotal}{0}% + \setcounter{textcitecount}{0}% + \def\cbx@savedcites{#1}#2\cbx@savedcites\empty} + +\DeclareMultiCiteCommand{\cbx@textcites}{\cbx@textcite}{} +\DeclareMultiCiteCommand{\textcites}[\cbx@textcites@init\cbx@textcites]{\textcite}{} + +\let\cbx@textcites@init\cbx@textcite@init +\pretocmd{\cbx@textcites@init}{\UseNextMultiCiteHook}{}{} + +\DeclareMultiCiteCommand{\cites}[\mkbibbrackets]{\cite}{\multicitedelim} +\DeclareMultiCiteCommand{\parencites}[\mkbibbrackets]{\parencite}{\multicitedelim} +\DeclareMultiCiteCommand{\smartcites}[\iffootnote\mkbibbrackets\mkbibfootnote] + {\smartcite}{\multicitedelim} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/cbx/numeric-verb.cbx b/macros/latex/contrib/biblatex/latex/cbx/numeric-verb.cbx new file mode 100644 index 0000000000..e64e19e810 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/cbx/numeric-verb.cbx @@ -0,0 +1,100 @@ +\ProvidesFile{numeric-verb.cbx} +[\abx@cbxid] + +\ExecuteBibliographyOptions{labelnumber,autocite=inline} + +\renewcommand*{\multicitedelim}{\addcomma\space} +\renewcommand*{\iffinalcitedelim}{\iflastcitekey} + +\providebool{bbx:subentry} + +\DeclareFieldFormat{entrysetcount}{\mknumalph{#1}} + +\newbibmacro*{cite}{% + \printtext[bibhyperref]{% + \printfield{labelprefix}% + \printfield{labelnumber}% + \ifbool{bbx:subentry} + {\printfield{entrysetcount}} + {}}} + +\newbibmacro*{textcite}{% + \ifnameundef{labelname} + {\printfield[citetitle]{labeltitle}} + {\printnames{labelname}}% + \printdelim{namelabeldelim}\bibopenbracket + \ifnumequal{\value{citecount}}{1} + {\usebibmacro{prenote}} + {}% + \usebibmacro{cite}} + +\DeclareCiteCommand{\cite} + {\bibopenbracket + \usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \ifnumgreater{\value{citecount}}{1} + {\bibopenbracket} + {}% + \usebibmacro{cite}} + {\bibclosebracket\multicitedelim} + {\usebibmacro{postnote}% + \bibclosebracket} + +\DeclareCiteCommand{\parencite}[\mkbibbrackets] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\footcite}[\mkbibfootnote] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibbrackets\mkbibfootnote] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\textcite} + {} + {\usebibmacro{citeindex}% + \iffirstcitekey + {\setcounter{textcitetotal}{1}} + {\stepcounter{textcitetotal}% + \textcitedelim}% + \usebibmacro{textcite}} + {\bibclosebracket} + {\usebibmacro{postnote}% + \bibclosebracket} + +\DeclareCiteCommand{\supercite}[\mkbibsuperscript] + {\iffieldundef{prenote} + {} + {\BibliographyWarning{Ignoring prenote argument}}% + \iffieldundef{postnote} + {} + {\BibliographyWarning{Ignoring postnote argument}}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\supercitedelim} + {} + +\DeclareMultiCiteCommand{\parencites}[\mkbibbrackets]{\parencite}{\multicitedelim} +\DeclareMultiCiteCommand{\smartcites}[\iffootnote\mkbibbrackets\mkbibfootnote] + {\smartcite}{\multicitedelim} +\DeclareMultiCiteCommand{\textcites}{\textcite}{} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/cbx/numeric.cbx b/macros/latex/contrib/biblatex/latex/cbx/numeric.cbx new file mode 100644 index 0000000000..8ea47d1338 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/cbx/numeric.cbx @@ -0,0 +1,156 @@ +\ProvidesFile{numeric.cbx} +[\abx@cbxid] + +\ExecuteBibliographyOptions{labelnumber,autocite=inline} + +\renewcommand*{\multicitedelim}{\addcomma\space} +\renewcommand*{\iffinalcitedelim}{% + \ifnumequal{\value{textcitecount}}{\value{textcitetotal}-1}} + +\providebool{bbx:subentry} +\newbool{cbx:parens} + +\DeclareFieldFormat{entrysetcount}{\mknumalph{#1}} + +\newbibmacro*{cite}{% + \printtext[bibhyperref]{% + \printfield{labelprefix}% + \printfield{labelnumber}% + \ifbool{bbx:subentry} + {\printfield{entrysetcount}} + {}}} + +\newbibmacro*{textcite}{% + \iffieldequals{namehash}{\cbx@lasthash} + {\setunit{\multicitedelim}} + {\ifnameundef{labelname} + {\printfield[citetitle]{labeltitle}} + {\printnames{labelname}}% + \setunit*{\printdelim{namelabeldelim}}% + \printtext{\bibopenbracket}\global\booltrue{cbx:parens}% + \stepcounter{textcitecount}% + \savefield{namehash}{\cbx@lasthash}}% + \ifnumequal{\value{citecount}}{1} + {\usebibmacro{prenote}} + {}% + \usebibmacro{cite}% + \setunit{% + \ifbool{cbx:parens} + {\bibclosebracket\global\boolfalse{cbx:parens}} + {}% + \textcitedelim}} + +\newbibmacro*{textcite:init}{% + \ifnumless{\value{multicitecount}}{2} + {\global\boolfalse{cbx:parens}% + \global\undef\cbx@lasthash} + {\global\undef\cbx@lasthash}} + +\newbibmacro*{textcite:postnote}{% + \usebibmacro{postnote}% + \ifthenelse{\value{multicitecount}=\value{multicitetotal}} + {\setunit{}% + \printtext{% + \ifbool{cbx:parens} + {\bibclosebracket\global\boolfalse{cbx:parens}} + {}}} + {\setunit{% + \ifbool{cbx:parens} + {\bibclosebracket\global\boolfalse{cbx:parens}} + {}% + \textcitedelim}}} + +\DeclareCiteCommand{\cite}[\mkbibbrackets] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\parencite}[\mkbibbrackets] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\footcite}[\mkbibfootnote] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibbrackets\mkbibfootnote] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\supercite}[\mkbibsuperscript] + {\iffieldundef{prenote} + {} + {\BibliographyWarning{Ignoring prenote argument}}% + \iffieldundef{postnote} + {} + {\BibliographyWarning{Ignoring postnote argument}}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\supercitedelim} + {} + +\DeclareCiteCommand{\cbx@textcite} + {\usebibmacro{textcite:init}} + {\usebibmacro{citeindex}% + \usebibmacro{textcite}} + {} + {\usebibmacro{textcite:postnote}} + +\DeclareCiteCommand{\textcite}[\cbx@textcite@init\cbx@textcite] + {\gdef\cbx@savedkeys{}% + \citetrackerfalse% + \pagetrackerfalse% + \DeferNextCitekeyHook% + \usebibmacro{textcite:init}} + {\ifthenelse{\iffirstcitekey\AND\value{multicitetotal}>0} + {\protected@xappto\cbx@savedcites{()(\thefield{multipostnote})}% + \global\clearfield{multipostnote}} + {}% + \xappto\cbx@savedkeys{\thefield{entrykey},}% + \iffieldequals{namehash}{\cbx@lasthash} + {} + {\stepcounter{textcitetotal}% + \savefield{namehash}{\cbx@lasthash}}} + {} + {\protected@xappto\cbx@savedcites{% + [\thefield{prenote}][\thefield{postnote}]{\cbx@savedkeys}}} + +% textcite has nested \DeclareCiteCommand definitions for textcite and we want to use +% the normal textcite context +\DeclareDelimcontextAlias{cbx@textcite}{textcite} + +\newrobustcmd{\cbx@textcite@init}[2]{% + \setcounter{textcitetotal}{0}% + \setcounter{textcitecount}{0}% + \def\cbx@savedcites{#1}#2\cbx@savedcites\empty} + +\DeclareMultiCiteCommand{\cbx@textcites}{\cbx@textcite}{} +\DeclareMultiCiteCommand{\textcites}[\cbx@textcites@init\cbx@textcites]{\textcite}{} + +\let\cbx@textcites@init\cbx@textcite@init +\pretocmd{\cbx@textcites@init}{\UseNextMultiCiteHook}{}{} + +\DeclareMultiCiteCommand{\cites}[\mkbibbrackets]{\cite}{\multicitedelim} +\DeclareMultiCiteCommand{\parencites}[\mkbibbrackets]{\parencite}{\multicitedelim} +\DeclareMultiCiteCommand{\smartcites}[\iffootnote\mkbibbrackets\mkbibfootnote] + {\smartcite}{\multicitedelim} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/cbx/reading.cbx b/macros/latex/contrib/biblatex/latex/cbx/reading.cbx new file mode 100644 index 0000000000..b9c47701d2 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/cbx/reading.cbx @@ -0,0 +1,6 @@ +\ProvidesFile{reading.cbx} +[\abx@cbxid] + +\RequireCitationStyle{authortitle} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/cbx/verbose-ibid.cbx b/macros/latex/contrib/biblatex/latex/cbx/verbose-ibid.cbx new file mode 100644 index 0000000000..7d9457779c --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/cbx/verbose-ibid.cbx @@ -0,0 +1,262 @@ +\ProvidesFile{verbose-ibid.cbx} +[\abx@cbxid] + +\InitializeCitationStyle{\numgdef{\cbx@resetcount}{\cbx@resetcount+1}} + +\DeclareFieldFormat{bibhyperlink}{% + \bibhyperlink{\iffootnote{f}{t}:\cbx@resetcount:\thefield{entrykey}}{#1}} +\DeclareFieldFormat{bibhypertarget}{% + \bibhypertarget{\iffootnote{f}{t}:\cbx@resetcount:\thefield{entrykey}}{#1}} + +\newcommand*{\cbx@resetcount}{0} +\providecommand*{\mkibid}[1]{#1} +\renewcommand*{\iffinalcitedelim}{% + \ifnumequal{\value{textcitecount}}{\value{textcitetotal}-1}} + +\newtoggle{cbx:loccit} + +\newbibmacro*{cite:citepages}{} +\newbibmacro*{cite:full:citepages}{} +\newbibmacro*{cite:postnote}{} + +\DeclareBibliographyOption[boolean]{ibidpage}[true]{% + \ifstrequal{#1}{true} + {\ExecuteBibliographyOptions{loccittracker=constrict}} + {\ExecuteBibliographyOptions{loccittracker=false}}} + +\DeclareBibliographyOption[string]{citepages}[permit]{% + \ifcsdef{cbx@opt@citepages@#1} + {\csuse{cbx@opt@citepages@#1}} + {\PackageError{biblatex} + {Invalid option 'citepages=#1'} + {Valid values are 'permit', 'suppress', 'omit', 'separate'.}}} + +\providebibmacro*{cite:citepages}{} +\providebibmacro*{cite:full:citepages}{} +\providebibmacro*{cite:postnote}{} + +\def\cbx@opt@citepages@permit{% + \renewbibmacro*{cite:citepages}{}% + \renewbibmacro*{cite:full:citepages}{}% + \renewbibmacro*{cite:postnote}{% + \usebibmacro{cite:postnote:ibidpage}}} + +\def\cbx@opt@citepages@suppress{% + \renewbibmacro*{cite:citepages}{}% + \renewbibmacro*{cite:full:citepages}{% + \clearfield{pages}% + \clearfield{pagetotal}}% + \renewbibmacro*{cite:postnote}{% + \usebibmacro{cite:postnote:ibidpage}}} + +\def\cbx@opt@citepages@omit{% + \renewbibmacro*{cite:citepages}{}% + \renewbibmacro*{cite:full:citepages}{% + \ifboolexpr{ + test {\ifnumequal{\value{citecount}}{\value{citetotal}}} + and + test {\iffieldpages{postnote}} + } + {\clearfield{pages}% + \clearfield{pagetotal}} + {}}% + \renewbibmacro*{cite:postnote}{% + \usebibmacro{cite:postnote:ibidpage}}} + +\def\cbx@opt@citepages@separate{% + \providetoggle{cbx:fullcite}% + \renewbibmacro*{cite:citepages}{% + \global\togglefalse{cbx:fullcite}}% + \renewbibmacro*{cite:full:citepages}{% + \global\toggletrue{cbx:fullcite}}% + \renewbibmacro*{cite:postnote}{% + \ifboolexpr{ + togl {cbx:fullcite} + and + test {\iffieldpages{postnote}} + and + test {\ifnumequal{\value{citecount}}{\value{citetotal}}} + and + ( + not test {\iffieldundef{pages}} + or + not test {\iffieldundef{pagetotal}} + ) + } + {\usebibmacro{cite:postnote:pages}} + {\usebibmacro{cite:postnote:ibidpage}}} + \providebibmacro*{cite:postnote:pages}{% + \setunit{\printdelim{postnotedelim}}% + \bibstring{thiscite}% + \setunit{\addspace}% + \printfield{postnote}}} + +\ExecuteBibliographyOptions{citetracker=context,ibidtracker=constrict, + pagetracker,autocite=footnote,citepages=permit} + +\newbibmacro*{cite}{% + \usebibmacro{cite:citepages}% + \global\togglefalse{cbx:loccit}% + \ifciteseen + {\iffieldundef{shorthand} + {\ifboolexpr{ + test {\ifciteibid} + and + not test {\iffirstonpage} + } + {\usebibmacro{cite:ibid}} + {\usebibmacro{cite:short}}} + {\usebibmacro{cite:shorthand}}} + {\usebibmacro{cite:full}}} + +\newbibmacro*{cite:full}{% + \usebibmacro{cite:full:citepages}% + \printtext[bibhypertarget]{% + \usedriver + {\DeclareNameAlias{sortname}{default}} + {\thefield{entrytype}}}% + \usebibmacro{shorthandintro}} + +\newbibmacro*{cite:short}{% + \printnames{labelname}% + \setunit*{\printdelim{nametitledelim}}% + \printtext[bibhyperlink]{% + \printfield[citetitle]{labeltitle}}} + +\newbibmacro*{cite:ibid}{% + \printtext[bibhyperlink]{\bibstring[\mkibid]{ibidem}}% + \ifloccit + {\global\toggletrue{cbx:loccit}} + {}} + +\newbibmacro*{cite:shorthand}{% + \printtext[bibhyperlink]{% + \printfield{shorthand}}} + +\newbibmacro*{cite:postnote:ibidpage}{% + \iftoggle{cbx:loccit} + {} + {\usebibmacro{postnote}}} + +\DeclareCiteCommand{\cite} + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\parencite}[\mkbibparens] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\footcite}[\mkbibfootnote] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibparens\mkbibfootnote] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\newbibmacro*{textcite}{% + \ifnameundef{labelname} + {\printfield[citetitle]{labeltitle}} + {\printnames{labelname}}} + +\newbibmacro*{textcite:init}{% + \citetrackerfalse% + \pagetrackerfalse% + \iffirstcitekey + {\global\undef\cbx@lasthash} + {}} + +\newbibmacro*{textcite:count}{% + \stepcounter{textcitetotal}% + \ifnumgreater{\value{uniquelist}}{\value{maxnames}} + {\ifnumgreater{\value{uniquelist}}{\value{textcitemaxnames}} + {\setcounter{textcitemaxnames}{\value{uniquelist}}} + {}} + {\ifnumless{\value{labelname}}{\value{maxnames}} + {\ifnumgreater{\value{labelname}}{\value{textcitemaxnames}} + {\setcounter{textcitemaxnames}{\value{labelname}}} + {}} + {\ifnumgreater{\value{maxnames}}{\value{textcitemaxnames}} + {\setcounter{textcitemaxnames}{\value{maxnames}}} + {}}}} + +\DeclareCiteCommand{\cbx@textcite} + {\usebibmacro{textcite:init}} + {\iffieldequals{namehash}{\cbx@lasthash} + {} + {\iffirstcitekey + {} + {\textcitedelim}% + \stepcounter{textcitecount}% + \usebibmacro{textcite}% + \savefield{namehash}{\cbx@lasthash}}} + {} + {} + +\DeclareCiteCommand{\textcite}[\cbx@textcite@init\cbx@textcite\footcite] + {\usebibmacro{textcite:init}% + \gdef\cbx@savedkeys{}% + \DeferNextCitekeyHook} + {\ifthenelse{\iffirstcitekey\AND\value{multicitetotal}>0} + {\protected@xappto\cbx@footcite@args{% + (\thefield{multiprenote})(\thefield{multipostnote})}} + {}% + \xappto\cbx@savedkeys{\thefield{entrykey},}% + \iffieldequals{namehash}{\cbx@lasthash} + {} + {\usebibmacro{textcite:count}% + \savefield{namehash}{\cbx@lasthash}}% + \ifnumequal{\value{citecount}}{\value{citetotal}} + {\protected@xappto\cbx@textcite@args{{\cbx@savedkeys}}% + \protected@xappto\cbx@footcite@args{% + [\thefield{prenote}][\thefield{postnote}]{\cbx@savedkeys}}% + \iflastcitekey + {\protected@xappto\cbx@textcite@args{\thefield{postpunct}}% + \protected@xappto\cbx@footcite@args{\nopunct}} + {}} + {}} + {} + {} + +% textcite has nested \DeclareCiteCommand definitions for textcite and we want to use +% the normal textcite context +\DeclareDelimcontextAlias{cbx@textcite}{textcite} + +\newrobustcmd{\cbx@textcite@init}[3]{% + \setcounter{textcitetotal}{0}% + \setcounter{textcitecount}{0}% + \setcounter{textcitemaxnames}{0}% + \def\cbx@textcite@args{#1}\def\cbx@footcite@args{#2}#3% + \cbx@textcite@args\@empty\cbx@footcite@args\@empty} + +\DeclareMultiCiteCommand{\cbx@textcites}{\cbx@textcite}{} +\DeclareMultiCiteCommand{\textcites} + [\cbx@textcites@init\cbx@textcites\footcites]{\textcite}{} + +\let\cbx@textcites@init\cbx@textcite@init +\pretocmd{\cbx@textcites@init}{% + \UseNextMultiCiteHook% + \AtNextMultiCite{% + \renewbibmacro{multiprenote}{}% + \renewbibmacro{multipostnote}{}}}{}{} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/cbx/verbose-inote.cbx b/macros/latex/contrib/biblatex/latex/cbx/verbose-inote.cbx new file mode 100644 index 0000000000..bb0b045754 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/cbx/verbose-inote.cbx @@ -0,0 +1,321 @@ +\ProvidesFile{verbose-inote.cbx} +[\abx@cbxid] + +\DeclareFieldFormat{bibhyperlink}{% + \bibhyperlink{% + \thefield{entrykey}:\csuse{cbx@\iffootnote{f}{t}@\thefield{entrykey}}}{#1}} +\DeclareFieldFormat{bibhypertarget}{% + \bibhypertarget{\thefield{entrykey}:\the\value{instcount}}{#1}} + +\providecommand*{\mkibid}[1]{#1} +\renewcommand*{\iffinalcitedelim}{% + \ifnumequal{\value{textcitecount}}{\value{textcitetotal}-1}} + +\newtoggle{cbx:loccit} +\newtoggle{cbx:pageref} + +\newbibmacro*{cite:citepages}{} +\newbibmacro*{cite:full:citepages}{} +\newbibmacro*{cite:postnote}{} + +\DeclareBibliographyOption[boolean]{ibidpage}[true]{% + \ifstrequal{#1}{true} + {\ExecuteBibliographyOptions{loccittracker=constrict}} + {\ExecuteBibliographyOptions{loccittracker=false}}} +\DeclareBibliographyOption[boolean]{pageref}[true]{% + \settoggle{cbx:pageref}{#1}} + +\DeclareBibliographyOption[string]{citepages}[permit]{% + \ifcsdef{cbx@opt@citepages@#1} + {\csuse{cbx@opt@citepages@#1}} + {\PackageError{biblatex} + {Invalid option 'citepages=#1'} + {Valid values are 'permit', 'suppress', 'omit', 'separate'.}}} + +\providebibmacro*{cite:citepages}{} +\providebibmacro*{cite:full:citepages}{} +\providebibmacro*{cite:postnote}{} + +\def\cbx@opt@citepages@permit{% + \renewbibmacro*{cite:citepages}{}% + \renewbibmacro*{cite:full:citepages}{}% + \renewbibmacro*{cite:postnote}{% + \usebibmacro{cite:postnote:ibidpage}}} + +\def\cbx@opt@citepages@suppress{% + \renewbibmacro*{cite:citepages}{}% + \renewbibmacro*{cite:full:citepages}{% + \clearfield{pages}% + \clearfield{pagetotal}}% + \renewbibmacro*{cite:postnote}{% + \usebibmacro{cite:postnote:ibidpage}}} + +\def\cbx@opt@citepages@omit{% + \renewbibmacro*{cite:citepages}{}% + \renewbibmacro*{cite:full:citepages}{% + \ifboolexpr{ + test {\ifnumequal{\value{citecount}}{\value{citetotal}}} + and + test {\iffieldpages{postnote}} + } + {\clearfield{pages}% + \clearfield{pagetotal}} + {}}% + \renewbibmacro*{cite:postnote}{% + \usebibmacro{cite:postnote:ibidpage}}} + +\def\cbx@opt@citepages@separate{% + \providetoggle{cbx:fullcite}% + \renewbibmacro*{cite:citepages}{% + \global\togglefalse{cbx:fullcite}}% + \renewbibmacro*{cite:full:citepages}{% + \global\toggletrue{cbx:fullcite}}% + \renewbibmacro*{cite:postnote}{% + \ifboolexpr{ + togl {cbx:fullcite} + and + test {\iffieldpages{postnote}} + and + test {\ifnumequal{\value{citecount}}{\value{citetotal}}} + and + ( + not test {\iffieldundef{pages}} + or + not test {\iffieldundef{pagetotal}} + ) + } + {\usebibmacro{cite:postnote:pages}} + {\usebibmacro{cite:postnote:ibidpage}}} + \providebibmacro*{cite:postnote:pages}{% + \setunit{\printdelim{postnotedelim}}% + \bibstring{thiscite}% + \setunit{\addspace}% + \printfield{postnote}}} + +\ExecuteBibliographyOptions{citetracker=context,ibidtracker=constrict, + singletitle,pagetracker,autocite=footnote,citepages=permit} + +\newbibmacro*{cite}{% + \usebibmacro{cite:citepages}% + \global\togglefalse{cbx:loccit}% + \ifciteseen + {\iffieldundef{shorthand} + {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage} + {\usebibmacro{cite:ibid}} + {\usebibmacro{cite:short}}} + {\usebibmacro{cite:shorthand}}} + {\usebibmacro{cite:full}% + \usebibmacro{cite:save}}} + +\newbibmacro*{cite:save}{% + \csxdef{cbx@t@\thefield{entrykey}}{\the\value{instcount}}} + +\newbibmacro*{cite:full}{% + \usebibmacro{cite:full:citepages}% + \printtext[bibhypertarget]{% + \usedriver + {\DeclareNameAlias{sortname}{default}} + {\thefield{entrytype}}}% + \usebibmacro{shorthandintro}} + +\newbibmacro*{cite:short}{% + \printnames{labelname}% + \setunit*{\printdelim{nametitledelim}}% + \printtext[bibhyperlink]{% + \printfield[citetitle]{labeltitle}}} + +\newbibmacro*{cite:shorthand}{% + \printtext[bibhyperlink]{\printfield{shorthand}}} + +\newbibmacro*{cite:ibid}{% + \printtext[bibhyperlink]{\bibstring[\mkibid]{ibidem}}% + \ifloccit + {\global\toggletrue{cbx:loccit}} + {}} + +\newbibmacro*{cite:postnote:ibidpage}{% + \iftoggle{cbx:loccit} + {} + {\usebibmacro{postnote}}} + +\newbibmacro*{footcite}{% + \usebibmacro{cite:citepages}% + \global\togglefalse{cbx:loccit}% + \ifciteseen + {\iffieldundef{shorthand} + {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage} + {\usebibmacro{footcite:ibid}} + {\usebibmacro{footcite:note}}} + {\usebibmacro{footcite:shorthand}}} + {\usebibmacro{footcite:full}% + \usebibmacro{footcite:save}}} + +\newbibmacro*{footcite:save}{% + \csxdef{cbx@f@\thefield{entrykey}}{\the\value{instcount}}% + \label{cbx@\the\value{instcount}}} + +\newbibmacro*{footcite:full}{% + \usebibmacro{cite:full:citepages}% + \printtext[bibhypertarget]{% + \usedriver + {\DeclareNameAlias{sortname}{default}} + {\thefield{entrytype}}}% + \usebibmacro{shorthandintro}} + +\newbibmacro*{footcite:note}{% + \ifnameundef{labelname} + {\printfield{label}} + {\printnames{labelname}}% + \ifsingletitle + {} + {\setunit*{\printdelim{nametitledelim}}% + \printfield[title]{labeltitle}}% + \setunit*{\addcomma\space}% + \printtext{% + \bibstring{seenote}\addnbspace + \ref{cbx@\csuse{cbx@f@\thefield{entrykey}}}% + \iftoggle{cbx:pageref} + {\ifsamepage{\the\value{instcount}} + {\csuse{cbx@f@\thefield{entrykey}}} + {} + {\addcomma\space\bibstring{page}\addnbspace + \pageref{cbx@\csuse{cbx@f@\thefield{entrykey}}}}} + {}}} + +\newbibmacro*{footcite:shorthand}{% + \printtext[bibhyperlink]{\printfield{shorthand}}} + +\newbibmacro*{footcite:ibid}{% + \printtext[bibhyperlink]{\bibstring[\mkibid]{ibidem}}% + \ifloccit + {\global\toggletrue{cbx:loccit}} + {}} + +\DeclareCiteCommand{\cite} + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \iffootnote + {\usebibmacro{footcite}} + {\usebibmacro{cite}}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\parencite}[\mkbibparens] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \iffootnote + {\usebibmacro{footcite}} + {\usebibmacro{cite}}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\footcite}[\mkbibfootnote] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{footcite}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{footcite}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibparens\mkbibfootnote] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \iffootnote + {\usebibmacro{footcite}} + {\usebibmacro{cite}}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\newbibmacro*{textcite}{% + \ifnameundef{labelname} + {\printfield[citetitle]{labeltitle}} + {\printnames{labelname}}} + +\newbibmacro*{textcite:init}{% + \citetrackerfalse% + \pagetrackerfalse% + \iffirstcitekey + {\global\undef\cbx@lasthash} + {}} + +\newbibmacro*{textcite:count}{% + \stepcounter{textcitetotal}% + \ifnumgreater{\value{uniquelist}}{\value{maxnames}} + {\ifnumgreater{\value{uniquelist}}{\value{textcitemaxnames}} + {\setcounter{textcitemaxnames}{\value{uniquelist}}} + {}} + {\ifnumless{\value{labelname}}{\value{maxnames}} + {\ifnumgreater{\value{labelname}}{\value{textcitemaxnames}} + {\setcounter{textcitemaxnames}{\value{labelname}}} + {}} + {\ifnumgreater{\value{maxnames}}{\value{textcitemaxnames}} + {\setcounter{textcitemaxnames}{\value{maxnames}}} + {}}}} + +\DeclareCiteCommand{\cbx@textcite} + {\usebibmacro{textcite:init}} + {\iffieldequals{namehash}{\cbx@lasthash} + {} + {\iffirstcitekey + {} + {\textcitedelim}% + \stepcounter{textcitecount}% + \usebibmacro{textcite}% + \savefield{namehash}{\cbx@lasthash}}} + {} + {} + +\DeclareCiteCommand{\textcite}[\cbx@textcite@init\cbx@textcite\footcite] + {\usebibmacro{textcite:init}% + \gdef\cbx@savedkeys{}% + \DeferNextCitekeyHook} + {\ifthenelse{\iffirstcitekey\AND\value{multicitetotal}>0} + {\protected@xappto\cbx@footcite@args{% + (\thefield{multiprenote})(\thefield{multipostnote})}} + {}% + \xappto\cbx@savedkeys{\thefield{entrykey},}% + \iffieldequals{namehash}{\cbx@lasthash} + {} + {\usebibmacro{textcite:count}% + \savefield{namehash}{\cbx@lasthash}}% + \ifnumequal{\value{citecount}}{\value{citetotal}} + {\protected@xappto\cbx@textcite@args{{\cbx@savedkeys}}% + \protected@xappto\cbx@footcite@args{% + [\thefield{prenote}][\thefield{postnote}]{\cbx@savedkeys}}% + \iflastcitekey + {\protected@xappto\cbx@textcite@args{\thefield{postpunct}}% + \protected@xappto\cbx@footcite@args{\nopunct}} + {}} + {}} + {} + {} + +% textcite has nested \DeclareCiteCommand definitions for textcite and we want to use +% the normal textcite context +\DeclareDelimcontextAlias{cbx@textcite}{textcite} + +\newrobustcmd{\cbx@textcite@init}[3]{% + \setcounter{textcitetotal}{0}% + \setcounter{textcitecount}{0}% + \setcounter{textcitemaxnames}{0}% + \def\cbx@textcite@args{#1}\def\cbx@footcite@args{#2}#3% + \cbx@textcite@args\empty\cbx@footcite@args\empty} + +\DeclareMultiCiteCommand{\cbx@textcites}{\cbx@textcite}{} +\DeclareMultiCiteCommand{\textcites} + [\cbx@textcites@init\cbx@textcites\footcites]{\textcite}{} + +\let\cbx@textcites@init\cbx@textcite@init +\pretocmd{\cbx@textcites@init}{% + \UseNextMultiCiteHook% + \AtNextMultiCite{% + \renewbibmacro{multiprenote}{}% + \renewbibmacro{multipostnote}{}}}{}{} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/cbx/verbose-note.cbx b/macros/latex/contrib/biblatex/latex/cbx/verbose-note.cbx new file mode 100644 index 0000000000..b1c8f0683a --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/cbx/verbose-note.cbx @@ -0,0 +1,292 @@ +\ProvidesFile{verbose-note.cbx} +[\abx@cbxid] + +\DeclareFieldFormat{bibhyperlink}{% + \bibhyperlink{% + \thefield{entrykey}:\csuse{cbx@\iffootnote{f}{t}@\thefield{entrykey}}}{#1}} +\DeclareFieldFormat{bibhypertarget}{% + \bibhypertarget{\thefield{entrykey}:\the\value{instcount}}{#1}} + +\newtoggle{cbx:pageref} + +\renewcommand*{\iffinalcitedelim}{% + \ifnumequal{\value{textcitecount}}{\value{textcitetotal}-1}} + +\newbibmacro*{cite:citepages}{} +\newbibmacro*{cite:full:citepages}{} +\newbibmacro*{cite:postnote}{} + +\DeclareBibliographyOption[boolean]{pageref}[true]{% + \settoggle{cbx:pageref}{#1}% + \iftoggle{cbx:pageref} + {\ExecuteBibliographyOptions{pagetracker}} + {}} + +\DeclareBibliographyOption[string]{citepages}[permit]{% + \ifcsdef{cbx@opt@citepages@#1} + {\csuse{cbx@opt@citepages@#1}} + {\PackageError{biblatex} + {Invalid option 'citepages=#1'} + {Valid values are 'permit', 'suppress', 'omit', 'separate'.}}} + +\providebibmacro*{cite:citepages}{} +\providebibmacro*{cite:full:citepages}{} +\providebibmacro*{cite:postnote}{} + +\def\cbx@opt@citepages@permit{% + \renewbibmacro*{cite:citepages}{}% + \renewbibmacro*{cite:full:citepages}{}% + \renewbibmacro*{cite:postnote}{\usebibmacro{postnote}}} + +\def\cbx@opt@citepages@suppress{% + \renewbibmacro*{cite:citepages}{}% + \renewbibmacro*{cite:full:citepages}{% + \clearfield{pages}% + \clearfield{pagetotal}}% + \renewbibmacro*{cite:postnote}{\usebibmacro{postnote}}} + +\def\cbx@opt@citepages@omit{% + \renewbibmacro*{cite:citepages}{}% + \renewbibmacro*{cite:full:citepages}{% + \ifboolexpr{ + test {\ifnumequal{\value{citecount}}{\value{citetotal}}} + and + test {\iffieldpages{postnote}} + } + {\clearfield{pages}% + \clearfield{pagetotal}} + {}}% + \renewbibmacro*{cite:postnote}{\usebibmacro{postnote}}} + +\def\cbx@opt@citepages@separate{% + \providetoggle{cbx:fullcite}% + \renewbibmacro*{cite:citepages}{% + \global\togglefalse{cbx:fullcite}}% + \renewbibmacro*{cite:full:citepages}{% + \global\toggletrue{cbx:fullcite}}% + \renewbibmacro*{cite:postnote}{% + \ifboolexpr{ + togl {cbx:fullcite} + and + test {\iffieldpages{postnote}} + and + test {\ifnumequal{\value{citecount}}{\value{citetotal}}} + and + ( + not test {\iffieldundef{pages}} + or + not test {\iffieldundef{pagetotal}} + ) + } + {\usebibmacro{cite:postnote:pages}} + {\usebibmacro{postnote}}} + \providebibmacro*{cite:postnote:pages}{% + \setunit{\printdelim{postnotedelim}}% + \bibstring{thiscite}% + \setunit{\addspace}% + \printfield{postnote}}} + +\ExecuteBibliographyOptions{citetracker=context,singletitle,autocite=footnote, + citepages=permit} + +\newbibmacro*{cite}{% + \usebibmacro{cite:citepages}% + \ifciteseen + {\iffieldundef{shorthand} + {\usebibmacro{cite:short}} + {\usebibmacro{cite:shorthand}}} + {\usebibmacro{cite:full}% + \usebibmacro{cite:save}}} + +\newbibmacro*{cite:save}{% + \csxdef{cbx@t@\thefield{entrykey}}{\the\value{instcount}}} + +\newbibmacro*{cite:full}{% + \usebibmacro{cite:full:citepages}% + \printtext[bibhypertarget]{% + \usedriver + {\DeclareNameAlias{sortname}{default}} + {\thefield{entrytype}}}% + \usebibmacro{shorthandintro}} + +\newbibmacro*{cite:short}{% + \printnames{labelname}% + \setunit*{\printdelim{nametitledelim}}% + \printtext[bibhyperlink]{% + \printfield[citetitle]{labeltitle}}} + +\newbibmacro*{cite:shorthand}{% + \printtext[bibhyperlink]{\printfield{shorthand}}} + +\newbibmacro*{footcite}{% + \usebibmacro{cite:citepages}% + \ifciteseen + {\iffieldundef{shorthand} + {\usebibmacro{footcite:note}} + {\usebibmacro{footcite:shorthand}}} + {\usebibmacro{footcite:full}% + \usebibmacro{footcite:save}}} + +\newbibmacro*{footcite:save}{% + \csxdef{cbx@f@\thefield{entrykey}}{\the\value{instcount}}% + \label{cbx@\the\value{instcount}}} + +\newbibmacro*{footcite:full}{% + \usebibmacro{cite:full:citepages}% + \printtext[bibhypertarget]{% + \usedriver + {\DeclareNameAlias{sortname}{default}} + {\thefield{entrytype}}}% + \usebibmacro{shorthandintro}} + +\newbibmacro*{footcite:note}{% + \ifnameundef{labelname} + {\printfield{label}} + {\printnames{labelname}}% + \ifsingletitle + {} + {\setunit*{\printdelim{nametitledelim}}% + \printfield[title]{labeltitle}}% + \setunit*{\addcomma\space}% + \printtext{% + \bibstring{seenote}\addnbspace + \ref{cbx@\csuse{cbx@f@\thefield{entrykey}}}% + \iftoggle{cbx:pageref} + {\ifsamepage{\the\value{instcount}} + {\csuse{cbx@f@\thefield{entrykey}}} + {} + {\addcomma\space\bibstring{page}\addnbspace + \pageref{cbx@\csuse{cbx@f@\thefield{entrykey}}}}} + {}}} + +\newbibmacro*{footcite:shorthand}{% + \printtext[bibhyperlink]{\printfield{shorthand}}} + +\DeclareCiteCommand{\cite} + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \iffootnote + {\usebibmacro{footcite}} + {\usebibmacro{cite}}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\parencite}[\mkbibparens] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \iffootnote + {\usebibmacro{footcite}} + {\usebibmacro{cite}}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\footcite}[\mkbibfootnote] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{footcite}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{footcite}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibparens\mkbibfootnote] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \iffootnote + {\usebibmacro{footcite}} + {\usebibmacro{cite}}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\newbibmacro*{textcite}{% + \ifnameundef{labelname} + {\printfield[citetitle]{labeltitle}} + {\printnames{labelname}}} + +\newbibmacro*{textcite:init}{% + \citetrackerfalse% + \pagetrackerfalse% + \iffirstcitekey + {\global\undef\cbx@lasthash} + {}} + +\newbibmacro*{textcite:count}{% + \stepcounter{textcitetotal}% + \ifnumgreater{\value{uniquelist}}{\value{maxnames}} + {\ifnumgreater{\value{uniquelist}}{\value{textcitemaxnames}} + {\setcounter{textcitemaxnames}{\value{uniquelist}}} + {}} + {\ifnumless{\value{labelname}}{\value{maxnames}} + {\ifnumgreater{\value{labelname}}{\value{textcitemaxnames}} + {\setcounter{textcitemaxnames}{\value{labelname}}} + {}} + {\ifnumgreater{\value{maxnames}}{\value{textcitemaxnames}} + {\setcounter{textcitemaxnames}{\value{maxnames}}} + {}}}} + +\DeclareCiteCommand{\cbx@textcite} + {\usebibmacro{textcite:init}} + {\iffieldequals{namehash}{\cbx@lasthash} + {} + {\iffirstcitekey + {} + {\textcitedelim}% + \stepcounter{textcitecount}% + \usebibmacro{textcite}% + \savefield{namehash}{\cbx@lasthash}}} + {} + {} + +\DeclareCiteCommand{\textcite}[\cbx@textcite@init\cbx@textcite\footcite] + {\usebibmacro{textcite:init}% + \gdef\cbx@savedkeys{}% + \DeferNextCitekeyHook} + {\ifthenelse{\iffirstcitekey\AND\value{multicitetotal}>0} + {\protected@xappto\cbx@footcite@args{% + (\thefield{multiprenote})(\thefield{multipostnote})}} + {}% + \xappto\cbx@savedkeys{\thefield{entrykey},}% + \iffieldequals{namehash}{\cbx@lasthash} + {} + {\usebibmacro{textcite:count}% + \savefield{namehash}{\cbx@lasthash}}% + \ifnumequal{\value{citecount}}{\value{citetotal}} + {\protected@xappto\cbx@textcite@args{{\cbx@savedkeys}}% + \protected@xappto\cbx@footcite@args{% + [\thefield{prenote}][\thefield{postnote}]{\cbx@savedkeys}}% + \iflastcitekey + {\protected@xappto\cbx@textcite@args{\thefield{postpunct}}% + \protected@xappto\cbx@footcite@args{\nopunct}} + {}} + {}} + {} + {} + +% textcite has nested \DeclareCiteCommand definitions for textcite and we want to use +% the normal textcite context +\DeclareDelimcontextAlias{cbx@textcite}{textcite} + +\newrobustcmd{\cbx@textcite@init}[3]{% + \setcounter{textcitetotal}{0}% + \setcounter{textcitecount}{0}% + \setcounter{textcitemaxnames}{0}% + \def\cbx@textcite@args{#1}\def\cbx@footcite@args{#2}#3% + \cbx@textcite@args\empty\cbx@footcite@args\empty} + +\DeclareMultiCiteCommand{\cbx@textcites}{\cbx@textcite}{} +\DeclareMultiCiteCommand{\textcites} + [\cbx@textcites@init\cbx@textcites\footcites]{\textcite}{} + +\let\cbx@textcites@init\cbx@textcite@init +\pretocmd{\cbx@textcites@init}{% + \UseNextMultiCiteHook% + \AtNextMultiCite{% + \renewbibmacro{multiprenote}{}% + \renewbibmacro{multipostnote}{}}}{}{} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/cbx/verbose-trad1.cbx b/macros/latex/contrib/biblatex/latex/cbx/verbose-trad1.cbx new file mode 100644 index 0000000000..1f24a4dac9 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/cbx/verbose-trad1.cbx @@ -0,0 +1,294 @@ +\ProvidesFile{verbose-trad1.cbx} +[\abx@cbxid] + +\InitializeCitationStyle{\numgdef{\cbx@resetcount}{\cbx@resetcount+1}} + +\DeclareFieldFormat{bibhyperlink}{% + \bibhyperlink{\iffootnote{f}{t}:\cbx@resetcount:\thefield{entrykey}}{#1}} +\DeclareFieldFormat{bibhypertarget}{% + \bibhypertarget{\iffootnote{f}{t}:\cbx@resetcount:\thefield{entrykey}}{#1}} + +\newcommand*{\cbx@resetcount}{0} +\providecommand*{\mkibid}[1]{#1} +\renewcommand*{\iffinalcitedelim}{% + \ifnumequal{\value{textcitecount}}{\value{textcitetotal}-1}} + +\newtoggle{cbx:ibidpage} +\newtoggle{cbx:loccit} +\newbool{cbx:noidem} + +\DeclareBibliographyOption[boolean]{ibidpage}[true]{% + \settoggle{cbx:ibidpage}{#1}} + +\DeclareBibliographyOption[boolean]{strict}[true]{% + \ifstrequal{#1}{true} + {\ExecuteBibliographyOptions{ibidtracker=constrict,idemtracker=constrict}} + {\ExecuteBibliographyOptions{ibidtracker=context,idemtracker=context}}} + +\DeclareBibliographyOption[string]{citepages}[permit]{% + \ifcsdef{cbx@opt@citepages@#1} + {\csuse{cbx@opt@citepages@#1}} + {\PackageError{biblatex} + {Invalid option 'citepages=#1'} + {Valid values are 'permit', 'suppress', 'omit', 'separate'.}}} + +\providebibmacro*{cite:citepages}{} +\providebibmacro*{cite:full:citepages}{} +\providebibmacro*{cite:postnote}{} + +\def\cbx@opt@citepages@permit{% + \renewbibmacro*{cite:citepages}{}% + \renewbibmacro*{cite:full:citepages}{}% + \renewbibmacro*{cite:postnote}{% + \usebibmacro{cite:postnote:ibidpage}}} + +\def\cbx@opt@citepages@suppress{% + \renewbibmacro*{cite:citepages}{}% + \renewbibmacro*{cite:full:citepages}{% + \clearfield{pages}% + \clearfield{pagetotal}}% + \renewbibmacro*{cite:postnote}{% + \usebibmacro{cite:postnote:ibidpage}}} + +\def\cbx@opt@citepages@omit{% + \renewbibmacro*{cite:citepages}{}% + \renewbibmacro*{cite:full:citepages}{% + \ifboolexpr{ + test {\ifnumequal{\value{citecount}}{\value{citetotal}}} + and + test {\iffieldpages{postnote}} + } + {\clearfield{pages}% + \clearfield{pagetotal}} + {}}% + \renewbibmacro*{cite:postnote}{% + \usebibmacro{cite:postnote:ibidpage}}} + +\def\cbx@opt@citepages@separate{% + \providetoggle{cbx:fullcite}% + \renewbibmacro*{cite:citepages}{% + \global\togglefalse{cbx:fullcite}}% + \renewbibmacro*{cite:full:citepages}{% + \global\toggletrue{cbx:fullcite}}% + \renewbibmacro*{cite:postnote}{% + \ifboolexpr{ + togl {cbx:fullcite} + and + test {\iffieldpages{postnote}} + and + test {\ifnumequal{\value{citecount}}{\value{citetotal}}} + and + ( + not test {\iffieldundef{pages}} + or + not test {\iffieldundef{pagetotal}} + ) + } + {\usebibmacro{cite:postnote:pages}} + {\usebibmacro{cite:postnote:ibidpage}}} + \providebibmacro*{cite:postnote:pages}{% + \setunit{\printdelim{postnotedelim}}% + \bibstring{thiscite}% + \setunit{\addspace}% + \printfield{postnote}}} + +\ExecuteBibliographyOptions{citetracker=context,ibidtracker=constrict, + idemtracker=constrict,opcittracker=context,loccittracker=context, + autocite=footnote,citepages=permit} + +\newbibmacro*{cite:save}{% + \csxdef{cbx@lastcite@\thefield{entrykey}}{\the\value{instcount}}% + \global\boolfalse{cbx:noidem}} + +\newbibmacro*{cite}{% + \usebibmacro{cite:citepages}% + \global\togglefalse{cbx:loccit}% + \bibhypertarget{cite\the\value{instcount}}{% + \ifciteseen + {\iffieldundef{shorthand} + {\ifciteibid + {\usebibmacro{cite:ibid}} + {\ifthenelse{\ifciteidem\AND\NOT\boolean{cbx:noidem}} + {\usebibmacro{cite:idem}% + \usebibmacro{cite:title}} + {\ifnameundef{labelname} + {\usebibmacro{cite:title}} + {\usebibmacro{cite:name}% + \ifopcit + {\ifloccit + {\usebibmacro{cite:loccit}} + {\usebibmacro{cite:opcit}}} + {\usebibmacro{cite:title}}}}}% + \usebibmacro{cite:save}} + {\usebibmacro{cite:shorthand}}} + {\usebibmacro{cite:full}% + \usebibmacro{cite:save}}}} + +\newbibmacro*{cite:full}{% + \usebibmacro{cite:full:citepages}% + \printtext[bibhypertarget]{% + \usedriver + {\DeclareNameAlias{sortname}{default}} + {\thefield{entrytype}}}% + \usebibmacro{shorthandintro}} + +\newbibmacro*{cite:name}{% + \printnames{labelname}% + \setunit*{\printdelim{nametitledelim}}} + +\newbibmacro*{cite:idem}{% + \bibstring[\mkibid]{idem\thefield{gender}}% + \setunit{\printdelim{nametitledelim}}} + +\newbibmacro*{cite:title}{% + \printtext[bibhyperlink]{% + \printfield[citetitle]{labeltitle}}} + +\newbibmacro*{cite:opcit}{% + \printtext[bibhyperlink]{\bibstring[\mkibid]{opcit}}} + +\newbibmacro*{cite:loccit}{% + \printtext{% + \bibhyperlink{cite\csuse{cbx@lastcite@\thefield{entrykey}}}{% + \bibstring[\mkibid]{loccit}}}% + \global\toggletrue{cbx:loccit}} + +\newbibmacro*{cite:ibid}{% + \printtext{% + \bibhyperlink{cite\csuse{cbx@lastcite@\thefield{entrykey}}}{% + \bibstring[\mkibid]{ibidem}}}% + \ifboolexpr{ test {\ifloccit} and togl {cbx:ibidpage} } + {\global\toggletrue{cbx:loccit}} + {}} + +\newbibmacro*{cite:shorthand}{% + \printtext[bibhyperlink]{\printfield{shorthand}}% + \global\booltrue{cbx:noidem}} + +\newbibmacro*{cite:postnote:ibidpage}{% + \iftoggle{cbx:loccit} + {} + {\usebibmacro{postnote}}} + +\DeclareCiteCommand{\cite} + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\parencite}[\mkbibparens] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\footcite}[\mkbibfootnote] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibparens\mkbibfootnote] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\newbibmacro*{textcite}{% + \ifnameundef{labelname} + {\printfield[citetitle]{labeltitle}} + {\printnames{labelname}}} + +\newbibmacro*{textcite:init}{% + \citetrackerfalse% + \pagetrackerfalse% + \iffirstcitekey + {\global\undef\cbx@lasthash} + {}} + +\newbibmacro*{textcite:count}{% + \stepcounter{textcitetotal}% + \ifnumgreater{\value{uniquelist}}{\value{maxnames}} + {\ifnumgreater{\value{uniquelist}}{\value{textcitemaxnames}} + {\setcounter{textcitemaxnames}{\value{uniquelist}}} + {}} + {\ifnumless{\value{labelname}}{\value{maxnames}} + {\ifnumgreater{\value{labelname}}{\value{textcitemaxnames}} + {\setcounter{textcitemaxnames}{\value{labelname}}} + {}} + {\ifnumgreater{\value{maxnames}}{\value{textcitemaxnames}} + {\setcounter{textcitemaxnames}{\value{maxnames}}} + {}}}} + +\DeclareCiteCommand{\cbx@textcite} + {\usebibmacro{textcite:init}} + {\iffieldequals{namehash}{\cbx@lasthash} + {} + {\iffirstcitekey + {} + {\textcitedelim}% + \stepcounter{textcitecount}% + \usebibmacro{textcite}% + \savefield{namehash}{\cbx@lasthash}}} + {} + {} + +\DeclareCiteCommand{\textcite}[\cbx@textcite@init\cbx@textcite\footcite] + {\usebibmacro{textcite:init}% + \gdef\cbx@savedkeys{}% + \DeferNextCitekeyHook} + {\ifthenelse{\iffirstcitekey\AND\value{multicitetotal}>0} + {\protected@xappto\cbx@footcite@args{% + (\thefield{multiprenote})(\thefield{multipostnote})}} + {}% + \xappto\cbx@savedkeys{\thefield{entrykey},}% + \iffieldequals{namehash}{\cbx@lasthash} + {} + {\usebibmacro{textcite:count}% + \savefield{namehash}{\cbx@lasthash}}% + \ifnumequal{\value{citecount}}{\value{citetotal}} + {\protected@xappto\cbx@textcite@args{{\cbx@savedkeys}}% + \protected@xappto\cbx@footcite@args{% + [\thefield{prenote}][\thefield{postnote}]{\cbx@savedkeys}}% + \iflastcitekey + {\protected@xappto\cbx@textcite@args{\thefield{postpunct}}% + \protected@xappto\cbx@footcite@args{\nopunct}} + {}} + {}} + {} + {} + +% textcite has nested \DeclareCiteCommand definitions for textcite and we want to use +% the normal textcite context +\DeclareDelimcontextAlias{cbx@textcite}{textcite} + +\newrobustcmd{\cbx@textcite@init}[3]{% + \setcounter{textcitetotal}{0}% + \setcounter{textcitecount}{0}% + \setcounter{textcitemaxnames}{0}% + \def\cbx@textcite@args{#1}\def\cbx@footcite@args{#2}#3% + \cbx@textcite@args\empty\cbx@footcite@args\empty} + +\DeclareMultiCiteCommand{\cbx@textcites}{\cbx@textcite}{} +\DeclareMultiCiteCommand{\textcites} + [\cbx@textcites@init\cbx@textcites\footcites]{\textcite}{} + +\let\cbx@textcites@init\cbx@textcite@init +\pretocmd{\cbx@textcites@init}{% + \UseNextMultiCiteHook% + \AtNextMultiCite{% + \renewbibmacro{multiprenote}{}% + \renewbibmacro{multipostnote}{}}}{}{} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/cbx/verbose-trad2.cbx b/macros/latex/contrib/biblatex/latex/cbx/verbose-trad2.cbx new file mode 100644 index 0000000000..60e5dfc802 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/cbx/verbose-trad2.cbx @@ -0,0 +1,288 @@ +\ProvidesFile{verbose-trad2.cbx} +[\abx@cbxid] + +\InitializeCitationStyle{\numgdef{\cbx@resetcount}{\cbx@resetcount+1}} + +\DeclareFieldFormat{bibhyperlink}{% + \bibhyperlink{\iffootnote{f}{t}:\cbx@resetcount:\thefield{entrykey}}{#1}} + +\DeclareFieldFormat{bibhypertarget}{% + \bibhypertarget{\iffootnote{f}{t}:\cbx@resetcount:\thefield{entrykey}}{#1}} + +\newcommand*{\cbx@resetcount}{0} +\providecommand*{\mkibid}[1]{#1} +\renewcommand*{\iffinalcitedelim}{% + \ifnumequal{\value{textcitecount}}{\value{textcitetotal}-1}} + +\newtoggle{cbx:fullcite} +\newtoggle{cbx:loccit} +\newbool{cbx:noidem} + +\newbibmacro*{cite:citepages}{} +\newbibmacro*{cite:full:citepages}{} +\newbibmacro*{cite:postnote}{} + +\DeclareBibliographyOption[boolean]{ibidpage}[true]{% + \ifstrequal{#1}{true} + {\ExecuteBibliographyOptions{loccittracker=constrict}} + {\ExecuteBibliographyOptions{loccittracker=false}}} + +\DeclareBibliographyOption[boolean]{strict}[true]{% + \ifstrequal{#1}{true} + {\ExecuteBibliographyOptions{ibidtracker=constrict,idemtracker=constrict}} + {\ExecuteBibliographyOptions{ibidtracker=context,idemtracker=context}}} + +\DeclareBibliographyOption[string]{citepages}[permit]{% + \ifcsdef{cbx@opt@citepages@#1} + {\csuse{cbx@opt@citepages@#1}} + {\PackageError{biblatex} + {Invalid option 'citepages=#1'} + {Valid values are 'permit', 'suppress', 'omit', 'separate'.}}} + +\providebibmacro*{cite:citepages}{} +\providebibmacro*{cite:full:citepages}{} +\providebibmacro*{cite:postnote}{} + +\def\cbx@opt@citepages@permit{% + \renewbibmacro*{cite:citepages}{}% + \renewbibmacro*{cite:full:citepages}{}% + \renewbibmacro*{cite:postnote}{% + \usebibmacro{cite:postnote:ibidpage}}} + +\def\cbx@opt@citepages@suppress{% + \renewbibmacro*{cite:citepages}{}% + \renewbibmacro*{cite:full:citepages}{% + \clearfield{pages}% + \clearfield{pagetotal}}% + \renewbibmacro*{cite:postnote}{% + \usebibmacro{cite:postnote:ibidpage}}} + +\def\cbx@opt@citepages@omit{% + \renewbibmacro*{cite:citepages}{}% + \renewbibmacro*{cite:full:citepages}{% + \ifboolexpr{ + test {\ifnumequal{\value{citecount}}{\value{citetotal}}} + and + test {\iffieldpages{postnote}} + } + {\clearfield{pages}% + \clearfield{pagetotal}} + {}}% + \renewbibmacro*{cite:postnote}{% + \usebibmacro{cite:postnote:ibidpage}}} + +\def\cbx@opt@citepages@separate{% + \providetoggle{cbx:fullcite}% + \renewbibmacro*{cite:citepages}{% + \global\togglefalse{cbx:fullcite}}% + \renewbibmacro*{cite:full:citepages}{% + \global\toggletrue{cbx:fullcite}}% + \renewbibmacro*{cite:postnote}{% + \ifboolexpr{ + togl {cbx:fullcite} + and + test {\iffieldpages{postnote}} + and + test {\ifnumequal{\value{citecount}}{\value{citetotal}}} + and + ( + not test {\iffieldundef{pages}} + or + not test {\iffieldundef{pagetotal}} + ) + } + {\usebibmacro{cite:postnote:pages}} + {\usebibmacro{cite:postnote:ibidpage}}} + \providebibmacro*{cite:postnote:pages}{% + \setunit{\printdelim{postnotedelim}}% + \bibstring{thiscite}% + \setunit{\addspace}% + \printfield{postnote}}} + +\ExecuteBibliographyOptions{citetracker=context,ibidtracker=constrict, + idemtracker=constrict,autocite=footnote,citepages=permit} + +\newbibmacro*{cite:save}{% + \csxdef{cbx@lastcite@\thefield{entrykey}}{\the\value{instcount}}% + \global\boolfalse{cbx:noidem}} + +\newbibmacro*{cite}{% + \usebibmacro{cite:citepages}% + \global\togglefalse{cbx:fullcite}% + \global\togglefalse{cbx:loccit}% + \bibhypertarget{cite\the\value{instcount}}{% + \ifciteseen + {\iffieldundef{shorthand} + {\ifciteibid + {\usebibmacro{cite:ibid}} + {\ifthenelse{\ifciteidem\AND\NOT\boolean{cbx:noidem}} + {\usebibmacro{cite:idem}} + {\usebibmacro{cite:name}}% + \usebibmacro{cite:title}}% + \usebibmacro{cite:save}} + {\usebibmacro{cite:shorthand}}} + {\usebibmacro{cite:full}% + \usebibmacro{cite:save}}}} + +\newbibmacro*{cite:full}{% + \usebibmacro{cite:full:citepages}% + \global\toggletrue{cbx:fullcite}% + \printtext[bibhypertarget]{% + \usedriver + {\DeclareNameAlias{sortname}{default}} + {\thefield{entrytype}}}% + \usebibmacro{shorthandintro}} + +\newbibmacro*{cite:name}{% + \printnames{labelname}% + \setunit*{\printdelim{nametitledelim}}} + +\newbibmacro*{cite:idem}{% + \bibstring[\mkibid]{idem\thefield{gender}}% + \setunit{\printdelim{nametitledelim}}} + +\newbibmacro*{cite:title}{% + \printtext[bibhyperlink]{% + \printfield[citetitle]{labeltitle}% + \setunit{\printdelim{nametitledelim}}% + \bibstring[\mkibid]{opcit}}} + +\newbibmacro*{cite:ibid}{% + \printtext{% + \bibhyperlink{cite\csuse{cbx@lastcite@\thefield{entrykey}}}{% + \bibstring[\mkibid]{ibidem}}}% + \ifloccit + {\global\toggletrue{cbx:loccit}} + {}} + +\newbibmacro*{cite:shorthand}{% + \printtext[bibhyperlink]{\printfield{shorthand}}% + \global\booltrue{cbx:noidem}} + +\newbibmacro*{cite:postnote:ibidpage}{% + \iftoggle{cbx:loccit} + {} + {\usebibmacro{postnote}}} + +\DeclareCiteCommand{\cite} + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\parencite}[\mkbibparens] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\footcite}[\mkbibfootnote] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibparens\mkbibfootnote] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\newbibmacro*{textcite}{% + \ifnameundef{labelname} + {\printfield[citetitle]{labeltitle}} + {\printnames{labelname}}} + +\newbibmacro*{textcite:init}{% + \citetrackerfalse% + \pagetrackerfalse% + \iffirstcitekey + {\global\undef\cbx@lasthash} + {}} + +\newbibmacro*{textcite:count}{% + \stepcounter{textcitetotal}% + \ifnumgreater{\value{uniquelist}}{\value{maxnames}} + {\ifnumgreater{\value{uniquelist}}{\value{textcitemaxnames}} + {\setcounter{textcitemaxnames}{\value{uniquelist}}} + {}} + {\ifnumless{\value{labelname}}{\value{maxnames}} + {\ifnumgreater{\value{labelname}}{\value{textcitemaxnames}} + {\setcounter{textcitemaxnames}{\value{labelname}}} + {}} + {\ifnumgreater{\value{maxnames}}{\value{textcitemaxnames}} + {\setcounter{textcitemaxnames}{\value{maxnames}}} + {}}}} + +\DeclareCiteCommand{\cbx@textcite} + {\usebibmacro{textcite:init}} + {\iffieldequals{namehash}{\cbx@lasthash} + {} + {\iffirstcitekey + {} + {\textcitedelim}% + \stepcounter{textcitecount}% + \usebibmacro{textcite}% + \savefield{namehash}{\cbx@lasthash}}} + {} + {} + +\DeclareCiteCommand{\textcite}[\cbx@textcite@init\cbx@textcite\footcite] + {\usebibmacro{textcite:init}% + \gdef\cbx@savedkeys{}% + \DeferNextCitekeyHook} + {\ifthenelse{\iffirstcitekey\AND\value{multicitetotal}>0} + {\protected@xappto\cbx@footcite@args{% + (\thefield{multiprenote})(\thefield{multipostnote})}} + {}% + \xappto\cbx@savedkeys{\thefield{entrykey},}% + \iffieldequals{namehash}{\cbx@lasthash} + {} + {\usebibmacro{textcite:count}% + \savefield{namehash}{\cbx@lasthash}}% + \ifnumequal{\value{citecount}}{\value{citetotal}} + {\protected@xappto\cbx@textcite@args{{\cbx@savedkeys}}% + \protected@xappto\cbx@footcite@args{% + [\thefield{prenote}][\thefield{postnote}]{\cbx@savedkeys}}% + \iflastcitekey + {\protected@xappto\cbx@textcite@args{\thefield{postpunct}}% + \protected@xappto\cbx@footcite@args{\nopunct}} + {}} + {}} + {} + {} + +% textcite has nested \DeclareCiteCommand definitions for textcite and we want to use +% the normal textcite context +\DeclareDelimcontextAlias{cbx@textcite}{textcite} + +\newrobustcmd{\cbx@textcite@init}[3]{% + \setcounter{textcitetotal}{0}% + \setcounter{textcitecount}{0}% + \setcounter{textcitemaxnames}{0}% + \def\cbx@textcite@args{#1}\def\cbx@footcite@args{#2}#3% + \cbx@textcite@args\empty\cbx@footcite@args\empty} + +\DeclareMultiCiteCommand{\cbx@textcites}{\cbx@textcite}{} +\DeclareMultiCiteCommand{\textcites} + [\cbx@textcites@init\cbx@textcites\footcites]{\textcite}{} + +\let\cbx@textcites@init\cbx@textcite@init +\pretocmd{\cbx@textcites@init}{% + \UseNextMultiCiteHook% + \AtNextMultiCite{% + \renewbibmacro{multiprenote}{}% + \renewbibmacro{multipostnote}{}}}{}{} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/cbx/verbose-trad3.cbx b/macros/latex/contrib/biblatex/latex/cbx/verbose-trad3.cbx new file mode 100644 index 0000000000..c410692b60 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/cbx/verbose-trad3.cbx @@ -0,0 +1,261 @@ +\ProvidesFile{verbose-trad3.cbx} +[\abx@cbxid] + +\InitializeCitationStyle{\numgdef{\cbx@resetcount}{\cbx@resetcount+1}} + +\DeclareFieldFormat{bibhyperlink}{% + \bibhyperlink{\iffootnote{f}{t}:\cbx@resetcount:\thefield{entrykey}}{#1}} +\DeclareFieldFormat{bibhypertarget}{% + \bibhypertarget{\iffootnote{f}{t}:\cbx@resetcount:\thefield{entrykey}}{#1}} + +\newcommand*{\cbx@resetcount}{0} +\providecommand*{\mkibid}[1]{#1} +\renewcommand*{\iffinalcitedelim}{% + \ifnumequal{\value{textcitecount}}{\value{textcitetotal}-1}} + +\newtoggle{cbx:loccit} + +\DeclareBibliographyOption[boolean]{strict}[true]{% + \ifstrequal{#1}{true} + {\ExecuteBibliographyOptions{ibidtracker=constrict,loccittracker=constrict}} + {\ExecuteBibliographyOptions{ibidtracker=context,loccittracker=context}}} + +\DeclareBibliographyOption[string]{citepages}[permit]{% + \ifcsdef{cbx@opt@citepages@#1} + {\csuse{cbx@opt@citepages@#1}} + {\PackageError{biblatex} + {Invalid option 'citepages=#1'} + {Valid values are 'permit', 'suppress', 'omit', 'separate'.}}} + +\providebibmacro*{cite:citepages}{} +\providebibmacro*{cite:full:citepages}{} +\providebibmacro*{cite:postnote}{} + +\def\cbx@opt@citepages@permit{% + \renewbibmacro*{cite:citepages}{}% + \renewbibmacro*{cite:full:citepages}{}% + \renewbibmacro*{cite:postnote}{% + \usebibmacro{cite:postnote:ibidpage}}} + +\def\cbx@opt@citepages@suppress{% + \renewbibmacro*{cite:citepages}{}% + \renewbibmacro*{cite:full:citepages}{% + \clearfield{pages}% + \clearfield{pagetotal}}% + \renewbibmacro*{cite:postnote}{% + \usebibmacro{cite:postnote:ibidpage}}} + +\def\cbx@opt@citepages@omit{% + \renewbibmacro*{cite:citepages}{}% + \renewbibmacro*{cite:full:citepages}{% + \ifboolexpr{ + test {\ifnumequal{\value{citecount}}{\value{citetotal}}} + and + test {\iffieldpages{postnote}} + } + {\clearfield{pages}% + \clearfield{pagetotal}} + {}}% + \renewbibmacro*{cite:postnote}{% + \usebibmacro{cite:postnote:ibidpage}}} + +\def\cbx@opt@citepages@separate{% + \providetoggle{cbx:fullcite}% + \renewbibmacro*{cite:citepages}{% + \global\togglefalse{cbx:fullcite}}% + \renewbibmacro*{cite:full:citepages}{% + \global\toggletrue{cbx:fullcite}}% + \renewbibmacro*{cite:postnote}{% + \ifboolexpr{ + togl {cbx:fullcite} + and + test {\iffieldpages{postnote}} + and + test {\ifnumequal{\value{citecount}}{\value{citetotal}}} + and + ( + not test {\iffieldundef{pages}} + or + not test {\iffieldundef{pagetotal}} + ) + } + {\usebibmacro{cite:postnote:pages}} + {\usebibmacro{cite:postnote:ibidpage}}} + \providebibmacro*{cite:postnote:pages}{% + \setunit{\printdelim{postnotedelim}}% + \bibstring{thiscite}% + \setunit{\addspace}% + \printfield{postnote}}} + +\ExecuteBibliographyOptions{citetracker=context,ibidtracker=constrict, + loccittracker=constrict,autocite=footnote,citepages=permit} + +\newbibmacro*{cite}{% + \usebibmacro{cite:citepages}% + \global\togglefalse{cbx:loccit}% + \ifciteseen + {\ifciteibid + {\ifloccit + {\usebibmacro{cite:ibid}} + {\iffieldundef{shorthand} + {\usebibmacro{cite:opcit}} + {\usebibmacro{cite:shorthand}}}} + {\iffieldundef{shorthand} + {\usebibmacro{cite:short}} + {\usebibmacro{cite:shorthand}}}} + {\usebibmacro{cite:full}}} + +\newbibmacro*{cite:full}{% + \usebibmacro{cite:full:citepages}% + \printtext[bibhypertarget]{% + \usedriver + {\DeclareNameAlias{sortname}{default}} + {\thefield{entrytype}}}% + \usebibmacro{shorthandintro}} + +\newbibmacro*{cite:short}{% + \printnames{labelname}% + \setunit*{\printdelim{nametitledelim}}% + \printtext[bibhyperlink]{% + \printfield[citetitle]{labeltitle}}} + +\newbibmacro*{cite:opcit}{% + \printnames{labelname}% + \setunit*{\printdelim{nametitledelim}}% + \printtext[bibhyperlink]{% + \bibstring[\mkibid]{opcit}}} + +\newbibmacro*{cite:ibid}{% + \printtext[bibhyperlink]{\bibstring[\mkibid]{ibidem}}% + \global\toggletrue{cbx:loccit}} + +\newbibmacro*{cite:shorthand}{% + \printtext[bibhyperlink]{\printfield{shorthand}}} + +\newbibmacro*{cite:postnote:ibidpage}{% + \iftoggle{cbx:loccit} + {} + {\usebibmacro{postnote}}} + +\DeclareCiteCommand{\cite} + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\parencite}[\mkbibparens] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\footcite}[\mkbibfootnote] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibparens\mkbibfootnote] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\newbibmacro*{textcite}{% + \ifnameundef{labelname} + {\printfield[citetitle]{labeltitle}} + {\printnames{labelname}}} + +\newbibmacro*{textcite:init}{% + \citetrackerfalse% + \pagetrackerfalse% + \iffirstcitekey + {\global\undef\cbx@lasthash} + {}} + +\newbibmacro*{textcite:count}{% + \stepcounter{textcitetotal}% + \ifnumgreater{\value{uniquelist}}{\value{maxnames}} + {\ifnumgreater{\value{uniquelist}}{\value{textcitemaxnames}} + {\setcounter{textcitemaxnames}{\value{uniquelist}}} + {}} + {\ifnumless{\value{labelname}}{\value{maxnames}} + {\ifnumgreater{\value{labelname}}{\value{textcitemaxnames}} + {\setcounter{textcitemaxnames}{\value{labelname}}} + {}} + {\ifnumgreater{\value{maxnames}}{\value{textcitemaxnames}} + {\setcounter{textcitemaxnames}{\value{maxnames}}} + {}}}} + +\DeclareCiteCommand{\cbx@textcite} + {\usebibmacro{textcite:init}} + {\iffieldequals{namehash}{\cbx@lasthash} + {} + {\iffirstcitekey + {} + {\textcitedelim}% + \stepcounter{textcitecount}% + \usebibmacro{textcite}% + \savefield{namehash}{\cbx@lasthash}}} + {} + {} + +\DeclareCiteCommand{\textcite}[\cbx@textcite@init\cbx@textcite\footcite] + {\usebibmacro{textcite:init}% + \gdef\cbx@savedkeys{}% + \DeferNextCitekeyHook} + {\ifthenelse{\iffirstcitekey\AND\value{multicitetotal}>0} + {\protected@xappto\cbx@footcite@args{% + (\thefield{multiprenote})(\thefield{multipostnote})}} + {}% + \xappto\cbx@savedkeys{\thefield{entrykey},}% + \iffieldequals{namehash}{\cbx@lasthash} + {} + {\usebibmacro{textcite:count}% + \savefield{namehash}{\cbx@lasthash}}% + \ifnumequal{\value{citecount}}{\value{citetotal}} + {\protected@xappto\cbx@textcite@args{{\cbx@savedkeys}}% + \protected@xappto\cbx@footcite@args{% + [\thefield{prenote}][\thefield{postnote}]{\cbx@savedkeys}}% + \iflastcitekey + {\protected@xappto\cbx@textcite@args{\thefield{postpunct}}% + \protected@xappto\cbx@footcite@args{\nopunct}} + {}} + {}} + {} + {} + +% textcite has nested \DeclareCiteCommand definitions for textcite and we want to use +% the normal textcite context +\DeclareDelimcontextAlias{cbx@textcite}{textcite} + +\newrobustcmd{\cbx@textcite@init}[3]{% + \setcounter{textcitetotal}{0}% + \setcounter{textcitecount}{0}% + \setcounter{textcitemaxnames}{0}% + \def\cbx@textcite@args{#1}\def\cbx@footcite@args{#2}#3% + \cbx@textcite@args\empty\cbx@footcite@args\empty} + +\DeclareMultiCiteCommand{\cbx@textcites}{\cbx@textcite}{} +\DeclareMultiCiteCommand{\textcites} + [\cbx@textcites@init\cbx@textcites\footcites]{\textcite}{} + +\let\cbx@textcites@init\cbx@textcite@init +\pretocmd{\cbx@textcites@init}{% + \UseNextMultiCiteHook% + \AtNextMultiCite{% + \renewbibmacro{multiprenote}{}% + \renewbibmacro{multipostnote}{}}}{}{} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/cbx/verbose.cbx b/macros/latex/contrib/biblatex/latex/cbx/verbose.cbx new file mode 100644 index 0000000000..1291f0dfce --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/cbx/verbose.cbx @@ -0,0 +1,231 @@ +\ProvidesFile{verbose.cbx} +[\abx@cbxid] + +\InitializeCitationStyle{\numgdef{\cbx@resetcount}{\cbx@resetcount+1}} + +\DeclareFieldFormat{bibhyperlink}{% + \bibhyperlink{\iffootnote{f}{t}:\cbx@resetcount:\thefield{entrykey}}{#1}} +\DeclareFieldFormat{bibhypertarget}{% + \bibhypertarget{\iffootnote{f}{t}:\cbx@resetcount:\thefield{entrykey}}{#1}} + +\newcommand*{\cbx@resetcount}{0} +\renewcommand*{\iffinalcitedelim}{% + \ifnumequal{\value{textcitecount}}{\value{textcitetotal}-1}} + +\newbibmacro*{cite:citepages}{} +\newbibmacro*{cite:full:citepages}{} +\newbibmacro*{cite:postnote}{} + +\DeclareBibliographyOption[string]{citepages}[permit]{% + \ifcsdef{cbx@opt@citepages@#1} + {\csuse{cbx@opt@citepages@#1}} + {\PackageError{biblatex} + {Invalid option 'citepages=#1'} + {Valid values are 'permit', 'suppress', 'omit', 'separate'.}}} + +\providebibmacro*{cite:citepages}{} +\providebibmacro*{cite:full:citepages}{} +\providebibmacro*{cite:postnote}{} + +\def\cbx@opt@citepages@permit{% + \renewbibmacro*{cite:citepages}{}% + \renewbibmacro*{cite:full:citepages}{}% + \renewbibmacro*{cite:postnote}{\usebibmacro{postnote}}} + +\def\cbx@opt@citepages@suppress{% + \renewbibmacro*{cite:citepages}{}% + \renewbibmacro*{cite:full:citepages}{% + \clearfield{pages}% + \clearfield{pagetotal}}% + \renewbibmacro*{cite:postnote}{\usebibmacro{postnote}}} + +\def\cbx@opt@citepages@omit{% + \renewbibmacro*{cite:citepages}{}% + \renewbibmacro*{cite:full:citepages}{% + \ifboolexpr{ + test {\ifnumequal{\value{citecount}}{\value{citetotal}}} + and + test {\iffieldpages{postnote}} + } + {\clearfield{pages}% + \clearfield{pagetotal}} + {}}% + \renewbibmacro*{cite:postnote}{\usebibmacro{postnote}}} + +\def\cbx@opt@citepages@separate{% + \providetoggle{cbx:fullcite}% + \renewbibmacro*{cite:citepages}{% + \global\togglefalse{cbx:fullcite}}% + \renewbibmacro*{cite:full:citepages}{% + \global\toggletrue{cbx:fullcite}}% + \renewbibmacro*{cite:postnote}{% + \ifboolexpr{ + togl {cbx:fullcite} + and + test {\iffieldpages{postnote}} + and + test {\ifnumequal{\value{citecount}}{\value{citetotal}}} + and + ( + not test {\iffieldundef{pages}} + or + not test {\iffieldundef{pagetotal}} + ) + } + {\usebibmacro{cite:postnote:pages}} + {\usebibmacro{postnote}}} + \providebibmacro*{cite:postnote:pages}{% + \setunit{\printdelim{postnotedelim}}% + \bibstring{thiscite}% + \setunit{\addspace}% + \printfield{postnote}}} + +\ExecuteBibliographyOptions{citetracker=context,autocite=footnote,citepages=permit} + +\newbibmacro*{cite}{% + \usebibmacro{cite:citepages}% + \ifciteseen + {\iffieldundef{shorthand} + {\usebibmacro{cite:short}} + {\usebibmacro{cite:shorthand}}} + {\usebibmacro{cite:full}}} + +\newbibmacro*{cite:full}{% + \usebibmacro{cite:full:citepages}% + \printtext[bibhypertarget]{% + \usedriver + {\DeclareNameAlias{sortname}{default}} + {\thefield{entrytype}}}% + \usebibmacro{shorthandintro}} + +\newbibmacro*{cite:short}{% + \printnames{labelname}% + \setunit*{\printdelim{nametitledelim}}% + \printtext[bibhyperlink]{% + \printfield[citetitle]{labeltitle}}} + +\newbibmacro*{cite:shorthand}{% + \printtext[bibhyperlink]{\printfield{shorthand}}} + +\DeclareCiteCommand{\cite} + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\parencite}[\mkbibparens] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\footcite}[\mkbibfootnote] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibparens\mkbibfootnote] + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\newbibmacro*{textcite}{% + \ifnameundef{labelname} + {\printfield[citetitle]{labeltitle}} + {\printnames{labelname}}} + +\newbibmacro*{textcite:init}{% + \citetrackerfalse% + \pagetrackerfalse% + \iffirstcitekey + {\global\undef\cbx@lasthash} + {}} + +\newbibmacro*{textcite:count}{% + \stepcounter{textcitetotal}% + \ifnumgreater{\value{uniquelist}}{\value{maxnames}} + {\ifnumgreater{\value{uniquelist}}{\value{textcitemaxnames}} + {\setcounter{textcitemaxnames}{\value{uniquelist}}} + {}} + {\ifnumless{\value{labelname}}{\value{maxnames}} + {\ifnumgreater{\value{labelname}}{\value{textcitemaxnames}} + {\setcounter{textcitemaxnames}{\value{labelname}}} + {}} + {\ifnumgreater{\value{maxnames}}{\value{textcitemaxnames}} + {\setcounter{textcitemaxnames}{\value{maxnames}}} + {}}}} + +\DeclareCiteCommand{\cbx@textcite} + {\usebibmacro{textcite:init}} + {\iffieldequals{namehash}{\cbx@lasthash} + {} + {\iffirstcitekey + {} + {\textcitedelim}% + \stepcounter{textcitecount}% + \usebibmacro{textcite}% + \savefield{namehash}{\cbx@lasthash}}} + {} + {} + +\DeclareCiteCommand{\textcite}[\cbx@textcite@init\cbx@textcite\footcite] + {\usebibmacro{textcite:init}% + \gdef\cbx@savedkeys{}% + \DeferNextCitekeyHook} + {\ifthenelse{\iffirstcitekey\AND\value{multicitetotal}>0} + {\protected@xappto\cbx@footcite@args{% + (\thefield{multiprenote})(\thefield{multipostnote})}} + {}% + \xappto\cbx@savedkeys{\thefield{entrykey},}% + \iffieldequals{namehash}{\cbx@lasthash} + {} + {\usebibmacro{textcite:count}% + \savefield{namehash}{\cbx@lasthash}}% + \ifnumequal{\value{citecount}}{\value{citetotal}} + {\protected@xappto\cbx@textcite@args{{\cbx@savedkeys}}% + \protected@xappto\cbx@footcite@args{% + [\thefield{prenote}][\thefield{postnote}]{\cbx@savedkeys}}% + \iflastcitekey + {\protected@xappto\cbx@textcite@args{\thefield{postpunct}}% + \protected@xappto\cbx@footcite@args{\nopunct}} + {}} + {}} + {} + {} + +% textcite has nested \DeclareCiteCommand definitions for textcite and we want to use +% the normal textcite context +\DeclareDelimcontextAlias{cbx@textcite}{textcite} + +\newrobustcmd{\cbx@textcite@init}[3]{% + \setcounter{textcitetotal}{0}% + \setcounter{textcitecount}{0}% + \setcounter{textcitemaxnames}{0}% + \def\cbx@textcite@args{#1}\def\cbx@footcite@args{#2}#3% + \cbx@textcite@args\empty\cbx@footcite@args\empty} + +\DeclareMultiCiteCommand{\cbx@textcites}{\cbx@textcite}{} +\DeclareMultiCiteCommand{\textcites} + [\cbx@textcites@init\cbx@textcites\footcites]{\textcite}{} + +\let\cbx@textcites@init\cbx@textcite@init +\pretocmd{\cbx@textcites@init}{% + \UseNextMultiCiteHook% + \AtNextMultiCite{% + \renewbibmacro{multiprenote}{}% + \renewbibmacro{multipostnote}{}}}{}{} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/lbx/UKenglish.lbx b/macros/latex/contrib/biblatex/latex/lbx/UKenglish.lbx new file mode 100644 index 0000000000..87b20b85e0 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/lbx/UKenglish.lbx @@ -0,0 +1,7 @@ +\ProvidesFile{UKenglish.lbx} +[\abx@lbxid] + +\InheritBibliographyExtras{british} +\InheritBibliographyStrings{british} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/lbx/USenglish.lbx b/macros/latex/contrib/biblatex/latex/lbx/USenglish.lbx new file mode 100644 index 0000000000..62f02a3a9d --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/lbx/USenglish.lbx @@ -0,0 +1,7 @@ +\ProvidesFile{USenglish.lbx} +[\abx@lbxid] + +\InheritBibliographyExtras{american} +\InheritBibliographyStrings{american} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/lbx/american.lbx b/macros/latex/contrib/biblatex/latex/lbx/american.lbx new file mode 100644 index 0000000000..91ebe2f449 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/lbx/american.lbx @@ -0,0 +1,8 @@ +\ProvidesFile{american.lbx} +[\abx@lbxid] + +\InheritBibliographyExtras{english} +\DeclareBibliographyExtras{\uspunctuation} +\InheritBibliographyStrings{english} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/lbx/australian.lbx b/macros/latex/contrib/biblatex/latex/lbx/australian.lbx new file mode 100644 index 0000000000..675089ddd8 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/lbx/australian.lbx @@ -0,0 +1,28 @@ +\ProvidesFile{australian.lbx} +[\abx@lbxid] + +\InheritBibliographyExtras{british} +\DeclareBibliographyExtras{% + \protected\def\mkbibdatelong#1#2#3{% + \iffieldundef{#3} + {} + {\stripzeros{\thefield{#3}}% + \iffieldundef{#2}{}{\nobreakspace}}% + \iffieldundef{#2} + {} + {\mkbibmonth{\thefield{#2}}% + \iffieldundef{#1}{}{\space}}% + \iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\stripzeros{\thefield{#1}}}}% + \protected\def\mkbibseasondateshort#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \mkyearzeros{\thefield{#1}}}% + \protected\def\mkbibseasondatelong#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \mkyearzeros{\thefield{#1}}}% +} + +\InheritBibliographyStrings{english} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/lbx/austrian.lbx b/macros/latex/contrib/biblatex/latex/lbx/austrian.lbx new file mode 100644 index 0000000000..39ee155aa6 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/lbx/austrian.lbx @@ -0,0 +1,16 @@ +\ProvidesFile{austrian.lbx} +[\abx@lbxid] + +\InheritBibliographyExtras{german} + +\DeclareBibliographyStrings{% + inherit = {german}, + january = {{J\"anner}{J\"an\adddot}}, +} + +\DeclareHyphenationExceptions{% + Pa-tent-an-mel-dung + Pa-tent-an-meld +} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/lbx/brazil.lbx b/macros/latex/contrib/biblatex/latex/lbx/brazil.lbx new file mode 100644 index 0000000000..5da4cbe39d --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/lbx/brazil.lbx @@ -0,0 +1,7 @@ +\ProvidesFile{brazil.lbx} +[\abx@lbxid] + +\InheritBibliographyExtras{brazilian} +\InheritBibliographyStrings{brazilian} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/lbx/brazilian.lbx b/macros/latex/contrib/biblatex/latex/lbx/brazilian.lbx new file mode 100644 index 0000000000..43fb19712c --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/lbx/brazilian.lbx @@ -0,0 +1,539 @@ +\ProvidesFile{brazilian.lbx} +[\abx@lbxid] + +\DeclareRedundantLanguages{brazilian}{brazil,portuges} + +\DeclareBibliographyExtras{% + \protected\def\bibrangedash{% + \textendash\penalty\hyphenpenalty}% breakable dash + \let\finalandcomma=\empty + \let\finalandsemicolon=\empty + \def\mkbibordinal{\mkbibmascord}% + \protected\def\mkbibmascord#1{% + \stripzeros{#1}\textordmasculine}% \textordmasculine -> textcomp.sty + \protected\def\mkbibfemord#1{% + \stripzeros{#1}\textordfeminine}% \textordfeminine -> textcomp.sty + \protected\def\mkbibneutord{\mkbibmascord}% + \protected\def\mkbibdatelong#1#2#3{% + \iffieldundef{#3} + {} + {\stripzeros{\thefield{#3}}% + \iffieldundef{#2}{}{\nobreakspace de\space}}% + \iffieldundef{#2} + {} + {\mkbibmonth{\thefield{#2}}% + \iffieldundef{#1}{}{\nobreakspace de\space}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}% + \protected\def\mkbibdateshort#1#2#3{% + \iffieldundef{#3} + {} + {\mkdayzeros{\thefield{#3}}% + \iffieldundef{#2}{}{/}}% + \iffieldundef{#2} + {} + {\mkmonthzeros{\thefield{#2}}% + \iffieldundef{#1}{}{/}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}% + \savecommand\mkbibordedition + \savecommand\mkbibordseries + \def\mkbibordedition{\mkbibfemord}% + \def\mkbibordseries{\mkbibfemord}% + \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{% + \iffieldundef{#1}{} + {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}% + \iffieldundef{#2}{} + {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}% + \iffieldundef{#3}{} + {\printtext{\mktimezeros{\thefield{#3}}}}% + \setunit{}% + \iffieldundef{#4}{} + {\bibtimezonesep + \mkbibtimezone{\thefield{#4}}}}% + \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{% + \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep + \forcezerosmdt{\thefield{#2}}% + \iffieldundef{#3}{} + {\bibtimesep + \forcezerosmdt{\thefield{#3}}}% + \space + \ifnumless{\thefield{#1}}{12} + {\bibstring{am}} + {\bibstring{pm}}% + \iffieldundef{#4}{} + {\space\bibtimezonesep + \parentext{\mkbibtimezone{\thefield{#4}}}}}% + \protected\def\mkbibseasondateshort#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% + \protected\def\mkbibseasondatelong#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% +} + +\UndeclareBibliographyExtras{% + \restorecommand\mkbibordedition + \restorecommand\mkbibordseries +} + +\DeclareBibliographyStrings{% + bibliography = {{Bibliografia}{Bibliografia}}, + references = {{Refer\^encias}{Refer\^encias}}, + shorthands = {{Lista de abreviaturas}{Abreviaturas}}, + editor = {{editor}{ed\adddot}}, + editors = {{editores}{ed\adddot}}, + compiler = {{compilador}{comp\adddot}}, + compilers = {{compiladores}{comp\adddot}}, + redactor = {{redator}{red\adddot}}, + redactors = {{redatores}{red\adddot}}, + reviser = {{revisor}{rev\adddot}}, + revisers = {{revisores}{rev\adddot}}, + founder = {{fundador}{fund\adddot}}, + founders = {{fundadores}{fund\adddot}}, + continuator = {{continuador}{cont\adddot}}, + continuators = {{continuadores}{cont\adddot}}, + collaborator = {{colaborador}{colab\adddot}}, + collaborators = {{colaboradores}{colab\adddot}}, + translator = {{tradutor}{trad\adddot}}, + translators = {{tradutores}{trad\adddot}}, + commentator = {{coment\'ario}{coment\adddot}}, + commentators = {{coment\'ario}{coment\adddot}}, + annotator = {{notas}{notas}}, + annotators = {{notas}{notas}}, + commentary = {{coment\'ario}{coment\adddot}}, + annotations = {{notas}{notas}}, + introduction = {{introdu\c{c}\~ao}{introd\adddot}}, + foreword = {{pref\'acio}{pref\adddot}}, + afterword = {{posf\'acio}{posf\adddot}}, + editortr = {{editor e tradutor}% + {ed\adddotspace e trad\adddot}}, + editorstr = {{editores e tradutores}% + {ed\adddotspace e trad\adddot}}, + editorco = {{editor e coment\'ario}% + {ed\adddotspace e coment\adddot}}, + editorsco = {{editores e coment\'ario}% + {ed\adddotspace e coment\adddot}}, + editoran = {{editor e notas}% + {ed\adddotspace e notas}}, + editorsan = {{editores e notas}% + {ed\adddotspace e notas}}, + editorin = {{editor e introdu\c{c}\~ao}% + {ed\adddotspace e introd\adddot}}, + editorsin = {{editores e introdu\c{c}\~ao}% + {ed\adddotspace e introd\adddot}}, + editorfo = {{editor e pref\'acio}% + {ed\adddotspace e pref\adddot}}, + editorsfo = {{editores e pref\'acio}% + {ed\adddotspace e pref\adddot}}, + editoraf = {{editor e posf\'acio}% + {ed\adddotspace e posf\adddot}}, + editorsaf = {{editores e posf\'acio}% + {ed\adddotspace e posf\adddot}}, + editortrco = {{editor, tradutor e coment\'ario}% + {ed., trad\adddot\ e coment\adddot}}, + editorstrco = {{editores, tradutores e coment\'ario}% + {ed., trad\adddot\ e coment\adddot}}, + editortran = {{editor, tradutor e notas}% + {ed., trad\adddot\ e notas}}, + editorstran = {{editores, tradutores e notas}% + {ed., trad\adddot\ e notas}}, + editortrin = {{editor, tradutor e introdu\c{c}\~ao}% + {ed., trad\adddot\ e introd\adddot}}, + editorstrin = {{editores, tradutores e introdu\c{c}\~ao}% + {ed., trad\adddot\ e introd\adddot}}, + editortrfo = {{editor, tradutor e pref\'acio}% + {ed., trad\adddot\ e pref\adddot}}, + editorstrfo = {{editores, tradutores e pref\'acio}% + {ed., trad\adddot\ e pref\adddot}}, + editortraf = {{editor, tradutor e posf\'acio}% + {ed., trad\adddot\ e posf\adddot}}, + editorstraf = {{editores, tradutores e posf\'acio}% + {ed., trad\adddot\ e posf\adddot}}, + editorcoin = {{editor, coment\'ario e introdu\c{c}\~ao}% + {ed., coment\adddot\ e introd\adddot}}, + editorscoin = {{editores, coment\'ario e introdu\c{c}\~ao}% + {ed., coment\adddot\ e introd\adddot}}, + editorcofo = {{editor, coment\'ario e pref\'acio}% + {ed., coment\adddot\ e pref\adddot}}, + editorscofo = {{editores, coment\'ario e pref\'acio}% + {ed., coment\adddot\ e pref\adddot}}, + editorcoaf = {{editor, coment\'ario e posf\'acio}% + {ed., coment\adddot\ e posf\adddot}}, + editorscoaf = {{editores, coment\'ario e posf\'acio}% + {ed., coment\adddot\ e posf\adddot}}, + editoranin = {{editor, notas e introdu\c{c}\~ao}% + {ed., notas e introd\adddot}}, + editorsanin = {{editores, notas e introdu\c{c}\~ao}% + {ed., notas e introd\adddot}}, + editoranfo = {{editor, notas e pref\'acio}% + {ed., notas e pref\adddot}}, + editorsanfo = {{editores, notas e pref\'acio}% + {ed., notas e pref\adddot}}, + editoranaf = {{editor, notas e posf\'acio}% + {ed., notas e posf\adddot}}, + editorsanaf = {{editores, notas e posf\'acio}% + {ed., notas e posf\adddot}}, + editortrcoin = {{editor, tradutor, coment\'ario e introdu\c{c}\~ao}% + {ed., trad., coment\adddot\ e introd\adddot}}, + editorstrcoin = {{editores, tradutores, coment\'ario e introdu\c{c}\~ao}% + {ed., trad., coment\adddot\ e introd\adddot}}, + editortrcofo = {{editor, tradutor, coment\'ario e pref\'acio}% + {ed., trad., coment\adddot\ e pref\adddot}}, + editorstrcofo = {{editores, tradutores, coment\'ario e pref\'acio}% + {ed., trad., coment\adddot\ e pref\adddot}}, + editortrcoaf = {{editor, tradutor, coment\'ario e posf\'acio}% + {ed., trad., coment\adddot\ e posf\adddot}}, + editorstrcoaf = {{editores, tradutores, coment\'ario e posf\'acio}% + {ed., trad., coment\adddot\ e posf\adddot}}, + editortranin = {{editor, tradutor, notas e introdu\c{c}\~ao}% + {ed., trad., notas e introd\adddot}}, + editorstranin = {{editores, tradutores, notas e introdu\c{c}\~ao}% + {ed., trad., notas e introd\adddot}}, + editortranfo = {{editor, tradutor, notas e pref\'acio}% + {ed., trad., notas e pref\adddot}}, + editorstranfo = {{editores, tradutores, notas e pref\'acio}% + {ed., trad., notas e pref\adddot}}, + editortranaf = {{editor, tradutor, notas e posf\'acio}% + {ed., trad., notas e posf\adddot}}, + editorstranaf = {{editores, tradutores, notas e posf\'acio}% + {ed., trad., notas e posf\adddot}}, + translatorco = {{tradu\c{c}\~ao e coment\'ario}% + {trad\adddot\ e coment\adddot}}, + translatorsco = {{tradu\c{c}\~ao e coment\'ario}% + {trad\adddot\ e coment\adddot}}, + translatoran = {{tradu\c{c}\~ao e notas}% + {trad\adddot\ e notas}}, + translatorsan = {{tradu\c{c}\~ao e notas}% + {trad\adddot\ e notas}}, + translatorin = {{tradu\c{c}\~ao e introdu\c{c}\~ao}% + {trad\adddot\ e introd\adddot}}, + translatorsin = {{tradu\c{c}\~ao e introdu\c{c}\~ao}% + {trad\adddot\ e introd\adddot}}, + translatorfo = {{tradu\c{c}\~ao e pref\'acio}% + {trad\adddot\ e pref\adddot}}, + translatorsfo = {{tradu\c{c}\~ao e pref\'acio}% + {trad\adddot\ e pref\adddot}}, + translatoraf = {{tradu\c{c}\~ao e posf\'acio}% + {trad\adddot\ e posf\adddot}}, + translatorsaf = {{tradu\c{c}\~ao e posf\'acio}% + {trad\adddot\ e posf\adddot}}, + translatorcoin = {{tradu\c{c}\~ao, coment\'ario e introdu\c{c}\~ao}% + {trad., coment\adddot\ e introd\adddot}}, + translatorscoin = {{tradu\c{c}\~ao, coment\'ario e introdu\c{c}\~ao}% + {trad., coment\adddot\ e introd\adddot}}, + translatorcofo = {{tradu\c{c}\~ao, coment\'ario e pref\'acio}% + {trad., coment\adddot\ e pref\adddot}}, + translatorscofo = {{tradu\c{c}\~ao, coment\'ario e pref\'acio}% + {trad., coment\adddot\ e pref\adddot}}, + translatorcoaf = {{tradu\c{c}\~ao, coment\'ario e posf\'acio}% + {trad., coment\adddot\ e posf\adddot}}, + translatorscoaf = {{tradu\c{c}\~ao, coment\'ario e posf\'acio}% + {trad., coment\adddot\ e posf\adddot}}, + translatoranin = {{tradu\c{c}\~ao, notas e introdu\c{c}\~ao}% + {trad., notas e introd\adddot}}, + translatorsanin = {{tradu\c{c}\~ao, notas e introdu\c{c}\~ao}% + {trad., notas e introd\adddot}}, + translatoranfo = {{tradu\c{c}\~ao, notas e pref\'acio}% + {trad., notas e pref\adddot}}, + translatorsanfo = {{tradu\c{c}\~ao, notas e pref\'acio}% + {trad., notas e pref\adddot}}, + translatoranaf = {{tradu\c{c}\~ao, notas e posf\'acio}% + {trad., notas e posf\adddot}}, + translatorsanaf = {{tradu\c{c}\~ao, notas e posf\'acio}% + {trad., notas e posf\adddot}}, + organizer = {{organizador}{org\adddot}}, + organizers = {{organizadores}{org\adddot}}, + byauthor = {{por}{por}}, + byeditor = {{editado por}{ed\adddotspace por}}, + bycompiler = {{compilado por}{comp\adddotspace por}}, + byredactor = {{redigido por}{red\adddotspace por}}, + byreviser = {{revisado por}{rev\adddotspace por}}, + byreviewer = {{resenhado por}{res\adddotspace por}}, + byfounder = {{fundado por}{fund\adddotspace por}}, + bycontinuator = {{continuado por}{cont\adddotspace por}}, + bycollaborator = {{em colabora\c{c}\~ao com}{em colab\adddotspace com}}, + bytranslator = {{traduzido \lbx@lfromlang\ por}{trad\adddot\ \lbx@sfromlang\ por}}, + bycommentator = {{comentado por}{coment\adddot\ por}}, + byannotator = {{anotado por}{anot\adddot\ por}}, + byorganizer = {{organizado por}{org\adddotspace por}}, + withcommentator = {{com coment\'ario de}{com coment\adddot\ de}}, + withannotator = {{com notas de}{com notas de}}, + withintroduction = {{com introdu\c{c}\~ao de}{com introd\adddot\ de}}, + withforeword = {{com pref\'acio de}{com pref\adddot\ de}}, + withafterword = {{com posf\'acio de}{com posf\adddot\ de}}, + byeditortr = {{editado e traduzido \lbx@lfromlang\ por}% + {ed\adddotspace e trad\adddot\ \lbx@sfromlang\ por}}, + byeditorco = {{editado e comentado por}% + {ed\adddotspace e coment\adddot\ por}}, + byeditoran = {{editado e anotado por}% + {ed\adddotspace e anot\adddot\ por}}, + byeditorin = {{editado e introduzido por}% + {ed\adddotspace e introd\adddot\ por}}, + byeditorfo = {{editado e prefaciado por}% + {ed\adddotspace e pref\adddot\ por}}, + byeditoraf = {{editado e posfaciado por}% + {ed\adddotspace e posf\adddot\ por}}, + byeditortrco = {{editado, traduzido \lbx@lfromlang\ e comentado por}% + {ed.,\addabbrvspace trad\adddot\ \lbx@sfromlang\ e coment\adddot\ por}}, + byeditortran = {{editado, traduzido \lbx@lfromlang\ e anotado por}% + {ed.,\addabbrvspace trad\adddot\ \lbx@sfromlang\ e anot\adddot\ por}}, + byeditortrin = {{editado, traduzido \lbx@lfromlang\ e introduzido por}% + {ed.,\addabbrvspace trad. \lbx@sfromlang\ e introd\adddot\ por}}, + byeditortrfo = {{editado, traduzido \lbx@lfromlang\ e prefaciado por}% + {ed.,\addabbrvspace trad. \lbx@sfromlang\ e pref\adddot\ por}}, + byeditortraf = {{editado, traduzido \lbx@lfromlang\ e posfaciado por}% + {ed.,\addabbrvspace trad. \lbx@sfromlang\ e posf\adddot\ por}}, + byeditorcoin = {{editado, comentado e introduzido por}% + {ed.,\addabbrvspace coment\adddot\ e introd\adddot\ por}}, + byeditorcofo = {{editado, comentado e prefaciado por}% + {ed.,\addabbrvspace coment\adddot\ e pref\adddot\ por}}, + byeditorcoaf = {{editado, comentado e posfaciado por}% + {ed.,\addabbrvspace coment\adddot\ e posf\adddot\ por}}, + byeditoranin = {{editado, anotado e introduzido por}% + {ed.,\addabbrvspace anot\adddot\ e introd\adddot\ por}}, + byeditoranfo = {{editado, anotado e prefaciado por}% + {ed.,\addabbrvspace anot\adddot\ e pref\adddot\ por}}, + byeditoranaf = {{editado, anotado e posfaciado por}% + {ed.,\addabbrvspace anot\adddot\ e posf\adddot\ por}}, + byeditortrcoin = {{editado, traduzido \lbx@lfromlang, comentado e introduzido por}% + {ed.,\addabbrvspace trad\adddot\ \lbx@sfromlang, coment\adddot\ e introd\adddot\ por}}, + byeditortrcofo = {{editado, traduzido \lbx@lfromlang, comentado e prefaciado por}% + {ed.,\addabbrvspace trad\adddot\ \lbx@sfromlang, coment\adddot\ e pref\adddot\ por}}, + byeditortrcoaf = {{editado, traduzido \lbx@lfromlang, comentado e posfaciado por}% + {ed.,\addabbrvspace trad\adddot\ \lbx@sfromlang, coment\adddot\ e posf\adddot\ por}}, + byeditortranin = {{editado, traduzido \lbx@lfromlang, anotado e introduzido por}% + {ed.,\addabbrvspace trad\adddot\ \lbx@sfromlang, anot\adddot\ e introd\adddot\ por}}, + byeditortranfo = {{editado, traduzido \lbx@lfromlang, anotado e prefaciado por}% + {ed.,\addabbrvspace trad\adddot\ \lbx@sfromlang, anot\adddot\ e pref\adddot\ por}}, + byeditortranaf = {{editado, traduzido \lbx@lfromlang, anotado e posfaciado por}% + {ed.,\addabbrvspace trad\adddot\ \lbx@sfromlang, anot\adddot\ e posf\adddot\ por}}, + bytranslatorco = {{traduzido \lbx@lfromlang\ e comentado por}% + {trad\adddot\ \lbx@sfromlang\ e coment\adddot\ por}}, + bytranslatoran = {{traduzido \lbx@lfromlang\ e anotado por}% + {trad\adddot\ \lbx@sfromlang\ e anot\adddot\ por}}, + bytranslatorin = {{traduzido \lbx@lfromlang\ e introduzido por}% + {trad\adddot\ \lbx@sfromlang\ e introd\adddot\ por}}, + bytranslatorfo = {{traduzido \lbx@lfromlang\ e prefaciado por}% + {trad\adddot\ \lbx@sfromlang\ e pref\adddot\ por}}, + bytranslatoraf = {{traduzido \lbx@lfromlang\ e posfaciado por}% + {trad\adddot\ \lbx@sfromlang\ e posf\adddot\ por}}, + bytranslatorcoin = {{traduzido \lbx@lfromlang, comentado e introduzido por}% + {trad\adddot\ \lbx@sfromlang, coment\adddot\ e introd\adddot\ por}}, + bytranslatorcofo = {{traduzido \lbx@lfromlang, comentado e prefaciado por}% + {trad\adddot\ \lbx@sfromlang, coment\adddot\ e pref\adddot\ por}}, + bytranslatorcoaf = {{traduzido \lbx@lfromlang, comentado e posfaciado por}% + {trad\adddot\ \lbx@sfromlang, coment\adddot\ e posf\adddot\ por}}, + bytranslatoranin = {{traduzido \lbx@lfromlang, anotado e introduzido por}% + {trad\adddot\ \lbx@sfromlang, anot\adddot\ e introd\adddot\ por}}, + bytranslatoranfo = {{traduzido \lbx@lfromlang, anotado e prefaciado por}% + {trad\adddot\ \lbx@sfromlang, anot\adddot\ e pref\adddot\ por}}, + bytranslatoranaf = {{traduzido \lbx@lfromlang, anotado e posfaciado por}% + {trad\adddot\ \lbx@sfromlang, anot\adddot\ e posf\adddot\ por}}, + and = {{e}{e}}, + andothers = {{et\addabbrvspace al\adddot}{et\addabbrvspace al\adddot}}, + andmore = {{et\addabbrvspace al\adddot}{et\addabbrvspace al\adddot}}, + volume = {{volume}{vol\adddot}}, + volumes = {{volumes}{vol\adddot}}, + involumes = {{em}{em}}, + jourvol = {{volume}{v\adddot}}, + jourser = {{s\'erie}{s\'er\adddot}}, + book = {{livro}{livro}}, + part = {{parte}{parte}}, + issue = {{n\'umero}{n\'um\adddot}}, + newseries = {{nova s\'erie}{nova s\'er\adddot}}, + oldseries = {{s\'erie antiga}{s\'er\adddot\ antiga}}, + edition = {{edi\c{c}\~ao}{ed\adddot}}, + reprint = {{reimpress\~ao}{reimpr\adddot}}, + reprintof = {{reimpress\~ao de}{reimpr\adddotspace de}}, + reprintas = {{reimpresso como}{reimpr\adddotspace como}}, + reprintfrom = {{reimpresso de}{reimpr\adddotspace de}}, + translationof = {{tradu\c{c}\~ao de}{trad\adddotspace de}}, + translationas = {{traduzido como}{trad\adddotspace como}}, + translationfrom = {{traduzido do}{trad\adddotspace do}}, + reviewof = {{resenha de}{res\adddotspace de}}, + origpubas = {{originalmente publicado como}{orig\adddotspace pub\adddotspace como}}, + origpubin = {{originalmente publicado em}{orig\adddotspace pub\adddotspace em}}, + astitle = {{como}{como}}, + bypublisher = {{por}{por}}, + nodate = {{sem\space data}{s\adddot d\adddot}}, + page = {{p\'agina}{p\adddot}}, + pages = {{p\'aginas}{pp\adddot}}, + column = {{coluna}{col\adddot}}, + columns = {{colunas}{col\adddot}}, + line = {{linha}{l\adddot}}, + lines = {{linhas}{ll\adddot}}, + verse = {{verso}{v\adddot}}, + verses = {{versos}{vv\adddot}}, + section = {{se\c{c}\~ao}{\S}}, + sections = {{se\c{c}\~oes}{\S\S}}, + paragraph = {{par\'agrafo}{par\adddot}}, + paragraphs = {{par\'agrafos}{par\adddot}}, + pagetotal = {{p\'agina}{p\adddot}}, + pagetotals = {{p\'aginas}{pp\adddot}}, + columntotal = {{coluna}{col\adddot}}, + columntotals = {{colunas}{col\adddot}}, + linetotal = {{linha}{l\adddot}}, + linetotals = {{linhas}{ll\adddot}}, + versetotal = {{verso}{v\adddot}}, + versetotals = {{versos}{vv\adddot}}, + sectiontotal = {{se\c{c}\~ao}{\S}}, + sectiontotals = {{se\c{c}\~oes}{\S\S}}, + paragraphtotal = {{par\'agrafo}{par\adddot}}, + paragraphtotals = {{par\'agrafos}{par\adddot}}, + in = {{em}{em}}, + inseries = {{em}{em}}, + ofseries = {{de}{de}}, + number = {{n\'umero}{n\adddot}}, + chapter = {{cap\'\i tulo}{cap\adddot}}, + bathesis = {{trabalho de conclus\~ao}{trab\adddotspace de conc\adddot}}, + mathesis = {{disserta\c{c}\~ao de mestrado}{diss\adddot\ de mestr\adddot}}, + phdthesis = {{tese de doutorado}{tese de dout\adddot}}, + candthesis = {{}{}},% FIXME: missing + resreport = {{relat\'orio de pesquisa}{rel\adddotspace de pesq\adddot}}, + techreport = {{relat\'orio t\'ecnico}{rel\adddotspace t\'ecn\adddot}}, + software = {{software}{software}}, + datacd = {{CD-ROM}{CD-ROM}}, + audiocd = {{CD de \'audio}{CD de \'audio}}, + version = {{vers\~ao}{vers\~ao}}, + url = {{endere\c{c}o}{endere\c{c}o}}, + urlfrom = {{dispon\'ivel em}{disp\adddotspace em}}, + urlseen = {{acesso em}{acesso em}}, + inpreparation = {{em prepara\c{c}\~ao}{em prepara\c{c}\~ao}}, + submitted = {{submetido}{submetido}}, + forthcoming = {{aceito para publica\c{c}\~ao}{aceito para publica\c{c}\~ao}}, + inpress = {{no prelo}{no prelo}}, + prepublished = {{pr\'e-publicado}{pr\'e-publicado}}, + citedas = {{doravante citado como}{doravante citado como}}, + thiscite = {{especialmente}{esp\adddot}}, + seenote = {{ver nota}{ver nota}}, + quotedin = {{apud}{apud}}, + idem = {{idem}{idem}}, + idemsm = {{idem}{idem}}, + idemsf = {{eadem}{eadem}}, + idemsn = {{idem}{idem}}, + idempm = {{eidem}{eidem}}, + idempf = {{eaedem}{eaedem}}, + idempn = {{eadem}{eadem}}, + idempp = {{eidem}{eidem}}, + ibidem = {{ibidem}{ibid\adddot}}, + opcit = {{op\adddotspace cit\adddot}{op\adddotspace cit\adddot}}, + loccit = {{loc\adddotspace cit\adddot}{loc\adddotspace cit\adddot}}, + confer = {{cf\adddot}{cf\adddot}}, + sequens = {{sq\adddot}{sq\adddot}}, + sequentes = {{sqq\adddot}{sqq\adddot}}, + passim = {{passim}{passim}}, + see = {{ver}{ver}}, + seealso = {{ver tamb\'em}{ver tamb\'em}}, + backrefpage = {{ver p\'agina}{ver p\adddot}}, + backrefpages = {{ver p\'aginas}{ver pp\adddot}}, + january = {{janeiro}{jan\adddot}}, + february = {{fevereiro}{fev\adddot}}, + march = {{mar\c{c}o}{mar\adddot}}, + april = {{abril}{abr\adddot}}, + may = {{maio}{mai\adddot}}, + june = {{junho}{jun\adddot}}, + july = {{julho}{jul\adddot}}, + august = {{agosto}{ago\adddot}}, + september = {{setembro}{set\adddot}}, + october = {{outubro}{out\adddot}}, + november = {{novembro}{nov\adddot}}, + december = {{dezembro}{dez\adddot}}, + langamerican = {{ingl\^es}{ingl\^es}}, + langbrazilian = {{portugu{\^e}s}{portugu{\^e}s}}, + langbulgarian = {{b\'ulgaro}{b\'ulgaro}}, + langcatalan = {{catal\~ao}{catal\~ao}}, + langcroatian = {{croata}{croata}}, + langczech = {{tcheco}{tcheco}}, + langdanish = {{dinamarqu\^es}{dinamarqu\^es}}, + langdutch = {{holand{\^e}s}{holand{\^e}s}}, + langenglish = {{ingl\^es}{ingl\^es}}, + langfinnish = {{finland\^es}{finland\^es}}, + langestonian = {{estoniano}{estoniano}}, + langfrench = {{franc\^es}{franc\^es}}, + langgalician = {{galego}{galego}}, + langgerman = {{alem\~ao}{alem\~ao}}, + langgreek = {{grego}{grego}}, + langhungarian = {{h\'ungaro}{h\'ungaro}}, + langitalian = {{italiano}{italiano}}, + langjapanese = {{japon\^es}{japon\^es}}, + langlatin = {{latim}{latim}}, + langlatvian = {{let\~ao}{let\~ao}}, + langnorwegian = {{noruegu\^es}{noruegu\^es}}, + langpolish = {{polon\^es}{polon\^es}}, + langportuguese = {{portugu{\^e}s}{portugu{\^e}s}}, + langrussian = {{russo}{russo}}, + langslovak = {{eslovaco}{eslovaco}}, + langslovene = {{esloveno}{esloveno}}, + langspanish = {{espanhol}{espanhol}}, + langswedish = {{sueco}{sueco}}, + langukrainian = {{ucraniano}{ucraniano}}, + fromamerican = {{do ingl\^es}{do ingl\^es}}, + frombrazilian = {{do portugu{\^e}s}{do portugu{\^e}s}}, + frombulgarian = {{do b\'ulgaro}{do b\'ulgaro}}, + fromcatalan = {{do catal\~ao}{do catal\~ao}}, + fromcroatian = {{do croata}{do croata}}, + fromczech = {{do tcheco}{do tcheco}}, + fromdanish = {{do dinamarqu\^es}{do dinamarqu\^es}}, + fromdutch = {{do holand{\^e}s}{do holand{\^e}s}}, + fromenglish = {{do ingl\^es}{do ingl\^es}}, + fromestonian = {{do estoniano}{do estoniano}}, + fromfinnish = {{do finland\^es}{do finland\^es}}, + fromfrench = {{do franc\^es}{do franc\^es}}, + fromgalician = {{do galego}{do galego}}, + fromgerman = {{do alem\~ao}{do alem\~ao}}, + fromgreek = {{do grego}{do grego}}, + fromhungarian = {{do h\'ungaro}{do h\'ungaro}}, + fromitalian = {{do italiano}{do italiano}}, + fromjapanese = {{do japon\^es}{do japon\^es}}, + fromlatin = {{do latim}{do latim}}, + fromlatvian = {{do let\~ao}{do let\~ao}}, + fromnorwegian = {{do noruegu\^es}{do noruegu\^es}}, + frompolish = {{do polon\^es}{do polon\^es}}, + fromportuguese = {{do portugu{\^e}s}{do portugu{\^e}s}}, + fromrussian = {{do russo}{do russo}}, + fromslovak = {{do eslovaco}{do eslovaco}}, + fromslovene = {{do esloveno}{do esloveno}}, + fromspanish = {{do espanhol}{do espanhol}}, + fromswedish = {{do sueco}{do sueco}}, + fromukrainian = {{do ucraniano}{do ucraniano}}, + countryde = {{Alemanha}{DE}}, + countryeu = {{Uni\~ao Europeia}{EU}}, + countryep = {{Uni\~ao Europeia}{EP}}, + countryfr = {{Fran\c{c}a}{FR}}, + countryuk = {{Reino Unido}{GB}}, + countryus = {{Estados Unidos}{US}}, + patent = {{patente}{pat\adddot}}, + patentde = {{patente alem\~a}{pat\adddot\ alem\~a}}, + patenteu = {{patente europeia}{pat\adddot\ europeia}}, + patentfr = {{patente francesa}{pat\adddot\ francesa}}, + patentuk = {{patente brit\^anica}{pat\adddot\ brit\^anica}}, + patentus = {{patente americana}{pat\adddot\ americana}}, + patreq = {{pedido de patente}{ped\adddot\ de pat\adddot}}, + patreqde = {{pedido de patente alem\~a}{ped\adddot\ de pat\adddot\ alem\~a}}, + patreqeu = {{pedido de patente europeia}{ped\adddot\ de pat\adddot\ europeia}}, + patreqfr = {{pedido de patente francesa}{ped\adddot\ de pat\adddot\ francesa}}, + patrequk = {{pedido de patente brit\^anica}{ped\adddot\ de pat\adddot\ brit\^anica}}, + patrequs = {{pedido de patente americana}{ped\adddot\ de pat\adddot\ americana}}, + file = {{arquivo}{arquivo}}, + library = {{biblioteca}{biblioteca}}, + abstract = {{resumo}{resumo}}, + annotation = {{notas}{notas}}, + commonera = {{Era Comum}{EC}}, + beforecommonera = {{antes da Era Comum}{AEC}}, + annodomini = {{depois de Cristo}{d\adddot C\adddot}}, + beforechrist = {{antes de Cristo}{a\adddot C\adddot}}, + circa = {{circa}{ca\adddot}}, + spring = {{primavera}{primavera}}, + summer = {{ver\~ao}{ver\~ao}}, + autumn = {{outono}{outono}}, + winter = {{inverno}{inverno}}, + am = {{AM}{AM}}, + pm = {{PM}{PM}}, +} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/lbx/british.lbx b/macros/latex/contrib/biblatex/latex/lbx/british.lbx new file mode 100644 index 0000000000..87411636e9 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/lbx/british.lbx @@ -0,0 +1,86 @@ +\ProvidesFile{british.lbx} +[\abx@lbxid] + +\DeclareBibliographyExtras{% + \protected\def\bibrangedash{% + \textendash\penalty\hyphenpenalty}% breakable dash + \let\finalandcomma=\empty + \protected\def\mkbibordinal#1{% + \begingroup + \@tempcnta0#1\relax\number\@tempcnta + \@whilenum\@tempcnta>100\do{\advance\@tempcnta-100\relax}% + \ifnum\@tempcnta>20 + \@whilenum\@tempcnta>9\do{\advance\@tempcnta-10\relax}% + \fi + \ifcase\@tempcnta th\or st\or nd\or rd\else th\fi + \endgroup}% + \protected\def\mkbibmascord{\mkbibordinal}% + \protected\def\mkbibfemord{\mkbibordinal}% + \protected\def\mkbibneutord{\mkbibordinal}% + \protected\def\mkbibdatelong#1#2#3{% + \iffieldundef{#3} + {} + {\mkbibordinal{\thefield{#3}}% + \iffieldundef{#2}{}{\nobreakspace}}% + \iffieldundef{#2} + {} + {\mkbibmonth{\thefield{#2}}% + \iffieldundef{#1}{}{\space}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}% + \protected\def\mkbibdateshort#1#2#3{% + \iffieldundef{#3} + {} + {\mkdayzeros{\thefield{#3}}% + \iffieldundef{#2}{}{/}}% + \iffieldundef{#2} + {} + {\mkmonthzeros{\thefield{#2}}% + \iffieldundef{#1}{}{/}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}% + \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{% + \iffieldundef{#1}{} + {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}% + \iffieldundef{#2}{} + {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}% + \iffieldundef{#3}{} + {\printtext{\mktimezeros{\thefield{#3}}}}% + \setunit{}% + \iffieldundef{#4}{} + {\bibtimezonesep + \mkbibtimezone{\thefield{#4}}}}% + \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{% + \stripzeros{\mktimehh{\thefield{#1}}}% + \bibtimesep + \forcezerosmdt{\thefield{#2}}% + \iffieldundef{#3}{} + {\bibtimesep + \forcezerosmdt{\thefield{#3}}}% + \space + \ifnumless{\thefield{#1}}{12} + {\bibstring{am}} + {\bibstring{pm}}% + \iffieldundef{#4}{} + {\space\bibtimezonesep + \parentext{\mkbibtimezone{\thefield{#4}}}}}% + \protected\def\mkbibseasondateshort#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% + \protected\def\mkbibseasondatelong#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% +} + +\DeclareBibliographyStrings{% + inherit = {english}, + organizer = {{organiser}{org\adddot}}, + organizers = {{organisers}{orgs\adddot}}, + byorganizer = {{organised by}{org\adddotspace by}}, +} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/lbx/bulgarian.lbx b/macros/latex/contrib/biblatex/latex/lbx/bulgarian.lbx new file mode 100644 index 0000000000..dcc8c695c1 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/lbx/bulgarian.lbx @@ -0,0 +1,600 @@ +\ProvidesFile{bulgarian.lbx} +[\abx@lbxid] + +\DeclareRedundantLanguages{bulgarian}{bulgarian} + +% This file requires UTF-8 support! + +\lbx@ifutfinput + {} + {\PackageError{biblatex} + {Bulgarian requires UTF-8 support} + {The 'bulgarian.lbx' file requires UTF-8 encoding but you + seem\MessageBreak to be using a different encoding. + This is a fatal error. I will\MessageBreak abort loading + bulgarian.lbx now.}% + \endinput} + +\NewBibliographyString{% Used only Bulgarian for month checks + datejanuary, + datefebruary, + datemarch, + dateapril, + datemay, + datejune, + datejuly, + dateaugust, + dateseptember, + dateoctober, + datenovember, + datedecember% +} + +\DeclareBibliographyExtras{% + \protected\def\bibrangedash{% + \textemdash\penalty\hyphenpenalty}% breakable dash + \let\finalandcomma=\empty + \let\finalandsemicolon=\empty + \protected\def\mkbibordinal#1{\mkbibmascord}% + \protected\def\mkbibmascord#1{#1-й}% + \protected\def\mkbibfemord#1{#1-я}% + \protected\def\mkbibneutord#1{#1-е}% + \protected\def\mkbibdatelong#1#2#3{% + \iffieldundef{#3} + {} + {\stripzeros{\thefield{#3}}% + \iffieldundef{#2}{}{\nobreakspace}}% + \iffieldundef{#2} + {} + {\iffieldundef{#3} + {\mkbibmonth{\thefield{#2}}} + {\lbx@bg@mkbibdatemonth{\thefield{#2}}}% + \iffieldundef{#1}{}{\space}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}% + \protected\def\mkbibdateshort#1#2#3{% + \iffieldundef{#3} + {} + {\mkdayzeros{\thefield{#3}}% + \iffieldundef{#2}{}{\adddot}}% + \iffieldundef{#2} + {} + {\mkmonthzeros{\thefield{#2}}% + \iffieldundef{#1}{}{\adddot}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}% + \savecommand\mkbibordedition + \savecommand\mkbibordseries + \def\mkbibordedition{\mkbibneutord}% + \def\mkbibordseries{\mkbibfemord}% + \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{% + \iffieldundef{#1}{} + {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}% + \iffieldundef{#2}{} + {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}% + \iffieldundef{#3}{} + {\printtext{\mktimezeros{\thefield{#3}}}}% + \setunit{}% + \iffieldundef{#4}{} + {\bibtimezonesep + \mkbibtimezone{\thefield{#4}}}}% + \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{% + \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep + \forcezerosmdt{\thefield{#2}}% + \iffieldundef{#3}{} + {\bibtimesep + \forcezerosmdt{\thefield{#3}}}% + \space + \ifnumless{\thefield{#1}}{12} + {\bibstring{am}} + {\bibstring{pm}}% + \iffieldundef{#4}{} + {\space\bibtimezonesep + \parentext{\mkbibtimezone{\thefield{#4}}}}}% + \protected\def\mkbibseasondateshort#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% + \protected\def\mkbibseasondatelong#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% +} + +\UndeclareBibliographyExtras{% + \restorecommand\mkbibordedition + \restorecommand\mkbibordseries +} + +\DeclareBibliographyStrings{% + bibliography = {{Библиография}{Библиография}},%book-like (chapter) + references = {{Литература}{Литература}},%article-like (section) + shorthands = {{Списък на съкращенията}{Съкращения}}, + editor = {{редактор}{ред\adddot}}, + editors = {{редактори}{ред\adddot}}, + compiler = {{съставител}{съст\adddot}}, + compilers = {{съставители}{съст\adddot}}, + redactor = {{редактор}{ред\adddot}},% FIXME: unsure + redactors = {{редактори}{ред\adddot}},% FIXME: unsure + reviser = {{коректор}{кор\adddotspace кор\adddot}}, + revisers = {{коректор}{кор\adddotspace кор\adddot}}, + founder = {{основател}{осн\adddot}}, + founders = {{основатели}{осн\adddot}}, + continuator = {{продължител}{прод\adddot}},% FIXME: unsure + continuators = {{продължител}{прод\adddot}},% FIXME: unsure + collaborator = {{участник}{участ\adddot}},% FIXME: unsure + collaborators = {{участници}{участ\adddot}},% FIXME: unsure + translator = {{преводач}{прев\adddot}}, + translators = {{преводачи}{прев\adddot}}, + commentator = {{коментатор}{комент\adddot}}, + commentators = {{коментатори}{комент\adddot}}, + annotator = {{бележки}{бел\adddot}}, + annotators = {{бележки}{бел\adddot}}, + commentary = {{комментар}{комент\adddot}}, + annotations = {{бележки}{бел\adddot}}, + introduction = {{уводна статия}{ув\adddotspace ст\adddot}}, + foreword = {{предговор}{предг\adddot}}, + afterword = {{послеслов}{послесл\adddot}}, + editortr = {{редактор и преводач}% + {ред\adddotspace и прев\adddot}}, + editorstr = {{редактори и преводачи}% + {ред\adddotspace и прев\adddot}}, + editorco = {{редактор и коментатор}% + {ред\adddotspace и комент\adddot}}, + editorsco = {{редактори и коментатори}% + {ред\adddotspace и комент\adddot}}, + editoran = {{редактор и съставител на бележките}% + {ред\adddotspace и съст\adddotspace на бел\adddot}}, + editorsan = {{редактори и съставители на бележките}% + {ред\adddotspace и съст\adddotspace на бел\adddot}}, + editorin = {{редактор и автор на уводната статия}% + {ред\adddotspace и авт\adddotspace на ув\adddotspace ст\adddot}}, + editorsin = {{редактори и автори на уводната статия}% + {ред\adddotspace и авт\adddotspace на ув\adddotspace ст\adddot}}, + editorfo = {{редактор и автор на предговора}% + {ред\adddotspace и авт\adddotspace на предг\adddot}}, + editorsfo = {{редактори и автори на предговора}% + {ред\adddotspace и авт\adddotspace на предговора\adddot}}, + editoraf = {{редактор и автор на послеслова}% + {ред\adddotspace и авт\adddotspace на послесл\adddot}}, + editorsaf = {{редактори и автори на послеслова}% + {ред\adddotspace и авт\adddotspace на послесл\adddot}}, + editortrco = {{редактор, преводач и автор на коментарите}% + {ред.,\addabbrvspace прев\adddotspace и авт\adddotspace на комент\adddot}}, + editorstrco = {{редактори, преводачи и автори коментарите}% + {ред.,\addabbrvspace прев\adddotspace и авт\adddotspace на комент\adddot}}, + editortran = {{редактор, преводач и съставител на бележките}% + {ред.,\addabbrvspace прев.\adddotspace и съст\adddotspace на бел\adddot}}, + editorstran = {{редактори, преводачи и съставители на бележките}% + {ред.,\addabbrvspace прев.\adddotspace и съст\adddotspace на бел\adddot}}, + editortrin = {{редактор, преводач и автор на уводната статия}% + {ред.,\addabbrvspace прев\adddotspace и авт\adddotspace на ув\adddotspace ст\adddot}}, + editorstrin = {{редактори, преводачи и автори на уводната статия}% + {ред.,\addabbrvspace прев\adddotspace и авт\adddotspace на ув\adddotspace ст\adddot}}, + editortrfo = {{редактор, преводач и автор на предговора}% + {ред.,\addabbrvspace прев\adddotspace и авт\adddotspace на предг\adddot}}, + editorstrfo = {{редактори, преводачи и автори на предговора}% + {ред.,\addabbrvspace прев\adddotspace и авт\adddotspace на предг\adddot}}, + editortraf = {{редактор, преводач и автор на послеслова}% + {ред.,\addabbrvspace прев\adddotspace и авт\adddotspace на послеслова\adddot}}, + editorstraf = {{редактори, преводачи и автори на послеслова}% + {ред.,\addabbrvspace прев\adddotspace и авт\adddotspace на послеслова\adddot}}, + editorcoin = {{редактор, автор на коментарите и уводната статия}% + {ред.,\addabbrvspace авт\adddotspace на комент\adddotspace и ун\adddotspace ст\adddot}}, + editorscoin = {{редактори, автори на коментарите и уводната статия}% + {ред.,\addabbrvspace авт\adddotspace на комент\adddotspace и ун\adddotspace ст\adddot}}, + editorcofo = {{редактор, автор на комментарите и предговора}% + {ред.,\addabbrvspace авт\adddotspace на комент\adddotspace и предг\adddot}}, + editorscofo = {{редактори, автори на комментарите и предговора}% + {ред.,\addabbrvspace авт\adddotspace на комент\adddotspace и предг\adddot}}, + editorcoaf = {{редактор, автор на комментарите и послеслова}% + {ред.,\addabbrvspace авт\adddotspace на комент\adddotspace и послесл\adddot}}, + editorscoaf = {{редактори, автори на комментарите и послеслова}% + {ред.,\addabbrvspace авт\adddotspace на комент\adddotspace и послесл\adddot}}, + editoranin = {{редактор, съставител на бележките и автор на уводната статия}% + {ред.,\addabbrvspace съст\adddotspace на бел.\adddotspace и авт\adddotspace на ув\adddotspace ст\adddot}}, + editorsanin = {{редактори, съставители на бележките и автори на уводната статия}% + {ред.,\addabbrvspace съст\adddotspace на бел.\adddotspace и авт\adddotspace на ув\adddotspace ст\adddot}}, + editoranfo = {{редактор, съставител на бележките и автор на предговора}% + {ред.,\addabbrvspace съст\adddotspace на бел\adddotspace и авт\adddotspace на предг\adddot}}, + editorsanfo = {{редактори, съставители на бележките и автори на предговора}% + {ред.,\addabbrvspace съст\adddotspace на бел\adddotspace и авт\adddotspace на предг\adddot}}, + editoranaf = {{редактор, съставител на бележките и автор на послеслова}% + {ред.,\addabbrvspace съст\adddotspace на бел\adddotspace и авт\adddotspace на послесл\adddot}}, + editorsanaf = {{редактори, съставители на бележките и автори на послеслова}% + {ред.,\addabbrvspace съст\adddotspace на бел\adddotspace и авт\adddotspace на послесл\adddot}}, + editortrcoin = {{редактор, преводач, автор на коментарите и уводната статия}% + {ред.,\addabbrvspace прев.,\addabbrvspace авт\adddotspace на комент\adddotspace и ув\adddotspace ст\adddot}}, + editorstrcoin = {{редактори, преводачи, автори на коментарите и уводната статия}% + {ред.,\addabbrvspace прев.,\addabbrvspace авт\adddotspace на комент\adddotspace и ув\adddotspace ст\adddot}}, + editortrcofo = {{редактор, преводач, автор на коментарите и предговора}% + {ред.,\addabbrvspace прев.,\addabbrvspace авт\adddotspace на комент\adddotspace и предг\adddot}}, + editorstrcofo = {{редактори, преводачи, автори на коментарите и предговора}% + {ред.,\addabbrvspace прев.,\addabbrvspace авт\adddotspace на комент\adddotspace и предг\adddot}}, + editortrcoaf = {{редактор, преводач, автор на комментарите и послеслова}% + {ред.,\addabbrvspace прев.,\addabbrvspace авт\adddotspace на комент\adddotspace и послесл\adddot}}, + editorstrcoaf = {{редактори, преводачи, автори на комментарите и послеслова}% + {ред.,\addabbrvspace прев.,\addabbrvspace авт\adddotspace на комент\adddotspace и послесл\adddot}}, + editortranin = {{редактор, переводач, съставител на бележките и автор на уводната статия}% + {ред.,\addabbrvspace прев.,\addabbrvspace съст\adddotspace на бел\adddotspace и авт\adddotspace на ув.\adddotspace ст\adddot}}, + editorstranin = {{редактори, переводачи, съставители на бележките и автори на уводната статия}% + {ред.,\addabbrvspace прев.,\addabbrvspace съст\adddotspace на бел\adddotspace и авт\adddotspace на ув.\adddotspace ст\adddot}}, + editortranfo = {{редактор, преводач, съставител на бележките и автор на предговора}% + {ред.,\addabbrvspace прев.,\addabbrvspace съст\adddotspace на бел\adddotspace и авт\adddotspace на предг\adddot}}, + editorstranfo = {{редактор, преводач, съставител на бележките и автор на предговора}% + {ред.,\addabbrvspace прев.,\addabbrvspace съст\adddotspace на бел\adddotspace и авт\adddotspace на предг\adddot}}, + editortranaf = {{редактор, преводач, съставител на бележките и автор на послеслова}% + {ред.,\addabbrvspace прев.,\addabbrvspace съст\adddotspace на бел\adddotspace и авт\adddotspace на послесл\adddot}}, + editorstranaf = {{редактори, преводачи, съставители на бележките и автори на послеслова}% + {ред.,\addabbrvspace прев.,\addabbrvspace съст\adddotspace на бел\adddotspace и авт\adddotspace на послесл\adddot}}, + translatorco = {{преводач и автор на коментарите}% + {прев\adddotspace и авт\adddotspace на комент\adddot}}, + translatorsco = {{преводачи и автори на коментарите}% + {прев\adddotspace и авт\adddotspace на комент\adddot}}, + translatoran = {{преводач и съставител на бележките}% + {прев\adddotspace и съст\adddotspace на бел\adddot}}, + translatorsan = {{преводачи и съставители на бележките}% + {прев\adddotspace и съст\adddotspace на бел\adddot}}, + translatorin = {{преводач и автор на уводната статия}% + {прев\adddotspace и авт\adddotspace на ув\adddotspace ст\adddot}}, + translatorsin = {{преводач и автор на уводната статия}% + {прев\adddotspace и авт\adddotspace на ув\adddotspace ст\adddot}}, + translatorfo = {{преводач и автор на предговора}% + {прев\adddotspace и авт\adddotspace на предг\adddot}}, + translatorsfo = {{преводачи и автори на предговора}% + {прев\adddotspace и авт\adddotspace на предг\adddot}}, + translatoraf = {{преводач и автор на послеслова}% + {прев\adddotspace и авт\adddotspace на послесл\adddot}}, + translatorsaf = {{преводачи и автори на послеслова}% + {прев\adddotspace и авт\adddotspace на послесл\adddot}}, + translatorcoin = {{преводач, автор ва коментарите и уводната статия}% + {прев.,\addabbrvspace авт\adddotspace на комент\adddotspace и ув\adddotspace ст\adddot}}, + translatorscoin = {{преводач, автор ва коментарите и уводната статия}% + {прев.,\addabbrvspace авт\adddotspace на комент\adddotspace и ув\adddotspace ст\adddot}}, + translatorcofo = {{преводач, автор на коментарите и предговора}% + {прев.,\addabbrvspace авт\adddotspace на комент\adddotspace и предг\adddot}}, + translatorscofo = {{преводачи, автори на коментарите и предговора}% + {прев.,\addabbrvspace авт\adddotspace на комент\adddotspace и предг\adddot}}, + translatorcoaf = {{преводач, автор на комментарите и послеслова}% + {прев.,\addabbrvspace авт\adddotspace на комент\adddotspace и послесл\adddot}}, + translatorscoaf = {{преводачи, автори на комментарите и послеслова}% + {прев.,\addabbrvspace авт\adddotspace на комент\adddotspace и послесл\adddot}}, + translatoranin = {{преводач, автор на комментарите и уводната статия}% + {прев.,\addabbrvspace авт\adddotspace на комент\adddotspace и ув\adddotspace ст\adddot}}, + translatorsanin = {{преводачи, автори на комментарите и уводната статия}% + {прев.,\addabbrvspace авт\adddotspace на комент\adddotspace и ув\adddotspace ст\adddot}}, + translatoranfo = {{преводач, автор на коментарите и предговора}% + {прев.,\addabbrvspace авт\adddotspace на комент\adddotspace и предг\adddot}}, + translatorsanfo = {{преводачи, автори на коментарите и предговора}% + {прев.,\addabbrvspace авт\adddotspace на комент\adddotspace и предг\adddot}}, + translatoranaf = {{преводач, автор на коментарите и послеслова}% + {прев.,\addabbrvspace авт\adddotspace на комент\adddotspace и послесл\adddot}}, + translatorsanaf = {{преводачи, автори на коментарите и послеслова}% + {прев.,\addabbrvspace авт\adddotspace на комент\adddotspace и послесл\adddot}}, +% organizer = {{}{}},% FIXME: missing +% organizers = {{}{}},% FIXME: missing +% byorganizer = {{}{}},% FIXME: missing +% byauthor = {{}{}},% FIXME: missing + byeditor = {{под редакцията на}{под\addabbrvspace ред\adddotspace на}}, + bycompiler = {{съставител}{съст\adddot}}, + byredactor = {{под редакцията на }{под\addabbrvspace ред\adddotspace на}}, + byreviser = {{коригирано от}{кор\adddotspace от}}, + byreviewer = {{рецензия от}{рец\adddotspace от}}, + byfounder = {{основател}{осн\adddot}}, + bycontinuator = {{продължител}{продълж\adddot}}, + bycollaborator = {{сътрудник}{сътр\adddot}}, + bytranslator = {{превод \lbx@lfromlang}{прев\adddot\ \lbx@sfromlang}}, + bycommentator = {{коментари}{комент\adddot}}, + byannotator = {{бележки}{бел\adddot}}, + withcommentator = {{коментари}{комент\adddot}}, + withannotator = {{бележки}{бел\adddot}}, + withintroduction = {{уводна статия}{ув\adddotspace ст\adddot}}, + withforeword = {{предговор}{предг\adddot}}, + withafterword = {{послеслов}{послесл\adddot}}, + byeditortr = {{превод \lbx@lfromlang, под редакцията на}% + {прев\adddot\ \lbx@sfromlang, под\addabbrvspace ред\adddot}}, + byeditorco = {{под редакцията на, коментари}% + {под ред.,\addabbrvspace коммент\adddot}}, + byeditoran = {{под редакцията на, бележки}% + {под ред.,\addabbrvspace бел\adddot}}, + byeditorin = {{под редакцията на, уводна статия}% + {под ред.,\addabbrvspace ув\adddotspace ст\adddot}}, + byeditorfo = {{под редакцията на, предговор}% + {под ред.,\addabbrvspace предг\adddot}}, + byeditoraf = {{под редакцията на, послеслов}% + {под ред.,\addabbrvspace послесл\adddot}}, + byeditortrco = {{под редакцията на, превод \lbx@lfromlang\ и комментари}% + {под ред.,\addabbrvspace прев\adddot\ \lbx@sfromlang\ и коммент\adddot}}, + byeditortran = {{под редакцията на, превод \lbx@lfromlang\ и бележки}% + {под ред.,\addabbrvspace прев\adddot\ \lbx@sfromlang\ и бел\adddot}}, + byeditortrin = {{под редакцията на, превод \lbx@lfromlang, уводна статия}% + {под ред.,\addabbrvspace прев\adddot\ \lbx@sfromlang, ув\adddotspace ст\adddot}}, + byeditortrfo = {{под редакцията на, превод \lbx@lfromlang, предговор}% + {под ред.,\addabbrvspace прев\adddot\ \lbx@sfromlang, предг\adddot}}, + byeditortraf = {{под редакцията на, превод \lbx@lfromlang, послеслов}% + {под ред\adddotspace и прев\adddot\ \lbx@sfromlang, послесл\adddot}}, + byeditorcoin = {{под редакцията на, коментари и уводна статия}% + {под ред.,\addabbrvspace комент\adddotspace и ув\adddotspace ст\adddot}}, + byeditorcofo = {{под редакцията на, коментари и предговор}% + {под ред.,\addabbrvspace комент\adddotspace и предг\adddot}}, + byeditorcoaf = {{под редакцията на, коментари и послеслов}% + {под ред.,\addabbrvspace комент\adddotspace и послесл\adddot}}, + byeditoranin = {{под редакцията на, бележки и уводна статия}% + {под ред.,\addabbrvspace бел\adddotspace и ув\adddotspace ст\adddot}}, + byeditoranfo = {{под редакцията на, бележки и предговор}% + {под ред.,\addabbrvspace бел\adddotspace и предг\adddot}}, + byeditoranaf = {{под редакцията на, бележки и послеслов}% + {под ред.,\addabbrvspace бел\adddotspace и послесл\adddot}}, + byeditortrcoin = {{под редакцията на, превод \lbx@lfromlang, коментари и уводна статия}% + {под ред.,\addabbrvspace прев\adddot\ \lbx@sfromlang, комент\adddotspace и ув\adddotspace ст\adddot}}, + byeditortrcofo = {{под редакцията на, превод \lbx@lfromlang, коментари и предгово}% + {под ред.,\addabbrvspace прев\adddot\ \lbx@sfromlang, комент\adddotspace и предг\adddot}}, + byeditortrcoaf = {{под редакцията на, превод \lbx@lfromlang, коментари и послеслов}% + {под ред.,\addabbrvspace прев\adddot\ \lbx@sfromlang, комент\adddotspace и послесл\adddot}}, + byeditortranin = {{под редакцията на, превод \lbx@lfromlang, бележки и уводна статия}% + {под ред.,\addabbrvspace прев\adddot\ \lbx@sfromlang, бел\adddotspace и ув\adddotspace ст\adddot}}, + byeditortranfo = {{под редакцията на, превод \lbx@lfromlang, бележки и предговор}% + {под ред.,\addabbrvspace прев\adddot\ \lbx@sfromlang, бел\adddotspace и предг\adddot}}, + byeditortranaf = {{под редакцията на, превод \lbx@lfromlang, бележки и послеслов}% + {под ред.,\addabbrvspace прев\adddot\ \lbx@sfromlang, бел\adddotspace и послесл\adddot}}, + bytranslatorco = {{превод \lbx@lfromlang\ и коментари}% + {прев\adddot\ \lbx@sfromlang\ и коммент\adddot}}, + bytranslatoran = {{превод \lbx@lfromlang\ и бележки}% + {прев\adddot\ \lbx@sfromlang\ и бел\adddot}}, + bytranslatorin = {{превод \lbx@lfromlang\ и уводна статия}% + {прев\adddot\ \lbx@sfromlang\ и ув\adddotspace ст\adddot}}, + bytranslatorfo = {{превод \lbx@lfromlang\ и предговор}% + {прев\adddot\ \lbx@sfromlang\ и предг\adddot}}, + bytranslatoraf = {{превод \lbx@lfromlang\ и послеслов}% + {прев\adddot\ \lbx@sfromlang\ и и послесл\adddot}}, + bytranslatorcoin = {{превод \lbx@lfromlang, коментари и уводна статия}% + {прев\adddot\ \lbx@sfromlang, комент\adddotspace и ув\adddotspace ст\adddot}}, + bytranslatorcofo = {{превод \lbx@lfromlang, коментари и предговор}% + {прев\adddot\ \lbx@sfromlang, комент\adddotspace и предг\adddot}}, + bytranslatorcoaf = {{превод \lbx@lfromlang, коментари и послеслов}% + {прев\adddot\ \lbx@sfromlang, комент\adddotspace и послесл\adddot}}, + bytranslatoranin = {{превод \lbx@lfromlang, бележки и уводна статия}% + {прев\adddot\ \lbx@sfromlang, бел\adddotspace и ув\adddotspace ст\adddot}}, + bytranslatoranfo = {{превод \lbx@lfromlang, бележки и предговор}% + {прев\adddot\ \lbx@sfromlang, бел\adddotspace и предг\adddot}}, + bytranslatoranaf = {{превод \lbx@lfromlang, бележки и послеслов}% + {прев\adddot\ \lbx@sfromlang, бел\adddotspace и послесл\adddot}}, + and = {{и}{и}}, + andothers = {{и\addabbrvspace др\adddot}{и\addabbrvspace др\adddot}}, + andmore = {{и\addabbrvspace др\adddot}{и\addabbrvspace др\adddot}}, + volume = {{том}{т\adddot}}, + volumes = {{тома}{т\adddot}}, + involumes = {{в}{в}}, + jourvol = {{том}{т\adddot}}, + jourser = {{поредица}{пор\adddot}}, + book = {{книга}{кн\adddot}}, + part = {{част}{ч\adddot}}, + issue = {{брой}{бр\adddot}}, + newseries = {{нова поредица}{нова пор\adddot}}, + oldseries = {{стара поредица}{стара пор\adddot}}, + edition = {{издание}{изд\adddot}}, + reprint = {{преиздание}{преизд\adddot}}, + reprintof = {{преиздание на}{преизд\adddotspace на}}, + reprintas = {{переиздадено като}{преизд\adddotspace като}}, + reprintfrom = {{преиздадено с}{преизд\adddotspace с}}, + translationof = {{превод по изданието\addcolon}{прев\adddotspace по изд\adddot\addcolon}}, + translationas = {{превод\addcolon}{прев\adddot\addcolon}}, + translationfrom = {{превод от}{прев\adddotspace от}}, + reviewof = {{рецензия на\addcolon}{рец\adddotspace на\addcolon}}, + origpubas = {{първо публикуване\addcolon}% + {първо публ\adddot\addcolon}}, + origpubin = {{първо публикувано в}% + {първо публ\adddotspace в}}, + astitle = {{под заглавие\addcolon}{под загл\adddot\addcolon}}, + bypublisher = {{издател\addcomma}{изд\addcomma}},% FIXME: unsure + nodate = {{б\adddot г\adddot}{б\adddot г\adddot}}, + page = {{страница}{с\adddot}}, + pages = {{страници}{с\adddot}}, + column = {{колона}{кол\adddot}}, + columns = {{колони}{кол\adddot}}, + line = {{ред}{ред}}, + lines = {{редове}{редове}}, + verse = {{стих}{стих}}, + verses = {{стихове}{стихове}}, + section = {{параграф}{\S}}, + sections = {{параграфи}{\S\S}}, + paragraph = {{абзац}{абз\adddot}}, + paragraphs = {{абзаци}{абз\adddot}}, +% pagetotal = {{}{}},% FIXME: missing +% pagetotals = {{}{}},% FIXME: missing +% columntotal = {{}{}},% FIXME: missing +% columntotals = {{}{}},% FIXME: missing +% linetotal = {{}{}},% FIXME: missing +% linetotals = {{}{}},% FIXME: missing +% versetotal = {{}{}},% FIXME: missing +% versetotals = {{}{}},% FIXME: missing +% sectiontotal = {{}{}},% FIXME: missing +% sectiontotals = {{}{}},% FIXME: missing +% paragraphtotal = {{}{}},% FIXME: missing +% paragraphtotals = {{}{}},% FIXME: missing + in = {{в}{в}}, + inseries = {{в}{в}}, + ofseries = {{от}{от}}, + number = {{номер}{№}}, + chapter = {{глава}{гл\adddot}}, +% bathesis = {{}{}},% FIXME: missing + mathesis = {{маг\adddotspace\textellipsis\ дис\adddot} + {маг\adddotspace\textellipsis\ дис\adddot}}, + phdthesis = {{докт\adddotspace\textellipsis\ дис\adddot} + {докт\adddotspace\textellipsis\ дис\adddot}}, + candthesis = {{канд\adddotspace\textellipsis\ дис\adddot} + {канд\adddotspace\textellipsis\ дис\adddot}}, + resreport = {{научен доклад}{научен докл\adddot}}, + techreport = {{технически доклад}{техн\adddotspace докл\adddot}}, + software = {{програмно обезпечение}{прогр\adddotspace обезп\adddot}}, + datacd = {{CD-ROM}{CD-ROM}}, + audiocd = {{audio CD}{audio CD}}, + version = {{версия}{вер\adddot}}, + url = {{url}{url}}, + urlfrom = {{режим на достъп}{режим на достъп}}, + urlseen = {{дата на посещение}{дата\addabbrvspace на посещ\adddot}}, + inpreparation = {{в\addabbrvspace подготовка на}{в подг\adddotspace на}}, + submitted = {{изпратено}{изпр\adddot}}, + forthcoming = {{предстоящо публикуване}{предст\adddotspace публ\adddot}}, + inpress = {{под\addabbrvspace печат}{под печ\adddot}}, + prepublished = {{предварителна публикация}{предв\adddotspace публ\adddot}},% FIXME: unsure + citedas = {{по-нататък цитирано като}{по-нататък цит\addabbrvspace като}}, + thiscite = {{тук}{тук}}, + seenote = {{виж бележката под линия}{вж\adddotspace бел\adddotspace под линия}}, + quotedin = {{цитирано в}{цит\adddotspace в}}, + idem = {{същия\addabbrvspace автор}{същ\adddotspace авт\adddot}}, + idemsm = {{същия\addabbrvspace автор}{същ\adddotspace авт\adddot}}, + idemsf = {{същия\addabbrvspace автор}{същ\adddotspace авт\adddot}}, + idemsn = {{същия\addabbrvspace автор}{същ\adddotspace авт\adddot}}, + idempm = {{същите\addabbrvspace автори}{същ\adddotspace авт\adddot}}, + idempf = {{същите\addabbrvspace автори}{същ\adddotspace авт\adddot}}, + idempn = {{същите\addabbrvspace автори}{същ\adddotspace авт\adddot}}, + idempp = {{същите\addabbrvspace автори}{същ\adddotspace авт\adddot}}, + ibidem = {{пак\addabbrvspace там}{пак\addabbrvspace там}}, + opcit = {{цит\adddotspace съч\adddot}{цит\adddotspace съч\adddot}}, + loccit = {{цит\adddotspace място}{цит\adddotspace място}}, + confer = {{сравни}{срв\adddot}}, + sequens = {{и следващата}{и\addabbrvspace следв\adddot}}, + sequentes = {{и следващите}{и\addabbrvspace следв\adddot}}, + passim = {{навсякъде}{навс\adddot}}, + see = {{виж}{вж\adddot}}, + seealso = {{виж също}{вж\adddotspace също}}, + backrefpage = {{цитирано на страница}{цит\adddotspace на\addabbrvspace с\adddot}}, + backrefpages = {{цитирано на страници}{цит\adddotspace на\addabbrvspace с\adddot}}, + january = {{януари}{ян\adddot}}, + february = {{февруари}{февр\adddot}}, + march = {{март}{март}}, + april = {{април}{апр\adddot}}, + may = {{май}{май}}, + june = {{юни}{юни}}, + july = {{юли}{юли}}, + august = {{август}{авг\adddot}}, + september = {{септември}{септ\adddot}}, + october = {{октомври}{окт\adddot}}, + november = {{ноември}{ноем\adddot}}, + december = {{декември}{дек\adddot}}, + datejanuary = {{януари}{ян\adddot}}, + datefebruary = {{февруари}{февр\adddot}}, + datemarch = {{март}{март}}, + dateapril = {{април}{апр\adddot}}, + datemay = {{май}{май}}, + datejune = {{юни}{юни}}, + datejuly = {{юли}{юли}}, + dateaugust = {{август}{авг\adddot}}, + dateseptember = {{септември}{септ\adddot}}, + dateoctober = {{октомври}{окт\adddot}}, + datenovember = {{ноември}{ноем\adddot}}, + datedecember = {{декември}{дек\adddot}}, + langamerican = {{американски}{амер\adddot}}, + langbrazilian = {{бразилски}{браз\adddot}}, + langbulgarian = {{български}{бълг\adddot}}, + langcatalan = {{каталунски}{катал\adddot}}, + langcroatian = {{хърватски}{хърв\adddot}}, + langczech = {{чешки}{чеш\adddot}}, + langdanish = {{датски}{дат\adddot}}, + langdutch = {{нидерландски}{нидерл\adddot}}, + langenglish = {{английски}{англ\adddot}}, + langestonian = {{естонски}{ест\adddot}}, + langfinnish = {{фински}{фин\adddot}}, + langfrench = {{френски}{фр\adddot}}, + langgalician = {{галисийски}{гал\adddot}}, + langgerman = {{немски}{нем\adddot}}, + langgreek = {{гръцки}{гр\adddot}}, + langhungarian = {{унгарски}{унг\adddot}}, + langitalian = {{италиански}{итал\adddot}}, + langjapanese = {{японски}{яп\adddot}}, + langlatin = {{латински}{лат\adddot}}, +% langlatvian = {{}{}},% FIXME: missing + langnorwegian = {{норвежки}{норв\adddot}}, + langpolish = {{полски}{пол\adddot}}, + langportuguese = {{португалски}{порт\adddot}}, + langrussian = {{русски}{рус\adddot}}, +% langslovak = {{}{}},% FIXME: missing + langslovene = {{словенски}{слов\adddot}}, + langspanish = {{испански}{исп\adddot}}, + langswedish = {{шведски}{швед\adddot}}, + fromamerican = {{от американски}{от\addabbrvspace амер\adddot}}, + frombrazilian = {{от бразилски}{от\addabbrvspace браз\adddot}}, + frombulgarian = {{от български}{от\addabbrvspace бълг\adddot}}, + fromcatalan = {{от каталунски}{от\addabbrvspace катал\adddot}}, + fromcroatian = {{от хърватски}{от\addabbrvspace хърв\adddot}}, + fromczech = {{от чешки}{от\addabbrvspace чеш\adddot}}, + fromdanish = {{от датски}{от\addabbrvspace дат\adddot}}, + fromdutch = {{от нидерландски}{от\addabbrvspace нидерл\adddot}}, + fromenglish = {{от английски}{от\addabbrvspace англ\adddot}}, + fromestonian = {{от естонски}{от\addabbrvspace эст\adddot}}, + fromfinnish = {{от фински}{от\addabbrvspace фин\adddot}}, + fromfrench = {{от френски}{от\addabbrvspace фр\adddot}}, + fromgalician = {{от галисийски}{от\addabbrvspace гал\adddot}}, + fromgerman = {{от немски}{от\addabbrvspace нем\adddot}}, + fromgreek = {{от гръцки}{от\addabbrvspace гр\adddot}}, + fromhungarian = {{от унгарски}{от\addabbrvspace унг\adddot}}, + fromitalian = {{от италиански}{от\addabbrvspace итал\adddot}}, + fromjapanese = {{от японски}{от\addabbrvspace яп\adddot}}, + fromlatin = {{от латински}{от\addabbrvspace лат\adddot}}, +% fromlatvian = {{}{}},% FIXME: missing + fromnorwegian = {{от норвежки}{от\addabbrvspace норв\adddot}}, + frompolish = {{от полски}{от пол\adddot}}, + fromportuguese = {{от португалски}{от\addabbrvspace порт\adddot}}, + fromrussian = {{от руски}{от\addabbrvspace рус\adddot}}, +% fromslovak = {{}{}},% FIXME: missing + fromslovene = {{от словенски}{от\addabbrvspace слов\adddot}}, + fromspanish = {{от испански}{от\addabbrvspace исп\adddot}}, + fromswedish = {{от шведски}{от\addabbrvspace швед\adddot}}, + countryde = {{Германия}{Германия}}, + countryeu = {{Европейски съюз}{ЕС}}, + countryep = {{Европейски съюз}{ЕС}}, + countryfr = {{Франция}{Франция}}, + countryuk = {{Великобритания}{Великобритания}}, + countryus = {{Съединени американски щати}{САЩ}}, + patent = {{патент}{пат\adddot}}, + patentde = {{патент на Германия}{пат\adddotspace на Германия}}, + patenteu = {{патент на Европа}{пат\adddotspace на Европа}}, + patentfr = {{патент на Франция}{пат\adddotspace на Франции}}, + patentuk = {{патент на Великобритания}{пат\adddotspace на Великобритания}}, + patentus = {{патент на САЩ}{пат\adddotspace на САЩ}}, + patreq = {{заявка}{заявка}}, + patreqde = {{заявка за патент на Германии}{заявка за пат\adddotspace на Германия}}, + patreqeu = {{заявка за патент на Европа}{заявка за пат\adddotspace на Европа}}, + patreqfr = {{заявка за патент на Франция}{заявка за пат\adddotspace на Франция}}, + patrequk = {{заявка за патент на Великобритания}{заявка за пат\adddotspace на Великобритания}}, + patrequs = {{заявка за патент на САЩ}{заявка за пат\adddotspace на САЩ}}, + file = {{файл}{файл}}, + library = {{библиотека}{б-ка}}, + abstract = {{резюме}{рез\adddot}}, + annotation = {{анотация}{анот\adddot}}, + commonera = {{новата ера}{н\adddotspace е\adddot}}, + beforecommonera = {{до новата ера}{до н\adddotspace е\adddot}}, + annodomini = {{след Христа}{сл\adddotspace Хр\adddot}}, + beforechrist = {{до Христа}{до Хр\adddot}}, + circa = {{около}{ок\adddot}}, + spring = {{пролет}{пролет}}, + summer = {{лято}{лято}}, + autumn = {{есен}{есен}}, + winter = {{зима}{зима}}, + am = {{преди обяд}{преди обяд}}, + pm = {{след обяд}{сдед обяд}}, +} + +\protected\gdef\lbx@bg@mkbibdatemonth#1{% + \ifcase0#1\relax + #1\BibliographyWarning{Month out of range}% + \or\abx@bibmonth{datejanuary}% + \or\abx@bibmonth{datefebruary}% + \or\abx@bibmonth{datemarch}% + \or\abx@bibmonth{dateapril}% + \or\abx@bibmonth{datemay}% + \or\abx@bibmonth{datejune}% + \or\abx@bibmonth{datejuly}% + \or\abx@bibmonth{dateaugust}% + \or\abx@bibmonth{dateseptember}% + \or\abx@bibmonth{dateoctober}% + \or\abx@bibmonth{datenovember}% + \or\abx@bibmonth{datedecember}% + \else + #1\BibliographyWarning{Month out of range}% + \fi}% + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/lbx/canadian.lbx b/macros/latex/contrib/biblatex/latex/lbx/canadian.lbx new file mode 100644 index 0000000000..67b2dfc2cd --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/lbx/canadian.lbx @@ -0,0 +1,7 @@ +\ProvidesFile{canadian.lbx} +[\abx@lbxid] + +\InheritBibliographyExtras{english}% correct? these are the US standards +\InheritBibliographyStrings{english} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/lbx/catalan.lbx b/macros/latex/contrib/biblatex/latex/lbx/catalan.lbx new file mode 100644 index 0000000000..973b91b597 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/lbx/catalan.lbx @@ -0,0 +1,630 @@ +\ProvidesFile{catalan.lbx} +[\abx@lbxid] + +\DeclareRedundantLanguages{catalan}{catalan} + +\DeclareBibliographyExtras{% + \protected\def\bibrangedash{\addnbthinspace -\addnbthinspace}% + \let\finalandcomma=\empty + \let\finalandsemicolon=\empty + \def\mkbibordinal{\mkbibmascord}% + \protected\def\mkbibmascord#1{% + \begingroup + \@tempcnta0#1\relax\number\@tempcnta + \ifcase\@tempcnta\or r\or n\or r\or t\else\`e\fi + \endgroup}% + \protected\def\mkbibfemord#1{\stripzeros{#1}a}% + \protected\def\mkbibdatelong#1#2#3{% maintainers: check me + \iffieldundef{#3} + {} + {\stripzeros{\thefield{#3}}% + \iffieldundef{#2} + {} + {\space% + \ifthenelse{\thefield{#2}=4} + {d'} + {\ifthenelse{\thefield{#2}=8} + {d'} + {\ifthenelse{\thefield{#2}=10} + {d'} + {de\nobreakspace}}}}}% + \iffieldundef{#2} + {} + {\mkbibmonth{\thefield{#2}}% + \iffieldundef{#1} + {} + {\space de\nobreakspace}}% + \iffieldundef{#1} + {} + {\iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\thefield{#1}}}}% + \protected\def\mkbibdateshort#1#2#3{% maintainers: check me + \iffieldundef{#3} + {} + {\mkdayzeros{\thefield{#3}}% + \iffieldundef{#2}{}{\mbox{-}}}% + \iffieldundef{#2} + {} + {\mkmonthzeros{\thefield{#2}}% + \iffieldundef{#1}{}{\mbox{-}}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\thefield{#1}}}% + \savecommand\lbx@initnamehook + \savecommand\lbx@inittitlehook + \savecommand\mkdaterangeterse + \savecommand\mkbibordedition + \savecommand\mkbibordseries + \let\lbx@initnamehook=\lbx@ca@smartof + \let\lbx@inittitlehook=\lbx@ca@smartof + \protected\def\mkdaterangeterse{% + \BibliographyWarning{% + Date format 'terse' not applicable to\MessageBreak + Catalan dates. Using format 'short' instead}% + \mkdaterangefull{short}}% + \def\mkbibordedition{\mkbibfemord}% + \def\mkbibordseries{\mkbibfemord}% + \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{% + \iffieldundef{#1}{} + {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}% + \iffieldundef{#2}{} + {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}% + \iffieldundef{#3}{} + {\printtext{\mktimezeros{\thefield{#3}}}}% + \setunit{}% + \iffieldundef{#4}{} + {\bibtimezonesep + \mkbibtimezone{\thefield{#4}}}}% + \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{% + \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep + \forcezerosmdt{\thefield{#2}}% + \iffieldundef{#3}{} + {\bibtimesep + \forcezerosmdt{\thefield{#3}}}% + \space + \ifnumless{\thefield{#1}}{12} + {\bibstring{am}} + {\bibstring{pm}}% + \iffieldundef{#4}{} + {\space\bibtimezonesep + \parentext{\mkbibtimezone{\thefield{#4}}}}}% + \protected\def\mkbibseasondateshort#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% + \protected\def\mkbibseasondatelong#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% +} + +\UndeclareBibliographyExtras{% + \restorecommand\lbx@initnamehook + \restorecommand\lbx@inittitlehook + \restorecommand\mkdaterangeterse + \restorecommand\mkbibordedition + \restorecommand\mkbibordseries +} + +\DeclareBibliographyStrings{% + bibliography = {{Bibliografia}{Bibliografia}}, + references = {{Refer\`encies}{Refer\`encies}}, + shorthands = {{Llista d'abreviatures}{Abreviatures}}, + editor = {{editor}{ed\adddot}}, + editors = {{editors}{ed\adddot}}, + compiler = {{compilador}{comp\adddot}},% Revisar + compilers = {{compiladors}{comp\adddot}},% Revisar + redactor = {{redactor}{red\adddot}}, + redactors = {{redactors}{red\adddot}}, + reviser = {{revisor}{rev\adddot}}, + revisers = {{revisors}{rev\adddot}}, + founder = {{fundador}{fund\adddot}}, + founders = {{fundadors}{fund\adddot}}, + continuator = {{continuador}{cont\adddot}}, + continuators = {{continuadors}{cont\adddot}}, + collaborator = {{co\l.laborador}{co\l.l\adddot}},% \l* -> catalan.ldf (babel) + collaborators = {{co\l.laboradors}{co\l.l\adddot}}, + translator = {{traductor}{trad\adddot}}, + translators = {{traductors}{trad\adddot}}, + commentator = {{comentarista}{com\adddot}}, + commentators = {{comentaristes}{com\adddot}}, + annotator = {{anotador}{anot\adddot}}, + annotators = {{anotadors}{anot\adddot}}, + commentary = {{comentari}{com\adddot}}, + annotations = {{notes}{n\adddot}}, + introduction = {{introducci\'o}{intr\adddot}}, + foreword = {{pr\`oleg}{pr\`ol\adddot}}, + afterword = {{ep\'{\i}leg}{ep\adddot}}, + editortr = {{editor i traductor}{ed\adddotspace i trad\adddot}}, + editorstr = {{editors i traductors}{ed\adddotspace i trad\adddot}}, + editorco = {{editor i comentarista}{ed\adddotspace i com\adddot}}, + editorsco = {{editors i comentaristes}{ed\adddotspace i com\adddot}}, + editoran = {{editor i anotador}{ed\adddotspace i anot\adddot}}, + editorsan = {{editors i anotadors}{ed\adddotspace i anot\adddot}}, + editorin = {{editor i autor de la introducci\'o} + {ed\adddotspace i aut\adddotspace de la intr\adddot}}, + editorsin = {{editors i autors de la introducci\'o} + {ed\adddotspace i aut\adddotspace de la intr\adddot}}, + editorfo = {{editor i autor del pr\`oleg} + {ed\adddotspace i aut\adddotspace del pr\`ol\adddot}}, + editorsfo = {{editors i autors del pr\`oleg} + {ed\adddotspace i aut\adddotspace del pr\`ol\adddot}}, + editoraf = {{editor i autor de l'ep\'{\i}leg} + {ed\adddotspace i aut\adddotspace de l'ep\adddot}}, + editorsaf = {{editors i autors de l'ep\'{\i}leg} + {ed\adddotspace i aut\adddotspace de l'ep\adddot}}, + editortrco = {{editor, traductor i comentarista} + {ed.,\addabbrvspace trad\adddotspace i com\adddot}}, + editorstrco = {{editors, traductors i comentaristes} + {ed.,\addabbrvspace trad\adddotspace i com\adddot}}, + editortran = {{editor, traductor i anotador} + {ed.,\addabbrvspace trad\adddotspace i anot\adddot}}, + editorstran = {{editors, traductors i anotadors} + {ed.,\addabbrvspace trad\adddotspace i anot\adddot}}, + editortrin = {{editor, traductor i autor de la introducci\'o} + {ed.,\addabbrvspace trad\adddotspace i aut\adddotspace de la intr\adddot}}, + editorstrin = {{editors, traductors i autors de la introducci\'o} + {ed.,\addabbrvspace trad\adddotspace i aut\adddotspace de la intr\adddot}}, + editortrfo = {{editor, traductor i autor del pr\`oleg} + {ed.,\addabbrvspace trad\adddotspace i aut\adddotspace del pr\`ol\adddot}}, + editorstrfo = {{editors, traductors i autors del pr\`oleg} + {ed.,\addabbrvspace trad\adddotspace i aut\adddotspace del pr\`ol\adddot}}, + editortraf = {{editor, traductor i autor de l'ep\'{\i}leg} + {ed.,\addabbrvspace trad\adddotspace i aut\adddotspace de l'ep\adddot}}, + editorstraf = {{editors, traductors i autors de l'ep\'{\i}leg} + {ed.,\addabbrvspace trad\adddotspace i aut\adddotspace de l'ep\adddot}}, + editorcoin = {{editor, comentarista i autor de la introducci\'o} + {ed.,\addabbrvspace com\adddotspace i aut\adddotspace de la intr\adddot}}, + editorscoin = {{editors, comentaristes i autors de la introducci\'o} + {ed.,\addabbrvspace com\adddotspace i aut\adddotspace de la intr\adddot}}, + editorcofo = {{editor, comentarista i autor del pr\`oleg} + {ed.,\addabbrvspace com\adddotspace i aut\adddotspace del pr\`ol\adddot}}, + editorscofo = {{editors, comentaristes i autors del pr\`oleg} + {ed.,\addabbrvspace com\adddotspace i aut\adddotspace del pr\`ol\adddot}}, + editorcoaf = {{editor, comentarista i autor de l'ep\'{\i}leg} + {ed.,\addabbrvspace com\adddotspace i aut\adddotspace de l'ep\adddot}}, + editorscoaf = {{editors, comentaristes i autors de l'ep\'{\i}leg} + {ed.,\addabbrvspace com\adddotspace i aut\adddotspace de l'ep\adddot}}, + editoranin = {{editor, anotador i autor de la introducci\'o} + {ed.,\addabbrvspace anot\adddotspace i aut\adddotspace de la intr\adddot}}, + editorsanin = {{editors, anotadors i autors de la introducci\'o} + {ed.,\addabbrvspace anot\adddotspace i aut\adddotspace de la intr\adddot}}, + editoranfo = {{editor, anotador i autor del pr\`oleg} + {ed.,\addabbrvspace anot\adddotspace i aut\adddotspace del pr\`ol\adddot}}, + editorsanfo = {{editors, anotadors i autors del pr\`oleg} + {ed.,\addabbrvspace anot\adddotspace i aut\adddotspace del pr\`ol\adddot}}, + editoranaf = {{editor, anotador i autor de l'ep\'{\i}leg} + {ed.,\addabbrvspace anot\adddotspace i aut\adddotspace de l'ep\adddot}}, + editorsanaf = {{editors, anotadors i autors de l'ep\'{\i}leg} + {ed.,\addabbrvspace anot\adddotspace i aut\adddotspace de l'ep\adddot}}, + editortrcoin = {{editor, traductor, comentarista i autor de la introducci\'o} + {ed.,\addabbrvspace trad.,\addabbrvspace com\adddotspace i aut\adddotspace de la intr\adddot}}, + editorstrcoin = {{editors, traductors, comentaristes i autors de la introducci\'o} + {ed.,\addabbrvspace trad.,\addabbrvspace com\adddotspace i aut\adddotspace de la intr\adddot}}, + editortrcofo = {{editor, traductor, comentarista i autor del pr\`oleg} + {ed.,\addabbrvspace trad.,\addabbrvspace com\adddotspace i aut\adddotspace del pr\`ol\adddot }}, + editorstrcofo = {{editors, traductors, comentaristes i autors del pr\`oleg} + {ed.,\addabbrvspace trad.,\addabbrvspace com\adddotspace i aut\adddotspace del pr\`ol\adddot }}, + editortrcoaf = {{editor, traductor, comentarista i autor de l'ep\'{\i}leg} + {ed.,\addabbrvspace trad.,\addabbrvspace com\adddotspace i aut\adddotspace de l'ep\adddot}}, + editorstrcoaf = {{editors, traductors, comentaristes i autors de l'ep\'{\i}leg} + {ed.,\addabbrvspace trad.,\addabbrvspace com\adddotspace i aut\adddotspace de l'ep\adddot}}, + editortranin = {{editor, traductor, anotador i autor de la introducci\'o} + {ed.,\addabbrvspace trad.,\addabbrvspace anot\adddotspace i aut\adddotspace de la intr\adddot}}, + editorstranin = {{editors, traductors, anotadors i autors de la introducci\'o} + {ed.,\addabbrvspace trad.,\addabbrvspace anot\adddotspace i aut\adddotspace de la intr\adddot}}, + editortranfo = {{editor, traductor, anotador i autor del pr\`oleg} + {ed.,\addabbrvspace trad.,\addabbrvspace anot\adddotspace i aut\adddotspace de pr\`ol\adddot}}, + editorstranfo = {{editors, traductors, anotadors i autors del pr\`oleg} + {ed.,\addabbrvspace trad.,\addabbrvspace anot\adddotspace i aut\adddotspace de pr\`ol\adddot}}, + editortranaf = {{editor, traductor, anotador i autor de l'ep\'{\i}leg} + {ed.,\addabbrvspace trad.,\addabbrvspace anot\adddotspace i aut\adddotspace de l'ep\adddot}}, + editorstranaf = {{editors, traductors, anotadors i autors de l'ep\'{\i}leg} + {ed.,\addabbrvspace trad.,\addabbrvspace anot\adddotspace i aut\adddotspace de l'ep\adddot}}, + translatorco = {{traductor i comentarista} + {trad\adddotspace i com\adddot}}, + translatorsco = {{traductors i comentaristes} + {trad\adddotspace i com\adddot}}, + translatoran = {{traductor i anotador} + {trad\adddotspace i anot\adddot}}, + translatorsan = {{traductors i anotadors} + {trad\adddotspace i anot\adddot}}, + translatorin = {{traductor i autor de la introducci\'o} + {trad\adddotspace i aut\adddotspace de la intr\adddot}}, + translatorsin = {{traductors i autors de la introducci\'o} + {trad\adddotspace i aut\adddotspace de la intr\adddot}}, + translatorfo = {{traductor i autor del pr\`oleg} + {trad\adddotspace i aut\adddotspace del pr\`ol\adddot}}, + translatorsfo = {{traductors i autors del pr\`oleg} + {trad\adddotspace i aut\adddotspace del pr\`ol\adddot}}, + translatoraf = {{traductor i autor de l'ep\'{\i}leg} + {trad\adddotspace i aut\adddotspace de l'ep\adddot}}, + translatorsaf = {{traductors i autors de l'ep\'{\i}leg} + {trad\adddotspace i aut\adddotspace de l'ep\adddot}}, + translatorcoin = {{traductor, comentarista i autor de la introducci\'o} + {trad.,\addabbrvspace com\adddotspace i aut\adddotspace de la intr\adddotspace}}, + translatorscoin = {{traductors, comentaristes i autors de la introducci\'o} + {trad.,\addabbrvspace com\adddotspace i aut\adddotspace de la intr\adddotspace}}, + translatorcofo = {{traductor, comentarista i autor del pr\`oleg} + {trad.,\addabbrvspace com\adddotspace i aut\adddotspace del pr\`ol\adddot}}, + translatorscofo = {{traductors, comentaristes i autors del pr\`oleg} + {trad.,\addabbrvspace com\adddotspace i aut\adddotspace del pr\`ol\adddot}}, + translatorcoaf = {{traductor, comentarista i autor de l'ep\'{\i}leg} + {trad.,\addabbrvspace com\adddotspace i aut\adddotspace de l'ep\adddot}}, + translatorscoaf = {{traductors, comentaristes i autors de l'ep\'{\i}leg} + {trad.,\addabbrvspace com\adddotspace i aut\adddotspace de l'ep\adddot}}, + translatoranin = {{traductor, anotador i autor de la introducci\'o} + {trad.,\addabbrvspace anot\adddotspace i aut\adddotspace de la intr\adddot}}, + translatorsanin = {{traductors, anotadors i autors de la introducci\'o} + {trad.,\addabbrvspace anot\adddotspace i aut\adddotspace de la intr\adddot}}, + translatoranfo = {{traductor, anotador i autor del pr\`oleg} + {trad.,\addabbrvspace anot\adddotspace i aut\adddotspace del pr\`ol\adddot}}, + translatorsanfo = {{traductors, anotadors i autors del pr\`oleg} + {trad.,\addabbrvspace anot\adddotspace i aut\adddotspace del pr\`ol\adddot}}, + translatoranaf = {{traductor, anotador i autor de l'ep\'{\i}leg} + {trad.,\addabbrvspace anot\adddotspace i aut\adddotspace de l'ep\adddot}}, + translatorsanaf = {{traductors, anotadors i autors de l'ep\'{\i}leg} + {trad.,\addabbrvspace anot\adddotspace i aut\adddotspace de l'ep\adddot}}, + organizer = {{organitzador}{org\adddot}}, + organizers = {{organitzadors}{org\adddot}}, + byorganizer = {{organitzat per}{org\adddotspace per}}, + byauthor = {{per}{per}}, + byeditor = {{edici\'o a cura \smartof}{ed\adddotspace\smartof}}, + bycompiler = {{compilaci\'o a cura \smartof}{comp\adddotspace\smartof}}, + byredactor = {{redacci\'o a cura \smartof}{red\adddotspace\smartof}}, + byreviser = {{revisi\'o a cura \smartof}{rev\adddotspace\smartof}}, + byreviewer = {{ressenya a cura \smartof}{ress\adddotspace\smartof}}, + byfounder = {{fundat per}{fund\adddotspace per}}, + bycontinuator = {{continuat per}{cont\adddotspace per}}, + bycollaborator = {{amb la co\l.laboraci\'o \smartof}{amb la co\l.l\adddotspace\smartof}}, + bytranslator = {{traducci\'o \lbx@fromlang\ a cura \smartof}{trad\adddotspace\lbx@fromlang\ \smartof}}, + bycommentator = {{comentari a cura \smartof}{com\adddotspace\smartof}}, + byannotator = {{notes a cura \smartof}{n\adddotspace\smartof}}, + withcommentator = {{amb un comentari a cura \smartof}{amb un com\adddotspace\smartof}}, + withannotator = {{amb notes a cura \smartof}{amb n\adddotspace\smartof}}, + withintroduction = {{amb una introducci\'o a cura \smartof}{amb una intr\adddotspace\smartof}}, + withforeword = {{amb un pr\`oleg a cura \smartof}{amb un pr\`ol\adddotspace\smartof}}, + withafterword = {{amb un ep\'{\i}leg a cura \smartof}{amb un ep\adddotspace\smartof}}, + byeditortr = {{edici\'o i traducci\'o \lbx@fromlang\ a cura \smartof}% + {ed\adddotspace i trad\adddotspace\lbx@fromlang\ \smartof}}, + byeditorco = {{edici\'o i comentari a cura \smartof}% + {ed\adddotspace i com\adddotspace\smartof}}, + byeditoran = {{edici\'o i notes a cura \smartof}% + {ed\adddotspace i n\adddotspace\smartof}}, + byeditorin = {{edici\'o i introducci\'o a cura \smartof}% + {ed\adddotspace i intr\adddotspace\smartof}}, + byeditorfo = {{edici\'o i pr\`oleg a cura \smartof}% + {ed\adddotspace i pr\`ol\adddotspace\smartof}}, + byeditoraf = {{edici\'o i ep\'{\i}leg a cura \smartof}% + {ed\adddotspace i ep\adddotspace\smartof}}, + byeditortrco = {{edici\'o, traducci\'o \lbx@fromlang\ i comentari a cura \smartof}% + {ed.,\addabbrvspace trad\adddotspace\lbx@fromlang\ i com\adddotspace\smartof}}, + byeditortran = {{edici\'o, traducci\'o \lbx@fromlang\ i notes a cura \smartof}% + {ed.,\addabbrvspace trad\adddotspace\lbx@fromlang\ i n\adddotspace\smartof}}, + byeditortrin = {{edici\'o, traducci\'o \lbx@fromlang\ i introducci\'o a cura \smartof}% + {ed.,\addabbrvspace trad\adddotspace\lbx@fromlang\ i intr\adddotspace\smartof}}, + byeditortrfo = {{edici\'o, traducci\'o \lbx@fromlang\ i pr\`oleg a cura \smartof}% + {ed.,\addabbrvspace trad\adddotspace\lbx@fromlang\ i pr\`ol\adddotspace\smartof}}, + byeditortraf = {{edici\'o, traducci\'o \lbx@fromlang\ i ep\'{\i}leg a cura \smartof}% + {ed.,\addabbrvspace trad\adddotspace\lbx@fromlang\ i ep\adddotspace\smartof}}, + byeditorcoin = {{edici\'o, comentari i introducci\'o a cura \smartof} + {ed.,\addabbrvspace com\adddotspace i intr\adddotspace\smartof}}, + byeditorcofo = {{edici\'o, comentari i pr\`oleg a cura \smartof} + {ed.,\addabbrvspace com\adddotspace i pr\`ol\adddotspace\smartof}}, + byeditorcoaf = {{edici\'o, comentari i ep\'{\i}leg a cura \smartof}% + {ed.,\addabbrvspace com\adddotspace i ep\adddotspace\smartof}}, + byeditoranin = {{edici\'o, notes i introducci\'o a cura \smartof}% + {ed.,\addabbrvspace n\adddotspace i intr\adddotspace\smartof}}, + byeditoranfo = {{edici\'o, notes i pr\`oleg a cura \smartof}% + {ed.,\addabbrvspace n\adddotspace i pr\`ol\adddotspace\smartof}}, + byeditoranaf = {{edici\'o, notes i ep\'{\i}leg a cura \smartof}% + {ed.,\addabbrvspace n\adddotspace i ep\adddotspace\smartof}}, + byeditortrcoin = {{edici\'o, traducci\'o \lbx@fromlang, comentari i introducci\'o a cura \smartof}% + {ed.,\addabbrvspace trad\adddotspace \lbx@fromlang, com\adddotspace i intr\adddotspace\smartof}}, + byeditortrcofo = {{edici\'o, traducci\'o \lbx@fromlang, comentari i pr\`oleg a cura \smartof}% + {ed.,\addabbrvspace trad\adddotspace \lbx@fromlang, com\adddotspace i pr\`ol\adddotspace\smartof}}, + byeditortrcoaf = {{edici\'o, traducci\'o \lbx@fromlang, comentari i ep\'{\i}leg a cura \smartof}% + {ed.,\addabbrvspace trad\adddot\ \lbx@fromlang, com\adddot\ i ep\adddot\ \smartof}}, + byeditortranin = {{edici\'o, traducci\'o \lbx@fromlang, notes i introducci\'o a cura \smartof}% + {ed.,\addabbrvspace trad\adddot\ \lbx@fromlang, n\adddot\ i intr\adddot\ \smartof}}, + byeditortranfo = {{edici\'o, traducci\'o \lbx@fromlang, notes i pr\`oleg a cura \smartof}% + {ed.,\addabbrvspace trad\adddot\ \lbx@fromlang, n\adddot\ i pr\`ol\adddot\ \smartof}}, + byeditortranaf = {{edici\'o, traducci\'o \lbx@fromlang, notes i ep\'{\i}leg a cura \smartof}% + {ed.,\addabbrvspace trad\adddot\ \lbx@fromlang, n\adddot\ i ep\adddot\ \smartof}}, + bytranslatorco = {{traducci\'o \lbx@fromlang\ i comentari a cura \smartof}% + {trad\adddot\ \lbx@fromlang\ i com\adddot\ \smartof}}, + bytranslatoran = {{traducci\'o \lbx@fromlang\ i notes a cura \smartof}% + {trad\adddot\ \lbx@fromlang\ i n\adddot\ \smartof}}, + bytranslatorin = {{traducci\'o \lbx@fromlang\ i introducci\'o a cura \smartof}% + {trad\adddot\ \lbx@fromlang\ i intr\adddot\ \smartof}}, + bytranslatorfo = {{traducci\'o \lbx@fromlang\ i pr\`oleg a cura \smartof}% + {trad\adddot\ \lbx@fromlang\ i pr\`ol\adddot\ \smartof}}, + bytranslatoraf = {{traducci\'o \lbx@fromlang\ i ep\'{\i}leg a cura \smartof}% + {trad\adddot\ \lbx@fromlang\ i ep\adddot\ \smartof}}, + bytranslatorcoin = {{traducci\'o \lbx@fromlang, comentari i introducci\'o a cura \smartof}% + {trad\adddot\ \lbx@fromlang, com\adddot\ i intr\adddot\ \smartof}}, + bytranslatorcofo = {{traducci\'o \lbx@fromlang, comentari i pr\`oleg a cura \smartof}% + {trad\adddot\ \lbx@fromlang, com\adddot\ i pr\`ol\adddot\ \smartof}}, + bytranslatorcoaf = {{traducci\'o \lbx@fromlang, comentari i ep\'{\i}leg a cura \smartof}% + {trad\adddot\ \lbx@fromlang, com\adddot\ i ep\adddot\ \smartof}}, + bytranslatoranin = {{traducci\'o \lbx@fromlang, notes i introducci\'o a cura \smartof}% + {trad\adddot\ \lbx@fromlang, n\adddot\ i intr\adddot\ \smartof}}, + bytranslatoranfo = {{traducci\'o \lbx@fromlang, notes i pr\`oleg a cura \smartof}% + {trad\adddot\ \lbx@fromlang, n\adddot\ i pr\`ol\adddot\ \smartof}}, + bytranslatoranaf = {{traducci\'o \lbx@fromlang, notes i ep\'{\i}leg a cura \smartof}% + {trad\adddot\ \lbx@fromlang, n\adddot\ i ep\adddot\ \smartof}}, + and = {{i}{i}}, + andothers = {{et al\adddot}{et al\adddot}}, + andmore = {{i m\'es}{i m\'es}}, + volume = {{volum}{vol\adddot}}, + volumes = {{volums}{vol\adddot}}, + involumes = {{en}{en}}, + jourvol = {{volum}{vol\adddot}}, + jourser = {{s\`erie}{s\`er\adddot}}, + book = {{llibre}{llib\adddot}}, + part = {{part}{part}}, + issue = {{n\'umero}{n\'um\adddot}}, + newseries = {{s\`erie nova}{s\`erie nova}}, + oldseries = {{s\`erie antiga}{s\`erie ant\adddot}}, + edition = {{edici\'o}{ed\adddot}}, + reprint = {{reimpressi\'o}{reimpr\adddot}}, + reprintof = {{reimpressi\'o \smartof}{reimpr\adddotspace\smartof}}, + reprintas = {{reimpr\`es com}{reimpr\adddotspace com}}, + reprintfrom = {{reimpr\`es \smartof}{reimpr\adddotspace\smartof}}, + reviewof = {{ressenya \smartof}{ress\adddotspace\smartof}}, + translationof = {{traducci\'o \smartof}{trad\adddotspace\smartof}}, + translationas = {{tradu\"{\i}t com}{trad\adddotspace com}}, + translationfrom = {{tradu\"{\i}t del}{trad\adddotspace del}}, % Unsure of 'del' + origpubas = {{publicat origin\`ariament com}{pub\adddotspace orig\adddotspace com}}, + origpubin = {{publicat origin\`ariament el}{pub\adddotspace orig\adddotspace el}}, + astitle = {{com}{com}}, + bypublisher = {{per}{per}}, + page = {{p\`agina}{p\`ag\adddot}}, + pages = {{p\`agines}{p\`ag\adddot}}, + column = {{columna}{col\adddot}}, + columns = {{columnes}{cols\adddot}}, + line = {{l\'{\i}nia}{l\'{\i}n\adddot}}, + lines = {{l\'{\i}nies}{l\'{\i}n\adddot}}, + nodate = {{sine data}{s\adddotspace d\adddot}}, + verse = {{vers}{v\adddot}}, + verses = {{versos}{v\adddot}}, + section = {{apartat}{\S}}, + sections = {{apartats}{\S}}, + paragraph = {{par\`agraf}{\P}}, + paragraphs = {{par\`agrafs}{\P}}, + pagetotal = {{p\`agina}{p\`ag\adddot}}, + pagetotals = {{p\`agines}{p\`ag\adddot}}, + columntotal = {{columna}{col\adddot}}, + columntotals = {{columnes}{col\adddot}}, + linetotal = {{l\'{\i}nia}{l\'{\i}n\adddot}}, + linetotals = {{l\'{\i}nies}{l\'{\i}n\adddot}}, + versetotal = {{vers}{v\adddot}}, + versetotals = {{versos}{v\adddot}}, + sectiontotal = {{secci\'o}{\S}}, + sectiontotals = {{seccions}{\S}}, + paragraphtotal = {{par\`agrafs}{\P}}, + paragraphtotals = {{par\`agrafs}{\P}}, + in = {{a}{a}}, + inseries = {{a}{a}}, + ofseries = {{\smartof}{\smartof}}, + number = {{n\'umero}{n\'um\adddot}}, + chapter = {{cap\'{\i}tol}{cap\adddot}}, + bathesis = {{treball final de grau}{treb\adddotspace fin\adddotspace de gr\adddot}}, + mathesis = {{treball final de m\`aster}{treb\adddotspace fin\adddotspace de m\`ast\adddot}}, + phdthesis = {{tesi doctoral}{tesi doct\adddot}}, + candthesis = {{tesi de candidatura}{tesi de cand\adddot}}, + resreport = {{informe de recerca}{inf\adddotspace de rec\adddot}}, + techreport = {{informe t\`ecnic}{inf\adddotspace t\`ec\adddot}}, + software = {{programari}{prog\adddot}}, + datacd = {{CD de dades}{CD de dades}}, + audiocd = {{CD d'\`audio}{CD d'\`audio}}, + version = {{versi\'o}{vers\adddot}}, + url = {{adre\c{c}a}{adr\adddot}}, + urlfrom = {{disponible a}{disp\adddotspace a}}, + urlseen = {{consultat}{cons\adddotspace}}, % Possibly better «consultat \smartel», but \smartel unavailable + inpreparation = {{en preparaci\'o}{en prep\adddot}}, + inpress = {{a impremta}{a impr\adddot}},% Per revisar + prepublished = {{pre-publicat}{pre-publicat}}, + submitted = {{enviat a publicar}{env\adddotspace a pub\adddot}}, + forthcoming = {{properament}{prop\adddot}}, + citedas = {{d'ara endavant citat com}{d'ara end\adddotspace cit\adddotspace com}}, + thiscite = {{concretament}{concr\adddot}},% Check + seenote = {{vegeu la nota}{v\adddotspace la n\adddot}}, + quotedin = {{citat a}{cit\adddotspace a}}, + idem = {{\'{\i}dem}{\'{\i}d\adddot}}, + idemsf = {{\'{\i}dem}{\'{\i}d\adddot}}, + idemsm = {{\'{\i}dem}{\'{\i}d\adddot}}, + idemsn = {{\'{\i}dem}{\'{\i}d\adddot}}, + idempf = {{\'{\i}dem}{\'{\i}d\adddot}}, + idempm = {{\'{\i}dem}{\'{\i}d\adddot}}, + idempn = {{\'{\i}dem}{\'{\i}d\adddot}}, + idempp = {{\'{\i}dem}{\'{\i}d\adddot}}, + ibidem = {{ib\'{\i}dem}{ib\adddot}}, + opcit = {{\`op\adddotspace cit\adddot}{\`op\adddotspace cit\adddot}}, + loccit = {{loc\adddotspace cit\adddot}{loc\adddotspace cit\adddot}}, + confer = {{cf\adddot}{cf\adddot}}, + sequens = {{seq\adddot}{seq\adddot}}, + sequentes = {{et seq\adddot}{et seq\adddot}}, + passim = {{p\`assim}{p\`assim}}, + see = {{vegeu}{v\adddot}}, + seealso = {{vegeu tamb\'e}{v\adddotspace tamb\'e}}, + backrefpage = {{vegeu la p\`agina}{v\adddotspace la p\`ag\adddot}}, + backrefpages = {{vegeu les p\`agines}{v\adddotspace les p\`ag\adddot}}, + january = {{gener}{gen\adddot}}, + february = {{febrer}{febr\adddot}}, + march = {{mar\c{c}}{mar\c{c}}}, + april = {{abril}{abr\adddot}}, + may = {{maig}{maig}}, + june = {{juny}{juny}}, + july = {{juliol}{jul\adddot}}, + august = {{agost}{ag\adddot}}, + september = {{setembre}{set\adddot}}, + october = {{octubre}{oct\adddot}}, + november = {{novembre}{nov\adddot}}, + december = {{desembre}{des\adddot}}, + langamerican = {{angl\`es americ\`a}{ang\adddotspace amer\adddot}}, + langbrazilian = {{portugu\`es brasiler}{port\adddotspace bras\adddot}}, + langbulgarian = {{b\'ulgar}{b\'ulg\adddot}}, + langcatalan = {{catal\`a}{cat\adddot}}, + langczech = {{txec}{txec}}, + langcroatian = {{croat}{croat}}, + langdanish = {{dan\`es}{dan\adddot}}, + langdutch = {{neerland\`es}{neerl\adddot}}, + langenglish = {{angl\`es}{ang\adddot}}, + langestonian = {{estoni\`a}{eston\adddot}}, + langfinnish = {{fin\`es}{fin\adddot}}, + langfrench = {{franc\`es}{fr\adddot}}, + langgalician = {{gallec}{gal\adddot}}, + langgerman = {{alemany}{al\adddot}}, + langgreek = {{grec}{grec}}, +% langhungarian = {{}{}}, % FIXME: missing + langitalian = {{itali\`a}{it\adddot}}, + langjapanese = {{japon\`es}{jap\adddot}}, + langlatin = {{llat\'{\i}}{ll\adddot}}, + langlatvian = {{litu\`a}{lit\adddot}}, + langnorwegian = {{noruec}{nor\adddot}}, + langpolish = {{polon\`es}{pol\adddot}}, + langportuguese = {{portugu\`es}{port\adddot}}, + langrussian = {{rus}{rus}}, + langslovak = {{eslovac}{eslovac}}, + langslovene = {{eslov\`e}{eslov\`e}}, + langspanish = {{castell\`a}{cast\adddot}}, + langswedish = {{suec}{suec}}, + langukrainian = {{ucra\"{\i}n\`es}{ucr\adddot}}, + fromamerican = {{de l'angl\`es americ\`a}{de l'ang\adddotspace amer\adddot}}, + frombrazilian = {{del portugu\`es brasiler}{del port\adddotspace bras\adddot}}, + frombulgarian = {{del b\'ulgar}{del bulg\adddot}}, + fromcatalan = {{del catal\`a}{del cat\adddot}}, + fromcroatian = {{del croat}{del croat}}, + fromczech = {{del txec}{del txec}}, + fromdanish = {{del dan\`es}{del dan\adddot}}, + fromdutch = {{del neerland\`es}{del neerl\adddot}}, + fromenglish = {{de l'angl\`es}{de l'ang\adddot}}, + fromestonian = {{de l'estoni\`a}{de l'eston\adddot}}, + fromfinnish = {{del fin\`es}{del fin\adddot}}, + fromfrench = {{del franc\`es}{del fr\adddot}}, + fromgalician = {{del gallec}{del gall\adddot}}, + fromgerman = {{de l'alemany}{de l'al\adddot}}, + fromgreek = {{del grec}{del grec}}, +% fromhungarian = {{}{}}, % FIXME: missing + fromitalian = {{de l'itali\`a}{de l'it\adddot}}, + fromjapanese = {{del japon\`es}{del jap\adddot}}, + fromlatin = {{del llat\'{\i}}{del ll\adddot}}, + fromlatvian = {{del litu\`a}{del lit\adddot}}, + fromnorwegian = {{del noruec}{del nor\adddot}}, + frompolish = {{del polon\`es}{del pol\adddot}}, + fromportuguese = {{del portugu\`es}{del port\adddot}}, + fromrussian = {{del rus}{del rus}}, + fromslovak = {{de l'eslovac}{de l'eslovac}}, + fromslovene = {{de l'eslov\`e}{de l'eslov\`e}}, + fromspanish = {{del castell\`a}{del cast\adddot}}, + fromswedish = {{del suec}{del suec}}, + fromukrainian = {{de l'ucra\"{\i}n\`es}{de l'ucr\adddot}}, + countryde = {{Alemanya}{DE}}, + countryeu = {{Uni\'o Europea}{UE}}, + countryep = {{Uni\'o Europea}{UE}}, + countryfr = {{Fran\c{c}a}{FR}}, + countryuk = {{Regne Unit}{GB}}, + countryus = {{Estats Units d'Am\`erica}{US}}, + patent = {{patent}{pat\adddot}}, + patentde = {{patent alemana}{pat\adddot\ al\adddot}}, + patenteu = {{patent europea}{pat\adddot\ eur\adddot}}, + patentfr = {{patent francesa}{pat\adddot\ fr\adddot}}, + patentuk = {{patent brit\`anica}{pat\adddot\ brit\adddot\adddot}}, + patentus = {{patent estatunidenca}{pat\adddot\ EUA}}, + patreq = {{so\l.licitud de patent}{so\l.l\adddotspace de pat\adddot}}, + patreqde = {{so\l.licitud de patent alemana}{so\l.l\adddotspace de pat\adddot\ al\adddot}}, + patreqeu = {{so\l.licitud de patent europea}{so\l.l\adddotspace de pat\adddot\ eur\adddot}}, + patreqfr = {{so\l.licitud de patent francesa}{so\l.l\adddotspace de pat\adddot\ fr\adddot}}, + patrequk = {{so\l.licitud de patent brit\`anica}{so\l.l\adddotspace de pat\adddot\ brit\adddot}}, + patrequs = {{so\l.licitud de patent estatunidenca}{so\l.l\adddotspace de pat\adddot\ EUA}}, + file = {{fitxer}{fitx\adddot}}, + library = {{biblioteca}{bibl\adddot}}, + abstract = {{resum}{res\adddot}}, + annotation = {{nota}{n\adddot}}, + commonera = {{Era Comuna}{EC}}, + beforecommonera = {{abans de l'Era Comuna}{AEC}}, + annodomini = {{despr\'es de Crist}{dC}}, + beforechrist = {{abans de Crist}{aC}}, + circa = {{circa}{c\adddot}}, + spring = {{primavera}{prim\adddot}}, + summer = {{estiu}{est\adddot}}, + autumn = {{tardor}{tard\adddot}}, + winter = {{hivern}{hiv\adddot}}, + am = {{a\adddotspace m\adddot}{a\adddotspace m\adddot}}, + pm = {{p\adddotspace m\adddot}{p\adddotspace m\adddot}}, +} + +\begingroup +\catcode`\&=3 + +\gdef\lbx@ca@smartof{% + \iftoggle{smartof}{\lbx@ca@smartof@i}{\@gobble}} + +\protected\long\gdef\lbx@ca@smartof@i#1{% + \global\togglefalse{smartof}% + \begingroup + \def\forceD##1{a\relax}% + \def\forceDE##1{x\relax}% + \def\do##1{\let##1\@firstofone}% + \abx@dosingleaccents + \abx@dodoubleaccents + \def\i{i}\def\j{j}% + \def\AE{a}\def\ae{a}% + \def\OE{o}\def\oe{o}% + \def\O{o}\def\o{o}% + \let\IeC\@firstofone + \let\@tabacckludge\@gobble + \ifnum\catcode`\"=\active + \uccode`\~=`\" + \uppercase{\let~\@empty}% + \fi + \ifnum\catcode`\~=\active + \let~\@empty + \fi + \let\protect\noexpand + \edef\lbx@tempa{#1}% + \expandafter\futurelet + \expandafter\lbx@tempa + \expandafter\lbx@ca@smartof@ii + \lbx@tempa&} + +\gdef\lbx@ca@smartof@ii{% + \ifcat\bgroup\noexpand\lbx@tempa + \def\lbx@tempa##1{\futurelet\lbx@tempa\lbx@ca@smartof@ii##1}% + \else\ifcat\noexpand~\noexpand\lbx@tempa + \def\lbx@tempa##1{\futurelet\lbx@tempa\lbx@ca@smartof@ii}% + \else + \ifnum 0% + \if a\noexpand\lbx@tempa 1\fi + \if e\noexpand\lbx@tempa 1\fi + \if i\noexpand\lbx@tempa 1\fi + \if o\noexpand\lbx@tempa 1\fi + \if u\noexpand\lbx@tempa 1\fi + \if y\noexpand\lbx@tempa 1\fi + \if A\noexpand\lbx@tempa 1\fi + \if E\noexpand\lbx@tempa 1\fi + \if I\noexpand\lbx@tempa 1\fi + \if O\noexpand\lbx@tempa 1\fi + \if U\noexpand\lbx@tempa 1\fi + \if Y\noexpand\lbx@tempa 1\fi + >0 % + \let\lbx@tempa\lbx@ca@smartof@d + \else + \ifnum 0% + \if h\noexpand\lbx@tempa 1\fi + \if H\noexpand\lbx@tempa 1\fi + >0 % + \def\lbx@tempa##1{\futurelet\lbx@tempa\lbx@ca@smartof@ii}% + \else + \let\lbx@tempa\lbx@ca@smartof@de + \fi\fi\fi\fi + \lbx@tempa} + +\gdef\lbx@ca@smartof@d#1&{\endgroup d'} +\gdef\lbx@ca@smartof@de#1&{\endgroup de\space} + +\endgroup + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/lbx/croatian.lbx b/macros/latex/contrib/biblatex/latex/lbx/croatian.lbx new file mode 100644 index 0000000000..597c80bf21 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/lbx/croatian.lbx @@ -0,0 +1,586 @@ +\ProvidesFile{croatian.lbx} +[\abx@lbxid] + +% Translator's note: +% - Most translations have been made gender neutral, +% as there's no intrinsic biblatex support for the opposite + +\DeclareRedundantLanguages{croatian}{croatian} + +\DeclareBibliographyExtras{% + \protected\def\bibrangedash{\textendash\penalty\hyphenpenalty}% + \let\finalandcomma=\empty + \let\finalandsemicolon=\empty + \protected\def\mkbibordinal#1{\stripzeros{#1}\adddot}% + \protected\def\mkbibmascord{\mkbibordinal}% + \protected\def\mkbibfemord{\mkbibordinal}% + \protected\def\mkbibneutord{\mkbibordinal}% + \protected\def\mkbibdatelong#1#2#3{% + \iffieldundef{#3} + {} + {\mkbibordinal{\thefield{#3}}% + \iffieldundef{#2}{}{\nobreakspace}}% + \iffieldundef{#2} + {} + {\iffieldundef{#3} + {\mkbibmonth{\thefield{#2}}} + {\lbx@cr@mkbibmonth{\thefield{#2}}}% + \iffieldundef{#1}{}{\space}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}% + \protected\def\mkbibdateshort#1#2#3{% + \iffieldundef{#3} + {} + {\mkbibordinal{\thefield{#3}}% + \iffieldundef{#2}{}{\addnbthinspace}}% + \iffieldundef{#2} + {} + {\mkbibordinal{\thefield{#2}}% + \iffieldundef{#1}{}{\addnbthinspace}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}% + \savecommand\mkbibordedition + \savecommand\mkbibordseries + \def\mkbibordedition{\mkbibordinal}% + \def\mkbibordseries{\mkbibfemord}% + \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{% + \iffieldundef{#1}{} + {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}% + \iffieldundef{#2}{} + {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}% + \iffieldundef{#3}{} + {\printtext{\mktimezeros{\thefield{#3}}}}% + \setunit{}% + \iffieldundef{#4}{} + {\bibtimezonesep + \mkbibtimezone{\thefield{#4}}}}% + \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{% + \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep + \forcezerosmdt{\thefield{#2}}% + \iffieldundef{#3}{} + {\bibtimesep + \forcezerosmdt{\thefield{#3}}}% + \space + \ifnumless{\thefield{#1}}{12} + {\bibstring{am}} + {\bibstring{pm}}% + \iffieldundef{#4}{} + {\space\bibtimezonesep + \parentext{\mkbibtimezone{\thefield{#4}}}}}% + \protected\def\mkbibseasondateshort#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% + \protected\def\mkbibseasondatelong#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% +} + +\UndeclareBibliographyExtras{% + \restorecommand\mkbibordedition + \restorecommand\mkbibordseries +} + +\NewBibliographyString{% Month name variants used after day + datejanuary, + datefebruary, + datemarch, + dateapril, + datemay, + datejune, + datejuly, + dateaugust, + dateseptember, + dateoctober, + datenovember, + datedecember% +} + +\DeclareBibliographyStrings{% + bibliography = {{Bibliografija}{Bibliografija}}, + references = {{Literatura}{Literatura}}, + shorthands = {{Popis kratica}{Kratice}}, + editor = {{urednik}{ur\adddot}},% gender biased + editors = {{urednici}{ur\adddot}}, + compiler = {{sastavlja\v{c}}{sastavlja\v{c}}},% gender biased + compilers = {{sastavlja\v{c}i}{sastavlja\v{c}i}}, + redactor = {{redaktor}{redaktor}},% gender biased + redactors = {{redaktori}{redaktori}}, + reviser = {{korektor}{korektor}},% gender biased + revisers = {{korektori}{korektori}}, + founder = {{zasniva\v{c}}{zasniva\v{c}}},% gender biased + founders = {{zasniva\v{c}i}{zasniva\v{c}i}}, + continuator = {{nastavlja\v{c}}{nastavlja\v{c}i}},% gender biased + continuators = {{nastavlja\v{c}i}{nastavlja\v{c}i}}, + collaborator = {{suradnik}{sur\adddot}},% gender biased + collaborators = {{suradnici}{sur\adddot}}, + translator = {{prijevod}{prev\adddot}}, + translators = {{prijevod}{prev\adddot}}, + commentator = {{komentator}{komentator}},% gender biased + commentators = {{komentatori}{komentatori}}, + annotator = {{autor bilje\v{z}aka}{autor bilje\v{z}aka}},% gender biased + annotators = {{autori bilje\v{z}aka}{autori bilje\v{z}aka}}, + commentary = {{komentar}{komentar}}, + annotations = {{bilje\v{s}ke}{bilje\v{s}ke}}, + introduction = {{uvod}{uvod}}, + foreword = {{predgovor}{predgovor}}, + afterword = {{pogovor}{pogovor}}, + editortr = {{prijevod i obrada}{ur\adddotspace i prev\adddot}}, + editorstr = {{prijevod i obrada}{ur\adddotspace i prev\adddot}}, + editorco = {{obrada i komentari}% gender neutral + {obrada i komentari}}, + editorsco = {{obrada i komentari}% + {obrada i komentari}}, + editoran = {{obrada i bilje\v{s}ke}% + {obrada i bilje\v{s}ke}}, + editorsan = {{obrada i bilje\v{s}ke}% + {obrada i bilje\v{s}ke}}, + editorin = {{obrada i uvod}% + {obrada i uvod}}, + editorsin = {{obrada i uvod}% + {obrada i uvod}}, + editorfo = {{obrada i predgovor}% + {obrada i predgovor}}, + editorsfo = {{obrada i predgovor}% + {obrada i predgovor}}, + editoraf = {{obrada i pogovor}% + {obrada i pogovor}}, + editorsaf = {{obrada i pogovor}% + {obrada i pogovor}}, + editortrco = {{prijevod, obrada i komentari}% + {prijevod, obrada i komentari}}, + editorstrco = {{prijevod, obrada i komentari}% + {prijevod, obrada i komentari}}, + editortran = {{prijevod, obrada i bilje\v{s}ke}% + {prijevod, obrada i bilje\v{s}ke}}, + editorstran = {{prijevod, obrada i bilje\v{s}ke}% + {prijevod, obrada i bilje\v{s}ke}}, + editortrin = {{prijevod, obrada i uvod}% + {prijevod, obrada i uvod}}, + editorstrin = {{prijevod, obrada i uvod}% + {prijevod, obrada i uvod}}, + editortrfo = {{prijevod, obrada i predgovor}% + {prijevod, obrada i predgovor}}, + editorstrfo = {{prijevod, obrada i predgovor}% + {prijevod, obrada i predgovor}}, + editortraf = {{prijevod, obrada i pogovor}% + {prijevod, obrada i pogovor}}, + editorstraf = {{prijevod, obrada i pogovor}% + {prijevod, obrada i pogovor}}, + editorcoin = {{obrada, uvod i komentari}% + {obrada, uvod i komentari}}, + editorscoin = {{obrada, uvod i komentari}% + {obrada, uvod i komentari}}, + editorcofo = {{obrada, predgovor i komentari}% + {obrada, predgovor i komentari}}, + editorscofo = {{obrada, predgovor i komentari}% + {obrada, predgovor i komentari}}, + editorcoaf = {{obrada, komentari i pogovor}% + {obrada, komentari i pogovor}}, + editorscoaf = {{obrada, komentari i pogovor}% + {obrada, komentari i pogovor}}, + editoranin = {{obrada, uvod i bilje\v{s}ke}% + {obrada, uvod i bilje\v{s}ke}}, + editorsanin = {{obrada, uvod i bilje\v{s}ke}% + {obrada, uvod i bilje\v{s}ke}}, + editoranfo = {{obrada, predgovor i bilje\v{s}ke}% + {obrada, predgovor i bilje\v{s}ke}}, + editorsanfo = {{obrada, predgovor i bilje\v{s}ke}% + {obrada, predgovor i bilje\v{s}ke}}, + editoranaf = {{obrada, bilje\v{s}ke i pogovor}% + {obrada, bilje\v{s}ke i pogovor}}, + editorsanaf = {{obrada, bilje\v{s}ke i pogovor}% + {obrada, bilje\v{s}ke i pogovor}}, + editortrcoin = {{prijevod, obrada, uvod i komentari}% + {prijevod, obrada, uvod i komentari}}, + editorstrcoin = {{prijevod, obrada, uvod i komentari}% + {prijevod, obrada, uvod i komentari}}, + editortrcofo = {{prijevod, obrada, predgovor i komentari}% + {prijevod, obrada, predgovor i komentari}}, + editorstrcofo = {{prijevod, obrada, predgovor i komentari}% + {prijevod, obrada, predgovor i komentari}}, + editortrcoaf = {{prijevod, obrada, komentari i pogovor}% + {prijevod, obrada, komentari i pogovor}}, + editorstrcoaf = {{prijevod, obrada, komentari i pogovor}% + {prijevod, obrada, komentari i pogovor}}, + editortranin = {{prijevod, obrada, uvod i bilje\v{s}ke}% + {prijevod, obrada, uvod i bilje\v{s}ke}}, + editorstranin = {{prijevod, obrada, uvod i bilje\v{s}ke}% + {prijevod, obrada, uvod i bilje\v{s}ke}}, + editortranfo = {{prijevod, obrada, predgovor i bilje\v{s}ke}% + {prijevod, obrada, predgovor i bilje\v{s}ke}}, + editorstranfo = {{prijevod, obrada, predgovor i bilje\v{s}ke}% + {prijevod, obrada, predgovor i bilje\v{s}ke}}, + editortranaf = {{prijevod, obrada, bilje\v{s}ke i pogovor}% + {prijevod, obrada, bilje\v{s}ke i pogovor}}, + editorstranaf = {{prijevod, obrada, bilje\v{s}ke i pogovor}% + {prijevod, obrada, bilje\v{s}ke i pogovor}}, + translatorco = {{prijevod i komentari}% + {prijevod i komentari}}, + translatorsco = {{prijevod i komentari}% + {prijevod i komentari}}, + translatoran = {{prijevod i bilje\v{s}ke}% + {prijevod i bilje\v{s}ke}}, + translatorsan = {{prijevod i bilje\v{s}ke}% + {prijevod i bilje\v{s}ke}}, + translatorin = {{prijevod i uvod}% + {prijevod i uvod}}, + translatorsin = {{prijevod i uvod}% + {prijevod i uvod}}, + translatorfo = {{prijevod i predgovor}% + {prijevod i predgovor}}, + translatorsfo = {{prijevod i predgovor}% + {prijevod i predgovor}}, + translatoraf = {{prijevod i pogovor}% + {prijevod i pogovor}}, + translatorsaf = {{prijevod i pogovor}% + {prijevod i pogovor}}, + translatorcoin = {{prijevod, uvod i komentari}% + {prijevod, uvod i komentari}}, + translatorscoin = {{prijevod, uvod i komentari}% + {prijevod, uvod i komentari}}, + translatorcofo = {{prijevod, predgovor i komentari}% + {prijevod, predgovor i komentari}}, + translatorscofo = {{prijevod, predgovor i komentari}% + {prijevod, predgovor i komentari}}, + translatorcoaf = {{prijevod, komentari i pogovor}% + {prijevod, komentari i pogovor}}, + translatorscoaf = {{prijevod, komentari i pogovor}% + {prijevod, komentari i pogovor}}, + translatoranin = {{prijevod, uvod i bilje\v{s}ke}% + {prijevod, uvod i bilje\v{s}ke}}, + translatorsanin = {{prijevod, uvod i bilje\v{s}ke}% + {prijevod, uvod i bilje\v{s}ke}}, + translatoranfo = {{prijevod, predgovor i bilje\v{s}ke}% + {prijevod, predgovor i bilje\v{s}ke}}, + translatorsanfo = {{prijevod, predgovor i bilje\v{s}ke}% + {prijevod, predgovor i bilje\v{s}ke}}, + translatoranaf = {{prijevod, bilje\v{s}ke i pogovor}% + {prijevod, bilje\v{s}ke i pogovor}}, + translatorsanaf = {{prijevod, bilje\v{s}ke i pogovor}% + {prijevod, bilje\v{s}ke i pogovor}}, +% organizer = {{}{}},% FIXME: missing +% organizers = {{}{}},% FIXME: missing +% byorganizer = {{}{}},% FIXME: missing + byauthor = {{autor\addcolon}{autor\addcolon}},% gender biased + byeditor = {{obrada\addcolon}{ur\adddot}},% + bycompiler = {{sastavlja\v{c}\addcolon}{sast\adddot}},% gender biased + byredactor = {{redaktura\addcolon}{red\adddot}}, + byreviser = {{korektura\addcolon}{kor\adddot}}, +% byreviewer = {{}{}},% FIXME: missing + byfounder = {{zapo\v{c}eo\addcolon}{zapo\v{c}eo\addcolon}},% gender biased + bycontinuator = {{nastavio\addcolon}{nastavio\addcolon}},% gender biased + bycollaborator = {{u suradnji s}{u sur\adddot s}}, + bytranslator = {{prijevod \lbx@lfromlang\addcolon}% + {prev\adddot \lbx@sfromlang\addcolon}}, + bycommentator = {{komentari\addcolon}{komentari\addcolon}}, + byannotator = {{bilje\v{s}ke\addcolon}{bilje\v{s}ke\addcolon}}, + withcommentator = {{komentari\addcolon}{komentari\addcolon}}, + withannotator = {{bilje\v{s}ke\addcolon}{bilje\v{s}ke\addcolon}}, + withintroduction = {{uvod\addcolon}{uvod\addcolon}}, + withforeword = {{predgovor\addcolon}{predgovor\addcolon}}, + withafterword = {{pogovor\addcolon}{pogovor\addcolon}}, + byeditortr = {{prijevod \lbx@lfromlang\ i obrada\addcolon}% + {prijevod \lbx@lfromlang\ i obrada\addcolon}}, + byeditorco = {{obrada i komentari\addcolon}% + {obrada i komentari\addcolon}}, + byeditoran = {{obrada i bilje\v{s}ke\addcolon}% + {obrada i bilje\v{s}ke\addcolon}}, + byeditorin = {{obrada i uvod\addcolon}% + {obrada i uvod\addcolon}}, + byeditorfo = {{obrada i predgovor\addcolon}% + {obrada i predgovor\addcolon}}, + byeditoraf = {{obrada i pogovor\addcolon}% + {obrada i pogovor\addcolon}}, + byeditortrco = {{prijevod \lbx@lfromlang, obrada i komentari\addcolon}% + {prijevod \lbx@lfromlang, obrada i komentari\addcolon}}, + byeditortran = {{prijevod \lbx@lfromlang, obrada i bilje\v{s}ke\addcolon}% + {prijevod \lbx@lfromlang, obrada i bilje\v{s}ke\addcolon}}, + byeditortrin = {{prijevod \lbx@lfromlang, obrada i uvod\addcolon}% + {prijevod \lbx@lfromlang, obrada i uvod\addcolon}}, + byeditortrfo = {{prijevod \lbx@lfromlang, obrada i predgovor\addcolon}% + {prijevod \lbx@lfromlang, obrada i predgovor\addcolon}}, + byeditortraf = {{prijevod \lbx@lfromlang, obrada i pogovor\addcolon}% + {prijevod \lbx@lfromlang, obrada i pogovor\addcolon}}, + byeditorcoin = {{obrada, uvod i komentari\addcolon}% + {obrada, uvod i komentari\addcolon}}, + byeditorcofo = {{obrada, predgovor i komentari\addcolon}% + {obrada, predgovor i komentari\addcolon}}, + byeditorcoaf = {{obrada, komentari i pogovor\addcolon}% + {obrada, komentari i pogovor\addcolon}}, + byeditoranin = {{obrada, uvod i bilje\v{s}ke\addcolon}% + {obrada, uvod i bilje\v{s}ke\addcolon}}, + byeditoranfo = {{obrada, predgovor i bilje\v{s}ke\addcolon}% + {obrada, predgovor i bilje\v{s}ke\addcolon}}, + byeditoranaf = {{obrada, bilje\v{s}ke i pogovor\addcolon}% + {obrada, bilje\v{s}ke i pogovor\addcolon}}, + byeditortrcoin = {{prijevod \lbx@lfromlang, obrada, uvod i komentari\addcolon}% + {prijevod \lbx@lfromlang, obrada, uvod i komentari\addcolon}}, + byeditortrcofo = {{prijevod \lbx@lfromlang, obrada, predgovor i komentari\addcolon}% + {prijevod \lbx@lfromlang, obrada, predgovor i komentari\addcolon}}, + byeditortrcoaf = {{prijevod \lbx@lfromlang, obrada, komentari i pogovor\addcolon}% + {prijevod \lbx@lfromlang, obrada, komentari i pogovor\addcolon}}, + byeditortranin = {{prijevod \lbx@lfromlang, obrada, uvod i bilje\v{s}ke\addcolon}% + {prijevod \lbx@lfromlang, obrada, uvod i bilje\v{s}ke\addcolon}}, + byeditortranfo = {{prijevod \lbx@lfromlang, obrada, predgovor i bilje\v{s}ke\addcolon}% + {prijevod \lbx@lfromlang, obrada, predgovor i bilje\v{s}ke\addcolon}}, + byeditortranaf = {{prijevod \lbx@lfromlang, obrada, bilje\v{s}ke i pogovor\addcolon}% + {prijevod \lbx@lfromlang, obrada, bilje\v{s}ke i pogovor\addcolon}}, + bytranslatorco = {{prijevod \lbx@lfromlang\ i komentari\addcolon}% + {prijevod \lbx@lfromlang\ i komentari\addcolon}}, + bytranslatoran = {{prijevod \lbx@lfromlang\ i bilje\v{s}ke\addcolon}% + {prijevod \lbx@lfromlang\ i bilje\v{s}ke\addcolon}}, + bytranslatorin = {{prijevod \lbx@lfromlang\ i uvod\addcolon}% + {prijevod \lbx@lfromlang\ i uvod\addcolon}}, + bytranslatorfo = {{prijevod \lbx@lfromlang\ i predgovor\addcolon}% + {prijevod \lbx@lfromlang\ i predgovor\addcolon}}, + bytranslatoraf = {{prijevod \lbx@lfromlang\ i pogovor\addcolon}% + {prijevod \lbx@lfromlang\ i pogovor\addcolon}}, + bytranslatorcoin = {{prijevod \lbx@lfromlang, uvod i komentari\addcolon}% + {prijevod \lbx@lfromlang, uvod i komentari\addcolon}}, + bytranslatorcofo = {{prijevod \lbx@lfromlang, predgovor i komentari\addcolon}% + {prijevod \lbx@lfromlang, predgovor i komentari\addcolon}}, + bytranslatorcoaf = {{prijevod \lbx@lfromlang, komentari i pogovor\addcolon}% + {prijevod \lbx@lfromlang, komentari i pogovor\addcolon}}, + bytranslatoranin = {{prijevod \lbx@lfromlang, uvod i bilje\v{s}ke\addcolon}% + {prijevod \lbx@lfromlang, uvod i bilje\v{s}ke\addcolon}}, + bytranslatoranfo = {{prijevod \lbx@lfromlang, predgovor i bilje\v{s}ke\addcolon}% + {prijevod \lbx@lfromlang, predgovor i bilje\v{s}ke\addcolon}}, + bytranslatoranaf = {{prijevod \lbx@lfromlang, bilje\v{s}ke i pogovor\addcolon}% + {prijevod \lbx@lfromlang, bilje\v{s}ke i pogovor\addcolon}}, + and = {{i}{i}}, + andothers = {{i drugi}{i dr\adddot}}, + andmore = {{i drugi}{i dr\adddot}}, + volume = {{sv\adddot}{sv\adddot}}, + volumes = {{sv\adddot}{sv\adddot}}, +% involumes = {{}{}},% FIXME: missing + jourvol = {{sv\adddot}{sv\adddot}}, + jourser = {{serija}{serija}}, +% book = {{}{}},% FIXME: missing +% part = {{}{}},% FIXME: missing +% issue = {{}{}},% FIXME: missing + newseries = {{nova serija}{nova serija}}, + oldseries = {{stara serija}{stara serija}}, + edition = {{izdanje}{izdanje}}, + reprint = {{pretisak}{pretisak}}, + reprintof = {{pretisak}{pretisak}}, + reprintas = {{iznova otisnuto kao}{iznova otisnuto kao}}, +% reprintfrom = {{}{}},% FIXME: missing +% translationof = {{}{}},% FIXME: missing +% translationas = {{}{}},% FIXME: missing +% translationfrom = {{}{}},% FIXME: missing +% reviewof = {{}{}},% FIXME: missing +% origpubas = {{}{}},% FIXME: missing +% origpubin = {{}{}},% FIXME: missing +% astitle = {{}{}},% FIXME: missing +% bypublisher = {{}{}},% FIXME: missing + nodate = {{no date}{n\adddot d\adddot}},% FIXME + page = {{stranica}{str\adddot}}, + pages = {{stranice}{str\adddot}}, + column = {{stupac}{stupac}}, + columns = {{stupci}{stupci}}, + line = {{linija}{l\adddot}}, + lines = {{linije}{ll\adddot}}, + verse = {{stih}{stih}}, + verses = {{stihovi}{stihovi}}, + section = {{odjeljak}{\S}}, + sections = {{odjeljci}{\S\S}}, + paragraph = {{stavak}{st\adddot}}, + paragraphs = {{stavci}{st\adddot}}, +% pagetotal = {{}{}},% FIXME: missing +% pagetotals = {{}{}},% FIXME: missing +% columntotal = {{}{}},% FIXME: missing +% columntotals = {{}{}},% FIXME: missing +% linetotal = {{}{}},% FIXME: missing +% linetotals = {{}{}},% FIXME: missing +% versetotal = {{}{}},% FIXME: missing +% versetotals = {{}{}},% FIXME: missing +% sectiontotal = {{}{}},% FIXME: missing +% sectiontotals = {{}{}},% FIXME: missing +% paragraphtotal = {{}{}},% FIXME: missing +% paragraphtotals = {{}{}},% FIXME: missing + in = {{}{}},% FIXME: check + inseries = {{u seriji}{u seriji}}, + ofseries = {{iz serije}{iz serije}}, + number = {{broj}{br\adddot}}, + chapter = {{poglavlje}{pogl\adddot}}, +% bathesis = {{}{}},% FIXME: missing + mathesis = {{magistarski rad}{mag\adddotspace rad}}, + phdthesis = {{doktorska disertacija}{disertacija}}, +% candthesis = {{}{}},% FIXME: missing + resreport = {{znanstveno izvje\v{s}\'{c}e}{zn\adddotspace izv\adddot}}, + techreport = {{tehni\v{c}ko izvje\v{s}\'{c}e}{teh\adddotspace izv\adddot}}, + software = {{softver}{softver}}, + datacd = {{CD-ROM}{CD-ROM}}, + audiocd = {{audio CD}{audio CD}}, + version = {{verzija}{verzija}}, + url = {{adresa}{adresa}}, +% urlfrom = {{}{}},% FIXME: missing + urlseen = {{pogledano}{pogledano}}, + inpreparation = {{u pripremi}{u pripremi}}, + submitted = {{predan}{predan}}, +% forthcoming = {{}{}},% FIXME: missing + inpress = {{u tisku}{u tisku}}, +% prepublished = {{}{}},% FIXME: missing + citedas = {{dalje citirano kao}{dalje citirano kao}}, + thiscite = {{napose}{napose}}, + seenote = {{vidi bilje\v{s}ku}{v\adddotspace bilj\adddot}}, + quotedin = {{citirano u}{citirano u}}, + idem = {{idem}{idem}}, + idemsm = {{idem}{idem}}, + idemsf = {{eadem}{eadem}}, + idemsn = {{idem}{idem}}, + idempm = {{eidem}{eidem}}, + idempf = {{eaedem}{eaedem}}, + idempn = {{eadem}{eadem}}, + idempp = {{eidem}{eidem}}, + ibidem = {{ibidem}{ibid\adddot}}, + opcit = {{op\adddotspace cit\adddot}{op\adddotspace cit\adddot}}, + loccit = {{loc\adddotspace cit\adddot}{loc\adddotspace cit\adddot}}, + confer = {{usporedi}{usp\adddot}}, + sequens = {{sq\adddot}{sq\adddot}}, + sequentes = {{sqq\adddot}{sqq\adddot}}, + passim = {{passim}{pass\adddot}}, + see = {{vidi}{v\adddot}}, + seealso = {{pogledaj i}{pogl\adddotspace i}}, + backrefpage = {{citirano na stranci}{cit\adddotspace na str\adddot}}, + backrefpages = {{cited on pages}{cit\adddotspace na str\adddot}}, + january = {{sije\v{c}anj}{sije\v{c}anj}}, + february = {{velja\v{c}a}{velja\v{c}a}}, + march = {{o\v{z}ujak}{o\v{z}ujak}}, + april = {{travanj}{travanj}}, + may = {{svibanj}{svibanj}}, + june = {{lipanj}{lipanj}}, + july = {{srpanj}{srpanj}}, + august = {{kolovoz}{kolovoz}}, + september = {{rujan}{rujan}}, + october = {{listopad}{listopad}}, + november = {{studeni}{studeni}}, + december = {{prosinac}{prosinac}}, + datejanuary = {{sije\v{c}nja}{sije\v{c}nja}}, + datefebruary = {{velja\v{c}e}{velja\v{c}e}}, + datemarch = {{o\v{z}ujka}{o\v{z}ujka}}, + dateapril = {{travnja}{travnja}}, + datemay = {{svibnja}{svibnja}}, + datejune = {{lipnja}{lipnja}}, + datejuly = {{srpnja}{srpnja}}, + dateaugust = {{kolovoza}{kolovoza}}, + dateseptember = {{rujna}{rujna}}, + dateoctober = {{listopada}{listopada}}, + datenovember = {{studenoga}{studenoga}}, + datedecember = {{prosinca}{prosinca}}, + langamerican = {{engleski}{engleski}}, + langbrazilian = {{portugalski}{portugalski}}, +% langbulgarian = {{}{}},% FIXME: missing +% langcatalan = {{}{}},% FIXME: missing + langcroatian = {{hrvatski}{hrvatski}}, +% langczech = {{}{}},% FIXME: missing + langdanish = {{danski}{danski}}, + langdutch = {{nizozemski}{nizozemski}}, + langenglish = {{engleski}{engleski}}, +% langestonian = {{}{}},% FIXME: missing +% langfinnish = {{}{}},% FIXME: missing + langfrench = {{francuski}{francuski}}, + langgalician = {{galicijski}{galicijski}}, + langgerman = {{njema\v{c}ki}{njema\v{c}ki}}, + langgreek = {{gr\v{c}ki}{gr\v{c}ki}}, + langhungarian = {{ma\dj arski}{ma\dj arski}}, + langitalian = {{talijanski}{talijanski}}, + langlatin = {{latinski}{latinski}}, +% langlatvian = {{}{}},% FIXME: missing + langnorwegian = {{norve\v{s}ki}{norve\v{s}ki}}, +% langpolish = {{}{}},% FIXME: missing + langportuguese = {{portugalski}{portugalski}}, +% langrussian = {{}{}},% FIXME: missing +% langslovak = {{}{}},% FIXME: missing +% langslovene = {{}{}},% FIXME: missing + langspanish = {{\v{s}panjolski}{\v{s}panjolski}}, + langswedish = {{\v{s}vedski}{\v{s}vedski}}, + fromamerican = {{s engleskog}{s engleskog}}, + frombrazilian = {{s portugalskog}{s portugalskog}}, +% frombulgarian = {{}{}},% FIXME: missing +% fromcatalan = {{}{}},% FIXME: missing + fromcroatian = {{s hrvatskog}{s hrvatskog}}, +% fromczech = {{}{}},% FIXME: missing + fromdanish = {{s danskog}{s danskog}}, + fromdutch = {{s nizozemskog}{s nizozemskog}}, + fromenglish = {{s engleskog}{s engleskog}}, +% fromestonian = {{}{}},% FIXME: missing +% fromfinnish = {{}{}},% FIXME: missing + fromfrench = {{s francuskog}{s francuskog}}, + fromgalician = {{s galicijskog}{s galicijskog}}, + fromgerman = {{s njema\v{c}kog}{s njema\v{c}kog}}, + fromgreek = {{s gr\v{c}kog}{s gr\v{c}kog}}, + fromhungarian = {{s ma\dj arskog}{s ma\dj arskog}}, + fromitalian = {{s talijanskog}{s talijanskog}}, + fromlatin = {{s latinskog}{s latinskog}}, +% fromlatvian = {{}{}},% FIXME: missing + fromnorwegian = {{s norve\v{s}kog}{s norve\v{s}kog}}, +% frompolish = {{}{}},% FIXME: missing + fromportuguese = {{s portugalskog}{s portugalskog}}, +% fromrussian = {{}{}},% FIXME: missing +% fromslovak = {{}{}},% FIXME: missing +% fromslovene = {{}{}},% FIXME: missing + fromspanish = {{sa \v{s}panjolskog}{sa \v{s}panjolskog}}, + fromswedish = {{sa \v{s}vedskog}{sa \v{s}vedskog}}, + countryde = {{Njema\v{c}ka}{DE}}, + countryeu = {{Europska unija}{EU}}, + countryep = {{Europska unija}{EP}}, + countryfr = {{Francuska}{FR}}, + countryuk = {{Velika Britanija}{GB}}, + countryus = {{Sjedinjene Ameri\v{c}ke Dr\v{z}ave}{US}}, + patent = {{patent}{pat\adddot}}, + patentde = {{njema\v{c}ki patent}{njema\v{c}ki pat\adddot}}, + patenteu = {{europski patent}{europski pat\adddot}}, + patentfr = {{francuski patent}{francuski pat\adddot}}, + patentuk = {{britanski patent}{britanski pat\adddot}}, + patentus = {{US patent}{US pat\adddot}}, + patreq = {{patentni zahtjev}{pat\adddot\ zahtjev}}, + patreqde = {{njema\v{c}ki patentni zahtjev}% + {njem\adddotspace pat\adddotspace zahtjev}}, + patreqeu = {{europski patentni zahtjev}{EU pat\adddotspace zahtjev}}, + patreqfr = {{francuski patentni zahtjev}% + {franc\adddotspace pat\adddotspace zahtjev}}, + patrequk = {{britanskipatentni zahtjev}% + {britanski pat\adddotspace zahtjev}}, + patrequs = {{US patentni zahtjev}{US pat\adddot\ zahtjev}}, + file = {{datoteka}{datoteka}}, + library = {{biblioteka}{biblioteka}}, + abstract = {{sa\v{z}etak}{sa\v{z}etak}}, + annotation = {{bilje\v{s}ka}{bilje\v{s}ka}}, + commonera = {{n\adddot e\adddot}{n\adddot e\adddot}}, + beforecommonera = {{pr\adddotspace n\adddotspace e\adddot}{pr\adddotspace n\adddotspace e\adddot}}, + annodomini = {{poslije Krista}{p\adddotspace Kr\adddot}}, + beforechrist = {{prije Krista}{pr\adddotspace Kr\adddot}}, +% circa = {{}{}},% FIXME: missing +% spring = {{}{}},% FIXME: missing +% summer = {{}{}},% FIXME: missing +% autumn = {{}{}},% FIXME: missing +% winter = {{}{}},% FIXME: missing + am = {{AM}{AM}}, + pm = {{PM}{PM}}, +} + +\protected\gdef\lbx@cr@mkbibmonth#1{% + \ifcase0#1\relax + #1\BibliographyWarning{Month out of range}% + \or\abx@bibmonth{datejanuary}% + \or\abx@bibmonth{datefebruary}% + \or\abx@bibmonth{datemarch}% + \or\abx@bibmonth{dateapril}% + \or\abx@bibmonth{datemay}% + \or\abx@bibmonth{datejune}% + \or\abx@bibmonth{datejuly}% + \or\abx@bibmonth{dateaugust}% + \or\abx@bibmonth{dateseptember}% + \or\abx@bibmonth{dateoctober}% + \or\abx@bibmonth{datenovember}% + \or\abx@bibmonth{datedecember}% + \else + #1\BibliographyWarning{Month out of range}% + \fi}% + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/lbx/czech.lbx b/macros/latex/contrib/biblatex/latex/lbx/czech.lbx new file mode 100644 index 0000000000..716b3a1ee8 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/lbx/czech.lbx @@ -0,0 +1,475 @@ +\ProvidesFile{czech.lbx} +[\abx@lbxid] + +\DeclareBibliographyExtras{% + \DeclareCapitalPunctuation{.!?}% + \protected\def\bibrangedash{% + \textendash\penalty\hyphenpenalty}% breakable dash + \let\finalandcomma=\empty + \let\finalandsemicolon=\empty + \protected\def\mkbibordinal#1{\stripzeros{#1}\adddot}% + \protected\def\mkbibmascord{\mkbibordinal}% + \protected\def\mkbibfemord{\mkbibordinal}% + \protected\def\mkbibneutord{\mkbibordinal}% + \protected\def\mkbibdatelong#1#2#3{% + \iffieldundef{#3} + {} + {\mkbibordinal{\thefield{#3}}% + \iffieldundef{#2}{}{\thinspace}}% + \iffieldundef{#2} + {} + {\mkbibmonth{\thefield{#2}}% + \iffieldundef{#1}{}{\space}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}% + \protected\def\mkbibdateshort#1#2#3{% + \iffieldundef{#3} + {} + {\mkdayzeros{\thefield{#3}}\adddot + \iffieldundef{#2}{}{\thinspace}}% + \iffieldundef{#2} + {} + {\mkmonthzeros{\thefield{#2}}% + \iffieldundef{#1} + {} + {\iffieldundef{#3}{/}{\adddot\thinspace}}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}% + \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{% + \iffieldundef{#1}{} + {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}% + \iffieldundef{#2}{} + {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}% + \iffieldundef{#3}{} + {\printtext{\mktimezeros{\thefield{#3}}}}% + \setunit{}% + \iffieldundef{#4}{} + {\bibtimezonesep + \mkbibtimezone{\thefield{#4}}}}% + \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{% + \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep + \forcezerosmdt{\thefield{#2}}% + \iffieldundef{#3}{} + {\bibtimesep + \forcezerosmdt{\thefield{#3}}}% + \space + \ifnumless{\thefield{#1}}{12} + {\bibstring{am}} + {\bibstring{pm}}% + \iffieldundef{#4}{} + {\space\bibtimezonesep + \parentext{\mkbibtimezone{\thefield{#4}}}}}% + \protected\def\mkbibseasondateshort#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% + \protected\def\mkbibseasondatelong#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% +} + +\DeclareBibliographyStrings{% + bibliography = {{Bibliografie}{Bibliografie}}, + references = {{Odkazy}{Odkazy}}, + shorthands = {{Seznam zkratek}{Zkratky}}, + editor = {{editor}{ed\adddot}}, + editors = {{edito\v{r}i}{ed\adddot}}, + compiler = {{sestavil}{sest\adddot}}, + compilers = {{sestavili}{sest\adddot}}, + redactor = {{redaktor}{red\adddot}}, + redactors = {{redakto\v{r}i}{red\adddot}}, + founder = {{zakladatel}{zakl\adddot}}, + founders = {{zakladatel\'{e}}{zakl\adddot}}, + continuator = {{pokra\v{c}ovatel}{pokr\adddot}},% FIXME: unsure + continuators = {{pokra\v{c}ovatel\'{e}}{pokr\adddot}},% FIXME: unsure + collaborator = {{spolupracovn\'{i}k}{spoluprac\adddot}},% FIXME: unsure + collaborators = {{spolupracovn\'{i}ci}{spoluprac\adddot}},% FIXME: unsure + translator = {{p\v{r}ekladatel}{p\v{r}ekl\adddot}}, + translators = {{p\v{r}ekladatel\'{e}}{p\v{r}ekl\adddot}}, + commentator = {{koment\'{a}tor}{kom\adddot}}, + commentators = {{koment\'{a}to\v{r}i}{kom\adddot}}, + annotator = {{anot\'{a}tor}{anot\adddot}}, + annotators = {{anot\'{a}to\v{r}i}{anot\adddot}}, + commentary = {{koment\'{a}tor}{komm\adddot}},% FIXME: unsure + annotations = {{anotatace}{anot\adddot}}, + introduction = {{\'{u}vod}{\'{u}v\adddot}}, + foreword = {{p\v{r}edmluva}{p\v{r}edml\adddot}}, + afterword = {{doslov}{dosl\adddot}}, + editortr = {{editor a p\v{r}ekladatel}{ed\adddotspace a p\v{r}ekl\adddot}}, + editorstr = {{edito\v{r}i a p\v{r}ekladatel\'{e}}{ed\adddotspace a p\v{r}ekl\adddot}}, + editorco = {{editor a koment\'{a}tor}{ed\adddotspace a kom\adddot}}, + editorsco = {{editor a koment\'{a}to\v{r}i}{ed\adddotspace a kom\adddot}}, + editoran = {{editor a anot\'{a}tor}{ed\adddotspace a anot\adddot}}, + editorsan = {{editor a anot\'{a}to\v{r}i}{ed\adddotspace a anot\adddot}}, + editorin = {{editor a \'{u}vod}{ed\adddotspace \'{u}v\adddot}}, + editorsin = {{edito\v{r}i a \'{u}vod}{ed\adddotspace a \'{u}v\adddot}}, + editorfo = {{editor a p\v{r}edmluva}{ed\adddotspace a p\v{r}edml\adddot}}, + editorsfo = {{edito\v{r}i a p\v{r}edmluva}{ed\adddotspace a p\v{r}edml\adddot}}, + editoraf = {{editor a doslov}{ed\adddotspace a dosl\adddot}}, + editorsaf = {{edito\v{r}i a doslov}{ed\adddotspace a dosl\adddot}}, + editortrco = {{editor, p\v{r}eklad\ a koment\'{a}tor}% + {ed.,\addabbrvspace p\v{r}ekl\adddot\ a kom\adddot}},% FIXME: hruznost + editorstrco = {{edito\v{r}i, p\v{r}ekladatel\'{e}\ a koment\'{a}to\v{r}i}% + {ed.,\addabbrvspace p\v{r}ekl\adddot\ a kom\adddot}}, + editortran = {{editor, p\v{r}ekladatel\ a anot\'{a}tor}% + {ed.,\addabbrvspace p\v{r}ekl\adddot\ a anot\adddot}}, + editorstran = {{edito\v{r}i, p\v{r}ekladatel\'{e}\ a anot\'{a}to\v{r}i}% + {ed.,\addabbrvspace p\v{r}ekl\adddot\ a anot\adddot}}, + editortrin = {{editor, p\v{r}ekladatel\ a \'{u}vod}% + {ed.,\addabbrvspace p\v{r}ekl\adddot\ a \'{u}vod\adddot}}, + editorstrin = {{edito\v{r}i, p\v{r}ekladatel\'{e}\ a \'{u}vod}% + {ed.,\addabbrvspace p\v{r}ekl\adddot\ a \'{u}vod\adddot}}, + editortrfo = {{editor, p\v{r}ekladatel\ a p\v{r}edmluva}% + {ed.,\addabbrvspace p\v{r}ekl\adddot\ a p\v{r}edml\adddot}}, + editorstrfo = {{edito\v{r}i, p\v{r}ekladatel\'{e}\ a p\v{r}edmluva}% + {ed.,\addabbrvspace p\v{r}ekl\adddot\ a p\v{r}edml\adddot}}, + editortraf = {{editor, p\v{r}ekladatel\ a doslov}% + {ed.,\addabbrvspace p\v{r}ekl\adddot\ a afterw\adddot}}, + editorstraf = {{edito\v{r}i, p\v{r}ekladatel\'{e}\ a doslov}% + {ed.,\addabbrvspace p\v{r}ekl\adddot\ a afterw\adddot}}, + editorcoin = {{editor, koment\'{a}tor\ a \'{u}vod}% + {ed.,\addabbrvspace kom\adddot\ a \'{u}vod\adddot}}, + editorscoin = {{edito\v{r}i, koment\'{a}to\v{r}i\ a \'{u}vod}% + {ed.,\addabbrvspace kom\adddot\ a \'{u}vod\adddot}}, + editorcofo = {{editor, koment\'{a}tor\ a p\v{r}edmluva}% + {ed.,\addabbrvspace kom\adddot\ a p\v{r}edml\adddot}}, + editorscofo = {{edito\v{r}i, koment\'{a}to\v{r}i\ a p\v{r}edmluva}% + {ed.,\addabbrvspace kom\adddot\ a p\v{r}edml\adddot}}, + editorcoaf = {{editor, koment\'{a}tor\ a doslov}% + {ed.,\addabbrvspace kom\adddot\ a dosl\adddot}}, + editorscoaf = {{edito\v{r}i, koment\'{a}to\v{r}i\ a doslov}% + {ed.,\addabbrvspace kom\adddot\ a dosl\adddot}}, + editoranin = {{editor, anot\'{a}tor\ a \'{u}vod}% + {ed.,\addabbrvspace anot\adddot\ a \'{u}vod\adddot}}, + editorsanin = {{edito\v{r}i, anot\'{a}to\v{r}i\ a \'{u}vod}% + {ed.,\addabbrvspace anot\adddot\ a \'{u}vod\adddot}}, + editoranfo = {{editor, anot\'{a}tor\ a p\v{r}edmluva}% + {ed.,\addabbrvspace anot\adddot\ a p\v{r}edml\adddot}}, + editorsanfo = {{edito\v{r}i, anot\'{a}to\v{r}i\ a p\v{r}edmluva}% + {ed.,\addabbrvspace anot\adddot\ a p\v{r}edml\adddot}}, + editoranaf = {{editor, anot\'{a}tor\ a doslov}{ed.,\addabbrvspace anot\adddot\ a dosl\adddot}}, + editorsanaf = {{edito\v{r}i, anot\'{a}to\v{r}i\ a doslov}% + {ed.,\addabbrvspace anot\adddot\ a dosl\adddot}}, + editortrcoin = {{editor, p\v{r}ekladatel, koment\'{a}tor\ a \'{u}vod}% + {ed.,\addabbrvspace p\v{r}ekl., kom\adddot\ a \'{u}vod\adddot}}, + editorstrcoin = {{edito\v{r}i, p\v{r}ekladatel\'{e}, koment\'{a}to\v{r}i\ a \'{u}vod}% + {ed.,\addabbrvspace p\v{r}ekl., kom\adddot\ a \'{u}vod\adddot}}, + editortrcofo = {{editor, p\v{r}ekladatel, koment\'{a}tor\ a p\v{r}edmluva}% + {ed.,\addabbrvspace p\v{r}ekl., kom\adddot\ a p\v{r}edml\adddot}}, + editorstrcofo = {{edito\v{r}i, p\v{r}ekladatel\'{e}, koment\'{a}to\v{r}i\ a p\v{r}edmluva}% + {ed.,\addabbrvspace p\v{r}ekl., kom\adddot\ a p\v{r}edml\adddot}}, + editortrcoaf = {{editor, p\v{r}ekladatel, koment\'{a}tor\ a doslov}% + {ed.,\addabbrvspace p\v{r}ekl., kom\adddot\ a dosl\adddot}}, + editorstrcoaf = {{edito\v{r}i, p\v{r}ekladatel\'{e}, koment\'{a}to\v{r}i\ a doslov}% + {ed.,\addabbrvspace p\v{r}ekl., kom\adddot\ a dosl\adddot}}, + editortranin = {{editor, p\v{r}ekladatel, anot\'{a}tor\ a \'{u}vod}% + {ed.,\addabbrvspace p\v{r}ekl., anot\adddot\ a \'{u}vod\adddot}}, + editorstranin = {{edito\v{r}i, p\v{r}ekladatel\'{e}, anot\'{a}to\v{r}i\ a \'{u}vod}% + {ed.,\addabbrvspace p\v{r}ekl., anot\adddot\ a \'{u}vod\adddot}}, + editortranfo = {{editor, p\v{r}ekladatel, anot\'{a}tor\ a p\v{r}edmluva}% + {ed.,\addabbrvspace p\v{r}ekl., anot\adddot\ a p\v{r}edml\adddot}}, + editorstranfo = {{edito\v{r}i, p\v{r}ekladatel\'{e}, anot\'{a}to\v{r}i\ a p\v{r}edmluva}% + {ed.,\addabbrvspace p\v{r}ekl., anot\adddot\ a p\v{r}edml\adddot}}, + editortranaf = {{editor, p\v{r}ekladatel, anot\'{a}tor\ a doslov}% + {ed.,\addabbrvspace p\v{r}ekl., anot\adddot\ a dosl\adddot}}, + editorstranaf = {{edito\v{r}i, p\v{r}ekladatel\'{e}, anot\'{a}to\v{r}i\ a doslov}% + {ed.,\addabbrvspace p\v{r}ekl., anot\adddot\ a dosl\adddot}}, + translatorco = {{p\v{r}ekladatel a koment\'{a}tor}{p\v{r}ekl\adddot\ a kom\adddot}}, + translatorsco = {{p\v{r}ekladatel\'{e} a koment\'{a}to\v{r}i}{p\v{r}ekl\adddot\ a kom\adddot}}, + translatoran = {{p\v{r}ekladatel a anot\'{a}tor}{p\v{r}ekl\adddot\ a anot\adddot}}, + translatorsan = {{p\v{r}ekladatel\'{e} a anot\'{a}to\v{r}i}{p\v{r}ekl\adddot\ a anot\adddot}}, + translatorin = {{p\v{r}eklad a \'{u}vod}{p\v{r}ekl\adddot\ a \'{u}vod\adddot}}, + translatorsin = {{p\v{r}eklad a \'{u}vod}{p\v{r}ekl\adddot\ a \'{u}vod\adddot}}, + translatorfo = {{p\v{r}eklad a p\v{r}edmluva}{p\v{r}ekl\adddot\ a p\v{r}edml\adddot}}, + translatorsfo = {{p\v{r}eklad a p\v{r}edmluva}{p\v{r}ekl\adddot\ a p\v{r}edml\adddot}}, + translatoraf = {{p\v{r}eklad a doslov}{p\v{r}ekl\adddot\ a dosl\adddot}}, + translatorsaf = {{p\v{r}eklad a doslov}{p\v{r}ekl\adddot\ a dosl\adddot}}, + translatorcoin = {{p\v{r}eklad, koment\'{a}\v{r}\ a \'{u}vod}{p\v{r}ekl., kom\adddot\ a \'{u}vod\adddot}}, + translatorscoin = {{p\v{r}eklad, koment\'{a}\v{r}\ a \'{u}vod}{p\v{r}ekl., kom\adddot\ a \'{u}vod\adddot}}, + translatorcofo = {{p\v{r}eklad, koment\'{a}\v{r}\ a p\v{r}edmluva}{p\v{r}ekl., kom\adddot\ a p\v{r}edml\adddot}}, + translatorscofo = {{p\v{r}eklad, koment\'{a}\v{r}\ a p\v{r}edmluva}{p\v{r}ekl., kom\adddot\ a p\v{r}edml\adddot}}, + translatorcoaf = {{p\v{r}eklad, koment\'{a}\v{r}\ a doslov}{p\v{r}ekl., kom\adddot\ a dosl\adddot}}, + translatorscoaf = {{p\v{r}eklad, koment\'{a}\v{r}\ a doslov}{p\v{r}ekl., kom\adddot\ a dosl\adddot}}, + translatoranin = {{p\v{r}eklad, anotace,\ a \'{u}vod}{p\v{r}ekl., anot\adddot\ a \'{u}vod\adddot}}, + translatorsanin = {{p\v{r}eklad, anotace,\ a \'{u}vod}{p\v{r}ekl., anot\adddot\ a \'{u}vod\adddot}}, + translatoranfo = {{p\v{r}eklad, anotace,\ a p\v{r}edmluva}{p\v{r}ekl., anot\adddot\ a p\v{r}edml\adddot}}, + translatorsanfo = {{p\v{r}eklad, anotace,\ a p\v{r}edmluva}{p\v{r}ekl., anot\adddot\ a p\v{r}edml\adddot}}, + translatoranaf = {{p\v{r}eklad, anotace,\ a doslov}{p\v{r}ekl., anot\adddot\ a dosl\adddot}}, + translatorsanaf = {{p\v{r}eklad, anotace,\ a doslov}{p\v{r}ekl., anot\adddot\ a dosl\adddot}}, +% organizer = {{}{}},% FIXME: missing +% organizers = {{}{}},% FIXME: missing +% byorganizer = {{}{}},% FIXME: missing + byauthor = {{by}{by}}, + byeditor = {{editov\'{a}no}{ed\adddotspace}}, + bycompiler = {{sestaveno}{comp\adddotspace}}, + byredactor = {{redigov\'{a}no}{red\adddotspace}}, + byfounder = {{zalo\v{z}eno}{found\adddotspace}}, + bycontinuator = {{pokra\v{c}ov\'{a}no}{cont\adddotspace}}, + bycollaborator = {{ve spolupr\'{a}ci s}{ve spol\adddotspace s}},% FIXME: unsure + bytranslator = {{p\v{r}elo\v{z}eno \lbx@lfromlang}{p\v{r}el\adddot\ \lbx@sfromlang}}, + bycommentator = {{komentov\'{a}no}{kom\adddotspace}}, + byannotator = {{anotov\'{a}no}{anot\adddotspace}}, + withcommentator = {{s koment\'{a}\v{r}em}{s kom\adddotspace}},%mozna: s komentarem od? + withannotator = {{s anotacemi od}{s anot\adddot\ od}}, + withintroduction = {{s \'{u}vodem od}{u \'{u}v\adddot\ od}}, + withforeword = {{s p\v{r}edmluvou od}{s p\v{r}edml\adddot\ od}}, + withafterword = {{s doslovem}{s dosl\adddot\ }}, + byeditortr = {{editov\'{a}no a p\v{r}elo\v{z}eno \lbx@lfromlang\ }% + {ed\adddotspace a p\v{r}el\adddot\ \lbx@sfromlang\ }}, + byeditorco = {{editov\'{a}no a komentov\'{a}no}{ed\adddotspace a kom\adddot\ }}, + byeditoran = {{editov\'{a}no a anotov\'{a}no}{ed\adddotspace a anot\adddot\ }}, + byeditorin = {{editov\'{a}no, s \'{u}vodem}{ed.,\addabbrvspace s \'{u}vodem}}, + byeditorfo = {{editov\'{a}no, s p\v{r}edmluvou}{ed.,\addabbrvspace s p\v{r}edml., }}, + byeditoraf = {{editov\'{a}no, s doslovem}{ed.,\addabbrvspace s dosl.,}}, + byeditortrco = {{editov\'{a}no, p\v{r}elo\v{z}eno \lbx@lfromlang\ a komentov\'{a}no}% + {ed.,\addabbrvspace p\v{r}el\adddot\ \lbx@sfromlang\ a kom\adddot\ }}, + byeditortran = {{editov\'{a}no, p\v{r}elo\v{z}eno \lbx@lfromlang\ a anotov\'{a}no}% + {ed.,\addabbrvspace p\v{r}el\adddot\ \lbx@sfromlang\ a anot\adddot\ }}, + byeditortrin = {{editov\'{a}no a p\v{r}elo\v{z}eno \lbx@lfromlang, s \'{u}vodem}% + {ed\adddotspace a p\v{r}el\adddot\ \lbx@sfromlang, s \'{u}vodem}}, + byeditortrfo = {{editov\'{a}no a p\v{r}elo\v{z}eno \lbx@lfromlang, s p\v{r}edmluvou}% + {ed\adddotspace a p\v{r}el\adddot\ \lbx@sfromlang, s p\v{r}edmluvou}}, + byeditortraf = {{editov\'{a}no a p\v{r}elo\v{z}eno \lbx@lfromlang, s doslovem}% + {ed\adddotspace a p\v{r}ekl\adddot\ \lbx@sfromlang, s doslovem}}, + byeditorcoin = {{editov\'{a}no a komentov\'{a}no, s \'{u}vodem}{ed\adddotspace a kom., s \'{u}vodem}}, + byeditorcofo = {{editov\'{a}no a komentov\'{a}no, s p\v{r}edmluvou}{ed\adddotspace a kom., s p\v{r}edml\adddot}}, + byeditorcoaf = {{editov\'{a}no a komentov\'{a}no, s doslovem}{ed\adddotspace a kom., s dosl.}}, + byeditoranin = {{editov\'{a}no a anotov\'{a}no, s \'{u}vodem}{ed\adddotspace a anot., s \'{u}vodem}}, + byeditoranfo = {{editov\'{a}no a anotov\'{a}no, s p\v{r}edmluvou}{ed\adddotspace a anot., s p\v{r}edml\adddot}}, + byeditoranaf = {{editov\'{a}no a anotov\'{a}no, s doslovem}{ed\adddotspace a anot., s dosl\adddot}}, + byeditortrcoin = {{editov\'{a}no, p\v{r}elo\v{z}eno \lbx@lfromlang\ a komentov\'{a}no, s \'{u}vodem}% + {ed.,\addabbrvspace p\v{r}el\adddot\ \lbx@sfromlang\ a kom., s \'{u}vodem}}, + byeditortrcofo = {{editov\'{a}no, p\v{r}elo\v{z}eno \lbx@lfromlang\ a komentov\'{a}no, s p\v{r}edmluvou }% + {ed.,\addabbrvspace p\v{r}el\adddot\ \lbx@sfromlang\ a kom., s p\v{r}edml\adddot}}, + byeditortrcoaf = {{editov\'{a}no, p\v{r}elo\v{z}eno \lbx@lfromlang\ a komentov\'{a}no, s doslovem}% + {ed.,\addabbrvspace p\v{r}el\adddot\ \lbx@sfromlang\ a kom., s dosl\adddot}}, + byeditortranin = {{editov\'{a}no, p\v{r}elo\v{z}eno \lbx@lfromlang\ a anotov\'{a}no, s \'{u}vodem}% + {ed.,\addabbrvspace p\v{r}el\adddot\ \lbx@sfromlang\ a anot\adddot, s \'{u}vodem}}, + byeditortranfo = {{editov\'{a}no, p\v{r}elo\v{z}eno \lbx@lfromlang\ a anotov\'{a}no, s p\v{r}edmluvou}% + {ed.,\addabbrvspace p\v{r}el\adddot\ \lbx@sfromlang\ a anot, s p\v{r}edml\adddot}}, + byeditortranaf = {{editov\'{a}no, p\v{r}elo\v{z}eno \lbx@lfromlang\ a anotov\'{a}no, s doslovem}% + {ed.,\addabbrvspace p\v{r}el\adddot\ \lbx@sfromlang\ a anot, s dosl\adddot}}, + bytranslatorco = {{p\v{r}elo\v{z}eno \lbx@lfromlang\ a komentov\'{a}no}% + {p\v{r}el\adddot\ \lbx@sfromlang\ a kom\adddot\ }}, + bytranslatoran = {{p\v{r}elo\v{z}eno \lbx@lfromlang\ a anotov\'{a}no}% + {p\v{r}el\adddot\ \lbx@sfromlang\ a anot\adddot\ }}, + bytranslatorin = {{p\v{r}elo\v{z}eno \lbx@lfromlang, s \'{u}vodem}% + {p\v{r}el\adddot\ \lbx@sfromlang, s \'{u}vodem}}, + bytranslatorfo = {{p\v{r}elo\v{z}eno \lbx@lfromlang, s p\v{r}edmluvou}% + {p\v{r}el\adddot\ \lbx@sfromlang, s p\v{r}edml\adddot}}, + bytranslatoraf = {{p\v{r}elo\v{z}eno \lbx@lfromlang, s doslovem}% + {p\v{r}el\adddot\ \lbx@sfromlang, s dosl\adddot}}, + bytranslatorcoin = {{p\v{r}elo\v{z}eno \lbx@lfromlang\ a komentov\'{a}no, s \'{u}vodem}% + {p\v{r}el\adddot\ \lbx@sfromlang\ a kom., s \'{u}vodem}}, + bytranslatorcofo = {{p\v{r}elo\v{z}eno \lbx@lfromlang\ a komentov\'{a}no, s p\v{r}edmluvou}% + {p\v{r}el\adddot\ \lbx@sfromlang\ a kom., s p\v{r}edml\adddot}}, + bytranslatorcoaf = {{p\v{r}elo\v{z}eno \lbx@lfromlang\ a komentov\'{a}ns doslovem}% + {p\v{r}el\adddot\ \lbx@sfromlang\ a kom., s dosl\adddot}}, + bytranslatoranin = {{p\v{r}elo\v{z}eno \lbx@lfromlang\ a anotov\'{a}no, s \'{u}vodem}% + {p\v{r}el\adddot\ \lbx@sfromlang\ a anot., s \'{u}vodem}}, + bytranslatoranfo = {{p\v{r}elo\v{z}eno \lbx@lfromlang\ a anotov\'{a}no, s p\v{r}edmluvou}% + {p\v{r}el\adddot\ \lbx@sfromlang\ a anot., s p\v{r}edml\adddot}}, + bytranslatoranaf = {{p\v{r}elo\v{z}eno \lbx@lfromlang\ a anotov\'{a}no, s doslovem}% + {p\v{r}el\adddot\ \lbx@sfromlang\ a anot., s dosl\adddot}}, + and = {{a}{a}}, + andothers = {{et\addabbrvspace al\adddot}{et\addabbrvspace al\adddot}}, + andmore = {{et\addabbrvspace al\adddot}{et\addabbrvspace al\adddot}}, + volume = {{svazek}{sv\adddot}}, + volumes = {{svazky}{sv\adddot}}, + involumes = {{in}{in}}, + jourvol = {{ro\v{c}n\'ik}{ro\v{c}\adddot}}, + jourser = {{\v{r}ada}{\v{r}\adddot}},% m\r{u}\v{z}e b\'{a}t t\'{e}\v{z} s\'{e}rie, ale \v{r}ada zn\'{i} l\'{e}pe + book = {{kniha}{kniha}}, + part = {{\v{c}\'{a}st}{\v{c}\'{a}st}}, + issue = {{\v{c}\'{i}slo}{\v{c}\'{i}slo}}, + newseries = {{nov\'{a} \v{r}ada}{n. \v{r}ada\adddot}},% FIXME: unsure + oldseries = {{star\'{a} \v{r}ada}{st. \v{r}ada\adddot}}, + edition = {{vyd\'{a}n\'{i}}{vyd\adddot}}, + reprint = {{reprint}{repr\adddot}}, + reprintof = {{reprint}{repr\adddotspace}}, + reprintas = {{reprintov\'{a}no jako}{repr\adddotspace jako}}, + reprintfrom = {{reprintov\'{a}no z}{repr\adddotspace z}}, + reviewof = {{review of}{rev\adddotspace of}}, + translationof = {{p\v{r}eklad}{p\v{r}ekl\adddotspace}}, + translationas = {{p\v{r}elo\v{z}eno jako}{p\v{r}el\adddotspace jako}}, + translationfrom = {{p\v{r}elo\v{z}eno z}{p\v{r}el\adddotspace}}, + origpubas = {{p\r{u}vodn\v{e} vyd\'{a}no jako}{p\r{u}v\adddotspace vyd\adddotspace jako}}, + origpubin = {{p\r{u}vodn\v{e} vyd\'{a}no v}{p\r{u}v\adddotspace vyd\adddotspace v}}, + astitle = {{jako}{as}}, + bypublisher = {{od}{od}},% nejist\'{e} + nodate = {{n\adddot d\adddot}{n\adddot d\adddot}},%FIXME + page = {{strana}{s\adddot}}, + pages = {{strany}{s\adddot}}, + column = {{sloupek}{sl\adddot}},% nebo sloupec? + columns = {{sloupce}{sl\adddot}}, + line = {{\v{r}\'{a}dek}{\v{r}\adddot}}, + lines = {{\v{r}\'{a}dky}{\v{r}\adddot}}, + verse = {{ver\v{s}}{v\adddot}}, + verses = {{ver\v{s}e}{v\adddot}}, + section = {{sekce}{\S}}, + sections = {{sekce}{\S\S}}, + paragraph = {{odstavec}{ods\adddot}}, + paragraphs = {{odstavce}{ods\adddot}}, +% pagetotal = {{}{}},% FIXME: missing +% pagetotals = {{}{}},% FIXME: missing +% columntotal = {{}{}},% FIXME: missing +% columntotals = {{}{}},% FIXME: missing +% linetotal = {{}{}},% FIXME: missing +% linetotals = {{}{}},% FIXME: missing +% versetotal = {{}{}},% FIXME: missing +% versetotals = {{}{}},% FIXME: missing +% sectiontotal = {{}{}},% FIXME: missing +% sectiontotals = {{}{}},% FIXME: missing +% paragraphtotal = {{}{}},% FIXME: missing +% paragraphtotals = {{}{}},% FIXME: missing + in = {{in}{in}},% Pouziti napriklad u sborniku nebo + inseries = {{in}{in}},% casopisu, zni to lip new "v". + % V pripade potreby pouzit lokalni lbx soubor + ofseries = {{z}{z}},% taky prostor pro lokalni lbx + number = {{\v{c}\'{i}slo}{\v{c}\adddot}}, + chapter = {{kapitola}{kap\adddot}}, +% bathesis = {{}{}},% FIXME: missing + mathesis = {{diplomov\'{a} pr\'{a}ce}{dipl\addabbrvspace}}, + phdthesis = {{diserta\v{c}n\'{i}\addabbrvspace pr\'{a}ce}{dis\addabbrvspace}}, + candthesis = {{kandid\'{a}tsk\'{a} pr\'{a}ce}{kand\adddotspace pr\adddotspace}},% mozna, + resreport = {{v\'{y}zkumn\'{a} zpr\'{a}va}{v\'{y}zk\adddot\ zpr\adddot}}, + techreport = {{technick\'{a} zpr\'{a}va}{tech\adddotspace zpr\adddot}}, + software = {{po\v{c}\'{i}ta\v{c}ov\'{y} software}{soft\adddot}}, + datacd = {{CD-ROM}{CD-ROM}}, + audiocd = {{audio CD}{audio CD}}, + version = {{verze}{ver\adddotspace}}, + url = {{dostupn\'y z WWW}{WWW}}, +% urlfrom = {{}{}},% FIXME: missing + urlseen = {{citov\'ano}{cit\adddot}}, + inpreparation = {{v p\v{r}\'{i}prav\v{e}}{v p\v{r}\'{i}prav\v{e}}}, + submitted = {{odesl\'{a}no}{odes\adddotspace}}, + forthcoming = {{budouc\'{i}}{bud\adddotspace}}, + inpress = {{v tisku}{v tisku}}, + prepublished = {{p\v{r}ed publikov\'{a}n\'{i}m}{p\v{r}ed \adddotspace}}, + citedas = {{d\'{a}le citov\'{a}no jako}{d\'{a}le citov\'{a}no jako}}, + thiscite = {{zvl\'{a}\v{s}t\v{e}}{zvl\adddot}}, + seenote = {{viz pozn\'{a}mka}{viz poz\adddot}}, + quotedin = {{citov\'{a}no v}{cit\adddotspace v}}, + idem = {{idem}{idem}}, + idemsm = {{idem}{idem}}, + idemsf = {{eadem}{eadem}}, + idemsn = {{idem}{idem}}, + idempm = {{eidem}{eidem}}, + idempf = {{eaedem}{eaedem}}, + idempn = {{eadem}{eadem}}, + idempp = {{eidem}{eidem}}, + ibidem = {{ibidem}{ibid\adddot}}, + opcit = {{op\adddotspace cit\adddot}{op\adddotspace cit\adddot}}, + loccit = {{loc\adddotspace cit\adddot}{loc\adddotspace cit\adddot}}, + confer = {{cf\adddot}{cf\adddot}}, + sequens = {{sq\adddot}{sq\adddot}}, + sequentes = {{sqq\adddot}{sqq\adddot}}, + passim = {{passim}{pass\adddot}}, + see = {{viz}{viz}}, + seealso = {{viz t\'{e}\v{z}}{viz t\'{e}\v{z}}}, + backrefpage = {{citov\'{a}no na stran\v{e}}{cit\adddotspace na s\adddot}}, + backrefpages = {{citov\'{a}no na stran\'{a}ch}{cit\adddotspace na s\adddot}}, + january = {{ledna}{led\adddot}}, + february = {{\'{u}nora}{\'{u}n\adddot}}, + march = {{b\v{r}ezna}{b\v{r}ez\adddot}}, + april = {{dubna}{dub\adddot}}, + may = {{kvetna}{kv\v{e}t\adddot}}, + june = {{\v{c}ervna}{\v{c}erv\adddot}}, + july = {{\v{c}ervence}{\v{c}vc}}, + august = {{srpna}{srp\adddot}}, + september = {{z\'{a}\v{r}\'{i}}{z\'{a}\v{r}\adddot}}, + october = {{\v{r}\'{i}jna}{\v{r}\'{i}j\adddot}}, + november = {{listopadu}{lis\adddot}}, + december = {{prosince}{pros\adddot}}, + langamerican = {{americk\'{a} angli\v{c}tina}{am\adddot angl\adddot}}, + langbrazilian = {{brazilsk\'{a} portugal\v{s}tina}{braz\adddot portugal\adddot}}, +% langbulgarian = {{}{}},% FIXME: missing +% langcatalan = {{}{}},% FIXME: missing + langcroatian = {{chorvat\v{s}tina}{chorv\adddot}}, +% langczech = {{}{}},% FIXME: missing + langdanish = {{d\'{a}n\v{s}tina}{d\'{a}n\adddot}}, + langdutch = {{holand\v{s}tina}{hol.\adddot}}, + langenglish = {{angli\v{c}tina}{angl\adddot}}, +% langestonian = {{}{}},% FIXME: missing + langfinnish = {{fin\v{s}tina}{fin\adddot}}, + langfrench = {{francouz\v{s}tina}{franc\adddot}}, + langgalician = {{galicij\v{s}tina}{gal\adddot}}, + langgerman = {{n\v{e}m\v{c}ina}{n\v{e}m\adddot}}, + langgreek = {{\v{r}e\v{c}tina}{\v{r}e\v{c}\adddot}}, +% langhungarian = {{}{}}, % FIXME: missing + langitalian = {{ital\v{s}tina}{ital\adddot}}, + langlatin = {{latina}{lat\adddot}}, +% langlatvian = {{}{}},% FIXME: missing + langnorwegian = {{nor\v{s}tina}{nor\v{s}\adddot}}, +% langpolish = {{}{}},% FIXME: missing + langportuguese = {{portugal\v{s}tina}{port\adddot}}, +% langslovak = {{}{}},% FIXME: missing +% langslovene = {{}{}},% FIXME: missing + langspanish = {{\v{s}pan\v{e}l\v{s}tina}{\v{s}pa\v{n}\adddot}}, + langswedish = {{\v{s}v\'{e}d\v{s}tina}{\v{s}v\'{e}d\adddot}}, + fromamerican = {{z americk\'{e} angli\v{c}tiny}{z amer\adddot angl\adddot}}, + frombrazilian = {{z brazilsk\'{e} portugal\v{s}tiny}{z braz\adddotspace port\adddot}}, +% frombulgarian = {{}{}},% FIXME: missing +% fromcatalan = {{}{}},% FIXME: missing + fromcroatian = {{z chorvat\v{s}tiny}{z chorv.}}, +% fromczech = {{}{}},% FIXME: missing + fromdanish = {{z d\'{a}n\v{s}tiny}{z d\'{a}n\adddot}}, + fromdutch = {{z holand\v{s}tiny}{z hol\adddot}}, + fromenglish = {{z angli\v{c}tiny}{z angl\adddot}}, +% fromestonian = {{}{}},% FIXME: missing + fromfinnish = {{z fin\v{s}tiny}{z fin.}}, + fromfrench = {{z francouz\v{s}tiny}{z franc\adddot}}, + fromgalician = {{z galicij\v{s}tiny}{z gal\adddot}}, + fromgerman = {{z n\v{e}m\v{c}iny}{z n\v{e}m\adddot}}, + fromgreek = {{z \v{r}e\v{c}tiny}{z \v{r}e\v{c}\adddot}}, +% fromhungarian = {{}{}}, % FIXME: missing + fromitalian = {{z ital\v{s}tiny}{z ital\adddot}}, + fromlatin = {{z latiny}{z lat\adddot}}, +% fromlatvian = {{}{}},% FIXME: missing + fromnorwegian = {{z nor\v{s}tiny}{z nor\adddot}}, +% frompolish = {{}{}},% FIXME: missing + fromportuguese = {{z portugal\v{s}tiny}{z portugal\v{s}tiny}}, +% fromslovak = {{}{}},% FIXME: missing +% fromslovene = {{}{}},% FIXME: missing + fromspanish = {{ze \v{s}pan\v{e}l\v{s}tiny}{ze \v{s}pa\v{n}\adddot}}, + fromswedish = {{ze \v{s}v\'{e}d\v{s}tiny}{ze \v{s}v\'{e}d\adddot}}, + countryde = {{N\v{e}mecko}{DE}}, + countryeu = {{Evropsk\'{a} unie}{EU}}, + countryep = {{Evropsk\'{a} unie}{EP}}, + countryfr = {{Francie}{FR}}, + countryuk = {{Velk\'{a} Brit\'{a}nie}{GB}}, + countryus = {{Spojen\'{e} St\'{a}ty Americk\'{e}}{US}}, + patent = {{patent}{pat\adddot}}, + patentde = {{n\v{e}meck\'{y} patent}{n\v{e}m\adddot\ pat\adddot}}, + patenteu = {{evropsk\'{y} patent}{evr\adddot\ pat\adddot}}, + patentfr = {{francouzsk\'{y} patent}{franc\adddot\ pat\adddot}}, + patentuk = {{britsk\'{y} patent}{britsk\'{y} pat\adddot}}, + patentus = {{americk\'{y} patent}{US\adddotspace pat\adddot}}, + patreq = {{patentov\'{a} \v{z}\'{a}dost}{pat\adddot\ \v{z}\'{a}d\adddot}}, + patreqde = {{n\v{e}meck\'{a} patentov\'{a} \v{z}\'{a}dost}{n\v{e}meck\'{a} pat\adddot\ \v{z}\'{a}d\adddot}}, + patreqeu = {{evropsk\'{a} patentov\'{a} \v{z}\'{a}dost}{ev\adddot\ pat\adddot\ \v{z}\'{a}d\adddot}}, + patreqfr = {{francouzsk\'{a} patentov\'{a} \v{z}\'{a}dost}{franc\adddot\ pat\adddot\ \v{z}\'{a}d\adddot}}, + patrequk = {{britsk\'{a} patentov\'{a} \v{z}\'{a}dost}{brit\adddot\ pat\adddot\ \v{z}\'{a}d\adddot}}, + patrequs = {{US\adddotspace patentov\'{a} \v{z}\'{a}dost}{US\adddotspace pat\adddot\ \v{z}\'{a}d\adddot}}, + file = {{soubor}{soub\adddot}}, + library = {{knihovna}{knih\adddot}}, + abstract = {{abstrakt}{abst\adddot}}, + annotation = {{anotace}{anot\adddot}}, +% commonera = {{}{}}, +% beforecommonera = {{}{}}, + annodomini = {{n\adddotspace l\adddot}{n\adddotspace l\adddot}}, + beforechrist = {{p\v{r}\adddotspace n\adddotspace l\adddot}{p\v{r}\adddotspace n\adddotspace l\adddot}}, +% circa = {{}{}},% FIXME: missing +% spring = {{}{}},% FIXME: missing +% summer = {{}{}},% FIXME: missing +% autumn = {{}{}},% FIXME: missing +% winter = {{}{}},% FIXME: missing + am = {{dop\adddot}{dop\adddot}}, + pm = {{odp\adddot}{odp\adddot}}, +} + +\endinput + diff --git a/macros/latex/contrib/biblatex/latex/lbx/danish.lbx b/macros/latex/contrib/biblatex/latex/lbx/danish.lbx new file mode 100644 index 0000000000..2c57242bd9 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/lbx/danish.lbx @@ -0,0 +1,533 @@ +\ProvidesFile{danish.lbx} +[\abx@lbxid] + +\DeclareRedundantLanguages{danish}{danish} + +\DeclareBibliographyExtras{% + \protected\def\bibrangedash{% + \textendash\penalty\hyphenpenalty}% breakable dash + \let\finalandcomma=\empty + \let\finalandsemicolon=\empty + \protected\def\mkbibordinal#1{\stripzeros{#1}\adddot}% + \protected\def\mkbibmascord{\mkbibordinal}% + \protected\def\mkbibfemord{\mkbibordinal}% + \protected\def\mkbibneutord{\mkbibordinal}% + \protected\def\mkbibdatelong#1#2#3{% + \iffieldundef{#3} + {} + {\mkbibordinal{\thefield{#3}}% + \iffieldundef{#2}{}{\nobreakspace}}% + \iffieldundef{#2} + {} + {\mkbibmonth{\thefield{#2}}% + \iffieldundef{#1}{}{\space}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}% + \protected\def\mkbibdateshort#1#2#3{% + \iffieldundef{#3} + {} + {\mkdayzeros{\thefield{#3}}\adddot}% + \iffieldundef{#2} + {} + {\mkmonthzeros{\thefield{#2}}% + \iffieldundef{#1}{}{\adddot}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}% + \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{% + \iffieldundef{#1}{} + {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}% + \iffieldundef{#2}{} + {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}% + \iffieldundef{#3}{} + {\printtext{\mktimezeros{\thefield{#3}}}}% + \setunit{}% + \iffieldundef{#4}{} + {\bibtimezonesep + \mkbibtimezone{\thefield{#4}}}}% + \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{% + \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep + \forcezerosmdt{\thefield{#2}}% + \iffieldundef{#3}{} + {\bibtimesep + \forcezerosmdt{\thefield{#3}}}% + \space + \ifnumless{\thefield{#1}}{12} + {\bibstring{am}} + {\bibstring{pm}}% + \iffieldundef{#4}{} + {\space\bibtimezonesep + \parentext{\mkbibtimezone{\thefield{#4}}}}}% + \protected\def\mkbibseasondateshort#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% + \protected\def\mkbibseasondatelong#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% +} + +\DeclareBibliographyStrings{% + bibliography = {{Bibliografi}{Bibliografi}}, + references = {{Litteraturhenvisninger}{Litteratur}}, + shorthands = {{Forkortelser}{Forkortelser}}, + editor = {{redakt\o r}{red\adddot}}, + editors = {{redakt\o rer}{red\adddot}}, + compiler = {{kompilator}{kompilator}}, + compilers = {{kompilatorer}{kompilatorer}}, + redactor = {{medredakt\o r}{medred\adddot}}, + redactors = {{medredakt\o rer}{medred\adddot}}, + reviser = {{revision}{rev\adddot}}, + revisers = {{revision}{rev\adddot}}, + founder = {{stifter}{stifter}}, + founders = {{stiftere}{stiftere}}, + continuator = {{videref\o rer}{videref\adddot}}, + continuators = {{videref\o rere}{videref\adddot}}, + collaborator = {{medarbejder}{medarb\adddot}}, + collaborators = {{medarbejdere}{medarb\adddot}}, + translator = {{overs\ae tter}{overs\adddot}}, + translators = {{overs\ae ttere}{overs\adddot}}, + commentator = {{kommentator}{komm\adddot}}, + commentators = {{kommentatorer}{komm\adddot}}, + annotator = {{kommentator}{komm\adddot}}, + annotators = {{kommentatorer}{komm\adddot}}, + commentary = {{kommentar}{komm\adddot}}, + annotations = {{annoteringer}{ann\adddot}}, + introduction = {{indledning}{indl\adddot}}, + foreword = {{forord}{forord}}, + afterword = {{efterord}{efterord}}, + editortr = {{redakt\o r og overs\ae tter}% + {red\adddotspace og overs\adddot}}, + editorstr = {{redakt\o rer og overs\ae ttere}% + {red\adddotspace og overs\adddot}}, + editorco = {{redakt\o r og kommentator} + {red\adddotspace og komm\adddot}}, + editorsco = {{redakt\o rer og kommentatorer} + {red\adddotspace og komm\adddot}}, + editoran = {{redakt\o r og kommentator}% + {red\adddotspace og komm\adddot}}, + editorsan = {{redakt\o rer og kommentatorer}% + {red\adddotspace og komm\adddot}}, + editorin = {{redaktion og indledning}% + {red\adddotspace og indl\adddot}}, + editorsin = {{redaktion og indledning}% + {red\adddotspace og indl\adddot}}, + editorfo = {{redaktion og forord}% + {red\adddotspace og forord}}, + editorsfo = {{redaktion og forord}% + {red\adddotspace og forord}}, + editoraf = {{redaktion og efterord}% + {red\adddotspace og efterord}}, + editorsaf = {{redaktion og efterord}% + {red\adddotspace og efterord}}, + editortrco = {{redakt\o r, overs\ae tter og kommentator}% + {red.,\addabbrvspace overs\adddotspace og komm\adddot}}, + editorstrco = {{redakt\o rer, overs\ae ttere og kommentatorer}% + {red.,\addabbrvspace overs\adddotspace og komm\adddot}}, + editortran = {{redakt\o r, overs\ae tter og kommentator}% + {red.,\addabbrvspace overs\adddotspace og komm\adddot}}, + editorstran = {{redakt\o rer, overs\ae ttere og kommentatorer}% + {red.,\addabbrvspace overs\adddotspace og komm\adddot}}, + editortrin = {{redaktion, overs\ae ttelse og indledning}% + {red.,\addabbrvspace overs\adddotspace og indl\adddot}}, + editorstrin = {{redaktion, overs\ae ttelse og indledning}% + {red.,\addabbrvspace overs\adddotspace og indl\adddot}}, + editortrfo = {{redaktion, overs\ae ttelse og forord}% + {red.,\addabbrvspace overs\adddotspace og forord}}, + editorstrfo = {{redaktion, overs\ae ttelse og forord}% + {red.,\addabbrvspace overs\adddotspace og forord}}, + editortraf = {{redaktion, overs\ae ttelse og efterord}% + {red.,\addabbrvspace overs\adddotspace og efterord}}, + editorstraf = {{redaktion, overs\ae ttelse og efterord}% + {red.,\addabbrvspace overs\adddotspace og efterord}}, + editorcoin = {{redaktion, kommentarer og indledning}% + {red.,\addabbrvspace komm\adddotspace og indl\adddot}}, + editorscoin = {{redaktion, kommentarer og indledning}% + {red.,\addabbrvspace komm\adddotspace og indl\adddot}}, + editorcofo = {{redaktion, kommentarer og forord}% + {red.,\addabbrvspace komm\adddotspace og forord}}, + editorscofo = {{redaktion, kommentarer og forord}% + {red.,\addabbrvspace komm\adddotspace og forord}}, + editorcoaf = {{redaktion, kommentarer og efterord}% + {red.,\addabbrvspace komm\adddotspace og efterord}}, + editorscoaf = {{redaktion, kommentarer og efterord}% + {red.,\addabbrvspace komm\adddotspace og efterord}}, + editoranin = {{redaktion, annoteringer og indledning}% + {red.,\addabbrvspace ann\adddotspace og indl\adddot}}, + editorsanin = {{redaktion, \adddotspace og indledning}% + {red.,\addabbrvspace ann\adddotspace og indl\adddot}}, + editoranfo = {{redaktion, \adddotspace og forord}% + {red.,\addabbrvspace ann\adddotspace og forord}}, + editorsanfo = {{redaktion, annoteringer og forord}% + {red.,\addabbrvspace ann\adddotspace og forord}}, + editoranaf = {{redaktion, annoteringer og efterord}% + {red.,\addabbrvspace ann\adddotspace og efterord}}, + editorsanaf = {{redaktion, annoteringer og efterord}% + {red.,\addabbrvspace ann\adddotspace og efterord}}, + editortrcoin = {{redaktion, overs\ae ttelse, kommentarer og indledning}% + {red.,\addabbrvspace overs., komm\adddotspace og indl\adddot}}, + editorstrcoin = {{redaktion, overs\ae ttelse, kommentarer og indledning}% + {red.,\addabbrvspace overs., komm\adddotspace og indl\adddot}}, + editortrcofo = {{redaktion, overs\ae ttelse, kommentarer og forord}% + {red.,\addabbrvspace overs., komm\adddotspace og forord}}, + editorstrcofo = {{redaktion, overs\ae ttelse, kommentarer og forord}% + {red.,\addabbrvspace overs., komm\adddotspace og forord}}, + editortrcoaf = {{redaktion, overs\ae ttelse, kommentarer og efterord}% + {red.,\addabbrvspace overs., komm\adddotspace og efterord}}, + editorstrcoaf = {{redaktion, overs\ae ttelse, kommentarer og efterord}% + {red.,\addabbrvspace overs., komm\adddotspace og efterord}}, + editortranin = {{redaktion, overs\ae ttelse, annoteringer og indledning}% + {red.,\addabbrvspace overs., ann\adddotspace og indl\adddot}}, + editorstranin = {{redaktion, overs\ae ttelse, annoteringer og indledning}% + {red.,\addabbrvspace overs., ann\adddotspace og indl\adddot}}, + editortranfo = {{redaktion, overs\ae ttelse, annoteringer og forord}% + {red.,\addabbrvspace overs., ann\adddotspace og forord}}, + editorstranfo = {{redaktion, overs\ae ttelse, annoteringer og forord}% + {red.,\addabbrvspace overs., ann\adddotspace og forord}}, + editortranaf = {{redaktion, overs\ae ttelse, annoteringer og efterord}% + {red.,\addabbrvspace overs., ann\adddotspace og efterord}}, + editorstranaf = {{redaktion, overs\ae ttelse, annoteringer og efterord}% + {red.,\addabbrvspace overs., ann\adddotspace og efterord}}, + translatorco = {{overs\ae ttelse og kommentarer}% + {overs\adddotspace og komm\adddot}}, + translatorsco = {{overs\ae ttelse og kommentarer}% + {overs\adddotspace og komm\adddot}}, + translatoran = {{overs\ae ttelse og annoteringer}% + {overs\adddotspace og ann\adddot}}, + translatorsan = {{overs\ae ttelse og annoteringer}% + {overs\adddotspace og ann\adddot}}, + translatorin = {{overs\ae ttelse og indledning}% + {overs\adddotspace og indl\adddot}}, + translatorsin = {{overs\ae ttelse og indledning}% + {overs\adddotspace og indl\adddot}}, + translatorfo = {{overs\ae ttelse og forord}% + {overs\adddotspace og forord}}, + translatorsfo = {{overs\ae ttelse og forord}% + {overs\adddotspace og forord}}, + translatoraf = {{overs\ae ttelse og efterord}% + {overs\adddotspace og efterord}}, + translatorsaf = {{overs\ae ttelse og efterord}% + {overs\adddotspace og efterord}}, + translatorcoin = {{overs\ae ttelse, kommentarer og indledning}% + {overs., komm\adddotspace og indl\adddot}}, + translatorscoin = {{overs\ae ttelse, kommentarer og indledning}% + {overs., komm\adddotspace og indl\adddot}}, + translatorcofo = {{overs\ae ttelse, kommentarer og forord}% + {overs., komm\adddotspace og forord}}, + translatorscofo = {{overs\ae ttelse, kommentarer og forord}% + {overs., komm\adddotspace og forord}}, + translatorcoaf = {{overs\ae ttelse, kommentarer og efterord}% + {overs., komm\adddotspace og efterord}}, + translatorscoaf = {{overs\ae ttelse, kommentarer og efterord}% + {overs., komm\adddotspace og efterord}}, + translatoranin = {{overs\ae ttelse, annoteringer og indledning}% + {overs., ann\adddotspace og indl\adddot}}, + translatorsanin = {{overs\ae ttelse, annoteringer og indledning}% + {overs., ann\adddotspace og indl\adddot}}, + translatoranfo = {{overs\ae ttelse, annoteringer og forord}% + {overs., ann\adddotspace og forord}}, + translatorsanfo = {{overs\ae ttelse, annoteringer og forord}% + {overs., ann\adddotspace og forord}}, + translatoranaf = {{overs\ae ttelse, annoteringer og efterord}% + {overs., ann\adddotspace og efterord}}, + translatorsanaf = {{overs\ae ttelse, annoteringer og efterord}% + {overs., ann\adddotspace og efterord}}, + organizer = {{organisator}{org\adddot}}, + organizers = {{organisatorer}{org\adddot}}, + byorganizer = {{organiseret af}{org\adddotspace av}}, + byauthor = {{af}{af}}, + byeditor = {{redigeret af}{red\adddotspace af}}, + bycompiler = {{kompileret af}{komp\adddotspace af}}, + byredactor = {{bearbejdet af}{bearb\adddotspace af}}, + byreviser = {{revideret af}{rev\adddotspace af}}, + byreviewer = {{bed\o mt af}{bed\adddotspace af}}, + byfounder = {{stiftet af}{stiftet af}}, + bycontinuator = {{videref\o rt af}{videref\adddotspace af}}, + bycollaborator = {{i samarbejde med}{i samarb\adddotspace m\adddotspace}}, + bytranslator = {{oversat \lbx@lfromlang\ af}% + {overs\adddot \lbx@sfromlang\ af}}, + bycommentator = {{kommenteret af}{komm\adddot\ af}}, + byannotator = {{annoteret af}{ann\adddot\ af}}, + withcommentator = {{med kommentarer af}{m\adddotspace komm\adddot\ af}}, + withannotator = {{med annoteringer af}{m\adddotspace ann\adddot\ af}}, + withintroduction = {{med indledning af}{m\adddotspace indl\adddot\ af}}, + withforeword = {{med forord af}{m\adddotspace forord af}}, + withafterword = {{med efterord af}{m\adddotspace efterord af}}, + byeditortr = {{redigeret og oversat \lbx@lfromlang\ af}% + {red\adddotspace og overs\adddot \lbx@sfromlang\ af}}, + byeditorco = {{redigeret og kommenteret af}% + {red\adddotspace og komm\adddot\ af}}, + byeditoran = {{redigeret med annoteringer af}% + {red\adddotspace m\adddotspace ann\adddotspace af}}, + byeditorin = {{redigeret med indledning af}% + {red\adddotspace med indl\adddot\ af}}, + byeditorfo = {{redigeret med forord af}% + {red\adddotspace med forord af}}, + byeditoraf = {{redigeret med efterord af}% + {red\adddotspace med efterord af}}, + byeditortrco = {{redigeret, oversat \lbx@lfromlang\ og kommenteret af}% + {red.,\addabbrvspace overs\adddot\ \lbx@sfromlang\ og komm\adddot\ af}}, + byeditortran = {{redigeret, oversat \lbx@lfromlang\ og annoteret af}% + {red.,\addabbrvspace overs\adddot\ \lbx@sfromlang\ og ann\adddot\ af}}, + byeditortrin = {{redigeret, oversat \lbx@lfromlang\ og med indledning af}% + {red.,\addabbrvspace overs\adddot\ \lbx@sfromlang\ og indl\adddot\ af}}, + byeditortrfo = {{redigeret, oversat \lbx@lfromlang\ og med forord af}% + {red.,\addabbrvspace overs\adddot\ \lbx@sfromlang\ og forord af}}, + byeditortraf = {{redigeret, oversat \lbx@lfromlang\ og med efterord af}% + {red.,\addabbrvspace overs\adddot\ \lbx@sfromlang\ og efterord af}}, + byeditorcoin = {{redigeret, kommenteret og med indledning af}% + {red.,\addabbrvspace komm\adddot\ og indl\adddotspace af}}, + byeditorcofo = {{redigeret, kommenteret og med forord af}% + {red.,\addabbrvspace komm\adddot\ og forord af}}, + byeditorcoaf = {{redigeret, kommenteret og med efterord af}% + {red.,\addabbrvspace komm\adddot\ og efterord af}}, + byeditoranin = {{redigeret, annoteret og med indledning af}% + {red.,\addabbrvspace ann\adddot\ og indl\adddot\ af}}, + byeditoranfo = {{redigeret, annoteret og med forord af}% + {red.,\addabbrvspace ann\adddot\ og forord af}}, + byeditoranaf = {{redigeret, annoteret og med efterord af}% + {red.,\addabbrvspace ann\adddot\ og efterord af}}, + byeditortrcoin = {{redigeret, oversat \lbx@lfromlang, kommenteret og med indledning af}% + {red.,\addabbrvspace overs\adddot\ \lbx@sfromlang, komm\adddot\ og indl\adddot\ af}}, + byeditortrcofo = {{redigeret, oversat \lbx@lfromlang, kommenteret og med forord af}% + {red.,\addabbrvspace overs\adddot\ \lbx@sfromlang, komm\adddot\ og forord af}}, + byeditortrcoaf = {{redigeret, oversat \lbx@lfromlang, kommenteret og med efterord af}% + {red.,\addabbrvspace overs\adddot\ \lbx@sfromlang, komm\adddot\ og efterord af}}, + byeditortranin = {{redigeret, oversat \lbx@lfromlang, med annoteringer og indledning af}% + {red.,\addabbrvspace overs\adddot\ \lbx@sfromlang, ann\adddot\ og indl\adddot\ af}}, + byeditortranfo = {{redigeret, oversat \lbx@lfromlang, med annoteringer og forord af}% + {red.,\addabbrvspace overs\adddot\ \lbx@sfromlang, ann\adddot\ og forord af}}, + byeditortranaf = {{redigeret, oversat \lbx@lfromlang, med annoteringer og efterord af}% + {red.,\addabbrvspace overs\adddot\ \lbx@sfromlang, ann\adddot\ og efterord af}}, + bytranslatorco = {{oversat \lbx@lfromlang\ med kommentarer af}% + {overs\adddot\ \lbx@sfromlang\ m\adddotspace komm\adddot\ af}}, + bytranslatoran = {{oversat \lbx@lfromlang\ og annoteret af}% + {overs\adddot\ \lbx@sfromlang\ og ann\adddot\ af}}, + bytranslatorin = {{oversat \lbx@lfromlang\ med indledning af}% + {overs\adddot\ \lbx@sfromlang\ m\adddotspace indl\adddot\ af}}, + bytranslatorfo = {{oversat \lbx@lfromlang\ med forord af}% + {overs\adddot\ \lbx@sfromlang\ m\adddotspace forord af}}, + bytranslatoraf = {{oversat \lbx@lfromlang\ med efterord af}% + {overs\adddot\ \lbx@sfromlang\ m\adddotspace efterord af}}, + bytranslatorcoin = {{oversat \lbx@lfromlang\addspace med kommentarer og indledning af}% + {overs\adddot\ \lbx@sfromlang\addspace m\adddotspace komm\adddotspace og indl\adddotspace af}}, + bytranslatorcofo = {{oversat \lbx@lfromlang\addspace med kommentarer og forord af}% + {overs\adddot\ \lbx@sfromlang\addspace m\adddotspace komm\adddot\ og forord af}}, + bytranslatorcoaf = {{oversat \lbx@lfromlang\addspace med kommentarer og efterord af}% + {overs\adddot\ \lbx@sfromlang\addspace m\adddotspace komm\adddot\ og efterord af}}, + bytranslatoranin = {{oversat \lbx@lfromlang\addspace med annoteringer og indledning af}% + {overs\adddot\ \lbx@sfromlang\addspace m\adddotspace ann\adddot\ og indl\adddot\ af}}, + bytranslatoranfo = {{oversat \lbx@lfromlang\addspace med annoteringer og forord af}% + {overs\adddot\ \lbx@sfromlang\addspace m\adddotspace ann\adddot\ og forord af}}, + bytranslatoranaf = {{oversat \lbx@lfromlang\addspace med annoteringer og efterord af}% + {overs\adddot\ \lbx@sfromlang\addspace m\adddotspace ann\adddot\ og efterord af}}, + and = {{og}{og}}, + andothers = {{med flere}{m.fl\adddot}}, + andmore = {{med mere}{m.m\adddot}}, + volume = {{bind}{bd\adddot}}, + volumes = {{bind}{bd\adddot}}, + involumes = {{i}{i}}, + jourvol = {{\aa rgang}{\aa rg\adddot}}, + jourser = {{r\ae kke}{rk\adddot}}, + book = {{bog}{bog}}, + part = {{del}{del}}, + issue = {{nummer}{nr\adddot}}, + newseries = {{ny r\ae kke}{ny rk\adddot}}, + oldseries = {{gammel r\ae kke}{gl. rk\adddot}}, + edition = {{udgave}{udg\adddot}}, + reprint = {{genoptryk}{genoptr\adddot}}, + reprintof = {{genoptryk af}{genoptr\adddot\ af}}, + reprintas = {{genoptryk under titlen}{genoptr\adddot\ under titlen}}, + reprintfrom = {{genoptryk fra}{genoptr\adddot\ fra}}, + translationof = {{overs\ae ttelse af}{overs\adddot\ af}}, + translationas = {{oversat under titlen}{overs\adddotspace\ under titlen}}, + translationfrom = {{oversat fra}{overs\adddotspace\ fra}}, + reviewof = {{bed\o mmelse af}{bed\adddotspace af}}, + origpubas = {{oprindeligt udgivet som}{opr\adddot\ udg\adddot\ som}}, + origpubin = {{oprindeligt udgivet i}{opr\adddot\ udg\adddot\ i}}, + astitle = {{under titlen}{under titlen}}, + bypublisher = {{af}{af}}, + nodate = {{uden \aa rstal}{u.\aa\adddot}}, + page = {{side}{s\adddot}}, + pages = {{sider}{s\adddot}}, + column = {{spalte}{sp\adddot}}, + columns = {{spalter}{sp\adddot}}, + line = {{linje}{l\adddot}}, + lines = {{linjer}{l\adddot}}, + verse = {{vers}{v\adddot}}, + verses = {{vers}{v\adddot}}, + section = {{paragraf}{par\adddot}}, + sections = {{paragraffer}{par\adddot}}, + paragraph = {{afsnit}{afsn\adddot}}, + paragraphs = {{afsnit}{afsn\adddot}}, + pagetotal = {{side}{s\adddot}}, + pagetotals = {{sider}{s\adddot}}, + columntotal = {{spalte}{sp\adddot}}, + columntotals = {{spalter}{sp\adddot}}, + line = {{linje}{l\adddot}}, + lines = {{linjer}{l\adddot}}, + verse = {{vers}{v\adddot}}, + verses = {{vers}{v\adddot}}, + linetotal = {{linje}{l\adddot}}, + linetotals = {{linje}{l\adddot}}, + versetotal = {{vers}{v\adddot}}, + versetotals = {{vers}{v\adddot}}, + sectiontotal = {{paragraf}{par\adddot}}, + sectiontotals = {{paragraffer}{par\adddot}}, + paragraphtotal = {{afsnit}{afsn\adddot}}, + paragraphtotals = {{afsnit}{afsn\adddot}},% + in = {{i}{i}}, + inseries = {{i r\ae kken}{i rk\adddot}}, + ofseries = {{fra r\ae kken}{fra rk\adddot}}, + number = {{nummer}{nr\adddot}}, +% numbers = {{numre}{nr\adddot}}, + chapter = {{kapitel}{kap\adddot}}, + bathesis = {{bachelorafhandling}{bachelorafh\adddot}}, + mathesis = {{masterafhandling}{masterafh\adddot}}, + phdthesis = {{PhD afhandling}{PhD afh\adddot}}, + candthesis = {{specialeafhandling}{specialeafh\adddot}}, + resreport = {{forskningsrapport}{forskningsrap\adddot}}, + techreport = {{teknisk rapport}{tekn\adddot\ rap\adddot}}, + software = {{software}{software}}, + datacd = {{data-cd}{data-cd}}, + audiocd = {{lyd-cd}{lyd-cd}}, + version = {{version}{vers\adddot}}, + url = {{webadresse}{webadr\adddot}}, + urlfrom = {{tilg\ae ngelig fra}{tilg\adddotspace fra}}, + urlseen = {{bes\o gt}{bes\adddot}}, + inpreparation = {{under udarbejdelse}{under udarb\adddot}}, + submitted = {{indleveret}{indlev\adddot}}, + forthcoming = {{under udgivelse}{under udgiv\adddot}}, + inpress = {{i trykken}{i trykken}}, + prepublished = {{pr\ae publiceret}{pr\ae publ\adddot}}, + citedas = {{herefter citeret som}{herefter cit\adddot\ som}}, + thiscite = {{her}{her}}, + seenote = {{se note}{se nt\adddot}}, + quotedin = {{citeret efter}{cit\adddot\ efter}}, + idem = {{den samme}{d\adddot s\adddot}}, + idemsf = {{den samme}{d\adddot s\adddot}}, + idemsm = {{den samme}{d\adddot s\adddot}}, + idemsn = {{det samme}{d\adddot s\adddot}}, + idempf = {{de samme}{d\adddot s\adddot}}, + idempm = {{de samme}{d\adddot s\adddot}}, + idempn = {{de samme}{d\adddot s\adddot}}, + idempp = {{de samme}{d\adddot s\adddot}}, + ibidem = {{ibidem}{ibid\adddot}}, + opcit = {{op.\adddotspace cit\adddot}{op.\adddotspace cit\adddot}}, + loccit = {{loc.\adddotspace cit\adddot}{loc.\adddotspace cit\adddot}}, + confer = {{j\ae vnf\o r}{jvf\adddot}}, + sequens = {{f\adddot}{f\adddot}}, + sequentes = {{ff\adddot}{ff\adddot}}, + passim = {{passim}{pass\adddot}}, + see = {{se}{s\adddot}}, + seealso = {{se ogs\aa}{se ogs\aa}}, + backrefpage = {{se side}{se s\adddot}}, + backrefpages = {{se siderne}{se s\adddot}}, + january = {{januar}{jan\adddot}}, + february = {{februar}{feb\adddot}}, + march = {{marts}{mar\adddot}}, + april = {{april}{apr\adddot}}, + may = {{maj}{maj}}, + june = {{juni}{jun\adddot}}, + july = {{juli}{jul\adddot}}, + august = {{august}{aug\adddot}}, + september = {{september}{sep\adddot}}, + october = {{oktober}{okt\adddot}}, + november = {{november}{nov\adddot}}, + december = {{december}{dec\adddot}}, + langamerican = {{amerikansk-engelsk}{amerikansk-engelsk}}, + langbrazilian = {{brasiliansk-portugisisk}{brasiliansk-portugisisk}}, + langbulgarian = {{bulgarsk}{bulgarsk}}, + langcatalan = {{katalansk}{katalansk}}, + langcroatian = {{kroatisk}{kroatisk}}, + langczech = {{tjekkisk}{tjekkisk}}, + langdanish = {{dansk}{dansk}}, + langdutch = {{nederlandsk}{nederlandsk}}, + langenglish = {{engelsk}{engelsk}}, + langestonian = {{estisk}{estisk}}, + langfinnish = {{finsk}{finsk}}, + langfrench = {{fransk}{fransk}}, + langgalician = {{galicisk}{galicisk}}, + langgerman = {{tysk}{tysk}}, + langgreek = {{gr\ae sk}{gr\ae sk}}, + langhungarian = {{ungarsk}{ungarsk}}, + langitalian = {{italiensk}{italiensk}}, + langjapanese = {{japansk}{japansk}}, + langlatin = {{latin}{latin}}, + langlatvian = {{lettisk}{lettisk}}, + langnorwegian = {{norsk}{norsk}}, + langpolish = {{polsk}{polsk}}, + langportuguese = {{portugisisk}{portugisisk}}, + langrussian = {{russisk}{russisk}}, + langslovak = {{slovakisk}{slovakisk}}, + langslovene = {{slovensk}{slovensk}}, + langspanish = {{spansk}{spansk}}, + langswedish = {{svensk}{svensk}}, + langukrainian = {{ukrainsk}{ukrainsk}}, + fromamerican = {{fra amerikansk-engelsk}{fra amerikansk-engelsk}}, + frombrazilian = {{fra brasiliansk-portugisisk}{fra brasiliansk-portugisisk}}, + frombulgarian = {{fra bulgarsk}{fra bulgarsk}}, + fromcatalan = {{fra katalansk}{fra katalansk}}, + fromcroatian = {{fra kroatisk}{fra kroatisk}}, + fromczech = {{fra tjekkisk}{fra tjekkisk}}, + fromdanish = {{fra dansk}{fra dansk}}, + fromdutch = {{fra nederlandsk}{fra nederlandsk}}, + fromenglish = {{fra engelsk}{fra engelsk}}, + fromestonian = {{fra estisk}{fra estisk}}, + fromfinnish = {{fra finsk}{fra finsk}}, + fromfrench = {{fra fransk}{fra fransk}}, + fromgalician = {{fra galicisk}{fra galicisk}}, + fromgerman = {{fra tysk}{fra tysk}}, + fromgreek = {{fra gr\ae sk}{fra gr\ae sk}}, + fromhungarian = {{fra ungarsk}{fra ungarsk}}, + fromitalian = {{fra italiensk}{fra italiensk}}, + fromjapanese = {{fra japansk}{fra japansk}}, + fromlatin = {{fra latin}{fra latin}}, + fromlatvian = {{fra lettisk}{fra lettisk}}, + fromnorwegian = {{fra norsk}{fra norsk}}, + frompolish = {{fra polsk}{fra polsk}}, + fromportuguese = {{fra portugisisk}{fra portugisisk}}, + fromrussian = {{fra russisk}{fra russisk}}, + fromslovak = {{fra slovakisk}{fra slovakisk}}, + fromslovene = {{fra slovensk}{fra slovensk}}, + fromspanish = {{fra spansk}{fra spansk}}, + fromswedish = {{fra svensk}{fra svensk}}, + fromukrainian = {{fra ukrainsk}{fra ukrainsk}}, + countryde = {{Tyskland}{DE}}, + countryeu = {{Europ\ae iske Union}{EU}}, + countryep = {{Europ\ae iske Union}{EP}}, + countryfr = {{Frankrig}{FR}}, + countryuk = {{Storbritannien}{GB}}, + countryus = {{USA}{US}}, + patent = {{patent}{pat\adddot}}, + patentde = {{tysk patent}{tysk pat\adddot}}, + patenteu = {{europ\ae isk patent}{eur\adddot\ pat\adddot}}, + patentfr = {{fransk patent}{fransk pat\adddot}}, + patentuk = {{britisk patent}{brit\adddot\ pat\adddot}}, + patentus = {{amerikansk patent}{am\adddot\ pat\adddot}}, + patreq = {{patentans\o gning}{pat\adddot\ ans\o gn\adddot}}, + patreqde = {{tysk patentans\o gning}{tysk pat\adddot\ ans\o gn\adddot}}, + patreqeu = {{europ\ae isk patentans\o gning}{eur\adddot\ pat\adddot\ ans\o gn\adddot}}, + patreqfr = {{fransk patentans\o gning}{fransk pat\adddot\ ans\o gn\adddot}}, + patrequk = {{britisk patentans\o gning}{brit\adddot\ pat\adddot\ ans\o gn\adddot}}, + patrequs = {{amerikansk patentans\o gning}{am\adddot\ pat\adddot\ ans\o gn\adddot}}, + file = {{fil}{fil}}, + library = {{bibliotek}{bibl\adddot}}, + abstract = {{resum\'{e}}{resum\'{e}}}, + annotation = {{kommentarer}{komm\adddot}}, + commonera = {{efter vor tidsregning}{e\adddot v\adddot t\adddot}}, + beforecommonera = {{f\o r vor tidsregning}{f\adddot v\adddot t\adddot}}, + annodomini = {{efter Kristi f\o dsel}{e\adddot Kr\adddot}}, + beforechrist = {{f\o r Kristi f\o dsel}{f\adddot Kr\adddot}}, + circa = {{cirka}{ca\adddot}}, + spring = {{for\aa r}{for\aa r}}, + summer = {{sommer}{sommer}}, + autumn = {{efter\aa r}{efter\aa r}}, + winter = {{vinter}{vinter}}, + am = {{formiddag}{form\adddot}}, + pm = {{eftermiddag}{efterm\adddot}}, +} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/lbx/dutch.lbx b/macros/latex/contrib/biblatex/latex/lbx/dutch.lbx new file mode 100644 index 0000000000..6d6822fd72 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/lbx/dutch.lbx @@ -0,0 +1,546 @@ +\ProvidesFile{dutch.lbx} +[\abx@lbxid] + +% Changes: +% 2010-10-31 Update by Alexander van Loon +% 2011-08-27 Update by Pieter Belmans + +\DeclareRedundantLanguages{dutch}{dutch} + +\DeclareBibliographyExtras{% + \protected\def\bibrangedash{% + \textendash\penalty\hyphenpenalty}% breakable dash + \let\finalandcomma=\empty + \let\finalandsemicolon=\empty + % both ordinal numbers are valid, the first is the most basic: 1e, 2e, 19e + % whereas the second is capable of typesetting 1ste, 2de, 21ste, 102de + % \protected\def\mkbibordinal#1{\stripzeros{#1}e}% + \protected\def\mkbibordinal#1{% + \begingroup + \@tempcnta0#1\relax\number\@tempcnta + \@whilenum\@tempcnta>100\do{\advance\@tempcnta-100\relax}% + \ifnum\@tempcnta>19 + ste% + \else + \ifnum\@tempcnta=1 + ste% + \else + \ifnum\@tempcnta=8 ste\else de\fi + \fi + \fi + \endgroup}% + \protected\def\mkbibmascord{\mkbibordinal}% + \protected\def\mkbibfemord{\mkbibordinal}% + \protected\def\mkbibneutord{\mkbibordinal}% + \protected\def\mkbibdatelong#1#2#3{% + \iffieldundef{#3} + {} + {\stripzeros{\thefield{#3}}% + \iffieldundef{#2}{}{\nobreakspace}}% + \iffieldundef{#2} + {} + {\mkbibmonth{\thefield{#2}}% + \iffieldundef{#1}{}{\space}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}% + \protected\def\mkbibdateshort#1#2#3{% + \iffieldundef{#3} + {} + {\mkdayzeros{\thefield{#3}}% + \iffieldundef{#2}{}{\mbox{-}}}% + \iffieldundef{#2} + {} + {\mkmonthzeros{\thefield{#2}}% + \iffieldundef{#1}{}{\mbox{-}}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}% + \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{% + \iffieldundef{#1}{} + {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}% + \iffieldundef{#2}{} + {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}% + \iffieldundef{#3}{} + {\printtext{\mktimezeros{\thefield{#3}}}}% + \setunit{}% + \iffieldundef{#4}{} + {\bibtimezonesep + \mkbibtimezone{\thefield{#4}}}}% + \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{% + \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep + \forcezerosmdt{\thefield{#2}}% + \iffieldundef{#3}{} + {\bibtimesep + \forcezerosmdt{\thefield{#3}}}% + \space + \ifnumless{\thefield{#1}}{12} + {\bibstring{am}} + {\bibstring{pm}}% + \iffieldundef{#4}{} + {\space\bibtimezonesep + \parentext{\mkbibtimezone{\thefield{#4}}}}}% + \protected\def\mkbibseasondateshort#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% + \protected\def\mkbibseasondatelong#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% +} + +\DeclareBibliographyStrings{% + bibliography = {{Bibliografie}{Bibliografie}}, + references = {{Referenties}{Referenties}}, + shorthands = {{Lijst van afkortingen}{Afkortingen}}, + editor = {{redacteur}{red\adddot}}, + editors = {{redacteurs}{red\adddot}}, + compiler = {{samensteller}{samenst\adddot}}, + compilers = {{samenstellers}{samenst\adddot}}, + founder = {{oprichter}{opr\adddot}}, + founders = {{oprichters}{opr\adddot}}, + continuator = {{opvolger}{opv\adddot}}, + continuators = {{opvolgers}{opv\adddot}}, + redactor = {{redacteur}{red\adddot}}, + redactors = {{redacteuren}{red\adddot}}, + reviser = {{revisor}{rev\adddot}}, + revisers = {{revisors}{rev\adddot}}, + collaborator = {{medewerker}{med\adddot}}, + collaborators = {{medewerkers}{med\adddot}}, + translator = {{vertaler}{vert\adddot}}, + translators = {{vertalers}{vert\adddot}}, + commentator = {{commentator}{comm\adddot}}, + commentators = {{commentatoren}{comm\adddot}}, + annotator = {{annotator}{annot\adddot}}, + annotators = {{annotatoren}{annot\adddot}}, + editortr = {{redacteur en vertaler}% + {red\adddotspace en vert\adddot}}, + editorstr = {{redacteuren en vertalers}% + {red\adddotspace en vert\adddot}}, + editorco = {{redacteur en commentator}% + {red\adddotspace en comm\adddot}}, + editorsco = {{redacteuren en commentatoren}% + {red\adddotspace en comm\adddot}}, + editoran = {{redacteur en annotator}% + {red\adddotspace en annot\adddot}}, + editorsan = {{redacteuren en annotatoren}% + {red\adddotspace en annot\adddot}}, + editorin = {{redactie en inleiding}% + {red\adddotspace en inl\adddot}}, + editorsin = {{redacteuren en inleiding}% + {red\adddotspace en inl\adddot}}, + editorfo = {{redacteur en voorwoord}% + {red\adddotspace en voorw\adddot}}, + editorsfo = {{redacteuren en voorwoord}% + {red\adddotspace en voorw\adddot}}, + editoraf = {{redacteur en nawoord}% + {red\adddotspace en naw\adddot}}, + editorsaf = {{redacteuren en nawoord}% + {red\adddotspace en naw\adddot}}, + editortrco = {{redacteur, vertaler en commentator}% + {red.,\addabbrvspace vert\adddotspace en comm\adddot}}, + editorstrco = {{redacteuren, vertalers en commentatoren}% + {red.,\addabbrvspace vert\adddotspace en comm\adddot}}, + editortran = {{redacteur, vertaler en annotator}% + {red.,\addabbrvspace vert\adddotspace en annot\adddot}}, + editorstran = {{redacteur, vertalers en annotatoren}% + {red.,\addabbrvspace vert\adddotspace en annot\adddot}}, + editortrin = {{redacteur, vertaler en inleiding}% + {red.,\addabbrvspace vert\adddotspace en inl\adddot}}, + editorstrin = {{redacteuren, vertalers en inleiding}% + {red.,\addabbrvspace vert\adddotspace en inl\adddot}}, + editortrfo = {{redacteur, vertaler en voorwoord}% + {red.,\addabbrvspace vert\adddotspace en voorw\adddot}}, + editorstrfo = {{redacteuren, vertalers en voorwoord}% + {red.,\addabbrvspace vert\adddotspace en voorw\adddot}}, + editortraf = {{redacteur, vertaler en nawoord}% + {red.,\addabbrvspace vert\adddotspace en naw\adddot}}, + editorstraf = {{redacteuren, vertalers en nawoord}% + {red.,\addabbrvspace vert\adddotspace en naw\adddot}}, + editorcoin = {{redacteur, commentator en inleiding}% + {red.,\addabbrvspace comm\adddotspace en inl\adddot}}, + editorscoin = {{redacteuren, commentatoren en inleiding}% + {red.,\addabbrvspace comm\adddotspace en inl\adddot}}, + editorcofo = {{redacteur, commentator en voorwoord}% + {red.,\addabbrvspace comm\adddotspace en voorw\adddot}}, + editorscofo = {{redacteuren, commentatoren en voorwoord}% + {red.,\addabbrvspace comm\adddotspace en voorw\adddot}}, + editorcoaf = {{redacteur, commentator en nawoord}% + {red.,\addabbrvspace comm\adddotspace en naw\adddot}}, + editorscoaf = {{redacteuren, commentatoren en nawoord}% + {red.,\addabbrvspace comm\adddotspace en naw\adddot}}, + editoranin = {{redacteur, annotator en inleiding}% + {red.,\addabbrvspace annot\adddotspace en inl\adddot}}, + editorsanin = {{redacteuren, annotatoren en inleiding}% + {red.,\addabbrvspace annot\adddotspace en inl\adddot}}, + editoranfo = {{redacteur, annotator en voorwoord}% + {red.,\addabbrvspace annot\adddotspace en voorw\adddot}}, + editorsanfo = {{redacteuren, annotatoren en voorwoord}% + {red.,\addabbrvspace annot\adddotspace en voorw\adddot}}, + editoranaf = {{redacteur, annotator en nawoord}% + {red.,\addabbrvspace annot\adddotspace en nawoord\adddot}}, + editorsanaf = {{redacteuren, annotatoren en nawoord}% + {red.,\addabbrvspace annot\adddotspace en naw\adddot}}, + editortrcoin = {{redacteur, vertaler, commentator en inleiding}% + {red.,\addabbrvspace vert., comm\adddotspace en inl\adddot}}, + editorstrcoin = {{redacteuren, vertalers, commentatoren en inleiding}% + {red.,\addabbrvspace vert., comm\adddotspace en inl\adddot}}, + editortrcofo = {{redacteur, vertaling, commentator en voorwoord}% + {red.,\addabbrvspace vert., comm\adddotspace en voorw\adddot}}, + editorstrcofo = {{redacteuren, vertalers, commentatoren en voorwoord}% + {red.,\addabbrvspace vert., comm\adddotspace en voorw\adddot}}, + editortrcoaf = {{redacteur, vertaler, commentator en nawoord}% + {red.,\addabbrvspace vert., comm\adddotspace en naw\adddot}}, + editorstrcoaf = {{redacteuren, vertalers, commentators en nawoord}% + {red.,\addabbrvspace vert., comm\adddotspace en naw\adddot}}, + editortranin = {{redacteur, vertaler, annotator en inleiding}% + {red.,\addabbrvspace vert., annot\adddotspace en inl\adddot}}, + editorstranin = {{redacteuren, vertalers, annotatoren en inleiding}% + {red.,\addabbrvspace vert., annot\adddotspace en inl\adddot}}, + editortranfo = {{redacteur, vertaler, annotator en voorwoord}% + {red.,\addabbrvspace vert., annot\adddotspace en voorw\adddot}}, + editorstranfo = {{redacteuren, vertalers, annotatoren en voorwoord}% + {red.,\addabbrvspace vert., annot\adddotspace en voorw\adddot}}, + editortranaf = {{redacteur, vertaler, annotator en nawoord}% + {red.,\addabbrvspace vert., annot\adddotspace en naw\adddot}}, + editorstranaf = {{redacteuren, vertalers, annotatoren en nawoord}% + {red.,\addabbrvspace vert., annot\adddotspace en naw\adddot}}, + translatorco = {{vertaler en commentator}% + {vert\adddotspace en comm\adddot}}, + translatorsco = {{vertalers en commentatoren}% + {vert\adddotspace en comm\adddot}}, + translatoran = {{vertaler en annotator}% + {vert\adddotspace en annot\adddot}}, + translatorsan = {{vertalers en annotatoren}% + {vert\adddotspace en annot\adddot}}, + translatorin = {{vertaling en inleiding}% + {vert\adddotspace en inl\adddot}}, + translatorsin = {{vertaling en inleiding}% + {vert\adddotspace en inl\adddot}}, + translatorfo = {{vertaling en voorwoord}% + {vert\adddotspace en voorw\adddot}}, + translatorsfo = {{vertaling en voorwoord}% + {vert\adddotspace en voorw\adddot}}, + translatoraf = {{vertaling en nawoord}% + {vert\adddotspace en naw\adddot}}, + translatorsaf = {{vertaling en nawoord}% + {vert\adddotspace en naw\adddot}}, + translatorcoin = {{vertaling, commentaar en inleiding}% + {vert., comm\adddotspace en inl\adddot}}, + translatorscoin = {{vertaling, commentaar en inleiding}% + {vert., comm\adddotspace en inl\adddot}}, + translatorcofo = {{vertaling, commentaar en voorwoord}% + {vert., comm\adddotspace en voorwoord\adddot}}, + translatorscofo = {{vertaling, commentaar en voorwoord}% + {vert., comm\adddotspace en voorw\adddot}}, + translatorcoaf = {{vertaling, commentaar en nawoord}% + {vert., comm\adddotspace en naw\adddot}}, + translatorscoaf = {{vertaling, commentaar en nawoord}% + {vert., comm\adddotspace en naw\adddot}}, + translatoranin = {{vertaling, annotaties en inleiding}% + {vert., annot\adddotspace en inl\adddot}}, + translatorsanin = {{vertaling, annotaties en inleiding}% + {vert., annot\adddotspace en inl\adddot}}, + translatoranfo = {{vertaling, annotaties en voorwoord}% + {vert., annot\adddotspace en voorw\adddot}}, + translatorsanfo = {{vertaling, annotaties en voorwoord}% + {vert., annot\adddotspace en voorw\adddot}}, + translatoranaf = {{vertaling, annotaties en nawoord}% + {vert., annot\adddotspace en naw\adddot}}, + translatorsanaf = {{vertaling, annotaties en nawoord}% + {vert., annot\adddotspace en naw\adddot}}, +% organizer = {{}{}},% FIXME: missing +% organizers = {{}{}},% FIXME: missing +% byorganizer = {{}{}},% FIXME: missing + byauthor = {{door}{door}}, + byeditor = {{geredigeerd door}{red\adddot\addabbrvspace door}}, + bycompiler = {{samengesteld door}{sam\adddot\addabbrvspace door}}, + byfounder = {{opgericht door}{opger\adddot\addabbrvspace door}}, + bycontinuator = {{opgevolgd door}{opgev\adddot\addabbrvspace door}}, + byredactor = {{geredigeerd door}{red\adddotspace door}}, + byreviser = {{gereviseerd door}{gerevis\adddot\addabbrvspace door}}, + byreviewer = {{nagekeken door}{nagek\adddot\addabbrvspace door}}, + bycollaborator = {{met medewerking van}{m\adddot m\adddot v}}, + bytranslator = {{vertaald \lbx@lfromlang\ door}{vert\adddotspace \lbx@lfromlang\ door}}, + bycommentator = {{becommentarieerd door}{comm\adddotspace door}}, + byannotator = {{geannoteerd door}{annot\adddotspace door}}, + byeditortr = {{geredigeerd en vertaald \lbx@lfromlang\ door}% + {red\adddotspace en vert\adddotspace \lbx@sfromlang\ door}}, + byeditorco = {{geredigeerd en becommentarieerd door}% + {red\adddotspace en comm\adddotspace door}}, + byeditoran = {{geredigeerd en geannoteerd door}% + {red\adddotspace en annot\adddotspace door}}, + byeditorin = {{geredigeerd, met een inleiding, van}% + {red., met een inl., van}}, + byeditorfo = {{geredigeerd, met een voorwoord, van}% + {red., met een voorw., van}}, + byeditoraf = {{geredigeerd, met een nawoord, van}% + {red., met een naw., van}}, + byeditortrco = {{geredigeerd, vertaald \lbx@lfromlang\ en becommentarieerd door}% + {red., vert\adddotspace \lbx@sfromlang\ en comm\adddotspace door}}, + byeditortran = {{geredigeerd, vertaald \lbx@lfromlang\ en geannoteerd door}% + {red., vert\adddotspace \lbx@sfromlang\ en annot\adddotspace door}}, + byeditortrin = {{geredigeerd en vertaald \lbx@lfromlang, met een inleiding, door}% + {red\adddotspace en vert. \lbx@sfromlang, met een inl., door}}, + byeditortrfo = {{geredigeerd en vertaald \lbx@lfromlang, met een voorwoord, door}% + {red\adddotspace en vert. \lbx@sfromlang, met een voorw., door}}, + byeditortraf = {{geredigeerd en vertaald \lbx@lfromlang, met een nawoord, door}% + {red\adddotspace en vert. \lbx@sfromlang, met een naw., door}}, + byeditorcoin = {{geredigeerd en becommentarieerd, met een inleiding, door}% + {red\adddotspace en comm., met een inl., door}}, + byeditorcofo = {{geredigeerd en becommentarieerd, met een voorwoord, door}% + {red\adddotspace en comm., met een voorw., door}}, + byeditorcoaf = {{geredigeerd en becommentarieerd, met een nawoord, door}% + {red\adddotspace en comm., met een naw., door}}, + byeditoranin = {{geredigeerd en geannoteerd, met een inleiding, door}% + {red\adddotspace en annot., met een inl., door}}, + byeditoranfo = {{geredigeerd en geannoteerd, met een voorwoord, door}% + {red\adddotspace en annot., met een voorw., door}}, + byeditoranaf = {{geredigeerd en geannoteerd, met een nawoord, door}% + {red\adddotspace en annot., met een naw., door}}, + byeditortrcoin = {{geredigeerd, vertaald \lbx@lfromlang\ en becommentarieerd, met een inleiding, door}% + {red., vert\adddotspace \lbx@sfromlang\ en comm., met een inl., door}}, + byeditortrcofo = {{geredigeerd, vertaald \lbx@lfromlang\ en becommentarieerd, met een voorwoord, door}% + {red., vert\adddotspace \lbx@sfromlang\ en comm., met een voorw., door}}, + byeditortrcoaf = {{geredigeerd, vertaald \lbx@lfromlang\ en becommentarieerd, met een nawoord, door}% + {red., vert\adddotspace \lbx@sfromlang\ en comm., met een naw., door}}, + byeditortranin = {{geredigeerd, vertaald \lbx@lfromlang\ en geannoteerd, met een inleiding, door}% + {red., vert\adddotspace \lbx@sfromlang\ en annot., met een inl., door}}, + byeditortranfo = {{geredigeerd, vertaald \lbx@lfromlang\ en geannoteerd, met een voorwoord, door}% + {red., vert\adddotspace \lbx@sfromlang\ en annot., met een voorw., door}}, + byeditortranaf = {{geredigeerd, vertaald \lbx@lfromlang\ en geannoteerd, met een nawoord, door}% + {red., vert\adddotspace \lbx@sfromlang\ en annot., met een naw., door}}, + bytranslatorco = {{vertaald \lbx@lfromlang\ en becommentarieerd door}% + {vert\adddotspace \lbx@sfromlang\ en comm\adddotspace door}}, + bytranslatoran = {{vertaald \lbx@lfromlang\ en geannoteerd door}% + {vert\adddotspace \lbx@sfromlang\ en annot.\adddotspace door}}, + bytranslatorin = {{vertaald \lbx@lfromlang, met een inleiding, door}% + {vert. \lbx@sfromlang, met een inl., door}}, + bytranslatorfo = {{vertaald \lbx@lfromlang, met een voorwoord, door}% + {vert. \lbx@sfromlang, met een voorw., door}}, + bytranslatoraf = {{vertaald \lbx@lfromlang, met een nawoord, door}% + {vert. \lbx@sfromlang, met een naw., door}}, + bytranslatorcoin = {{vertaald \lbx@lfromlang\ en becommentarieerd, met een inleiding, door}% + {vert\adddotspace \lbx@sfromlang\ en comm., met een inl., door}}, + bytranslatorcofo = {{vertaald \lbx@lfromlang\ en becommentarieerd, met een voorwoord, door}% + {vert\adddotspace \lbx@sfromlang\ en comm., met een voorw., door}}, + bytranslatorcoaf = {{vertaald \lbx@lfromlang\ en becommentarieerd, met een nawoord, door}% + {vert\adddotspace \lbx@sfromlang\ en comm., met een naw., door}}, + bytranslatoranin = {{vertaald \lbx@lfromlang\ en geannoteerd, met een inleiding, door}% + {vert\adddotspace \lbx@sfromlang\ en annot., met een inl., door}}, + bytranslatoranfo = {{vertaald \lbx@lfromlang\ en geannoteerd, met een voorwoord, door}% + {vert\adddotspace \lbx@sfromlang\ en annot., met een voorw., door}}, + bytranslatoranaf = {{vertaald \lbx@lfromlang\ en geannoteerd, met een nawoord, door}% + {vert\adddotspace \lbx@sfromlang\ en annot., met een naw., door}}, + withcommentator = {{met een commentaar van}{met een comm\adddotspace van}}, + withannotator = {{met annotaties door}{met annot\adddotspace door}}, + withintroduction = {{met een inleiding van}{met een inl\adddotspace van}}, + withforeword = {{met een voorwoord van}{met een voorw\adddotspace van}}, + withafterword = {{met een nawoord van}{met een naw\adddotspace van}}, + commentary = {{commentaar}{comm\adddot}}, + annotations = {{annotaties}{annot\adddot}}, + introduction = {{inleiding}{inl\adddot}}, + foreword = {{voorwoord}{voorw\adddot}}, + afterword = {{nawoord}{naw\adddot}}, + volume = {{deel}{deel}}, + volumes = {{delen}{delen}}, + jourvol = {{jaargang}{jrg\adddot}}, + jourser = {{reeks}{reeks}}, + book = {{boek}{boek}}, + part = {{deel}{deel}}, + issue = {{nummer}{nr\adddot}}, + newseries = {{nieuwe reeks}{nieuwe reeks}}, + oldseries = {{oude reeks}{oude reeks}}, + edition = {{editie}{ed\adddot}}, + in = {{in}{in}}, + inseries = {{in}{in}}, + ofseries = {{van}{van}}, + number = {{nummer}{nr\adddot}}, + chapter = {{hoofdstuk}{hfdstk\adddot}}, + version = {{versie}{versie}}, + reprint = {{herdruk}{herdr\adddot}}, + reprintof = {{herdruk van}{herdr\adddotspace van}}, + reprintas = {{herdrukt als}{herdr\adddotspace als}}, + reprintfrom = {{herdrukt uit}{herdr\adddotspace uit}}, + translationof = {{vertaling van}{vert\adddotspace van}}, + translationas = {{vertaald als}{vert\adddotspace als}}, + translationfrom = {{vertaald van}{vert\adddotspace van}}, + reviewof = {{bespreking van}{bespr\adddotspace van}}, + origpubas = {{oorspronkelijk gepubliceerd als}{oorspr\adddotspace gep\adddotspace als}}, + origpubin = {{oorspronkelijk gepubliceerd in}{oorspr\adddotspace gep\adddotspace in}}, + astitle = {{als}{als}},% FIXME: check + bypublisher = {{door}{door}},% FIXME: check + inpreparation = {{in voorbereiding}{in voorbereiding}}, + submitted = {{ingediend}{ingedied}}, +% forthcoming = {{onderweg}{onderweg}},% FIXME: check + inpress = {{in druk}{in druk}}, + prepublished = {{voorpublicatie}{voorpublicatie}}, + nodate = {{geen\space datum}{{}g\adddot d\adddot}}, + page = {{pagina}{p\adddot}}, + pages = {{pagina's}{p\adddot}}, + column = {{kolom}{kol\adddot}}, + columns = {{kolommen}{kol\adddot}}, + section = {{sectie}{\S}}, + sections = {{secties}{\S}}, + paragraph = {{paragraaf}{par\adddot}}, + paragraphs = {{paragrafen}{par\adddot}}, + verse = {{vers}{v\adddot}}, + verses = {{verzen}{v\adddot}}, + line = {{regel}{r\adddot}}, + lines = {{regels}{r\adddot}}, + pagetotal = {{pagina}{p\adddot}}, + pagetotals = {{pagina's}{p\adddot}}, + columntotal = {{kolom}{kol\adddot}}, + columntotals = {{kolommen}{kol\adddot}}, + linetotal = {{regel}{r\adddot}}, + linetotals = {{regels}{r\adddot}}, + versetotal = {{vers}{v\adddot}}, + versetotals = {{verzen}{v\adddot}}, + sectiontotal = {{sectie}{\S}}, + sectiontotals = {{secties}{\S}}, + paragraphtotal = {{paragraaf}{par\adddot}}, + paragraphtotals = {{paragrafen}{par\adddot}}, +% bathesis = {{}{}},% FIXME: missing + mathesis = {{masterscriptie}{masterscriptie}}, + phdthesis = {{proefschrift}{proefschrift}}, + resreport = {{onderzoeksrapport}{onderzoeksrap\adddot}}, + techreport = {{technisch rapport}{tech\adddotspace rap\adddot}}, + software = {{computersoftware}{computersoft\adddot}}, + datacd = {{cd-rom}{cd-rom}}, + audiocd = {{audio-cd}{audio-cd}}, + and = {{en}{en}}, + andothers = {{en andere}{e\adddot a\adddot}}, + andmore = {{en andere}{e\adddot a\adddot}}, + url = {{adres}{adres}}, + urlfrom = {{beschikbaar op}{beschikbaar op}}, + urlseen = {{bezocht op}{bezocht op}}, + file = {{bestand}{bestand}}, + library = {{bibliotheek}{bibliotheek}}, + abstract = {{samenvatting}{samenvatting}}, + annotation = {{annotaties}{annotaties}}, + idem = {{idem}{idem}}, + idemsm = {{idem}{idem}}, + idemsf = {{eadem}{eadem}}, + idemsn = {{idem}{idem}}, + idempm = {{eidem}{eidem}}, + idempf = {{eaedem}{eaedem}}, + idempn = {{eadem}{eadem}}, + idempp = {{eidem}{eidem}}, + ibidem = {{ibidem}{ibid\adddot}}, + opcit = {{op\adddotspace cit\adddot}{op\adddotspace cit\adddot}}, + loccit = {{loc\adddotspace cit\adddot}{loc\adddotspace cit\adddot}}, + confer = {{cf\adddot}{cf\adddot}}, + sequens = {{sq\adddot}{sq\adddot}}, + sequentes = {{sqq\adddot}{sqq\adddot}}, + passim = {{passim}{pass\adddot}}, + see = {{zie}{zie}}, + seealso = {{zie ook}{zie ook}}, + seenote = {{zie voetnoot}{zie v\adddot}}, + backrefpage = {{zie pagina}{zie pag\adddot}}, + backrefpages = {{zie pagina's}{zie pag\adddot}}, + quotedin = {{geciteerd in}{cit\adddotspace in}}, + citedas = {{verder geciteerd als}{verder geciteerd als}}, + thiscite = {{met name}{m.n\adddot}}, + january = {{januari}{jan}}, + february = {{februari}{feb}}, + march = {{maart}{mrt}}, + april = {{april}{apr}}, + may = {{mei}{mei}}, + june = {{juni}{jun}}, + july = {{juli}{jul}}, + august = {{augustus}{aug}}, + september = {{september}{sep}}, + october = {{oktober}{okt}}, + november = {{november}{nov}}, + december = {{december}{dec}}, + langamerican = {{Amerikaans Engels}{Amerikaans Engels}}, + langbrazilian = {{Braziliaans Portugeens}{Braziliaans Portugees}}, + langbulgarian = {{Bulgaars}{Bulgaars}}, + langcatalan = {{Catalaans}{Catalaans}}, + langcroatian = {{Kroatisch}{Kroatisch}}, + langczech = {{Tsjechisch}{Tsjechisch}}, + langdanish = {{Deens}{Deens}}, + langdutch = {{Nederlands}{Nederlands}}, + langenglish = {{Engels}{Engels}}, + langestonian = {{Estisch}{Estisch}}, + langfinnish = {{Fins}{Fins}}, + langfrench = {{Frans}{Frans}}, + langgalician = {{Galicisch}{Galicisch}}, + langgerman = {{Duits}{Duits}}, + langgreek = {{Grieks}{Grieks}}, + langhungarian = {{Hongaars}{Hongaars}}, + langitalian = {{Italiaans}{Italiaans}}, + langjapanese = {{Japaans}{Japaans}}, + langlatin = {{Latijn}{Latijn}}, + langlatvian = {{Lets}{Lets}}, + langnorwegian = {{Noors}{Noors}}, + langpolish = {{Pools}{Pools}}, + langportuguese = {{Portugees}{Portugees}}, + langrussian = {{Russisch}{Russisch}}, + langslovak = {{Slowaaks}{Slowaaks}},% FIXME: or Slovaaks + langslovene = {{Sloveens}{Sloveens}}, + langspanish = {{Spaans}{Spaans}}, + langswedish = {{Zweeds}{Zweeds}}, + langukrainian = {{Oekra\"iens}{Oekra\"iens}}, + fromamerican = {{uit het Amerikaans Engels}{uit het Amerikaans Engels}}, + frombrazilian = {{uit het Braziliaans Portugees}{uit het Braziliaans Portugees}}, + frombulgarian = {{uit het Bulgaars}{uit het Bulgaars}}, + fromcatalan = {{uit het Catalaans}{uit het Catalaans}}, + fromcroatian = {{uit het Kroatisch}{uit het Kroatisch}}, + fromczech = {{uit het Tsjechisch}{uit het Tsjechisch}}, + fromdanish = {{uit het Deens}{uit het Deens}}, + fromdutch = {{uit het Nederlands}{uit het Nederlands}}, + fromenglish = {{uit het Engels}{uit het Engels}}, + fromestonian = {{uit het Estisch}{uit het Estisch}}, + fromfinnish = {{uit het Fins}{uit het Fins}}, + fromfrench = {{uit het Frans}{uit het Frans}}, + fromgalician = {{uit het Galicisch}{uit het Galicisch}}, + fromgerman = {{uit het Duits}{uit het Duits}}, + fromgreek = {{uit het Grieks}{uit het Grieks}}, + fromhungarian = {{uit het Hongaars}{uit het Hongaars}}, + fromitalian = {{uit het Italiaans}{uit het Italiaans}}, + fromjapanese = {{uit het Japaans}{uit het Japaans}}, + fromlatin = {{uit het Latijn}{uit het Latijn}}, + fromlatvian = {{uit het Lets}{uit het Lets}}, + fromnorwegian = {{uit het Noors}{uit het Noors}}, + frompolish = {{uit het Pools}{uit het Pools}}, + fromportuguese = {{uit het Portugees}{uit het Portugees}}, + fromrussian = {{uit het Russisch}{uit het Russisch}}, + fromslovak = {{uit het Slowaaks}{uit het Slowaaks}},% FIXME: or Slovaaks + fromslovene = {{uit het Sloveens}{uit het Sloveens}}, + fromspanish = {{uit het Spaans}{uit het Spaans}}, + fromswedish = {{uit het Zweeds}{uit het Zweeds}}, + fromukrainian = {{uit het Oekra\"iens}{uit het Oekra\"iens}}, + countryde = {{Duitsland}{DE}}, + countryeu = {{Europese Unie}{EU}}, + countryep = {{Europese Unie}{EP}}, + countryfr = {{Frankrijk}{FR}}, + countryuk = {{Verenigd Koninkrijk}{VK}}, + countryus = {{Verenigde Staten van Amerika}{VS}}, + patent = {{patent}{pat\adddot}}, + patentde = {{Duits patent}{Duits pat\adddot}}, + patenteu = {{Europees patent}{Eur\adddot pat\adddot}}, + patentfr = {{Frans patent}{Frans pat\adddot}}, + patentuk = {{Brits patent}{Brits pat\adddot}}, + patentus = {{Amerikaans patent}{Amer\adddot pat\adddot}}, + patreq = {{patentaanvraag}{patentaanvr\adddot}}, + patreqde = {{Duitse patentaanvraag}{Duitse patentaanvr\adddot}}, + patreqeu = {{Europese patentaanvraag}{Eur\adddot patentaanvr\adddot}}, + patreqfr = {{Franse patentaanvraag}{Franse patentaanvr\adddot}}, + patrequk = {{Britse patentaanvraag}{Britse patentaanvr\adddot}}, + patrequs = {{Amerikaanse patentaanvraag}{Amer\adddot patentaanvr\adddot}}, + commonera = {{gewone jaartelling}{g\adddot j\adddot}}, + beforecommonera = {{v\'o\'or gewone jaartelling}{v\adddot g\adddot j\adddot}}, + annodomini = {{na Christus}{n\adddot Chr\adddot}}, + beforechrist = {{voor Christus}{v\adddot Chr\adddot}}, +% circa = {{}{}},% FIXME: missing +% spring = {{}{}},% FIXME: missing +% summer = {{}{}},% FIXME: missing +% autumn = {{}{}},% FIXME: missing +% winter = {{}{}},% FIXME: missing + am = {{a\adddot m\adddot}{a\adddot m\adddot}}, + pm = {{p\adddot m\adddot}{p\adddot m\adddot}}, +} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/lbx/english.lbx b/macros/latex/contrib/biblatex/latex/lbx/english.lbx new file mode 100644 index 0000000000..109014dafb --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/lbx/english.lbx @@ -0,0 +1,713 @@ +\ProvidesFile{english.lbx} +[\abx@lbxid] + +\DeclareRedundantLanguages{english,american}{english,american,british, +canadian,australian,newzealand,USenglish,UKenglish} + +\DeclareBibliographyExtras{% + \protected\def\bibrangedash{% + \textendash\penalty\hyphenpenalty}% breakable dash + \def\finalandcomma{\addcomma}% + \def\finalandsemicolon{\addsemicolon}% + \protected\def\mkbibordinal#1{% + \begingroup + \@tempcnta0#1\relax\number\@tempcnta + \@whilenum\@tempcnta>100\do{\advance\@tempcnta-100\relax}% + \ifnum\@tempcnta>20 + \@whilenum\@tempcnta>9\do{\advance\@tempcnta-10\relax}% + \fi + \ifcase\@tempcnta th\or st\or nd\or rd\else th\fi + \endgroup}% + \protected\def\mkbibmascord{\mkbibordinal}% + \protected\def\mkbibfemord{\mkbibordinal}% + \protected\def\mkbibneutord{\mkbibordinal}% + \protected\def\mkbibdatelong#1#2#3{% + \iffieldundef{#2} + {} + {\mkbibmonth{\thefield{#2}}% + \iffieldundef{#3} + {\iffieldundef{#1}{}{\space}} + {\nobreakspace}}% + \iffieldundef{#3} + {} + {\stripzeros{\thefield{#3}}% + \iffieldundef{#1}{}{,\space}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}% + \protected\def\mkbibdateshort#1#2#3{% + \iffieldundef{#2} + {} + {\mkmonthzeros{\thefield{#2}}% + \iffieldundef{#3} + {\iffieldundef{#1}{}{/}} + {/}}% + \iffieldundef{#3} + {} + {\mkdayzeros{\thefield{#3}}% + \iffieldundef{#1}{}{/}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}% + \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{% + \iffieldundef{#1}{} + {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}% + \iffieldundef{#2}{} + {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}% + \iffieldundef{#3}{} + {\printtext{\mktimezeros{\thefield{#3}}}}% + \setunit{}% + \iffieldundef{#4}{} + {\bibtimezonesep + \mkbibtimezone{\thefield{#4}}}}% + \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{% + \stripzeros{\mktimehh{\thefield{#1}}}% + \bibtimesep + \forcezerosmdt{\thefield{#2}}% + \iffieldundef{#3}{} + {\bibtimesep + \forcezerosmdt{\thefield{#3}}}% + \space + \ifnumless{\thefield{#1}}{12} + {\bibstring{am}} + {\bibstring{pm}}% + \iffieldundef{#4}{} + {\space\bibtimezonesep + \parentext{\mkbibtimezone{\thefield{#4}}}}}% + \protected\def\mkbibseasondateshort#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% + \protected\def\mkbibseasondatelong#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% + \savecommand\mkdaterangecomp + \savecommand\mkdaterangecompextra + \savecommand\mkdaterangeterse + \savecommand\mkdaterangeterseextra + \protected\def\mkdaterangecomp{% + \lbx@us@mkdaterangetrunc@long{long}}% + \protected\def\mkdaterangeterse{% + \lbx@us@mkdaterangetrunc@short{short}}% + \protected\def\mkdaterangecompextra{% + \lbx@us@mkdaterangetruncextra@long{long}}% + \protected\def\mkdaterangeterseextra{% + \lbx@us@mkdaterangetruncextra@short{short}}% +} + +\UndeclareBibliographyExtras{% + \restorecommand\mkdaterangecomp + \restorecommand\mkdaterangecompextra + \restorecommand\mkdaterangeterse + \restorecommand\mkdaterangeterseextra +} + +\DeclareBibliographyStrings{% + bibliography = {{Bibliography}{Bibliography}}, + references = {{References}{References}}, + shorthands = {{List of Abbreviations}{Abbreviations}}, + editor = {{editor}{ed\adddot}}, + editors = {{editors}{eds\adddot}}, + compiler = {{compiler}{comp\adddot}}, + compilers = {{compilers}{comp\adddot}}, + redactor = {{redactor}{red\adddot}}, + redactors = {{redactors}{red\adddot}}, + reviser = {{reviser}{rev\adddot}}, + revisers = {{revisers}{rev\adddot}}, + founder = {{founder}{found\adddot}}, + founders = {{founders}{found\adddot}}, + continuator = {{continued}{cont\adddot}},% FIXME: unsure + continuators = {{continued}{cont\adddot}},% FIXME: unsure + collaborator = {{collaborator}{collab\adddot}},% FIXME: unsure + collaborators = {{collaborators}{collab\adddot}},% FIXME: unsure + translator = {{translator}{trans\adddot}}, + translators = {{translators}{trans\adddot}}, + commentator = {{commentator}{comm\adddot}}, + commentators = {{commentators}{comm\adddot}}, + annotator = {{annotator}{annot\adddot}}, + annotators = {{annotators}{annot\adddot}}, + commentary = {{commentary}{comm\adddot}}, + annotations = {{annotations}{annot\adddot}}, + introduction = {{introduction}{intro\adddot}}, + foreword = {{foreword}{forew\adddot}}, + afterword = {{afterword}{afterw\adddot}}, + editortr = {{editor and translator}% + {ed\adddotspace and trans\adddot}}, + editorstr = {{editors and translators}% + {eds\adddotspace and trans\adddot}}, + editorco = {{editor and commentator}% + {ed\adddotspace and comm\adddot}}, + editorsco = {{editors and commentators}% + {eds\adddotspace and comm\adddot}}, + editoran = {{editor and annotator}% + {ed\adddotspace and annot\adddot}}, + editorsan = {{editors and annotators}% + {eds\adddotspace and annot\adddot}}, + editorin = {{editor and introduction}% + {ed\adddotspace and introd\adddot}}, + editorsin = {{editors and introduction}% + {eds\adddotspace and introd\adddot}}, + editorfo = {{editor and foreword}% + {ed\adddotspace and forew\adddot}}, + editorsfo = {{editors and foreword}% + {eds\adddotspace and forew\adddot}}, + editoraf = {{editor and afterword}% + {ed\adddotspace and afterw\adddot}}, + editorsaf = {{editors and afterword}% + {eds\adddotspace and afterw\adddot}}, + editortrco = {{editor, translator\finalandcomma\ and commentator}% + {ed.,\addabbrvspace trans\adddot\finalandcomma\ and comm\adddot}}, + editorstrco = {{editors, translators\finalandcomma\ and commentators}% + {eds.,\addabbrvspace trans\adddot\finalandcomma\ and comm\adddot}}, + editortran = {{editor, translator\finalandcomma\ and annotator}% + {ed.,\addabbrvspace trans\adddot\finalandcomma\ and annot\adddot}}, + editorstran = {{editors, translators\finalandcomma\ and annotators}% + {eds.,\addabbrvspace trans\adddot\finalandcomma\ and annot\adddot}}, + editortrin = {{editor, translator\finalandcomma\ and introduction}% + {ed.,\addabbrvspace trans\adddot\finalandcomma\ and introd\adddot}}, + editorstrin = {{editors, translators\finalandcomma\ and introduction}% + {eds.,\addabbrvspace trans\adddot\finalandcomma\ and introd\adddot}}, + editortrfo = {{editor, translator\finalandcomma\ and foreword}% + {ed.,\addabbrvspace trans\adddot\finalandcomma\ and forew\adddot}}, + editorstrfo = {{editors, translators\finalandcomma\ and foreword}% + {eds.,\addabbrvspace trans\adddot\finalandcomma\ and forew\adddot}}, + editortraf = {{editor, translator\finalandcomma\ and afterword}% + {ed.,\addabbrvspace trans\adddot\finalandcomma\ and afterw\adddot}}, + editorstraf = {{editors, translators\finalandcomma\ and afterword}% + {eds.,\addabbrvspace trans\adddot\finalandcomma\ and afterw\adddot}}, + editorcoin = {{editor, commentator\finalandcomma\ and introduction}% + {ed.,\addabbrvspace comm\adddot\finalandcomma\ and introd\adddot}}, + editorscoin = {{editors, commentators\finalandcomma\ and introduction}% + {eds.,\addabbrvspace comm\adddot\finalandcomma\ and introd\adddot}}, + editorcofo = {{editor, commentator\finalandcomma\ and foreword}% + {ed.,\addabbrvspace comm\adddot\finalandcomma\ and forew\adddot}}, + editorscofo = {{editors, commentators\finalandcomma\ and foreword}% + {eds.,\addabbrvspace comm\adddot\finalandcomma\ and forew\adddot}}, + editorcoaf = {{editor, commentator\finalandcomma\ and afterword}% + {ed.,\addabbrvspace comm\adddot\finalandcomma\ and afterw\adddot}}, + editorscoaf = {{editors, commentators\finalandcomma\ and afterword}% + {eds.,\addabbrvspace comm\adddot\finalandcomma\ and afterw\adddot}}, + editoranin = {{editor, annotator\finalandcomma\ and introduction}% + {ed.,\addabbrvspace annot\adddot\finalandcomma\ and introd\adddot}}, + editorsanin = {{editors, annotators\finalandcomma\ and introduction}% + {eds.,\addabbrvspace annot\adddot\finalandcomma\ and introd\adddot}}, + editoranfo = {{editor, annotator\finalandcomma\ and foreword}% + {ed.,\addabbrvspace annot\adddot\finalandcomma\ and forew\adddot}}, + editorsanfo = {{editors, annotators\finalandcomma\ and foreword}% + {eds.,\addabbrvspace annot\adddot\finalandcomma\ and forew\adddot}}, + editoranaf = {{editor, annotator\finalandcomma\ and afterword}% + {ed.,\addabbrvspace annot\adddot\finalandcomma\ and afterw\adddot}}, + editorsanaf = {{editors, annotators\finalandcomma\ and afterword}% + {eds.,\addabbrvspace annot\adddot\finalandcomma\ and afterw\adddot}}, + editortrcoin = {{editor, translator, commentator\finalandcomma\ and introduction}% + {ed.,\addabbrvspace trans., comm\adddot\finalandcomma\ and introd\adddot}}, + editorstrcoin = {{editors, translators, commentators\finalandcomma\ and introduction}% + {eds.,\addabbrvspace trans., comm\adddot\finalandcomma\ and introd\adddot}}, + editortrcofo = {{editor, translator, commentator\finalandcomma\ and foreword}% + {ed.,\addabbrvspace trans., comm\adddot\finalandcomma\ and forew\adddot}}, + editorstrcofo = {{editors, translators, commentators\finalandcomma\ and foreword}% + {eds.,\addabbrvspace trans., comm\adddot\finalandcomma\ and forew\adddot}}, + editortrcoaf = {{editor, translator, commentator\finalandcomma\ and afterword}% + {ed.,\addabbrvspace trans., comm\adddot\finalandcomma\ and afterw\adddot}}, + editorstrcoaf = {{editors, translators, commentators\finalandcomma\ and afterword}% + {eds.,\addabbrvspace trans., comm\adddot\finalandcomma\ and afterw\adddot}}, + editortranin = {{editor, translator, annotator\finalandcomma\ and introduction}% + {ed.,\addabbrvspace trans., annot\adddot\finalandcomma\ and introd\adddot}}, + editorstranin = {{editors, translators, annotators\finalandcomma\ and introduction}% + {eds.,\addabbrvspace trans., annot\adddot\finalandcomma\ and introd\adddot}}, + editortranfo = {{editor, translator, annotator\finalandcomma\ and foreword}% + {ed.,\addabbrvspace trans., annot\adddot\finalandcomma\ and forew\adddot}}, + editorstranfo = {{editors, translators, annotators\finalandcomma\ and foreword}% + {eds.,\addabbrvspace trans., annot\adddot\finalandcomma\ and forew\adddot}}, + editortranaf = {{editor, translator, annotator\finalandcomma\ and afterword}% + {ed.,\addabbrvspace trans., annot\adddot\finalandcomma\ and afterw\adddot}}, + editorstranaf = {{editors, translators, annotators\finalandcomma\ and afterword}% + {eds.,\addabbrvspace trans., annot\adddot\finalandcomma\ and afterw\adddot}}, + translatorco = {{translator and commentator}% + {trans\adddot\ and comm\adddot}}, + translatorsco = {{translators and commentators}% + {trans\adddot\ and comm\adddot}}, + translatoran = {{translator and annotator}% + {trans\adddot\ and annot\adddot}}, + translatorsan = {{translators and annotators}% + {trans\adddot\ and annot\adddot}}, + translatorin = {{translation and introduction}% + {trans\adddot\ and introd\adddot}}, + translatorsin = {{translation and introduction}% + {trans\adddot\ and introd\adddot}}, + translatorfo = {{translation and foreword}% + {trans\adddot\ and forew\adddot}}, + translatorsfo = {{translation and foreword}% + {trans\adddot\ and forew\adddot}}, + translatoraf = {{translation and afterword}% + {trans\adddot\ and afterw\adddot}}, + translatorsaf = {{translation and afterword}% + {trans\adddot\ and afterw\adddot}}, + translatorcoin = {{translation, commentary\finalandcomma\ and introduction}% + {trans., comm\adddot\finalandcomma\ and introd\adddot}}, + translatorscoin = {{translation, commentary\finalandcomma\ and introduction}% + {trans., comm\adddot\finalandcomma\ and introd\adddot}}, + translatorcofo = {{translation, commentary\finalandcomma\ and foreword}% + {trans., comm\adddot\finalandcomma\ and forew\adddot}}, + translatorscofo = {{translation, commentary\finalandcomma\ and foreword}% + {trans., comm\adddot\finalandcomma\ and forew\adddot}}, + translatorcoaf = {{translation, commentary\finalandcomma\ and afterword}% + {trans., comm\adddot\finalandcomma\ and afterw\adddot}}, + translatorscoaf = {{translation, commentary\finalandcomma\ and afterword}% + {trans., comm\adddot\finalandcomma\ and afterw\adddot}}, + translatoranin = {{translation, annotations\finalandcomma\ and introduction}% + {trans., annot\adddot\finalandcomma\ and introd\adddot}}, + translatorsanin = {{translation, annotations\finalandcomma\ and introduction}% + {trans., annot\adddot\finalandcomma\ and introd\adddot}}, + translatoranfo = {{translation, annotations\finalandcomma\ and foreword}% + {trans., annot\adddot\finalandcomma\ and forew\adddot}}, + translatorsanfo = {{translation, annotations\finalandcomma\ and foreword}% + {trans., annot\adddot\finalandcomma\ and forew\adddot}}, + translatoranaf = {{translation, annotations\finalandcomma\ and afterword}% + {trans., annot\adddot\finalandcomma\ and afterw\adddot}}, + translatorsanaf = {{translation, annotations\finalandcomma\ and afterword}% + {trans., annot\adddot\finalandcomma\ and afterw\adddot}}, + organizer = {{organizer}{org\adddot}}, + organizers = {{organizers}{orgs\adddot}}, + byorganizer = {{organized by}{org\adddotspace by}}, + byauthor = {{by}{by}}, + byeditor = {{edited by}{ed\adddotspace by}}, + bycompiler = {{compiled by}{comp\adddotspace by}}, + byredactor = {{redacted by}{red\adddotspace by}}, + byreviser = {{revised by}{rev\adddotspace by}}, + byreviewer = {{reviewed by}{rev\adddotspace by}}, + byfounder = {{founded by}{found\adddotspace by}}, + bycontinuator = {{continued by}{cont\adddotspace by}}, + bycollaborator = {{in collaboration with}{in collab\adddotspace with}},% FIXME: unsure + bytranslator = {{translated \lbx@lfromlang\ by}{trans\adddot\ \lbx@sfromlang\ by}}, + bycommentator = {{commented by}{comm\adddot\ by}}, + byannotator = {{annotated by}{annot\adddot\ by}}, + withcommentator = {{with a commentary by}{with a comment\adddot\ by}}, + withannotator = {{with annotations by}{with annots\adddot\ by}}, + withintroduction = {{with an introduction by}{with an intro\adddot\ by}}, + withforeword = {{with a foreword by}{with a forew\adddot\ by}}, + withafterword = {{with an afterword by}{with an afterw\adddot\ by}}, + byeditortr = {{edited and translated \lbx@lfromlang\ by}% + {ed\adddotspace and trans\adddot\ \lbx@sfromlang\ by}}, + byeditorco = {{edited and commented by}% + {ed\adddotspace and comm\adddot\ by}}, + byeditoran = {{edited and annotated by}% + {ed\adddotspace and annot\adddot\ by}}, + byeditorin = {{edited, with an introduction, by}% + {ed.,\addabbrvspace with an introd., by}}, + byeditorfo = {{edited, with a foreword, by}% + {ed.,\addabbrvspace with a forew., by}}, + byeditoraf = {{edited, with an afterword, by}% + {ed.,\addabbrvspace with an afterw., by}}, + byeditortrco = {{edited, translated \lbx@lfromlang\finalandcomma\ and commented by}% + {ed.,\addabbrvspace trans\adddot\ \lbx@sfromlang\finalandcomma\ and comm\adddot\ by}}, + byeditortran = {{edited, translated \lbx@lfromlang\finalandcomma\ and annotated by}% + {ed.,\addabbrvspace trans\adddot\ \lbx@sfromlang\finalandcomma\ and annot\adddot\ by}}, + byeditortrin = {{edited and translated \lbx@lfromlang, with an introduction, by}% + {ed\adddotspace and trans\adddot\ \lbx@sfromlang, with an introd., by}}, + byeditortrfo = {{edited and translated \lbx@lfromlang, with a foreword, by}% + {ed\adddotspace and trans\adddot\ \lbx@sfromlang, with a forew., by}}, + byeditortraf = {{edited and translated \lbx@lfromlang, with an afterword, by}% + {ed\adddotspace and trans\adddot\ \lbx@sfromlang, with an afterw., by}}, + byeditorcoin = {{edited and commented, with an introduction, by}% + {ed\adddotspace and comm., with an introd., by}}, + byeditorcofo = {{edited and commented, with a foreword, by}% + {ed\adddotspace and comm., with a forew., by}}, + byeditorcoaf = {{edited and commented, with an afterword, by}% + {ed\adddotspace and comm., with an afterw., by}}, + byeditoranin = {{edited and annotated, with an introduction, by}% + {ed\adddotspace and annot., with an introd., by}}, + byeditoranfo = {{edited and annotated, with a foreword, by}% + {ed\adddotspace and annot., with a forew., by}}, + byeditoranaf = {{edited and annotated, with an afterword, by}% + {ed\adddotspace and annot., with an afterw., by}}, + byeditortrcoin = {{edited, translated \lbx@lfromlang\finalandcomma\ and commented, with an introduction, by}% + {ed.,\addabbrvspace trans\adddot\ \lbx@sfromlang\finalandcomma\ and comm., with an introd., by}}, + byeditortrcofo = {{edited, translated \lbx@lfromlang\finalandcomma\ and commented, with a foreword, by}% + {ed.,\addabbrvspace trans\adddot\ \lbx@sfromlang\finalandcomma\ and comm., with a forew., by}}, + byeditortrcoaf = {{edited, translated \lbx@lfromlang\finalandcomma\ and commented, with an afterword, by}% + {ed.,\addabbrvspace trans\adddot\ \lbx@sfromlang\finalandcomma\ and comm., with an afterw., by}}, + byeditortranin = {{edited, translated \lbx@lfromlang\finalandcomma\ and annotated, with an introduction, by}% + {ed.,\addabbrvspace trans\adddot\ \lbx@sfromlang\finalandcomma\ and annot, with an introd., by}}, + byeditortranfo = {{edited, translated \lbx@lfromlang\finalandcomma\ and annotated, with a foreword, by}% + {ed.,\addabbrvspace trans\adddot\ \lbx@sfromlang\finalandcomma\ and annot, with a forew., by}}, + byeditortranaf = {{edited, translated \lbx@lfromlang\finalandcomma\ and annotated, with an afterword, by}% + {ed.,\addabbrvspace trans\adddot\ \lbx@sfromlang\finalandcomma\ and annot, with an afterw., by}}, + bytranslatorco = {{translated \lbx@lfromlang\ and commented by}% + {trans\adddot\ \lbx@sfromlang\ and comm\adddot\ by}}, + bytranslatoran = {{translated \lbx@lfromlang\ and annotated by}% + {trans\adddot\ \lbx@sfromlang\ and annot\adddot\ by}}, + bytranslatorin = {{translated \lbx@lfromlang, with an introduction, by}% + {trans\adddot\ \lbx@sfromlang, with an introd., by}}, + bytranslatorfo = {{translated \lbx@lfromlang, with a foreword, by}% + {trans\adddot\ \lbx@sfromlang, with a forew., by}}, + bytranslatoraf = {{translated \lbx@lfromlang, with an afterword, by}% + {trans\adddot\ \lbx@sfromlang, with an afterw., by}}, + bytranslatorcoin = {{translated \lbx@lfromlang\ and commented, with an introduction, by}% + {trans\adddot\ \lbx@sfromlang\ and comm., with an introd., by}}, + bytranslatorcofo = {{translated \lbx@lfromlang\ and commented, with a foreword, by}% + {trans\adddot\ \lbx@sfromlang\ and comm., with a forew., by}}, + bytranslatorcoaf = {{translated \lbx@lfromlang\ and commented, with an afterword, by}% + {trans\adddot\ \lbx@sfromlang\ and comm., with an afterw., by}}, + bytranslatoranin = {{translated \lbx@lfromlang\ and annotated, with an introduction, by}% + {trans\adddot\ \lbx@sfromlang\ and annot., with an introd., by}}, + bytranslatoranfo = {{translated \lbx@lfromlang\ and annotated, with a foreword, by}% + {trans\adddot\ \lbx@sfromlang\ and annot., with a forew., by}}, + bytranslatoranaf = {{translated \lbx@lfromlang\ and annotated, with an afterword, by}% + {trans\adddot\ \lbx@sfromlang\ and annot., with an afterw., by}}, + and = {{and}{and}}, + andothers = {{et\addabbrvspace al\adddot}{et\addabbrvspace al\adddot}}, + andmore = {{et\addabbrvspace al\adddot}{et\addabbrvspace al\adddot}}, + volume = {{volume}{vol\adddot}}, + volumes = {{volumes}{vols\adddot}}, + involumes = {{in}{in}}, + jourvol = {{volume}{vol\adddot}}, + jourser = {{series}{ser\adddot}}, + book = {{book}{book}}, + part = {{part}{part}}, + issue = {{issue}{issue}}, + newseries = {{new series}{new ser\adddot}}, + oldseries = {{old series}{old ser\adddot}}, + edition = {{edition}{ed\adddot}}, + reprint = {{reprint}{repr\adddot}}, + reprintof = {{reprint of}{repr\adddotspace of}}, + reprintas = {{reprinted as}{rpt\adddotspace as}}, + reprintfrom = {{reprinted from}{repr\adddotspace from}}, + reviewof = {{review of}{rev\adddotspace of}}, + translationof = {{translation of}{trans\adddotspace of}}, + translationas = {{translated as}{trans\adddotspace as}}, + translationfrom = {{translated from}{trans\adddotspace from}}, + origpubas = {{originally published as}{orig\adddotspace pub\adddotspace as}}, + origpubin = {{originally published in}{orig\adddotspace pub\adddotspace in}}, + astitle = {{as}{as}}, + bypublisher = {{by}{by}}, + nodate = {{no date}{n\adddot d\adddot}}, + page = {{page}{p\adddot}}, + pages = {{pages}{pp\adddot}}, + column = {{column}{col\adddot}}, + columns = {{columns}{cols\adddot}}, + line = {{line}{l\adddot}}, + lines = {{lines}{ll\adddot}}, + verse = {{verse}{v\adddot}}, + verses = {{verses}{vv\adddot}}, + section = {{section}{\S}}, + sections = {{sections}{\S\S}}, + paragraph = {{paragraph}{par\adddot}}, + paragraphs = {{paragraphs}{par\adddot}}, + pagetotal = {{page}{p\adddot}}, + pagetotals = {{pages}{pp\adddot}}, + columntotal = {{column}{col\adddot}}, + columntotals = {{columns}{cols\adddot}}, + linetotal = {{line}{l\adddot}}, + linetotals = {{lines}{ll\adddot}}, + versetotal = {{verse}{v\adddot}}, + versetotals = {{verses}{vv\adddot}}, + sectiontotal = {{section}{\S}}, + sectiontotals = {{sections}{\S\S}}, + paragraphtotal = {{paragraph}{par\adddot}}, + paragraphtotals = {{paragraphs}{par\adddot}}, + in = {{in}{in}}, + inseries = {{in}{in}}, + ofseries = {{of}{of}}, + number = {{number}{no\adddot}}, + chapter = {{chapter}{chap\adddot}}, + bathesis = {{Bachelor's thesis}{BA\addabbrvspace thesis}}, + mathesis = {{Master's thesis}{MA\addabbrvspace thesis}}, + phdthesis = {{PhD\addabbrvspace thesis}{PhD\addabbrvspace thesis}}, + candthesis = {{Candidate thesis}{Cand\adddotspace thesis}}, + resreport = {{research report}{research rep\adddot}}, + techreport = {{technical report}{tech\adddotspace rep\adddot}}, + software = {{computer software}{comp\adddotspace software}}, + datacd = {{CD-ROM}{CD-ROM}}, + audiocd = {{audio CD}{audio CD}}, + version = {{version}{version}}, + url = {{address}{address}}, + urlfrom = {{available from}{available from}}, + urlseen = {{visited on}{visited on}}, + inpreparation = {{in preparation}{in preparation}}, + submitted = {{submitted}{submitted}}, + forthcoming = {{forthcoming}{forthcoming}}, + inpress = {{in press}{in press}}, + prepublished = {{pre-published}{pre-published}}, + citedas = {{henceforth cited as}{henceforth cited as}}, + thiscite = {{especially}{esp\adddot}}, + seenote = {{see note}{see n\adddot}}, + quotedin = {{quoted in}{qtd\adddotspace in}}, + idem = {{idem}{idem}}, + idemsm = {{idem}{idem}}, + idemsf = {{eadem}{eadem}}, + idemsn = {{idem}{idem}}, + idempm = {{eidem}{eidem}}, + idempf = {{eaedem}{eaedem}}, + idempn = {{eadem}{eadem}}, + idempp = {{eidem}{eidem}}, + ibidem = {{ibidem}{ibid\adddot}}, + opcit = {{op\adddotspace cit\adddot}{op\adddotspace cit\adddot}}, + loccit = {{loc\adddotspace cit\adddot}{loc\adddotspace cit\adddot}}, + confer = {{cf\adddot}{cf\adddot}}, + sequens = {{sq\adddot}{sq\adddot}}, + sequentes = {{sqq\adddot}{sqq\adddot}}, + passim = {{passim}{pass\adddot}}, + see = {{see}{see}}, + seealso = {{see also}{see also}}, + backrefpage = {{cited on page}{cit\adddotspace on p\adddot}}, + backrefpages = {{cited on pages}{cit\adddotspace on pp\adddot}}, + january = {{January}{Jan\adddot}}, + february = {{February}{Feb\adddot}}, + march = {{March}{Mar\adddot}}, + april = {{April}{Apr\adddot}}, + may = {{May}{May}}, + june = {{June}{June}}, + july = {{July}{July}}, + august = {{August}{Aug\adddot}}, + september = {{September}{Sept\adddot}}, + october = {{October}{Oct\adddot}}, + november = {{November}{Nov\adddot}}, + december = {{December}{Dec\adddot}}, + langamerican = {{American}{American}}, + langbrazilian = {{Brazilian}{Brazilian}}, + langbulgarian = {{Bulgarian}{Bulgarian}}, + langcatalan = {{Catalan}{Catalan}}, + langcroatian = {{Croatian}{Croatian}}, + langczech = {{Czech}{Czech}}, + langdanish = {{Danish}{Danish}}, + langdutch = {{Dutch}{Dutch}}, + langenglish = {{English}{English}}, + langestonian = {{Estonian}{Estonian}}, + langfinnish = {{Finnish}{Finnish}}, + langfrench = {{French}{French}}, + langgalician = {{Galician}{Galician}}, + langgerman = {{German}{German}}, + langgreek = {{Greek}{Greek}}, + langhungarian = {{Hungarian}{Hungarian}}, + langitalian = {{Italian}{Italian}}, + langjapanese = {{Japanese}{Japanese}}, + langlatin = {{Latin}{Latin}}, + langlatvian = {{Latvian}{Latvian}}, + langnorwegian = {{Norwegian}{Norwegian}}, + langpolish = {{Polish}{Polish}}, + langportuguese = {{Portuguese}{Portuguese}}, + langrussian = {{Russian}{Russian}}, + langslovak = {{Slovak}{Slovak}}, + langslovene = {{Slovene}{Slovene}}, + langspanish = {{Spanish}{Spanish}}, + langswedish = {{Swedish}{Swedish}}, + langukrainian = {{Ukrainian}{Ukrainian}}, + fromamerican = {{from the American}{from the American}}, + frombrazilian = {{from the Brazilian}{from the Brazilian}}, + frombulgarian = {{from the Bulgarian}{from the Bulgarian}}, + fromcatalan = {{from the Catalan}{from the Catalan}}, + fromcroatian = {{from the Croatian}{from the Croatian}}, + fromczech = {{from the Czech}{from the Czech}}, + fromdanish = {{from the Danish}{from the Danish}}, + fromdutch = {{from the Dutch}{from the Dutch}}, + fromenglish = {{from the English}{from the English}}, + fromestonian = {{from the Estonian}{from the Estonian}}, + fromfinnish = {{from the Finnish}{from the Finnish}}, + fromfrench = {{from the French}{from the French}}, + fromgalician = {{from the Galician}{from the Galician}}, + fromgerman = {{from the German}{from the German}}, + fromgreek = {{from the Greek}{from the Greek}}, + fromhungarian = {{from the Hungarian}{from the Hungarian}}, + fromitalian = {{from the Italian}{from the Italian}}, + fromjapanese = {{from the Japanese}{from the Japanese}}, + fromlatin = {{from the Latin}{from the Latin}}, + fromlatvian = {{from the Latvian}{from the Latvian}}, + fromnorwegian = {{from the Norwegian}{from the Norwegian}}, + frompolish = {{from the Polish}{from the Polish}}, + fromportuguese = {{from the Portuguese}{from the Portuguese}}, + fromrussian = {{from the Russian}{from the Russian}}, + fromslovak = {{from the Slovak}{from the Slovak}}, + fromslovene = {{from the Slovene}{from the Slovene}}, + fromspanish = {{from the Spanish}{from the Spanish}}, + fromswedish = {{from the Swedish}{from the Swedish}}, + fromukrainian = {{from the Ukrainian}{from the Ukrainian}}, + countryde = {{Germany}{DE}}, + countryeu = {{European Union}{EU}}, + countryep = {{European Union}{EP}}, + countryfr = {{France}{FR}}, + countryuk = {{United Kingdom}{GB}}, + countryus = {{United States of America}{US}}, + patent = {{patent}{pat\adddot}}, + patentde = {{German patent}{German pat\adddot}}, + patenteu = {{European patent}{European pat\adddot}}, + patentfr = {{French patent}{French pat\adddot}}, + patentuk = {{British patent}{British pat\adddot}}, + patentus = {{U.S\adddotspace patent}{U.S\adddotspace pat\adddot}}, + patreq = {{patent request}{pat\adddot\ req\adddot}}, + patreqde = {{German patent request}{German pat\adddot\ req\adddot}}, + patreqeu = {{European patent request}{European pat\adddot\ req\adddot}}, + patreqfr = {{French patent request}{French pat\adddot\ req\adddot}}, + patrequk = {{British patent request}{British pat\adddot\ req\adddot}}, + patrequs = {{U.S\adddotspace patent request}{U.S\adddotspace pat\adddot\ req\adddot}}, + file = {{file}{file}}, + library = {{library}{library}}, + abstract = {{abstract}{abstract}}, + annotation = {{annotations}{annotations}}, + commonera = {{Common Era}{CE}}, + beforecommonera = {{Before Common Era}{BCE}}, + annodomini = {{Anno Domini}{AD}}, + beforechrist = {{Before Christ}{BC}}, + circa = {{circa}{ca\adddot}}, + spring = {{Spring}{Spr\adddot}}, + summer = {{Summer}{Sum\adddot}}, + autumn = {{Autumn}{Aut\adddot}}, + winter = {{Winter}{Win\adddot}}, + am = {{AM}{AM}}, + pm = {{PM}{PM}}, +} + +\protected\gdef\lbx@us@mkdaterangetrunc@long#1#2{% + \blx@if@printanytimes{#2} + {\mkdaterangefull{#1}{#2}} + {\lbx@us@mkdaterangetrunc@long@i{#1}{#2}}} + +\protected\gdef\lbx@us@mkdaterangetrunc@long@i#1#2{% + \begingroup + \blx@metadateinfo{#2}% + \iffieldundef{#2year} + {\blx@nounit} + {\printtext[#2date]{% + \datecircaprint + \iffieldundef{#2season} + {\ifdateyearsequal{#2}{#2end} + {\csuse{mkbibdate#1}{}{#2month}{#2day}} + {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}% + \dateeraprint{#2year}}} + {\ifdateyearsequal{#2}{#2end} + {\csuse{mkbibseasondate#1}{}{#2season}} + {\csuse{mkbibseasondate#1}{#2year}{#2season}% + \dateeraprint{#2year}}}% + \dateuncertainprint + \iffieldundef{#2endyear} + {} + {\iffieldequalstr{#2endyear}{} + {\mbox{\bibdaterangesep}} + {\bibdaterangesep + \enddatecircaprint + \iffieldundef{#2endseason} + {\ifdateyearsequal{#2}{#2end} + {\iffieldsequal{#2month}{#2endmonth} + {\csuse{mkbibdate#1}{#2endyear}{}{#2endday}} + {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}} + {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}} + {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}% + \enddateuncertainprint + \dateeraprint{#2endyear}}}}}% + \endgroup} + +\protected\gdef\lbx@us@mkdaterangetrunc@short#1#2{% + \blx@if@printanytimes{#2} + {\mkdaterangefull{#1}{#2}} + {\lbx@us@mkdaterangetrunc@short@i{#1}{#2}}} + +\protected\gdef\lbx@us@mkdaterangetrunc@short@i#1#2{% + \begingroup + \blx@metadateinfo{#2}% + \iffieldundef{#2year} + {\blx@nounit} + {\printtext[#2date]{% + \datecircaprint + \iffieldundef{#2season} + {\ifdateyearsequal{#2}{#2end} + {\csuse{mkbibdate#1}{}{#2month}{#2day}} + {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}% + \dateeraprint{#2year}}} + {\ifdateyearsequal{#2}{#2end} + {\csuse{mkbibseasondate#1}{}{#2season}} + {\csuse{mkbibseasondate#1}{#2year}{#2season}% + \dateeraprint{#2year}}}% + \dateuncertainprint + \iffieldundef{#2endyear} + {} + {\iffieldequalstr{#2endyear}{} + {\mbox{\bibdaterangesep}} + {\bibdaterangesep + \enddatecircaprint + \iffieldundef{#2endseason} + {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}} + {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}% + \enddateuncertainprint + \dateeraprint{#2endyear}}}}}% + \endgroup} + +\protected\gdef\lbx@us@mkdaterangetruncextra@long#1#2{% + \blx@if@printanytimes{#2} + {\mkdaterangefullextra{#1}{#2}} + {\lbx@us@mkdaterangetruncextra@long@i{#1}{#2}}} + +\protected\gdef\lbx@us@mkdaterangetruncextra@long#1#2{% + \begingroup + \blx@metadateinfo{#2}% + \iffieldundef{#2year} + {\blx@nounit} + {\printtext[#2date]{% + \datecircaprint + \iffieldundef{#2season} + {\ifdateyearsequal{#2}{#2end} + {\csuse{mkbibdate#1}{}{#2month}{#2day}} + {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}% + \dateeraprint{#2year}}} + {\ifdateyearsequal{#2}{#2end} + {\csuse{mkbibseasondate#1}{}{#2season}} + {\csuse{mkbibseasondate#1}{#2year}{#2season}% + \dateeraprint{#2year}}}% + \dateuncertainprint + \iffieldundef{#2endyear} + {\printfield{extradate}} + {\iffieldequalstr{#2endyear}{} + {\printfield{extradate}% + \mbox{\bibdaterangesep}} + {\bibdaterangesep + \enddatecircaprint + \iffieldundef{#2endseason} + {\ifdateyearsequal{#2}{#2end} + {\iffieldsequal{#2month}{#2endmonth} + {\csuse{mkbibdate#1}{#2endyear}{}{#2endday}} + {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}} + {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}} + {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}% + \printfield{extradate}% + \enddateuncertainprint + \dateeraprint{#2endyear}}}}}% + \endgroup} + +\protected\gdef\lbx@us@mkdaterangetruncextra@short#1#2{% + \blx@if@printanytimes{#2} + {\mkdaterangefullextra{#1}{#2}} + {\lbx@us@mkdaterangetruncextra@short@i{#1}{#2}}} + +\protected\gdef\lbx@us@mkdaterangetruncextra@short#1#2{% + \begingroup + \blx@metadateinfo{#2}% + \iffieldundef{#2year} + {\blx@nounit} + {\printtext[#2date]{% + \datecircaprint + \iffieldundef{#2season} + {\ifdateyearsequal{#2}{#2end} + {\csuse{mkbibdate#1}{}{#2month}{#2day}} + {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}% + \dateeraprint{#2year}}} + {\ifdateyearsequal{#2}{#2end} + {\csuse{mkbibseasondate#1}{}{#2season}} + {\csuse{mkbibseasondate#1}{#2year}{#2season}% + \dateeraprint{#2year}}}% + \dateuncertainprint + \iffieldundef{#2endyear} + {\printfield{extradate}} + {\iffieldequalstr{#2endyear}{} + {\printfield{extradate}% + \mbox{\bibdaterangesep}} + {\bibdaterangesep + \enddatecircaprint + \iffieldundef{#2endseason} + {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}} + {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}% + \printfield{extradate}% + \enddateuncertainprint + \dateeraprint{#2endyear}}}}}% + \endgroup} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/lbx/estonian.lbx b/macros/latex/contrib/biblatex/latex/lbx/estonian.lbx new file mode 100644 index 0000000000..2b0b32f115 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/lbx/estonian.lbx @@ -0,0 +1,560 @@ +\ProvidesFile{estonian.lbx} +[\abx@lbxid] + +% First attempt at Estonian using Finnish.lbx, Bing translator and a dictionary +% Translator's notes: +% Some translations look akward but they are made in such a way +% that they look as good as possible in running text. +% Source for some items in translations: Kielikello 3/1998. +% and Liisa Junno: Kirjastosanasto 1. BTJ Kirjastopalvelu 2006. + +\DeclareRedundantLanguages{estonian}{estonian} + + +\DeclareBibliographyExtras{% + % dashes: may be either \textendash or \textemdash + \protected\def\bibrangedash{% + \textendash\penalty\hyphenpenalty}% breakable dash + \let\finalandcomma=\empty + \let\finalandsemicolon=\empty + \protected\def\mkbibordinal#1{\stripzeros{#1}\adddot}% + \protected\def\mkbibmascord{\mkbibordinal}% + \protected\def\mkbibfemord{\mkbibordinal}% + \protected\def\mkbibneutord{\mkbibordinal}% + \protected\def\mkbibdatelong#1#2#3{% + \iffieldundef{#3} + {} + {\mkbibordinal{\thefield{#3}}% + \iffieldundef{#2}{}{\nobreakspace}}% + \iffieldundef{#2} + {} + {\protected\def\bibdaterangesep{\addnbspace\textendash\space}% + \mkbibmonth{\thefield{#2}}% + \iffieldundef{#1}{}{\space}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}% + \protected\def\mkbibdateshort#1#2#3{% + \iffieldundef{#3} + {} + {\mkdayzeros{\thefield{#3}}\adddot}% + \iffieldundef{#2} + {} + {\mkmonthzeros{\thefield{#2}}\adddot}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}% + \savecommand\lbx@lfromlang + \savecommand\lbx@sfromlang + \def\lbx@lfromlang{% + \iflistundef{origlanguage} + {} + {\printlist[lfromoriglanguage]{origlanguage}\space}}% + \def\lbx@sfromlang{% + \iflistundef{origlanguage} + {} + {\printlist[sfromoriglanguage]{origlanguage}\space}}% + \savebibmacro{in:}% + \renewbibmacro{in:}{% + \iffieldequalstr{entrytype}{article} + {} + {\printtext{\bibstring{in}\intitlepunct}}}% + \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{% + \iffieldundef{#1}{} + {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}% + \iffieldundef{#2}{} + {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}% + \iffieldundef{#3}{} + {\printtext{\mktimezeros{\thefield{#3}}}}% + \setunit{}% + \iffieldundef{#4}{} + {\bibtimezonesep + \mkbibtimezone{\thefield{#4}}}}% + \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{% + \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep + \forcezerosmdt{\thefield{#2}}% + \iffieldundef{#3}{} + {\bibtimesep + \forcezerosmdt{\thefield{#3}}}% + \space + \ifnumless{\thefield{#1}}{12} + {\bibstring{am}} + {\bibstring{pm}}% + \iffieldundef{#4}{} + {\space\bibtimezonesep + \parentext{\mkbibtimezone{\thefield{#4}}}}}% + \protected\def\mkbibseasondateshort#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% + \protected\def\mkbibseasondatelong#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% +} + +\UndeclareBibliographyExtras{% + \restorecommand\lbx@lfromlang + \restorecommand\lbx@sfromlang + \restorebibmacro{in:}% +} + +\DeclareBibliographyStrings{% + bibliography = {{bibliograafia}{bibliograafia}}, + references = {{viited}{viited}}, + shorthands = {{l\"{u}hendid}{l\"{u}hendid}}, + editor = {{toimetaja}{toim\adddot}}, + editors = {{toimetajad}{toim\adddot}}, + compiler = {{koostaja}{koost\adddot}}, + compilers = {{koostajad}{koost\adddot}}, + redactor = {{toimetaja}{toim\adddot}}, + redactors = {{toimetajad}{toim\adddot}}, + reviser = {{toimetaja}{toim\adddot}}, + revisers = {{toimetajad}{toim\adddot}}, + founder = {{asutaja}{asutaja}}, + founders = {{asutajad}{asutajad}}, + continuator = {{j\"{a}tkaja}{j\"{a}tkaja}}, + continuators = {{j\"{a}tkajad}{j\"{a}tkajad}}, + collaborator = {{kaast\"{o}\"{o}line}{kaast\adddot}}, + collaborators = {{kaast\"{o}\"{o}lised}{kaast\adddot}}, + translator = {{t\~{o}lkija}{t\~{o}lk\adddot}}, + translators = {{t\~{o}lkijad}{t\~{o}lk\adddot}}, + commentator = {{kommenteerija}{kommenteerija}}, + commentators = {{kommenteerijad}{kommenteerijad}}, + annotator = {{kommenteerija}{kommenteerija}}, + annotators = {{kommenteerijad}{kommenteerijad}}, + commentary = {{kommentaarid}{kommentaarid}}, + annotations = {{kommentaarid}{kommentaarid}}, + introduction = {{sissejuhatus}{sissejuhatus}}, + foreword = {{eess\~{o}na autor}{eess\~{o}na}}, + afterword = {{j\"{a}rels\~{o}na autor}{j\"{a}rels\~{o}na}}, + editortr = {{toimetaja ja t\~{o}lkija}% + {toim\adddotspace ja t\~{o}lk\adddot}}, + editorstr = {{toimetajad ja t\~{o}lkijad}% + {toim\adddotspace ja t\~{o}lk\adddot}}, + editorco = {{toimetaja ja kommenteerija}% + {toimetaja ja kommenteerija}}, + editorsco = {{toimetajad ja kommenteerijad}% + {toimetajad ja kommenteerijad}}, + editoran = {{toimetaja ja kommenteerija}% + {toimetaja ja kommenteerija}}, + editorsan = {{toimetajad ja kommenteerijad}% + {toimetajad ja kommenteerijad}}, + editorin = {{toimetaja ja sissejuhatus}% + {toimetaja ja sissejuhatus}}, + editorsin = {{toimetajad ja sissejuhatus}% + {toimetajad ja sissejuhatus}}, + editorfo = {{toimetaja ja eess\~{o}na}% + {toimetaja ja eess\~{o}na}}, + editorsfo = {{toimetajad ja eess\~{o}na}% + {toimetajad ja eess\~{o}na}}, + editoraf = {{toimetaja ja j\"{a}rels\~{o}na}% + {toimetaja ja j\"{a}rels\~{o}na}}, + editorsaf = {{toimetajad ja j\"{a}rels\~{o}na}% + {toimetajad ja j\"{a}rels\~{o}na}}, + editortrco = {{toimetaja, t\~{o}lkija ja kommenteerija} % + {toim., t\~{o}lk\adddotspace ja komm\adddot}}, + editorstrco = {{toimetajad, t\~{o}lkijad ja kommenteerijad} % + {toim., t\~{o}lk\adddotspace ja komm\adddot}}, + editortran = {{toimetaja, t\~{o}lkija ja kommenteerija} % + {toim., t\~{o}lk\adddotspace ja annot\adddot}}, + editorstran = {{toimetajad, t\~{o}lkijad ja kommenteerijad} % + {toim., t\~{o}lk\adddotspace ja annot\adddot}}, + editortrin = {{toimetaja, t\~{o}lkija ja sissejuhatus} % + {toim., t\~{o}lk\adddotspace ja sissej\adddot}}, + editorstrin = {{toimetajad, t\~{o}lkijad ja sissejuhatus} % + {toim., t\~{o}lk\adddotspace ja sissej\adddot}}, + editortrfo = {{toimetaja, t\~{o}lkija ja eess\~{o}na} % + {toim., t\~{o}lk\adddotspace ja eess\adddot}}, + editorstrfo = {{toimetajad, t\~{o}lkijad ja eess\~{o}na} % + {toim., t\~{o}lk\adddotspace ja forew\adddot}}, + editortraf = {{toimetaja, t\~{o}lkija ja j\"{a}rels\~{o}na} % + {toim., t\~{o}lk\adddotspace ja j\"{a}rels\adddot}}, + editorstraf = {{toimetajad, t\~{o}lkijad ja j\"{a}rels} % + {toim., t\~{o}lk\adddotspace ja j\"{a}rels\adddot}}, + editorcoin = {{toimetaja, kommenteerija ja sissejuhatus} % + {toim., komm\adddotspace ja sissej\adddot}}, + editorscoin = {{toimetajad, kommenteerijad ja sissejuhatus} % + {toim., komm\adddotspace ja sissej\adddot}}, + editorcofo = {{toimetaja, kommenteerija ja eess\~{o}na} % + {toim., komm\adddotspace ja forew\adddot}}, + editorscofo = {{toimetajad, kommenteerija ja eess\~{o}na} % + {toim., komm\adddotspace ja eess\adddot}}, + editorcoaf = {{toimetaja, kommenteerija ja j\"{a}rels\~{o}na} % + {toim., komm\adddotspace ja j\"{a}rels\adddot}}, + editorscoaf = {{toimetajad, kommenteerijad ja j\"{a}rels\~{o}na} % + {toim., komm\adddotspace ja j\"{a}rels\adddot}}, + editoranin = {{toimetaja, kommenteerija ja sissejuhatus} % + {toim., annot\adddotspace ja sissej\adddot}}, + editorsanin = {{toimetajad, kommenteerijad ja sissejuhatus} % + {toim., annot\adddotspace ja sissej\adddot}}, + editoranfo = {{toimetaja, annoteerja ja eess\~{o}na} % + {toim., annot\adddotspace ja eess\adddot}}, + editorsanfo = {{toimetajad, kommenteerijad ja eess\~{o}na} % + {toim., annot\adddotspace ja eess\adddot}}, + editoranaf = {{toimetaja, kommenteerija ja j\"{a}rels\~{o}na} % + {toim., annot\adddotspace ja j\"{a}rels\adddot}}, + editorsanaf = {{toimetajad, kommenteerijad ja j\"{a}rels\~{o}na} % + {toim., annot\adddotspace ja j\"{a}rels\adddot}}, + editortrcoin = {{toimetaja, t\~{o}lkija, kommenteerija ja sissejuhatus} % + {toim., t\~{o}lk., komm\adddotspace ja sissej\adddot}}, + editorstrcoin = {{toimetajad, t\~{o}lkijad, kommenteerijad ja sissejuhatus} % + {toim., t\~{o}lk., komm\adddotspace ja sissej\adddot}}, + editortrcofo = {{toimetaja, t\~{o}lkija, kommenteerija ja eess\~{o}na} % + {toim., t\~{o}lk., komm\adddotspace ja eess\adddot}}, + editorstrcofo = {{toimetajad, t\~{o}lkijad, kommenteerijad ja eess\~{o}na} % + {toim., t\~{o}lk., komm\adddotspace ja eess\adddot}}, + editortrcoaf = {{toimetaja, t\~{o}lkija, kommentator ja j\"{a}rels\~{o}na} % + {toim., t\~{o}lk., komm\adddotspace ja j\"{a}rels\adddot}}, + editorstrcoaf = {{toimetajad, t\~{o}lkijad, kommenteerijad ja j\"{a}rels\~{o}na} % + {toim., t\~{o}lk., komm\adddotspace ja j\"{a}rels\adddot}}, + editortranin = {{toimetaja, t\~{o}lkija, kommenteerija ja sissejuhatus} % + {toim., t\~{o}lk., annot\adddotspace ja sissej\adddot}}, + editorstranin = {{toimetajad, t\~{o}lkijad, kommenteerijad ja sissejuhatus} % + {toim., t\~{o}lk., annot\adddotspace ja sissej\adddot}}, + editortranfo = {{toimetaja, t\~{o}lkija, kommenteerija ja eess\~{o}na} % + {toim., t\~{o}lk., annot\adddotspace ja eess\adddot}}, + editorstranfo = {{toimetajad, t\~{o}lkijad, kommenteerijad ja eess\~{o}na} % + {toim., t\~{o}lk., annot\adddotspace ja eess\adddot}}, + editortranaf = {{toimetaja, t\~{o}lkija, kommenteerija ja j\"{a}rels\~{o}na} % + {toim., t\~{o}lk., annot\adddotspace ja j\"{a}rels\adddot}}, + editorstranaf = {{toimetajad, t\~{o}lkijad, kommenteerijad ja j\"{a}rels\~{o}na} % + {toim., t\~{o}lk., annot\adddotspace ja j\"{a}rels\adddot}}, + translatorco = {{t\~{o}lkija ja kommenteerija} % + {t\~{o}lk\adddotspace ja komm\adddot}}, + translatorsco = {{t\~{o}lkijad ja kommenteerijad} % + {t\~{o}lk\adddotspace ja komm\adddot}}, + translatoran = {{t\~{o}lkija ja kommenteerija} % + {t\~{o}lk\adddotspace ja annot\adddot}}, + translatorsan = {{t\~{o}lkijad ja kommenteerijad} % + {t\~{o}lk\adddotspace ja annot\adddot}}, + translatorin = {{t\~{o}lkija ja sissejuhatus} % + {t\~{o}lk\adddotspace ja sissej\adddot}}, + translatorsin = {{t\~{o}lkijad ja sissejuhatus} % + {t\~{o}lk\adddotspace ja sissej\adddot}}, + translatorfo = {{t\~{o}lkija ja eess\~{o}na} % + {t\~{o}lk\adddotspace ja eess\adddot}}, + translatorsfo = {{t\~{o}lkijad ja eess\~{o}na} % + {t\~{o}lk\adddotspace ja eess\adddot}}, + translatoraf = {{t\~{o}lkija ja j\"{a}rels\~{o}na} % + {t\~{o}lk\adddotspace ja j\"{a}rels\adddot}}, + translatorsaf = {{t\~{o}lkijad ja j\"{a}rels\~{o}na} % + {t\~{o}lk\adddotspace ja j\"{a}rels\adddot}}, + translatorcoin = {{t\~{o}lkija, kommenteerija ja sissejuhatus} % + {t\~{o}lk., komm\adddotspace ja sissej\adddot}}, + translatorscoin = {{t\~{o}lkijad, kommenteerijad ja sissejuhatus} % + {t\~{o}lk., komm\adddotspace ja sissej\adddot}}, + translatorcofo = {{t\~{o}lkija, kommenteerija ja eess\~{o}na} % + {t\~{o}lk., komm\adddotspace ja eess\adddot}}, + translatorscofo = {{t\~{o}lkijad, kommenteerijad ja eess\~{o}na} % + {t\~{o}lk., komm\adddotspace ja eess\adddot}}, + translatorcoaf = {{t\~{o}lkija, kommenteerija ja j\"{a}rels\~{o}na} % + {t\~{o}lk., komm\adddotspace ja j\"{a}rels\adddot}}, + translatorscoaf = {{t\~{o}lkijad, kommenteerijad ja j\"{a}rels\~{o}na} % + {t\~{o}lk., komm\adddotspace ja j\"{a}rels\adddot}}, + translatoranin = {{t\~{o}lkija, kommenteerija ja sissejuhatus} % + {t\~{o}lk., annot\adddotspace ja sissej\adddot}}, + translatorsanin = {{t\~{o}lkijad, kommenteerijad ja sissejuhatus} % + {t\~{o}lk., annot\adddotspace ja sissej\adddot}}, + translatoranfo = {{t\~{o}lkija, kommenteerija ja eess\~{o}na} % + {t\~{o}lk., annot\adddotspace ja eess\adddot}}, + translatorsanfo = {{t\~{o}lkijad, kommenteerijad ja eess\~{o}na} % + {t\~{o}lk., annot\adddotspace ja eess\adddot}}, + translatoranaf = {{t\~{o}lkija, kommenteerija ja j\"{a}rels\~{o}na} % + {t\~{o}lk., annot\adddotspace ja j\"{a}rels\adddot}}, + translatorsanaf = {{t\~{o}lkijad, kommenteerijad ja j\"{a}rels\~{o}na} % + {t\~{o}lk., annot\adddotspace ja j\"{a}rels\adddot}}, + organizer = {{korraldaja}{korraldaja}}, + organizers = {{korraldajad}{korraldajad}}, + byorganizer = {{korraldanud}{korraldanud}}, + byauthor = {{kirjutanud}{kirj\adddot}}, + byeditor = {{toimetanud}{toim\adddot}}, + bycompiler = {{koostanud}{koost\adddot}}, + byredactor = {{toimetanud}{toim\adddot}}, + byreviser = {{l\"{a}bivaadanud}{l\"{a}bivaadanud}}, + byreviewer = {{vaadanud}{vaadanud}}, + byfounder = {{asutanud}{asutanud}}, + bycontinuator = {{j\"{a}tkanud}{j\"{a}tkanud}}, + bycollaborator = {{koost\"{o}\"{o}s}{koost\"{o}\"{o}s}}, + bytranslator = {{\lbx@lfromlang t\~{o}lkinud}{\lbx@sfromlang t\~{o}lk\adddotspace}}, + bycommentator = {{kommenteerinud}{kommenteerinud}}, + byannotator = {{kommenteerinud}{kommenteerinud}},% FIXME: unsure + withcommentator = {{koos kommentaaridega}{koos kommentaaridega}},% FIXME: commentator name should be in the middle + withannotator = {{koos kommentaaridega}{koos kommentaaridega}}, + withintroduction = {{koos tutvustusega}{koos tutvustusega}},% FIXME: unsure + withforeword = {{koos eess\~{o}naga}{koos eess\adddot}}, + withafterword = {{koos j\"{a}rels\~{o}naga}{koos j\"{a}rels\adddot}}, + byeditortr = {{toimetanud ja \lbx@lfromlang t\~{o}lkinud} % + {toim\adddotspace ja \lbx@sfromlang t\~{o}lk\adddot}}, + byeditorco = {{toimetanud ja kommenteerinud} % + {toim\adddotspace ja komment\adddot}}, + byeditoran = {{toimetanud ja kommenteerinud} % + {toim\adddotspace ja komment\adddot}}, + byeditorin = {{toimetanud ja sissejuhatuse kirjutanud} % + {toim\adddotspace ja sissej\adddot}}, + byeditorfo = {{toimetanud ja eess\~{o}na kirjutanud} % + {toim\adddotspace ja eess\adddot}}, + byeditoraf = {{toimetanud ja j\"{a}rels\~{o}na kirjutanud} % + {toim\adddotspace ja j\"{a}rels\adddot}}, + byeditortrco = {{toimetanud, \lbx@lfromlang t\~{o}lkinud ja kommenteerinud} % + {toim., \lbx@sfromlang t\~{o}lk\adddotspace ja komm\adddot}}, + byeditortran = {{toimetanud, \lbx@lfromlang t\~{o}lkinud ja kommenteerinud} % + {toim., \lbx@sfromlang t\~{o}lk\adddotspace ja komment\adddot}}, + byeditortrin = {{toimetanud, \lbx@lfromlang t\~{o}lkinud ja sissejuhatuse kirjutanud} % + {toim., \lbx@sfromlang t\~{o}lk\adddotspace ja sissej\adddot}}, + byeditortrfo = {{toimetanud, \lbx@lfromlang t\~{o}lkinud ja eess\~{o}na kirjutanud} % + {toim., \lbx@sfromlang t\~{o}lk\adddotspace ja eess\adddot}}, + byeditortraf = {{toimetanud, \lbx@lfromlang t\~{o}lkinud ja j\"{a}rels\~{o}na kirjutanud} % + {toim., \lbx@sfromlang t\~{o}lk\adddotspace ja j\"{a}rels\adddot}}, + byeditorcoin = {{toimetanud, kommenteerinud ja sissejuhatuse kirjutanud} % + {toim., komm\adddotspace ja sissej\adddot}}, + byeditorcofo = {{toimetanud, kommenteerinud ja eess\~{o}na kirjutanud} % + {toim., komm\adddotspace ja eess\adddot}}, + byeditorcoaf = {{toimetanud, kommenteerinud ja j\"{a}rels\~{o}na kirjutanud} % + {toim., komm\adddotspace ja j\"{a}rels\adddot}}, + byeditoranin = {{toimetanud, kommenteerinud ja sissejuhatuse kirjutanud} % + {toim., komment\adddotspace ja sissej\adddot}}, + byeditoranfo = {{toimetanud, kommenteerinud ja eess\~{o}na kirjutanud} % + {toim., komment\adddotspace ja eess\adddot}}, + byeditoranaf = {{toimetanud, kommenteerinud ja j\"{a}rels\~{o}na kirjutanud} % + {toim., komment\adddotspace ja j\"{a}rels\adddot}}, + byeditortrcoin = {{toimetanud, \lbx@lfromlang t\~{o}lkinud, kommenteerinud ja sissejuhatuse kirjutanud} % + {toim., \lbx@sfromlang t\~{o}lk., komm\adddotspace ja sissej\adddot}}, + byeditortrcofo = {{toimetanud, \lbx@lfromlang t\~{o}lkinud, kommenteerinud ja eess\~{o}na kirjutanud} % + {toim., \lbx@sfromlang t\~{o}lk., komm\adddotspace ja eess\adddot}}, + byeditortrcoaf = {{toimetatud, \lbx@lfromlang t\~{o}lkinud, kommenteerinud ja j\"{a}rels\~{o}na kirjutanud} % + {toim., \lbx@sfromlang t\~{o}lk., komm\adddotspace ja j\"{a}rels\adddot}}, + byeditortranin = {{toimetanud, \lbx@lfromlang t\~{o}lkinud, kommenteerinud ja sissejuhatuse kirjutanud} % + {toim., \lbx@sfromlang t\~{o}lk., komment\adddotspace ja sissej\adddot}}, + byeditortranfo = {{toimetanud, \lbx@lfromlang t\~{o}lkinud, kommenteerinud ja eess\~{o}na kirjutanud} % + {toim., \lbx@sfromlang t\~{o}lk., komment\adddotspace ja eess\adddot}}, + byeditortranaf = {{toimetanud, \lbx@lfromlang t\~{o}lkinud, kommenteerinud ja j\"{a}rels\~{o}na kirjutanud} % + {toim., \lbx@sfromlang t\~{o}lk., komment\adddotspace ja j\"{a}rels\adddot}}, + bytranslatorco = {{\lbx@lfromlang t\~{o}lkinud ja kommenteerinud} % + {\lbx@sfromlang t\~{o}lk\adddotspace ja komm\adddot}}, + bytranslatoran = {{\lbx@lfromlang t\~{o}lkinud ja kommenteerinud} % + {\lbx@sfromlang t\~{o}lk\adddotspace ja komment\adddot}}, + bytranslatorin = {{\lbx@lfromlang t\~{o}lkinud ja sissejuhatuse kirjutanud} % + {\lbx@sfromlang t\~{o}lk\adddotspace ja sissej\adddot}}, + bytranslatorfo = {{\lbx@lfromlang t\~{o}lkinud ja eess\~{o}na kirjutanud} % + {\lbx@sfromlang t\~{o}lk\adddotspace ja eess\adddot}}, + bytranslatoraf = {{\lbx@lfromlang t\~{o}lkinud ja j\"{a}rels\~{o}na kirjutanud} % + {\lbx@sfromlang t\~{o}lk\adddotspace ja j\"{a}rels\adddot}}, + bytranslatorcoin = {{\lbx@lfromlang t\~{o}lkinud, kommenteerinud ja sissejuhatuse kirjutanud} % + {\lbx@sfromlang t\~{o}lk., komm\adddotspace ja sissej\adddot}}, + bytranslatorcofo = {{\lbx@lfromlang t\~{o}lkinud, kommenteerinud ja eess\~{o}na kirjutanud} % + {\lbx@sfromlang t\~{o}lk., komm\adddotspace ja eess\adddot}}, + bytranslatorcoaf = {{\lbx@lfromlang t\~{o}lkinud, kommenteerinud ja j\"{a}rels\~{o}na kirjutanud} % + {\lbx@sfromlang t\~{o}lk., komm\adddotspace ja j\"{a}rels\adddot}}, + bytranslatoranin = {{\lbx@lfromlang t\~{o}lkinud, kommenteerinud ja sissejuhatuse kirjutanud} % + {\lbx@sfromlang t\~{o}lk., komment\adddotspace ja sissej\adddot}}, + bytranslatoranfo = {{\lbx@lfromlang t\~{o}lkinud, kommenteerinud ja eess\~{o}na kirjutanud} % + {\lbx@sfromlang t\~{o}lk., komment\adddotspace ja eess\adddot}}, + bytranslatoranaf = {{\lbx@lfromlang t\~{o}lkinud, kommenteerinud ja j\"{a}rels\~{o}na kirjutanud} % + {\lbx@sfromlang t\~{o}lk., komment\adddotspace ja j\"{a}rels\adddot}}, + and = {{ja}{ja}}, + andothers = {{\mkbibemph{\autocap{e}t\addabbrvspace al\adddot}} % + {\mkbibemph{\autocap{e}t\addabbrvspace al\adddot}}}, + andmore = {{\mkbibemph{\autocap{e}t\addabbrvspace al\adddot}} % + {\mkbibemph{\autocap{e}t\addabbrvspace al\adddot}}}, + volume = {{k\"{o}ide}{k\"{o}ide}}, + volumes = {{k\"{o}ited}{k\"{o}ited}}, + involumes = {{osas}{osas}}, + jourvol = {{k\"{o}ide}{k\"{o}ide}}, + jourser = {{seeria}{seeria}}, + book = {{raamat}{raamat}}, + part = {{osa}{osa}}, + issue = {{number}{nr\adddot}}, + newseries = {{uus seerias}{uus seer\adddot}}, + oldseries = {{vana seeria}{vana seer\adddot}}, + edition = {{v\"{a}ljaanne}{v\"{a}ljaanne}}, + reprint = {{kordustr\"{u}kk}{kordustr\"{u}kk}}, + reprintof = {{kordustr\"{u}kk teosest}{kordustr\"{u}kk teosest}}, + reprintas = {{kordustr\"{u}kitud kui}{kordustr\"{u}kitud kui}}, + reprintfrom = {{kordustr\"{u}kitud teosest}{kordustr\"{u}kitud teosest}}, + reviewof = {{arvustus teosest}{arvustus teosest}}, + translationof = {{t\~{o}lge}{t\~{o}lge}}, + translationas = {{t\~{o}lgitud kui}{t\~{o}lgitud kui}}, + translationfrom = {{t\~{o}lgitud}{t\~{o}lgitud}}, + origpubas = {{algselt avaldatud kui}{algselt avaldatud kui}}, % FIXME: unsure, could also be 'esmatrükitud kui' + origpubin = {{algselt avaldatud aastal}{algselt avaldatud aastal}}, % FIXME: unsure, could also be 'esmatrükitud aastal' + astitle = {{pealkirjaga}{pealkirjaga}}, + bypublisher = {{v\"{a}lja andnud}{v\"{a}lja andnud}}, + page = {{lehek\"{u}lg}{lk\adddot}}, + pages = {{lehek\"{u}ljed}{lk\adddot}}, + column = {{veerg}{veerg}}, + columns = {{veerud}{veerud}}, + line = {{rida}{rida}}, + lines = {{read}{read}}, + nodate = {{kuup\"{a}ev puudub}{kuup\"{a}ev puudub}}, + verse = {{salm}{salm}}, + verses = {{salmid}{salmid}}, + section = {{jagu}{jagu}}, + sections = {{jaod}{jaod}}, + paragraph = {{l\~{o}ik}{l\~{o}ik}}, + paragraphs = {{l\~{o}igud}{l\~{o}igud}}, + pagetotal = {{lehek\"{u}lgi kokku}{lk\adddotspace kokku}},% FIXME: unsure + pagetotals = {{lehek\"{u}lgesid kokku}{lk\adddotspace kokku}},% FIXME: unsure + columntotal = {{veerge kokku}{veerge kokku}},% FIXME: unsure + columntotals = {{veergusid kokku}{veergusid kokku}},% FIXME: unsure + linetotal = {{ridu kokku}{ridu kokku}},% FIXME: unsure + linetotals = {{ridasid kokku}{ridasid kokku}},% FIXME: unsure + versetotal = {{salmi kokku}{salmi kokku}},% FIXME: unsure + versetotals = {{salmesid kokku}{salmesid kokku}},% FIXME: unsure + sectiontotal = {{jagusid kokku}{jagusid kokku}},% FIXME: unsure + sectiontotals = {{jagusid kokku}{jagusid kokku}},% FIXME: unsure + paragraphtotal = {{l\~{o}ike kokku}{l\~{o}ike kokku}},% FIXME: unsure + paragraphtotals = {{l\~{o}ikusid kokku}{l\~{o}ikusid kokku}},% FIXME: unsure + in = {{teoses}{teoses}}, + inseries = {{sarjas}{sarjas}}, + ofseries = {{sarjast}{sarjast}}, + number = {{number}{nr}}, + chapter = {{peat\"{u}kk}{ptk}}, + bathesis = {{bakalaureuse t\"{o}\"{o}}{bakalaureuse t\"{o}\"{o}}}, + mathesis = {{magistrit\"{o}\"{o}}{magistrit\"{o}\"{o}}}, + phdthesis = {{doktorit\"{o}\"{o}}{doktorit\"{o}\"{o}}}, + candthesis = {{kandidaadi v\"{a}itekiri}{kandidaadi v\"{a}itekiri}},% Literal translation of "Candidate thesis". + resreport = {{uuringuraport}{uuringuraport}}, + techreport = {{tehniline raport}{tehniline raport}}, + software = {{tarkvara}{tarkvara}}, + datacd = {{CD-ROM}{CD-ROM}}, + audiocd = {{audioplaat}{audioplaat}}, + version = {{versioon}{versioon}}, + url = {{aadress}{aadress}}, + urlfrom = {{saadaval}{saadaval}}, + urlseen = {{vaadatud}{vaadatud}}, + inpreparation = {{koostamisel}{koostamisel}}, + submitted = {{esitatud}{esitatud}}, + forthcoming = {{tulevases}{tulevases}}, + inpress = {{tr\"{u}kis}{tr\"{u}kis}}, + prepublished = {{eelnevalt avaldatud} {eelnevalt avaldatud}}, + citedas = {{edaspidi viidatud kui}{edaspidi viidatud kui}}, + thiscite = {{eriti}{eriti}}, + seenote = {{vaata m\"{a}rkus}{vt m\"{a}rkus}}, + quotedin = {{noteeritud}{noteeritud}}, % FIXME: unsure + idem = {{\mkbibemph{\autocap{i}dem}}{\mkbibemph{\autocap{i}dem}}}, % It its not necessary to translate Latin phrases. + idemsm = {{\mkbibemph{\autocap{i}dem}}{\mkbibemph{\autocap{i}dem}}}, + idemsf = {{\mkbibemph{\autocap{e}adem}}{\mkbibemph{\autocap{e}adem}}}, + idemsn = {{\mkbibemph{\autocap{i}dem}}{\mkbibemph{\autocap{i}dem}}}, + idempm = {{\mkbibemph{\autocap{e}idem}}{\mkbibemph{\autocap{e}idem}}}, + idempf = {{\mkbibemph{\autocap{e}aedem}}{\mkbibemph{\autocap{e}aedem}}}, + idempn = {{\mkbibemph{\autocap{e}adem}}{\mkbibemph{\autocap{e}adem}}}, + idempp = {{\mkbibemph{\autocap{e}idem}}{\mkbibemph{\autocap{e}idem}}}, + ibidem = {{\mkbibemph{\autocap{i}bidem}}{\mkbibemph{\autocap{i}bid\adddot}}}, + opcit = {{\mkbibemph{\autocap{o}p\adddotspace cit\adddot}}{\mkbibemph{\autocap{o}p\adddotspace cit\adddot}}}, + loccit = {{\mkbibemph{\autocap{l}oc\adddotspace cit\adddot}}{\mkbibemph{\autocap{l}oc\adddotspace cit\adddot}}}, + confer = {{\mkbibemph{\autocap{c}f\adddot}}{\mkbibemph{\autocap{c}f\adddot}}}, + sequens = {{\mkbibemph{\autocap{s}q\adddot}}{\mkbibemph{\autocap{s}q\adddot}}}, + sequentes = {{\mkbibemph{\autocap{s}qq\adddot}}{\mkbibemph{\autocap{s}qq\adddot}}}, + passim = {{\mkbibemph{\autocap{p}assim}}{\mkbibemph{\autocap{p}ass\adddot}}}, + see = {{vaata}{vt}}, + seealso = {{vaata ka}{vt ka}}, + backrefpage = {{viidatud lehel}{viidatud lehel}}, + backrefpages = {{viidatud lehek\"{u}ljed}{viidatud lehek\"{u}ljed}}, + january = {{jaanuar}{jaanuar}}, + february = {{veebruar}{veebruar}}, + march = {{m\"{a}rts}{m\"{a}rts}}, + april = {{aprill}{aprill}}, + may = {{mai}{mai}}, + june = {{juuni}{juuni}}, + july = {{juuli}{juuli}}, + august = {{august}{august}}, + september = {{september}{september}}, + october = {{oktoober}{oktoober}}, + november = {{november}{november}}, + december = {{detsember}{detsember}}, + langamerican = {{Ameerika inglise keel}{Ameerika inglise keel}}, + langbrazilian = {{brasiilia keel}{brasiilia keel}}, + langbulgarian = {{bulgaaria keel}{bulgaaria keel}}, + langcatalan = {{katalaani keel}{katalaani keel}}, + langcroatian = {{horvaadi keel}{horvaadi keel}}, + langczech = {{t\v{s}ehhi keel}{t\v{s}ehhi keel}}, + langdanish = {{taani keel}{taani keel}}, + langdutch = {{hollandi keel}{hollandi keel}}, + langenglish = {{inglise keel}{inglise keel}}, + langestonian = {{eesti keel}{eesti keel}}, + langfinnish = {{soome keel}{soome keel}}, + langfrench = {{prantsuse keel}{prantsuse keel}}, + langgalician = {{galeegi keel}{galeegi keel}}, + langgerman = {{saksa keel}{saksa keel}}, + langgreek = {{kreeka keel}{kreeka keel}}, + langhungarian = {{ungari keel}{ungari keel}}, + langitalian = {{itaalia keel}{itaalia keel}}, + langjapanese = {{jaapani keel}{jaapani keel}}, + langlatin = {{ladina keel}{ladina keel}}, + langlatvian = {{l\"{a}ti keel}{l\"{a}ti keel}}, + langnorwegian = {{norra keel}{norra keel}}, + langpolish = {{poola keel}{poola keel}}, + langportuguese = {{portugali keel}{portugali keel}}, + langrussian = {{vene keel}{vene keel}}, + langslovak = {{slovakia keel}{slovakia keel}}, + langslovene = {{sloveeni keel}{sloveeni keel}}, + langspanish = {{hispaania keel}{hispaania keel}}, + langswedish = {{rootsi keel}{rootsi keel}}, + langukrainian = {{ukraina keel}{ukraina keel}}, + fromamerican = {{Ameerika inglise keelest}{Ameerika inglise keelest}}, + frombrazilian = {{brasiilia keelest}{brasiilia keelest}}, + frombulgarian = {{bulgaaria keelest}{bulgaaria keelest}}, + fromcatalan = {{katalani keelest}{kalatalani keelest}}, + fromcroatian = {{horvaadi keelest}{horvaadi keelest}}, + fromczech = {{t\v{s}ehhi keelest}{t\v{s}ehhi keelest}}, + fromdanish = {{taani keelest}{taani keelest}}, + fromdutch = {{hollandi keelest}{hollandi keelest}}, + fromenglish = {{inglise keelest}{inglise keelest}}, + fromestonian = {{eesti keelest}{eesti keelest}}, + fromfinnish = {{soome keelest}{soome keelest}}, + fromfrench = {{prantsuse keelest}{prantsuse keelest}}, + fromgalician = {{galeegi keelest}{galeegi keelest}}, + fromgerman = {{saksa keelest}{saksa keelest}}, + fromgreek = {{kreeka keelest}{kreeka keelest}}, + fromhungarian = {{ungari keelest}{ungari keelest}}, + fromitalian = {{itaalia keelest}{itaalia keelest}}, + fromjapanese = {{jaapani keelest}{jaapani keelest}}, + fromlatin = {{ladina keelest}{ladina keelest}}, + fromlatvian = {{l\"{a}ti keelest}{l\"{a}ti keelest}}, + fromnorwegian = {{norra keelest}{norra keelest}}, + frompolish = {{poola keelest} {poola keelest}}, + fromportuguese = {{portugali keelest}{portugali keelest}}, + fromrussian = {{vene keelest}{vene keelest}}, + fromslovak = {{slovakia keelest}{slovakia keelest}}, + fromslovene = {{sloveenia keelest}{sloveenia keelest}}, + fromspanish = {{hispaania keelest}{hispaania keelest}}, + fromswedish = {{rootsi keelest}{rootsi keelest}}, + fromukrainian = {{ukraina keelest}{ukraina keelest}}, + countryde = {{Saksamaa}{DE}}, + countryeu = {{Euroopa Liit}{EL}}, + countryep = {{Euroopa Parlament}{EP}}, + countryfr = {{Prantsusmaa}{FR}}, + countryuk = {{Suurbritannia}{GB}}, + countryus = {{Ameerika}{US}}, + patent = {{patent}{pat\adddot}}, + patentde = {{Saksa patent}{Saksa pat\adddot}}, + patenteu = {{Euroopa patent}{Euroopa pat\adddot}}, + patentfr = {{Prantsuse patent}{Prantsuse pat\adddot}}, + patentuk = {{Briti patent}{Briti pat\adddot}}, + patentus = {{U.S\adddotspace patent}{U.S\adddotspace pat\adddot}}, + patreq = {{patendi taotlus}{pat\adddotspace taotl\adddot}}, + patreqde = {{Saksa patendi taotlus}{Saksa pat\adddotspace taotl\adddot}}, + patreqeu = {{Euroopa patendi taotlus}{Euroopa pat\adddotspace taotl\adddot}}, + patreqfr = {{Prantsuse patendi taotlus}{Prantsuse pat\adddotspace taotl\adddot}}, + patrequk = {{Briti patendi taotlus}{Briti pat\adddotspace taotl\adddot}}, + patrequs = {{U.S\adddotspace patendi taotlus.}{U.S\adddotspace pat\adddotspace taotl\adddot}}, + file = {{fail}{fail}}, + library = {{raamatukogu}{raamatukogu}}, + abstract = {{teesid}{teesid}}, + annotation = {{kommentaarid}{kommentaarid}}, + commonera = {{meie ajaarvamise j\"argi}{m\adddot a\adddot j}}, + beforecommonera = {{enne meie ajaarvamist}{e\adddot m\adddot a}}, + annodomini = {{p\"arast Kristust}{pKr}}, + beforechrist = {{enne Kristust}{eKr}}, + circa = {{\mkbibemph{\autocap{c}a}}{\mkbibemph{\autocap{c}a}}}, + spring = {{kevadel}{kevadel}}, + summer = {{suvel}{suvel}}, + autumn = {{s\"{u}gisel}{s\"{u}gisel}}, + winter = {{talvel}{talvel}}, + am = {{AM}{AM}}, + pm = {{PM}{PM}}, +} + + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/lbx/finnish.lbx b/macros/latex/contrib/biblatex/latex/lbx/finnish.lbx new file mode 100644 index 0000000000..372b537d97 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/lbx/finnish.lbx @@ -0,0 +1,603 @@ +\ProvidesFile{finnish.lbx} +[\abx@lbxid] + +% Translator's notes: +% Some translations look akward but they are made in such a way +% that they look as good as possible in running text. +% Source for some items in translations: Kielikello 3/1998. +% and Liisa Junno: Kirjastosanasto 1. BTJ Kirjastopalvelu 2006. + +\DeclareRedundantLanguages{finnish}{finnish} + +\NewBibliographyString{% + basicjanuary, + basicfebruary, + basicmarch, + basicapril, + basicmay, + basicjune, + basicjuly, + basicaugust, + basicseptember, + basicoctober, + basicnovember, + basicdecember% +} + +\DeclareBibliographyExtras{% + % dashes: may be either \textendash or \textemdash + \protected\def\bibrangedash{% + \textendash\penalty\hyphenpenalty}% breakable dash + \let\finalandcomma=\empty + \let\finalandsemicolon=\empty + \protected\def\mkbibordinal#1{\stripzeros{#1}\adddot}% + \protected\def\mkbibmascord{\mkbibordinal}% + \protected\def\mkbibfemord{\mkbibordinal}% + \protected\def\mkbibneutord{\mkbibordinal}% + \protected\def\mkbibdatelong#1#2#3{% + \iffieldundef{#3} + {} + {\mkbibordinal{\thefield{#3}}% + \iffieldundef{#2}{}{\nobreakspace}}% + \iffieldundef{#2} + {} + {\iffieldundef{#3} + {\lbx@fi@mkbibmonthbasic{\thefield{#2}}% + \iffieldundef{#1}{}{\space}}% + {\mkbibmonth{\thefield{#2}}% + \iffieldundef{#1}{}{\space}}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}% + \protected\def\mkbibdateshort#1#2#3{% + \iffieldundef{#3} + {} + {\mkdayzeros{\thefield{#3}}\adddot + \iffieldundef{#2}{}{\thinspace}}% + \iffieldundef{#2} + {} + {\mkmonthzeros{\thefield{#2}}% + \iffieldundef{#1} + {} + {\iffieldundef{#3}{/}{\adddot\thinspace}}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}% + \savecommand\lbx@lfromlang + \savecommand\lbx@sfromlang + \def\lbx@lfromlang{% + \iflistundef{origlanguage} + {} + {\printlist[lfromoriglanguage]{origlanguage}\space}}% + \def\lbx@sfromlang{% + \iflistundef{origlanguage} + {} + {\printlist[sfromoriglanguage]{origlanguage}\space}}% + \savebibmacro{in:}% + \renewbibmacro{in:}{% + \iffieldequalstr{entrytype}{article} + {} + {\printtext{\bibstring{in}\intitlepunct}}}% + \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{% + \iffieldundef{#1}{} + {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}% + \iffieldundef{#2}{} + {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}% + \iffieldundef{#3}{} + {\printtext{\mktimezeros{\thefield{#3}}}}% + \setunit{}% + \iffieldundef{#4}{} + {\bibtimezonesep + \mkbibtimezone{\thefield{#4}}}}% + \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{% + \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep + \forcezerosmdt{\thefield{#2}}% + \iffieldundef{#3}{} + {\bibtimesep + \forcezerosmdt{\thefield{#3}}}% + \space + \ifnumless{\thefield{#1}}{12} + {\bibstring{am}} + {\bibstring{pm}}% + \iffieldundef{#4}{} + {\space\bibtimezonesep + \parentext{\mkbibtimezone{\thefield{#4}}}}}% + \protected\def\mkbibseasondateshort#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% + \protected\def\mkbibseasondatelong#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% +} + +\UndeclareBibliographyExtras{% + \restorecommand\lbx@lfromlang + \restorecommand\lbx@sfromlang + \restorebibmacro{in:}% +} + +\DeclareBibliographyStrings{% + bibliography = {{Kirjallisuusluettelo}{Kirjallisuus}}, + references = {{Viitteet}{Viitteet}}, + shorthands = {{Lyhenteet}{Lyhenteet}}, + editor = {{toimittanut}{toim\adddot}}, + editors = {{toimittaneet}{toim\adddot}},% Abbreviation is the same in singular and plural. + compiler = {{koontanut}{koontanut}},% FIXME: unsure + compilers = {{koontaneet}{koontaneet}},% FIXME: unsure + redactor = {{toimittanut}{toim\adddot}},% FIXME: unsure + redactors = {{toimittaneet}{toim\adddot}},% FIXME: unsure + reviser = {{toimittanut}{toim\adddot}},% FIXME: unsure + revisers = {{toimittaneet}{toim\adddot}},% FIXME: unsure + founder = {{perustaja}{perustaja}}, + founders = {{perustajat}{perustajat}}, + continuator = {{jatkaja}{jatkaja}},% FIXME: unsure + continuators = {{jatkajat}{jatkajat}},% FIXME: unsure + collaborator = {{avustaja}{avustaja}},% FIXME: unsure + collaborators = {{avustajat}{avustajat}},% FIXME: unsure + translator = {{k\"a\"ant\"anyt}{k\"a\"ant\adddot}}, + translators = {{k\"a\"ant\"anyt}{k\"a\"ant\adddot}}, + commentator = {{kommentaarin kirjoittanut}{kommentaarin kirjoittanut}}, + commentators = {{kommentaarin kirjoittaneet}{kommentaarin kirjoittaneet}}, + annotator = {{selityksin varustanut}{selityksin varustanut}},% FIXME: unsure + annotators = {{selityksin varustaneet}{selityksin varustaneet}},% FIXME: unsure + commentary = {{kommentaari}{kommentaari}}, + annotations = {{selitykset}{selitykset}},% FIXME: unsure + introduction = {{johdanto}{johdanto}}, + foreword = {{esipuhe}{esipuhe}},% Is "alkusanat" better? + afterword = {{j\"alkisanat}{j\"alkisanat}}, + editortr = {{toimittanut ja k\"a\"ant\"anyt}% + {toim\adddotspace ja k\"a\"ant\adddot}}, + editorstr = {{toimittaneet ja k\"a\"ant\"aneet}% + {toim\adddotspace ja k\"a\"ant\adddot}}, + editorco = {{toimittanut ja kommentaarin kirjoittanut}% + {toimittanut ja kommentaarin kirjottanut}}, + editorsco = {{toimittaneet ja kommentaarin kirjoittaneet}% + {toimittaneet ja kommentaarin kirjoittaneet}}, + editoran = {{toimittanut ja selityksin varustanut}% FIXME: unsure + {toimittanut ja selityksin varustanut}}, + editorsan = {{toimittaneet ja selityksin varustaneet}% FIXME: unsure + {toimittaneet ja selityksin varustaneet}}, + editorin = {{toimittanut ja johdannon kirjoittanut}% + {toimittanut ja johdannon kirjoittanut}}, + editorsin = {{toimittaneet ja johdannon kirjoittaneet}% + {toimittaneet ja johdannon kirjoittaneet}}, + editorfo = {{toimittanut ja esipuheen kirjoittanut}% + {toimittanut ja esipuheen kirjoittanut}}, + editorsfo = {{toimittaneet ja esipuheen kirjoittaneet}% + {toimittaneet ja esipuheen kirjoittaneet}}, + editoraf = {{toimittanut ja j\"alkisanat kirjoittanut}% + {toimittanut ja j\"alkisanat kirjoittanut}}, + editorsaf = {{toimittaneet ja j\"alkisanat kirjoittaneet}% + {toimittaneet ja j\"alkisanat kirjoittaneet}}, + editortrco = {{toimittanut, k\"a\"ant\"anyt ja kommentaarin kirjoittanut}% + {toimittanut, k\"a\"ant\"anyt ja kommentaarin kirjoittanut}}, + editorstrco = {{toimittaneet, k\"a\"ant\"aneet ja kommentaarin kirjoittaneet}% + {toimittaneet, k\"a\"ant\"aneet ja kommentaarin kirjoittaneet}}, + editortran = {{toimittanut, k\"a\"ant\"anyt ja selityksin varustanut}% FIXME: unsure + {toimittanut, k\"a\"ant\"anyt ja selityksin varustanut}}, + editorstran = {{toimittaneet, k\"a\"ant\"aneet ja selityksin varustaneet}% FIXME: unsure + {toimittaneet, k\"a\"ant\"aneet ja selityksin varustaneet}}, + editortrin = {{toimittanut, k\"a\"ant\"anyt ja johdannon kirjoittanut}% + {toimittanut, k\"a\"ant\"anyt ja johdannon kirjoittanut}}, + editorstrin = {{toimittaneet, k\"a\"ant\"aneet ja johdannon kirjoittaneet}% + {toimittaneet, k\"a\"ant\"aneet ja johdannon kirjoittaneet}}, + editortrfo = {{toimittanut, k\"a\"ant\"anyt ja esipuheen kirjoittanut}% + {toimittanut, k\"a\"ant\"anyt ja esipuheen kirjoittanut}}, + editorstrfo = {{toimittaneet, k\"a\"ant\"aneet ja esipuheen kirjoittaneet}% + {toimittaneet, k\"a\"ant\"aneet ja esipuheen kirjoittaneet}}, + editortraf = {{toimittanut, k\"a\"ant\"anyt ja j\"alkisanat kirjoittanut}% + {toimittanut, k\"a\"ant\"anyt ja j\"alkisanat kirjoittanut}}, + editorstraf = {{toimittaneet, k\"a\"ant\"aneet ja j\"alkisanat kirjoittaneet}% + {toimittaneet, k\"a\"ant\"aneet ja j\"alkisanat kirjoittaneet}}, + editorcoin = {{toimittanut, kommentaarin ja johdannon kirjoittanut}% + {toimittanut, kommentaarin ja johdannon kirjoittanut}}, + editorscoin = {{toimittaneet, kommentaarin ja johdannon kirjoittaneet}% + {toimittaneet, kommentaarin ja johdannon kirjoittaneet}}, + editorcofo = {{toimittanut, kommentaarin ja esipuheen kirjoittanut}% + {toimittanut, kommentaarin ja esipuheen kirjoittanut}}, + editorscofo = {{toimittaneet, kommentaarin ja esipuheen kirjoittaneet}% + {toimittaneet, kommentaarin ja esipuheen kirjoittaneet}}, + editorcoaf = {{toimittanut, kommentaarin ja j\"alkisanat kirjoittanut}% + {toimittanut, kommentaarin ja j\"alkisanat kirjoittanut}}, + editorscoaf = {{toimittaneet, kommentaarin ja j\"alkisanat kirjoittaneet}% + {toimittaneet, kommentaarin ja j\"alkisanat kirjoittaneet}}, + editoranin = {{toimittanut, selitykset ja johdannon kirjoittanut}% + {toimittanut, selitykset ja johdannon kirjoittanut}}, + editorsanin = {{toimittaneet, selitykset ja johdannon kirjoittaneet}% + {toimittaneet, selitykset ja johdannon kirjoittaneet}}, + editoranfo = {{toimittanut, selitykset ja esipuheen kirjoittanut}% + {toimittanut, selitykset ja esipuheen kirjoittanut}}, + editorsanfo = {{toimittaneet, selitykset ja esipuheen kirjoittaneet}% + {toimittaneet, selitykset ja esipuheen kirjoittaneet}}, + editoranaf = {{toimittanut, selitykset ja j\"alkisanat kirjoittanut}% + {toimittanut, selitykset ja j\"alkisanat kirjoittanut}}, + editorsanaf = {{toimittaneet, selitykset ja j\"alkisanat kirjoittaneet}% + {toimittaneet, selitykset ja j\"alkisanat kirjoittaneet}}, + editortrcoin = {{toimittanut, k\"a\"ant\"anyt, kommentaarin ja johdannon kirjoittanut}% + {toimittanut, k\"a\"ant\"anyt, kommentaarin ja johdannon kirjoittanut}}, + editorstrcoin = {{toimittaneet, k\"a\"ant\"aneet, kommentaarin ja johdannon kirjoittaneet}% + {toimittaneet, k\"a\"ant\"aneet, kommentaarin ja johdannon kirjoittaneet}}, + editortrcofo = {{toimittanut, k\"a\"ant\"anyt, kommentaarin ja esipuheen kirjoittanut}% + {toimittanut, k\"a\"ant\"anyt, kommentaarin ja esipuheen kirjoittanut}}, + editorstrcofo = {{toimittaneet, k\"a\"ant\"aneet, kommentaarin ja esipuheen kirjoittaneet}% + {toimittaneet, k\"a\"ant\"aneet, kommentaarin ja esipuheen kirjoittaneet}}, + editortrcoaf = {{toimittanut, k\"a\"ant\"anyt, kommentaarin ja j\"alkisanat kirjoittanut}% + {toimittanut, k\"a\"ant\"anyt, kommentaarin ja j\"alkisanat kirjoittanut}}, + editorstrcoaf = {{toimittaneet, k\"a\"ant\"aneet, kommentaarin ja j\"alkisanat kirjoittaneet}% + {toimittaneet, k\"a\"ant\"aneet, kommentaarin ja j\"alkisanat kirjoittaneet}}, + editortranin = {{toimittanut, k\"a\"ant\"anyt, selitykset ja johdannon kirjoittanut}% + {toimittanut, k\"a\"ant\"anyt, selitykset ja johdannon kirjoittanut}}, + editorstranin = {{toimittaneet, k\"a\"ant\"aneet, selitykset ja johdannon kirjoittaneet}% + {toimittaneet, k\"a\"ant\"aneet, selitykset ja johdannon kirjoittaneet}}, + editortranfo = {{toimittanut, k\"a\"ant\"anyt, selitykset ja esipuheen kirjoittanut}% + {toimittanut, k\"a\"ant\"anyt, selitykset ja esipuheen kirjoittanut}}, + editorstranfo = {{toimittaneet, k\"a\"ant\"aneet, selitykset ja esipuheen kirjoittaneet}% + {toimittaneet, k\"a\"ant\"aneet, selitykset ja esipuheen kirjoittaneet}}, + editortranaf = {{toimittanut, k\"a\"ant\"anyt, selitykset ja j\"alkisanat kirjoittanut}% + {toimittanut, k\"a\"ant\"anyt, selitykset ja j\"alkisanat kirjoittanut}}, + editorstranaf = {{toimittaneet, k\"a\"ant\"aneet, selitykset ja j\"alkisanat kirjoittaneet}% + {toimittaneet, k\"a\"ant\"aneet, selitykset ja j\"alkisanat kirjoittaneet}}, + translatorco = {{k\"a\"ant\"anyt ja kommentaarin kirjoittanut}% + {k\"a\"ant\"anyt ja kommentaarin kirjoittanut}}, + translatorsco = {{k\"a\"ant\"aneet ja kommentaarin kirjoittaneet}% + {k\"a\"ant\"aneet ja kommentaarin kirjoittaneet}}, + translatoran = {{k\"a\"ant\"anyt ja selityksin varustanut}% + {k\"a\"ant\"anyt ja selityksin varustanut}}, + translatorsan = {{k\"a\"ant\"aneet ja selityksin varustaneet}% + {k\"a\"ant\"aneet ja selityksin varustaneet}}, + translatorin = {{k\"a\"ant\"anyt ja johdannon kirjoittanut}% + {k\"a\"ant\"anyt ja johdannon kirjoittanut}}, + translatorsin = {{k\"a\"ant\"aneet ja johdannon kirjoittaneet}% + {k\"a\"ant\"aneet ja johdannon kirjoittaneet}}, + translatorfo = {{k\"a\"ant\"anyt ja esipuheen kirjoittanut}% + {k\"a\"ant\"anyt ja esipuheen kirjoittanut}}, + translatorsfo = {{k\"a\"ant\"aneet ja esipuheen kirjoittaneet}% + {k\"a\"ant\"aneet ja esipuheen kirjoittaneet}}, + translatoraf = {{k\"a\"ant\"anyt ja j\"alkisanat kirjoittanut}% + {k\"a\"ant\"anyt ja j\"alkisanat kirjoittanut}}, + translatorsaf = {{k\"a\"ant\"aneet ja j\"alkisanat kirjoittaneet}% + {k\"a\"ant\"aneet ja j\"alkisanat kirjoittaneet}}, + translatorcoin = {{k\"a\"ant\"anyt, kommentaarin ja johdannon kirjoittanut}% + {k\"a\"ant\"anyt, kommentaarin ja johdannon kirjoittanut}}, + translatorscoin = {{k\"a\"ant\"aneet, kommentaarin ja johdannon kirjoittaneet}% + {k\"a\"ant\"aneet, kommentaarin ja johdannon kirjoittaneet}}, + translatorcofo = {{k\"a\"ant\"anyt, kommentaarin ja esipuheen kirjoittanut}% + {k\"a\"ant\"anyt, kommentaarin ja esipuheen kirjoittanut}}, + translatorscofo = {{k\"a\"ant\"aneet, kommentaarin ja esipuheen kirjoittaneet}% + {k\"a\"ant\"aneet, kommentaarin ja esipuheen kirjoittaneet}}, + translatorcoaf = {{k\"a\"ant\"anyt, kommentaarin ja j\"alkisanat kirjoittanut}% + {k\"a\"ant\"anyt, kommentaarin ja j\"alkisanat kirjoittanut}}, + translatorscoaf = {{k\"a\"ant\"aneet, kommentaarin ja j\"alkisanat kirjoittaneet}% + {k\"a\"ant\"aneet, kommentaarin ja j\"alkisanat kirjoittaneet}}, + translatoranin = {{k\"a\"ant\"anyt, selitykset ja johdannon kirjoittanut}% + {k\"a\"ant\"anyt, selitykset ja johdannon kirjoittanut}}, + translatorsanin = {{k\"a\"ant\"aneet, selitykset ja johdannon kirjoittaneet}% + {k\"a\"ant\"aneet, selitykset ja johdannon kirjoittaneet}}, + translatoranfo = {{k\"a\"ant\"anyt, selitykset ja esipuheen kirjoittanut}% + {k\"a\"ant\"anyt, selitykset ja esipuheen kirjoittanut}}, + translatorsanfo = {{k\"a\"ant\"aneet, selitykset ja esipuheen kirjoittaneet}% + {k\"a\"ant\"aneet, selitykset ja esipuheen kirjoittaneet}}, + translatoranaf = {{k\"a\"ant\"anyt, selitykset ja j\"alkisanat kirjoittanut}% + {k\"a\"ant\"anyt, selitykset ja j\"alkisanat kirjoittanut}}, + translatorsanaf = {{k\"a\"ant\"aneet, selitykset ja j\"alkisanat kirjoittaneet}% + {k\"a\"ant\"aneet, selitykset ja j\"alkisanat kirjoittaneet}}, + organizer = {{toimittanut}{toim\adddot}},% FIXME: unsure + organizers = {{toimittaneet}{toim\adddot}},% FIXME: unsure + byorganizer = {{toimittanut}{toim\adddot}},% FIXME: unsure + byauthor = {{kirjoittanut}{kirj\adddot}}, + byeditor = {{toimittanut}{toim\adddot}}, + bycompiler = {{koontanut}{koontanut}}, + byredactor = {{toimittanut}{toim\adddot}},% FIXME: unsure + byreviser = {{toimittanut}{toim\adddot}},% FIXME: unsure + byreviewer = {{toimittanut}{toim\adddot}},% FIXME: unsure + byfounder = {{perustanut}{perustanut}},% FIXME: unsure + bycontinuator = {{jatkanut}{jatkanut}},% FIXME: unsure + bycollaborator = {{yhteisty\"oss\"a}{yhteisty\"oss\"a}},% FIXME: Bad translation. Impossible to translate with one word. + bytranslator = {{\lbx@lfromlang k\"a\"ant\"anyt}{\lbx@sfromlang k\"a\"ant\adddot}}, + bycommentator = {{kommentaarin kirjoittanut}{kommentaarin kirjoittanut}},% FIXME: unsure + byannotator = {{selityksin varustanut}{selityksin varustanut}},% FIXME: unsure + withcommentator = {{kommentaarin kirjoittanut}{kommentaarin kirjoittanut}},% FIXME: unsure + withannotator = {{selityksin varustanut}{selityksin varustanut}},% FIXME: unsure + withintroduction = {{johdannon kirjottanut}{johdannon kirjottanut}}, + withforeword = {{esipuheen kirjoittanut}{esipuheen kirjoittanut}}, + withafterword = {{j\"alkisanat kirjoittanut}{j\"alkisanat kirjoittanut}}, + byeditortr = {{toimittanut ja \lbx@lfromlang k\"a\"ant\"anyt}% + {toim\adddotspace ja \lbx@sfromlang k\"a\"ant\adddot}}, + byeditorco = {{toimittanut ja kommentaarin kirjoittanut}% + {toimittanut ja kommentaarin kirjoittanut}}, + byeditoran = {{toimittanut ja selityksin varustanut}% + {toimittanut ja selityksin varustanut}}, + byeditorin = {{toimittanut ja johdannon kirjoittanut}% + {toimittanut ja johdannon kirjoittanut}}, + byeditorfo = {{toimittanut ja esipuheen kirjoittanut}% + {toimittanut ja esipuheen kirjoittanut}}, + byeditoraf = {{toimittanut ja j\"alkisanat kirjoittanut}% + {toimittanut ja j\"alkisanat kirjoittanut}}, + byeditortrco = {{toimittanut, \lbx@lfromlang k\"a\"ant\"anyt ja kommentaarin kirjoittanut}% + {toimittanut, \lbx@sfromlang k\"a\"ant\"anyt ja kommentaarin kirjoittanut}}, + byeditortran = {{toimittanut, \lbx@lfromlang k\"a\"ant\"anyt ja selityksin varustanut}% + {toimittanut, \lbx@sfromlang k\"a\"ant\"anyt ja selityksin varustanut}}, + byeditortrin = {{toimittanut, \lbx@lfromlang k\"a\"ant\"anyt ja johdannon kirjoittanut}% + {toimittanut, \lbx@sfromlang k\"a\"ant\"anyt ja johdannon kirjoittanut}}, + byeditortrfo = {{toimittanut, \lbx@lfromlang k\"a\"ant\"anyt ja esipuheen kirjoittanut}% + {toimittanut, \lbx@sfromlang k\"a\"ant\"anyt ja esipuheen kirjoittanut}}, + byeditortraf = {{toimittanut, \lbx@lfromlang k\"a\"ant\"anyt ja j\"alkisanat kirjoittanut}% + {toimittanut, \lbx@sfromlang k\"a\"ant\"anyt ja j\"alkisanat kirjoittanut}}, + byeditorcoin = {{toimittanut, kommentaarin ja johdannon kirjoittanut}% + {toimittanut, kommentaarin ja johdannon kirjoittanut}}, + byeditorcofo = {{toimittanut, kommentaarin ja esipuheen kirjoittanut}% + {toimittanut, kommentaarin ja esipuheen kirjoittanut}}, + byeditorcoaf = {{toimittanut, kommentaarin ja j\"alkisanat kirjoittanut}% + {toimittanut, kommentaarin ja j\"alkisanat kirjoittanut}}, + byeditoranin = {{toimittanut, selitykset ja johdannon kirjoittanut}% + {toimittanut, selitykset ja johdannon kirjoittanut}}, + byeditoranfo = {{toimittanut, selitykset ja esipuheen kirjoittanut}% + {toimittanut, selitykset ja esipuheen kirjoittanut}}, + byeditoranaf = {{toimittanut, selitykset ja j\"alkisanat kirjoittanut}% + {toimittanut, selitykset ja j\"alkisanat kirjoittanut}}, + byeditortrcoin = {{toimittanut, \lbx@lfromlang k\"a\"ant\"anyt, kommentaarin ja johdannon kirjoittanut}% + {toimittanut, \lbx@sfromlang k\"a\"ant\"anyt, kommentaarin ja johdannon kirjoittanut}}, + byeditortrcofo = {{toimittanut, \lbx@lfromlang k\"a\"ant\"anyt, kommentaarin ja esipuheen kirjoittanut}% + {toimittanut, \lbx@sfromlang k\"a\"ant\"anyt, kommentaarin ja esipuheen kirjoittanut}}, + byeditortrcoaf = {{toimittanut, \lbx@lfromlang k\"a\"ant\"anyt, kommentaarin ja j\"alkisanat kirjoittanut}% + {toimittanut, \lbx@sfromlang k\"a\"ant\"anyt, kommentaarin ja j\"alkisanat kirjoittanut}}, + byeditortranin = {{toimittanut, \lbx@lfromlang k\"a\"ant\"anyt, selitykset ja johdannon kirjoittanut}% + {toimittanut, \lbx@sfromlang k\"a\"ant\"anyt, selitykset ja johdannon kirjoittanut}}, + byeditortranfo = {{toimittanut, \lbx@lfromlang k\"a\"ant\"anyt, selitykset ja esipuheen kirjoittanut}% + {toimittanut, \lbx@sfromlang k\"a\"ant\"anyt, selitykset ja esipuheen kirjoittanut}}, + byeditortranaf = {{toimittanut, \lbx@lfromlang k\"a\"ant\"anyt, selitykset ja j\"alkisanat kirjoittanut}% + {toimittanut, \lbx@sfromlang k\"a\"ant\"anyt, selitykset ja j\"alkisanat kirjoittanut}}, + bytranslatorco = {{\lbx@lfromlang k\"a\"ant\"anyt ja kommentaarin kirjoittanut}% + {\lbx@sfromlang k\"a\"ant\"anyt ja kommentaarin kirjoittanut}}, + bytranslatoran = {{\lbx@lfromlang k\"a\"ant\"anyt ja selityksin varustanut}% + {\lbx@sfromlang k\"a\"ant\"anyt ja selityksin varustanut}}, + bytranslatorin = {{\lbx@lfromlang k\"a\"ant\"anyt ja johdannon kirjoittanut}% + {\lbx@sfromlang k\"a\"ant\"anyt ja johdannon kirjoittanut}}, + bytranslatorfo = {{\lbx@lfromlang k\"a\"ant\"anyt ja esipuheen kirjoittanut}% + {\lbx@sfromlang k\"a\"ant\"anyt ja esipuheen kirjoittanut}}, + bytranslatoraf = {{\lbx@lfromlang k\"a\"ant\"anyt ja j\"alkisanat kirjoittanut}% + {\lbx@sfromlang k\"a\"ant\"anyt ja j\"alkisanat kirjoittanut}}, + bytranslatorcoin = {{\lbx@lfromlang k\"a\"ant\"anyt, kommentaarin ja johdannon kirjoittanut}% + {\lbx@sfromlang k\"a\"ant\"anyt, kommentaarin ja johdannon kirjoittanut}}, + bytranslatorcofo = {{\lbx@lfromlang k\"a\"ant\"anyt, kommentaarin ja esipuheen kirjoittanut}% + {\lbx@sfromlang k\"a\"ant\"anyt, kommentaarin ja esipuheen kirjoittanut}}, + bytranslatorcoaf = {{\lbx@lfromlang k\"a\"ant\"anyt, kommentaarin ja j\"alkisanat kirjoittanut}% + {\lbx@sfromlang k\"a\"ant\"anyt, kommentaarin ja j\"alkisanat kirjoittanut}}, + bytranslatoranin = {{\lbx@lfromlang k\"a\"ant\"anyt, selityksin varustanut ja johdannon kirjoittanut}% + {\lbx@sfromlang k\"a\"ant\"anyt, selityksin varustanut ja johdannon kirjoittanut}}, + bytranslatoranfo = {{\lbx@lfromlang k\"a\"ant\"anyt, selityksin varustanut ja esipuheen kirjoittanut}% + {\lbx@sfromlang k\"a\"ant\"anyt, selityksin varustanut ja esipuheen kirjoittanut}}, + bytranslatoranaf = {{\lbx@lfromlang k\"a\"ant\"anyt, selityksin varustanut ja j\"alkisanat kirjoittanut}% + {\lbx@sfromlang k\"a\"ant\"anyt, selityksin varustanut ja j\"alkisanat kirjoittanut}}, + and = {{ja}{ja}}, + andothers = {{et\addabbrvspace al\adddot}{et\addabbrvspace al\adddot}}, + andmore = {{jne\adddot}{jne\adddot}}, + volume = {{volyymi}{vol\adddot}},% FIXME: Is {{osa}{osa}} a better translation? + volumes = {{volyymit}{vol\adddot}},% Incorrect. Correct translation of "volumes" depends on context. + involumes = {{}{}},% Finnish translation of "in 5 volumes" is "5 osassa", so translation of "in" is an empty string. + jourvol = {{volyymi}{vol\adddot}}, + jourser = {{sarja}{sarja}}, + book = {{kirja}{kirja}},% FIXME: Literal translation of "book". Correct translation depends on context. + part = {{osa}{osa}}, + issue = {{numero}{numero}}, + newseries = {{uusi sarja}{uusi sarja}}, + oldseries = {{vanha sarja}{vanha sarja}}, + edition = {{painos}{painos}}, + reprint = {{j\"alkipainos}{j\"alkipainos}}, + reprintof = {{julkaistu aiemmin nimell\"a}{julkaistu aiemmin nimell\"a}}, + reprintas = {{julkaistu uudelleen nimell\"a}{julkaistu uudelleen nimell\"a}}, + reprintfrom = {{julkaistu aiemmin nimell\"a}{julkaistu aiemmin nimell\"a}},% FIXME: unsure + translationof = {{k\"a\"ann\"os teoksesta}{k\"a\"ann\"os teoksesta}},% FIXME: unsure + translationas = {{k\"a\"annetty nimell\"a}{k\"a\"annetty nimell\"a}},% FIXME: unsure + translationfrom = {{k\"a\"annetty kielest\"a}{k\"a\"annetty kielest\"a}},% Result is very bad Finnish. + reviewof = {{arvostelu teoksesta}{arvostelu teoksesta}},% FIXME: unsure. Bad Finnish. + origpubas = {{julkaistu ensi kerran nimell\"a}{julkaistu ensi kerran nimell\"a}}, + origpubin = {{julkaistu ensi kerran vuonna}{julkaistu ensi kerran vuonna}}, + astitle = {{nimell\"a}{nimell\"a}},% FIXME: unsure + bypublisher = {{julkaissut}{julkaissut}},% FIXME: unsure + page = {{sivu}{s\adddot}}, + pages = {{sivut}{s\adddot}}, + column = {{palsta}{palsta}},% Here "sarake" is wrong! + columns = {{palstat}{palstat}},% Here "sarakkeet" is wrong! + line = {{rivi}{rivi}}, + lines = {{rivit}{rivit}}, + nodate = {{ei julkaisup\"aiv\"a\"a}{ei julkaisup\"aiv\"a\"a}},% FIXME: unsure + verse = {{s\"ae}{s\"ae}}, + verses = {{s\"akeet}{s\"akeet}}, + section = {{kohta}{kohta}},% Bad translation, but "pyk\"al\"a" is no better. + sections = {{kohdat}{kohdat}},% Bad translation, but "pyk\"al\"at" is no better. + paragraph = {{kappale}{kappale}}, + paragraphs = {{kappaleet}{kappaleet}}, + pagetotal = {{sivu}{s\adddot}}, + pagetotals = {{sivut}{s\adddot}}, + columntotal = {{palsta}{palsta}},% Here "sarake" is wrong! + columntotals = {{palstat}{palstat}},% Here "sarakkeet" is wrong! + linetotal = {{rivi}{rivi}}, + linetotals = {{rivit}{rivit}}, + versetotal = {{s\"ae}{s\"ae}}, + versetotals = {{s\"akeet}{s\"akeet}}, + sectiontotal = {{kohta}{kohta}},% Bad translation, but "pyk\"al\"a" is no better. + sectiontotals = {{kohdat}{kohdat}},% Bad translation, but "pyk\"al\"at" is no better. + paragraphtotal = {{kappale}{kappale}}, + paragraphtotals = {{kappaleet}{kappaleet}}, + in = {{teoksessa}{teoksessa}}, + inseries = {{sarjassa}{sarjassa}}, + ofseries = {{sarjassa}{sarjassa}}, + number = {{numero}{nro}}, + chapter = {{luku}{luku}}, + bathesis = {{tutkielma}{tutkielma}},% FIXME: unsure + mathesis = {{tutkielma}{tutkielma}},% FIXME: unsure + phdthesis = {{tohtorinv\"ait\"oskirja}{tohtorinv\"ait\"oskirja}}, + candthesis = {{kanditaatintutkielma}{kanditaatintutkielma}},% Literal translation of "Candidate thesis". + resreport = {{tutkimusraportti}{tutkimusraportti}}, + techreport = {{tekninen raportti}{tekninen raportti}},% Literal translation of "technical report". + software = {{ohjelmisto}{ohjelmisto}}, + datacd = {{data-CD}{data-CD}},% Is {{CD-ROM}{CD-ROM}} better? + audiocd = {{\"a\"ani-CD}{\"a\"ani-CD}}, + version = {{versio}{versio}}, + url = {{url}{url}}, + urlfrom = {{saatavilla osoitteesta}{saatavilla osoitteesta}},% FIXME: unsure + urlseen = {{viitattu}{viitattu}}, + inpreparation = {{valmisteilla}{valmisteilla}},% FIXME: unsure + submitted = {{l\"ahetetty}{l\"ahetetty}},% FIXME: unsure + forthcoming = {{hyv\"aksytty julkaistavaksi}{hyv\"aksytty julkaistavaksi}},% FIXME: unsure + inpress = {{painossa}{painossa}},% FIXME: unsure + prepublished = {{esijulkaistu}{esijulkaistu}},% FIXME: unsure + citedas = {{jatkossa}{jatkossa}}, + thiscite = {{sama}{sama}},% FIXME: unsure + seenote = {{katso viite}{katso viite}}, + quotedin = {{lainattu teoksessa}{lainattu teoksessa}}, + idem = {{idem}{id\adddot}},% It its not necessary to translate Latin phrases. + idemsf = {{idem}{id\adddot}}, + idemsm = {{idem}{id\adddot}}, + idemsn = {{idem}{id\adddot}}, + idempf = {{idem}{id\adddot}}, + idempm = {{idem}{id\adddot}}, + idempn = {{idem}{id\adddot}}, + idempp = {{idem}{id\adddot}}, + ibidem = {{ibidem}{ibid\adddot}}, + opcit = {{op\adddotspace cit\adddot}{op\adddotspace cit\adddot}}, + loccit = {{loc\adddotspace cit\adddot}{loc\adddotspace cit\adddot}}, + confer = {{cf\adddot}{cf\adddot}}, + sequens = {{sq\adddot}{sq\adddot}}, + sequentes = {{sqq\adddot}{sqq\adddot}}, + passim = {{passim}{pass\adddot}}, + see = {{katso}{ks\adddot}}, + seealso = {{katso my\"os}{katso my\"os}}, + backrefpage = {{katso sivu}{ks\adddotspace s\adddot}}, + backrefpages = {{katso sivut}{ks\adddotspace s\adddot}}, + january = {{tammikuuta}{tammikuuta}}, + february = {{helmikuuta}{helmikuuta}}, + march = {{maaliskuuta}{maaliskuuta}}, + april = {{huhtikuuta}{huhtikuuta}}, + may = {{toukokuuta}{toukokuuta}}, + june = {{kes\"akuuta}{kes\"akuuta}}, + july = {{hein\"akuuta}{hein\"akuuta}}, + august = {{elokuuta}{elokuuta}}, + september = {{syyskuuta}{syyskuuta}}, + october = {{lokakuuta}{lokakuuta}}, + november = {{marraskuuta}{marraskuuta}}, + december = {{joulukuuta}{joulukuuta}}, + basicjanuary = {{tammikuu}{tammikuu}}, + basicfebruary = {{helmikuu}{helmikuu}}, + basicmarch = {{maaliskuu}{maaliskuu}}, + basicapril = {{huhtikuu}{huhtikuu}}, + basicmay = {{toukokuu}{toukokuu}}, + basicjune = {{kes\"akuu}{kes\"akuu}}, + basicjuly = {{hein\"akuu}{hein\"akuu}}, + basicaugust = {{elokuu}{elokuu}}, + basicseptember = {{syyskuu}{syyskuu}}, + basicoctober = {{lokakuu}{lokakuu}}, + basicnovember = {{marraskuu}{marraskuu}}, + basicdecember = {{joulukuu}{joulukuu}}, + langamerican = {{amerikanenglanti}{amerikanenglanti}}, + langbrazilian = {{brasilianportugali}{brasilianportugali}}, + langbulgarian = {{bulgaria}{bulgaria}}, + langcatalan = {{katalonia}{katalonia}}, + langcroatian = {{kroatia}{kroatia}}, + langczech = {{t\v{s}ekki}{t\v{s}ekki}}, + langdanish = {{tanska}{tanska}}, + langdutch = {{hollanti}{hollanti}}, + langenglish = {{englanti}{englanti}}, + langestonian = {{viro}{viro}}, + langfinnish = {{suomi}{suomi}}, + langfrench = {{ranska}{ranska}}, + langgalician = {{galicia}{galicia}}, + langgerman = {{saksa}{saksa}}, + langgreek = {{kreikka}{kreikka}}, + langhungarian = {{unkari}{unkari}}, + langitalian = {{italia}{italia}}, + langlatin = {{latina}{latina}}, + langlatvian = {{latvia}{latvia}}, + langnorwegian = {{norja}{norja}}, + langpolish = {{puola}{puola}}, + langportuguese = {{portugali}{portugali}}, + langrussian = {{ven\"aj\"a}{ven\"aj\"a}}, + langslovak = {{slovakia}{slovakia}}, + langslovene = {{slovenia}{slovenia}}, + langspanish = {{espanja}{espanja}}, + langswedish = {{ruotsi}{ruotsi}}, + fromamerican = {{englannin kielest\"a}{englannin kielest\"a}}, + frombrazilian = {{portugalin kielest\"a}{portugalin kielest\"a}}, + frombulgarian = {{bulgarian kielest\"a}{bulgarian kielest\"a}}, + fromcatalan = {{katalonian kielest\"a}{katalonian kielest\"a}}, + fromcroatian = {{kroatian kielest\"a}{kroatian kielest\"a}}, + fromczech = {{t\v{s}ekin kielest\"a}{t\v{s}ekin kielest\"a}}, + fromdanish = {{tanskan kielest\"a}{tanskan kielest\"a}}, + fromdutch = {{hollannin kielest\"a}{hollannin kielest\"a}}, + fromenglish = {{englannin kielest\"a}{englannin kielest\"a}}, + fromestonian = {{viron kielest\"a}{viron kielest\"a}}, + fromfinnish = {{suomen kielest\"a}{suomen kielest\"a}}, + fromfrench = {{ranskan kielest\"a}{ranskan kielest\"a}}, + fromgalician = {{galician kielest\"a}{galician kielest\"a}}, + fromgerman = {{saksan kielest\"a}{saksan kielest\"a}}, + fromgreek = {{kreikan kielest\"a}{kreikan kielest\"a}}, + fromhungarian = {{unkarin kielest\"a}{unkarin kielest\"a}}, + fromitalian = {{italian kielest\"a}{italian kielest\"a}}, + fromlatin = {{latinan kielest\"a}{latinan kielest\"a}}, + fromlatvian = {{latvian kielest\"a}{latvian kielest\"a}}, + fromnorwegian = {{norjan kielest\"a}{norjan kielest\"a}}, + frompolish = {{puolan kielest\"a}{puolan kielest\"a}}, + fromportuguese = {{portugalin kielest\"a}{portugalin kielest\"a}}, + fromrussian = {{ven\"aj\"an kielest\"a}{ven\"aj\"an kielest\"a}}, + fromslovak = {{slovakian kielest\"a}{slovakian kielest\"a}}, + fromslovene = {{slovenian kielest\"a}{slovenian kielest\"a}}, + fromspanish = {{espanjan kielest\"a}{espanjan kielest\"a}}, + fromswedish = {{ruotsin kielest\"a}{ruotsin kielest\"a}}, + countryde = {{Saksa}{DE}}, + countryeu = {{Euroopan Unioni}{EU}}, + countryep = {{Euroopan Unioni}{EP}}, + countryfr = {{Ranska}{FR}}, + countryuk = {{Iso-Britannia}{GB}}, + countryus = {{Yhdysvallat}{US}}, + patent = {{patentti}{pat\adddot}}, + patentde = {{saksalainen patentti}{saksalainen pat\adddot}}, + patenteu = {{Euroopan Unionin patentti}{Euroopan Unionin pat\adddot}}, + patentfr = {{ranskalainen patentti}{ranskalainen pat\adddot}}, + patentuk = {{isobritannialainen patentti}{isobritannialainen pat\adddot}}, + patentus = {{yhdysvaltalainen patentti}{yhdysvaltalainen pat\adddot}}, + patreq = {{patenttihakemus}{pat\adddot\ hak\adddot}}, + patreqde = {{saksalainen patenttihakemus}{saksalainen pat\adddot\ hak\adddot}}, + patreqeu = {{Euroopan Unionin patenttihakemus}{Euroopan Unionin pat\adddot\ hak\adddot}}, + patreqfr = {{ranskalainen patenttihakemus}{ranskalainen pat\adddot\ hak\adddot}}, + patrequk = {{isobritannialainen patenttihakemus}{isobritannialainen pat\adddot\ hak\adddot}}, + patrequs = {{yhdysvaltalainen patenttihakemus}{yhdysvaltalainen pat\adddot\ hak\adddot}}, + file = {{tiedosto}{tiedosto}}, + library = {{kirjasto}{kirjasto}}, + abstract = {{tiivistelm\"a}{tiivistelm\"a}}, + annotation = {{selitykset}{selitykset}},% FIXME: unsure + commonera = {{j\"alkeen ajanlaskun alun}{jaa\adddot}}, + beforecommonera = {{ennen ajanlaskun alkua}{eaa\adddot}}, + annodomini = {{j\"alkeen Kristuksen syntym\"an}{jKr\adddot}}, + beforechrist = {{ennen Kristuksen syntym\"a\"a}{eKr\adddot}}, + circa = {{noin}{n\adddot}}, + spring = {{kev\"at}{kev\"at}},% Or kev\"a\"all\"a ? + summer = {{kes\"a}{kes\"a}},% Or kes\"all\"a ? + autumn = {{syksy}{syksy}},% Or syksyll\"a ? + winter = {{talvi}{talvi}},% Or talvella ? + am = {{ap\adddot}{ip\adddot}}, + pm = {{ip\adddot}{ip\adddot}}, +} + +\protected\gdef\lbx@fi@mkbibmonthbasic#1{% + \ifcase0#1\relax + #1\BibliographyWarning{Month out of range}% + \or\abx@bibmonth{basicjanuary}% + \or\abx@bibmonth{basicfebruary}% + \or\abx@bibmonth{basicmarch}% + \or\abx@bibmonth{basicapril}% + \or\abx@bibmonth{basicmay}% + \or\abx@bibmonth{basicjune}% + \or\abx@bibmonth{basicjuly}% + \or\abx@bibmonth{basicaugust}% + \or\abx@bibmonth{basicseptember}% + \or\abx@bibmonth{basicoctober}% + \or\abx@bibmonth{basicnovember}% + \or\abx@bibmonth{basicdecember}% + \else + #1\BibliographyWarning{Month out of range}% + \fi}% + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/lbx/french.lbx b/macros/latex/contrib/biblatex/latex/lbx/french.lbx new file mode 100644 index 0000000000..31f436e1df --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/lbx/french.lbx @@ -0,0 +1,649 @@ +\ProvidesFile{french.lbx} +[\abx@lbxid] + +% Translations by non-native speaker: this file needs an overhaul! + +\DeclareRedundantLanguages{french}{french} + +\DeclareBibliographyExtras{% + \protected\def\bibrangedash{-}% + \let\finalandcomma=\empty + \let\finalandsemicolon=\empty + \def\mkbibordinal{\mkbibmascord}% + \protected\def\mkbibmascord{\lbx@fr@ordinal{er}}% + \protected\def\mkbibfemord{\lbx@fr@ordinal{re}}% + \protected\def\mkbibneutord{\mkbibmascord}% + \protected\def\mkbibdatelong#1#2#3{% + \iffieldundef{#3} + {} + {\stripzeros{\thefield{#3}}% + \ifnumequal{\thefield{#3}}{1} + {\textsuperscript{er}} + {}% + \iffieldundef{#2}{}{\nobreakspace}}% + \iffieldundef{#2} + {} + {\mkbibmonth{\thefield{#2}}% + \iffieldundef{#1}{}{\space}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}% + \protected\def\mkbibdateshort#1#2#3{% + \iffieldundef{#3} + {} + {\mkdayzeros{\thefield{#3}}% + \iffieldundef{#2}{}{/}}% + \iffieldundef{#2} + {} + {\mkmonthzeros{\thefield{#2}}% + \iffieldundef{#1}{}{/}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}% + \providecommand*{\FDP@thinspace}{\addnbthinspace}% FDP@* -> frenchb.ldf (babel) + \providecommand*{\FDP@colonspace}{\addnbspace}% + \def\abx@semicolon{% + \ifdim\lastkern>\z@\unkern\fi + \FDP@thinspace\abx@puncthook{;}}% + \def\abx@colon{% + \ifdim\lastkern>\z@\unkern\fi + \FDP@colonspace\abx@puncthook{:}}% + \def\abx@exclam{% + \ifdim\lastkern>\z@\unkern\fi + \FDP@thinspace\abx@puncthook{!}}% + \def\abx@question{% + \ifdim\lastkern>\z@\unkern\fi + \FDP@thinspace\abx@puncthook{?}}% + \savecommand\lbx@initnamehook + \savecommand\lbx@inittitlehook + \savecommand\mkbibnamefamily + \savecommand\mkbibordedition + \savecommand\mkbibordseries + \let\lbx@initnamehook=\lbx@fr@smartof + \let\lbx@inittitlehook=\lbx@fr@smartof + \protected\def\mkbibnamefamily#1{% + \textsc{\textnohyphenation{#1}}}% + \def\mkbibordedition{\mkbibfemord}% + \def\mkbibordseries{\mkbibfemord}% + \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{% + \iffieldundef{#1}{} + {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}% + \iffieldundef{#2}{} + {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}% + \iffieldundef{#3}{} + {\printtext{\mktimezeros{\thefield{#3}}}}% + \setunit{}% + \iffieldundef{#4}{} + {\bibtimezonesep + \mkbibtimezone{\thefield{#4}}}}% + \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{% + \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep + \forcezerosmdt{\thefield{#2}}% + \iffieldundef{#3}{} + {\bibtimesep + \forcezerosmdt{\thefield{#3}}}% + \space + \ifnumless{\thefield{#1}}{12} + {\bibstring{am}} + {\bibstring{pm}}% + \iffieldundef{#4}{} + {\space\bibtimezonesep + \parentext{\mkbibtimezone{\thefield{#4}}}}}% + \protected\def\mkbibseasondateshort#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% + \protected\def\mkbibseasondatelong#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% +} + +\UndeclareBibliographyExtras{% + \restorecommand\lbx@initnamehook + \restorecommand\lbx@inittitlehook + \restorecommand\mkbibnamefamily + \restorecommand\mkbibordedition + \restorecommand\mkbibordseries +} + +\DeclareBibliographyStrings{% + bibliography = {{Bibliographie}{Bibliographie}}, + references = {{R\'ef\'erences}{R\'ef\'erences}}, + shorthands = {{Liste des sigles}{Sigles}}, + editor = {{\'editeur}{\'ed\adddot}}, + editors = {{\'editeurs}{\'ed\adddot}}, + compiler = {{compilateur}{comp\adddot}}, + compilers = {{compilateurs}{comp\adddot}}, + redactor = {{r\'edacteur}{r\'ed\adddot}}, + redactors = {{r\'edacteurs}{r\'ed\adddot}}, + reviser = {{r\'eviseur}{r\'ev\adddot}}, + revisers = {{r\'eviseurs}{r\'ev\adddot}}, + founder = {{fondateur}{fond\adddot}}, + founders = {{fondateurs}{fond\adddot}}, + continuator = {{continuateur}{cont\adddot}}, + continuators = {{continuateurs}{cont\adddot}}, + collaborator = {{collaborateur}{coll\adddot}}, + collaborators = {{collaborateurs}{coll\adddot}}, + translator = {{traducteur}{trad\adddot}}, + translators = {{traducteurs}{trad\adddot}}, + commentator = {{commentateur}{comm\adddot}}, + commentators = {{commentateurs}{comm\adddot}}, + annotator = {{annotateur}{annot\adddot}}, + annotators = {{annotateurs}{annot\adddot}}, + commentary = {{commentaires}{comment\adddot}}, + annotations = {{annotations}{annot\adddot}}, + introduction = {{introduction}{introd\adddot}}, + foreword = {{pr\'eface}{pr\'ef\adddot}}, + afterword = {{postface}{postf\adddot}}, + editortr = {{\'editeur et traducteur}{\'ed\adddotspace et trad\adddot}}, + editorstr = {{\'editeurs et traducteurs}{\'ed\adddotspace et trad\adddot}}, + editorco = {{\'editeur et commentateur}% + {\'ed\adddotspace et comm\adddot}}, + editorsco = {{\'editeurs et commentateurs}% + {\'ed\adddotspace et comm\adddot}}, + editoran = {{\'editeur et annotateur}% + {\'ed\adddotspace et annot\adddot}}, + editorsan = {{\'editeurs et annotateurs}% + {\'ed\adddotspace et annot\adddot}}, + editorin = {{\'editeur et introduction}% + {\'ed\adddotspace et introd\adddot}}, + editorsin = {{\'editeurs et introduction}% + {\'ed\adddotspace et introd\adddot}}, + editorfo = {{\'editeur et pr\'efacier}% + {\'ed\adddotspace et pr\'ef\adddot}}, + editorsfo = {{\'editeurs et pr\'efaciers}% + {\'ed\adddotspace et pr\'ef\adddot}}, + editoraf = {{\'editeur et postfacier}% + {\'ed\adddotspace et postf\adddot}}, + editorsaf = {{\'editeurs et postfaciers}% + {\'ed\adddotspace et postf\adddot}}, + editortrco = {{\'editeur, traducteur et commentateur}% + {\'ed.,\addabbrvspace trad\adddotspace et comm\adddot}}, + editorstrco = {{\'editeurs, traducteurs et commentateurs}% + {\'ed.,\addabbrvspace trad\adddotspace et comm\adddot}}, + editortran = {{\'editeur, traducteur et annotateur}% + {\'ed.,\addabbrvspace trad\adddotspace et annot\adddot}}, + editorstran = {{\'editeurs, traducteurs et annotateurs}% + {\'ed.,\addabbrvspace trad\adddotspace et annot\adddot}}, + editortrin = {{\'editeur, traducteur et introduction}% + {\'ed.,\addabbrvspace trad\adddotspace et introd\adddot}}, + editorstrin = {{\'editeurs, traducteurs et introduction}% + {\'ed.,\addabbrvspace trad\adddotspace et introd\adddot}}, + editortrfo = {{\'editeur, traducteur et pr\'efacier}% + {\'ed.,\addabbrvspace trad\adddotspace et pr\'ef\adddot}}, + editorstrfo = {{\'editeurs, traducteurs et pr\'efaciers}% + {\'ed.,\addabbrvspace trad\adddotspace et pr\'ef\adddot}}, + editortraf = {{\'editeur, traducteur et postfacier}% + {\'ed.,\addabbrvspace trad\adddotspace et postf\adddot}}, + editorstraf = {{\'editeurs, traducteurs et postfaciers}% + {\'ed.,\addabbrvspace trad\adddot et postf\adddot}}, + editorcoin = {{\'editeur, commentateur et introduction}% + {\'ed.,\addabbrvspace comm\adddotspace et introd\adddot}}, + editorscoin = {{\'editeurs, commentateurs et introduction}% + {\'ed.,\addabbrvspace comm\adddotspace et introd\adddot}}, + editorcofo = {{\'editeur, commentateur et pr\'efacier}% + {\'ed.,\addabbrvspace comm\adddotspace et pr\'ef\adddot}}, + editorscofo = {{\'editeurs, commentateurs et pr\'efaciers}% + {\'ed.,\addabbrvspace comm\adddotspace et pr\'ef\adddot}}, + editorcoaf = {{\'editeur, commentateur et postfacier}% + {\'ed.,\addabbrvspace comm\adddotspace et postf\adddot}}, + editorscoaf = {{\'editeurs, commentateurs et postfaciers}% + {\'ed.,\addabbrvspace comm\adddotspace et postf\adddot}}, + editoranin = {{\'editeur, annotateur et introduction}% + {\'ed.,\addabbrvspace annot\adddotspace et introd\adddot}}, + editorsanin = {{\'editeurs, annotateurs et introduction}% + {\'ed.,\addabbrvspace annot\adddotspace et introd\adddot}}, + editoranfo = {{\'editeur, annotateur et pr\'efacier}% + {\'ed.,\addabbrvspace annot\adddotspace et pr\'ef\adddot}}, + editorsanfo = {{\'editeurs, annotateurs et pr\'efaciers}% + {\'ed.,\addabbrvspace annot\adddotspace et pr\'ef\adddot}}, + editoranaf = {{\'editeur, annotateur et postfacier}% + {\'ed.,\addabbrvspace annot\adddotspace et postf\adddot}}, + editorsanaf = {{\'editeurs, annotateurs et postfaciers}% + {\'ed.,\addabbrvspace annot\adddotspace et postf\adddot}}, + editortrcoin = {{\'editeur, traducteur, commentateur et introduction}% + {\'ed.,\addabbrvspace trad., comm\adddotspace et introd\adddot}}, + editorstrcoin = {{\'editeurs, traducteurs, commentateurs et introduction}% + {\'ed.,\addabbrvspace trad., comm\adddotspace et introd\adddot}}, + editortrcofo = {{\'editeur, traducteur, commentateur et pr\'efacier}% + {\'ed.,\addabbrvspace trad., comm\adddotspace et pr\'ef\adddot}}, + editorstrcofo = {{\'editeurs, traducteurs, commentateurs et pr\'efaciers}% + {\'ed.,\addabbrvspace trad., comm\adddotspace et pr\'ef\adddot}}, + editortrcoaf = {{\'editeur, traducteur, commentateur et postfacier}% + {\'ed.,\addabbrvspace trad., comm\adddotspace et postf\adddot}}, + editorstrcoaf = {{\'editeurs, traducteurs, commentateurs et postfaciers}% + {\'ed.,\addabbrvspace trad., comm\adddotspace et postf\adddot}}, + editortranin = {{\'editeur, traducteur, annotateur et introduction}% + {\'ed.,\addabbrvspace trad., annot\adddotspace et introd\adddot}}, + editorstranin = {{\'editeurs, traducteurs, annotateurs et introduction}% + {\'ed.,\addabbrvspace trad., annot\adddotspace et introd\adddot}}, + editortranfo = {{\'editeur, traducteur, annotateur et pr\'efacier}% + {\'ed.,\addabbrvspace trad., annot\adddotspace et pr\'ef\adddot}}, + editorstranfo = {{\'editeurs, traducteurs, annotateurs et pr\'efaciers}% + {\'ed.,\addabbrvspace trad., annot\adddotspace et pr\'ef\adddot}}, + editortranaf = {{\'editeur, traducteur, annotateur et postfacier}% + {\'ed.,\addabbrvspace trad., annot\adddotspace et postf\adddot}}, + editorstranaf = {{\'editeurs, traducteurs, annotateurs et postfaciers}% + {\'ed.,\addabbrvspace trad., annot\adddotspace et postf\adddot}}, + translatorco = {{traducteur et commentateur}% + {trad\adddotspace et comm\adddot}}, + translatorsco = {{traducteurs et commentateurs}% + {trad\adddotspace et comm\adddot}}, + translatoran = {{traducteur et annotateur}% + {trad\adddotspace et annot\adddot}}, + translatorsan = {{traducteurs et annotateurs}% + {trad\adddotspace et annot\adddot}}, + translatorin = {{traduction et introduction}% + {trad\adddotspace et introd\adddot}}, + translatorsin = {{traduction et introduction}% + {trad\adddotspace et introd\adddot}}, + translatorfo = {{traduction et pr\'eface}% + {trad\adddotspace et pr\'ef\adddot}}, + translatorsfo = {{traduction et pr\'eface}% + {trad\adddotspace et pr\'ef\adddot}}, + translatoraf = {{traduction et postface}% + {trad\adddotspace et postf\adddot}}, + translatorsaf = {{traduction et postface}% + {trad\adddotspace et postf\adddot}}, + translatorcoin = {{traduction, commentaire et introduction}% + {trad., comm\adddotspace et introd\adddot}}, + translatorscoin = {{traduction, commentaire et introduction}% + {trad., comm\adddotspace et introd\adddot}}, + translatorcofo = {{traduction, commentaire et pr\'eface}% + {trad., comm\adddotspace et pr\'ef\adddot}}, + translatorscofo = {{traduction, commentaire et pr\'eface}% + {trad., comm\adddotspace et pr\'ef\adddot}}, + translatorcoaf = {{traduction, commentaire et postface}% + {trad., comm\adddotspace et postf\adddot}}, + translatorscoaf = {{traduction, commentaire et postface}% + {trad., comm\adddotspace et postf\adddot}}, + translatoranin = {{traduction, annotations et introduction}% + {trad., annot\adddotspace et introd\adddot}}, + translatorsanin = {{traduction, annotations et introduction}% + {trad., annot\adddotspace et introd\adddot}}, + translatoranfo = {{traduction, annotations et pr\'eface}% + {trad., annot\adddotspace et pr\'ef\adddot}}, + translatorsanfo = {{traduction, annotations et pr\'eface}% + {trad., annot\adddotspace et pr\'ef\adddot}}, + translatoranaf = {{traduction, annotations et postface}% + {trad., annot\adddotspace et postf\adddot}}, + translatorsanaf = {{traduction, annotations et postface}% + {trad., annot\adddotspace et postf\adddot}}, + organizer = {{organisateur}{org\adddot}},% + organizers = {{organisateurs}{org\adddot}},% + byorganizer = {{organis\'e par}{org\adddotspace par}},% + byauthor = {{par}{par}}, + byeditor = {{sous la direction \smartof}{sous la dir\adddotspace\smartof}}, + bycompiler = {{compil\'e par}{comp\adddotspace par}}, + byredactor = {{r\'edig\'e par}{r\'ed\adddotspace par}}, + byreviser = {{r\'evis\'e par}{r\'ev\adddotspace par}}, + byreviewer = {{examin\'e par}{ex\adddotspace par}}, + byfounder = {{d\'ecouvert par}{d\'ecouv\adddotspace par}}, + bycontinuator = {{continu\'e par}{cont\adddotspace par}}, + bycollaborator = {{avec la collaboration \smartof}{avec la + coll\adddotspace\smartof}}, + bytranslator = {{traduit \lbx@lfromlang\ par}{trad\adddotspace \lbx@sfromlang\ par}}, + bycommentator = {{comment\'e par}{comm\adddotspace par}}, + byannotator = {{annot\'e par}{annot\adddotspace par}}, + withcommentator = {{avec des commentaires \smartof}{avec des comment\adddotspace\smartof}}, + withannotator = {{avec des annotations \smartof}{avec des annot\adddotspace\smartof}}, + withintroduction = {{avec une introduction \smartof}{avec une introd\adddotspace\smartof}}, + withforeword = {{avec une pr\'eface \smartof}{avec une pr\'ef\adddotspace\smartof}}, + withafterword = {{avec une postface \smartof}{avec une postf\adddotspace\smartof}}, + byeditortr = {{\'edition \'etablie et traduite \lbx@lfromlang\ par}% + {\'ed\adddotspace \'etablie et trad\adddotspace \lbx@sfromlang\ par}}, + byeditorco = {{\'edition \'etablie et comment\'ee par}% + {\'ed\adddotspace \'etablie et comm\adddotspace par}}, + byeditoran = {{\'edition \'etablie et annot\'ee par}% + {\'ed\adddotspace \'etablie et annot\adddotspace par}}, + byeditorin = {{\'edition \'etablie et introduite par}% + {\'ed\adddotspace \'etablie et introd\adddotspace par}}, + byeditorfo = {{\'edition \'etablie et pr\'efac\'ee par}% + {\'ed\adddotspace \'etablie et pr\'ef\adddotspace par}}, + byeditoraf = {{\'edition \'etablie et postfac\'ee par}% + {\'ed\adddotspace \'etablie et postf\adddotspace par}}, + byeditortrco = {{\'edition \'etablie, traduite \lbx@lfromlang\ et comment\'ee par}% + {\'ed\adddotspace \'etablie, trad\adddotspace \lbx@sfromlang\ et comm\adddotspace par}}, + byeditortran = {{\'edition \'etablie, traduite \lbx@lfromlang\ et annot\'ee par}% + {\'ed\adddotspace \'etablie, trad\adddotspace \lbx@sfromlang\ et annot\adddotspace par}}, + byeditortrin = {{\'edition \'etablie, traduite \lbx@lfromlang\ et introduite par}% + {\'ed\adddotspace \'etablie, trad\adddotspace \lbx@sfromlang\ et introd\adddotspace par}}, + byeditortrfo = {{\'edition \'etablie, traduite \lbx@lfromlang\ et pr\'efac\'ee par}% + {\'ed\adddotspace \'etablie, trad\adddotspace \lbx@sfromlang\ et pr\'ef\adddotspace par}}, + byeditortraf = {{\'edition \'etablie, traduite \lbx@lfromlang\ et postfac\'ee par}% + {\'ed\adddotspace \'etablie, trad\adddotspace \lbx@sfromlang\ et postf\adddotspace par}}, + byeditorcoin = {{\'edition \'etablie, comment\'ee et introduite par}% + {\'ed\adddotspace \'etablie, comm\adddotspace et introd\adddotspace par}}, + byeditorcofo = {{\'edition \'etablie, comment\'ee et pr\'efac\'ee par}% + {\'ed\adddotspace \'etablie, comm\adddotspace et pr\'ef\adddotspace par}}, + byeditorcoaf = {{\'edition \'etablie, comment\'ee et postfac\'ee par}% + {\'ed\adddotspace \'etablie, comm\adddotspace et postf\adddotspace par}}, + byeditoranin = {{\'edition \'etablie, annot\'ee et introduite par}% + {\'ed\adddotspace \'etablie, annot\adddotspace et introd\adddotspace par}}, + byeditoranfo = {{\'edition \'etablie, annot\'ee et pr\'efac\'ee par}% + {\'ed\adddotspace \'etablie, annot\adddotspace et pr\'ef\adddotspace par}}, + byeditoranaf = {{\'edition \'etablie, annot\'ee et postfac\'ee par}% + {\'ed\adddotspace \'etablie, annot\adddotspace et postf\adddotspace par}}, + byeditortrcoin = {{\'edition \'etablie, traduite \lbx@lfromlang, comment\'ee et introduite par}% + {\'ed\adddotspace \'etablie, trad\adddotspace \lbx@sfromlang, comm\adddotspace et introd\adddotspace par}}, + byeditortrcofo = {{\'edition \'etablie, traduite \lbx@lfromlang, comment\'ee et pr\'efac\'ee par}% + {\'ed\adddotspace \'etablie, trad\adddotspace \lbx@sfromlang, comm\adddotspace et pr\'ef\adddotspace par}}, + byeditortrcoaf = {{\'edition \'etablie, traduite \lbx@lfromlang, comment\'ee et postfac\'ee par}% + {\'ed\adddotspace \'etablie, trad\adddotspace \lbx@sfromlang, comm\adddotspace et postf\adddotspace par}}, + byeditortranin = {{\'edition \'etablie, traduite \lbx@lfromlang, annot\'ee et introduite par}% + {\'ed\adddotspace \'etablie, trad\adddotspace \lbx@sfromlang, annot\adddotspace et introd\adddotspace par}}, + byeditortranfo = {{\'edition \'etablie, traduite \lbx@lfromlang, annot\'ee et pr\'efac\'ee par}% + {\'ed\adddotspace \'etablie, trad\adddotspace \lbx@sfromlang, annot\adddotspace et pr\'ef\adddotspace par}}, + byeditortranaf = {{\'edition \'etablie, traduite \lbx@lfromlang, annot\'ee et postfac\'ee par}% + {\'ed\adddotspace \'etablie, trad\adddotspace \lbx@sfromlang, annot\adddotspace et postf\adddotspace par}}, + bytranslatorco = {{traduit \lbx@lfromlang\ et comment\'e par}% + {trad\adddotspace \lbx@sfromlang\ et comm\adddotspace par}}, + bytranslatoran = {{traduit \lbx@lfromlang\ et annot\'e par}% + {trad\adddotspace \lbx@sfromlang\ et annot\adddotspace par}}, + bytranslatorin = {{traduit \lbx@lfromlang\ et introduit par}% + {trad\adddotspace \lbx@sfromlang\ et introd\adddotspace par}}, + bytranslatorfo = {{traduit \lbx@lfromlang\ et pr\'efac\'e par}% + {trad\adddotspace \lbx@sfromlang\ et pr\'ef\adddotspace par}}, + bytranslatoraf = {{traduit \lbx@lfromlang\ et postfac\'e par}% + {trad\adddotspace \lbx@sfromlang\ et postf\adddotspace par}}, + bytranslatorcoin = {{traduit \lbx@lfromlang, comment\'e et introduit par}% + {trad\adddotspace \lbx@sfromlang, comm\adddotspace et introd\adddotspace par}}, + bytranslatorcofo = {{traduit \lbx@lfromlang, comment\'e et pr\'efac\'e par}% + {trad\adddotspace \lbx@sfromlang, comm\adddotspace et pr\'ef\adddotspace par}}, + bytranslatorcoaf = {{traduit \lbx@lfromlang, comment\'e et postfac\'e par}% + {trad\adddotspace \lbx@sfromlang, comm\adddotspace et postf\adddotspace par}}, + bytranslatoranin = {{traduit \lbx@lfromlang, annot\'e et introduit par}% + {trad\adddotspace \lbx@sfromlang, annot\adddotspace et introd\adddotspace par}}, + bytranslatoranfo = {{traduit \lbx@lfromlang, annot\'e et pr\'efac\'e par}% + {trad\adddotspace \lbx@sfromlang, annot\adddotspace et pr\'ef\adddotspace par}}, + bytranslatoranaf = {{traduit \lbx@lfromlang, annot\'e et postfac\'e par}% + {trad\adddotspace \lbx@sfromlang, annot\adddotspace et postf\adddotspace par}}, + and = {{et}{et}}, + andothers = {{et\addabbrvspace al\adddot}{et\addabbrvspace al\adddot}}, + andmore = {{et\addabbrvspace al\adddot}{et\addabbrvspace al\adddot}}, + volume = {{tome}{t\adddot}}, + volumes = {{tomes}{t\adddot}}, + involumes = {{en}{en}}, + jourvol = {{tome}{t\adddot}}, + jourser = {{s\'erie}{s\'er\adddot}}, + book = {{livre}{livre}}, + part = {{partie}{partie}}, + issue = {{\'edition}{\'ed\adddot}}, + newseries = {{nouvelle s\'erie}{nouv\adddotspace s\'er\adddot}}, + oldseries = {{ancienne s\'erie}{anc\adddotspace s\'er\adddot}}, + edition = {{\'edition}{\'ed\adddot}}, + reprint = {{r\'eimpression}{r\'eimpr\adddot}}, + reprintof = {{r\'eimpression de}{r\'eimpr\adddotspace de}}, + reprintas = {{r\'eimpression sous le titre}{r\'eimpr\adddotspace sous le titre}}, + reprintfrom = {{r\'eimpression \`a partir \smartof}{r\'eimpr\adddotspace \`a part\adddotspace\smartof}}, + translationof = {{traduction de}{trad\adddotspace de}}, + translationas = {{traduit sous le titre}{trad\adddotspace sous le titre}}, + translationfrom = {{traduit de}{trad\adddotspace de}}, + reviewof = {{critique de}{crit.\adddotspace de}}, + origpubas = {{publi\'e \`a l'origine sous le titre}{pub\adddotspace \`a l'orig\adddotspace sous le titre}}, + origpubin = {{publi\'e \`a l'origine en}{pub\adddotspace \`a l'orig\adddotspace en}}, + astitle = {{sous le titre}{sous le titre}}, + bypublisher = {{par}{par}}, + nodate = {{pas\space de\space date}{{}p\adddotspace d\adddot}}, + page = {{page}{p\adddot}}, + pages = {{pages}{p\adddot}}, + column = {{colonne}{col\adddot}}, + columns = {{colonnes}{col\adddot}}, + line = {{ligne}{l\adddot}}, + lines = {{lignes}{l\adddot}}, + verse = {{vers}{v\adddot}}, + verses = {{vers}{v\adddot}}, + section = {{section}{\S}}, + sections = {{sections}{\S}}, + paragraph = {{paragraphe}{par\adddot}}, + paragraphs = {{paragraphes}{par\adddot}}, + pagetotal = {{page}{p\adddot}}, + pagetotals = {{pages}{p\adddot}}, + columntotal = {{colonne}{col\adddot}}, + columntotals = {{colonnes}{col\adddot}}, + linetotal = {{ligne}{l\adddot}}, + linetotals = {{lignes}{l\adddot}}, + versetotal = {{vers}{v\adddot}}, + versetotals = {{vers}{v\adddot}}, + sectiontotal = {{section}{\S}}, + sectiontotals = {{sections}{\S}}, + paragraphtotal = {{paragraphe}{par\adddot}}, + paragraphtotals = {{paragraphes}{par\adddot}}, + in = {{in}{in}}, + inseries = {{in}{in}}, + ofseries = {{de}{de}}, + number = {{num\'ero}{n\textsuperscript{o}}}, + chapter = {{chapitre}{chap\adddot}}, + bathesis = {{m\'emoire de bachelor}{m\'em\adddotspace de bach\adddot}}, + mathesis = {{m\'emoire de master}{m\'em\adddotspace de mast\adddot}}, + phdthesis = {{th\`ese de doctorat}{th\`ese de doct\adddot}}, + candthesis = {{th\`ese de candidature}{th\`ese de cand\adddot}}, + resreport = {{rapport scientifique}{rapp\adddotspace scient\adddot}}, + techreport = {{rapport technique}{rapp\adddotspace tech\adddot}}, + software = {{logiciel}{logiciel}}, + datacd = {{c\'ed\'erom}{c\'ed\'erom}}, + audiocd = {{disque compact audio}{CD}}, + version = {{version}{version}}, + url = {{adresse}{adresse}}, + urlfrom = {{disponible \`a l'adresse}{disp\adddotspace \`a l'adr\adddot}}, + urlseen = {{visit\'e le}{visit\'e le}}, + inpreparation = {{en pr\'eparation}{en pr\'ep\adddot}}, + submitted = {{soumis}{soumis}}, + forthcoming = {{\`a para\^{\i}tre}{\`a para\adddot}}, + inpress = {{sous presse}{sous presse}}, + prepublished = {{pr\'epubli\'e}{pr\'epubl\adddot}}, + citedas = {{d\'esign\'e ci-apr\`es par}{ci-apr\`es}}, + thiscite = {{sp\'ecialement}{sp\'ec\adddot}}, + seenote = {{voir note}{cf\adddotspace note}}, + quotedin = {{cit\'e dans}{cit\'e dans}}, + idem = {{idem}{idem}}, + idemsm = {{idem}{idem}}, + idemsf = {{eadem}{eadem}}, + idemsn = {{idem}{idem}}, + idempm = {{eidem}{eidem}}, + idempf = {{eaedem}{eaedem}}, + idempn = {{eadem}{eadem}}, + idempp = {{eidem}{eidem}}, + ibidem = {{ibidem}{ibid\adddot}}, + opcit = {{op\adddotspace cit\adddot}{op\adddotspace cit\adddot}}, + loccit = {{loc\adddotspace cit\adddot}{loc\adddotspace cit\adddot}}, + confer = {{cf\adddot}{cf\adddot}}, + sequens = {{sq\adddot}{sq\adddot}}, + sequentes = {{sqq\adddot}{sqq\adddot}}, + passim = {{passim}{pass\adddot}}, + see = {{cf\adddot}{cf\adddot}}, + seealso = {{cf\adddotspace aussi}{cf\adddotspace aussi}}, + backrefpage = {{cf\adddotspace page}{cf\adddotspace p\adddot}}, + backrefpages = {{cf\adddotspace pages}{cf\adddotspace p\adddot}}, + january = {{janvier}{jan\adddot}}, + february = {{f\'evrier}{f\'ev\adddot}}, + march = {{mars}{mar\adddot}}, + april = {{avril}{avr\adddot}}, + may = {{mai}{mai}}, + june = {{juin}{juin}}, + july = {{juillet}{juil\adddot}}, + august = {{ao\^ut}{ao\^ut}}, + september = {{septembre}{sept\adddot}}, + october = {{octobre}{oct\adddot}}, + november = {{novembre}{nov\adddot}}, + december = {{d\'ecembre}{d\'ec\adddot}}, + langamerican = {{am\'ericain}{am\'ericain}}, + langbrazilian = {{br\'esilien}{br\'esilien}}, + langbulgarian = {{bulgare}{bulgare}}, + langcatalan = {{catalan}{catalan}}, + langcroatian = {{croate}{croate}}, + langczech = {{tch\`eque}{tch\`eque}}, + langdanish = {{danois}{danois}}, + langdutch = {{n\'eerlandais}{n\'eerlandais}}, + langenglish = {{anglais}{anglais}}, + langestonian = {{estonien}{estonien}}, + langfinnish = {{finnois}{finnois}}, + langfrench = {{fran\c{c}ais}{fran\c{c}ais}}, + langgalician = {{galicien}{galicien}}, + langgerman = {{allemand}{allemand}}, + langgreek = {{grec}{grec}}, + langhungarian = {{hongrois}{hongrois}}, + langitalian = {{italien}{italien}}, + langjapanese = {{japonais}{japonais}}, + langlatin = {{latin}{latin}}, + langlatvian = {{letton}{letton}}, + langnorwegian = {{norv\'egien}{norv\'egien}}, + langpolish = {{polonais}{polonais}}, + langportuguese = {{portugais}{portugais}}, + langrussian = {{russe}{russe}}, + langslovak = {{slovaque}{slovaque}}, + langslovene = {{slov\`ene}{slov\`ene}}, + langspanish = {{espagnol}{espagnol}}, + langswedish = {{su\'edois}{su\'edois}}, + langukrainian = {{ukrainien}{ukrainien}}, + fromamerican = {{de l'am\'ericain}{de l'am\'ericain}}, + frombrazilian = {{du br\'esilien}{du br\'esilien}}, + frombulgarian = {{du bulgare}{du bulgare}}, + fromcatalan = {{du catalan}{du catalan}}, + fromcroatian = {{du croate}{du croate}}, + fromczech = {{du tch\`eque}{du tch\`eque}}, + fromdanish = {{du danois}{du danois}}, + fromdutch = {{du n\'eerlandais}{du n\'eerlandais}}, + fromenglish = {{de l'anglais}{de l'anglais}}, + fromestonian = {{de l'estonien}{de l'estonien}}, + fromfinnish = {{du finnois}{du finnois}}, + fromfrench = {{du fran\c{c}ais}{du fran\c{c}ais}}, + fromgalician = {{du galicien}{du galicien}}, + fromgerman = {{de l'allemand}{de l'allemand}}, + fromgreek = {{du grec}{du grec}}, + fromhungarian = {{du hongrois}{du hongrois}}, + fromitalian = {{de l'italien}{de l'italien}}, + fromjapanese = {{du japonais}{du japonais}}, + fromlatin = {{du latin}{du latin}}, + fromlatvian = {{du letton}{du letton}}, + fromnorwegian = {{du norv\'egien}{du norv\'egien}}, + frompolish = {{du polonais}{du polonais}}, + fromportuguese = {{du portugais}{du portugais}}, + fromrussian = {{du russe}{du russe}}, + fromslovak = {{du slovaque}{du slovaque}}, + fromslovene = {{du slov\`ene}{du slov\`ene}}, + fromspanish = {{de l'espagnol}{de l'espagnol}}, + fromswedish = {{du su\'edois}{du su\'edois}}, + fromukrainian = {{de l'ukrainien}{de l'ukrainien}}, + countryde = {{Allemagne}{DE}}, + countryeu = {{Union europ\'eenne}{EU}}, + countryep = {{Union europ\'eenne}{EP}}, + countryfr = {{France}{FR}}, + countryuk = {{Royaume-Uni}{GB}}, + countryus = {{\'Etats-Unis}{US}}, + patent = {{brevet}{brev\adddot}}, + patentde = {{brevet allemand}{brev\adddotspace allem\adddot}}, + patenteu = {{brevet europ\'een}{brev\adddotspace europ\adddot}}, + patentfr = {{brevet fran\c{c}ais}{brev\adddotspace fran\c{c}\adddot}}, + patentuk = {{brevet britannique}{brev\adddotspace brit\adddot}}, + patentus = {{brevet am\'ericain}{brev\adddotspace am\'er\adddot}}, + patreq = {{demande de brevet}{demande de brev\adddot}}, + patreqde = {{demande de brevet allemand}{demande de brev\adddotspace allem\adddot}}, + patreqeu = {{demande de brevet europ\'een}{demande de brev\adddotspace europ\adddot}}, + patreqfr = {{demande de brevet fran\c{c}ais}{demande de brev\adddotspace fran\c{c}\adddot}}, + patrequk = {{demande de brevet britannique}{demande de brev\adddotspace brit\adddot}}, + patrequs = {{demande de brevet am\'ericain}{demande de brev\adddotspace am\'er\adddot}}, + file = {{fichier}{fichier}}, + library = {{biblioth\`eque}{biblioth\adddot}}, + abstract = {{r\'esum\'e}{r\'es\adddot}}, + annotation = {{annotations}{annotations}}, + commonera = {{de l'\`ere commune}{EC}}, + beforecommonera = {{avant l'\`ere commune}{AEC}}, + annodomini = {{apr\`es J\'esus-Christ}{apr\adddotspace J\adddot-C\adddot}}, + beforechrist = {{avant J\'esus-Christ}{av\adddotspace J\adddot-C\adddot}}, + circa = {{vers}{vers}}, + spring = {{printemps}{printemps}}, + summer = {{\'et\'e}{\'et\'e}}, + autumn = {{automne}{automne}}, + winter = {{hiver}{hiver}}, + am = {{AM}{AM}}, + pm = {{PM}{PM}}, +} + +\gdef\lbx@fr@ordinal#1#2{% + \begingroup + \@tempcnta0#2\relax\number\@tempcnta + \@whilenum\@tempcnta>100\do{\advance\@tempcnta-100}% + \ifnum\@tempcnta>20 + \@whilenum\@tempcnta>9\do{\advance\@tempcnta-10}% + \fi + \ifnum\@tempcnta=\@ne + \textsuperscript{#1}% + \else + \textsuperscript{e}% + \fi + \endgroup} + +\begingroup +\catcode`\&=3 + +\gdef\lbx@fr@smartof{% + \iftoggle{smartof}{\lbx@fr@smartof@i}{\@gobble}} + +\protected\long\gdef\lbx@fr@smartof@i#1{% + \global\togglefalse{smartof}% + \begingroup + \def\forceD##1{a\relax}% + \def\forceDE##1{x\relax}% + \def\do##1{\let##1\@firstofone}% + \abx@dosingleaccents + \abx@dodoubleaccents + \def\i{i}\def\j{j}% + \def\AE{a}\def\ae{a}% + \def\OE{o}\def\oe{o}% + \def\O{o}\def\o{o}% + \let\IeC\@firstofone + \let\@tabacckludge\@gobble + \ifnum\catcode`\"=\active + \uccode`\~=`\" + \uppercase{\let~\@empty}% + \fi + \ifnum\catcode`\~=\active + \let~\@empty + \fi + \let\protect\noexpand + \edef\lbx@tempa{#1}% + \expandafter\futurelet + \expandafter\lbx@tempa + \expandafter\lbx@fr@smartof@ii + \lbx@tempa&} + +\gdef\lbx@fr@smartof@ii{% + \ifcat\bgroup\noexpand\lbx@tempa + \def\lbx@tempa##1{\futurelet\lbx@tempa\lbx@fr@smartof@ii##1}% + \else\ifcat\noexpand~\noexpand\lbx@tempa + \def\lbx@tempa##1{\futurelet\lbx@tempa\lbx@fr@smartof@ii}% + \else + \ifnum 0% + \if a\noexpand\lbx@tempa 1\fi + \if e\noexpand\lbx@tempa 1\fi + \if i\noexpand\lbx@tempa 1\fi + \if o\noexpand\lbx@tempa 1\fi + \if u\noexpand\lbx@tempa 1\fi + \if y\noexpand\lbx@tempa 1\fi + \if A\noexpand\lbx@tempa 1\fi + \if E\noexpand\lbx@tempa 1\fi + \if I\noexpand\lbx@tempa 1\fi + \if O\noexpand\lbx@tempa 1\fi + \if U\noexpand\lbx@tempa 1\fi + \if Y\noexpand\lbx@tempa 1\fi + >0 % + \let\lbx@tempa\lbx@fr@smartof@d + \else + \ifnum 0% + \if h\noexpand\lbx@tempa 1\fi + \if H\noexpand\lbx@tempa 1\fi + >0 % + \def\lbx@tempa##1{\futurelet\lbx@tempa\lbx@fr@smartof@ii}% + \else + \let\lbx@tempa\lbx@fr@smartof@de + \fi\fi\fi\fi + \lbx@tempa} + +\gdef\lbx@fr@smartof@d#1&{\endgroup d'} +\gdef\lbx@fr@smartof@de#1&{\endgroup de\space} + +\endgroup + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/lbx/galician.lbx b/macros/latex/contrib/biblatex/latex/lbx/galician.lbx new file mode 100644 index 0000000000..5cd3085e00 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/lbx/galician.lbx @@ -0,0 +1,534 @@ +\ProvidesFile{galician.lbx} +[\abx@lbxid] + +\DeclareRedundantLanguages{galician}{galician} + +\DeclareBibliographyExtras{% + \protected\def\bibrangedash{% + \textendash\penalty\hyphenpenalty}% breakable dash + \let\finalandcomma=\empty + \let\finalandsemicolon=\empty + \def\mkbibordinal{\mkbibmascord}% + \protected\def\mkbibmascord#1{% + \stripzeros{#1}\textordmasculine}% \textordmasculine -> textcomp.sty + \protected\def\mkbibfemord#1{% + \stripzeros{#1}\textordfeminine}% \textordfeminine -> textcomp.sty + \protected\def\mkbibneutord{\mkbibmascord}% + \protected\def\mkbibdatelong#1#2#3{% + \iffieldundef{#3} + {} + {\stripzeros{\thefield{#3}}% + \iffieldundef{#2}{}{\nobreakspace de\space}}% + \iffieldundef{#2} + {} + {\mkbibmonth{\thefield{#2}}% + \iffieldundef{#1}{}{\nobreakspace de\space}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}% + \protected\def\mkbibdateshort#1#2#3{% + \iffieldundef{#3} + {} + {\mkdayzeros{\thefield{#3}}% + \iffieldundef{#2}{}{/}}% + \iffieldundef{#2} + {} + {\mkmonthzeros{\thefield{#2}}% + \iffieldundef{#1}{}{/}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}% + \savecommand\mkbibordedition + \savecommand\mkbibordseries + \def\mkbibordedition{\mkbibfemord}% + \def\mkbibordseries{\mkbibfemord}% + \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{% + \iffieldundef{#1}{} + {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}% + \iffieldundef{#2}{} + {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}% + \iffieldundef{#3}{} + {\printtext{\mktimezeros{\thefield{#3}}}}% + \setunit{}% + \iffieldundef{#4}{} + {\bibtimezonesep + \mkbibtimezone{\thefield{#4}}}}% + \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{% + \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep + \forcezerosmdt{\thefield{#2}}% + \iffieldundef{#3}{} + {\bibtimesep + \forcezerosmdt{\thefield{#3}}}% + \space + \ifnumless{\thefield{#1}}{12} + {\bibstring{am}} + {\bibstring{pm}}% + \iffieldundef{#4}{} + {\space\bibtimezonesep + \parentext{\mkbibtimezone{\thefield{#4}}}}}% + \protected\def\mkbibseasondateshort#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% + \protected\def\mkbibseasondatelong#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% +} + +\UndeclareBibliographyExtras{% + \restorecommand\mkbibordedition + \restorecommand\mkbibordseries +} + +\DeclareBibliographyStrings{% + bibliography = {{Bibliograf\'ia}{Bibliograf\'ia}}, + references = {{Referencias}{Referencias}}, + shorthands = {{Lista de abreviaturas}{Abreviaturas}}, + editor = {{editor}{ed\adddot}}, + editors = {{editores}{eds\adddot}}, + compiler = {{compilador}{comp\adddot}}, + compilers = {{compiladores}{comp\adddot}}, + redactor = {{redactor}{red\adddot}}, + redactors = {{redactores}{red\adddot}}, + reviser = {{revisor}{rev\adddot}}, + revisers = {{revisores}{revs\adddot}}, + founder = {{fundador}{fund\adddot}}, + founders = {{fundadores}{fund\adddot}}, + continuator = {{continuador}{cont\adddot}}, + continuators = {{continuadores}{cont\adddot}}, + collaborator = {{colaborador}{col\adddot}}, + collaborators = {{colaboradores}{cols\adddot}}, + translator = {{tradutor}{trad\adddot}}, + translators = {{tradutores}{trads\adddot}}, + commentator = {{comentador}{coment\adddot}}, + commentators = {{comentadores}{coments\adddot}}, + annotator = {{anotador}{anot\adddot}}, + annotators = {{anotadores}{anots\adddot}}, + commentary = {{comentario}{coment\adddot}}, + annotations = {{notas}{notas}}, + introduction = {{introduci\'on}{introd\adddot}}, + foreword = {{prefacio}{pref\adddot}}, + afterword = {{posfacio}{posf\adddot}}, + editortr = {{editor e tradutor}% + {ed\adddotspace e trad\adddot}}, + editorstr = {{editores e tradutores}% + {eds\adddotspace e trads\adddot}}, + editorco = {{editor e comentador}% + {ed\adddotspace e coment\adddot}}, + editorsco = {{editores e comentadores}% + {eds\adddotspace e coments\adddot}}, + editoran = {{editor e anotador}% + {ed\adddotspace e anot\adddot}}, + editorsan = {{editores e anotadores}% + {eds\adddotspace e anots\adddot}}, + editorin = {{editor e introduci\'on}% + {ed\adddotspace e introd\adddot}}, + editorsin = {{editores e introduci\'on}% + {eds\adddotspace e introd\adddot}}, + editorfo = {{editor e prefacio}% + {ed\adddotspace e pref\adddot}}, + editorsfo = {{editores e prefacio}% + {eds\adddotspace e pref\adddot}}, + editoraf = {{editor e posfacio}% + {ed\adddotspace e posf\adddot}}, + editorsaf = {{editores e posfacio}% + {eds\adddotspace e posf\adddot}}, + editortrco = {{editor, tradutor e comentador}% + {ed., trad\adddot\ e coment\adddot}}, + editorstrco = {{editores, tradutores e comentadores}% + {eds., trads\adddot\ e coments\adddot}}, + editortran = {{editor, tradutor e anotador}% + {ed., trad\adddot\ e anot\adddot}}, + editorstran = {{editores, tradutores e anotadores}% + {eds., trads\adddot\ e anots\adddot}}, + editortrin = {{editor, tradutor e introduci\'on}% + {ed., trad\adddot\ e introd\adddot}}, + editorstrin = {{editores, tradutores e introduci\'on}% + {eds., trads\adddot\ e introd\adddot}}, + editortrfo = {{editor, tradutor e prefacio}% + {ed., trad\adddot\ e pref\adddot}}, + editorstrfo = {{editores, tradutores e prefacio}% + {eds., trads\adddot\ e pref\adddot}}, + editortraf = {{editor, tradutor e posfacio}% + {ed., trad\adddot\ e posf\adddot}}, + editorstraf = {{editores, tradutores e posfacio}% + {eds., trads\adddot\ e posf\adddot}}, + editorcoin = {{editor, comentador e introduci\'on}% + {ed., coment\adddot\ e introd\adddot}}, + editorscoin = {{editores, comentadores e introduci\'on}% + {eds., coments\adddot\ e introd\adddot}}, + editorcofo = {{editor, comentador e prefacio}% + {ed., coment\adddot\ e pref\adddot}}, + editorscofo = {{editores, comentadores e prefacio}% + {eds., coments\adddot\ e pref\adddot}}, + editorcoaf = {{editor, comentador e posfacio}% + {ed., coment\adddot\ e posf\adddot}}, + editorscoaf = {{editores, comentadores e posfacio}% + {eds., coments\adddot\ e posf\adddot}}, + editoranin = {{editor, anotador e introduci\'on}% + {ed., anot\adddot\ e introd\adddot}}, + editorsanin = {{editores, anotadores e introduci\'on}% + {eds., anots\adddot\ e introd\adddot}}, + editoranfo = {{editor, anotador e prefacio}% + {ed., anot\adddot\ e pref\adddot}}, + editorsanfo = {{editores, anotadores e prefacio}% + {eds., anots\adddot\ e pref\adddot}}, + editoranaf = {{editor, anotador e posfacio}% + {ed., anot\adddot\ e posf\adddot}}, + editorsanaf = {{editores, anotadores e posfacio}% + {eds., anots\adddot\ e posf\adddot}}, + editortrcoin = {{editor, tradutor, comentador e introduci\'on}% + {ed., trad., coment\adddot\ e introd\adddot}}, + editorstrcoin = {{editores, tradutores, comentadores e introduci\'on}% + {eds., trads., coments\adddot\ e introd\adddot}}, + editortrcofo = {{editor, tradutor, comentador e prefacio}% + {ed., trad., coment\adddot\ e pref\adddot}}, + editorstrcofo = {{editores, tradutores, comentadores e prefacio}% + {eds., trads., coments\adddot\ e pref\adddot}}, + editortrcoaf = {{editor, tradutor, comentador e posfacio}% + {ed., trad., coment\adddot\ e posf\adddot}}, + editorstrcoaf = {{editores, tradutores, comentadores e posfacio}% + {eds., trads., coments\adddot\ e posf\adddot}}, + editortranin = {{editor, tradutor, anotador e introduci\'on}% + {ed., trad., anot\adddot\ e introd\adddot}}, + editorstranin = {{editores, tradutores, anotadores e introduci\'on}% + {eds., trads., anots\adddot\ e introd\adddot}}, + editortranfo = {{editor, tradutor, anotador e prefacio}% + {ed., trad., anot\adddot\ e pref\adddot}}, + editorstranfo = {{editores, tradutores, anotadores e prefacio}% + {eds., trads., anots\adddot\ e pref\adddot}}, + editortranaf = {{editor, tradutor, anotador e posfacio}% + {ed., trad., anot\adddot\ e posf\adddot}}, + editorstranaf = {{editores, tradutores, anotadores e posfacio}% + {eds., trads., anots\adddot\ e posf\adddot}}, + translatorco = {{tradutor e comentador}% + {trad\adddot\ e coment\adddot}}, + translatorsco = {{tradutores e comentadores}% + {trads\adddot\ e coments\adddot}}, + translatoran = {{tradutor e anotador}% + {trad\adddot\ e anot\adddot}}, + translatorsan = {{tradutores e anotadores}% + {trads\adddot\ e anots\adddot}}, + translatorin = {{traduci\'on e introduci\'on}% + {trad\adddot\ e introd\adddot}}, + translatorsin = {{traduci\'on e introduci\'on}% + {trad\adddot\ e introd\adddot}}, + translatorfo = {{traduci\'on e prefacio}% + {trad\adddot\ e pref\adddot}}, + translatorsfo = {{traduci\'on e prefacio}% + {trad\adddot\ e pref\adddot}}, + translatoraf = {{traduci\'on e posfacio}% + {trad\adddot\ e posf\adddot}}, + translatorsaf = {{traduci\'on e posfacio}% + {trad\adddot\ e posf\adddot}}, + translatorcoin = {{traduci\'on, comentario e introduci\'on}% + {trad., coment\adddot\ e introd\adddot}}, + translatorscoin = {{traduci\'on, comentario e introduci\'on}% + {trad., coment\adddot\ e introd\adddot}}, + translatorcofo = {{traduci\'on, comentario e prefacio}% + {trad., coment\adddot\ e pref\adddot}}, + translatorscofo = {{traduci\'on, comentario e prefacio}% + {trad., coment\adddot\ e pref\adddot}}, + translatorcoaf = {{traduci\'on, comentario e posfacio}% + {trad., coment\adddot\ e posf\adddot}}, + translatorscoaf = {{traduci\'on, comentario e posfacio}% + {trad., coment\adddot\ e posf\adddot}}, + translatoranin = {{traduci\'on, notas e introduci\'on}% + {trad., notas e introd\adddot}}, + translatorsanin = {{traduci\'on, notas e introduci\'on}% + {trad., notas e introd\adddot}}, + translatoranfo = {{traduci\'on, notas e prefacio}% + {trad., notas e pref\adddot}}, + translatorsanfo = {{traduci\'on, notas e prefacio}% + {trad., notas e pref\adddot}}, + translatoranaf = {{traduci\'on, notas e posfacio}% + {trad., notas e posf\adddot}}, + translatorsanaf = {{traduci\'on, notas e posfacio}% + {trad., notas e posf\adddot}}, +% organizer = {{}{}},% FIXME: missing +% organizers = {{}{}},% FIXME: missing +% byorganizer = {{}{}},% FIXME: missing + byauthor = {{por}{por}}, + byeditor = {{editado por}{ed\adddotspace por}}, + bycompiler = {{compilado por}{comp\adddotspace por}}, + byredactor = {{redactado por}{red\adddotspace por}}, + byreviser = {{revisto por}{rev\adddotspace por}}, + byreviewer = {{avaliado por}{aval\adddotspace por}}, + byfounder = {{fundado por}{fund\adddotspace por}}, + bycontinuator = {{continuado por}{cont\adddotspace por}}, + bycollaborator = {{en colaboraci\'on con}{en col\adddotspace con}}, + bytranslator = {{traducido \lbx@lfromlang\ por}{trad\adddot\ \lbx@sfromlang\ por}}, + bycommentator = {{comentado por}{com\adddot\ por}}, + byannotator = {{notas de}{notas de}}, + withcommentator = {{con comentarios de}{con coment\adddot\ de}}, + withannotator = {{con notas de}{con notas de}}, + withintroduction = {{con introduci\'on de}{con introd\adddot\ de}}, + withforeword = {{con prefacio de}{con pref\adddot\ de}}, + withafterword = {{con posfacio de}{con posf\adddot\ de}}, + byeditortr = {{editado e traducido \lbx@lfromlang\ por}% + {ed\adddotspace e trad\adddot\ \lbx@sfromlang\ por}}, + byeditorco = {{editado e comentado por}% + {ed\adddotspace e com\adddot\ por}}, + byeditoran = {{editado e anotado por}% + {ed\adddotspace e anot\adddot\ por}}, + byeditorin = {{editado e introducido por}% + {ed\adddotspace e introd\adddot\ por}}, + byeditorfo = {{editado e prefaciado por}% + {ed\adddotspace e pref\adddot\ por}}, + byeditoraf = {{editado e posfaciado por}% + {ed\adddotspace e posf\adddot\ por}}, + byeditortrco = {{editado, traducido \lbx@lfromlang\ e comentado por}% + {ed.,\addabbrvspace trad\adddot\ \lbx@sfromlang\ e com\adddot\ por}}, + byeditortran = {{editado, traducido \lbx@lfromlang\ e anotado por}% + {ed.,\addabbrvspace trad\adddot\ \lbx@sfromlang\ e anot\adddot\ por}}, + byeditortrin = {{editado, traducido \lbx@lfromlang\ e introducido por}% + {ed.,\addabbrvspace trad. \lbx@sfromlang\ e introd\adddot\ por}}, + byeditortrfo = {{editado, traducido \lbx@lfromlang\ e prefaciado por}% + {ed.,\addabbrvspace trad. \lbx@sfromlang\ e pref\adddot\ por}}, + byeditortraf = {{editado, traducido \lbx@lfromlang\ e posfaciado por}% + {ed.,\addabbrvspace trad. \lbx@sfromlang\ e posf\adddot\ por}}, + byeditorcoin = {{editado, comentado e introducido por}% + {ed.,\addabbrvspace com\adddot\ e introd\adddot\ por}}, + byeditorcofo = {{editado, comentado e prefaciado por}% + {ed.,\addabbrvspace com\adddot\ e pref\adddot\ por}}, + byeditorcoaf = {{editado, comentado e posfaciado por}% + {ed.,\addabbrvspace com\adddot\ e posf\adddot\ por}}, + byeditoranin = {{editado, anotado e introducido por}% + {ed.,\addabbrvspace anot\adddot\ e introd\adddot\ por}}, + byeditoranfo = {{editado, anotado e prefaciado por}% + {ed.,\addabbrvspace anot\adddot\ e pref\adddot\ por}}, + byeditoranaf = {{editado, anotado e posfaciado por}% + {ed.,\addabbrvspace anot\adddot\ e posf\adddot\ por}}, + byeditortrcoin = {{editado, traducido \lbx@lfromlang, comentado e introducido por}% + {ed.,\addabbrvspace trad\adddot\ \lbx@sfromlang, com\adddot\ e introd\adddot\ por}}, + byeditortrcofo = {{editado, traducido \lbx@lfromlang, comentado e prefaciado por}% + {ed.,\addabbrvspace trad\adddot\ \lbx@sfromlang, com\adddot\ e pref\adddot\ por}}, + byeditortrcoaf = {{editado, traducido \lbx@lfromlang, comentado e posfaciado por}% + {ed.,\addabbrvspace trad\adddot\ \lbx@sfromlang, com\adddot\ e posf\adddot\ por}}, + byeditortranin = {{editado, traducido \lbx@lfromlang, anotado e introducido por}% + {ed.,\addabbrvspace trad\adddot\ \lbx@sfromlang, anot\adddot\ e introd\adddot\ por}}, + byeditortranfo = {{editado, traducido \lbx@lfromlang, anotado e prefaciado por}% + {ed.,\addabbrvspace trad\adddot\ \lbx@sfromlang, anot\adddot\ e pref\adddot\ por}}, + byeditortranaf = {{editado, traducido \lbx@lfromlang, anotado e posfaciado por}% + {ed.,\addabbrvspace trad\adddot\ \lbx@sfromlang, anot\adddot\ e posf\adddot\ por}}, + bytranslatorco = {{traducido \lbx@lfromlang\ e comentado por}% + {trad\adddot\ \lbx@sfromlang\ e com\adddot\ por}}, + bytranslatoran = {{traducido \lbx@lfromlang\ e anotado por}% + {trad\adddot\ \lbx@sfromlang\ e anot\adddot\ por}}, + bytranslatorin = {{traducido \lbx@lfromlang\ e introducido por}% + {trad\adddot\ \lbx@sfromlang\ e introd\adddot\ por}}, + bytranslatorfo = {{traducido \lbx@lfromlang\ e prefaciado por}% + {trad\adddot\ \lbx@sfromlang\ e pref\adddot\ por}}, + bytranslatoraf = {{traducido \lbx@lfromlang\ e posfaciado por}% + {trad\adddot\ \lbx@sfromlang\ e posf\adddot\ por}}, + bytranslatorcoin = {{traducido \lbx@lfromlang, comentado e introducido por}% + {trad\adddot\ \lbx@sfromlang, com\adddot\ e introd\adddot\ por}}, + bytranslatorcofo = {{traducido \lbx@lfromlang, comentado e prefaciado por}% + {trad\adddot\ \lbx@sfromlang, com\adddot\ e pref\adddot\ por}}, + bytranslatorcoaf = {{traducido \lbx@lfromlang, comentado e posfaciado por}% + {trad\adddot\ \lbx@sfromlang, com\adddot\ e posf\adddot\ por}}, + bytranslatoranin = {{traducido \lbx@lfromlang, anotado e introducido por}% + {trad\adddot\ \lbx@sfromlang, anot\adddot\ e introd\adddot\ por}}, + bytranslatoranfo = {{traducido \lbx@lfromlang, anotado e prefaciado por}% + {trad\adddot\ \lbx@sfromlang, anot\adddot\ e pref\adddot\ por}}, + bytranslatoranaf = {{traducido \lbx@lfromlang, anotado e posfaciado por}% + {trad\adddot\ \lbx@sfromlang, anot\adddot\ e posf\adddot\ por}}, + and = {{e}{e}}, + andothers = {{et\addabbrvspace al\adddot}{et\addabbrvspace al\adddot}}, + andmore = {{et\addabbrvspace al\adddot}{et\addabbrvspace al\adddot}}, + volume = {{volume}{vol\adddot}}, + volumes = {{volumes}{vols\adddot}}, + involumes = {{en}{en}}, + jourvol = {{volume}{vol\adddot}}, + jourser = {{serie}{ser\adddot}}, + book = {{libro}{libro}}, + part = {{parte}{parte}}, + issue = {{n\'umero}{n\'umero}}, + newseries = {{nova serie}{nova ser\adddot}}, + oldseries = {{serie antiga}{ser\adddot\ antiga}}, + edition = {{edici\'on}{ed\adddot}}, + reprint = {{reimpresi\'on}{reimpr\adddot}}, + reprintof = {{reimpresi\'on' de}{reimpr\adddotspace de}}, + reprintas = {{reimpreso como}{reimpr\adddotspace como}}, + reprintfrom = {{reimpreso de}{reimpr\adddotspace de}}, + translationof = {{traduci\'on de}{trad\adddotspace de}}, + translationas = {{traducido como}{trad\adddotspace como}}, + translationfrom = {{traducido de}{trad\adddotspace de}}, + reviewof = {{recensi\'on de}{rec.\adddotspace de}}, + origpubas = {{orixinalmente publicado como}{orix\adddotspace pub\adddotspace como}}, + origpubin = {{orixinalmente publicado en}{orix\adddotspace pub\adddotspace en}}, + astitle = {{como}{como}}, + bypublisher = {{por}{por}}, +nodate = {{sen data}{s\adddot d\adddot}}, + page = {{p\'axina}{p\adddot}}, + pages = {{p\'axinas}{pp\adddot}}, + column = {{coluna}{col\adddot}}, + columns = {{colunas}{cols\adddot}}, + line = {{li\~{n}a}{l\adddot}}, + lines = {{li\~{n}as}{ll\adddot}}, + verse = {{verso}{v\adddot}}, + verses = {{versos}{vv\adddot}}, + section = {{secci\'on}{\S}}, + sections = {{secci\'ons'}{\S\S}}, + paragraph = {{par\'agrafo}{par\adddot}}, + paragraphs = {{par\'agrafo}{pars\adddot}}, +% pagetotal = {{}{}},% FIXME: missing +% pagetotals = {{}{}},% FIXME: missing +% columntotal = {{}{}},% FIXME: missing +% columntotals = {{}{}},% FIXME: missing +% linetotal = {{}{}},% FIXME: missing +% linetotals = {{}{}},% FIXME: missing +% versetotal = {{}{}},% FIXME: missing +% versetotals = {{}{}},% FIXME: missing +% sectiontotal = {{}{}},% FIXME: missing +% sectiontotals = {{}{}},% FIXME: missing +% paragraphtotal = {{}{}},% FIXME: missing +% paragraphtotals = {{}{}},% FIXME: missing + in = {{en}{en}}, + inseries = {{en}{en}}, + ofseries = {{de}{de}}, + number = {{n\'umero}{n\adddot\textordmasculine}}, + chapter = {{cap\'itulo}{cap\adddot}}, +% bathesis = {{}{}},% FIXME: missing + mathesis = {{tese de mestrado}{tese de mestrado}}, + phdthesis = {{tese de doutoramento}{tese de doutoramento}}, + candthesis = {{proposta de tese}{proposta de tese}}, + resreport = {{memoria de investigaci\'on'}{mem\adddotspace de inv\adddot}}, + techreport = {{informe t\'ecnico}{inf\adddotspace t\'ec\adddot}}, + software = {{software}{software}}, + datacd = {{CD-ROM}{CD-ROM}}, + audiocd = {{CD audio}{CD audio}}, + version = {{versi\'on'}{versi\'on}}, + url = {{URL}{URL}}, + urlfrom = {{URL}{URL}}, + urlseen = {{accedido en}{accedido en}}, + inpreparation = {{en preparaci\'on'}{en prep\adddot}}, + submitted = {{enviado}{env\adddot}}, + forthcoming = {{no prelo}{no prelo}}, + inpress = {{no prelo}{no prelo}}, + prepublished = {{prepublicado}{prepub\adddot}}, + citedas = {{de agora en diante}{de agora en diante}}, + seenote = {{ver nota}{ver nota}}, + quotedin = {{citado en}{citado en}}, + idem = {{\'idem}{\'idem}}, + idemsm = {{\'idem}{\'idem}}, + idemsf = {{\'idem}{\'idem}}, + idemsn = {{\'idem}{\'idem}}, + idempm = {{\'idem}{\'idem}}, + idempf = {{\'idem}{\'idem}}, + idempn = {{\'idem}{\'idem}}, + idempp = {{\'idem}{\'idem}}, + ibidem = {{ib\'idem}{ib\'id\adddot}}, + opcit = {{op\adddotspace cit\adddot}{op\adddotspace cit\adddot}}, + loccit = {{loc\adddotspace cit\adddot}{loc\adddotspace cit\adddot}}, + confer = {{cf\adddot}{cf\adddot}}, + sequens = {{sq\adddot}{sq\adddot}}, + sequentes = {{sqq\adddot}{sqq\adddot}}, + passim = {{p\'assim}{p\'ass\adddot}}, + see = {{v\'exase}{vid\adddotspace}}, + seealso = {{v\'exase tam\'en}{vid\adddotspace tam\'en}}, + backrefpage = {{v\'exase p\'axina}{vid\adddotspace p\adddot}}, + backrefpages = {{v\'exanse p\'axinas}{vid\adddotspace pp\adddot}}, + january = {{xaneiro}{xan\adddot}}, + february = {{febreiro}{feb\adddot}}, + march = {{marzo}{mar\adddot}}, + april = {{abril}{abr\adddot}}, + may = {{maio}{maio}}, + june = {{xu\~{n}o}{xu\~{n}\adddot}}, + july = {{xullo}{xul\adddot}}, + august = {{agosto}{ago\adddot}}, + september = {{setembro}{set\adddot}}, + october = {{outubro}{out\adddot}}, + november = {{novembro}{nov\adddot}}, + december = {{decembro}{dec\adddot}}, + langamerican = {{ingl\'es americano}{ing\adddotspace am\adddot}}, + langbulgarian = {{b\'ulgaro}{b\'ulg\adddot}}, + langbrazilian = {{portugu\'es brasileiro}{port\adddotspace br\adddot}}, + langcatalan = {{catal\'an}{cat\adddot}}, + langcroatian = {{croata}{croata}}, + langczech = {{checo}{checo}}, + langdanish = {{dinamarqu\'es}{dan\'es}}, + langdutch = {{neerland\'es}{neerl\adddot}}, + langenglish = {{ingl\'es}{ing\adddot}}, + langestonian = {{estoniano}{eston\adddot}}, + langfinnish = {{fin\'es}{fin\'es}}, + langfrench = {{franc\'es}{fr\adddot}}, + langgalician = {{galego}{gal\adddot}}, + langgerman = {{alem\'an}{al\adddot}}, + langgreek = {{grego}{grego}}, + langhungarian = {{h\'ungaro}{h\'ungaro}}, + langitalian = {{italiano}{ital\adddot}}, + langlatin = {{lat\'in}{lat\adddot}}, +% langlatvian = {{}{}},% FIXME: missing + langnorwegian = {{noruegu\'es}{nor\adddot}}, + langpolish = {{polaco}{pol\adddot}}, + langportuguese = {{portugu\'es}{port\adddot}}, + langrussian = {{ruso}{ruso}}, +% langslovak = {{}{}},% FIXME: missing + langslovene = {{esloveno}{eslov\adddot}}, + langspanish = {{castel\'an}{cast\adddot}}, + langswedish = {{sueco}{sueco}}, + fromamerican = {{do ingl\'es americano}{do ingl\adddotspace am\adddot}}, + frombulgarian = {{do b\'ulgaro}{do b\'ulg\adddot}}, + frombrazilian = {{do portugu\'es brasileiro}{do port\adddotspace br\adddot}}, + fromcatalan = {{do catal\~ao}{do cat\adddot}}, + fromcroatian = {{do croata}{do croata}}, + fromczech = {{do checo}{do checo}}, + fromdanish = {{do dinamarqu\'es}{do dan\'es}}, + fromdutch = {{do neerland\'es}{do neerl\adddot}}, + fromenglish = {{do ingl\'es}{do ing\adddot}}, + fromestonian = {{do estoniano}{do eston\adddot}}, + fromfinnish = {{do fin\'es}{do fin\'es}}, + fromfrench = {{do franc\'es}{do fr\adddot}}, + fromgalician = {{do galego}{do gal\adddot}}, + fromgerman = {{do alem\'an}{do al\adddot}}, + fromgreek = {{do grego}{do grego}}, + fromhungarian = {{do h\'ungaro}{do h\'ungaro}}, + fromitalian = {{do italiano}{do ital\adddot}}, + fromlatin = {{do lat\'in'}{do lat\adddot}}, +% fromlatvian = {{}{}},% FIXME: missing + fromnorwegian = {{do noruegu\'es}{do nor\adddot}}, + frompolish = {{do polaco}{do pol\adddot}}, + fromportuguese = {{do portugu\'es}{do port\adddot}}, + fromrussian = {{do ruso}{do ruso}}, +% fromslovak = {{}{}},% FIXME: missing + fromslovene = {{do esloveno}{do eslov\adddot}}, + fromspanish = {{do castel\'an}{do cast\adddot}}, + fromswedish = {{do sueco}{do sueco}}, + countryde = {{Aleman\{{n}a}{DE}}, + countryeu = {{Uni\'on Europea}{EU}}, + countryep = {{Uni\'on Europea}{EU}}, + countryfr = {{Francia}{FR}}, + countryuk = {{Reino Unido}{GB}}, + countryus = {{Estados Unidos de Am\'erica}{EUA}}, + patent = {{patente}{pat\adddot}}, + patentde = {{patente alem\'a}{pat\adddot\ al\adddot}}, + patenteu = {{patente europea}{pat\adddot\ eur\adddot}}, + patentfr = {{patente francesa}{pat\adddot fr\adddot}}, + patentuk = {{patente brit\'anica}{pat\adddot\ brit\adddot}}, + patentus = {{patente americana}{pat\adddot\ am\adddot}}, + patreq = {{solicitude de patente}{sol\adddot\ de pat\adddot}}, + patreqde = {{solicitude de patente alem\'a}{sol\adddot\ de pat\adddot\ al\adddot}}, + patreqeu = {{solicitude de patente europea}{sol\adddot\ de pat\adddot\ eur\adddot}}, + patreqfr = {{solicitude de patente francesa}{sol\adddot\ de pat\adddot\ fr\adddot}}, + patrequk = {{solicitude de patente brit\'anica}{sol\adddot\ de pat\adddot\ brit\adddot}}, + patrequs = {{solicitude de patente americana}{sol\adddot\ de pat\adddot\ EUA}}, + file = {{arquivo}{arq\adddot}}, + library = {{biblioteca}{bibl\adddot}}, + abstract = {{resumo}{res\adddot}}, + annotation = {{anotaci\'on}{anot\adddot}}, + commonera = {{Era Com\'un'}{EC}}, + beforecommonera = {{antes da Era Com\'un'}{AEC}}, + annodomini = {{despois de Cristo}{d\adddot C\adddot}}, + beforechrist = {{antes de Cristo}{a\adddot C\adddot}}, + circa = {{circa}{ca\adddot}}, + spring = {{primavera}{primavera}}, + summer = {{ver\'an}{ver\'an}}, + autumn = {{outono}{outono}}, + winter = {{inverno}{inverno}}, + am = {{AM}{AM}}, + pm = {{PM}{PM}}, +} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/lbx/german.lbx b/macros/latex/contrib/biblatex/latex/lbx/german.lbx new file mode 100644 index 0000000000..d133f04c53 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/lbx/german.lbx @@ -0,0 +1,551 @@ +\ProvidesFile{german.lbx} +[\abx@lbxid] + +\DeclareRedundantLanguages{german}{german,ngerman,austrian,naustrian,nswissgerman,swissgerman} + +\DeclareBibliographyExtras{% + \DeclareCapitalPunctuation{.:!?}% + \protected\def\bibrangedash{% + \textendash\penalty\hyphenpenalty}% breakable dash + \let\finalandcomma=\empty + \let\finalandsemicolon=\empty + \protected\def\mkbibordinal#1{\stripzeros{#1}\adddot}% + \protected\def\mkbibmascord{\mkbibordinal}% + \protected\def\mkbibfemord{\mkbibordinal}% + \protected\def\mkbibneutord{\mkbibordinal}% + \protected\def\mkbibdatelong#1#2#3{% + \iffieldundef{#3} + {} + {\mkbibordinal{\thefield{#3}}% + \iffieldundef{#2}{}{\nobreakspace}}% + \iffieldundef{#2} + {} + {\mkbibmonth{\thefield{#2}}% + \iffieldundef{#1}{}{\space}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}% + \protected\def\mkbibdateshort#1#2#3{% + \iffieldundef{#3} + {} + {\mkdayzeros{\thefield{#3}}\adddot + \iffieldundef{#2}{}{\thinspace}}% + \iffieldundef{#2} + {} + {\mkmonthzeros{\thefield{#2}}% + \iffieldundef{#1} + {} + {\iffieldundef{#3}{/}{\adddot\thinspace}}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}% + \savecommand\lbx@lfromlang + \savecommand\lbx@sfromlang + \def\lbx@lfromlang{% + \iflistundef{origlanguage} + {} + {\printlist[lfromoriglanguage]{origlanguage}\space}}% + \def\lbx@sfromlang{% + \iflistundef{origlanguage} + {} + {\printlist[sfromoriglanguage]{origlanguage}\space}}% + \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{% + \iffieldundef{#1}{} + {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}% + \iffieldundef{#2}{} + {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}% + \iffieldundef{#3}{} + {\printtext{\mktimezeros{\thefield{#3}}}}% + \setunit{}% + \iffieldundef{#4}{} + {\bibtimezonesep + \mkbibtimezone{\thefield{#4}}}}% + \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{% + \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep + \forcezerosmdt{\thefield{#2}}% + \iffieldundef{#3}{} + {\bibtimesep + \forcezerosmdt{\thefield{#3}}}% + \space + \ifnumless{\thefield{#1}}{12} + {\bibstring{am}} + {\bibstring{pm}}% + \iffieldundef{#4}{} + {\space\bibtimezonesep + \parentext{\mkbibtimezone{\thefield{#4}}}}}% + \protected\def\mkbibseasondateshort#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% + \protected\def\mkbibseasondatelong#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% +} + +\UndeclareBibliographyExtras{% + \restorecommand\lbx@lfromlang + \restorecommand\lbx@sfromlang +} + +\DeclareBibliographyStrings{% + bibliography = {{Literaturverzeichnis}{Literatur}}, + references = {{Literaturverzeichnis}{Literatur}}, + shorthands = {{Sigelverzeichnis}{Sigel}}, + editor = {{Herausgeber}{Hrsg\adddot}}, + editors = {{Herausgeber}{Hrsg\adddot}}, + compiler = {{Kompilator}{Komp\adddot}}, + compilers = {{Kompilatoren}{Komp\adddot}}, + redactor = {{Bearbeiter}{Bearb\adddot}}, + redactors = {{Bearbeiter}{Bearb\adddot}}, + reviser = {{\"Uberarbeiter}{\"Uberarb\adddot}}, + revisers = {{\"Uberarbeiter}{\"Uberarb\adddot}}, + founder = {{Begr\"under}{Begr\adddot}}, + founders = {{Begr\"under}{Begr\adddot}}, + continuator = {{Fortf\"uhrer}{Fortf\adddot}}, + continuators = {{Fortf\"uhrer}{Fortf\adddot}}, + collaborator = {{Mitarbeiter}{Mitarb\adddot}}, + collaborators = {{Mitarbeiter}{Mitarb\adddot}}, + translator = {{\"Ubersetzer}{\"Ubers\adddot}}, + translators = {{\"Ubersetzer}{\"Ubers\adddot}}, + commentator = {{Kommentator}{Komm\adddot}}, + commentators = {{Kommentatoren}{Komm\adddot}}, + annotator = {{Kommentator}{Komm\adddot}}, + annotators = {{Kommentatoren}{Komm\adddot}}, + commentary = {{Kommentar}{Komm\adddot}}, + annotations = {{Erl\"auterungen}{Erl\"aut\adddot}}, + introduction = {{Einleitung}{Einl\adddot}}, + foreword = {{Vorwort}{Vorw\adddot}}, + afterword = {{Nachwort}{Nachw\adddot}}, + editortr = {{Herausgeber und \"Ubersetzer}% + {Hrsg\adddot\ und \"Ubers\adddot}}, + editorstr = {{Herausgeber und \"Ubersetzer}% + {Hrsg\adddot\ und \"Ubers\adddot}}, + editorco = {{Herausgeber und Kommentator}% + {Hrsg\adddot\ und Komm\adddot}}, + editorsco = {{Herausgeber und Kommentatoren}% + {Hrsg\adddot\ und Komm\adddot}}, + editoran = {{Herausgeber und Kommentator}% + {Hrsg\adddot\ und Komm\adddot}}, + editorsan = {{Herausgeber und Kommentatoren}% + {Hrsg\adddot\ und Komm\adddot}}, + editorin = {{Herausgabe und Einleitung}% + {Hrsg\adddot\ und Einl\adddot}}, + editorsin = {{Herausgeber und Einleitung}% + {Hrsg\adddot\ und Einl\adddot}}, + editorfo = {{Herausgeber und Vorwort}% + {Hrsg\adddot\ und Vorw\adddot}}, + editorsfo = {{Herausgabe und Vorwort}% + {Hrsg\adddot\ und Vorw\adddot}}, + editoraf = {{Herausgabe und Nachwort}% + {Hrsg\adddot\ und Nachw\adddot}}, + editorsaf = {{Herausgabe und Nachwort}% + {Hrsg\adddot\ und Nachw\adddot}}, + editortrco = {{Herausgeber, \"Ubersetzer und Kommentator}% + {Hrsg., \"Ubers\adddot\ und Komm\adddot}}, + editorstrco = {{Herausgeber, \"Ubersetzer und Kommentatoren}% + {Hrsg., \"Ubers\adddot\ und Komm\adddot}}, + editortran = {{Herausgeber, \"Ubersetzer und Kommentator}% + {Hrsg., \"Ubers\adddot\ und Komm\adddot}}, + editorstran = {{Herausgeber, \"Ubersetzer und Kommentatoren}% + {Hrsg., \"Ubers\adddot\ und Komm\adddot}}, + editortrin = {{Herausgabe, \"Ubersetzung und Einleitung}% + {Hrsg., \"Ubers\adddot\ und Einl\adddot}}, + editorstrin = {{Herausgabe, \"Ubersetzung und Einleitung}% + {Hrsg., \"Ubers\adddot\ und Einl\adddot}}, + editortrfo = {{Herausgabe, \"Ubersetzung und Vorwort}% + {Hrsg., \"Ubers\adddot\ und Vorw\adddot}}, + editorstrfo = {{Herausgabe, \"Ubersetzung und Vorwort}% + {Hrsg., \"Ubers\adddot\ und Vorw\adddot}}, + editortraf = {{Herausgabe, \"Ubersetzung und Nachwort}% + {Hrsg., \"Ubers\adddot\ und Nachw\adddot}}, + editorstraf = {{Herausgabe, \"Ubersetzung und Nachwort}% + {Hrsg., \"Ubers\adddot\ und Nachw\adddot}}, + editorcoin = {{Herausgabe, Kommentar und Einleitung}% + {Hrsg., Komm\adddot\ und Einl\adddot}}, + editorscoin = {{Herausgabe, Kommentar und Einleitung}% + {Hrsg., Komm\adddot\ und Einl\adddot}}, + editorcofo = {{Herausgabe, Kommentar und Vorwort}% + {Hrsg., Komm\adddot\ und Vorw\adddot}}, + editorscofo = {{Herausgabe, Kommentar und Vorwort}% + {Hrsg., Komm\adddot\ und Vorw\adddot}}, + editorcoaf = {{Herausgabe, Kommentar und Nachwort}% + {Hrsg., Komm\adddot\ und Nachw\adddot}}, + editorscoaf = {{Herausgabe, Kommentar und Nachwort}% + {Hrsg., Komm\adddot\ und Nachw\adddot}}, + editoranin = {{Herausgabe, Erl\"auterungen und Einleitung}% + {Hrsg., Erl\"aut\adddot\ und Einl\adddot}}, + editorsanin = {{Herausgabe, Erl\"auterungen und Einleitung}% + {Hrsg., Erl\"aut\adddot\ und Einl\adddot}}, + editoranfo = {{Herausgabe, Erl\"auterungen und Vorwort}% + {Hrsg., Erl\"aut\adddot\ und Vorw\adddot}}, + editorsanfo = {{Herausgabe, Erl\"auterungen und Vorwort}% + {Hrsg., Erl\"aut\adddot\ und Vorw\adddot}}, + editoranaf = {{Herausgabe, Erl\"auterungen und Nachwort}% + {Hrsg., Erl\"aut\adddot\ und Nachw\adddot}}, + editorsanaf = {{Herausgabe, Erl\"auterungen und Nachwort}% + {Hrsg., Erl\"aut\adddot\ und Nachw\adddot}}, + editortrcoin = {{Herausgabe, \"Ubersetzung, Kommentar und Einleitung}% + {Hrsg., \"Ubers., Komm\adddot\ und Einl\adddot}}, + editorstrcoin = {{Herausgabe, \"Ubersetzung, Kommentar und Einleitung}% + {Hrsg., \"Ubers., Komm\adddot\ und Einl\adddot}}, + editortrcofo = {{Herausgabe, \"Ubersetzung, Kommentar und Vorwort}% + {Hrsg., \"Ubers., Komm\adddot\ und Vorw\adddot}}, + editorstrcofo = {{Herausgabe, \"Ubersetzung, Kommentar und Vorwort}% + {Hrsg., \"Ubers., Komm\adddot\ und Vorw\adddot}}, + editortrcoaf = {{Herausgabe, \"Ubersetzung, Kommentar und Nachwort}% + {Hrsg., \"Ubers., Komm\adddot\ und Nachw\adddot}}, + editorstrcoaf = {{Herausgabe, \"Ubersetzung, Kommentar und Nachwort}% + {Hrsg., \"Ubers., Komm\adddot\ und Nachw\adddot}}, + editortranin = {{Herausgabe, \"Ubersetzung, Erl\"auterungen und Einleitung}% + {Hrsg., \"Ubers., Erl\"aut\adddot\ und Einl\adddot}}, + editorstranin = {{Herausgabe, \"Ubersetzung, Erl\"auterungen und Einleitung}% + {Hrsg., \"Ubers., Erl\"aut\adddot\ und Einl\adddot}}, + editortranfo = {{Herausgabe, \"Ubersetzung, Erl\"auterungen und Vorwort}% + {Hrsg., \"Ubers., Erl\"aut\adddot\ und Vorw\adddot}}, + editorstranfo = {{Herausgabe, \"Ubersetzung, Erl\"auterungen und Vorwort}% + {Hrsg., \"Ubers., Erl\"aut\adddot\ und Vorw\adddot}}, + editortranaf = {{Herausgabe, \"Ubersetzung, Erl\"auterungen und Nachwort}% + {Hrsg., \"Ubers., Erl\"aut\adddot\ und Nachw\adddot}}, + editorstranaf = {{Herausgabe, \"Ubersetzung, Erl\"auterungen und Nachwort}% + {Hrsg., \"Ubers., Erl\"aut\adddot\ und Nachw\adddot}}, + translatorco = {{\"Ubersetzung und Kommentar}% + {\"Ubers\adddot\ und Komm\adddot}}, + translatorsco = {{\"Ubersetzung und Kommentar}% + {\"Ubers\adddot\ und Komm\adddot}}, + translatoran = {{\"Ubersetzung und Erl\"auterungen}% + {\"Ubers\adddot\ und Erl\"aut\adddot}}, + translatorsan = {{\"Ubersetzung und Erl\"auterungen}% + {\"Ubers\adddot\ und Erl\"aut\adddot}}, + translatorin = {{\"Ubersetzung und Einleitung}% + {\"Ubers\adddot\ und Einl\adddot}}, + translatorsin = {{\"Ubersetzung und Einleitung}% + {\"Ubers\adddot\ und Einl\adddot}}, + translatorfo = {{\"Ubersetzung und Vorwort}% + {\"Ubers\adddot\ und Vorw\adddot}}, + translatorsfo = {{\"Ubersetzung und Vorwort}% + {\"Ubers\adddot\ und Vorw\adddot}}, + translatoraf = {{\"Ubersetzung und Nachwort}% + {\"Ubers\adddot\ und Nachw\adddot}}, + translatorsaf = {{\"Ubersetzung und Nachwort}% + {\"Ubers\adddot\ und Nachw\adddot}}, + translatorcoin = {{\"Ubersetzung, Kommentar und Einleitung}% + {\"Ubers., Komm\adddot\ und Einl\adddot}}, + translatorscoin = {{\"Ubersetzung, Kommentar und Einleitung}% + {\"Ubers., Komm\adddot\ und Einl\adddot}}, + translatorcofo = {{\"Ubersetzung, Kommentar und Vorwort}% + {\"Ubers., Komm\adddot\ und Vorw\adddot}}, + translatorscofo = {{\"Ubersetzung, Kommentar und Vorwort}% + {\"Ubers., Komm\adddot\ und Vorw\adddot}}, + translatorcoaf = {{\"Ubersetzung, Kommentar und Nachwort}% + {\"Ubers., Komm\adddot\ und Nachw\adddot}}, + translatorscoaf = {{\"Ubersetzung, Kommentar und Nachwort}% + {\"Ubers., Komm\adddot\ und Nachw\adddot}}, + translatoranin = {{\"Ubersetzung, Erl\"auterungen und Einleitung}% + {\"Ubers., Erl\"aut\adddot\ und Einl\adddot}}, + translatorsanin = {{\"Ubersetzung, Erl\"auterungen und Einleitung}% + {\"Ubers., Erl\"aut\adddot\ und Einl\adddot}}, + translatoranfo = {{\"Ubersetzung, Erl\"auterungen und Vorwort}% + {\"Ubers., Erl\"aut\adddot\ und Vorw\adddot}}, + translatorsanfo = {{\"Ubersetzung, Erl\"auterungen und Vorwort}% + {\"Ubers., Erl\"aut\adddot\ und Vorw\adddot}}, + translatoranaf = {{\"Ubersetzung, Erl\"auterungen und Nachwort}% + {\"Ubers., Erl\"aut\adddot\ und Nachw\adddot}}, + translatorsanaf = {{\"Ubersetzung, Erl\"auterungen und Nachwort}% + {\"Ubers., Erl\"aut\adddot\ und Nachw\adddot}}, +% organizer = {{}{}},% FIXME: missing +% organizers = {{}{}},% FIXME: missing +% byorganizer = {{}{}},% FIXME: missing + byauthor = {{von}{von}}, + byeditor = {{herausgegeben von}{hrsg\adddotspace von}}, + bycompiler = {{kompiliert von}{komp\adddotspace von}}, + byredactor = {{bearbeitet von}{bearb\adddotspace von}}, + byreviser = {{\"uberarbeitet von}{\"uberarb\adddotspace von}}, + byreviewer = {{rezensiert von}{rez\adddotspace von}}, + byfounder = {{begr\"undet von}{begr\adddotspace von}}, + bycontinuator = {{fortgef\"urt von}{fortgef\adddotspace von}}, + bycollaborator = {{unter Mitarbeit von}{unter Mitarb\adddotspace von}}, + bytranslator = {{\lbx@lfromlang \"ubersetzt von}{\lbx@sfromlang \"ubers\adddot\ von}}, + bycommentator = {{kommentiert von}{komm\adddot\ von}}, + byannotator = {{erl\"autert von}{erl\"aut\adddot\ von}}, + withcommentator = {{mit einem Kommentar von}{mit einem Komm\adddot\ von}}, + withannotator = {{mit Erl\"auterungen von}{mit Erl\"aut\adddot\ von}}, + withintroduction = {{mit einer Einleitung von}{mit einer Einl\adddot\ von}}, + withforeword = {{mit einem Vorwort von}{mit einem Vorw\adddot\ von}}, + withafterword = {{mit einem Nachwort von}{mit einem Nachw\adddot\ von}}, + byeditortr = {{herausgegeben und \lbx@lfromlang \"ubersetzt von}% + {hrsg\adddotspace und \lbx@sfromlang \"ubers\adddot\ von}}, + byeditorco = {{herausgegeben und kommentiert von}% + {hrsg\adddotspace und komm\adddot\ von}}, + byeditoran = {{herausgegeben und erl\"autert von}% + {hrsg\adddotspace und erl\"aut\adddot\ von}}, + byeditorin = {{herausgegeben und mit einer Einleitung versehen von}% + {hrsg\adddotspace und mit einer Einl\adddot\ vers\adddot\ von}}, + byeditorfo = {{herausgegeben und mit einem Vorwort versehen von}% + {hrsg\adddotspace und mit einem Vorw\adddot\ vers\adddot\ von}}, + byeditoraf = {{herausgegeben und mit einem Nachwort versehen von}% + {hrsg\adddotspace und mit einem Nachw\adddot\ vers\adddot\ von}}, + byeditortrco = {{herausgegeben, \lbx@lfromlang \"ubersetzt und kommentiert von}% + {hrsg., \lbx@sfromlang \"ubers\adddot\ und komm\adddot\ von}}, + byeditortran = {{herausgegeben, \lbx@lfromlang \"ubersetzt und erl\"autert von}% + {hrsg., \lbx@sfromlang \"ubers\adddot\ und erl\"aut\adddot\ von}}, + byeditortrin = {{herausgegeben, \lbx@lfromlang \"ubersetzt und mit einer Einleitung versehen von}% + {hrsg., \lbx@sfromlang \"ubers\adddot\ und mit einer Einl\adddot\ vers\adddot\ von}}, + byeditortrfo = {{herausgegeben, \lbx@lfromlang \"ubersetzt und mit einem Vorwort versehen von}% + {hrsg., \lbx@sfromlang \"ubers\adddot\ und mit einem Vorw\adddot\ vers\adddot\ von}}, + byeditortraf = {{herausgegeben, \lbx@lfromlang \"ubersetzt und mit einem Nachwort versehen von}% + {hrsg., \lbx@sfromlang \"ubers\adddot\ und mit einem Nachw\adddot\ vers\adddot\ von}}, + byeditorcoin = {{herausgegeben, kommentiert und mit einer Einleitung versehen von}% + {hrsg., komm\adddot\ und mit einer Einl\adddot\ vers\adddot\ von}}, + byeditorcofo = {{herausgegeben, kommentiert und mit einem Vorwort versehen von}% + {hrsg., komm\adddot\ und mit einem Vorw\adddot\ vers\adddot\ von}}, + byeditorcoaf = {{herausgegeben, kommentiert und mit einem Nachwort versehen von}% + {hrsg., komm\adddot\ und mit einem Nachw\adddot\ vers\adddot\ von}}, + byeditoranin = {{herausgegeben, erl\"autert und mit einer Einleitung versehen von}% + {hrsg., erl\"aut\adddot\ und mit einer Einl\adddot\ vers\adddot\ von}}, + byeditoranfo = {{herausgegeben, erl\"autert und mit einem Vorwort versehen von}% + {hrsg., erl\"aut\adddot\ und mit einem Vorw\adddot\ vers\adddot\ von}}, + byeditoranaf = {{herausgegeben, erl\"autert und mit einem Nachwort versehen von}% + {hrsg., erl\"aut\adddot\ und mit einem Nachw\adddot\ vers\adddot\ von}}, + byeditortrcoin = {{herausgegeben, \lbx@lfromlang \"ubersetzt, kommentiert und mit einer Einleitung versehen von}% + {hrsg., \lbx@sfromlang \"ubers., komm\adddot\ und mit einer Einl\adddot\ vers\adddot\ von}}, + byeditortrcofo = {{herausgegeben, \lbx@lfromlang \"ubersetzt, kommentiert und mit einem Vorwort versehen von}% + {hrsg., \lbx@sfromlang \"ubers., komm\adddot\ und mit einem Vorw\adddot\ vers\adddot\ von}}, + byeditortrcoaf = {{herausgegeben, \lbx@lfromlang \"ubersetzt, kommentiert und mit einem Nachwort versehen von}% + {hrsg., \lbx@sfromlang \"ubers., komm\adddot\ und mit einem Nachw\adddot\ vers\adddot\ von}}, + byeditortranin = {{herausgegeben, \lbx@lfromlang \"ubersetzt, erl\"autert und mit einer Einleitung versehen von}% + {hrsg., \lbx@sfromlang \"ubers., erl\"aut\adddot\ und mit einer Einl\adddot\ vers\adddot\ von}}, + byeditortranfo = {{herausgegeben, \lbx@lfromlang \"ubersetzt, erl\"autert und mit einem Vorwort versehen von}% + {hrsg., \lbx@sfromlang \"ubers., erl\"aut\adddot\ und mit einem Vorw\adddot\ vers\adddot\ von}}, + byeditortranaf = {{herausgegeben, \lbx@lfromlang \"ubersetzt, erl\"autert und mit einem Nachwort versehen von}% + {hrsg., \lbx@sfromlang \"ubers., erl\"aut\adddot\ und mit einem Nachw\adddot\ vers\adddot\ von}}, + bytranslatorco = {{\lbx@lfromlang \"ubersetzt und kommentiert von}% + {\lbx@sfromlang \"ubers\adddot\ und komm\adddot\ von}}, + bytranslatoran = {{\lbx@lfromlang \"ubersetzt und erl\"autert von}% + {\lbx@sfromlang \"ubers\adddot\ und erl\"aut\adddot\ von}}, + bytranslatorin = {{\lbx@lfromlang \"ubersetzt und mit einer Einleitung versehen von}% + {\lbx@sfromlang \"ubers\adddot\ und mit einer Einl\adddot\ vers\adddot\ von}}, + bytranslatorfo = {{\lbx@lfromlang \"ubersetzt und mit einem Vorwort versehen von}% + {\lbx@sfromlang \"ubers\adddot\ und mit einem Vorw\adddot\ vers\adddot\ von}}, + bytranslatoraf = {{\lbx@lfromlang \"ubersetzt und mit einem Nachwort versehen von}% + {\lbx@sfromlang \"ubers\adddot\ und mit einem Nachw\adddot\ vers\adddot\ von}}, + bytranslatorcoin = {{\lbx@lfromlang \"ubersetzt, kommentiert und mit einer Einleitung versehen von}% + {\lbx@sfromlang \"ubers., komm\adddot\ und mit einer Einl\adddot\ vers\adddot\ von}}, + bytranslatorcofo = {{\lbx@lfromlang \"ubersetzt, kommentiert und mit einem Vorwort versehen von}% + {\lbx@sfromlang \"ubers., komm\adddot\ und mit einem Vorw\adddot\ vers\adddot\ von}}, + bytranslatorcoaf = {{\lbx@lfromlang \"ubersetzt, kommentiert und mit einem Nachwort versehen von}% + {\lbx@sfromlang \"ubers., komm\adddot\ und mit einem Nachw\adddot\ vers\adddot\ von}}, + bytranslatoranin = {{\lbx@lfromlang \"ubersetzt, erl\"autert und mit einer Einleitung versehen von}% + {\lbx@sfromlang \"ubers., erl\"aut\adddot\ und mit einer Einl\adddot\ vers\adddot\ von}}, + bytranslatoranfo = {{\lbx@lfromlang \"ubersetzt, erl\"autert und mit einem Vorwort versehen von}% + {\lbx@sfromlang \"ubers., erl\"aut\adddot\ und mit einem Vorw\adddot\ vers\adddot\ von}}, + bytranslatoranaf = {{\lbx@lfromlang \"ubersetzt, erl\"autert und mit einem Nachwort versehen von}% + {\lbx@sfromlang \"ubers., erl\"aut\adddot\ und mit einem Nachw\adddot\ vers\adddot\ von}}, + and = {{und}{und}}, + andothers = {{u.\,a\adddot}{u.\,a\adddot}}, + andmore = {{u.\,a\adddot}{u.\,a\adddot}}, + volume = {{Band}{Bd\adddot}}, + volumes = {{B\"ande}{Bde\adddot}}, + involumes = {{in}{in}}, + jourvol = {{Jahrgang}{Jg\adddot}}, + jourser = {{Serie}{Ser\adddot}}, + book = {{Buch}{Buch}}, + part = {{Teil}{T.\adddot}}, + issue = {{Ausgabe}{Ausg\adddot}}, + newseries = {{neue Folge}{n.\,F\adddot}}, + oldseries = {{alte Folge}{a.\,F\adddot}}, + edition = {{Auf\noligature lage}{Aufl\adddot}}, + reprint = {{Nachdruck}{Nachdr\adddot}}, + reprintof = {{Nachdruck von}{Nachdr\adddotspace von}}, + reprintas = {{Nachdruck unter dem Titel}{Nachdr\adddotspace unter dem Titel}}, + reprintfrom = {{Nachdruck aus}{Nachdr\adddotspace aus}}, + translationof = {{\"Ubersetzung von}{\"Ubers\adddotspace von}}, + translationas = {{\"ubersetzt unter dem Titel}{\"ubers\adddotspace unter dem Titel}}, +% translationfrom = {{}{}},% FIXME: missing + reviewof = {{Rezension von}{Rez\adddotspace von}}, + origpubas = {{zuerst publiziert als}{zuerst publ\adddotspace als}}, + origpubin = {{zuerst publiziert in}{zuerst publ\adddotspace in}}, + astitle = {{unter dem Titel}{unter dem Titel}}, + bypublisher = {{von}{von}}, + nodate = {{ohne\space Datum}{{}o\adddot D\adddot}}, + page = {{Seite}{S\adddot}}, + pages = {{Seiten}{S\adddot}}, + column = {{Spalte}{Sp\adddot}}, + columns = {{Spalten}{Sp\adddot}}, + line = {{Zeile}{Z\adddot}}, + lines = {{Zeilen}{Z\adddot}}, + verse = {{Vers}{V\adddot}}, + verses = {{Verse}{V\adddot}}, + section = {{Paragraph}{\S}}, + sections = {{Paragraphen}{\S\S}}, + paragraph = {{Absatz}{Abs\adddot}}, + paragraphs = {{Abs\"atze}{Abs\adddot}}, + pagetotal = {{Seite}{S\adddot}}, + pagetotals = {{Seiten}{S\adddot}}, + columntotal = {{Spalte}{Sp\adddot}}, + columntotals = {{Spalten}{Sp\adddot}}, + linetotal = {{Zeile}{Z\adddot}}, + linetotals = {{Zeilen}{Z\adddot}}, + versetotal = {{Vers}{V\adddot}}, + versetotals = {{Verse}{V\adddot}}, + sectiontotal = {{Paragraph}{\S}}, + sectiontotals = {{Paragraphen}{\S\S}}, + paragraphtotal = {{Absatz}{Abs\adddot}}, + paragraphtotals = {{Abs\"atze}{Abs\adddot}}, + in = {{in}{in}}, + inseries = {{der Reihe}{der Reihe}}, + ofseries = {{der Reihe}{der Reihe}}, + number = {{Nummer}{Nr\adddot}}, + chapter = {{Kapitel}{Kap\adddot}}, + bathesis = {{Bachelorarbeit}{Bachelorarb\adddot}}, + mathesis = {{Magisterarbeit}{Magisterarb\adddot}}, + phdthesis = {{Dissertation}{Diss\adddot}}, + candthesis = {{Qualifikationsschrift}{Qualifikationsschr\adddot}}, + resreport = {{Forschungsbericht}{Forschungsber\adddot}}, + techreport = {{Technischer Bericht}{Techn\adddotspace Ber\adddot}}, + software = {{Com\-pu\-ter-Soft\-ware}{Soft\-ware}}, + datacd = {{CD-ROM}{CD-ROM}}, + audiocd = {{Audio-CD}{Audio-CD}}, + version = {{Version}{Version}}, + url = {{Adresse}{Adresse}}, + urlfrom = {{abgerufen unter}{abger\adddotspace unter}}, + urlseen = {{besucht am}{besucht am}}, + inpreparation = {{in Vorbereitung}{in Vorbereitung}}, + submitted = {{eingereicht}{eingereicht}}, + forthcoming = {{im Erscheinen}{im Erscheinen}}, + inpress = {{im Druck}{im Druck}}, + prepublished = {{Vorver\"offentlichung}{Vorver\"offentlichung}}, + citedas = {{im folgenden zitiert als}{im folgenden zit\adddotspace als}}, + thiscite = {{hier}{hier}}, + seenote = {{siehe Anmerkung}{s\adddotspace Anm\adddot}}, + quotedin = {{zitiert nach}{zit\adddotspace nach}}, + idem = {{derselbe}{ders\adddot}}, + idemsf = {{dieselbe}{dies\adddot}}, + idemsm = {{derselbe}{ders\adddot}}, + idemsn = {{dasselbe}{dass\adddot}}, + idempf = {{dieselben}{dies\adddot}}, + idempm = {{dieselben}{dies\adddot}}, + idempn = {{dieselben}{dies\adddot}}, + idempp = {{dieselben}{dies\adddot}}, + ibidem = {{ebenda}{ebd\adddot}}, + opcit = {{a.\,a.\,O\adddot}{a.\,a.\,O\adddot}}, + loccit = {{a.\,a.\,O\adddot}{a.\,a.\,O\adddot}}, + confer = {{vgl\adddot}{vgl\adddot}}, + sequens = {{f\adddot}{f\adddot}}, + sequentes = {{ff\adddot}{ff\adddot}}, + passim = {{passim}{pass\adddot}}, + see = {{siehe}{siehe}}, + seealso = {{siehe auch}{s.\,auch}}, + backrefpage = {{siehe Seite}{siehe S\adddot}}, + backrefpages = {{siehe Seiten}{siehe S\adddot}}, + january = {{Januar}{Jan\adddot}}, + february = {{Februar}{Feb\adddot}}, + march = {{M\"arz}{M\"arz}}, + april = {{April}{Apr\adddot}}, + may = {{Mai}{Mai}}, + june = {{Juni}{Juni}}, + july = {{Juli}{Juli}}, + august = {{August}{Aug\adddot}}, + september = {{September}{Sep\adddot}}, + october = {{Oktober}{Okt\adddot}}, + november = {{November}{Nov\adddot}}, + december = {{Dezember}{Dez\adddot}}, + langamerican = {{Amerikanisch}{Amerikanisch}}, + langbrazilian = {{Brasilianisch}{Brasilianisch}}, + langbulgarian = {{Bulgarisch}{Bulgarisch}}, + langcatalan = {{Katalanisch}{Katalanisch}}, + langcroatian = {{Kroatisch}{Kroatisch}}, + langczech = {{Tschechisch}{Tschechisch}}, + langdanish = {{D\"anisch}{D\"anisch}}, + langdutch = {{Niederl\"andisch}{Niederl\"andisch}}, + langenglish = {{Englisch}{Englisch}}, + langestonian = {{Estnisch}{Estnisch}}, + langfinnish = {{Finnisch}{Finnisch}}, + langfrench = {{Franz\"osisch}{Franz\"osisch}}, + langgalician = {{Galicisch}{Galicisch}}, + langgerman = {{Deutsch}{Deutsch}}, + langgreek = {{Griechisch}{Griechisch}}, + langhungarian = {{Ungarisch}{Ungarisch}}, + langitalian = {{Italienisch}{Italienisch}}, + langjapanese = {{Japanisch}{Japanisch}}, + langlatin = {{Lateinisch}{Lateinisch}}, + langlatvian = {{Lettisch}{Lettisch}}, + langnorwegian = {{Norwegisch}{Norwegisch}}, + langpolish = {{Polnisch}{Polnisch}}, + langportuguese = {{Portugiesisch}{Portugiesisch}}, + langrussian = {{Russisch}{Russisch}}, + langslovak = {{Slowakisch}{Slowakisch}}, + langslovene = {{Slowenisch}{Slowenisch}}, + langspanish = {{Spanisch}{Spanisch}}, + langswedish = {{Schwedisch}{Schwedisch}}, + langukrainian = {{Ukrainisch}{Ukrainisch}}, + fromamerican = {{aus dem Amerikanischen}{aus dem Amerikanischen}}, + frombrazilian = {{aus dem Brasilianischen}{aus dem Brasilianischen}}, + frombulgarian = {{aus dem Bulgarischen}{aus dem Bulgarischen}}, + fromcatalan = {{aus dem Katalanischen}{aus dem Katalanischen}}, + fromcroatian = {{aus dem Kroatischen}{aus dem Kroatischen}}, + fromczech = {{aus dem Tschechischen}{aus dem Tschechischen}}, + fromdanish = {{aus dem D\"anischen}{aus dem D\"anischen}}, + fromdutch = {{aus dem Niederl\"andischen}{aus dem Niederl\"andischen}}, + fromenglish = {{aus dem Englischen}{aus dem Englischen}}, + fromestonian = {{aus dem Estnischen}{aus dem Estnischen}}, + fromfinnish = {{aus dem Finnischen}{aus dem Finnischen}}, + fromfrench = {{aus dem Franz\"osischen}{aus dem Franz\"osischen}}, + fromgalician = {{aus dem Galicischen}{aus dem Galicischen}}, + fromgerman = {{aus dem Deutschen}{aus dem Deutschen}}, + fromgreek = {{aus dem Griechischen}{aus dem Griechischen}}, + fromhungarian = {{aus dem Ungarischen}{aus dem Ungarischen}}, + fromitalian = {{aus dem Italienischen}{aus dem Italienischen}}, + fromjapanese = {{aus dem Japanischen}{aus dem Japanischen}}, + fromlatin = {{aus dem Lateinischen}{aus dem Lateinischen}}, + fromlatvian = {{aus dem Lettischen}{aus dem Lettischen}}, + fromnorwegian = {{aus dem Norwegischen}{aus dem Norwegischen}}, + frompolish = {{aus dem Polnischen}{aus dem Polnischen}}, + fromportuguese = {{aus dem Portugiesischen}{aus dem Portugiesischen}}, + fromrussian = {{aus dem Russischen}{aus dem Russischen}}, + fromslovak = {{aus dem Slowakischen}{aus dem Slowakischen}}, + fromslovene = {{aus dem Slowenischen}{aus dem Slowenischen}}, + fromspanish = {{aus dem Spanischen}{aus dem Spanischen}}, + fromswedish = {{aus dem Schwedischen}{aus dem Schwedischen}}, + fromukrainian = {{aus dem Ukrainischen}{aus dem Ukrainischen}}, + countryde = {{Deutschland}{DE}}, + countryep = {{Europ\"aische Union}{EP}}, + countryeu = {{Europ\"aische Union}{EU}}, + countryfr = {{Frankreich}{FR}}, + countryuk = {{Gro\ss britannien}{GB}}, + countryus = {{USA}{US}}, + patent = {{Patent}{Pat\adddot}}, + patentde = {{deutsches Patent}{dt\adddotspace Pat\adddot}}, + patenteu = {{europ\"aisches Patent}{europ\adddot\ Pat\adddot}}, + patentfr = {{franz\"osisches Patent}{frz\adddot\ Pat\adddot}}, + patentuk = {{britisches Patent}{brit\adddot\ Pat\adddot}}, + patentus = {{US-Patent}{US-Pat\adddot}}, + patreq = {{Patentanmeldung}{Patentanmeld\adddot}}, + patreqde = {{deutsche Patentanmeldung}{dt\adddotspace Patentanmeld\adddot}}, + patreqeu = {{europ\"aische Patentanmeldung}{europ\adddot\ Patentanmeld\adddot}}, + patreqfr = {{franz\"osische Patentanmeldung}{frz\adddot\ Patentanmeld\adddot}}, + patrequk = {{britische Patentanmeldung}{brit\adddot\ Patentanmeld\adddot}}, + patrequs = {{US-Patentanmeldung}{US-Patentanmeld\adddot}}, + file = {{Datei}{Datei}}, + library = {{Bibliothek}{Bibliothek}}, + abstract = {{Zusammenfassung}{Zusammenfassung}}, + annotation = {{Anmerkungen}{Anmerkungen}}, + commonera = {{unserer Zeitrechnung}{u\adddotspace Z\adddot}}, + beforecommonera = {{vor unserer Zeitrechnung}{v\adddotspace u\adddotspace Z\adddot}}, + annodomini = {{n\adddotspace Chr\adddot}{n\adddotspace Chr\adddot}}, + beforechrist = {{v\adddotspace Chr\adddot}{v\adddotspace Chr\adddot}}, + circa = {{circa}{ca\adddot}}, + spring = {{Fr\"uhling}{Fr\adddot}}, + summer = {{Sommer}{So\adddot}}, + autumn = {{Herbst}{He\adddot}}, + winter = {{Winter}{Wi\adddot}}, + am = {{vorm\adddot}{vorm\adddot}}, + pm = {{nachm\adddot}{nachm\adddot}}, +} + +\DeclareHyphenationExceptions{% + Pa-tent-an-mel-dung + Pa-tent-an-meld +} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/lbx/greek.lbx b/macros/latex/contrib/biblatex/latex/lbx/greek.lbx new file mode 100644 index 0000000000..69f2fd708b --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/lbx/greek.lbx @@ -0,0 +1,592 @@ +\ProvidesFile{greek.lbx} +[\abx@lbxid] + +% Translator's notes: +% +% The translations should be OK but should also be tested against +% enough real data. Especially: +% +% a) Abbreviations should be checked +% b) Issues concerning grammatical gender have not been studied +% +% This file requires UTF-8 support! + +\lbx@ifutfinput + {} + {\PackageError{biblatex} + {Greek requires UTF-8 support} + {The 'greek.lbx' file requires UTF-8 encoding but you + seem\MessageBreak to be using a different encoding. + This is a fatal error. I will\MessageBreak abort loading + greek.lbx now.}% + \endinput} + +\NewBibliographyString{% Used only Greek for month checks + datejanuary, + datefebruary, + datemarch, + dateapril, + datemay, + datejune, + datejuly, + dateaugust, + dateseptember, + dateoctober, + datenovember, + datedecember% +} + +\DeclareRedundantLanguages{greek}{greek} + +\DeclareBibliographyExtras{% + \DeclareCapitalPunctuation{.!;?}% + \let\finalandcomma=\empty + \protected\def\bibrangedash{% + \textendash\penalty\hyphenpenalty}% breakable dash + \let\finalandcomma=\empty + \let\finalandsemicolon=\empty + \protected\def\mkbibordinal{\mkbibmascord}% + \protected\def\mkbibmascord#1{\stripzeros{#1}ος}% + \protected\def\mkbibfemord#1{\stripzeros{#1}η}% + \protected\def\mkbibneutord{\mkbibmascord}% + \protected\def\mkbibdatelong#1#2#3{% + \iffieldundef{#3} + {} + {\stripzeros{\thefield{#3}}% + \iffieldundef{#2}{}{\nobreakspace}}% + \iffieldundef{#2} + {} + {\lbx@gr@mkbibmonth{\thefield{#2}}% + \iffieldundef{#1}{}{\space}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}% + \protected\def\mkbibdateshort#1#2#3{% + \iffieldundef{#3} + {} + {\mkdayzeros{\thefield{#3}}% + \iffieldundef{#2}{}{/}}% + \iffieldundef{#2} + {} + {\mkmonthzeros{\thefield{#2}}% + \iffieldundef{#1}{}{/}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}% + \savecommand\mkbibordedition + \savecommand\mkbibordseries + \def\mkbibordedition{\mkbibfemord}% + \def\mkbibordseries{\mkbibfemord}% + \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{% + \iffieldundef{#1}{} + {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}% + \iffieldundef{#2}{} + {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}% + \iffieldundef{#3}{} + {\printtext{\mktimezeros{\thefield{#3}}}}% + \setunit{}% + \iffieldundef{#4}{} + {\bibtimezonesep + \mkbibtimezone{\thefield{#4}}}}% + \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{% + \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep + \forcezerosmdt{\thefield{#2}}% + \iffieldundef{#3}{} + {\bibtimesep + \forcezerosmdt{\thefield{#3}}}% + \space + \ifnumless{\thefield{#1}}{12} + {\bibstring{am}} + {\bibstring{pm}}% + \iffieldundef{#4}{} + {\space\bibtimezonesep + \parentext{\mkbibtimezone{\thefield{#4}}}}}% + \protected\def\mkbibseasondateshort#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% + \protected\def\mkbibseasondatelong#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% +} + +\UndeclareBibliographyExtras{% + \restorecommand\mkbibordedition + \restorecommand\mkbibordseries +} + +\DeclareBibliographyStrings{% + bibliography = {{Βιβλιογραφία}{Βιβλιογραφία}}, + references = {{Αναφορές}{Αναφορές}}, + shorthands = {{Κατάλογος συντμήσεων}{Συντμήσεις}}, + editor = {{επιμελητής}{επιμελητής}}, + editors = {{επιμελητές}{επιμελητές}}, + compiler = {{συντάκτης}{συντάκτης}}, + compilers = {{συντάκτες}{συντάκτες}}, + redactor = {{συντάκτης}{συντάκτης}}, + redactors = {{συντάκτες}{συντάκτες}}, +% reviser = {{}{}},% FIXME: missing +% revisers = {{}{}},% FIXME: missing + founder = {{αρχικός δημιουργός}{αρχικός δημιουργός}}, + founders = {{αρχικοί δημιουργοί}{αρχικοί δημιουργοί}}, + continuator = {{συνεχιστής}{συνεχιστής}}, + continuators = {{συνεχιστές}{συνεχιστές}}, + collaborator = {{συνεργάτης}{συνεργάτης}}, + collaborators = {{συνεργάτες}{συνεργάτες}}, + translator = {{μεταφραστής}{μεταφραστής}}, + translators = {{μεταφραστές}{μεταφραστές}}, + commentator = {{υπομνηματιστής}{υπομνηματιστής}},% FIXME: unsure + commentators = {{υπομνηματιστές}{υπομνηματιστές}},% FIXME: unsure + annotator = {{υπομνηματιστής}{υπομνηματιστής}}, + annotators = {{υπομνηματιστές}{υπομνηματιστές}}, + commentary = {{ερμηνευτικές σημειώσεις}{ερμηνευτικές σημειώσεις}}, + annotations = {{επισημείωση}{επισημείωση}}, + introduction = {{εισαγωγή}{εισαγωγή}}, + foreword = {{πρόλογος}{πρόλ\adddot}}, + afterword = {{επίλογος}{επίλ\adddot}}, + editortr = {{επιμελητή και μεταφραστής} + {επιμελητή και μτφρ\adddot}}, + editorstr = {{επιμελητέ και μεταφραστές} + {επιμελητέ και μτφρ\adddot}}, + editorco = {{επιμελητή και υπομνηματιστής} + {επιμελητή και υπομν\adddot}}, + editorsco = {{επιμελητέ και υπομνηματιστής} + {επιμελητέ και υπομν\adddot}}, + editoran = {{επιμελητή και υπομνηματιστής} + {επιμελητή και υπομν\adddot}}, + editorsan = {{επιμελητέ και υπομνηματιστές} + {επιμελητέ και υπομν\adddot}}, + editorin = {{επιμελητή και εισαγωγή} + {επιμελητή και εισαγ\adddot}}, + editorsin = {{επιμελητέ και εισαγωγή} + {επιμελητέ και εισαγ\adddot}}, + editorfo = {{επιμελητή και πρόλογος} + {επιμελητή και πρόλ\adddot}}, + editorsfo = {{επιμελητέ και πρόλογος} + {επιμελητέ και πρόλ\adddot}}, + editoraf = {{επιμελητή και επίλογος} + {επιμελητή και επίλ\adddot}}, + editorsaf = {{επιμελητέ και επίλογος} + {επιμελητέ και επίλ\adddot}}, + editortrco = {{επιμελητή, μεταφραστή και υπομνηματιστής} + {επιμελητή μτφρ\adddot\ και υπομν\adddot}}, + editorstrco = {{επιμελητέ, μεταφραστέ και υπομνηματιστές} + {επιμελητέ, μτφρ\adddot\ και υπομν\adddot}}, + editortran = {{επιμελητή, μεταφραστή και επισημειωτής} + {επιμελητή μτφρ\adddot\ και επισημ\adddot}}, + editorstran = {{επιμελητέ, μεταφραστέ και επισημειωτές} + {επιμελητέ, μτφρ\adddot\ και επισημ\adddot}}, + editortrin = {{επιμελητή, μεταφραστή και εισαγωγή} + {επιμελητή μτφρ\adddot\ και εισαγ\adddot}}, + editorstrin = {{επιμελητέ, μεταφραστέ και εισαγωγή} + {επιμελητέ, μτφρ\adddot\ και εισαγ\adddot}}, + editortrfo = {{επιμελητή, μεταφραστή και πρόλογος} + {επιμελητή μτφρ\adddot\ και πρόλ\adddot}}, + editorstrfo = {{επιμελητέ, μεταφραστέ και πρόλογος} + {επιμελητέ, μτφρ\adddot\ και πρόλ\adddot}}, + editortraf = {{επιμελητή, μεταφραστή και επίλογος} + {επιμελητή μτφρ\adddot\ και επίλ\adddot}}, + editorstraf = {{επιμελητέ, μεταφραστέ και επίλογος} + {επιμελητέ, μτφρ\adddot\ και επίλ\adddot}}, + editorcoin = {{επιμελητή, υπομνηματιστή και εισαγωγή} + {επιμελητή υπομν\adddot\ και εισαγ\adddot}}, + editorscoin = {{επιμελητέ, υπομνηματιστέ και εισαγωγή} + {επιμελητέ, υπομν\adddot\ και εισαγ\adddot}}, + editorcofo = {{επιμελητή, υπομνηματιστή και πρόλογος} + {επιμελητή υπομν\adddot\ και πρόλ\adddot}}, + editorscofo = {{επιμελητέ, υπομνηματιστέ και πρόλογος} + {επιμελητέ, υπομν\adddot\ και πρόλ\adddot}}, + editorcoaf = {{επιμελητή, υπομνηματιστή και επίλογος} + {επιμελητή υπομν\adddot\ και επίλ\adddot}}, + editorscoaf = {{επιμελητέ, υπομνηματιστέ και επίλογος} + {επιμελητέ, υπομν\adddot\ και επίλ\adddot}}, + editoranin = {{επιμελητή, επισημειωτή και εισαγωγή} + {επιμελητή επισημ\adddot\ και εισαγ\adddot}}, + editorsanin = {{επιμελητέ, επισημειωτέ και εισαγωγή} + {επιμελητέ, επισημ\adddot\ και εισαγ\adddot}}, + editoranfo = {{επιμελητή, επισημειωτή και πρόλογος} + {επιμελητή επισημ\adddot\ και πρόλ\adddot}}, + editorsanfo = {{επιμελητέ, επισημειωτέ και πρόλογος} + {επιμελητέ, επισημ\adddot\ και πρόλ\adddot}}, + editoranaf = {{επιμελητή, επισημειωτή και επίλογος} + {επιμελητή επισημ\adddot\ και επίλ\adddot}}, + editorsanaf = {{επιμελητέ, επισημειωτέ και επίλογος} + {επιμελητέ, επισημ\adddot\ και επίλ\adddot}}, + editortrcoin = {{επιμελητή, μεταφραστής, υπομνηματιστή και εισαγωγή} + {επιμελητή μτφρ., υπομν\adddot\ και εισαγ\adddot}}, + editorstrcoin = {{επιμελητέ, μεταφραστές, υπομνηματιστέ και εισαγωγή} + {επιμελητέ, μτφρ., υπομν\adddot\ και εισαγ\adddot}}, + editortrcofo = {{επιμελητή, μεταφραστής, υπομνηματιστή και πρόλογος} + {επιμελητή μτφρ., υπομν\adddot\ και πρόλ\adddot}}, + editorstrcofo = {{επιμελητέ, μεταφραστές, υπομνηματιστέ και πρόλογος} + {επιμελητέ, μτφρ., υπομν\adddot\ και πρόλ\adddot}}, + editortrcoaf = {{επιμελητή, μεταφραστής, υπομνηματιστή και επίλογος} + {επιμελητή μτφρ., υπομν\adddot\ και επίλ\adddot}}, + editorstrcoaf = {{επιμελητέ, μεταφραστές, υπομνηματιστέ και επίλογος} + {επιμελητέ, μτφρ., υπομν\adddot\ και επίλ\adddot}}, + editortranin = {{επιμελητή, μεταφραστής, επισημειωτή και εισαγωγή} + {επιμελητή μτφρ., επισημ\adddot\ και εισαγ\adddot}}, + editorstranin = {{επιμελητέ, μεταφραστές, επισημειωτέ και εισαγωγή} + {επιμελητέ, μτφρ., επισημ\adddot\ και εισαγ\adddot}}, + editortranfo = {{επιμελητή, μεταφραστής, επισημειωτή και πρόλογος} + {επιμελητή μτφρ., επισημ\adddot\ και πρόλ\adddot}}, + editorstranfo = {{επιμελητέ, μεταφραστές, επισημειωτέ και πρόλογος} + {επιμελητέ, μτφρ., επισημ\adddot\ και πρόλ\adddot}}, + editortranaf = {{επιμελητή, μεταφραστής, επισημειωτή και επίλογος} + {επιμελητή μτφρ., επισημ\adddot\ και επίλ\adddot}}, + editorstranaf = {{επιμελητέ, μεταφραστές, επισημειωτέ και επίλογος} + {επιμελητέ, μτφρ., επισημ\adddot\ και επίλ\adddot}}, + translatorco = {{μεταφραστής και υπομνηματιστής} + {μτφρ\adddot\ και υπομν\adddot}}, + translatorsco = {{μεταφραστές και υπομνηματιστές} + {μτφρ\adddot\ και υπομν\adddot}}, + translatoran = {{μεταφραστής και επισημειωτής} + {μτφρ\adddot\ και επισημ\adddot}}, + translatorsan = {{μεταφραστές και επισημειωτές} + {μτφρ\adddot\ και επισημ\adddot}}, + translatorin = {{μετάφραση και εισαγωγή} + {μτφρ\adddot\ και εισαγ\adddot}}, + translatorsin = {{μετάφραση και εισαγωγή} + {μτφρ\adddot\ και εισαγ\adddot}}, + translatorfo = {{μετάφραση και πρόλογος} + {μτφρ\adddot\ και πρόλ\adddot}}, + translatorsfo = {{μετάφραση και πρόλογος} + {μτφρ\adddot\ και πρόλ\adddot}}, + translatoraf = {{μετάφραση και επίλογος} + {μτφρ\adddot\ και επίλ\adddot}}, + translatorsaf = {{μετάφραση και επίλογος} + {μτφρ\adddot\ και επίλ\adddot}}, + translatorcoin = {{μετάφραση, υπομνηματισμό και εισαγωγή} + {μτφρ., υπομν\adddot\ και εισαγ\adddot}}, + translatorscoin = {{μετάφραση, υπομνηματισμό και εισαγωγή} + {μτφρ., υπομν\adddot\ και εισαγ\adddot}}, + translatorcofo = {{μετάφραση, υπομνηματισμό και πρόλογος} + {μτφρ., υπομν\adddot\ και πρόλ\adddot}}, + translatorscofo = {{μετάφραση, υπομνηματισμό και πρόλογος} + {μτφρ., υπομν\adddot\ και πρόλ\adddot}}, + translatorcoaf = {{μετάφραση, υπομνηματισμό και επίλογος} + {μτφρ., υπομν\adddot\ και επίλ\adddot}}, + translatorscoaf = {{μετάφραση, υπομνηματισμό και επίλογος} + {μτφρ., υπομν\adddot\ και επίλ\adddot}}, + translatoranin = {{μετάφραση, επισημείωση και εισαγωγή} + {μτφρ., επισημ\adddot\ και εισαγ\adddot}}, + translatorsanin = {{μετάφραση, επισημείωση και εισαγωγή} + {μτφρ., επισημ\adddot\ και εισαγ\adddot}}, + translatoranfo = {{μετάφραση, επισημείωση και πρόλογος} + {μτφρ., επισημ\adddot\ και πρόλ\adddot}}, + translatorsanfo = {{μετάφραση, επισημείωση και πρόλογος} + {μτφρ., επισημ\adddot\ και πρόλ\adddot}}, + translatoranaf = {{μετάφραση, επισημείωση και επίλογος} + {μτφρ., επισημ\adddot\ και επίλ\adddot}}, + translatorsanaf = {{μετάφραση, επισημείωση και επίλογος} + {μτφρ., επισημ\adddot\ και επίλ\adddot}}, +% organizer = {{}{}},% FIXME: missing +% organizers = {{}{}},% FIXME: missing +% byorganizer = {{}{}},% FIXME: missing + byauthor = {{υπό}{υπό}}, + byeditor = {{επιμέλεια υπό}{επιμέλεια υπό}}, + bycompiler = {{σύνταξη υπό}{σύνταξη υπό}}, + byredactor = {{σύνταξη υπό}{σύναταξη υπό}}, +% byreviser = {{}{}},% FIXME: missing +% byreviewer = {{}{}},% FIXME: missing + byfounder = {{αρχική δημιουργία από}{αρχική δημιουργία από}}, + bycontinuator = {{συνέχεια από}{συνέχεια από}}, + bycollaborator = {{συνεργασία από}{συνεργασία από}}, + bytranslator = {{μετάφραση \lbx@lfromlang\ υπό}{μετάφραση \lbx@sfromlang\ υπό}}, + bycommentator = {{υπομνηματισμός υπό}{υπομνηματισμός υπό}}, + byannotator = {{υπομνηματισμός υπό}{υπομνηματισμός υπό}}, + withcommentator = {{υπομνηματισμός υπό}{υπομνηματισμός υπό}}, + withannotator = {{υπομνηματισμός υπό}{υπομνηματισμός υπό}}, + withintroduction = {{εισαγωγή υπό}{εισαγωγή υπό}}, + withforeword = {{πρόλογος υπό}{πρόλογος υπό}}, + withafterword = {{επίλογος υπό}{επίλογος υπό}}, +% byeditortr = {{}{}},% FIXME: missing +% byeditorco = {{}{}},% FIXME: missing +% byeditoran = {{}{}},% FIXME: missing +% byeditorin = {{}{}},% FIXME: missing +% byeditorfo = {{}{}},% FIXME: missing +% byeditoraf = {{}{}},% FIXME: missing +% byeditortrco = {{}{}},% FIXME: missing +% byeditortran = {{}{}},% FIXME: missing +% byeditortrin = {{}{}},% FIXME: missing +% byeditortrfo = {{}{}},% FIXME: missing +% byeditortraf = {{}{}},% FIXME: missing +% byeditorcoin = {{}{}},% FIXME: missing +% byeditorcofo = {{}{}},% FIXME: missing +% byeditorcoaf = {{}{}},% FIXME: missing +% byeditoranin = {{}{}},% FIXME: missing +% byeditoranfo = {{}{}},% FIXME: missing +% byeditoranaf = {{}{}},% FIXME: missing +% byeditortrcoin = {{}{}},% FIXME: missing +% byeditortrcofo = {{}{}},% FIXME: missing +% byeditortrcoaf = {{}{}},% FIXME: missing +% byeditortranin = {{}{}},% FIXME: missing +% byeditortranfo = {{}{}},% FIXME: missing +% byeditortranaf = {{}{}},% FIXME: missing +% bytranslatorco = {{}{}},% FIXME: missing +% bytranslatoran = {{}{}},% FIXME: missing +% bytranslatorin = {{}{}},% FIXME: missing +% bytranslatorfo = {{}{}},% FIXME: missing +% bytranslatoraf = {{}{}},% FIXME: missing +% bytranslatorcoin = {{}{}},% FIXME: missing +% bytranslatorcofo = {{}{}},% FIXME: missing +% bytranslatorcoaf = {{}{}},% FIXME: missing +% bytranslatoranin = {{}{}},% FIXME: missing +% bytranslatoranfo = {{}{}},% FIXME: missing +% bytranslatoranaf = {{}{}},% FIXME: missing + and = {{και}{και}}, + andothers = {{κ.ά\adddot}{κ.ά\adddot}}, + andmore = {{κ.ά\adddot}{κ.ά\adddot}}, + volume = {{τόμος}{τόμ\adddot}}, + volumes = {{τόμοι}{τόμοι}}, + involumes = {{σε}{σε}},% FIXME: check + jourvol = {{τόμος}{τόμ\adddot}}, + jourser = {{σειρά}{σειρά}}, +% book = {{}{}},% FIXME: missing +% part = {{}{}},% FIXME: missing +% issue = {{}{}},% FIXME: missing + newseries = {{νέα σειρά}{νέα σειρά}}, + oldseries = {{παλαιά σειρά}{παλαιά σειρά}}, + edition = {{έκδοση}{έκδοση}}, + reprint = {{ανατύπωση}{ανατύπωση}}, + reprintof = {{ανατύπωση του}{ανατύπωση του}}, + reprintas = {{ανατύπωση ως}{ανατύπωση ως}}, +% reprintfrom = {{}{}},% FIXME: missing +% translationof = {{}{}},% FIXME: missing +% translationas = {{}{}},% FIXME: missing +% translationfrom = {{}{}},% FIXME: missing +% reviewof = {{}{}},% FIXME: missing +% origpubas = {{}{}},% FIXME: missing +% origpubin = {{}{}},% FIXME: missing +% astitle = {{}{}},% FIXME: missing + bypublisher = {{υπό}{υπό}},% FIXME: check + page = {{σελίδα}{σ\adddot}}, + pages = {{σελίδες}{σσ\adddot}}, + column = {{στήλη}{στ\adddot}}, + columns = {{στήλες}{στήλες}}, + line = {{γραμμή}{γραμ\adddot}}, + lines = {{γραμμές}{γραμμές}}, + nodate = {{χωρίς\space ημερομηνία}{{}χ\adddot η\adddot}}, + verse = {{στίχος}{στίχ\adddot}}, + verses = {{στίχοι}{στίχοι}}, + section = {{ενότητα}{εντότητα}}, + sections = {{ενότητες}{ενότητες}}, + paragraph = {{παράγραφος}{§}}, + paragraphs = {{παράγραφοι}{§§}}, +% pagetotal = {{}{}},% FIXME: missing +% pagetotals = {{}{}},% FIXME: missing +% columntotal = {{}{}},% FIXME: missing +% columntotals = {{}{}},% FIXME: missing +% linetotal = {{}{}},% FIXME: missing +% linetotals = {{}{}},% FIXME: missing +% versetotal = {{}{}},% FIXME: missing +% versetotals = {{}{}},% FIXME: missing +% sectiontotal = {{}{}},% FIXME: missing +% sectiontotals = {{}{}},% FIXME: missing +% paragraphtotal = {{}{}},% FIXME: missing +% paragraphtotals = {{}{}},% FIXME: missing + in = {{στο}{στο}}, + inseries = {{στη}{στη}}, + ofseries = {{της}{της}}, + number = {{αριθμός}{αρθμ\adddot}}, + chapter = {{κεφάλαιο}{κεφ\adddot}}, +% bathesis = {{}{}},% FIXME: missing + mathesis = {{Μεταπτυχιακή διπλωματική εργασία} + {Μεταπτ/κή διπλ\adddot\ εργασ\adddot}}, + phdthesis = {{Διδακτορική διατριβή} + {Διδακτορική διατρ\adddot}}, +% candthesis = {{}{}},% FIXME: missing + resreport = {{αδημοσίευτη ερευνητική εργασία} + {αδημοσίευτη ερευνητική εργασία}}, + techreport = {{αδημοσίευτη ερευνητική εργασία} + {αδημοσίευτη ερευνητική εργασία}}, + software = {{λογισμικό Η/Υ}{λογισμικό Η/Υ}}, + datacd = {{CD-ROM}{CD-ROM}}, + audiocd = {{ακουστικό CD}{ακουστικό CD}}, + version = {{έκδοση}{έκδ\adddot}}, + url = {{διεύθυνση}{διεύθν\adddot}}, +% urlfrom = {{}{}},% FIXME: missing + urlseen = {{επίσκεψη}{επίσκεψη}}, +% inpreparation = {{}{}},% FIXME: missing + submitted = {{υποβληθέν}{υποβληθέν}},% FIXME: gender? +% forthcoming = {{}{}},% FIXME: missing + inpress = {{υπό έκδοση}{υπό έκδ.}}, +% prepublished = {{}{}},% FIXME: missing + citedas = {{εφεξής θα αναφέρεται ως}{εφεξής θα αναφέρεται ως}}, + thiscite = {{αυτή η αναφορά}{αυτή η αναφορά}}, + seenote = {{βλέπε σημείωση}{βλ\adddot\ σημ\adddot}}, + quotedin = {{αναφέρεται στο}{αναφέρεται στο}}, + idem = {{του ίδιου}{του ίδιου}}, + % FIXME: adapt gender + % + % sf=singular feminine + % sm=singular masculine + % sn=singular neuter + % pf=plural feminine + % pm=plural masculine + % pn=plural neuter + % pp=plural (group of mixed gender) + idemsf = {{του ίδιου}{του ίδιου}},% FIXME: gender? + idemsm = {{του ίδιου}{του ίδιου}},% FIXME: gender? + idemsn = {{του ίδιου}{του ίδιου}},% FIXME: gender? + idempf = {{του ίδιου}{του ίδιου}},% FIXME: gender? + idempm = {{του ίδιου}{του ίδιου}},% FIXME: gender? + idempn = {{του ίδιου}{του ίδιου}},% FIXME: gender? + idempp = {{του ίδιου}{του ίδιου}},% FIXME: gender? + ibidem = {{στο ίδιο}{στο ίδιο}}, + opcit = {{όπου παραπάνω}{ό.π\adddot}}, + loccit = {{όπου παραπάνω}{ό.π\adddot}}, + confer = {{πρβλ\adddot}{πρβλ\adddot}}, + sequens = {{κ.ε}{κ.ε\adddot}}, + sequentes = {{κ.εξ\adddot}{κ.εξ\adddot}}, + passim = {{σποράδην}{σποράδην}}, + see = {{βλέπε}{βλ\adddot}}, + seealso = {{βλέπε επίσης}{βλ\adddot\ επίσης}}, +% backrefpage = {{}{}},% FIXME: missing +% backrefpages = {{}{}},% FIXME: missing + january = {{Ιανουάριος}{Ιαν\adddot}}, + february = {{Φεβρουάριος}{Φεβ\adddot}}, + march = {{Μάρτιος}{Μαρ\adddot}}, + april = {{Αρίλιος}{Απρ\adddot}}, + may = {{Μάιος}{Μάι\adddot}}, + june = {{Ιούνιος}{Ιούν\adddot}}, + july = {{Ιούλιος}{Ιούλ\adddot}}, + august = {{Αύγουστος}{Αύγ\adddot}}, + september = {{Σεπτέμβριος}{Σεπτ\adddot}}, + october = {{Οκτώβριος}{Οκτ\adddot}}, + november = {{Νοέμβριος}{Νοέ\adddot}}, + december = {{Δεκέμβριος}{Δεκ\adddot}}, + datejanuary = {{Ιανουαρίου}{Ιαν\adddot}}, + datefebruary = {{Φεβρουαρίου}{Φεβ\adddot}}, + datemarch = {{Μαρτίου}{Μαρ\adddot}}, + dateapril = {{Απριλίου}{Απρ\adddot}}, + datemay = {{Μαΐου}{Μάι\adddot}}, + datejune = {{Ιουνίου}{Ιούν\adddot}}, + datejuly = {{Ιουλίου}{Ιούλ\adddot}}, + dateaugust = {{Αυγούστου}{Αύγ\adddot}}, + dateseptember = {{Σεπτεμβρίου}{Σεπτ\adddot}}, + dateoctober = {{Οκτωβρίου}{Οκτ\adddot}}, + datenovember = {{Νοεμβρίου}{Νοέ\adddot}}, + datedecember = {{Δεκεμβρίου}{Δεκ\adddot}}, + langamerican = {{Αγγλικά}{Αγγλικά}}, + langbrazilian = {{Βραζιλιάνικα}{Βραζιλιάνικα}}, +% langbulgarian = {{}{}},% FIXME: missing +% langcatalan = {{}{}},% FIXME: missing +% langcroatian = {{}{}},% FIXME: missing +% langczech = {{}{}},% FIXME: missing + langdanish = {{Δανέζικα}{Δανέζικα}}, + langdutch = {{Ολλανδικά}{Ολλανδικά}}, + langenglish = {{Αγγλικά}{Αγγλικά}}, +% langestonian = {{}{}},% FIXME: missing +% langfinnish = {{}{}},% FIXME: missing + langfrench = {{Γαλλικά}{Γαλλικά}}, + langgalician = {{Γαλικιανή}{Γαλικιανή}}, + langgerman = {{Γερμανικά}{Γερμανικά}}, + langgreek = {{Ελληνικά}{Ελληνικά}}, +% langhungarian = {{}{}}, % FIXME: missing + langitalian = {{Ιταλικά}{Ιταλικά}}, + langlatin = {{Λατινικά}{Λατινικά}}, +% langlatvian = {{}{}},% FIXME: missing + langnorwegian = {{Νορβηγικά}{Νορβηγικά}}, +% langpolish = {{}{}},% FIXME: missing + langportuguese = {{Πορτογαλικά}{Πορτογαλικά}}, +% langrussian = {{}{}},% FIXME: missing +% langslovak = {{}{}},% FIXME: missing +% langslovene = {{}{}},% FIXME: missing + langspanish = {{Ισπανικά}{Ισπανικά}}, + langswedish = {{Σουηδικά}{Σουηδικά}}, + fromamerican = {{από τα Αγγλικά}{από τα Αγγλικά}}, + frombrazilian = {{από τα Βραζιλιάνικα}{από τα Βραζιλιάνικα}}, +% frombulgarian = {{}{}},% FIXME: missing +% fromcatalan = {{}{}},% FIXME: missing +% fromcroatian = {{}{}},% FIXME: missing +% fromczech = {{}{}},% FIXME: missing + fromdanish = {{από τα Δανέζικα}{από τα Δανέζικα}}, + fromdutch = {{από τα Ολλανδικά}{από τα Ολλανδικά}}, + fromenglish = {{από τα Αγγλικά}{από τα Αγγλικά}}, +% fromestonian = {{}{}},% FIXME: missing +% fromfinnish = {{}{}},% FIXME: missing + fromfrench = {{από τα Γαλλικά}{από τα Γαλλικά}}, + fromgalician = {{από τα Γαλικιανή}{από τα Γαλικιανή}}, + fromgerman = {{από τα Γερμανικά}{από τα Γερμανικά}}, + fromgreek = {{από τα Ελληνικά}{από τα Ελληνικά}}, +% fromhungarian = {{}{}}, % FIXME: missing + fromitalian = {{από τα Ιταλικά}{από τα Ιταλικά}}, + fromlatin = {{από τα Λατινικά}{από τα Λατινικά}}, +% fromlatvian = {{}{}},% FIXME: missing + fromnorwegian = {{από τα Νορβηγικά}{από τα Νορβηγικά}}, +% frompolish = {{}{}},% FIXME: missing + fromportuguese = {{από τα Πορτογαλικά}{από τα Πορτογαλικά}}, +% fromrussian = {{}{}},% FIXME: missing +% fromslovak = {{}{}},% FIXME: missing +% fromslovene = {{}{}},% FIXME: missing + fromspanish = {{από τα Ισπανικά}{από τα Ισπανικά}}, + fromswedish = {{από τα Σουηδικά}{από τα Σουηδικά}}, + countryde = {{Γερμανία}{DE}}, + countryeu = {{Ευρωπαϊκή Ένωση}{ΕΕ}}, + countryep = {{Ευρωπαϊκή Ένωση}{ΕΕ}}, + countryfr = {{Γαλλία}{FR}}, + countryuk = {{Μεγάλη Βρετανία}{GB}}, + countryus = {{Ηνωμένες Πολιτείες της Αμερικής}{ΗΠΑ}}, + patent = {{δίπλωμα ευρεσιτεχνίας} + {διπλ\adddot\ ευρεσ\adddot}}, + patentde = {{γερμανικό δίπλωμα ευρεσιτεχνίας} + {γερμ\adddot\ διπλ\adddot\ ευρεσ\adddot}}, + patenteu = {{ευρωπαϊκό δίπλωμα ευρεσιτεχνίας} + {ευρωπ\adddot\ διπλ\adddot\ ευρεσ\adddot}}, + patentfr = {{γαλλικό δίπλωμα ευρεσιτεχνίας} + {γαλλ\adddot\ διπλ\adddot\ ευρεσ\adddot}}, + patentuk = {{βρετανικό δίπλωμα ευρεσιτεχνίας} + {βρετ\adddot\ διπλ\adddot\ ευρεσ\adddot}}, + patentus = {{αμερικανικό δίπλωμα ευρεσιτεχνίας} + {αμερ\adddot\ διπλ\adddot\ ευρεσ\adddot}}, + patreq = {{αίτηση διπλώματος ευρεσιτεχνίας} + {αιτ\adddot\ διπλ\adddot\ ευρεσ\adddot}}, + patreqde = {{αίτηση γερμανικού διπλώματος ευρεσιτεχνίας} + {αιτ\adddot\ γερμ\adddot\ διπλ\adddot\ ευρεσ\adddot}}, + patreqeu = {{αίτηση ευρωπαϊκού διπλώματος ευρεσιτεχνίας} + {αιτ\adddot\ ευρωπ\adddot\ διπλ\adddot\ ευρεσ\adddot}}, + patreqfr = {{αίτηση γαλλικού διπλώματος ευρεσιτεχνίας} + {αιτ\adddot\ γαλλ\adddot\ διπλ\adddot\ ευρεσ\adddot}}, + patrequk = {{αίτηση βρετανικού διπλώματος ευρεσιτεχνίας} + {αιτ\adddot\ βρετ\adddot\ διπλ\adddot\ ευρεσ\adddot}}, + patrequs = {{αίτηση αμερικανικού διπλώματος ευρεσιτεχνίας} + {αιτ\adddot\ αμερ\adddot\ διπλ\adddot\ ευρεσ\adddot}}, + file = {{αρχείο}{αρχείο}}, + library = {{βιβλιοθήκη}{βιβλιοθήκη}}, + abstract = {{περίληψη}{περίληψη}}, + annotation = {{σχολιασμοί}{σχολιασμοί}}, + commonera = {{Κοινή Χρονολογία}{KX}}, + beforecommonera = {{πριν από την Κοινή Χρονολογία}{π\adddot Κ\adddot Χ\adddot}}, + annodomini = {{μετά Χριστόν}{μ\adddot Χ\adddot}}, + beforechrist = {{προ Χριστού}{π\adddot Χ\adddot}}, +% circa = {{}{}},% FIXME: missing +% spring = {{}{}},% FIXME: missing +% summer = {{}{}},% FIXME: missing +% autumn = {{}{}},% FIXME: missing +% winter = {{}{}},% FIXME: missing + am = {{π\adddot μ\adddot}{π\adddot μ\adddot}}, + pm = {{μ\adddot μ\adddot}{μ\adddot μ\adddot}}, +} + +\protected\gdef\lbx@gr@mkbibmonth#1{% + \ifcase0#1\relax + #1\BibliographyWarning{Month out of range}% + \or\abx@bibmonth{datejanuary}% + \or\abx@bibmonth{datefebruary}% + \or\abx@bibmonth{datemarch}% + \or\abx@bibmonth{dateapril}% + \or\abx@bibmonth{datemay}% + \or\abx@bibmonth{datejune}% + \or\abx@bibmonth{datejuly}% + \or\abx@bibmonth{dateaugust}% + \or\abx@bibmonth{dateseptember}% + \or\abx@bibmonth{dateoctober}% + \or\abx@bibmonth{datenovember}% + \or\abx@bibmonth{datedecember}% + \else + #1\BibliographyWarning{Month out of range}% + \fi}% + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/lbx/hungarian.lbx b/macros/latex/contrib/biblatex/latex/lbx/hungarian.lbx new file mode 100644 index 0000000000..8d910389d5 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/lbx/hungarian.lbx @@ -0,0 +1,7 @@ +\ProvidesFile{hungarian.lbx} +[\abx@lbxid] + +\InheritBibliographyExtras{magyar} +\InheritBibliographyStrings{magyar} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/lbx/icelandic.lbx b/macros/latex/contrib/biblatex/latex/lbx/icelandic.lbx new file mode 100644 index 0000000000..0429de4e13 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/lbx/icelandic.lbx @@ -0,0 +1,484 @@ +\ProvidesFile{icelandic.lbx} +[\abx@lbxid] + +% Translator's notes: +% - Translated by a native speaker (Baldur Kristinsson). +% - Many bibstrings remain untranslated. +% - Needs fine tuning, since grammatical peculiarities of Icelandic +% make straight translations difficult. + +\DeclareRedundantLanguages{icelandic}{icelandic} + +% The beginning of this is the same as for Danish, since conventions are similar +\DeclareBibliographyExtras{% + \protected\def\bibrangedash{% + \textendash\penalty\hyphenpenalty}% breakable dash + \let\finalandcomma=\empty + \let\finalandsemicolon=\empty + \protected\def\mkbibordinal#1{\stripzeros{#1}\adddot}% + \protected\def\mkbibmascord{\mkbibordinal}% + \protected\def\mkbibfemord{\mkbibordinal}% + \protected\def\mkbibneutord{\mkbibordinal}% + \protected\def\mkbibdatelong#1#2#3{% + \iffieldundef{#3} + {} + {\mkbibordinal{\thefield{#3}}% + \iffieldundef{#2}{}{\nobreakspace}}% + \iffieldundef{#2} + {} + {\mkbibmonth{\thefield{#2}}% + \iffieldundef{#1}{}{\space}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}% + \protected\def\mkbibdateshort#1#2#3{% + \iffieldundef{#3} + {} + {\mkdayzeros{\thefield{#3}}\adddot}% + \iffieldundef{#2} + {} + {\mkmonthzeros{\thefield{#2}}% + \iffieldundef{#1}{}{\adddot}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}% + % Later, it would be more elegant to reverse the order of the name and the localized + % bibstrings, in order to avoid problems with regard to declension. This has to be done + % in a coordinated manner, however, and a lot of macros would have to be redefined + % at the same time. The below, inactive code shows the general idea. + % + % \savebibmacro{bytranslator}% + %\renewbibmacro{bytranslator}{% + % \ifnameundef{translator} + % {} + % {\printnames[bytranslator]{translator}% + % \setunit{\addspace}% + % \bibstring{bytranslator}% + % }}% + \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{% + \iffieldundef{#1}{} + {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}% + \iffieldundef{#2}{} + {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}% + \iffieldundef{#3}{} + {\printtext{\mktimezeros{\thefield{#3}}}}% + \setunit{}% + \iffieldundef{#4}{} + {\bibtimezonesep + \mkbibtimezone{\thefield{#4}}}}% + \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{% + \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep + \forcezerosmdt{\thefield{#2}}% + \iffieldundef{#3}{} + {\bibtimesep + \forcezerosmdt{\thefield{#3}}}% + \space + \ifnumless{\thefield{#1}}{12} + {\bibstring{am}} + {\bibstring{pm}}% + \iffieldundef{#4}{} + {\space\bibtimezonesep + \parentext{\mkbibtimezone{\thefield{#4}}}}}% + \protected\def\mkbibseasondateshort#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% + \protected\def\mkbibseasondatelong#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% +} + +%\UndeclareBibliographyExtras{% +% \restorebibmacro{bytranslator} +%} + +\DeclareBibliographyStrings{% + bibliography = {{Heimildaskr\'a}{Heimildaskr\'a}}, + references = {{Heimildir}{Heimildir}}, + shorthands = {{Listi yfir skammstafanir}{Skammstafanir}}, + editor = {{ristj\'ori}{ritstj\adddot}}, + editors = {{ritstj\'orar}{ritstj\adddot}}, + compiler = {{samantekt}{samantekt}}, + compilers = {{samantekt}{samantekt}}, +% FIXME: redactor and editor are the same string; +% is that acceptable? + redactor = {{ritstj\'ori}{ritstj\adddot}}, + redactors = {{ritstj\'orar}{ritstj\adddot}}, + reviser = {{\'utg\'afuendursko\dh{}andi}{endursk\adddot}}, + revisers = {{\'utg\'afuendursko\dh{}endur}{endursk\adddot}}, +% founder = {{}{}},% FIXME: missing +% founders = {{}{}},% FIXME: missing +% continuator = {{}{}},% FIXME: missing +% continuators = {{}{}},% FIXME: missing +% collaborator = {{}{}},% FIXME: missing +% collaborators = {{}{}},% FIXME: missing +% FIXME: A great deal of conflation here, as well as simplifications in order +% to avoid problems associated with declension: + translator = {{\th\'y\dh{}andi}{\th\'y\dh\adddot}}, + translators = {{\th\'y\dh{}endur}{\th\'y\dh\adddot}}, + commentator = {{sk\'yrandi}{sk\'yr\adddot}}, + commentators = {{sk\'yrendur}{sk\'yr\adddot}}, + annotator = {{\'utsk\'yrandi}{\'utsk\'yr\adddot}}, + annotators = {{\'utsk\'yrendur}{\'utsk\'yr\adddot}}, + commentary = {{sk\'yringar}{sk\'yr\adddot}}, + annotations = {{\'utsk\'yringar}{\'utsk\'yr\adddot}}, + introduction = {{inngangur}{inng\adddot}}, + foreword = {{form\'ali}{form\'ali}}, + afterword = {{eftirm\'ali}{eftirm\'ali}}, +% editortr = {{}{}},% FIXME: missing +% editorstr = {{}{}},% FIXME: missing +% editorco = {{}{}},% FIXME: missing +% editorsco = {{}{}},% FIXME: missing +% editoran = {{}{}},% FIXME: missing +% editorsan = {{}{}},% FIXME: missing +% editorin = {{}{}},% FIXME: missing +% editorsin = {{}{}},% FIXME: missing +% editorfo = {{}{}},% FIXME: missing +% editorsfo = {{}{}},% FIXME: missing +% editoraf = {{}{}},% FIXME: missing +% editorsaf = {{}{}},% FIXME: missing +% editortrco = {{}{}},% FIXME: missing +% editorstrco = {{}{}},% FIXME: missing +% editortran = {{}{}},% FIXME: missing +% editorstran = {{}{}},% FIXME: missing +% editortrin = {{}{}},% FIXME: missing +% editorstrin = {{}{}},% FIXME: missing +% editortrfo = {{}{}},% FIXME: missing +% editorstrfo = {{}{}},% FIXME: missing +% editortraf = {{}{}},% FIXME: missing +% editorstraf = {{}{}},% FIXME: missing +% editorcoin = {{}{}},% FIXME: missing +% editorscoin = {{}{}},% FIXME: missing +% editorcofo = {{}{}},% FIXME: missing +% editorscofo = {{}{}},% FIXME: missing +% editorcoaf = {{}{}},% FIXME: missing +% editorscoaf = {{}{}},% FIXME: missing +% editoranin = {{}{}},% FIXME: missing +% editorsanin = {{}{}},% FIXME: missing +% editoranfo = {{}{}},% FIXME: missing +% editorsanfo = {{}{}},% FIXME: missing +% editoranaf = {{}{}},% FIXME: missing +% editorsanaf = {{}{}},% FIXME: missing +% editortrcoin = {{}{}},% FIXME: missing +% editorstrcoin = {{}{}},% FIXME: missing +% editortrcofo = {{}{}},% FIXME: missing +% editorstrcofo = {{}{}},% FIXME: missing +% editortrcoaf = {{}{}},% FIXME: missing +% editorstrcoaf = {{}{}},% FIXME: missing +% editortranin = {{}{}},% FIXME: missing +% editorstranin = {{}{}},% FIXME: missing +% editortranfo = {{}{}},% FIXME: missing +% editorstranfo = {{}{}},% FIXME: missing +% editortranaf = {{}{}},% FIXME: missing +% editorstranaf = {{}{}},% FIXME: missing +% translatorco = {{}{}},% FIXME: missing +% translatorsco = {{}{}},% FIXME: missing +% translatoran = {{}{}},% FIXME: missing +% translatorsan = {{}{}},% FIXME: missing +% translatorin = {{}{}},% FIXME: missing +% translatorsin = {{}{}},% FIXME: missing +% translatorfo = {{}{}},% FIXME: missing +% translatorsfo = {{}{}},% FIXME: missing +% translatoraf = {{}{}},% FIXME: missing +% translatorsaf = {{}{}},% FIXME: missing +% translatorcoin = {{}{}},% FIXME: missing +% translatorscoin = {{}{}},% FIXME: missing +% translatorcofo = {{}{}},% FIXME: missing +% translatorscofo = {{}{}},% FIXME: missing +% translatorcoaf = {{}{}},% FIXME: missing +% translatorscoaf = {{}{}},% FIXME: missing +% translatoranin = {{}{}},% FIXME: missing +% translatorsanin = {{}{}},% FIXME: missing +% translatoranfo = {{}{}},% FIXME: missing +% translatorsanfo = {{}{}},% FIXME: missing +% translatoranaf = {{}{}},% FIXME: missing +% translatorsanaf = {{}{}},% FIXME: missing +% organizer = {{}{}},% FIXME: missing +% organizers = {{}{}},% FIXME: missing +% byorganizer = {{}{}},% FIXME: missing + byauthor = {{h\"ofundur}{h\"of\adddot}}, + byeditor = {{gefi\dh{} \'ut af}{gefi\dh{} \'ut af}}, + bycompiler = {{teki\dh{} saman af}{teki\dh{} saman af}}, + byredactor = {{endursko\dh{}a\dh{} af}{endursk\adddot}}, +% byreviser = {{}{}},% FIXME: missing +% byreviewer = {{}{}},% FIXME: missing +% byfounder = {{}{}},% FIXME: missing +% bycontinuator = {{}{}},% FIXME: missing +% bycollaborator = {{}{}},% FIXME: missing +% FIXME: For some of the keys below, the better way would be to postpend +% rather than prepend the localized bibstrings. That would however require a +% redefinition of many macros. Later, perhaps... + bytranslator = {{\th\'y\dh{}ing \lbx@lfromlang}{\th\'y\dh\adddot{} \lbx@sfromlang}}, + bycommentator = {{sk\'yringar eftir}{sk\'yr\adddot}}, + byannotator = {{\'utsk\'yringar eftir}{\'utsk\'yr\adddot}}, + withcommentator = {{me\dh{} sk\'yringum eftir}{m\adddot sk\'yr\adddot e\adddot}}, + withannotator = {{me\dh{} \'utsk\'yringum eftir}{m\adddot \'utsk\'yr\adddot e\adddot}}, + withintroduction = {{me\dh{} inngangi eftir}{inng\adddot}}, + withforeword = {{me\dh{} form\'ala eftir}{m\adddot form\adddot e\adddot}}, + withafterword = {{me\dh{} eftirm\'ala eftir}{m\adddot eftirm\adddot e\adddot}}, + byeditortr = {{\'utg\'afa og \th\'y\dh{}ing \lbx@lfromlang}% + {\'utg\adddot{} og \th\'y\dh\adddot}}, + byeditorco = {{\'utg\'a fa og sk\'yringar eftir}% + {\'utg\adddot{} og sk\'yr\adddot}}, + byeditoran = {{\'utg\'a fa og \'utsk\'yringar eftir}% + {\'utg\adddot{} og \'utsk\'yr\adddot}}, + byeditorin = {{\'utg\'afa og inngangur eftir}% + {\'utg\adddot{} og inng\adddot}}, + byeditorfo = {{\'utg\'afa og form\'ali eftir}% + {\'utg\adddot{} og form\adddot e\adddot}}, + byeditoraf = {{\'utg\'afa og eftirm\'ali eftir}% + {\'utg\adddot{} og eftirm\adddot e\adddot}}, + byeditortrco = {{\'utg\'afa \th\'y\dh{}ing \lbx@sfromlang\ og sk\'yringar eftir}% + {\'utg\adddot, \th\'y\dh\adddot{} \lbx@sfromlang\ og sk\'yr\adddot}}, + byeditortran = {{\'utg\'afa \th\'y\dh{}ing \lbx@sfromlang\ og \'utsk\'yringar eftir}% + {\'utg\adddot, \th\'y\dh\adddot{} \lbx@sfromlang\ og \'utsk\'yr\adddot}}, + byeditortrin = {{\'utg\'afa \th\'y\dh{}ing \lbx@sfromlang\ og inngangur eftir}% + {\'utg\adddot, \th\'y\dh\adddot{} \lbx@sfromlang\ og inng\adddot}}, + byeditortrfo = {{\'utg\'afa \th\'y\dh{}ing \lbx@sfromlang\ og form\'ali eftir}% + {\'utg\adddot, \th\'y\dh\adddot{} \lbx@sfromlang\ og form\adddot}}, + byeditortraf = {{\'utg\'afa \th\'y\dh{}ing \lbx@sfromlang\ og eftirm\'ali eftir}% + {\'utg\adddot, \th\'y\dh\adddot{} \lbx@sfromlang\ og eftirm\adddot}}, + byeditorcoin = {{\'utg\'afa, sk\'yringar og inngangur eftir}% + {\'utg\adddot, sk\'yr\adddot{} og inng\adddot}}, + byeditorcofo = {{\'utg\'afa, sk\'yringar og form\'ali eftir}% + {\'utg\adddot, sk\'yr\adddot{} og form\adddot}}, + byeditorcoaf = {{\'utg\'afa, sk\'yringar og eftirm\'ali eftir}% + {\'utg\adddot, sk\'yr\adddot{} og eftirm\adddot}}, + byeditoranin = {{\'utg\'afa, \'utsk\'yringar og inngangur eftir}% + {\'utg\adddot, \'utsk\'yr\adddot{} og inng\adddot}}, + byeditoranfo = {{\'utg\'afa, \'utsk\'yringar og form\'ali eftir}% + {\'utg\adddot, \'utsk\'yr\adddot{} og form\adddot}}, + byeditoranaf = {{\'utg\'afa, sk\'yringar og eftirm\'ali eftir}% + {\'utg\adddot, sk\'yr\adddot{} og eftirm\adddot}}, + byeditortrcoin = {{\'utg\'afa, \th\'y\dh{}ing \lbx@sfromlang, sk\'yringar og inngangur eftir}% + {\'utg\adddot, \th\'y\dh\adddot{} \lbx@sfromlang, sk\'yr\adddot{} og inng\adddot}}, + byeditortrcofo = {{\'utg\'afa, \th\'y\dh{}ing \lbx@sfromlang, sk\'yringar og form\'ali eftir}% + {\'utg\adddot, \th\'y\dh\adddot{} \lbx@sfromlang, sk\'yr\adddot{} og form\adddot}}, + byeditortrcoaf = {{\'utg\'afa, \th\'y\dh{}ing \lbx@sfromlang, sk\'yringar og eftirm\'ali eftir}% + {\'utg\adddot, \th\'y\dh\adddot{} \lbx@sfromlang, sk\'yr\adddot{} og eftirm\adddot}}, + byeditortranin = {{\'utg\'afa, \th\'y\dh{}ing \lbx@sfromlang, \'utsk\'yringar og inngangur eftir}% + {\'utg\adddot, \th\'y\dh\adddot{} \lbx@sfromlang, \'utsk\'yr\adddot{} og inng\adddot}}, + byeditortranfo = {{\'utg\'afa, \th\'y\dh{}ing \lbx@sfromlang, \'utsk\'yringar og form\'ali eftir}% + {\'utg\adddot, \th\'y\dh\adddot{} \lbx@sfromlang, \'utsk\'yr\adddot{} og form\adddot}}, + byeditortranaf = {{\'utg\'afa, \th\'y\dh{}ing \lbx@sfromlang, \'utsk\'yringar og eftirm\'ali eftir}% + {\'utg\adddot, \th\'y\dh\adddot{} \lbx@sfromlang, \'utsk\'yr\adddot{} og eftirm\adddot}}, + bytranslatorco = {{\th\'y\dh{}ing \lbx@lfromlang\ og sk\'yringar eftir}% + {\th\'y\dh\adddot{} \lbx@lfromlang\ og sk\'yr\adddot}}, + bytranslatoran = {{\th\'y\dh{}ing \lbx@lfromlang\ og \'utsk\'yringar eftir}% + {\th\'y\dh\adddot{} \lbx@lfromlang\ og \'utsk\'yr\adddot}}, + bytranslatorin = {{\th\'y\dh{}ing \lbx@lfromlang\ og inngangur eftir}% + {\th\'y\dh\adddot{} \lbx@lfromlang\ og inng\adddot}}, + bytranslatorfo = {{\th\'y\dh{}ing \lbx@lfromlang\ og form\'ali eftir}% + {\th\'y\dh\adddot{} \lbx@lfromlang\ og form\adddot}}, + bytranslatoraf = {{\th\'y\dh{}ing \lbx@lfromlang\ og eftirm\'ali eftir}% + {\th\'y\dh\adddot{} \lbx@lfromlang\ og eftirm\adddot}}, + bytranslatorcoin = {{\th\'y\dh{}ing \lbx@lfromlang, sk\'yringar og inngangur eftir}% + {\th\'y\dh\adddot{} \lbx@lfromlang, sk\'yr\adddot{} og inng\adddot}}, + bytranslatorcofo = {{\th\'y\dh{}ing \lbx@lfromlang, sk\'yringar og form\'ali eftir}% + {\th\'y\dh\adddot{} \lbx@lfromlang, sk\'yr\adddot{} og form\adddot}}, + bytranslatorcoaf = {{\th\'y\dh{}ing \lbx@lfromlang, sk\'yringar og eftirm\'ali eftir}% + {\th\'y\dh\adddot{} \lbx@lfromlang, sk\'yr\adddot{} og eftirm\adddot}}, + bytranslatoranin = {{\th\'y\dh{}ing \lbx@lfromlang, \'utsk\'yringar og inngangur eftir}% + {\th\'y\dh\adddot{} \lbx@lfromlang, \'utsk\'yr\adddot{} og inng\adddot}}, + bytranslatoranfo = {{\th\'y\dh{}ing \lbx@lfromlang, \'utsk\'yringar og form\'ali eftir}% + {\th\'y\dh\adddot{} \lbx@lfromlang, \'utsk\'yringar og form\adddot}}, + bytranslatoranaf = {{\th\'y\dh{}ing \lbx@lfromlang, \'utsk\'yringar og eftirm\'ali eftir}% + {\th\'y\dh\adddot{} \lbx@lfromlang, \'utsk\'yr\adddot{} og eftirm\adddot}}, + and = {{og}{og}}, + andothers = {{\'asamt fleirum}{o\adddot fl\adddot}}, + andmore = {{og fleiri}{o\adddot fl\adddot}}, + volume = {{bindi}{bd\adddot}}, + volumes = {{bindi}{bd\adddot}}, + involumes = {{\'{\i}}{\'{\i}}}, + jourvol = {{\'argangur}{\'arg\adddot}}, + jourser = {{r\"o\dh}{r\"o\dh}}, + book = {{b\'ok}{b\'ok}}, + part = {{hluti}{hluti}}, + issue = {{hefti}{hefti}}, + newseries = {{n\'y ritr\"o\dh}{n\'y ritr\"o\dh}}, + oldseries = {{g\"omul ritr\"o\dh}{g\"omul ritr\"o\dh}}, + edition = {{\'utg\'afa}{\'utg\adddot}}, + reprint = {{endurprentun}{endurpr\adddot}}, + reprintof = {{endurprentun \'a}{endurpr\adddot{} \'a}}, + reprintas = {{endurprenta\dh{} sem}{endurpr\adddot{} sem}}, + reprintfrom = {{endurprentun \'ur}{endurpr\adddot{} \'ur}}, + translationof = {{\th'yth ing \'a}{\th\'y\dh\adddot{} \'a}}, + translationas = {{\th'ytt sem}{\th\'ytt sem}}, + translationfrom = {{\th'yth ing \'ur}{\th\'y\dh\adddot{} \'ur}}, + reviewof = {{ums\"ogn um}{ums\"ogn um}}, +% origpubas = {{}{}},% FIXME: missing +% origpubin = {{}{}},% FIXME: missing +% astitle = {{}{}},% FIXME: missing + nodate = {{\'an \'ars}{\'an \'ars}}, + page = {{bla\dh{}s\'{\i}\dh{}a}{bls\adddot}}, + pages = {{bla\dh{}s\'{\i}\dh{}ur}{bls\adddot}}, + column = {{d\'alkur}{dlk\adddot}}, + columns = {{d\'alkar}{dlk\adddot}}, + line = {{l\'{\i}na}{l\adddot}}, + lines = {{l\'{\i}nur}{l\adddot}}, + verse = {{erindi}{er\adddot}}, + verses = {{erindi}{er\adddot}}, + section = {{grein}{\S}}, + sections = {{grein}{\S\S}}, + paragraph = {{m\'alsgrein}{mgr\adddot}}, + paragraphs = {{m\'alsgreinar}{mgr\adddot}}, +% pagetotal = {{}{}},% FIXME: missing +% pagetotals = {{}{}},% FIXME: missing +% columntotal = {{}{}},% FIXME: missing +% columntotals = {{}{}},% FIXME: missing +% linetotal = {{}{}},% FIXME: missing +% linetotals = {{}{}},% FIXME: missing +% versetotal = {{}{}},% FIXME: missing +% versetotals = {{}{}},% FIXME: missing +% sectiontotal = {{}{}},% FIXME: missing +% sectiontotals = {{}{}},% FIXME: missing +% paragraphtotal = {{}{}},% FIXME: missing +% paragraphtotals = {{}{}},% FIXME: missing + in = {{\'{\i}}{\'{\i}}}, + inseries = {{ritr\"o\dh{}in}{ritr\"o\dh{}in}}, + ofseries = {{\'ur ritr\"o\dh{}inni}{\'ur ritr\adddot}}, + number = {{n\'umer}{nr\adddot}}, + chapter = {{kafli}{k\adddot}}, +% bathesis = {{}{}},% FIXME: missing + mathesis = {{meistarapr\'ofsritger\dh}{meistararitg\adddot}}, + phdthesis = {{doktorsritger\dh}{doktorsritg\adddot}}, + candthesis = {{kand\'{\i}datsritger\dh}{kand\'{\i}datsritg\adddot}}, + resreport = {{ranns\'oknarsk\'yrsla}{ranns\'oknarsk\'yrsla}}, + techreport = {{t\ae{}knileg sk\'yrsla}{t\ae{}knileg sk\'yrsla}}, + software = {{hugb\'una\dh{}ur}{hugb\'una\dh{}ur}}, + datacd = {{gagnadiskur}{gagnadiskur}}, + audiocd = {{hlj\'o\dh{}diskur}{hlj\'o\dh{}diskur}}, + version = {{\'utg\'afa}{\'utg\adddot}}, + url = {{vefsl\'o\dh{}}{vefsl\'o\dh{}}}, +% urlfrom = {{}{}},% FIXME: missing + urlseen = {{sko\dh{}a\dh}{sko\dh{}a\dh}}, + inpreparation = {{\'{\i} vinnslu}{\'{\i} vinnslu}}, + submitted = {{afhent til birtingar}{afhent til birtingar}}, + forthcoming = {{mun birtast}{mun birtast}}, + inpress = {{\'{\i} prentun}{\'{\i} prentun}}, + prepublished = {{forbirt}{forbirt}}, + citedas = {{h\'er eftir skammstafa\dh}{h\'er eftir skst\adddot}}, + seenote = {{sj\'a athugasemd}{sj\'a aths\adddot}}, + quotedin = {{tilvitnun samkv\ae{}mt}{tilvitnun skv\adddot}}, + idem = {{sama heimild}{s\adddot h\adddot}}, + idemsf = {{sama heimild}{s\adddot h\adddot}}, + idemsm = {{sama heimild}{s\adddot h\adddot}}, + idemsn = {{sama heimild}{s\adddot h\adddot}}, + idempf = {{sama heimild}{s\adddot h\adddot}}, + idempm = {{sama heimild}{s\adddot h\adddot}}, + idempn = {{sama heimild}{s\adddot h\adddot}}, + idempp = {{sama heimild}{s\adddot h\adddot}}, + ibidem = {{sama heimild}{s\adddot h\adddot}}, + opcit = {{sama rit}{sama rit}}, + loccit = {{sami sta\dh{}ur}{s\adddot st\adddot}}, + confer = {{sbr\adddot}{sbr\adddot}}, + sequens = {{o\adddot \'afr\adddot}{o\adddot \'afr\adddot}}, + sequentes = {{o\adddot \'afr\adddot}{o\adddot \'afr\adddot}}, + passim = {{v\'{\i}\dh{}a}{v\'{\i}\dh{}a}}, + see = {{sj\'a}{sj\'a}}, + seealso = {{sj\'a einnig}{sj\'a einnig}}, + backrefpage = {{sj\'a bla\dh{}s\'{\i}u}{sj\'a bls\adddot}}, + backrefpages = {{sj\'a bla\dh{}s\'{\i}ur}{sj\'a bls\adddot}}, + january = {{jan\'uar}{jan\adddot}}, + february = {{febr\'uar}{feb\adddot}}, + march = {{mars}{mar\adddot}}, + april = {{apr\'{\i}l}{apr\adddot}}, + may = {{ma\'{\i}}{ma\'{\i}}}, + june = {{j\'un\'{\i}}{j\'un\adddot}}, + july = {{j\'ul\'{\i}}{j\'ul\adddot}}, + august = {{\'ag\'ust}{\'ag\'u\adddot}}, + september = {{september}{sep\adddot}}, + october = {{okt\'ober}{okt\adddot}}, + november = {{n\'ovember}{n\'ov\adddot}}, + december = {{desember}{des\adddot}}, + langamerican = {{bandar\'{\i}ska}{bandar\'{\i}ska}}, +% langbrazilian = {{}{}},% FIXME: missing +% langbulgarian = {{}{}},% FIXME: missing +% langcatalan = {{}{}},% FIXME: missing +% langcroatian = {{}{}},% FIXME: missing +% langczech = {{}{}},% FIXME: missing + langdanish = {{danska}{danska}}, + langdutch = {{hollenska}{hollenska}}, + langenglish = {{enska}{enska}}, +% langestonian = {{}{}},% FIXME: missing + langfinnish = {{finnska}{finnska}}, + langfrench = {{franska}{franska}}, + langgalician = {{galis\'iska}{galis\'iska}}, + langgerman = {{\th\'yska}{\th\'yska}}, + langgreek = {{gr\'{\i}ska}{gr\'{\i}ska}}, + langhungarian = {{ungverska}{ungverska}}, + langitalian = {{\'{\i}talska}{\'{\i}talska}}, + langlatin = {{lat\'{\i}na}{lat\'{\i}na}}, +% langlatvian = {{}{}},% FIXME: missing + langnorwegian = {{norska}{norska}}, + langpolish = {{p\'olska}{p\'olska}}, + langportuguese = {{port\'ugalska}{port\'ugalska}}, + langrussian = {{r\'ussneska}{r\'ussneska}}, +% langslovak = {{}{}},% FIXME: missing +% langslovene = {{}{}},% FIXME: missing + langspanish = {{sp\ae{}nska}{sp\ae{}nska}}, + langswedish = {{s\ae{}nska}{s\ae{}nska}}, + fromamerican = {{\'ur bandar\'{\i}sku}{\'ur bandar\'{\i}sku}}, +% frombrazilian = {{}{}},% FIXME: missing +% frombulgarian = {{}{}},% FIXME: missing +% fromcatalan = {{}{}},% FIXME: missing +% fromcroatian = {{}{}},% FIXME: missing +% fromczech = {{}{}},% FIXME: missing + fromdanish = {{\'ur d\"onsku}{\'ur d\"onsku}}, + fromdutch = {{\'ur hollensku}{\'ur hollensku}}, + fromenglish = {{\'ur ensku}{\'ur ensku}}, +% fromestonian = {{}{}},% FIXME: missing + fromfinnish = {{\'ur finnsku}{\'ur finnsku}}, + fromfrench = {{\'ur fr\"onsku}{\'ur fr\"onsku}}, + fromgalician = {{\'ur galis\'isku}{\'ur galis\'isku}}, + fromgerman = {{\'ur \th\'ysku}{\'ur \th\'ysku}}, + fromgreek = {{\'ur gr\'{\i}sku}{\'ur gr\'{\i}sku}}, + fromhungarian = {{\'ur ungversku}{\'ur ungversku}}, + fromitalian = {{\'ur \'{\i}t\"olsku}{\'ur \'{\i}t\"olsku}}, + fromlatin = {{\'ur lat\'{\i}nu}{\'ur lat\'{\i}nu}}, +% fromlatvian = {{}{}},% FIXME: missing + fromnorwegian = {{\'ur norsku}{\'ur norsku}}, + frompolish = {{\'ur p\'olsku}{\'ur p\'olsku}}, + fromportuguese = {{\'ur port\'ug\"olsku}{\'ur port\'ug\"olsku}}, + fromrussian = {{\'ur r\'ussnesku}{\'ur r\'ussnesku}}, +% fromslovak = {{}{}},% FIXME: missing +% fromslovene = {{}{}},% FIXME: missing + fromspanish = {{\'ur sp\ae{}nsku}{\'ur sp\ae{}nsku}}, + fromswedish = {{\'ur s\ae{}nsku}{\'ur s\ae{}nsku}}, + countryde = {{\TH\'yskaland}{DE}}, + countryeu = {{Evr\'opusambandi\dh}{EU}}, + countryep = {{Evr\'opusambandi\dh}{EP}}, + countryfr = {{Frakkland}{FR}}, + countryuk = {{Bretland}{GB}}, + countryus = {{Bandar\'{\i}kin}{US}}, + patent = {{einkaleyfi}{einkaleyfi}}, + patentde = {{\th\'yskt einkaleyfi}{\th\'yskt einkaleyfi}}, + patenteu = {{evr\'opskt einkaleyfi}{evr\'opskt einkaleyfi}}, + patentfr = {{franskt einkaleyfi}{franskt einkaleyfi}}, + patentuk = {{breskt einkaleyfi}{breskt einkaleyfi}}, + patentus = {{bandar\'{\i}skt einkaleyfi}{bandar\'{\i}skt einkaleyfi}}, + patreq = {{ums\'okn um einkaleyfi}{ums\'okn um einkaleyfi}}, + patreqde = {{ums\'okn um \th\'yskt einkaleyfi}{ums\'okn um \th\'yskt einkaleyfi}}, + patreqeu = {{ums\'okn um evr\'opskt einkaleyfi}{ums\'okn um evr\'opskt einkaleyfi}}, + patreqfr = {{ums\'okn um franskt einkaleyfi}{ums\'okn um franskt einkaleyfi}}, + patrequk = {{ums\'okn um breskt einkaleyfi}{ums\'okn um breskt einkaleyfi}}, + patrequs = {{ums\'okn um bandar\'{\i}skt einkaleyfi}{ums\'okn um bandar\'{\i}skt einkaleyfi}}, + file = {{skr\'a}{skr\'a}}, + library = {{safn}{safn}}, + abstract = {{\'utdr\'attur}{\'utdr\'attur}}, + annotation = {{athugagrein}{athugagrein}}, + commonera = {{kristi\th t\'{\i}matal}{l\adddot t\adddot}}, + beforecommonera = {{fyrir kristi\th t\'{\i}matal}{f\adddot l\adddot t\adddot}}, + annodomini = {{eftir Krist}{e\adddot Kr\adddot}}, + beforechrist = {{fyrir Krist}{f\adddot Kr\adddot}}, +% circa = {{}{}},% FIXME: missing +% spring = {{}{}},% FIXME: missing +% summer = {{}{}},% FIXME: missing +% autumn = {{}{}},% FIXME: missing +% winter = {{}{}},% FIXME: missing + am = {{f\adddot h\adddot}{f\adddot h\adddot}}, + pm = {{e\adddot h\adddot}{e\adddot h\adddot}}, +} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/lbx/italian.lbx b/macros/latex/contrib/biblatex/latex/lbx/italian.lbx new file mode 100644 index 0000000000..07339b2653 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/lbx/italian.lbx @@ -0,0 +1,465 @@ +\ProvidesFile{italian.lbx} +[\abx@lbxid] + +\DeclareRedundantLanguages{italian}{italian} + +\DeclareBibliographyExtras{% + \protected\def\bibrangedash{% + \textendash\penalty\hyphenpenalty}% breakable dash + \let\finalandcomma=\empty + \let\finalandsemicolon=\empty + \def\mkbibordinal{\mkbibmascord}% + \protected\def\mkbibmascord#1{\stripzeros{#1}\textsuperscript{o}}% + \protected\def\mkbibfemord#1{\stripzeros{#1}\textsuperscript{a}}% + \protected\def\mkbibneutord{\mkbibmascord}% + \protected\def\mkbibdatelong#1#2#3{% + \iffieldundef{#3} + {} + {\@bsphack % ignore day when auto-capitalizing month name + \stripzeros{\thefield{#3}}% + \@esphack % ignore day when auto-capitalizing month name + \iffieldundef{#2}{}{\nobreakspace}}% + \iffieldundef{#2} + {} + {\mkbibmonth{\thefield{#2}}% + \iffieldundef{#1}{}{\space}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}% + \protected\def\mkbibdateshort#1#2#3{% + \iffieldundef{#3} + {} + {\mkdayzeros{\thefield{#3}}% + \iffieldundef{#2}{}{/}}% + \iffieldundef{#2} + {} + {\mkmonthzeros{\thefield{#2}}% + \iffieldundef{#1}{}{/}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}% + \savecommand\mkbibordedition + \savecommand\mkbibordseries + \def\mkbibordedition{\mkbibfemord}% + \def\mkbibordseries{\mkbibfemord}% + \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{% + \iffieldundef{#1}{} + {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}% + \iffieldundef{#2}{} + {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}% + \iffieldundef{#3}{} + {\printtext{\mktimezeros{\thefield{#3}}}}% + \setunit{}% + \iffieldundef{#4}{} + {\bibtimezonesep + \mkbibtimezone{\thefield{#4}}}}% + \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{% + \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep + \forcezerosmdt{\thefield{#2}}% + \iffieldundef{#3}{} + {\bibtimesep + \forcezerosmdt{\thefield{#3}}}% + \space + \ifnumless{\thefield{#1}}{12} + {\bibstring{am}} + {\bibstring{pm}}% + \iffieldundef{#4}{} + {\space\bibtimezonesep + \parentext{\mkbibtimezone{\thefield{#4}}}}}% + \protected\def\mkbibseasondateshort#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% + \protected\def\mkbibseasondatelong#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% +} + +\UndeclareBibliographyExtras{% + \restorecommand\mkbibordedition + \restorecommand\mkbibordseries +} + +\DeclareBibliographyStrings{% + bibliography = {{Bibliografia}{Bibliografia}}, + references = {{Riferimenti bibliografici}{Riferimenti bibliografici}}, + shorthands = {{Elenco delle sigle}{Sigle}}, + editor = {{curatore}{cur\adddot}}, + editors = {{curatori}{cur\adddot}}, + compiler = {{compilatore}{comp\adddot}}, + compilers = {{compilatori}{comp\adddot}}, + redactor = {{redattore}{red\adddot}}, + redactors = {{redattori}{red\adddot}}, +% reviser = {{}{}},% FIXME: missing +% revisers = {{}{}},% FIXME: missing +% founder = {{}{}},% FIXME: missing +% founders = {{}{}},% FIXME: missing +% continuator = {{}{}},% FIXME: missing +% continuators = {{}{}},% FIXME: missing + collaborator = {{collaboratore}{con la collab\adddotspace di}}, + collaborators = {{collaboratore}{con la collab\adddotspace di}}, + translator = {{traduttore}{trad\adddot}}, + translators = {{traduttori}{trad\adddot}}, + commentator = {{commentatore}{comment\adddot}}, + commentators = {{commentatori}{comment\adddot}}, + annotator = {{annotatore}{annot\adddot}}, + annotators = {{annotatore}{annot\adddot}}, + commentary = {{commenti}{comm\adddot}}, + annotations = {{annotazioni}{annot\adddot}}, + introduction = {{introduzione}{introd\adddot}}, + foreword = {{prefazione}{pref\adddot}}, + afterword = {{postfazione}{postf\adddot}}, +% editortr = {{}{}},% FIXME: missing +% editorstr = {{}{}},% FIXME: missing +% editorco = {{}{}},% FIXME: missing +% editorsco = {{}{}},% FIXME: missing +% editoran = {{}{}},% FIXME: missing +% editorsan = {{}{}},% FIXME: missing +% editorin = {{}{}},% FIXME: missing +% editorsin = {{}{}},% FIXME: missing +% editorfo = {{}{}},% FIXME: missing +% editorsfo = {{}{}},% FIXME: missing +% editoraf = {{}{}},% FIXME: missing +% editorsaf = {{}{}},% FIXME: missing +% editortrco = {{}{}},% FIXME: missing +% editorstrco = {{}{}},% FIXME: missing +% editortran = {{}{}},% FIXME: missing +% editorstran = {{}{}},% FIXME: missing +% editortrin = {{}{}},% FIXME: missing +% editorstrin = {{}{}},% FIXME: missing +% editortrfo = {{}{}},% FIXME: missing +% editorstrfo = {{}{}},% FIXME: missing +% editortraf = {{}{}},% FIXME: missing +% editorstraf = {{}{}},% FIXME: missing +% editorcoin = {{}{}},% FIXME: missing +% editorscoin = {{}{}},% FIXME: missing +% editorcofo = {{}{}},% FIXME: missing +% editorscofo = {{}{}},% FIXME: missing +% editorcoaf = {{}{}},% FIXME: missing +% editorscoaf = {{}{}},% FIXME: missing +% editoranin = {{}{}},% FIXME: missing +% editorsanin = {{}{}},% FIXME: missing +% editoranfo = {{}{}},% FIXME: missing +% editorsanfo = {{}{}},% FIXME: missing +% editoranaf = {{}{}},% FIXME: missing +% editorsanaf = {{}{}},% FIXME: missing +% editortrcoin = {{}{}},% FIXME: missing +% editorstrcoin = {{}{}},% FIXME: missing +% editortrcofo = {{}{}},% FIXME: missing +% editorstrcofo = {{}{}},% FIXME: missing +% editortrcoaf = {{}{}},% FIXME: missing +% editorstrcoaf = {{}{}},% FIXME: missing +% editortranin = {{}{}},% FIXME: missing +% editorstranin = {{}{}},% FIXME: missing +% editortranfo = {{}{}},% FIXME: missing +% editorstranfo = {{}{}},% FIXME: missing +% editortranaf = {{}{}},% FIXME: missing +% editorstranaf = {{}{}},% FIXME: missing +% translatorco = {{}{}},% FIXME: missing +% translatorsco = {{}{}},% FIXME: missing +% translatoran = {{}{}},% FIXME: missing +% translatorsan = {{}{}},% FIXME: missing +% translatorin = {{}{}},% FIXME: missing +% translatorsin = {{}{}},% FIXME: missing +% translatorfo = {{}{}},% FIXME: missing +% translatorsfo = {{}{}},% FIXME: missing +% translatoraf = {{}{}},% FIXME: missing +% translatorsaf = {{}{}},% FIXME: missing +% translatorcoin = {{}{}},% FIXME: missing +% translatorscoin = {{}{}},% FIXME: missing +% translatorcofo = {{}{}},% FIXME: missing +% translatorscofo = {{}{}},% FIXME: missing +% translatorcoaf = {{}{}},% FIXME: missing +% translatorscoaf = {{}{}},% FIXME: missing +% translatoranin = {{}{}},% FIXME: missing +% translatorsanin = {{}{}},% FIXME: missing +% translatoranfo = {{}{}},% FIXME: missing +% translatorsanfo = {{}{}},% FIXME: missing +% translatoranaf = {{}{}},% FIXME: missing +% translatorsanaf = {{}{}},% FIXME: missing +% organizer = {{}{}},% FIXME: missing +% organizers = {{}{}},% FIXME: missing +% byorganizer = {{}{}},% FIXME: missing + byauthor = {{di}{di}}, + byeditor = {{a cura di}{a cura di}}, + bycompiler = {{compilato da}{comp\adddotspace da}}, + byredactor = {{redatto da}{red\adddotspace da}}, +% byreviser = {{}{}},% FIXME: missing +% byreviewer = {{}{}},% FIXME: missing +% byfounder = {{}{}},% FIXME: missing +% bycontinuator = {{}{}},% FIXME: missing +% bycollaborator = {{}{}},% FIXME: missing + bytranslator = {{tradotto \lbx@lfromlang\ da}{trad\adddot\ \lbx@sfromlang\ da}}, + bycommentator = {{commentato da}{comm\adddot\ da}}, + byannotator = {{annotato da}{annot\adddot\ da}}, + withcommentator = {{con commenti di}{con comm\adddot\ di}}, + withannotator = {{con annotazioni di}{con annot\adddot\ di}}, + withintroduction = {{con introduzione di}{con introd\adddot\ di}}, + withforeword = {{con prefazione di}{con pref\adddot\ di}}, + withafterword = {{con postfazione di}{con postf\adddot\ di}}, + byeditortr = {{curato e tradotto \lbx@lfromlang\ da}% + {cur\adddotspace e trad\adddot\ \lbx@sfromlang\ da}}, + byeditorco = {{curato e commentato da}% + {cur\adddotspace e comm\adddot\ da}}, + byeditoran = {{curato e annotato da}% + {cur\adddotspace e annot\adddot\ da}}, + byeditorin = {{a cura e con introduzione di}% + {a cura e con introd\adddot\ di}}, + byeditorfo = {{a cura e con prefazione di}% + {a cura e con pref\adddot\ di}}, + byeditoraf = {{a cura e con postfazione di}% + {a cura e con postf\adddot\ di}}, + byeditortrco = {{curato, tradotto \lbx@lfromlang\ e commentato da}% + {cur.,\addabbrvspace trad\adddot\ \lbx@sfromlang\ e comm\adddot\ da}}, + byeditortran = {{curato, tradotto \lbx@lfromlang\ e annotato da}% + {cur.,\addabbrvspace trad\adddot\ \lbx@sfromlang\ e annot\adddot\ da}}, + byeditortrin = {{edizione, traduzione \lbx@lfromlang\ e introduzione di}% + {ed., trad\adddot\ \lbx@sfromlang\ e introd\adddot\ di}}, + byeditortrfo = {{edizione, traduzione \lbx@lfromlang\ e prefazione di}% + {ed., trad\adddot\ \lbx@sfromlang\ e pref\adddot\ di}}, + byeditortraf = {{edizione, traduzione \lbx@lfromlang\ e postfazione di}% + {ed., trad\adddot\ \lbx@sfromlang\ e postf\adddot\ di}}, + byeditorcoin = {{edizione, commenti e introduzione di}% + {ed., comm\adddot\ e introduzione di}}, + byeditorcofo = {{edizione, commenti e prefazione di}% + {ed., comm\adddot\ e prefazione di}}, + byeditorcoaf = {{edizione, commenti e postfazione di}% + {ed., comm\adddot\ e postfazione di}}, + byeditoranin = {{edizione, annotazioni e introduzione di}% + {ed., annot\adddot\ e introduzione di}}, + byeditoranfo = {{edizione, annotazioni e prefazione di}% + {ed., annot\adddot\ e prefazione di}}, + byeditoranaf = {{edizione, annotazioni e postfazione di}% + {ed., annot\adddot\ e postfazione di}}, + byeditortrcoin = {{edizione, traduzione \lbx@lfromlang, commenti e introduzione di}% + {ed., trad\adddot\ \lbx@sfromlang, comm\adddot\ e introd\adddot\ di}}, + byeditortrcofo = {{edizione, traduzione \lbx@lfromlang, commenti e prefazione di}% + {ed., trad\adddot\ \lbx@sfromlang, comm\adddot\ e pref\adddot\ di}}, + byeditortrcoaf = {{edizione, traduzione \lbx@lfromlang, commenti e postfazione di}% + {ed., trad\adddot\ \lbx@sfromlang, comm\adddot\ e postf\adddot\ di}}, + byeditortranin = {{edizione, traduzione \lbx@lfromlang, annotazioni e introduzione di}% + {ed., trad\adddot\ \lbx@sfromlang, annot\adddot\ e introd\adddot\ di}}, + byeditortranfo = {{edizione, traduzione \lbx@lfromlang, annotazioni e prefazione di}% + {ed., trad\adddot\ \lbx@sfromlang, annot\adddot\ e pref\adddot\ di}}, + byeditortranaf = {{edizione, traduzione \lbx@lfromlang, annotazioni e postfazione di}% + {ed., trad\adddot\ \lbx@sfromlang, annot\adddot\ e postf\adddot\ di}}, + bytranslatorco = {{tradotto \lbx@lfromlang\ e commentato da}% + {trad\adddot\ \lbx@sfromlang\ e comm\adddot\ da}}, + bytranslatoran = {{tradotto \lbx@lfromlang\ e annotato da}% + {trad\adddot\ \lbx@sfromlang\ e annot\adddot\ da}}, + bytranslatorin = {{traduzione \lbx@lfromlang\ e introduzione di}% + {trad\adddot\ \lbx@sfromlang\ e introd\adddot\ di}}, + bytranslatorfo = {{traduzione \lbx@lfromlang\ e prefazione di}% + {trad\adddot\ \lbx@sfromlang\ e pref\adddot\ di}}, + bytranslatoraf = {{traduzione \lbx@lfromlang\ e postfazione di}% + {trad\adddot\ \lbx@sfromlang\ e postf\adddot\ di}}, + bytranslatorcoin = {{traduzione \lbx@lfromlang, commenti e introduzione di}% + {trad\adddot\ \lbx@sfromlang, comm\adddot\ e introd\adddot\ di}}, + bytranslatorcofo = {{traduzione \lbx@lfromlang, commenti e prefazione di}% + {trad\adddot\ \lbx@sfromlang, comm\adddot\ e pref\adddot\ di}}, + bytranslatorcoaf = {{traduzione \lbx@lfromlang, commenti e postfazione di}% + {trad\adddot\ \lbx@sfromlang, comm\adddot\ e postf\adddot\ di}}, + bytranslatoranin = {{traduzione \lbx@lfromlang, annotazioni e introduzione di}% + {trad\adddot\ \lbx@sfromlang, annot\adddot\ e introd\adddot\ di}}, + bytranslatoranfo = {{traduzione \lbx@lfromlang, annotazioni e prefazione di}% + {trad\adddot\ \lbx@sfromlang, annot\adddot\ e pref\adddot\ di}}, + bytranslatoranaf = {{traduzione \lbx@lfromlang, annotazioni e postfazione di}% + {trad\adddot\ \lbx@sfromlang, annot\adddot\ e postf\adddot\ di}}, + and = {{e}{e}}, + andothers = {{et\addabbrvspace al\adddot}{et\addabbrvspace al\adddot}}, + andmore = {{et\addabbrvspace al\adddot}{et\addabbrvspace al\adddot}}, + volume = {{volume}{vol\adddot}}, + volumes = {{volumi}{voll\adddot}}, + involumes = {{in}{in}},% FIXME: unsure + jourvol = {{volume}{vol\adddot}}, + jourser = {{serie}{ser\adddot}}, +% book = {{}{}},% FIXME: missing +% part = {{}{}},% FIXME: missing +% issue = {{}{}},% FIXME: missing + newseries = {{nuova serie}{nuova ser\adddot}}, + oldseries = {{vecchia serie}{vecchia ser\adddot}}, + edition = {{edizione}{ed\adddot}}, + reprint = {{ristampa}{rist\adddotspace}}, + reprintof = {{ristampa di}{rist\adddotspace di}}, +% reprintas = {{}{}},% FIXME: missing +% reprintfrom = {{}{}},% FIXME: missing +% translationof = {{}{}},% FIXME: missing +% translationas = {{}{}},% FIXME: missing +% translationfrom = {{}{}},% FIXME: missing +% reviewof = {{}{}},% FIXME: missing +% origpubas = {{}{}},% FIXME: missing +% origpubin = {{}{}},% FIXME: missing +% astitle = {{}{}},% FIXME: missing +% bypublisher = {{}{}},% FIXME: missing + nodate = {{senza\space data}{{}n\adddot d\adddot}}, + page = {{pagina}{p\adddot}}, + pages = {{pagine}{pp\adddot}}, + column = {{colonna}{col\adddot}}, + columns = {{colonne}{coll\adddot}}, + line = {{riga}{r\adddot}}, + lines = {{righe}{rr\adddot}}, + verse = {{verso}{v\adddot}}, + verses = {{versi}{vv\adddot}}, +% section = {{}{\S}},% FIXME: missing +% sections = {{}{\S\S}},% FIXME: missing + paragraph = {{paragrafo}{par\adddot}}, + paragraphs = {{paragrafi}{par\adddot}}, + pagetotal = {{pagina}{p\adddot}}, + pagetotals = {{pagine}{pp\adddot}}, + columntotal = {{colonna}{col\adddot}}, + columntotals = {{colonne}{coll\adddot}}, + linetotal = {{riga}{r\adddot}}, + linetotals = {{righe}{rr\adddot}}, + versetotal = {{verso}{v\adddot}}, + versetotals = {{versi}{vv\adddot}}, +% sectiontotal = {{}{}},% FIXME: missing +% sectiontotals = {{}{}},% FIXME: missing + paragraphtotal = {{paragrafo}{par\adddot}}, + paragraphtotals = {{paragrafi}{par\adddot}}, + in = {{in}{in}}, + inseries = {{in}{in}}, + ofseries = {{di}{di}}, + number = {{numero}{n\adddot}}, + chapter = {{capitolo}{cap\adddot}}, +% bathesis = {{}{}},% FIXME: missing + mathesis = {{tesi di laurea magistrale}{tesi di laurea mag\adddot}}, + phdthesis = {{tesi di dottorato}{tesi di dott\adddot}}, +% candthesis = {{}{}},% FIXME: missing + resreport = {{rapporto di ricerca}{rapporto di ricerca}}, + techreport = {{rapporto tecnico}{rapp\adddotspace tecn\adddot}}, +% software = {{}{}},% FIXME: missing +% datacd = {{}{}},% FIXME: missing +% audiocd = {{}{}},% FIXME: missing + version = {{versione}{ver\adddot}}, + url = {{indirizzo}{indirizzo}}, +% urlfrom = {{}{}},% FIXME: missing + urlseen = {{visitato il}{visitato il}}, +% inpreparation = {{}{}},% FIXME: missing +% submitted = {{}{}},% FIXME: missing +% forthcoming = {{}{}},% FIXME: missing + inpress = {{in stampa}{in stampa}}, +% prepublished = {{}{}},% FIXME: missing + citedas = {{citato come}{cit\adddotspace come}}, +% thiscite = {{}{}},% FIXME: missing + seenote = {{vedi nota}{v\adddotspace nota}}, + quotedin = {{citato da}{cit\adddotspace da}}, + idem = {{idem}{idem}}, + idemsm = {{idem}{idem}}, + idemsf = {{eadem}{eadem}}, + idemsn = {{idem}{idem}}, + idempm = {{eidem}{eidem}}, + idempf = {{eaedem}{eaedem}}, + idempn = {{eadem}{eadem}}, + idempp = {{eidem}{eidem}}, + ibidem = {{ibidem}{ibid\adddot}}, + opcit = {{cit\adddot}{cit\adddot}}, + loccit = {{loc\adddotspace cit\adddot}{loc\adddotspace cit\adddot}}, + confer = {{cf\adddot}{cf\adddot}}, + sequens = {{s\adddot}{s\adddot}}, + sequentes = {{ss\adddot}{ss\adddot}}, + passim = {{passim}{pass\adddot}}, + see = {{vedi\adddot}{v\adddot}}, + seealso = {{vedi anche}{v\adddot~anche}}, + backrefpage = {{citato a pagina}{cit\adddotspace a p\adddot}}, + backrefpages = {{citato alle pagine}{cit\adddotspace alle pp\adddot}}, + january = {{gennaio}{gen\adddot}}, + february = {{febbraio}{feb\adddot}}, + march = {{marzo}{mar\adddot}}, + april = {{aprile}{apr\adddot}}, + may = {{maggio}{mag\adddot}}, + june = {{giugno}{giu\adddot}}, + july = {{luglio}{lug\adddot}}, + august = {{agosto}{ago\adddot}}, + september = {{settembre}{set\adddot}}, + october = {{ottobre}{ott\adddot}}, + november = {{novembre}{nov\adddot}}, + december = {{dicembre}{dic\adddot}}, + langamerican = {{americano}{americano}}, + langbrazilian = {{brasiliano}{brasiliano}}, + langbulgarian = {{bulgaro}{bulgaro}}, + langcatalan = {{catalano}{catalano}}, + langcroatian = {{croato}{croato}}, + langczech = {{ceco}{ceco}}, + langdanish = {{danese}{danese}}, + langdutch = {{olandese}{olandese}}, + langenglish = {{inglese}{inglese}}, + langestonian = {{estone}{estone}}, + langfinnish = {{finlandese}{finlandese}}, + langfrench = {{francese}{francese}}, + langgalician = {{galiziano}{galiziano}}, + langgerman = {{tedesco}{tedesco}}, + langgreek = {{greco}{greco}}, + langhungarian = {{ungherese}{ungherese}}, + langitalian = {{italiano}{italiano}}, + langlatin = {{latino}{latino}}, +% langlatvian = {{}{}},% FIXME: missing + langnorwegian = {{norvegese}{norvegese}}, + langpolish = {{polacco}{polacco}}, + langportuguese = {{portoghese}{portoghese}}, + langrussian = {{russo}{russo}}, +% langslovak = {{}{}},% FIXME: missing + langslovene = {{sloveno}{sloveno}}, + langspanish = {{spagnolo}{spagnolo}}, + langswedish = {{svedese}{svedese}}, + fromamerican = {{dall'americano}{dall'americano}}, + frombrazilian = {{dall brasiliano}{dall brasiliano}}, + frombulgarian = {{dal bulgaro}{dal bulgaro}}, + fromcatalan = {{dal catalano}{dal catalano}}, + fromcroatian = {{dal croato}{dal croato}}, + fromczech = {{dal ceco}{dal ceco}}, + fromdanish = {{dal danese}{dal danese}}, + fromdutch = {{dall'olandese}{dall'olandese}}, + fromenglish = {{dall'inglese}{dall'inglese}}, + fromestonian = {{dall'estone}{dall'estone}}, + fromfinnish = {{dal finlandese}{dal finlandese}}, + fromfrench = {{dal francese}{dal francese}}, + fromgalician = {{dal galiziano}{dal galiziano}}, + fromgerman = {{dal tedesco}{dal tedesco}}, + fromgreek = {{dal greco}{dal greco}}, + fromhungarian = {{dall'ungherese}{dall'ungherese}}, + fromitalian = {{dall'italiano}{dall'italiano}}, + fromlatin = {{dal latino}{dal latino}}, +% fromlatvian = {{}{}},% FIXME: missing + fromnorwegian = {{dal norvegese}{dal norvegese}}, + frompolish = {{dal polacco}{dal polacco}}, + fromportuguese = {{dall portoghese}{dall portoghese}}, + fromrussian = {{dal russo}{dal russo}}, +% fromslovak = {{}{}},% FIXME: missing + fromslovene = {{dallo sloveno}{dallo sloveno}}, + fromspanish = {{dallo spagnolo}{dallo spagnolo}}, + fromswedish = {{dal svedese}{dal svedese}}, + countryde = {{Germania}{DE}}, + countryep = {{Unione Europea}{EP}}, + countryeu = {{Unione Europea}{EU}}, + countryfr = {{Francia}{FR}}, + countryuk = {{Regno Unito}{GB}}, + countryus = {{Stati Uniti d'America}{US}}, + patent = {{brevetto}{brev\adddot}}, + patentde = {{brevetto tedesco}{brev\adddot\ tedesco}}, + patenteu = {{brevetto europeo}{brev\adddot\ europeo}}, + patentfr = {{brevetto francese}{brev\adddot\ francese}}, + patentuk = {{brevetto britannico}{brev\adddot\ britannico}}, + patentus = {{brevetto americano}{brev\adddot\ americano}}, + patreq = {{brevetto richiesto}{brev\adddot\ rich\adddot}}, + patreqde = {{brevetto tedesco richiesto}{brev\adddot\ tedesco rich\adddot}}, + patreqeu = {{brevetto europeo richiesto}{brev\adddot\ europeo rich\adddot}}, + patreqfr = {{brevetto francese richiesto}{brev\adddot\ francese rich\adddot}}, + patrequk = {{brevetto britannico richiesto}{brev\adddot\ britannico rich\adddot}}, + patrequs = {{brevetto U.S.A\adddot\ richiesto}{brev\adddot\ U.S.A\adddot\ rich\adddot}}, + file = {{file}{file}}, + library = {{biblioteca}{biblioteca}}, + abstract = {{abstract}{abstract}}, + annotation = {{annotazione}{annotazione}}, + commonera = {{Era Volgare}{E\adddot V\adddot}}, + beforecommonera = {{avanti Era Volgare}{a\adddot E\adddot V\adddot}}, + annodomini = {{d\adddot C\adddot}{d\adddot C\adddot}}, + beforechrist = {{a\adddot C\adddot}{a\adddot C\adddot}}, +% circa = {{}{}},% FIXME: missing +% spring = {{}{}},% FIXME: missing +% summer = {{}{}},% FIXME: missing +% autumn = {{}{}},% FIXME: missing +% winter = {{}{}},% FIXME: missing +} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/lbx/latvian.lbx b/macros/latex/contrib/biblatex/latex/lbx/latvian.lbx new file mode 100644 index 0000000000..33a95360cb --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/lbx/latvian.lbx @@ -0,0 +1,787 @@ +\ProvidesFile{latvian.lbx} +[\abx@lbxid] + +\ifundef{\lbx@lv@loadinfo} + {\blx@warning@noline{% + Latvian localisation module for biblatex loaded.\MessageBreak + This module changes more definitions than usual.\MessageBreak + Please refer to the documentation for hints and\MessageBreak + check the output carefully, especially with non-\MessageBreak + standard styles or customisations to field formats.\MessageBreak + This warning can be disabled by calling\MessageBreak + '\string\BiblatexLatvianWarningOff'\MessageBreak + after 'biblatex' has been loaded, but before\MessageBreak + the localisation is loaded for the first time}% + \global\let\lbx@lv@loadinfo\@empty} + {} + +\DeclareRedundantLanguages{latvian}{latvian} + +\NewBibliographyString{% + locjanuary, + locfebruary, + locmarch, + locapril, + locmay, + locjune, + locjuly, + locaugust, + locseptember, + lococtober, + locnovember, + locdecember, + locspring, + locsummer, + locautumn, + locwinter, + locdateyear, + dateyear} + +\DeclareBibliographyExtras{% + \providetoggle{lbx@lv@datewhen}% + \providecommand*{\lbx@lv@requestwhendate}{\toggletrue{lbx@lv@datewhen}}% + \DeclareCapitalPunctuation{.!?}% + \protected\def\bibrangedash{% + \textemdash\penalty\hyphenpenalty}% breakable dash + \let\finalandcomma=\empty + \let\finalandsemicolon=\empty + \protected\def\mkbibordinal#1{\stripzeros{#1}\adddot}% + \protected\def\mkbibmascord{\mkbibordinal}% + \protected\def\mkbibfemord{\mkbibordinal}% + \protected\def\mkbibneutord{\mkbibordinal}% + \protected\def\mkbibdatelong#1#2#3{% + \iffieldundef{#1} + {} + {\iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}% + \ifboolexpr{test {\iffieldundef{#2}} and test {\iffieldundef{#3}}} + {\iftoggle{lbx@lv@datewhen} + {\mkbibordinal{\thefield{#1}}\addspace\bibstring{locdateyear}} + {\stripzeros{\thefield{#1}}}} + {\mkbibordinal{\thefield{#1}}\addspace\bibstring{dateyear}\space}}}% + \iffieldundef{#3} + {} + {\mkbibordinal{\thefield{#3}}% + \iffieldundef{#2}{}{\nobreakspace}}% + \iffieldundef{#2} + {} + {\iftoggle{lbx@lv@datewhen} + {\lbx@lv@mkbibdatemonthwhen{\thefield{#2}}} + {\mkbibmonth{\thefield{#2}}}}}% + \protected\def\mkbibdateshort#1#2#3{% + \iffieldundef{#3} + {} + {\mkdayzeros{\thefield{#3}}\adddot}% + \iffieldundef{#2} + {} + {\mkmonthzeros{\thefield{#2}}\adddot}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}% + \ifboolexpr{test {\iffieldundef{#2}} and test {\iffieldundef{#3}}} + {} + {\adddot}}}% + \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{% + \iffieldundef{#1}{} + {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}% + \iffieldundef{#2}{} + {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}% + \iffieldundef{#3}{} + {\printtext{\mktimezeros{\thefield{#3}}}}% + \setunit{}% + \iffieldundef{#4}{} + {\bibtimezonesep + \mkbibtimezone{\thefield{#4}}}}% + \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{% + \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep + \forcezerosmdt{\thefield{#2}}% + \iffieldundef{#3}{} + {\bibtimesep + \forcezerosmdt{\thefield{#3}}}% + \space + \ifnumless{\thefield{#1}}{12} + {\bibstring{am}} + {\bibstring{pm}}% + \iffieldundef{#4}{} + {\space\bibtimezonesep + \parentext{\mkbibtimezone{\thefield{#4}}}}}% + \protected\def\mkbibseasondateshort#1#2{% + \iffieldundef{#1} + {} + {\iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}% + \iffieldundef{#2} + {\iftoggle{lbx@lv@datewhen} + {\mkbibordinal{\thefield{#1}}\addspace\bibstring{locdateyear}} + {\stripzeros{\thefield{#1}}}} + {\mkbibordinal{\thefield{#1}}\addspace\bibstring{dateyear}\space}}}% + \iftoggle{lbx@lv@datewhen} + {\mkbibseason{date\thefield{#2}}} + {\mkbibseason{\thefield{#2}}}}% + \let\mkbibseasondatelong\mkbibseasondateshort + \savecommand\mkdaterangecomp + \savecommand\mkdaterangecompextra + \protected\def\mkdaterangecomp{% + \lbx@lv@mkdaterangetrunc@long{long}}% + \protected\def\mkdaterangecompextra{% + \lbx@lv@mkdaterangetruncextra@long{long}}% + \def\lbx@lv@makewhendate@i#1{% + \expandafter\savecommand\csname abx@ffd@#1@\lbx@lv@whendate@date\endcsname + \cspreto{abx@ffd@#1@\lbx@lv@whendate@date}{\lbx@lv@requestwhendate}}% + \providecommand*{\lbx@lv@makewhendate}[2][*]{% + \def\lbx@lv@whendate@date{#2}% + \def\lbx@lv@whendate@formats{#1}% + \expandafter\forcsvlist + \expandafter\lbx@lv@makewhendate@i + \expandafter{\lbx@lv@whendate@formats}}% + %\lbx@lv@makewhendate{eventdate}% + \def\lbx@lv@mkdottednormrange@i#1{% + \ifinteger{#1} + {\mkbibordinal{#1}} + {#1}} + \protected\def\lbx@lv@mkdottednormrange#1{% + \mknormrange*[\@firstofone][\lbx@lv@mkdottednormrange@i]{#1}}% + % this redefines \mkpageprefix to put the page number as suffix + \savecommand\blx@mkpageprefix + \protected\long\def\blx@mkpageprefix#1[#2]#3{% + \blx@mkpageprefix@i[#2]{#3}% + \ifnumeral{#3} + {\ppspace\bibstring{#1}} + {\ifnumerals{#3} + {\ppspace\bibstring{#1s}} + {\def\pno{\bibstring{#1}}% + \def\ppno{\bibstring{#1s}}}}}% + % NOTE: a few field formats are redefined here, this overrides + % corresponding style and preamble definitions. + % If you want to overwrite the changes made here, use + % \DefineBibliographyExtras{magyar}{...} + % Do not forget to make these changes undone with + % \UndefineBibliographyExtras{magyar}{...} + % to avoid them spilling out later. + \savefieldformat{pages}% + \DeclareFieldFormat{pages}{% + \mkpageprefix[bookpagination][\lbx@lv@mkdottednormrange]{#1}}% + \savefieldformat{postnote}% + \DeclareFieldFormat{postnote}{% + \mkpageprefix[bookpagination][\lbx@lv@mkdottednormrange]{#1}}% + \savefieldformat{volcitepages}% + \DeclareFieldFormat{volcitepages}{% + \mkpageprefix[pagination][\lbx@lv@mkdottednormrange]{#1}}% + \savefieldformat{multipostnote}% + \DeclareFieldFormat{multipostnote}{% + \mkpageprefix[pagination][\lbx@lv@mkdottednormrange]{#1}}% + \savefieldformat{chapter}% + \DeclareFieldFormat{chapter}{% + \ifnumerals{#1}{\mkbibordinal{#1}}{#1} + \addnbspace + \bibstring{chapter}}% + \savefieldformat{volume}% + \DeclareFieldFormat{volume}{% + \ifnumerals{#1}{\mkbibordinal{#1}}{#1} + \addnbspace + \bibstring{volume}}% + \savefieldformat{part}% + \DeclareFieldFormat{part}{% + \addcomma\space% <- this is *really* bad, don't try this at home + % In general leading or trailing punctuation in field formats should be + % avoided and should instead be dealt with in the appropriate bibmacros. + % The part field is special because its standard definition is '.#1'. + % Additionally, \printfield{part} is called all over the place, so we + % can't simply redefine a macro here. + \ifnumerals{#1}{\mkbibordinal{#1}}{#1}% + \addnbspace + \bibstring{part}}% + \savefieldformat{version}% + \DeclareFieldFormat{version}{% + \ifnumerals{#1}{\mkbibordinal{#1}}{#1} + \addnbspace + \bibstring{version}}% +} + +\UndeclareBibliographyExtras{% + \def\lbx@lv@restorewhendate@i#1{% + \expandafter\restorecommand + \csname abx@ffd@#1@\lbx@lv@whendate@date\endcsname}% + \providecommand*{\lbx@lv@restorewhendate}[2][*]{% + \def\lbx@lv@whendate@date{#2}% + \def\lbx@lv@whendate@formats{#1}% + \expandafter\forcsvlist + \expandafter\lbx@lv@restorewhendate@i + \expandafter{\lbx@lv@whendate@formats}}% + %\lbx@lv@restorewhendate{eventdate}% + \restorecommand\mkdaterangecomp + \restorecommand\mkdaterangecompextra + \restorecommand\mknormrange + \restorecommand\blx@mkpageprefix + \restorefieldformat{pages}% + \restorefieldformat{postnote}% + \restorefieldformat{volcitepages}% + \restorefieldformat{multipostnote}% + \restorefieldformat{chapter}% + \restorefieldformat{volume}% + \restorefieldformat{part}% + \restorefieldformat{version}% +} + +\DeclareBibliographyStrings{% + bibliography = {{Bibliogr\={a}fija}{Bibliogr\={a}fija}}, + references = {{Literat\={u}ras saraksts}{Literat\={u}ras saraksts}}, + shorthands = {{Sa\={\i}sin\={a}jumu saraksts}{Sa\={\i}sin\={a}jumi}}, + % FIXME: not sure if correct, the standard editor translation seems to be the same as redactor + editor = {{izdev\={e}js}{izdev\adddot}}, + editors = {{izdev\={e}ji}{izdev\adddot}}, + compiler = {{sast\={a}d\={\i}t\={a}js}{sast\={a}d\adddot}}, + compilers = {{sast\={a}d\={\i}t\={a}ji}{sast\={a}d\adddot}}, + redactor = {{redaktors}{redakt\adddot}}, + redactors = {{redaktori}{radakt\adddot}}, + reviser = {{revidents}{revid\adddot}}, + revisers = {{revidenti}{revid\adddot}}, + founder = {{dibin\={a}t\={a}js}{dib\adddot}}, + founders = {{dibin\={a}t\={a}ji}{dib\adddot}}, + continuator = {{turpin\={a}t\={a}js}{turp\adddot}}, + continuators = {{turpin\={a}t\={a}ji}{turp\adddot}}, + collaborator = {{l\={\i}dzstr\={a}dnieks}{l\={\i}dzstr\adddot}}, + collaborators = {{l\={\i}dzstr\={a}dnieki}{l\={\i}dzstr\adddot}}, + translator = {{tulkot\={a}js}{tulk\adddot}}, + translators = {{tulkot\={a}ji}{tulk\adddot}}, + commentator = {{koment\={e}t\={a}js}{koment\adddot}}, + commentators = {{koment\={e}t\={a}ji}{koment\adddot}}, + annotator = {{anot\={a}cijas autors}{anot\adddotspace autors}}, + annotators = {{anot\={a}cijas autori}{anot\adddotspace autori}}, + commentary = {{koment\={a}rs}{koment\adddot}}, + annotations = {{anot\={a}cijas}{anot\={a}c\adddot}}, + introduction = {{ievads}{ievads}}, + foreword = {{priek\v{s}v\={a}rds}{priek\v{s}v\adddot}}, + afterword = {{p\={e}cv\={a}rds}{p\={e}cv\adddot}}, + editortr = {{izdev\={e}js un tulkot\={a}js}{izdev\adddotspace un tulk\adddot}}, + editorstr = {{izdev\={e}ji un tulkot\={a}ji}{izdev\adddotspace un tulk\adddot}}, + editorco = {{izdev\={e}js un koment\={e}t\={a}js}{izdev\adddotspace un koment\adddot}}, + editorsco = {{izdev\={e}ji un koment\={e}t\={a}ji}{izdev\adddotspace un koment\adddot}}, + editoran = {{izdev\={e}js un anot\={a}cijas autors}% + {izdev\adddotspace un anot\adddotspace autors}}, + editorsan = {{izdev\={e}ji un anot\={a}cijas autori}% + {izdev\adddotspace un anot\adddotspace autori}}, + editorin = {{izdev\={e}js un ievada autors}{izdev\adddotspace un ievada autors}}, + editorsin = {{izdev\={e}ji un ievada autori}{izdev\adddotspace un ievada autori}}, + editorfo = {{izdev\={e}js un priek\v{s}v\={a}rda autors}% + {izdev\adddotspace un priek\v{s}v\adddotspace autors}}, + editoraf = {{izdev\={e}js un p\={e}cv\={a}rda autors}% + {izdev\adddotspace un p\={e}cv\adddotspace autors}}, + editorsaf = {{izdev\={e}ji un p\={e}cv\={a}rda autori}% + {izdev\adddotspace un p\={e}cv\adddotspace autori}}, + editortrco = {{izdev\={e}js, tulkot\={a}js un koment\={e}t\={a}js}% + {izdev\adddot, tulk\adddotspace un koment\adddot}}, + editorstrco = {{izdev\={e}ji, tulkot\={a}ji un koment\={e}t\={a}ji}% + {izdev\adddot, tulk\adddotspace un koment\adddot}}, + editortran = {{izdev\={e}js, tulkot\={a}js un anot\={a}cijas autors}% + {izdev\adddot, tulk\adddotspace un anot\adddotspace autors}}, + editorstran = {{izdev\={e}ji, tulkot\={a}ji un anot\={a}cijas autori}% + {izdev\adddot, tulk\adddotspace un anot\adddotspace autori}}, + editortrin = {{izdev\={e}js, tulkot\={a}js un ievada autors}% + {izdev\adddot, tulk\adddotspace un ievada autors}}, + editorstrin = {{izdev\={e}ji, tulkot\={a}ji un ievada autori}% + {izdev\adddot, tulk\adddotspace un ievada autori}}, + editortrfo = {{izdev\={e}js, tulkot\={a}js un priek\v{s}v\={a}rds autors}% + {izdev\adddot, tulk\adddotspace un priek\v{s}v\adddotspace autors}}, + editorstrfo = {{izdev\={e}ji, tulkot\={a}ji un priek\v{s}v\={a}rds autori}% + {izdev\adddot, tulk\adddotspace un priek\v{s}v\adddotspace autori}}, + editortraf = {{izdev\={e}js, tulkot\={a}js un p\={e}cv\={a}rda autors}% + {izdev\adddot, tulk\adddotspace un p\={e}cv\adddotspace autors}}, + editorstraf = {{izdev\={e}ji, tulkot\={a}ji un p\={e}cv\={a}rda autori}% + {izdev\adddot, tulk\adddotspace un p\={e}cv\adddotspace autori}}, + editorcoin = {{izdev\={e}js, koment\={e}t\={a}js un ievada autors}% + {izdev\adddot, koment\adddotspace un ievada autors}}, + editorscoin = {{izdev\={e}ji, koment\={e}t\={a}ji un ievada autori}% + {izdev\adddot, koment\adddotspace un ievada autori}}, + editorcofo = {{izdev\={e}js, koment\={e}t\={a}js un priek\v{s}v\={a}rds autors}% + {izdev\adddot, koment\adddotspace un priek\v{s}v\adddotspace autors}}, + editorscofo = {{izdev\={e}ji, koment\={e}t\={a}ji un priek\v{s}v\={a}rds autori}% + {izdev\adddot, koment\adddotspace un priek\v{s}v\adddotspace autori}}, + editorcoaf = {{izdev\={e}js, koment\={e}t\={a}js un p\={e}cv\={a}rda autors}% + {izdev\adddot, koment\adddotspace un p\={e}cv\adddotspace autors}}, + editorscoaf = {{izdev\={e}ji, koment\={e}t\={a}ji un p\={e}cv\={a}rda autori}% + {izdev\adddot, koment\adddotspace un p\={e}cv\adddotspace autori}}, + editoranin = {{izdev\={e}js, anot\={a}cijas un ievada autors}% + {izdev\adddot, anot\adddotspace un ievada autors}}, + editorsanin = {{izdev\={e}ji, anot\={a}cijas un ievada autori}% + {izdev\adddot, anot\adddotspace un ievada autori}}, + editoranfo = {{izdev\={e}js, anot\={a}cijas un priek\v{s}v\={a}rda autors}% + {izdev\adddot, anot\adddotspace un priek\v{s}v\adddotspace autors}}, + editorsanfo = {{izdev\={e}ji, anot\={a}cijas un priek\v{s}v\={a}rda autori}% + {izdev\adddot, anot\adddotspace un priek\v{s}v\adddotspace autori}}, + editoranaf = {{izdev\={e}js, anot\={a}cijas un p\={e}cv\={a}rda autors}% + {izdev\adddot, anot\adddotspace un p\={e}cv\adddotspace autors}}, + editorsanaf = {{izdev\={e}ji, anot\={a}cijas un p\={e}cv\={a}rda autori}% + {izdev\adddot, anot\adddotspace un p\={e}cv\adddotspace autori}}, + editortrcoin = {{izdev\={e}js, tulkot\={a}js, koment\={e}t\={a}js un ievada autors}% + {izdev\adddot, tulk\adddot, koment\adddotspace un ievada autors}}, + editorstrcoin = {{izdev\={e}ji, tulkot\={a}ji, koment\={e}t\={a}ji un ievada autori}% + {izdev\adddot, tulk\adddot, koment\adddotspace un ievada autori}}, + editortrcofo = {{izdev\={e}js, tulkot\={a}js, koment\={e}t\={a}js un priek\v{s}v\={a}rda autors}% + {izdev\adddot, tulk\adddot, koment\adddotspace un priek\v{s}v\adddotspace autors}}, + editorstrcofo = {{izdev\={e}ji, tulkot\={a}ji, koment\={e}t\={a}ji un priek\v{s}v\={a}rda autori}% + {izdev\adddot, tulk\adddot, koment\adddotspace un priek\v{s}v\adddotspace autori}}, + editortrcoaf = {{izdev\={e}js, tulkot\={a}js, koment\={e}t\={a}js un p\={e}cv\={a}rda autors}% + {izdev\adddot, tulk\adddot, koment\adddotspace un p\={e}cv\adddotspace autors}}, + editorstrcoaf = {{izdev\={e}ji, tulkot\={a}ji, koment\={e}t\={a}ji un p\={e}cv\={a}rda autori}% + {izdev\adddot, tulk\adddot, koment\adddotspace un p\={e}cv\adddotspace autori}}, + editortranin = {{izdev\={e}js, koment\={e}t\={a}js, anot\={a}cijas un ievada autors}% + {izdev\adddot, koment\adddot, anot\adddotspace un ievada autors}}, + editorstranin = {{izdev\={e}ji, koment\={e}t\={a}ji, anot\={a}cijas un ievada autori}% + {izdev\adddot, koment\adddot, anot\adddotspace un ievada autori}}, + editortranfo = {{izdev\={e}js, koment\={e}t\={a}js, anot\={a}cijas un priek\v{s}v\={a}rda autors}% + {izdev\adddot, koment\adddot, anot\adddotspace un priek\v{s}v\adddotspace autors}}, + editorstranfo = {{izdev\={e}ji, koment\={e}t\={a}ji, anot\={a}cijas un priek\v{s}v\={a}rda autori}% + {izdev\adddot, koment\adddot, anot\adddotspace un priek\v{s}v\adddotspace autori}}, + editortranaf = {{izdev\={e}js, koment\={e}t\={a}js, anot\={a}cijas un p\={e}cv\={a}rda autors}% + {izdev\adddot, koment\adddot, anot\adddotspace un p\={e}cv\adddotspace autors}}, + editorstranaf = {{izdev\={e}ji, koment\={e}t\={a}ji, anot\={a}cijas un p\={e}cv\={a}rda autori}% + {izdev\adddot, koment\adddot, anot\adddotspace un p\={e}cv\adddotspace autori}}, + translatorco = {{tulkot\={a}js un koment\={e}t\={a}js}{tulk\adddotspace un koment\adddot}}, + translatorsco = {{tulkot\={a}ji un koment\={e}t\={a}ji}{tulk\adddotspace un koment\adddot}}, + translatoran = {{tulkot\={a}js un anot\={a}cijas autors}% + {tulk\adddotspace un anot\adddotspace autors}}, + translatorsan = {{tulkot\={a}ji un anot\={a}cijas autori}% + {tulk\adddotspace un anot\adddotspace autori}}, + translatorin = {{tulkot\={a}js un ievada autors}{tulk\adddotspace un ievada autors}}, + translatorsin = {{tulkot\={a}ji un ievada autori}{tulk\adddotspace un ievada autori}}, + translatorfo = {{tulkot\={a}js un priek\v{s}v\={a}rda autors}% + {tulk\adddotspace un priek\v{s}v\adddotspace autors}}, + translatorsfo = {{tulkot\={a}ji un priek\v{s}v\={a}rda autori}% + {tulk\adddotspace un priek\v{s}v\adddotspace autori}}, + translatoraf = {{tulkot\={a}js un p\={e}cv\={a}rda autors}% + {tulk\adddotspace un p\={e}cv\adddotspace autors}}, + translatorsaf = {{tulkot\={a}ji un p\={e}cv\={a}rda autori}% + {tulk\adddotspace un p\={e}cv\adddotspace autori}}, + translatorcoin = {{tulkot\={a}js, koment\={e}t\={a}js un ievada autors}% + {tulk\adddot, koment\adddotspace un ievada autors}}, + translatorscoin = {{tulkot\={a}ji, koment\={e}t\={a}ji un ievada autori}% + {tulk\adddot, koment\adddotspace un ievada autori}}, + translatorcofo = {{tulkot\={a}js, koment\={e}t\={a}js un priek\v{s}v\={a}rda autors}% + {tulk\adddot, koment\adddotspace un priek\v{s}v\adddotspace autors}}, + translatorscofo = {{tulkot\={a}ji, koment\={e}t\={a}ji un priek\v{s}v\={a}rda autori}% + {tulk\adddot, koment\adddotspace un priek\v{s}v\adddotspace autori}}, + translatorcoaf = {{tulkot\={a}js, koment\={e}t\={a}js un p\={e}cv\={a}rda autors}% + {tulk\adddot, koment\adddotspace un p\={e}cv\adddotspace autors}}, + translatorscoaf = {{tulkot\={a}ji, koment\={e}t\={a}ji un p\={e}cv\={a}rda autori}% + {tulk\adddot, koment\adddotspace un p\={e}cv\adddotspace autori}}, + translatoranin = {{tulkot\={a}js, anot\={a}cijas un ievada autors}% + {tulk\adddot, anot\adddotspace un ievada autors}}, + translatorsanin = {{tulkot\={a}ji, anot\={a}cijas un ievada autori}% + {tulk\adddot, anot\adddotspace un ievada autori}}, + translatoranfo = {{tulkot\={a}js, anot\={a}cijas un priek\v{s}v\={a}rda autors}% + {tulk\adddot, anot\adddotspace un priek\v{s}v\adddotspace autors}}, + translatorsanfo = {{tulkot\={a}ji, anot\={a}cijas un priek\v{s}v\={a}rda autori}% + {tulk\adddot, anot\adddotspace un priek\v{s}v\adddotspace autori}}, + translatoranaf = {{tulkot\={a}js, anot\={a}cijas un p\={e}cv\={a}rda autors}% + {tulk\adddot, anot\adddotspace un p\={e}cv\adddotspace autors}}, + translatorsanaf = {{tulkot\={a}ji, anot\={a}cijas un p\={e}cv\={a}rda autori}% + {tulk\adddot, anot\adddotspace un p\={e}cv\adddotspace autori}}, + organizer = {{organiz\={e}t\={a}js}{organiz\adddot}}, + organizers = {{organiz\={e}t\={a}ji}{organiz\adddot}}, + % FIXME: currently by* strings can appear akward if they're followed by multiple + % words connected by "and" or feminine nouns and abbreviate=false is used + byorganizer = {{organiz\={e}jis}{organiz\adddot}}, + byauthor = {{sarakst\={\i}jis}{sarakst\adddot}}, + byeditor = {{izdevis}{izdevis}}, + bycompiler = {{sast\={a}d\={\i}jis}{sast\={a}d\adddot}}, + byredactor = {{redi\v{g}\={e}jis}{redi\v{g}\adddot}}, + byreviser = {{revid\={e}jis}{revid\adddot}}, + byreviewer = {{recenz\={e}jis}{recenz\adddot}}, + byfounder = {{dibin\={a}jis}{dib\adddot}}, + bycontinuator = {{turpin\={a}jis}{turpin\adddot}}, + bycollaborator = {{ar sadarb\={\i}bu no}{ar sadarb\={\i}bu no}}, + bytranslator = {{tulkojis}{tulk\adddot}}, + bycommentator = {{koment\={e}jis}{koment\adddot}}, + byannotator = {{anot\={a}ciju sast\={a}d\={\i}jis}{anot\adddotspace sast\={a}d\adddot}}, + withcommentator = {{ar koment\={a}riem no}{ar koment\adddotspace no}}, + withannotator = {{ar anot\={a}ciju no}{ar anot\adddotspace no}}, + withintroduction = {{ar ievadu no}{ar ievadu no}}, + withforeword = {{ar priek\v{s}v\={a}rdu no}{ar priek\v{s}v\adddotspace no}}, + withafterword = {{ar p\={e}cv\={a}rdu no}{ar p\={e}cv\adddotspace no}}, + byeditortr = {{izdevis un tulkojis}{izdev\adddotspace un tulk\adddot}}, + byeditorco = {{izdevis un koment\={e}jis}{izdev\adddotspace un koment\adddot}}, + byeditoran = {{izdevis un anot\={a}ciju sast\={a}d\={\i}jis}% + {izdev\adddotspace un anot\adddotspace sast\={a}d\adddot}}, + byeditorin = {{izdevis un ievadu sast\={a}d\={\i}jis}% + {izdev\adddotspace un ievadu sast\={a}d\adddot}}, + byeditorfo = {{izdevis un priek\v{s}v\={a}rdu sast\={a}d\={\i}jis}% + {izdev\adddotspace un priek\v{s}v\adddotspace sast\={a}d\adddot}}, + byeditoraf = {{izdevis un p\={e}cv\={a}rdu sast\={a}d\={\i}jis}% + {izdev\adddotspace un p\={e}cv\adddotspace sast\={a}d\adddot}}, + byeditortrco = {{izdevis, tulkojis un koment\={e}jis}% + {izdev\adddot, tulk\adddotspace un koment\adddot}}, + byeditortran = {{izdevis, tulkojis un anot\={a}ciju sast\={a}d\={\i}jis}% + {izdev\adddot, tulk\adddotspace un anot\adddotspace sast\={a}d\adddot}}, + byeditortrin = {{izdevis, tulkojis un ievadu sast\={a}d\={\i}jis}% + {izdev\adddot, tulk\adddotspace un ievadu sast\={a}d\adddot}}, + byeditortrfo = {{izdevis, tulkojis un priek\v{s}v\={a}rdu sast\={a}d\={\i}jis}% + {izdev\adddot, tulk\adddotspace un priek\v{s}v\adddotspace sast\={a}d\adddot}}, + byeditortraf = {{izdevis, tulkojis un p\={e}cv\={a}rdu sast\={a}d\={\i}jis}% + {izdev\adddot, tulk\adddotspace un p\={e}cv\adddotspace sast\={a}d\adddot}}, + byeditorcoin = {{izdevis, koment\={e}jis un ievadu sast\={a}d\={\i}jis}% + {izdev\adddot, koment\adddotspace un ievadu sast\={a}d\adddot}}, + byeditorcofo = {{izdevis, koment\={e}jis un priek\v{s}v\={a}rdu sast\={a}d\={\i}jis}% + {izdev\adddot, koment\adddotspace un priek\v{s}v\adddotspace sast\={a}d\adddot}}, + byeditorcoaf = {{izdevis, koment\={e}jis un p\={e}cv\={a}rdu sast\={a}d\={\i}jis}% + {izdev\adddot, koment\adddotspace un p\={e}cv\adddotspace sast\={a}d\adddot}}, + byeditoranin = {{izdevis, anot\={a}ciju un ievadu sast\={a}d\={\i}jis}% + {izdev\adddot, anot\adddotspace un ievadu sast\={a}d\adddot}}, + byeditoranfo = {{izdevis, anot\={a}ciju un priek\v{s}v\={a}rdu sast\={a}d\={\i}jis}% + {izdev\adddot, anot\adddotspace un priek\v{s}v\adddotspace sast\={a}d\adddot}}, + byeditoranaf = {{izdevis, anot\={a}ciju un p\={e}cv\={a}rdu sast\={a}d\={\i}jis}% + {izdev\adddot, anot\adddotspace un p\={e}cv\adddotspace sast\={a}d\adddot}}, + byeditortrcoin = {{izdevis, tulkojis, koment\={e}jis un ievadu sast\={a}d\={\i}jis}% + {izdev\adddot, tulk\adddot, koment\adddotspace un ievadu sast\={a}d\adddot}}, + byeditortrcoin = {{izdevis, tulkojis, koment\={e}jis un priek\v{s}v\={a}rdu sast\={a}d\={\i}jis}% + {izdev\adddot, tulk\adddot, koment\adddotspace un priek\v{s}v\adddotspace sast\={a}d\adddot}}, + byeditortrcoaf = {{izdevis, tulkojis, koment\={e}jis un p\={e}cv\={a}rdu sast\={a}d\={\i}jis}% + {izdev\adddot, tulk\adddot, koment\adddotspace un p\={e}cv\adddotspace sast\={a}d\adddot}}, + byeditortranin = {{izdevis, koment\={e}jis, anot\={a}ciju un ievadu sast\={a}d\={\i}jis}% + {izdev\adddot, koment\adddot, anot\adddotspace un ievadu sast\={a}d\adddot}}, + byeditortranfo = {{izdevis, koment\={e}jis, anot\={a}ciju priek\v{s}v\={a}rdu sast\={a}d\={\i}jis}% + {izdev\adddot, koment\adddot, anot\adddotspace un priek\v{s}v\adddotspace sast\={a}d\adddot}}, + byeditortranaf = {{izdevis, koment\={e}jis, anot\={a}ciju un p\={e}cv\={a}rdu sast\={a}d\={\i}jis}% + {izdev\adddot, koment\adddot, anot\adddotspace un p\={e}cv\adddotspace sast\={a}d\adddot}}, + bytranslatorco = {{tulkojis un koment\={e}jis}{tulk\adddotspace un koment\adddot}}, + bytranslatoran = {{tulkojis un anot\={a}ciju sast\={a}d\={\i}jis}% + {tulk\adddotspace un anot\adddotspace sast\={a}d\adddot}}, + bytranslatorin = {{tulkojis un ievadu sast\={a}d\={\i}jis}% + {tulk\adddotspace un ievadu sast\={a}d\adddot}}, + bytranslatorfo = {{tulkojis un priek\v{s}v\={a}rdu sast\={a}d\={\i}jis}% + {tulk\adddotspace un priek\v{s}v\adddotspace sast\={a}d\adddot}}, + bytranslatoraf = {{tulkojis un p\={e}cv\={a}rdu sast\={a}d\={\i}jis}% + {tulk\adddotspace un p\={e}cv\adddotspace sast\={a}d\adddot}}, + bytranslatorcoin = {{tulkojis, koment\={e}jis un ievadu sast\={a}d\={\i}jis}% + {tulk\adddot, koment\adddotspace un ievadu sast\={a}d\adddot}}, + bytranslatorcofo = {{tulkojis, koment\={e}jis un priek\v{s}v\={a}rdu sast\={a}d\={\i}jis}% + {tulk\adddot, koment\adddotspace un priek\v{s}v\adddotspace sast\={a}d\adddot}}, + bytranslatorcoaf = {{tulkojis, koment\={e}jis un p\={e}cv\={a}rdu sast\={a}d\={\i}jis}% + {tulk\adddot, koment\adddotspace un p\={e}cv\adddotspace sast\={a}d\adddot}}, + bytranslatoranin = {{tulkojis, anot\={a}ciju un ievadu sast\={a}d\={\i}jis}% + {tulk\adddot, anot\adddotspace un ievadu sast\={a}d\adddot}}, + bytranslatoranfo = {{tulkojis, anot\={a}ciju un priek\v{s}v\={a}rdu sast\={a}d\={\i}jis}% + {tulk\adddot, anot\adddotspace un priek\v{s}v\adddotspace sast\={a}d\adddot}}, + bytranslatoranaf = {{tulkojis, anot\={a}ciju un p\={e}cv\={a}rdu sast\={a}d\={\i}jis}% + {tulk\adddot, anot\adddotspace un p\={e}cv\adddotspace sast\={a}d\adddot}}, + and = {{un}{un}}, + andothers = {{un citi}{u\adddotspace c\adddot}}, + andmore = {{un t\={a} t\={a}l\={a}k}{utt\adddot}}, + volume = {{s\={e}jums}{s\={e}jums}}, + volumes = {{s\={e}jumi}{s\={e}jumi}}, + % FIXME: should be after the volume count not before, e.g. "10 s\={e}jumos" + % involumes = {{s\={e}jumos}{s\={e}jumos}}, + jourvol = {{izdevums}{izdev\adddot}}, + jourser = {{s\={e}rija}{s\={e}rija}}, + book = {{gr\={a}mata}{gr\={a}m\adddot}}, + part = {{da\c{l}a}{da\c{l}a}}, + issue = {{izdevums}{izdev\adddot}}, + newseries = {{jaun\={a}s s\={e}rijas}{jaun\={a}s s\={e}r\adddot}}, + oldseries = {{vec\={a}s s\={e}rijas}{vec\={a}s s\={e}rijas}}, + edition = {{izdevums}{izdev\adddot}}, + reprint = {{atk\={a}rtots izdevums}{atk\={a}rt\adddotspace izdev\adddot}}, + reprintof = {{atk\={a}rtots izdevums no}{atk\={a}rt\adddotspace izdev\adddotspace no}}, + reprintas = {{atk\={a}rtoti izdots k\={a}}{atk\={a}rt\adddotspace izdots k\={a}}}, + reprintfrom = {{atk\={a}rtots izdevums no}{atk\={a}rt\adddotspace izdev\adddotspace no}}, + translationof = {{tulkojums no}{tulk\adddotspace no}}, + translationas = {{tulkots k\={a}}{tulk\adddotspace k\={a}}}, + translationfrom = {{tulkots no}{tulk\adddotspace no}}, + reviewof = {{recenzija}{recenz\adddot}}, + origpubas = {{ori\v{g}in\={a}li public\={e}ts k\={a}}{ori\v{g}\adddotspace public\adddotspace k\={a}}}, + origpubin = {{ori\v{g}in\={a}li public\={e}ts}{ori\v{g}\adddotspace public\adddot}}, + astitle = {{k\={a}}{k\={a}}}, + bypublisher = {{no}{no}}, + nodate = {{bez datuma}{bez dat\adddot}}, + page = {{lappuse}{lpp\adddot}}, + pages = {{lappuses}{lpp\adddot}}, + column = {{sleja}{sleja}}, + columns = {{slejas}{slejas}}, + line = {{rinda}{rinda}}, + lines = {{rindas}{rindas}}, + verse = {{pants}{pants}}, + verses = {{panti}{panti}}, + section = {{noda\c{l}a}{nod\adddot}}, + sections = {{noda\c{l}as}{nod\adddot}}, + paragraph = {{rindkopa}{rindk\adddot}}, + paragraphs = {{rindkopas}{rindk\adddot}}, + pagetotal = {{lappuse}{lpp\adddot}}, + pagetotals = {{lappuses}{lpp\adddot}}, + columntotal = {{sleja}{sleja}}, + columntotals = {{slejas}{slejas}}, + linetotal = {{rinda}{rinda}}, + linetotals = {{rindas}{rindas}}, + versetotal = {{pants}{pants}}, + versetotals = {{panti}{panti}}, + sectiontotal = {{noda\c{l}a}{nod\adddot}}, + sectiontotals = {{noda\c{l}as}{nod\adddot}}, + paragraphtotal = {{rindkopa}{rindk\adddot}}, + paragraphtotals = {{rindkopas}{rindk\adddot}}, + in = {{}{}}, % Works well as an empty string + inseries = {{s\={e}rij\={a}s}{s\={e}rij\={a}s}}, + ofseries = {{s\={e}rijas}{s\={e}rijas}}, + number = {{numurs}{nr\adddot}}, + chapter = {{noda\c{l}a}{nod\adddot}}, + % bathesis = {{bakalaura darbs}{bak\adddotspace darbs}}, + mathesis = {{ma\v{g}istra darbs}{ma\v{g}\adddotspace darbs}}, + phdthesis = {{doktora gr\={a}da disert\={a}cija}{dokt\adddotspace gr\={a}da disert\adddot}}, + candthesis = {{kandid\={a}ta disert\={a}cija}{kand\adddotspace disert\adddot}}, + resreport = {{p\={e}tniec\={\i}bas darba p\={a}rskats}{p\={e}tn\adddotspace darba p\={a}rsk\adddot}}, + techreport = {{tehniskais zi\c{n}ojums}{tehn\adddotspace zi\c{n}\adddot}}, + software = {{programmat\={u}ra}{progr\adddot}}, + datacd = {{datu CD}{datu CD}}, + audiocd = {{audio CD}{audio CD}}, + version = {{versija}{versija}}, + url = {{pieejams}{pieejams}}, + urlfrom = {{pieejams no}{pieejams no}}, + urlseen = {{apl\={u}kots\aftergroup\lbx@lv@requestwhendate}{apl\={u}kots\aftergroup\lbx@lv@requestwhendate}}, + inpreparation = {{tiek gatavots}{tiek gatavots}}, + submitted = {{iesniegts}{iesniegts}}, + forthcoming = {{gaid\={a}mais}{gaid\={a}mais}}, + inpress = {{pres\={e}}{pres\={e}}}, + prepublished = {{agr\={a}k public\={e}ts}{agr\={a}k public\adddot}},% FIXME: not sure if correct + citedas = {{turpm\={a}k cit\={e}ts k\={a}}{turpm\={a}k cit\={e}ts k\={a}}}, + % thiscite = {{}{}},% FIXME: missing + seenote = {{skat\={\i}t piez\={\i}mi}{skat\adddotspace piez\adddot}}, + quotedin = {{cit\={e}ts}{cit\={e}ts}}, + % idem = {{}{}},% FIXME: missing + % idemsf = {{}{}},% FIXME: missing + % idemsm = {{}{}},% FIXME: missing + % idemsn = {{}{}},% FIXME: missing + % idempf = {{}{}},% FIXME: missing + % idempm = {{}{}},% FIXME: missing + % idempn = {{}{}},% FIXME: missing + % idempp = {{}{}},% FIXME: missing + % ibidem = {{}{}},% FIXME: missing + % opcit = {{}{}},% FIXME: missing + % loccit = {{}{}},% FIXME: missing + % confer = {{}{}},% FIXME: missing + % sequens = {{}{}},% FIXME: missing + % sequentes = {{}{}},% FIXME: missing + % passim = {{}{}},% FIXME: missing + see = {{skat\={\i}t}{skat\adddot}}, + seealso = {{skat\={\i}t ar\={\i}}{skat\adddotspace ar\={\i}}}, + backrefpage = {{cit\={e}ts lappus\={e}}{cit\={e}ts lpp\adddot}}, + backrefpages = {{cit\={e}ts lappus\={e}s}{cit\={e}ts lpp\adddot}}, + january = {{janv\={a}ris}{janv\adddot}}, + february = {{febru\={a}ris}{febr\adddot}}, + march = {{marts}{marts}}, + april = {{apr\={\i}lis}{apr\adddot}}, + may = {{maijs}{maijs}}, + june = {{j\={u}nijs}{j\={u}n\adddot}}, + july = {{j\={u}lijs}{j\={u}l\adddot}}, + august = {{augusts}{aug\adddot}}, + september = {{septembris}{sept\adddot}}, + october = {{oktobris}{okt\adddot}}, + november = {{novembris}{nov\adddot}}, + december = {{decembris}{dec\adddot}}, + locjanuary = {{janv\={a}r\={\i}}{janv\adddot}}, + locfebruary = {{febru\={a}r\={\i}}{febr\adddot}}, + locmarch = {{mart\={a}}{mart\={a}}}, + locapril = {{apr\={\i}l\={\i}}{apr\adddot}}, + locmay = {{maij\={a}}{maij\={a}}}, + locjune = {{j\={u}nij\={a}}{j\={u}n\adddot}}, + locjuly = {{j\={u}lij\={a}}{j\={u}l\adddot}}, + locaugust = {{august\={a}}{aug\adddot}}, + locseptember = {{septembr\={\i}}{sept\adddot}}, + lococtober = {{oktobr\={\i}}{okt\adddot}}, + locnovember = {{novembr\={\i}}{nov\adddot}}, + locdecember = {{decembr\={\i}}{dec\adddot}}, + langamerican = {{amerik\={a}\c{n}u}{amerik\={a}\c{n}u}}, + langbrazilian = {{braz\={\i}lie\v{s}u}{braz\={\i}lie\v{s}u}}, + langbulgarian = {{bulg\={a}ru}{bulg\={a}ru}}, + langcatalan = {{katal\={a}\c{n}u}{katal\={a}\c{n}u}}, + langcroatian = {{horv\={a}tu}{horv\={a}tu}}, + langczech = {{\v{c}ehu}{\v{c}ehu}}, + langdanish = {{d\={a}\c{n}u}{d\={a}\c{n}u}}, + langdutch = {{n\={\i}derlandie\v{s}u}{n\={\i}derlandie\v{s}u}}, + langenglish = {{ang\c{l}u}{ang\c{l}u}}, + langestonian = {{igau\c{n}u}{igau\c{n}u}}, + langfinnish = {{somu}{somu}}, + langfrench = {{fran\v{c}u}{fran\v{c}u}}, + langgalician = {{galsie\v{s}u}{galsie\v{s}u}}, + langgerman = {{v\={a}cu}{v\={a}cu}}, + langgreek = {{grie\c{k}u}{grie\c{k}u}}, + langhungarian = {{ung\={a}ru}{ung\={a}ru}}, + langitalian = {{it\={a}\c{l}u}{it\={a}\c{l}u}}, + langjapanese = {{jap\={a}\c{n}u}{jap\={a}\c{n}u}}, + langlatin = {{lat\={\i}\c{n}u}{lat\={\i}\c{n}u}}, + langlatvian = {{latvie\v{s}u}{latvie\v{s}u}}, + langnorwegian = {{norv\={e}\v{g}u}{norv\={e}\v{g}u}}, + langpolish = {{po\c{l}u}{po\c{l}u}}, + langportuguese = {{portug\={a}\c{l}u}{portug\={a}\c{l}u}}, + langrussian = {{krievu}{krievu}}, + langslovak = {{slov\={a}ku}{slov\={a}ku}}, + langslovene = {{slov\={e}\c{n}u}{slov\={e}\c{n}u}}, + langspanish = {{sp\={a}\c{n}u}{sp\={a}\c{n}u}}, + langswedish = {{zviedru}{zviedru}}, + langukrainian = {{ukrai\c{n}u}{ukrai\c{n}u}}, + fromamerican = {{no amerik\={a}\c{n}u}{no amerik\={a}\c{n}u}}, + frombrazilian = {{no braz\={\i}lie\v{s}u}{no braz\={\i}lie\v{s}u}}, + frombulgarian = {{no bulg\={a}ru}{no bulg\={a}ru}}, + fromcatalan = {{no katal\={a}\c{n}u}{no katal\={a}\c{n}u}}, + fromcroatian = {{no horv\={a}tu}{no horv\={a}tu}}, + fromczech = {{no \v{c}ehu}{no \v{c}ehu}}, + fromdanish = {{no d\={a}\c{n}u}{no d\={a}\c{n}u}}, + fromdutch = {{no n\={\i}derlandie\v{s}u}{no n\={\i}derlandie\v{s}u}}, + fromenglish = {{no ang\c{l}u}{no ang\c{l}u}}, + fromestonian = {{no igau\c{n}u}{no igau\c{n}u}}, + fromfinnish = {{no somu}{no somu}}, + fromfrench = {{no fran\v{c}u}{no fran\v{c}u}}, + fromgalician = {{no galsie\v{s}u}{no galsie\v{s}u}}, + fromgerman = {{no v\={a}cu}{no v\={a}cu}}, + fromgreek = {{no grie\c{k}u}{no grie\c{k}u}}, + fromhungarian = {{no ung\={a}ru}{no ung\={a}ru}}, + fromitalian = {{no it\={a}\c{l}u}{no it\={a}\c{l}u}}, + fromjapanese = {{no jap\={a}\c{n}u}{no jap\={a}\c{n}u}}, + fromlatin = {{no lat\={\i}\c{n}u}{no lat\={\i}\c{n}u}}, + fromlatvian = {{no latvie\v{s}u}{no latvie\v{s}u}}, + fromnorwegian = {{no norv\={e}\v{g}u}{no norv\={e}\v{g}u}}, + frompolish = {{no po\c{l}u}{no po\c{l}u}}, + fromportuguese = {{no portug\={a}\c{l}u}{no portug\={a}\c{l}u}}, + fromrussian = {{no krievu}{no krievu}}, + fromslovak = {{no slov\={a}ku}{no slov\={a}ku}}, + fromslovene = {{no slov\={e}\c{n}u}{no slov\={e}\c{n}u}}, + fromspanish = {{no sp\={a}\c{n}u}{no sp\={a}\c{n}u}}, + fromswedish = {{no zviedru}{no zviedru}}, + fromukrainian = {{no ukrai\c{n}u}{no ukrai\c{n}u}}, + countryde = {{V\={a}cija}{DE}}, + countryeu = {{Eiropas Savien\={\i}ba}{ES}}, + countryep = {{Eiropas Parlaments}{EP}}, + countryfr = {{Francija}{FR}}, + countryuk = {{Lielbrit\={a}nija}{GB}}, + countryus = {{Amerikas Savienot\={a}s Valstis}{ASV}}, + patent = {{patents}{patents}}, + patentde = {{v\={a}cu patents}{v\={a}cu pat\adddot}}, + patenteu = {{Eiropas patents}{Eiropas pat\adddot}}, + patentfr = {{fran\v{c}u patents}{fran\v{c}u pat\adddot}}, + patentuk = {{ang\c{l}u patents}{ang\c{l}u pat\adddot}}, + patentus = {{ASV patents}{ASV pat\adddot}}, + patreq = {{patenta piepras\={\i}jums}{pat\adddotspace piepras\adddot}}, + patreqde = {{v\={a}cu patenta piepras\={\i}jums}{V\={a}cu pat\adddotspace piepras\adddot}}, + patreqeu = {{Eiropas patenta piepras\={\i}jums}{Eiropas pat\adddotspace piepras\adddot}}, + patreqfr = {{fran\v{c}u patenta piepras\={\i}jums}{fran\v{c}u pat\adddotspace piepras\adddot}}, + patrequk = {{ang\c{l}u patenta piepras\={\i}jums}{ang\c{l}u pat\adddotspace piepras\adddot}}, + patrequs = {{ASV patenta piepras\={\i}jums}{ASV pat\adddotspace piepras\adddot}}, + file = {{fails}{fails}}, + library = {{bibliot\={e}ka}{bibliot\={e}ka}}, + abstract = {{atrefer\={e}jums}{atref\adddot}}, + annotation = {{anot\={a}cija}{anot\={a}cija}}, + commonera = {{m\={u}su \={e}ra}{m\adddotspace \={e}\adddot}}, + beforecommonera = {{pirms m\={u}su \={e}ras}{p\adddotspace m\adddotspace \={e}\adddot}}, + annodomini = {{p\={e}c Kristus dzim\v{s}anas}{AD}}, + beforechrist = {{pirms Kristus dzim\v{s}anas}{BC}}, + circa = {{ap}{ap}}, + spring = {{pavasaris}{pav\adddot}}, + summer = {{vasara}{vas\adddot}}, + autumn = {{rudens}{rud\adddot}}, + winter = {{ziema}{ziema}}, + locspring = {{pavasar\={\i}}{pav\adddot}}, + locsummer = {{vasar\={a}}{vas\adddot}}, + locautumn = {{ruden\={\i}}{rud\adddot}}, + locwinter = {{ziem\={a}}{ziem\={a}}}, + am = {{AM}{AM}}, + pm = {{PM}{PM}}, + dateyear = {{gada}{g\adddot}}, + locdateyear = {{gad\={a}}{g\adddot}}, +} + +\protected\gdef\lbx@lv@mkbibdatemonthwhen#1{% + \ifcase0#1\relax + #1\BibliographyWarning{Month out of range}% + \or\abx@bibmonth{locjanuary}% + \or\abx@bibmonth{locfebruary}% + \or\abx@bibmonth{locmarch}% + \or\abx@bibmonth{locapril}% + \or\abx@bibmonth{locmay}% + \or\abx@bibmonth{locjune}% + \or\abx@bibmonth{locjuly}% + \or\abx@bibmonth{locaugust}% + \or\abx@bibmonth{locseptember}% + \or\abx@bibmonth{lococtober}% + \or\abx@bibmonth{locnovember}% + \or\abx@bibmonth{locdecember}% + \else + #1\BibliographyWarning{Month out of range}% + \fi}% + +\protected\gdef\lbx@lv@mkdaterangetrunc@long#1#2{% + \blx@if@printanytimes{#2} + {\mkdaterangefull{#1}{#2}} + {\lbx@lv@mkdaterangetrunc@long@i{#1}{#2}}} + +\protected\gdef\lbx@lv@mkdaterangetrunc@long@i#1#2{% + \begingroup + \blx@metadateinfo{#2}% + \iffieldundef{#2year} + {\blx@nounit} + {\printtext[#2date]{% + \datecircaprint + \iffieldundef{#2season} + {\ifdateyearsequal{#2}{#2end} + {\iffieldsequal{#2month}{#2endmonth} + {\csuse{mkbibdate#1}{#2year}{}{#2day}} + {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}}} + {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}}}% + {\csuse{mkbibseasondate#1}{#2year}{#2season}}% + \dateeraprint{#2year}% + \dateuncertainprint + \iffieldundef{#2endyear} + {} + {\iffieldequalstr{#2endyear}{} + {\mbox{\bibdaterangesep}} + {\bibdaterangesep + \enddatecircaprint + \iffieldundef{#2season} + {\ifdateyearsequal{#2}{#2end} + {\csuse{mkbibdate#1}{}{#2endmonth}{#2endday}} + {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}} + {\ifdateyearsequal{#2}{#2end} + {\csuse{mkbibseasondate#1}{}{#2endseason}} + {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}}% + \enddateuncertainprint + \dateeraprint{#2endyear}}}}}% + \endgroup} + +\protected\gdef\lbx@lv@mkdaterangetruncextra@long#1#2{% + \blx@if@printanytimes{#2} + {\mkdaterangefullextra{#1}{#2}} + {\lbx@lv@mkdaterangetruncextra@long@i{#1}{#2}}} + +\protected\gdef\lbx@lv@mkdaterangetruncextra@long@i#1#2{% + \begingroup + \blx@metadateinfo{#2}% + \iffieldundef{#2year} + {\blx@nounit} + {\printtext[#2date]{% + \datecircaprint + \iffieldundef{#2season} + {\ifdateyearsequal{#2}{#2end} + {\iffieldsequal{#2month}{#2endmonth} + {\csuse{mkbibdate#1}{#2year}{}{#2day}} + {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}}} + {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}}}% + {\csuse{mkbibseasondate#1}{#2year}{#2season}}% + \dateeraprint{#2year}% + \dateuncertainprint + \iffieldundef{#2endyear} + {\printfield{extradate}} + {\iffieldequalstr{#2endyear}{} + {\printfield{extradate}% + \mbox{\bibdaterangesep}} + {\bibdaterangesep + \enddatecircaprint + \iffieldundef{#2season} + {\ifdateyearsequal{#2}{#2end} + {\csuse{mkbibdate#1}{}{#2endmonth}{#2endday}} + {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}} + {\ifdateyearsequal{#2}{#2end} + {\csuse{mkbibseasondate#1}{}{#2endseason}} + {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}}% + \printfield{extradate}% + \enddateuncertainprint + \dateeraprint{#2endyear}}}}}% + \endgroup} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/lbx/magyar.lbx b/macros/latex/contrib/biblatex/latex/lbx/magyar.lbx new file mode 100644 index 0000000000..f94e50eaa8 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/lbx/magyar.lbx @@ -0,0 +1,733 @@ +\ProvidesFile{magyar.lbx} +[\abx@lbxid] + +\ifundef{\lbx@hu@loadinfo} + {\blx@warning@noline{% + Hungarian localisation module for biblatex loaded.\MessageBreak + This module changes more definitions than usual.\MessageBreak + Please refer to the documentation for hints and\MessageBreak + check the output carefully, especially with non-\MessageBreak + standard styles or customisations to field formats.\MessageBreak + This warning can be disabled by calling\MessageBreak + '\string\BiblatexHungarianWarningOff'\MessageBreak + after 'biblatex' has been loaded, but before\MessageBreak + the localisation is loaded for the first time}% + \global\let\lbx@hu@loadinfo\@empty} + {} + +\DeclareRedundantLanguages{magyar}{magyar,hungarian} + +\DeclareBibliographyExtras{% + \DeclareCapitalPunctuation{.!?}% + \protected\def\bibrangedash{% + \textendash\penalty\hyphenpenalty}% breakable dash + \savecommand\bibdaterangesep + \protected\def\bibdaterangesep{\space\textendash\space}% + \let\finalandcomma=\empty + \let\finalandsemicolon=\empty + \protected\def\mkbibordinal#1{\stripzeros{#1}\adddot}% + \protected\def\mkbibmascord{\mkbibordinal}% + \protected\def\mkbibfemord{\mkbibordinal}% + \protected\def\mkbibneutord{\mkbibordinal}% + \let\lbx@hu@dayrange\@secondoftwo + \protected\def\mkbibdatelong#1#2#3{% + \iffieldundef{#1} + {} + {\iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}% + \iffieldundef{#2}{\thefield{#1}} + {\mkbibordinal{\thefield{#1}}}}% + \iffieldundef{#2}{}{\nobreakspace}}% + \iffieldundef{#2} + {} + {\mkbibmonth{\thefield{#2}}% + \iffieldundef{#3}{}{\nobreakspace}}% + \iffieldundef{#3} + {} + {\lbx@hu@dayrange{\thefield{#3}}{\mkbibordinal{\thefield{#3}}}}% + }% + \protected\def\mkbibdateshort#1#2#3{% + \iffieldundef{#1} + {} + {\iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}% + \iffieldundef{#2}{\thefield{#1}} + {\mkbibordinal{\thefield{#1}}}}% + \iffieldundef{#2}{}{\nobreakspace}}% + \iffieldundef{#2} + {} + {\mkmonthzeros{\thefield{#2}}\adddot + \iffieldundef{#3}{}{\nobreakspace}}% + \iffieldundef{#3} + {} + {\mkdayzeros{\thefield{#3}}\lbx@hu@dayrange{}{\adddot}}% + }% + \let\mkbibseasondatelong\mkbibseasondateshort + \savecommand\mkdaterangecomp + \savecommand\mkdaterangecompextra + \savecommand\mkdaterangeterse + \savecommand\mkdaterangeterseextra + \protected\def\mkdaterangecomp{% + \lbx@hu@mkdaterangetrunc{long}}% + \protected\def\mkdaterangeterse{% + \lbx@hu@mkdaterangetrunc{short}}% + \protected\def\mkdaterangecompextra{% + \lbx@hu@mkdaterangetruncextra{long}}% + \protected\def\mkdaterangeterseextra{% + \lbx@hu@mkdaterangetruncextra{short}}% +\expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{% + \iffieldundef{#1}{} + {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}% + \iffieldundef{#2}{} + {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}% + \iffieldundef{#3}{} + {\printtext{\mktimezeros{\thefield{#3}}}}% + \setunit{}% + \iffieldundef{#4}{} + {\bibtimezonesep + \mkbibtimezone{\thefield{#4}}}}% + \csletcs{mkbibtime12h}{mkbibtime24h}% + \protected\def\mkbibseasondateshort#1#2{% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}% + \iffieldundef{#1}{}{\adddot\space} + \mkbibseason{\thefield{#2}}% + }% + \let\mkbibseasondatelong\mkbibseasondateshort + \savecommand\lbx@lfromlang + \savecommand\lbx@sfromlang + \def\lbx@lfromlang{% + \iflistundef{origlanguage} + {} + {\printlist[lfromoriglanguage]{origlanguage}\space}}% + \def\lbx@sfromlang{% + \iflistundef{origlanguage} + {} + {\printlist[sfromoriglanguage]{origlanguage}\space}}% + % Page numbers and ranges + % convenient shorthand for page range normalisation + \protected\def\lbx@hu@mkdottednormrange{\mknormrange*[\mkbibordinal]}% + % this redefines \mkpageprefix to put the page number as suffix + \savecommand\blx@mkpageprefix + \protected\long\def\blx@mkpageprefix#1[#2]#3{% + \blx@mkpageprefix@i[#2]{#3}% + \ifnumeral{#3} + {\ppspace\bibstring{#1}} + {\ifnumerals{#3} + {\ppspace\bibstring{#1s}} + {\def\pno{\bibstring{#1}}% + \def\ppno{\bibstring{#1s}}}}}% + % NOTE: a few field formats are redefined here, this overrides + % corresponding style and preamble definitions. + % If you want to overwrite the changes made here, use + % \DefineBibliographyExtras{magyar}{...} + % Do not forget to make these changes undone with + % \UndefineBibliographyExtras{magyar}{...} + % to avoid them spilling out later. + \savefieldformat{pages}% + \DeclareFieldFormat{pages}{% + \mkpageprefix[bookpagination][\lbx@hu@mkdottednormrange]{#1}}% + \savefieldformat{postnote}% + \DeclareFieldFormat{postnote}{% + \mkpageprefix[pagination][\lbx@hu@mkdottednormrange]{#1}}% + \savefieldformat{volcitepages}% + \DeclareFieldFormat{volcitepages}{% + \mkpageprefix[pagination][\lbx@hu@mkdottednormrange]{#1}}% + \savefieldformat{multipostnote}% + \DeclareFieldFormat{multipostnote}{% + \mkpageprefix[pagination][\lbx@hu@mkdottednormrange]{#1}}% + \savefieldformat{chapter}% + \DeclareFieldFormat{chapter}{% + \ifnumerals{#1}{\mkbibordinal{#1}}{#1} + \addnbspace + \bibstring{chapter}}% + \savefieldformat{volume}% + \DeclareFieldFormat{volume}{% + \ifnumerals{#1}{\mkbibordinal{#1}}{#1} + \addnbspace + \bibstring{volume}}% + \savefieldformat{part}% + \DeclareFieldFormat{part}{% + \addcomma\space% <- this is *really* bad, don't try this at home + % In general leading or trailing punctuation in field formats should be + % avoided and should instead be dealt with in the appropriate bibmacros. + % The part field is special because its standard definition is '.#1'. + % Additionally, \printfield{part} is called all over the place, so we + % can't simply redefine a macro here. + \ifnumerals{#1}{\mkbibordinal{#1}}{#1}% + \addnbspace + \bibstring{part}}% + \savefieldformat{version}% + \DeclareFieldFormat{version}{% + \ifnumerals{#1}{\mkbibordinal{#1}}{#1} + \addnbspace + \bibstring{version}}% +} + + +\UndeclareBibliographyExtras{% + \restorecommand\bibdaterangesep + \restorecommand\mkdaterangecomp + \restorecommand\mkdaterangecompextra + \restorecommand\mkdaterangeterse + \restorecommand\mkdaterangeterseextra + \restorecommand\lbx@lfromlang + \restorecommand\lbx@sfromlang + \restorecommand\mknormrange + \restorecommand\blx@mkpageprefix + \restorefieldformat{pages}% + \restorefieldformat{postnote}% + \restorefieldformat{volcitepages}% + \restorefieldformat{multipostnote}% + \restorefieldformat{chapter}% + \restorefieldformat{volume}% + \restorefieldformat{part}% + \restorefieldformat{version}% +} + +\DeclareBibliographyStrings{% + bibliography = {{Irodalomjegyz\'ek}{Irodalom}}, + references = {{Hivatkoz\'asok}{Hivatkoz\'asok}}, + shorthands = {{R\"ovid\'it\'esek jegyz\'eke}{R\"ovid\'it\'esek}}, + editor = {{szerkeszt\H{o}}{szerk\adddot}}, + editors = {{szerkeszt\H{o}k}{szerk\adddot}}, + compiler = {{\"ossze\'all\'it\'o}{\"ossze\'all\adddot}}, + compilers = {{\"ossze\'all\'it\'ok}{\"ossze\'all\adddot}}, + redactor = {{sajt\'o al\'a rendez\H{o}}{kiad\adddot}}, + redactors = {{sajt\'o al\'a rendez\H{o}k}{kiad\adddot}}, + reviser = {{korrektor}{korr\adddot}}, + revisers = {{korrektorok}{korr\adddot}}, + founder = {{alap\'it\'o}{alap\adddot}}, + founders = {{alap\'it\'ok}{alap\adddot}}, + %continuator = {{}{}},% FIXME missing + %continuators = {{}{}},% FIXME missing + collaborator = {{k\"ozrem\H{u}k\"od\H{o}}{km\adddot}}, + collaborators = {{k\"ozrem\H{u}k\"od\H{o}k}{km\adddot}}, + translator = {{ford\'it\'o}{ford\adddot}}, + translators = {{ford\'it\'ok}{ford\adddot}}, + commentator = {{komment\'ator}{komm\adddot}}, + commentators = {{komment\'atorok}{komm\adddot}}, + annotator = {{jegyzetek \'ir\'oja}{jegyz\adddot}}, + annotators = {{jegyzetek \'ir\'oi}{jegyz\adddot}}, + commentary = {{komment\'ar}{komm\adddot}}, + annotations = {{jegyzetek}{jegyz\adddot}}, + introduction = {{bevezet\'es}{bev\adddot}}, + foreword = {{el\H{o}sz\'o}{el\H{o}sz\'o}}, + afterword = {{ut\'osz\'o}{ut\'osz\'o}}, + editortr = {{szerkeszt\H{o} \'es ford\'it\'o}% + {szerk\adddotspace \'es ford\adddot}}, + editorstr = {{szerkeszt\H{o}k \'es ford\'it\'ok}% + {szerk\adddotspace \'es ford\adddot}},, + editorco = {{szerkeszt\H{o} \'es komment\'ar}% + {szerk\adddotspace \'es komm\adddot}}, + editorsco = {{szerkeszt\H{o} \'es komment\'ar}% + {szerk\adddotspace \'es komm\adddot}}, + editoran = {{szerkeszt\H{o} \'es jegyzet}% + {szerk\adddotspace \'es jegyz\adddot}}, + editorsan = {{szerkeszt\H{o} \'es jegyzet}% + {szerk\adddotspace \'es jegyz\adddot}}, + editorin = {{szerkeszt\H{o} \'es bevezet\H{o}}% + {szerk\adddotspace \'es bev\adddot}}, + editorsin = {{szerkeszt\H{o}k \'es bevezet\H{o}}% + {szerk\adddotspace \'es bev\adddot}}, + editorfo = {{szerkeszt\H{o} \'es el\H{o}sz\'o}% + {szerk\adddotspace \'es el\H{o}sz\'o}}, + editorsfo = {{szerkeszt\H{o}k \'es el\H{o}sz\'o}% + {szerk\adddotspace \'es el\H{o}sz\'o}}, + editoraf = {{szerkeszt\H{o} \'es ut\'osz\'o} + {szerk\adddotspace \'es ut\'osz\'o}}, + editorsaf = {{szerkeszt\H{o}k \'es ut\'osz\'o}% + {szerk\adddotspace \'es ut\'osz\'o}}, + editortrco = {{szerkeszt\H{o}, ford\'it\'o \'es komment\'ar}% + {szerk\adddot, ford\adddotspace \'es komm\adddot}}, + editorstrco = {{szerkeszt\H{o}, ford\'it\'o \'es komment\'ar}% + {szerk\adddot, ford\adddotspace \'es komm\adddot}}, + editortran = {{szerkeszt\H{o}, ford\'it\'o \'es jegyzet}% + {szerk\adddot, ford\adddotspace \'es jegyz\adddot}}, + editorstran = {{szerkeszt\H{o}, ford\'it\'o \'es jegyzet}% + {szerk\adddot, ford\adddotspace \'es jegyz\adddot}}, + editortrin = {{szerkeszt\H{o}, ford\'it\'o \'es bevezet\H{o}}% + {szerk\adddot, ford\adddotspace \'es bev\adddot}}, + editorstrin = {{szerkeszt\H{o}, ford\'it\'o \'es bevezet\H{o}}% + {szerk\adddot, ford\adddotspace \'es bev\adddot}}, + editortrfo = {{szerkeszt\H{o}, ford\'it\'o \'es el\H{o}sz\'o}% + {szerk\adddot, ford\adddotspace \'es el\H{o}sz\'o}}, + editorstrfo = {{szerkeszt\H{o}, ford\'it\'o \'es el\H{o}sz\'o}% + {szerk\adddot, ford\adddotspace \'es el\H{o}sz\'o}}, + editortraf = {{szerkeszt\H{o}, ford\'it\'o \'es ut\'osz\'o}% + {szerk\adddot, ford\adddotspace \'es ut\'osz\'o}}, + editorstraf = {{szerkeszt\H{o}, ford\'it\'o \'es ut\'osz\'o}% + {szerk\adddot, ford\adddotspace \'es ut\'osz\'o}}, + editorcoin = {{szerkeszt\H{o}, komment\'ar \'es bevezet\H{o}}% + {szerk\adddot, komm\adddotspace \'es bev\adddot}}, + editorscoin = {{szerkeszt\H{o}, komment\'ar \'es bevezet\H{o}}% + {szerk\adddot, komm\adddotspace \'es bev\adddot}}, + editorcofo = {{szerkeszt\H{o}, komment\'ar \'es el\H{o}sz\'o}% + {szerk\adddot, komm\adddotspace \'es el\H{o}sz\'o}}, + editorscofo = {{szerkeszt\H{o}, komment\'ar \'es el\H{o}sz\'o}% + {szerk\adddot, komm\adddotspace \'es el\H{o}sz\'o}}, + editorcoaf = {{szerkeszt\H{o}, komment\'ar \'es ut\'osz\'o}% + {szerk\adddot, komm\adddotspace \'es ut\'osz\'o}}, + editorscoaf = {{szerkeszt\H{o}, komment\'ar \'es ut\'osz\'o}% + {szerk\adddot, komm\adddotspace \'es ut\'osz\'o}}, + editoranin = {{szerkeszt\H{o}, jegyzetek \'es bevezet\H{o}}% + {szerk\adddot, jegyz\adddotspace \'es bev\adddot}}, + editorsanin = {{szerkeszt\H{o}, jegyzetek \'es bevezet\H{o}}% + {szerk\adddot, jegyz\adddotspace \'es bev\adddot}}, + editoranfo = {{szerkeszt\H{o}, jegyzetek \'es el\H{o}sz\'o}% + {szerk\adddot, jegyz\adddotspace \'es el\H{o}sz\'o}}, + editorsanfo = {{szerkeszt\H{o}, jegyzetek \'es el\H{o}sz\'o}% + {szerk\adddot, jegyz\adddotspace \'es el\H{o}sz\'o}}, + editoranaf = {{szerkeszt\H{o}, jegyzetek \'es ut\'osz\'o}% + {szerk\adddot, jegyz\adddotspace \'es ut\'osz\'o}}, + editorsanaf = {{szerkeszt\H{o}, jegyzetek \'es ut\'osz\'o}% + {szerk\adddot, jegyz\adddotspace \'es ut\'osz\'o}}, + editortrcoin = {{szerkeszt\H{o}, ford\'it\'o, komment\'ar \'es bevezet\H{o}}% + {szerk\adddot, ford\adddot, komm\adddotspace \'es bev\adddot}}, + editorstrcoin = {{szerkeszt\H{o}, ford\'it\'o, komment\'ar \'es bevezet\H{o}}% + {szerk\adddot, ford\adddot, komm\adddotspace \'es bev\adddot}}, + editortrcofo = {{szerkeszt\H{o}, ford\'it\'o, komment\'ar \'es el\H{o}sz\'o}% + {szerk\adddot, ford\adddot, komm\adddotspace \'es el\H{o}sz\'o}}, + editorstrcofo = {{szerkeszt\H{o}, ford\'it\'o, komment\'ar \'es el\H{o}sz\'o}% + {szerk\adddot, ford\adddot, komm\adddotspace \'es el\H{o}sz\'o}}, + editortrcoaf = {{szerkeszt\H{o}, ford\'it\'o, komment\'ar \'es ut\'osz\'o}% + {szerk\adddot, ford\adddot, komm\adddotspace \'es ut\'osz\'o}}, + editorstrcoaf = {{szerkeszt\H{o}, ford\'it\'o, komment\'ar \'es ut\'osz\'o}% + {szerk\adddot, ford\adddot, komm\adddotspace \'es ut\'osz\'o}}, + editortranin = {{szerkeszt\H{o}, ford\'it\'o, jegyzetek \'es bevezet\H{o}}% + {szerk\adddot, ford\adddot, jegyz\adddotspace \'es bev\adddot}}, + editorstranin = {{szerkeszt\H{o}, ford\'it\'o, jegyzetek \'es bevezet\H{o}}% + {szerk\adddot, ford\adddot, jegyz\adddotspace \'es bev\adddot}}, + editortranfo = {{szerkeszt\H{o}, ford\'it\'o, jegyzetek \'es el\H{o}sz\'o}% + {szerk\adddot, ford\adddot, jegyz\adddotspace \'es el\H{o}sz\'o}}, + editorstranfo = {{szerkeszt\H{o}, ford\'it\'o, jegyzetek \'es el\H{o}sz\'o}% + {szerk\adddot, ford\adddot, jegyz\adddotspace \'es el\H{o}sz\'o}}, + editortranaf = {{szerkeszt\H{o}, ford\'it\'o, jegyzetek \'es ut\'osz\'o}% + {szerk\adddot, ford\adddot, jegyz\adddotspace \'es ut\'osz\'o}}, + editorstranaf = {{szerkeszt\H{o}, ford\'it\'o, jegyzetek \'es ut\'osz\'o}% + {szerk\adddot, ford\adddot, jegyz\adddotspace \'es ut\'osz\'o}}, + translatorco = {{ford\'it\'o \'es komment\'ar}% + {ford\adddotspace \'es komm\adddot}}, + translatorsco = {{ford\'it\'o \'es komment\'ar}% + {ford\adddotspace \'es komm\adddot}}, + translatoran = {{ford\'it\'o \'es jegyzetek}% + {ford\adddotspace \'es jegyz\adddot}}, + translatorsan = {{ford\'it\'o \'es jegyzetek}% + {ford\adddotspace \'es jegyz\adddot}}, + translatorin = {{ford\'it\'o \'es bevezet\H{o}}% + {ford\adddotspace \'es bev\adddot}}, + translatorsin = {{ford\'it\'o \'es bevezet\H{o}}% + {ford\adddotspace \'es bev\adddot}}, + translatorfo = {{ford\'it\'o \'es el\H{o}sz\'o}% + {ford\adddotspace \'es el\H{o}sz\'o}}, + translatorsfo = {{ford\'it\'o \'es el\H{o}sz\'o}% + {ford\adddotspace \'es el\H{o}sz\'o}}, + translatoraf = {{ford\'it\'o \'es ut\'osz\'o}% + {ford\adddotspace \'es ut\'osz\'o}}, + translatorsaf = {{ford\'it\'o \'es ut\'osz\'o}% + {ford\adddotspace \'es ut\'osz\'o}}, + translatorcoin = {{ford\'it\'o, komment\'ar \'es bevezet\H{o}}% + {ford\adddot, komm\adddotspace \'es bev\adddot}}, + translatorscoin = {{ford\'it\'o, komment\'ar \'es bevezet\H{o}}% + {ford\adddot, komm\adddotspace \'es bev\adddot}}, + translatorcofo = {{ford\'it\'o, komment\'ar \'es el\H{o}sz\'o}% + {ford\adddot, komm\adddotspace \'es el\H{o}sz\'o}}, + translatorscofo = {{ford\'it\'o, komment\'ar \'es el\H{o}sz\'o}% + {ford\adddot, komm\adddotspace \'es el\H{o}sz\'o}}, + translatorcoaf = {{ford\'it\'o, komment\'ar \'es ut\'osz\'o}% + {ford\adddot, komm\adddotspace \'es ut\'osz\'o}}, + translatorscoaf = {{ford\'it\'o, komment\'ar \'es ut\'osz\'o}% + {ford\adddot, komm\adddotspace \'es ut\'osz\'o}}, + translatoranin = {{ford\'it\'o, jegyzetek \'es bevezet\H{o}}% + {ford\adddot, jegyz\adddotspace \'es bev\adddot}}, + translatorsanin = {{ford\'it\'o, jegyzetek \'es bevezet\H{o}}% + {ford\adddot, jegyz\adddotspace \'es bev\adddot}}, + translatoranfo = {{ford\'it\'o, jegyzetek \'es el\H{o}sz\'o}% + {ford\adddot, jegyz\adddotspace \'es el\H{o}sz\'o}}, + translatorsanfo = {{ford\'it\'o, jegyzetek \'es el\H{o}sz\'o}% + {ford\adddot, jegyz\adddotspace \'es el\H{o}sz\'o}}, + translatoranaf = {{ford\'it\'o, jegyzetek \'es ut\'osz\'o}% + {ford\adddot, jegyz\adddotspace \'es ut\'osz\'o}}, + translatorsanaf = {{ford\'it\'o, jegyzetek \'es ut\'osz\'o}% + {ford\adddot, jegyz\adddotspace \'es ut\'osz\'o}}, + organizer = {{szervez\H{o}}{szerv\adddot}}, + organizers = {{szervez\H{o}k}{szerv\adddot}}, + byorganizer = {{szervezte}{szerv\adddot}}, + byauthor = {{\'irta}{\'irta}}, + byeditor = {{szerkesztette}{szerk\adddot}}, + bycompiler = {{\"ossze\'all\'itotta}{\"ossze\'all\adddot}}, + byredactor = {{sajt\'o al\'a rendezte}{kiad\adddot}}, + byreviser = {{jav\'itotta}{jav\adddot}}, + byreviewer = {{b\'ir\'alta}{b\'ir\adddot}}, + byfounder = {{alap\'itotta}{alap\adddot}}, +% bycontinuator = {{}{}},% FIXME missing + bycollaborator = {{k\"ozrem\H{u}k\"od\"ott}{km\adddot}}, + bytranslator = {{\lbx@lfromlang ford\'itotta}{\lbx@sfromlang ford\adddot}}, + bycommentator = {{komment\'alta}{komm\adddot}}, + byannotator = {{jegyzetekkel ell\'atta}{jegyz\adddot}}, + withcommentator = {{komment\'arral ell\'atta}{komm\adddot}}, + withannotator = {{jegyzetekkel ell\'atta}{jegyz\adddot}}, + withintroduction = {{bevezet\H{o}vel ell\'atta}{bev\adddot}}, + withforeword = {{el\H{o}sz\'oval ell\'atta}{el\H{o}sz\'o:}}, + withafterword = {{ut\'osz\'oval ell\'atta}{ut\'osz\'o:}}, + byeditortr = {{szerkesztette \'es \lbx@lfromlang ford\'itotta}% + {szerk\adddotspace \'es \lbx@sfromlang ford\adddot}}, + byeditorco = {{szerkesztette \'es komment\'alta}% + {szerk\adddotspace \'es komm\adddot}}, + byeditoran = {{szerkesztette \'es jegyzetekkel ell\'atta}% + {szerk\adddotspace \'es jegyz\adddot}}, + byeditorin = {{szerkesztette \'es bevezet\H{o}vel ell\'atta}% + {szerk\adddotspace \'es jegyz\adddot}}, + byeditorfo = {{szerkesztette \'es el\H{o}sz\'oval ell\'atta}% + {szerk\adddotspace \'es el\H{o}sz\'o}}, + byeditoraf = {{szerkesztette \'es ut\'osz\'oval ell\'atta}% + {szerk\adddotspace \'es ut\'osz\'o}}, + byeditortrco = {{szerkesztette, \lbx@lfromlang ford\'itotta \'es komment\'alta}% + {szerk\adddot, \lbx@sfromlang ford\adddotspace \'es komm\adddot}}, + byeditortran = {{szerkesztette, \lbx@lfromlang ford\'itotta \'es jegyzetekkel ell\'atta}% + {szerk\adddot, \lbx@sfromlang ford\adddotspace \'es jegyz\adddot}}, + byeditortrin = {{szerkesztette, \lbx@lfromlang ford\'itotta \'es bevezet\H{o}vel ell\'atta}% + {szerk\adddot, \lbx@sfromlang ford\adddotspace \'es bev\adddot}}, + byeditortrfo = {{szerkesztette, \lbx@lfromlang ford\'itotta \'es el\H{o}sz\'oval ell\'atta}% + {szerk\adddot, \lbx@sfromlang ford\adddotspace \'es el\H{o}sz\'o}}, + byeditortraf = {{szerkesztette, \lbx@lfromlang ford\'itotta \'es ut\'osz\'oval ell\'atta}% + {szerk\adddot, \lbx@sfromlang ford\adddotspace \'es ut\'osz\'o}}, + byeditorcoin = {{szerkesztette, komment\'alta \'es bevezet\H{o}vel ell\'atta}% + {szerk\adddot, komm\adddotspace \'es bev\adddot}}, + byeditorcofo = {{szerkesztette, komment\'alta \'es el\H{o}sz\'oval ell\'atta}% + {szerk\adddot, komm\adddotspace \'es el\H{o}sz\'o}}, + byeditorcoaf = {{szerkesztette, komment\'alta \'es ut\'osz\'oval ell\'atta}% + {szerk\adddot, komm\adddotspace \'es ut\'osz\'o}}, + byeditoranin = {{szerkesztette, jegyzetekkel \'es bevezet\H{o}vel ell\'atta}% + {szerk\adddot, jegyz\adddotspace \'es bev\adddot}}, + byeditoranfo = {{szerkesztette, jegyzetekkel \'es el\H{o}sz\'oval ell\'atta}% + {szerk\adddot, jegyz\adddotspace \'es el\H{o}sz\'o}}, + byeditoranaf = {{szerkesztette, jegyzetekkel \'es ut\'osz\'oval ell\'atta}% + {szerk\adddot, jegyz\adddotspace \'es ut\'osz\'o}}, + byeditortrcoin = {{szerkesztette, \lbx@lfromlang ford\'itotta, komment\'alta \'es bevezet\H{o}vel ell\'atta}% + {szerk\adddot, \lbx@sfromlang ford\adddot, komm\adddotspace \'es bev\adddot}}, + byeditortrcofo = {{szerkesztette, \lbx@lfromlang ford\'itotta, komment\'alta \'es el\H{o}sz\'oval ell\'atta}% + {szerk\adddot, \lbx@sfromlang ford\adddot, komm\adddotspace \'es el\H{o}sz\'o}}, + byeditortrcoaf = {{szerkesztette, \lbx@lfromlang ford\'itotta, komment\'alta \'es ut\'osz\'oval ell\'atta}% + {szerk\adddot, \lbx@sfromlang ford\adddot, komm\adddotspace \'es ut\'osz\'o}}, + byeditortranin = {{szerkesztette, \lbx@lfromlang ford\'itotta, jegyzetekkel \'es bevezet\H{o}vel ell\'atta}% + {szerk\adddot, \lbx@sfromlang ford\adddot, jegyz\adddotspace \'es bev\adddot}}, + byeditortranfo = {{szerkesztette, \lbx@lfromlang ford\'itotta, jegyzetekkel \'es el\H{o}sz\'oval ell\'atta}% + {szerk\adddot, \lbx@sfromlang ford\adddot, jegyz\adddotspace \'es el\H{o}sz\'o}}, + byeditortranaf = {{szerkesztette, \lbx@lfromlang ford\'itotta, jegyzetekkel \'es ut\'osz\'oval ell\'atta}% + {szerk\adddot, \lbx@sfromlang ford\adddot, jegyz\adddotspace \'es ut\'osz\'o}}, + bytranslatorco = {{\lbx@lfromlang ford\'itotta \'es komment\'alta}% + {\lbx@sfromlang ford\adddotspace \'es komm\adddot}}, + bytranslatoran = {{\lbx@lfromlang ford\'itotta \'es jegyzetekkel ell\'atta}% + {\lbx@sfromlang ford\adddotspace \'es jegyz\adddot}}, + bytranslatorin = {{\lbx@lfromlang ford\'itotta \'es bevezet\H{o}vel ell\'atta}% + {\lbx@sfromlang ford\adddotspace \'es bev\adddot}}, + bytranslatorfo = {{\lbx@lfromlang ford\'itotta \'es el\H{o}sz\'oval ell\'atta}% + {\lbx@sfromlang ford\adddotspace \'es el\H{o}sz\'o}}, + bytranslatoraf = {{\lbx@lfromlang ford\'itotta \'es ut\'osz\'oval ell\'atta}% + {\lbx@sfromlang ford\adddotspace \'es ut\'osz\'o}}, + bytranslatorcoin = {{\lbx@lfromlang ford\'itotta, komment\'alta \'es bevezet\H{o}vel ell\'atta}% + {\lbx@sfromlang ford\adddot, komm\adddotspace \'es bev\adddot}}, + bytranslatorcofo = {{\lbx@lfromlang ford\'itotta, komment\'alta \'es el\H{o}sz\'oval ell\'atta}% + {\lbx@sfromlang ford\adddot, komm\adddotspace \'es el\H{o}sz\'o}}, + bytranslatorcoaf = {{\lbx@lfromlang ford\'itotta, komment\'alta \'es ut\'osz\'oval ell\'atta}% + {\lbx@sfromlang ford\adddot, komm\adddotspace \'es ut\'osz\'o}}, + bytranslatoranin = {{\lbx@lfromlang ford\'itotta, jegyzetekkel \'es bevezet\H{o}vel ell\'atta}% + {\lbx@sfromlang ford\adddot, jegyz\adddotspace \'es bev\adddot}}, + bytranslatoranfo = {{\lbx@lfromlang ford\'itotta, jegyzetekkel \'es el\H{o}sz\'oval ell\'atta}% + {\lbx@sfromlang ford\adddot, jegyz\adddotspace \'es el\H{o}sz\'o}}, + bytranslatoranaf = {{\lbx@lfromlang ford\'itotta, jegyzetekkel \'es ut\'osz\'oval ell\'atta}% + {\lbx@sfromlang ford\adddot, jegyz\adddotspace \'es ut\'osz\'o}}, + and = {{\'es}{\'es}}, + andothers = {{\'es m\'asok}{\'es tsai\adddot}}, + andmore = {{et\addabbrvspace al\adddot}{et\addabbrvspace al\adddot}}, + volume = {{k\"otet}{k\"ot\adddot}}, + volumes = {{k\"otetek}{k\"ot\adddot}}, + involumes = {{}{}}, + jourvol = {{\'evfolyam}{\'evf\adddot}}, + jourser = {{sorozat}{sor\adddot}}, + book = {{k\"onyv}{k\"onyv}}, + part = {{r\'esz}{r\'esz}}, + issue = {{sz\'am}{sz\adddot}}, + newseries = {{\'uj sorozat}{\'uj sor\adddot}}, + oldseries = {{r\'egi sorozat}{r\'egi sor\adddot}}, + edition = {{kiad\'as}{kiad\adddot}}, + reprint = {{ut\'annyom\'as}{ut\'anny\adddot}}, + reprintof = {{ut\'annyom\'asa}{ut\'anny\adddot}},% FIXME swap word order + reprintas = {{ut\'annyom\'as c\'ime}{ut\'anny\adddotspace c\'ime}}, +% reprintfrom = {{}{}},% FIXME need example + translationof = {{ford\'it\'asa}{ford\adddot}},% FIXME swap word order + translationas = {{ford\'it\'as c\'ime}{ford\adddotspace c\'ime}}, +% translationfrom = {{}{}},% FIXME need example + reviewof = {{recenzi\'oja}{rec\adddot}},% FIXME swap word order + origpubas = {{eredeti c\'ime}{ered\adddotspace c\'im}}, + origpubin = {{eredeti kiad\'as}{ered\adddotspace kiad\adddotspace}}, +% astitle = {{}{}},% FIXME need example +% bypublisher = {{\addcomma}{\addcomma}},% FIXME: this is a cludge that can not be guaranteed to work in most situations, so it stays commented out + nodate = {{\'ev n\'elk\"ul}{\'e\adddotspace n\adddot}}, + page = {{oldal}{old\adddot}}, + pages = {{oldal}{old\adddot}}, + column = {{has\'ab}{has\adddot}}, + columns = {{has\'ab}{has\adddot}}, + line = {{sor}{sor}}, + lines = {{sor}{sor}}, + verse = {{versszak}{vsz\adddot}}, + verses = {{versszak}{vsz\adddot}}, + section = {{paragrafus}{\S}}, + sections = {{paragrafus}{\S\S}}, + paragraph = {{bekezd\'es}{bek\adddot}}, + paragraphs = {{bekezd\'es}{bek\adddot}}, + pagetotal = {{oldal}{old\adddot}}, + pagetotals = {{oldal}{old\adddot}}, + columntotal = {{has\'ab}{has\adddot}}, + columntotals = {{has\'ab}{has\adddot}}, + linetotal = {{sor}{sor}}, + linetotals = {{sor}{sor}}, + versetotal = {{versszak}{vsz\adddot}}, + versetotals = {{versszak}{vsz\adddot}}, + sectiontotal = {{paragrafus}{\S}}, + sectiontotals = {{paragrafus}{\S}}, + paragraphtotal = {{bekezd\'es}{bek\adddot}}, + paragraphtotals = {{bekezd\'es}{bek\adddot}}, + in = {{}{}}, +% inseries = {{}{}},% FIXME need example +% ofseries = {{}{}},% FIXME need example + number = {{sz\'am}{sz\adddot}}, + chapter = {{fejezet}{fej\adddot}}, + bathesis = {{szakdolgozat}{szakd\adddot}}, + mathesis = {{diplomaterv}{dipl\adddot}}, + phdthesis = {{disszert\'aci\'o}{dissz\adddot}}, + candthesis = {{disszert\'aci\'o}{dissz\adddot}}, + resreport = {{kutat\'asi jelent\'es}{kut\adddotspace jel\adddot}}, + techreport = {{technikai jelent\'es}{techn\adddotspace jel\adddot}}, + software = {{szoftver}{szoftver}}, + datacd = {{CD-ROM}{CD-ROM}}, + audiocd = {{audio CD}{CD}}, + version = {{verzi\'o}{verzi\'o}}, + url = {{c\'im}{c\'im}}, + urlfrom = {{el\'erhet\H{o}}{el\'erh\adddot}}, + urlseen = {{el\'er\'es d\'atuma}{el\'er\'es d\'atuma}}, + inpreparation = {{el\H{o}k\'esz\'it\'es alatt}{el\H{o}k\adddotspace alatt}}, + submitted = {{bek\"uld\"ott}{bek\"uld\"ott}}, + forthcoming = {{elfogadott}{elfogadott}}, + inpress = {{nyomd\'aban}{nyomd\adddot}}, + prepublished = {{preprint}{preprint}}, + citedas = {{tov\'abbiakban}{tov\'abbiakban}}, + thiscite = {{itt}{itt}}, + seenote = {{l\'asd}{ld\adddot}}, + quotedin = {{id\'ezte}{id\'ezte}}, + idem = {{ugyan\H{o}}{u\H{o}}}, + idemsf = {{ugyan\H{o}}{u\H{o}}}, + idemsm = {{ugyan\H{o}}{u\H{o}}}, + idemsn = {{ugyan\H{o}}{u\H{o}}}, + idempf = {{ugyan\H{o}k}{u\H{o}k}}, + idempm = {{ugyan\H{o}k}{u\H{o}k}}, + idempn = {{ugyan\H{o}k}{u\H{o}k}}, + idempp = {{ugyan\H{o}k}{u\H{o}k}}, + ibidem = {{ugyanitt}{uitt}}, + opcit = {{id\'ezett m\H{u}}{i\adddotspace m\adddot}}, + loccit = {{id\'ezett hely}{i\adddotspace h\adddot}}, + confer = {{v\"o\adddot}{v\"o\adddot}}, + sequens = {{sk\adddot}{sk\adddot}}, + sequentes = {{skk\adddot}{skk\adddot}}, + passim = {{passim}{pass\adddot}}, + see = {{l\'asd}{ld\adddot}}, + seealso = {{l\'asd m\'eg}{ld\adddotspace m\'eg}}, + backrefpage = {{hivatkoz\'asi oldal}{hiv\adddotspace old\adddot}}, + backrefpages = {{hivatkoz\'asi oldalak}{hiv\adddotspace old\adddot}}, + january = {{janu\'ar}{jan\adddot}}, + february = {{febru\'ar}{febr\adddot}}, + march = {{m\'arcius}{m\'arc\adddot}}, + april = {{\'aprilis}{\'apr\adddot}}, + may = {{m\'ajus}{m\'aj\adddot}}, + june = {{j\'unius}{j\'un\adddot}}, + july = {{j\'ulius}{j\'ul\adddot}}, + august = {{augusztus}{aug\adddot}}, + september = {{szeptember}{szept\adddot}}, + october = {{okt\'ober}{okt\adddot}}, + november = {{november}{nov\adddot}}, + december = {{december}{dec\adddot}}, + langamerican = {{angol}{angol}}, + langbrazilian = {{brazil}{brazil}}, + langbulgarian = {{bolg\'ar}{bolg\'ar}}, + langcatalan = {{katal\'an}{katal\'an}}, + langcroatian = {{horv\'at}{horv\'at}}, + langczech = {{cseh}{cseh}}, + langdanish = {{d\'an}{d\'an}}, + langdutch = {{holland}{holland}}, + langenglish = {{angol}{angol}}, + langestonian = {{\'eszt}{\'eszt}}, + langfinnish = {{finn}{finn}}, + langfrench = {{francia}{francia}}, + langgalician = {{gal\'iciai}{gal\'iciai}}, + langgerman = {{n\'emet}{n\'emet}}, + langgreek = {{g\"or\"og}{g\"or\"og}}, + langhungarian = {{magyar}{magyar}}, + langitalian = {{olasz}{olasz}}, + langjapanese = {{jap\'an}{jap\'an}}, + langlatin = {{latin}{latin}}, + langlatvian = {{lett}{lett}}, + langnorwegian = {{norv\'eg}{norv\'eg}}, + langpolish = {{lengyel}{lengyel}}, + langportuguese = {{portug\'al}{portug\'al}}, + langrussian = {{orosz}{orosz}}, + langslovak = {{szlov\'ak}{szlov\'ak}}, + langslovene = {{szlov\'en}{szlov\'en}}, + langspanish = {{spanyol}{spanyol}}, + langswedish = {{sv\'ed}{sv\'ed}}, + langukrainian = {{ukr\'an}{ukr\'an}}, + fromamerican = {{angolb\'ol}{angolb\'ol}}, + frombrazilian = {{brazilb\'ol}{brazilb\'ol}}, + frombulgarian = {{brazilb\'ol}{brazilb\'ol}}, + fromcatalan = {{katal\'anb\'ol}{katal\'anb\'ol}}, + fromcroatian = {{horv\'atb\'ol}{horv\'atb\'ol}}, + fromczech = {{csehb\H{o}l}{csehb\H{o}l}}, + fromdanish = {{d\'anb\'ol}{d\'anb\'ol}}, + fromdutch = {{hollandb\'ol}{hollandb\'ol}}, + fromenglish = {{angolb\'ol}{angolb\'ol}}, + fromestonian = {{\'esztb\H{o}l}{\'esztb\H{o}l}}, + fromfinnish = {{finnb\H{o}l}{finnb\H{o}l}}, + fromfrench = {{franci\'ab\'ol}{franci\'ab\'ol}}, + fromgalician = {{gal\'iciaib\'ol}{gal\'iciaib\'ol}}, + fromgerman = {{n\'emetb\H{o}l}{n\'emetb\H{o}l}}, + fromgreek = {{g\"or\"ogb\H{o}l}{g\"or\"ogb\H{o}l}}, + fromhungarian = {{magyarb\'ol}{magyarb\'ol}}, + fromitalian = {{olaszb\'ol}{olaszb\'ol}}, + fromjapanese = {{jap\'anb\'ol}{jap\'anb\'ol}}, + fromlatin = {{latinb\'ol}{latinb\'ol}}, + fromlatvian = {{lettb\H{o}l}{lettb\H{o}l}}, + fromnorwegian = {{norv\'egb\'ol}{norv\'egb\'ol}}, + frompolish = {{lengyelb\H{o}l}{lengyelb\H{o}l}}, + fromportuguese = {{portug\'alb\'ol}{portug\'alb\'ol}}, + fromrussian = {{oroszb\'ol}{oroszb\'ol}}, + fromslovak = {{szlov\'akb\'ol}{szlov\'akb\'ol}}, + fromslovene = {{szlov\'enb\'ol}{szlov\'enb\'ol}}, + fromspanish = {{spanyolb\'ol}{spanyolb\'ol}}, + fromswedish = {{sv\'edb\H{o}l}{sv\'edb\H{o}l}}, + fromukrainian = {{ukr\'anb\'ol}{ukr\'anb\'ol}}, + countryde = {{N\'emetorsz\'ag}{DE}}, + countryep = {{Eur\'opai Uni\'o}{EP}}, + countryeu = {{Eur\'opai Uni\'o}{EU}}, + countryfr = {{Franciaorsz\'ag}{FR}}, + countryuk = {{Egyes\"ult Kir\'alys\'ag}{GB}}, + countryus = {{Amerikai Egyes\"ult \'Allamok}{US}}, + patent = {{szabadalom}{szabadalom}}, + patentde = {{n\'emet szabadalom}{n\'em\adddotspace szabadalom}}, + patenteu = {{eur\'opai szabadalom}{eur\adddotspace szabadalom}}, + patentfr = {{francia szabadalom}{fr\adddotspace szabadalom}}, + patentuk = {{brit szabadalom}{brit szabadalom}}, + patentus = {{amerikai szabadalom}{USA szabadalom}}, + patreq = {{szabadalmi k\'erelem}{szabad\adddotspace k\'erelem}}, + patreqde = {{n\'emet szabadalmi k\'erelem}{n\'em\adddotspace szabad\adddotspace k\'erelem}}, + patreqeu = {{eur\'opai szabadalmi k\'erelem}{eur\adddotspace szabad\adddotspace k\'erelem}}, + patreqfr = {{francia szabadalmi k\'erelem}{fr\adddotspace szabad\adddotspace k\'erelem}}, + patrequk = {{brit szabadalmi k\'erelem}{brit szabad\adddotspace k\'erelem}}, + patrequs = {{amerikai szabadalmi k\'erelem}{amerikai szabad\adddotspace k\'erelem}}, + file = {{f\'ajl}{f\'ajl}}, + library = {{k\"onyvt\'ar}{k\"onyvt\'ar}}, + abstract = {{kivonat}{kivonat}}, + annotation = {{jegyzet}{jegyzet}}, + commonera = {{id\H{o}sz\'am\'it\'asunk szerint}{i\adddotspace sz\adddot}}, + beforecommonera = {{id\H{o}sz\'am\'it\'asunk el\H{o}tt}{i\adddotspace e\adddot}}, + annodomini = {{Krisztus ut\'an}{Kr\adddotspace u\adddot}}, + beforechrist = {{Krisztus el\H{o}tt}{Kr\adddotspace e\adddot}}, + circa = {{k\"or\"ulbel\"ul}{kb\adddot}}, + spring = {{tavasz}{tavasz}}, + summer = {{ny\'ar}{ny\'ar}}, + autumn = {{\H{o}sz}{\H{o}sz}}, + winter = {{t\'el}{t\'el}}, + am = {{d\'elel\H{o}tt}{de\adddot}}, + pm = {{d\'elut\'an}{du\adddot}}, +} + +\protected\gdef\lbx@hu@dayrange@i#1{% + \ifboolexpr{not test {\iffieldundef{#1endyear}} + and test {\iffieldsequal{#1year}{#1endyear}} + and test {\iffieldsequal{#1month}{#1endmonth}} + and (test {\iffieldundef{#1hour}} + or not togl {blx@#1dateusetime})}} + +\protected\gdef\lbx@hu@mkdaterangetrunc#1#2{% + \blx@if@printanytimes{#2} + {\mkdaterangefull{#1}{#2}} + {\lbx@hu@mkdaterangetrunc@i{#1}{#2}}} + +\protected\gdef\lbx@hu@mkdaterangetrunc@i#1#2{% + \begingroup + \blx@metadateinfo{#2}% + \edef\lbx@hu@dayrange{\lbx@hu@dayrange@i{#2}}% + \iffieldundef{#2year} + {} + {\printtext[#2date]{% + \datecircaprint + \iffieldundef{#2season} + {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}% + \blx@printtime{#2}{}}% + {\csuse{mkbibseasondate#1}{#2year}{#2season}}% + \dateeraprint{#2year}% + \dateuncertainprint + \iffieldundef{#2endyear} + {} + {\iffieldequalstr{#2endyear}{} + {\mbox{\bibdaterangesep}} + {\lbx@hu@dayrange{\bibrangedash}{\bibdaterangesep}% + \let\lbx@hu@dayrange\@secondoftwo + \enddatecircaprint + \iffieldundef{#2season} + {\iffieldsequal{#2year}{#2endyear} + {\iffieldsequal{#2month}{#2endmonth} + {\csuse{mkbibdate#1}{}{}{#2endday}} + {\csuse{mkbibdate#1}{}{#2endmonth}{#2endday}}} + {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}% + \blx@printtime{#2}{end}} + {\iffieldsequal{#2year}{#2endyear} + {\csuse{mkbibseasondate#1}{}{#2endseason}} + {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}}% + \enddateuncertainprint + \dateeraprint{#2endyear}}}}}% + \endgroup} + +\protected\gdef\lbx@hu@mkdaterangetruncextra#1#2{% + \blx@if@printanytimes{#2} + {\mkdaterangefullextra{#1}{#2}} + {\lbx@hu@mkdaterangetruncextra@i{#1}{#2}}} + +\protected\gdef\lbx@hu@mkdaterangetruncextra@i#1#2{% + \begingroup + \blx@metadateinfo{#2}% + \edef\lbx@hu@dayrange{\lbx@hu@dayrange@i{#2}}% + \iffieldundef{#2year} + {} + {\printtext[#2date]{% + \datecircaprint + \iffieldundef{#2season} + {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}% + \blx@printtime{#2}{}}% + {\csuse{mkbibseasondate#1}{#2year}{#2season}}% + \dateeraprint{#2year}% + \dateuncertainprint + \iffieldundef{#2endyear} + {\printfield{extradate}} + {\iffieldequalstr{#2endyear}{} + {\printfield{extradate}% + \mbox{\bibdaterangesep}} + {\lbx@hu@dayrange{\bibrangedash}{\bibdaterangesep}% + \let\lbx@hu@dayrange\@secondoftwo + \enddatecircaprint + \iffieldundef{#2season} + {\iffieldsequal{#2year}{#2endyear} + {\iffieldsequal{#2month}{#2endmonth} + {\csuse{mkbibdate#1}{}{}{#2endday}} + {\csuse{mkbibdate#1}{}{#2endmonth}{#2endday}}} + {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}% + \blx@printtime{#2}{end}} + {\iffieldsequal{#2year}{#2endyear} + {\csuse{mkbibseasondate#1}{}{#2endseason}} + {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}}% + \printfield{extradate}% + \enddateuncertainprint + \dateeraprint{#2endyear}}}}}% + \endgroup} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/lbx/naustrian.lbx b/macros/latex/contrib/biblatex/latex/lbx/naustrian.lbx new file mode 100644 index 0000000000..bcd2181858 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/lbx/naustrian.lbx @@ -0,0 +1,22 @@ +\ProvidesFile{naustrian.lbx} +[\abx@lbxid] + +\InheritBibliographyExtras{german} + +\DeclareBibliographyStrings{% + inherit = {german}, + citedas = {{im Folgenden zitiert als}{im Folgenden zit\adddotspace als}}, + january = {{J\"anner}{J\"an\adddot}}, +% alternative spelling, uncomment to enable: +% section = {{Paragraf}{\S}}, +% sections = {{Paragrafen}{\S\S}}, +% sectiontotal = {{Paragraf}{\S}}, +% sectiontotals = {{Paragrafen}{\S\S}}, +} + +\DeclareHyphenationExceptions{% + Pa-tent-an-mel-dung + Pa-tent-an-meld +} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/lbx/newzealand.lbx b/macros/latex/contrib/biblatex/latex/lbx/newzealand.lbx new file mode 100644 index 0000000000..bef64fed9a --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/lbx/newzealand.lbx @@ -0,0 +1,30 @@ +\ProvidesFile{newzealand.lbx} +[\abx@lbxid] + +\InheritBibliographyExtras{british} +\DeclareBibliographyExtras{% + \protected\def\mkbibdatelong#1#2#3{% + \iffieldundef{#3} + {} + {\stripzeros{\thefield{#3}}% + \iffieldundef{#2}{}{\nobreakspace}}% + \iffieldundef{#2} + {} + {\mkbibmonth{\thefield{#2}}% + \iffieldundef{#1}{}{\space}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}% + \protected\def\mkbibseasondateshort#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% + \protected\def\mkbibseasondatelong#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% +} + +\InheritBibliographyStrings{english} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/lbx/ngerman.lbx b/macros/latex/contrib/biblatex/latex/lbx/ngerman.lbx new file mode 100644 index 0000000000..e8e26aedf6 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/lbx/ngerman.lbx @@ -0,0 +1,21 @@ +\ProvidesFile{ngerman.lbx} +[\abx@lbxid] + +\InheritBibliographyExtras{german} + +\DeclareBibliographyStrings{% + inherit = {german}, + citedas = {{im Folgenden zitiert als}{im Folgenden zit\adddotspace als}}, +% alternative spelling, uncomment to enable: +% section = {{Paragraf}{\S}}, +% sections = {{Paragrafen}{\S\S}}, +% sectiontotal = {{Paragraf}{\S}}, +% sectiontotals = {{Paragrafen}{\S\S}}, +} + +\DeclareHyphenationExceptions{% + Pa-tent-an-mel-dung + Pa-tent-an-meld +} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/lbx/norsk.lbx b/macros/latex/contrib/biblatex/latex/lbx/norsk.lbx new file mode 100644 index 0000000000..c03ddca2da --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/lbx/norsk.lbx @@ -0,0 +1,532 @@ +\ProvidesFile{norsk.lbx} +[\abx@lbxid] + +\DeclareRedundantLanguages{norsk}{norwegian,nynorsk} + +\DeclareBibliographyExtras{% + \protected\def\bibrangedash{% + \textendash\penalty\hyphenpenalty}% breakable dash + \let\finalandcomma=\empty + \let\finalandsemicolon=\empty + \protected\def\mkbibordinal#1{\stripzeros{#1}\adddot}% + \protected\def\mkbibmascord{\mkbibordinal}% + \protected\def\mkbibfemord{\mkbibordinal}% + \protected\def\mkbibneutord{\mkbibordinal}% + \protected\def\mkbibdatelong#1#2#3{% + \iffieldundef{#3} + {} + {\mkbibordinal{\thefield{#3}}% + \iffieldundef{#2}{}{\nobreakspace}}% + \iffieldundef{#2} + {} + {\mkbibmonth{\thefield{#2}}% + \iffieldundef{#1}{}{\space}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}% + \protected\def\mkbibdateshort#1#2#3{% + \iffieldundef{#3} + {} + {\mkdayzeros{\thefield{#3}}\adddot}% + \iffieldundef{#2} + {} + {\mkmonthzeros{\thefield{#2}}% + \iffieldundef{#1}{}{\adddot}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}% + \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{% + \iffieldundef{#1}{} + {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}% + \iffieldundef{#2}{} + {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}% + \iffieldundef{#3}{} + {\printtext{\mktimezeros{\thefield{#3}}}}% + \setunit{}% + \iffieldundef{#4}{} + {\bibtimezonesep + \mkbibtimezone{\thefield{#4}}}}% + \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{% + \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep + \forcezerosmdt{\thefield{#2}}% + \iffieldundef{#3}{} + {\bibtimesep + \forcezerosmdt{\thefield{#3}}}% + \space + \ifnumless{\thefield{#1}}{12} + {\bibstring{am}} + {\bibstring{pm}}% + \iffieldundef{#4}{} + {\space\bibtimezonesep + \parentext{\mkbibtimezone{\thefield{#4}}}}}% + \protected\def\mkbibseasondateshort#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% + \protected\def\mkbibseasondatelong#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% +} + +\DeclareBibliographyStrings{% + bibliography = {{Bibliografi}{Bibliografi}}, + references = {{Referanser}{Referanser}}, + shorthands = {{Forkortelser}{Forkortelser}}, + editor = {{redakt{\o}r}{red\adddot}}, + editors = {{redakt{\o}rer}{red\adddot}}, + compiler = {{kompilator}{komp\adddot}}, + compilers = {{kompilatorer}{komp\adddot}}, + redactor = {{bearbeidelse}{bearb\adddot}}, + redactors = {{bearbeidelse}{bearb\adddot}}, + reviser = {{revisjon}{rev\adddot}}, + revisers = {{revisjon}{rev\adddot}}, + founder = {{grunnlegger}{grunnl\adddot}}, + founders = {{grunnleggere}{grunnl\adddot}}, + continuator = {{videref{\o}ring}{videref\adddot}}, + continuators = {{videref{\o}ring}{videref\adddot}}, + collaborator = {{samarbeid}{samarb\adddot}}, + collaborators = {{samarbeid}{samarb\adddot}}, + translator = {{oversetter}{overs\adddot}}, + translators = {{oversettere}{overs\adddot}}, + commentator = {{kommentarer}{komm\adddot}}, + commentators = {{kommentarer}{komm\adddot}}, + annotator = {{forklaringer}{forkl\adddot}}, + annotators = {{forklaringer}{forkl\adddot}}, + commentary = {{kommentarer}{komm\adddot}}, + annotations = {{forklaringer}{forkl\adddot}}, + introduction = {{innledning}{innl\adddot}}, + foreword = {{forord}{forord}}, + afterword = {{etterord}{etterord}}, + editortr = {{redakt{\o}r og oversetter}% + {red\adddotspace og overs\adddot}}, + editorstr = {{redakt{\o}rer og oversettere}% + {red\adddotspace og overs\adddot}}, + editorco = {{redakt{\o}r og kommentarer} + {red\adddotspace og komm\adddot}}, + editorsco = {{redakt{\o}rer og kommentarer} + {red\adddotspace og komm\adddot}}, + editoran = {{redakt{\o}r og forklaringer}% + {red\adddotspace og forkl\adddot}}, + editorsan = {{redakt{\o}rer og forklaringer}% + {red\adddotspace og forkl\adddot}}, + editorin = {{redakt{\o}r og innledning}% + {red\adddotspace og innl\adddot}}, + editorsin = {{redakt{\o}rer og innledning}% + {red\adddotspace og innl\adddot}}, + editorfo = {{redakt{\o}r og forord}% + {red\adddotspace og forord}}, + editorsfo = {{redakt{\o}rer og forord}% + {red\adddotspace og forord}}, + editoraf = {{redakt{\o}r og etterord}% + {red\adddotspace og etterord}}, + editorsaf = {{redakt{\o}rer og etterord}% + {red\adddotspace og etterord}}, + editortrco = {{redakt{\o}r, oversetter og kommentarer}% + {red.,\addabbrvspace overs\adddotspace og komm\adddot}}, + editorstrco = {{redakt{\o}rer, oversettere og kommentarer}% + {red.,\addabbrvspace overs\adddotspace og komm\adddot}}, + editortran = {{redakt{\o}r, oversetter og forklaringer}% + {red.,\addabbrvspace overs\adddotspace og forkl\adddot}}, + editorstran = {{redakt{\o}rer, oversettere og forklaringer}% + {red.,\addabbrvspace overs\adddotspace og forkl\adddot}}, + editortrin = {{redakt{\o}r, oversetter og innledning}% + {red.,\addabbrvspace overs\adddotspace og innl\adddot}}, + editorstrin = {{redakt{\o}rer, oversettere og innledning}% + {red.,\addabbrvspace overs\adddotspace og innl\adddot}}, + editortrfo = {{redakt{\o}r, oversetter og forord}% + {red.,\addabbrvspace overs\adddotspace og forord}}, + editorstrfo = {{redakt{\o}rer, oversettere og forord}% + {red.,\addabbrvspace overs\adddotspace og forord}}, + editortraf = {{redakt{\o}r, oversetter og etterord}% + {red.,\addabbrvspace overs\adddotspace og etterord}}, + editorstraf = {{redakt{\o}rer, oversettere og etterord}% + {red.,\addabbrvspace overs\adddotspace og etterord}}, + editorcoin = {{redakt{\o}r, kommentarer og innledning}% + {red.,\addabbrvspace komm\adddotspace og innl\adddot}}, + editorscoin = {{redakt{\o}rer, kommentarer og innledning}% + {red.,\addabbrvspace komm\adddotspace og innl\adddot}}, + editorcofo = {{redakt{\o}r, kommentarer og forord}% + {red.,\addabbrvspace komm\adddotspace og forord}}, + editorscofo = {{redakt{\o}rer, kommentarer og forord}% + {red.,\addabbrvspace komm\adddotspace og forord}}, + editorcoaf = {{redakt{\o}r, kommentarer og etterord}% + {red.,\addabbrvspace komm\adddotspace og etterord}}, + editorscoaf = {{redakt{\o}rer, kommentarer og etterord}% + {red.,\addabbrvspace komm\adddotspace og etterord}}, + editoranin = {{redakt{\o}r, forklaringer og innledning}% + {red.,\addabbrvspace forkl\adddotspace og innl\adddot}}, + editorsanin = {{redakt{\o}rer, forklaringer og innledning}% + {red.,\addabbrvspace forkl\adddotspace og innl\adddot}}, + editoranfo = {{redakt{\o}r, forklaringer og forord}% + {red.,\addabbrvspace forkl\adddotspace og forord}}, + editorsanfo = {{redakt{\o}rer, forklaringer og forord}% + {red.,\addabbrvspace forkl\adddotspace og forord}}, + editoranaf = {{redakt{\o}r, forklaringer og etterord}% + {red.,\addabbrvspace forkl\adddotspace og etterord}}, + editorsanaf = {{redakt{\o}rer, forklaringer og etterord}% + {red.,\addabbrvspace forkl\adddotspace og etterord}}, + editortrcoin = {{redakt{\o}r, oversetter, kommentarer og innledning}% + {red.,\addabbrvspace overs., komm\adddotspace og innl\adddot}}, + editorstrcoin = {{redakt{\o}rer, oversettere, kommentarer og innledning}% + {red.,\addabbrvspace overs., komm\adddotspace og innl\adddot}}, + editortrcofo = {{redakt{\o}r, oversetter, kommentarer og forord}% + {red.,\addabbrvspace overs., komm\adddotspace og forord}}, + editorstrcofo = {{redakt{\o}rer, oversettere, kommentarer og forord}% + {red.,\addabbrvspace overs., komm\adddotspace og forord}}, + editortrcoaf = {{redakt{\o}r, oversetter, kommentarer og etterord}% + {red.,\addabbrvspace overs., komm\adddotspace og etterord}}, + editorstrcoaf = {{redakt{\o}rer, oversettere, kommentarer og etterord}% + {red.,\addabbrvspace overs., komm\adddotspace og etterord}}, + editortranin = {{redakt{\o}r, oversetter, forklaringer og innledning}% + {red.,\addabbrvspace overs., forkl\adddotspace og innl\adddot}}, + editorstranin = {{redakt{\o}rer, oversettere, forklaringer og innledning}% + {red.,\addabbrvspace overs., forkl\adddotspace og innl\adddot}}, + editortranfo = {{redakt{\o}r, oversetter, forklaringer og forord}% + {red.,\addabbrvspace overs., forkl\adddotspace og forord}}, + editorstranfo = {{redakt{\o}rer, oversettere, forklaringer og forord}% + {red.,\addabbrvspace overs., forkl\adddotspace og forord}}, + editortranaf = {{redakt{\o}r, oversetter, forklaringer og etterord}% + {red.,\addabbrvspace overs., forkl\adddotspace og etterord}}, + editorstranaf = {{redakt{\o}rer, oversettere, forklaringer og etterord}% + {red.,\addabbrvspace overs., forkl\adddotspace og etterord}}, + translatorco = {{oversetter og kommentarer}% + {overs\adddotspace og komm\adddot}}, + translatorsco = {{oversettere og kommentarer}% + {overs\adddotspace og komm\adddot}}, + translatoran = {{oversetter og forklaringer}% + {overs\adddotspace og forkl\adddot}}, + translatorsan = {{oversettere og forklaringer}% + {overs\adddotspace og forkl\adddot}}, + translatorin = {{oversetter og innledning}% + {overs\adddotspace og innl\adddot}}, + translatorsin = {{oversettere og innledning}% + {overs\adddotspace og innl\adddot}}, + translatorfo = {{oversetter og forord}% + {overs\adddotspace og forord}}, + translatorsfo = {{oversettere og forord}% + {overs\adddotspace og forord}}, + translatoraf = {{oversetter og etterord}% + {overs\adddotspace og etterord}}, + translatorsaf = {{oversettere og etterord}% + {overs\adddotspace og etterord}}, + translatorcoin = {{oversetter, kommentarer og innledning}% + {overs., komm\adddotspace og innl\adddot}}, + translatorscoin = {{oversettere, kommentarer og innledning}% + {overs., komm\adddotspace og innl\adddot}}, + translatorcofo = {{oversetter, kommentarer og forord}% + {overs., komm\adddotspace og forord}}, + translatorscofo = {{oversettere, kommentarer og forord}% + {overs., komm\adddotspace og forord}}, + translatorcoaf = {{oversetter, kommentarer og etterord}% + {overs., komm\adddotspace og etterord}}, + translatorscoaf = {{oversettere, kommentarer og etterord}% + {overs., komm\adddotspace og etterord}}, + translatoranin = {{oversetter, forklaringer og innledning}% + {overs., forkl\adddotspace og innl\adddot}}, + translatorsanin = {{oversettere, forklaringer og innledning}% + {overs., forkl\adddotspace og innl\adddot}}, + translatoranfo = {{oversetter, forklaringer og forord}% + {overs., forkl\adddotspace og forord}}, + translatorsanfo = {{oversettere, forklaringer og forord}% + {overs., forkl\adddotspace og forord}}, + translatoranaf = {{oversetter, forklaringer og etterord}% + {overs., forkl\adddotspace og etterord}}, + translatorsanaf = {{oversettere, forklaringer og etterord}% + {overs., forkl\adddotspace og etterord}}, + organizer = {{organisator}{org\adddot}}, + organizers = {{organisatorer}{org\adddot}}, + byorganizer = {{organisert av}{org\adddotspace av}}, + byauthor = {{av}{av}}, + byeditor = {{redigert av}{red\adddotspace av}}, + bycompiler = {{kompilert av}{komp\adddotspace av}}, + byredactor = {{bearbeidet av}{bearb\adddotspace av}}, + byreviser = {{revidert av}{rev\adddotspace av}}, + byreviewer = {{kritikk ved}{krit\adddotspace ved}}, + byfounder = {{grunnlagt av}{grunnl\adddotspace av}}, + bycontinuator = {{videref{\o}rt av}{videref\adddotspace av}}, + bycollaborator = {{i samarbeid med}{i samarb\adddotspace med}}, + bytranslator = {{oversatt \lbx@lfromlang\ av}{overs\adddot\ \lbx@sfromlang\ av}}, + bycommentator = {{kommentert av}{komm\adddot\ av}}, + byannotator = {{forklart av}{forkl\adddot\ av}}, + withcommentator = {{med kommentarer av}{med komm\adddot\ av}}, + withannotator = {{med forklaringer av}{med forkl\adddot\ av}}, + withintroduction = {{med innledning av}{med innl\adddot\ av}}, + withforeword = {{med forord av}{med forord av}}, + withafterword = {{med etterord av}{med etterord av}}, + byeditortr = {{redigert og oversatt \lbx@lfromlang\ av}% + {red\adddotspace og overs\adddot\ \lbx@sfromlang\ av}}, + byeditorco = {{redigert og kommentert av}% + {red\adddotspace og komm\adddot\ av}}, + byeditoran = {{redigert og forklart av}% + {red\adddotspace og forkl\adddot\ av}}, + byeditorin = {{redigert, med innledning, av}% + {red.,\addabbrvspace med innl., av}}, + byeditorfo = {{redigert, med forord, av}% + {red.,\addabbrvspace med forord, av}}, + byeditoraf = {{redigert, med etterord, av}% + {red.,\addabbrvspace med etterord, av}}, + byeditortrco = {{redigert, oversatt \lbx@lfromlang\ og kommentert av}% + {red.,\addabbrvspace overs\adddot\ \lbx@sfromlang\ og komm\adddot\ av}}, + byeditortran = {{redigert, oversatt \lbx@lfromlang\ og forklart av}% + {red.,\addabbrvspace overs\adddot\ \lbx@sfromlang\ og forkl\adddot\ av}}, + byeditortrin = {{redigert og oversatt \lbx@lfromlang, med innledning, av}% + {red\adddotspace og overs\adddot\ \lbx@sfromlang, med innl., av}}, + byeditortrfo = {{redigert og oversatt \lbx@lfromlang, med forord, av}% + {red\adddotspace og overs\adddot\ \lbx@sfromlang, med forord, av}}, + byeditortraf = {{redigert og oversatt \lbx@lfromlang, med etterord, av}% + {red\adddotspace og overs\adddot\ \lbx@sfromlang, med etterord, av}}, + byeditorcoin = {{redigert og kommentert, med innledning, av}% + {red\adddotspace og komm., med innl., av}}, + byeditorcofo = {{redigert og kommentert, med forord, av}% + {red\adddotspace og komm., med forord, av}}, + byeditorcoaf = {{redigert og kommentert, med etterord, av}% + {red\adddotspace og komm., med etterord, av}}, + byeditoranin = {{redigert og forklart, med innledning, av}% + {red\adddotspace og forkl., med innl., av}}, + byeditoranfo = {{redigert og forklart, med forord, av}% + {red\adddotspace og forkl., med forord, av}}, + byeditoranaf = {{redigert og forklart, med etterord, av}% + {red\adddotspace og forkl., med etterord, av}}, + byeditortrcoin = {{redigert, oversatt \lbx@lfromlang\ og kommentert, med innledning, av}% + {red.,\addabbrvspace overs\adddot\ \lbx@sfromlang\ og komm., med innl., av}}, + byeditortrcofo = {{redigert, oversatt \lbx@lfromlang\ og kommentert, med forord, av}% + {red.,\addabbrvspace overs\adddot\ \lbx@sfromlang\ og komm., med forord, av}}, + byeditortrcoaf = {{redigert, oversatt \lbx@lfromlang\ og kommentert, med etterord, av}% + {red.,\addabbrvspace overs\adddot\ \lbx@sfromlang\ og komm., med etterord, av}}, + byeditortranin = {{redigert, oversatt \lbx@lfromlang\ og forklart, med innledning, av}% + {red.,\addabbrvspace overs\adddot\ \lbx@sfromlang\ og forkl., med innl., av}}, + byeditortranfo = {{redigert, oversatt \lbx@lfromlang\ og forklart, med forord, av}% + {red.,\addabbrvspace overs\adddot\ \lbx@sfromlang\ og forkl., med forord, av}}, + byeditortranaf = {{redigert, oversatt \lbx@lfromlang\ og forklart, med etterord, av}% + {red.,\addabbrvspace overs\adddot\ \lbx@sfromlang\ og forkl., med etterord, av}}, + bytranslatorco = {{oversatt \lbx@lfromlang\ og kommentert av}% + {overs\adddot\ \lbx@sfromlang\ og komm\adddot\ av}}, + bytranslatoran = {{oversatt \lbx@lfromlang\ og forklart av}% + {overs\adddot\ \lbx@sfromlang\ og forkl\adddot\ av}}, + bytranslatorin = {{oversatt \lbx@lfromlang, med innledning, av}% + {overs\adddot\ \lbx@sfromlang, med innl., av}}, + bytranslatorfo = {{oversatt \lbx@lfromlang, med forord, av}% + {overs\adddot\ \lbx@sfromlang, med forord, av}}, + bytranslatoraf = {{oversatt \lbx@lfromlang, med etterord, av}% + {overs\adddot\ \lbx@sfromlang, med etterord, av}}, + bytranslatorcoin = {{oversatt \lbx@lfromlang\ og kommentert, med innledning, av}% + {overs\adddot\ \lbx@sfromlang\ og komm., med innl., av}}, + bytranslatorcofo = {{oversatt \lbx@lfromlang\ og kommentert, med forord, av}% + {overs\adddot\ \lbx@sfromlang\ og komm., med forord, av}}, + bytranslatorcoaf = {{oversatt \lbx@lfromlang\ og kommentert, med etterord, av}% + {overs\adddot\ \lbx@sfromlang\ og komm., med etterord, av}}, + bytranslatoranin = {{oversatt \lbx@lfromlang\ og forklart, med innledning, av}% + {overs\adddot\ \lbx@sfromlang\ og forkl., med innl., av}}, + bytranslatoranfo = {{oversatt \lbx@lfromlang\ og forklart, med forord, av}% + {overs\adddot\ \lbx@sfromlang\ og forkl., med forord, av}}, + bytranslatoranaf = {{oversatt \lbx@lfromlang\ og forklart, med etterord, av}% + {overs\adddot\ \lbx@sfromlang\ og forkl., med etterord, av}}, + and = {{og}{og}}, + andothers = {{med flere}{mfl\adddot}}, + andmore = {{med mer}{m.m\adddot}}, + volume = {{bind}{bd\adddot}}, + volumes = {{bind}{bd\adddot}}, + involumes = {{i}{i}}, + jourvol = {{{\aa}rgang}{{\aa}rg\adddot}}, + jourser = {{serie}{ser\adddot}}, + book = {{bok}{bok}}, + part = {{del}{del}}, + issue = {{nummer}{nr\adddot}}, + newseries = {{ny serie}{ny ser\adddot}}, + oldseries = {{gammel serie}{gl\adddotspace ser\adddot}}, + edition = {{utgave}{utg\adddot}}, + reprint = {{opptrykk}{opptr\adddot}}, + reprintof = {{opptrykk av}{opptr\adddotspace av}}, + reprintas = {{trykt om som}{tr\adddotspace om som}}, + reprintfrom = {{opptrykk fra}{opptr\adddotspace fra}}, + translationof = {{oversettelse av}{overs\adddotspace av}}, + translationas = {{oversatt som}{overs\adddotspace som}}, + translationfrom = {{oversatt fra}{overs\adddotspace fra}}, + reviewof = {{kritikk av}{krit\adddotspace av}}, + origpubas = {{opprinnelig utgitt som}{oppr\adddot\ utg\adddot\ som}}, + origpubin = {{opprinnelig utgitt i}{oppr\adddot\ utg\adddot\ i}}, + astitle = {{som}{som}}, + bypublisher = {{av}{av}}, + nodate = {{udatert}{udatert}}, + page = {{side}{s\adddot}}, + pages = {{sider}{s\adddot}}, + column = {{spalte}{sp\adddot}}, + columns = {{spalter}{sp\adddot}}, + line = {{linje}{l\adddot}}, + lines = {{linjer}{l\adddot}}, + verse = {{vers}{v\adddot}}, + verses = {{vers}{v\adddot}}, + section = {{avsnitt}{avsn\adddot}}, + sections = {{avsnitt}{avsn\adddot}}, + paragraph = {{avsnitt}{avsn\adddot}}, + paragraphs = {{avsnitt}{avsn\adddot}}, + pagetotal = {{side}{s\adddot}}, + pagetotals = {{sider}{s\adddot}}, + columntotal = {{spalte}{sp\adddot}}, + columntotals = {{spalter}{sp\adddot}}, + linetotal = {{linje}{l\adddot}}, + linetotals = {{linjer}{l\adddot}}, + versetotal = {{vers}{v\adddot}}, + versetotals = {{vers}{v\adddot}}, + sectiontotal = {{avsnitt}{avsn\adddot}}, + sectiontotals = {{avsnitt}{avsn\adddot}}, + paragraphtotal = {{avsnitt}{avsn\adddot}}, + paragraphtotals = {{avsnitt}{avsn\adddot}}, + in = {{i}{i}}, + inseries = {{i}{i}}, + ofseries = {{av}{av}}, + number = {{nummer}{nr\adddot}}, + chapter = {{kapittel}{kap\adddot}}, +% bathesis = {{}{}},% FIXME: missing + mathesis = {{masteroppgave}{masteroppg\adddot}}, + phdthesis = {{ph.d.-avhandling}{ph.d.-avh\adddot}}, + candthesis = {{hovedoppgave}{hovedoppg\adddot}}, + resreport = {{forskningsrapport}{forskn.rapp\adddot}}, + techreport = {{teknisk rapport}{tekn\adddotspace rapp\adddot}}, + software = {{programvare}{programvare}}, + datacd = {{data-cd}{data-cd}}, + audiocd = {{lyd-cd}{lyd-cd}}, + version = {{versjon}{versjon}}, + url = {{adresse}{adresse}}, + urlfrom = {{tilgjengelig fra}{tilgj\adddotspace fra}}, + urlseen = {{sjekket}{sjekket}}, + inpreparation = {{under utarbeidelse}{under utarb\adddot}}, + submitted = {{innsendt}{innsendt}}, + forthcoming = {{under utgivelse}{under utgiv\adddot}}, + inpress = {{i trykken}{i trykken}}, + prepublished = {{prepublisert}{prepubl\adddot}}, + citedas = {{heretter sitert som}{heretter sit\adddotspace som}}, + thiscite = {{her}{her}}, + seenote = {{se note}{se n\adddot}}, + quotedin = {{sitert i}{sit\adddotspace i}}, + idem = {{den samme}{d.s\adddot}}, + idemsf = {{den samme}{d.s\adddot}}, + idemsm = {{den samme}{d.s\adddot}}, + idemsn = {{det samme}{d.s\adddot}}, + idempf = {{de samme}{d.s\adddot}}, + idempm = {{de samme}{d.s\adddot}}, + idempn = {{de samme}{d.s\adddot}}, + idempp = {{de samme}{d.s\adddot}}, + ibidem = {{samme sted}{sst\adddot}}, + opcit = {{samme sted}{sst\adddot}}, + loccit = {{samme sted}{sst\adddot}}, + confer = {{jamf{\o}r}{jf\adddot}}, + sequens = {{f\adddot}{f\adddot}}, + sequentes = {{ff\adddot}{ff\adddot}}, + passim = {{passim}{pass\adddot}}, + see = {{se}{se}}, + seealso = {{se ogs{\aa}}{se ogs{\aa}}}, + backrefpage = {{se side}{se s\adddot}}, + backrefpages = {{se sidene}{se s\adddot}}, + january = {{januar}{jan\adddot}}, + february = {{februar}{feb\adddot}}, + march = {{mars}{mar\adddot}}, + april = {{april}{apr\adddot}}, + may = {{mai}{mai}}, + june = {{juni}{jun\adddot}}, + july = {{juli}{jul\adddot}}, + august = {{august}{aug\adddot}}, + september = {{september}{sep\adddot}}, + october = {{oktober}{okt\adddot}}, + november = {{november}{nov\adddot}}, + december = {{desember}{des\adddot}}, + langamerican = {{amerikansk-engelsk}{amerikansk-engelsk}}, + langbrazilian = {{brasiliansk-portugisisk}{brasiliansk-portugisisk}}, + langbulgarian = {{bulgarsk}{bulgarsk}}, + langcatalan = {{katalansk}{katalansk}}, + langcroatian = {{kroatisk}{kroatisk}}, + langczech = {{tsjekkisk}{tsjekkisk}}, + langdanish = {{dansk}{dansk}}, + langdutch = {{nederlandsk}{nederlandsk}}, + langenglish = {{engelsk}{engelsk}}, + langestonian = {{estisk}{estisk}}, + langfinnish = {{finsk}{finsk}}, + langfrench = {{fransk}{fransk}}, + langgalician = {{galisisk}{galisisk}}, + langgerman = {{tysk}{tysk}}, + langgreek = {{gresk}{gresk}}, +% langhungarian = {{}{}}, % FIXME: missing + langitalian = {{italiensk}{italiensk}}, + langjapanese = {{japansk}{japansk}}, + langlatin = {{latin}{latin}}, +% langlatvian = {{}{}},% FIXME: missing + langnorwegian = {{norsk}{norsk}}, + langpolish = {{polsk}{polsk}}, + langportuguese = {{portugisisk}{portugisisk}}, + langrussian = {{russisk}{russisk}}, + langslovak = {{slovakisk}{slovakisk}}, + langslovene = {{slovensk}{slovensk}}, + langspanish = {{spansk}{spansk}}, + langswedish = {{svensk}{svensk}}, + langukrainian = {{ukrainsk}{ukrainsk}}, + fromamerican = {{fra amerikansk-engelsk}{fra amerikansk-engelsk}}, + frombrazilian = {{fra brasiliansk-portugisisk}{fra brasiliansk-portugisisk}}, + frombulgarian = {{fra bulgarsk}{fra bulgarsk}}, + fromcatalan = {{fra katalansk}{fra katalansk}}, + fromcroatian = {{fra kroatisk}{fra kroatisk}}, + fromczech = {{fra tsjekkisk}{fra tsjekkisk}}, + fromdanish = {{fra dansk}{fra dansk}}, + fromdutch = {{fra nederlandsk}{fra nederlandsk}}, + fromenglish = {{fra engelsk}{fra engelsk}}, + fromestonian = {{fra estisk}{fra estisk}}, + fromfinnish = {{fra finsk}{fra finsk}}, + fromfrench = {{fra fransk}{fra fransk}}, + fromgalician = {{fra galisisk}{fra galisisk}}, + fromgerman = {{fra tysk}{fra tysk}}, + fromgreek = {{fra gresk}{fra gresk}}, +% fromhungarian = {{}{}}, % FIXME: missing + fromitalian = {{fra italiensk}{fra italiensk}}, + fromjapanese = {{fra japansk}{fra japansk}}, + fromlatin = {{fra latin}{fra latin}}, +% fromlatvian = {{}{}},% FIXME: missing + fromnorwegian = {{fra norsk}{fra norsk}}, + frompolish = {{fra polsk}{fra polsk}}, + fromportuguese = {{fra portugisisk}{fra portugisisk}}, + fromrussian = {{fra russisk}{fra russisk}}, + fromslovak = {{fra slovakisk}{fra slovakisk}}, + fromslovene = {{fra slovensk}{fra slovensk}}, + fromspanish = {{fra spansk}{fra spansk}}, + fromswedish = {{fra svensk}{fra svensk}}, + fromukrainian = {{fra ukrainsk}{fra ukrainsk}}, + countryde = {{Tyskland}{DE}}, + countryeu = {{Den europeiske union}{EU}}, + countryep = {{Den europeiske union}{EP}}, + countryfr = {{Frankrike}{FR}}, + countryuk = {{Storbritannia}{GB}}, + countryus = {{USA}{US}}, + patent = {{patent}{patent}}, + patentde = {{tysk patent}{ty\adddotspace pat\adddot}}, + patenteu = {{europeisk patent}{eur\adddotspace pat\adddot}}, + patentfr = {{fransk patent}{fr\adddotspace pat\adddot}}, + patentuk = {{britisk patent}{br\adddotspace pat\adddot}}, + patentus = {{amerikansk patent}{am\adddotspace pat\adddot}}, + patreq = {{patents{\o}knad}{pat.s{\o}kn\adddot}}, + patreqde = {{tysk patents{\o}knad}% + {ty\adddotspace pat.s{\o}kn\adddot}}, + patreqeu = {{europeisk patents{\o}knad}% + {eur\adddotspace pat.s{\o}kn\adddot}}, + patreqfr = {{fransk patents{\o}knad}% + {fr\adddotspace pat.s{\o}kn\adddot}}, + patrequk = {{britisk patents{\o}knad}% + {br\adddotspace pat.s{\o}kn\adddot}}, + patrequs = {{amerikansk patents{\o}knad}% + {am\adddotspace pat.s{\o}kn\adddot}}, + file = {{fil}{fil}}, + library = {{bibliotek}{bibliotek}}, + abstract = {{sammendrag}{sammendrag}}, + annotation = {{merknad}{merknad}}, + commonera = {{etter v{\aa}r tidsregning}{evt\adddot}}, + beforecommonera = {{f{\o}r v{\aa}r tidsregning}{fvt\adddot}}, + annodomini = {{etter Kristus}{e\adddot Kr\adddot}}, + beforechrist = {{f{\o}r Kristus}{f\adddot Kr\adddot}}, + circa = {{cirka}{ca\adddot}}, + spring = {{v{\aa}r}{v{\aa}r}}, + summer = {{sommer}{sommer}}, + autumn = {{h{\o}st}{h{\o}st}}, + winter = {{vinter}{vinter}}, + am = {{a\adddot m\adddot}{a\adddot m\adddot}}, + pm = {{p\adddot m\adddot}{p\adddot m\adddot}}, +} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/lbx/nswissgerman.lbx b/macros/latex/contrib/biblatex/latex/lbx/nswissgerman.lbx new file mode 100644 index 0000000000..f54a078b26 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/lbx/nswissgerman.lbx @@ -0,0 +1,30 @@ +\ProvidesFile{nswissgerman.lbx} +[\abx@lbxid] + +\InheritBibliographyExtras{german} + +% Swiss time sep is a dot +\DeclareBibliographyExtras{% + \protected\def\bibtimesep{.}% +} + +% One point where Swiss German spelling +% differs from Austrian and German German +% is the (non-)use of \ss +\DeclareBibliographyStrings{% + inherit = {german}, + citedas = {{im Folgenden zitiert als}{im Folgenden zit\adddotspace als}}, + countryuk = {{Grossbritannien}{GB}}, +% alternative spelling, uncomment to enable: +% section = {{Paragraf}{\S}}, +% sections = {{Paragrafen}{\S\S}}, +% sectiontotal = {{Paragraf}{\S}}, +% sectiontotals = {{Paragrafen}{\S\S}}, +} + +\DeclareHyphenationExceptions{% + Pa-tent-an-mel-dung + Pa-tent-an-meld +} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/lbx/nynorsk.lbx b/macros/latex/contrib/biblatex/latex/lbx/nynorsk.lbx new file mode 100644 index 0000000000..39ebe59e36 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/lbx/nynorsk.lbx @@ -0,0 +1,317 @@ +\ProvidesFile{nynorsk.lbx} +[\abx@lbxid] + +% Remarks by translators: +% +% Since "nynorsk" inherits "norsk" (bokm\aa l) only strings that are +% different in the two languages are included. In particular, this +% means that no language or month name strings are listed below. +% + +\InheritBibliographyExtras{norsk} + +\DeclareBibliographyStrings{% + inherit = {norsk}, + references = {{Referansar}{Referansar}}, + shorthands = {{Forkortingar}{Forkortingar}}, + editors = {{redakt{\o}rar}{red\adddot}}, + compilers = {{kompilatorar}{komp\adddot}}, + redactor = {{omarbeiding}{omarb\adddot}}, + redactors = {{omarbeiding}{omarb\adddot}}, + founder = {{grunnleggjar}{grunnl\adddot}}, + founders = {{grunnleggjarar}{grunnl\adddot}}, + continuator = {{vidaref{\o}ring}{vidaref\adddot}}, + continuators = {{vidaref{\o}ring}{vidaref\adddot}}, + translator = {{omsetjar}{oms\adddot}}, + translators = {{omsetjarar}{oms\adddot}}, + commentator = {{kommentarar}{komm\adddot}}, + commentators = {{kommentarar}{komm\adddot}}, + annotator = {{forklaringar}{forkl\adddot}}, + annotators = {{forklaringar}{forkl\adddot}}, + commentary = {{kommentarar}{komm\adddot}}, + annotations = {{forklaringar}{forkl\adddot}}, + introduction = {{innleiing}{innl\adddot}}, + foreword = {{f{\o}reord}{f{\o}reord}}, + editortr = {{redakt{\o}r og omsetjar}% + {red\adddotspace og oms\adddot}}, + editorstr = {{redakt{\o}rar og omsetjarar}% + {red\adddotspace og oms\adddot}}, + editorco = {{redakt{\o}r og kommentarar}% + {red\adddotspace og komm\adddot}}, + editorsco = {{redakt{\o}rar og kommentarar}% + {red\adddotspace og komm\adddot}}, + editoran = {{redakt{\o}r og forklaringar}% + {red\adddotspace og forkl\adddot}}, + editorsan = {{redakt{\o}rar og forklaringar}% + {red\adddotspace og forkl\adddot}}, + editorin = {{redakt{\o}r og innleiing}% + {red\adddotspace og innl\adddot}}, + editorsin = {{redakt{\o}rar og innleiing}% + {red\adddotspace og innl\adddot}}, + editorfo = {{redakt{\o}r og f{\o}reord}% + {red\adddotspace og f{\o}reord}}, + editorsfo = {{redakt{\o}rar og f{\o}reord}% + {red\adddotspace og f{\o}reord}}, + editorsaf = {{redakt{\o}rar og etterord}% + {red\adddotspace og etterord}}, + editortrco = {{redakt{\o}r, omsetjar og kommentarar}% + {red.,\addabbrvspace oms\adddotspace og komm\adddot}}, + editorstrco = {{redakt{\o}rar, omsetjarar og kommentarar}% + {red.,\addabbrvspace oms\adddotspace og komm\adddot}}, + editortran = {{redakt{\o}r, omsetjar og forklaringar}% + {red.,\addabbrvspace oms\adddotspace og forkl\adddot}}, + editorstran = {{redakt{\o}rar, omsetjarar og forklaringar}% + {red.,\addabbrvspace oms\adddotspace og forkl\adddot}}, + editortrin = {{redakt{\o}r, omsetjar og innleiing}% + {red.,\addabbrvspace oms\adddotspace og innl\adddot}}, + editorstrin = {{redakt{\o}rar, omsetjarar og innleiing}% + {red.,\addabbrvspace oms\adddotspace og innl\adddot}}, + editortrfo = {{redakt{\o}r, omsetjar og f{\o}reord}% + {red.,\addabbrvspace oms\adddotspace og f{\o}reord}}, + editorstrfo = {{redakt{\o}rar, omsetjarar og f{\o}reord}% + {red.,\addabbrvspace oms\adddotspace og f{\o}reord}}, + editortraf = {{redakt{\o}r, omsetjar og etterord}% + {red.,\addabbrvspace oms\adddotspace og etterord}}, + editorstraf = {{redakt{\o}rar, omsetjarar og etterord}% + {red.,\addabbrvspace oms\adddotspace og etterord}}, + editorcoin = {{redakt{\o}r, kommentarar og innleiing}% + {red.,\addabbrvspace komm\adddotspace og innl\adddot}}, + editorscoin = {{redakt{\o}rar, kommentarar og innleiing}% + {red.,\addabbrvspace komm\adddotspace og innl\adddot}}, + editorcofo = {{redakt{\o}r, kommentarar og f{\o}reord}% + {red.,\addabbrvspace komm\adddotspace og f{\o}reord}}, + editorscofo = {{redakt{\o}rar, kommentarar og f{\o}reord}% + {red.,\addabbrvspace komm\adddotspace og f{\o}reord}}, + editorcoaf = {{redakt{\o}r, kommentarar og etterord}% + {red.,\addabbrvspace komm\adddotspace og etterord}}, + editorscoaf = {{redakt{\o}rar, kommentarar og etterord}% + {red.,\addabbrvspace komm\adddotspace og etterord}}, + editoranin = {{redakt{\o}r, forklaringar og innleiing}% + {red.,\addabbrvspace forkl\adddotspace og innl\adddot}}, + editorsanin = {{redakt{\o}rar, forklaringar og innleiing}% + {red.,\addabbrvspace forkl\adddotspace og innl\adddot}}, + editoranfo = {{redakt{\o}r, forklaringar og f{\o}reord}% + {red.,\addabbrvspace forkl\adddotspace og f{\o}reord}}, + editorsanfo = {{redakt{\o}rar, forklaringar og f{\o}reord}% + {red.,\addabbrvspace forkl\adddotspace og f{\o}reord}}, + editoranaf = {{redakt{\o}r, forklaringar og etterord}% + {red.,\addabbrvspace forkl\adddotspace og etterord}}, + editorsanaf = {{redakt{\o}rar, forklaringar og etterord}% + {red.,\addabbrvspace forkl\adddotspace og etterord}}, + editortrcoin = {{redakt{\o}r, omsetjar, kommentarar og innleiing}% + {red.,\addabbrvspace oms., komm\adddotspace og innl\adddot}}, + editorstrcoin = {{redakt{\o}rar, omsetjarar, kommentarar og innleiing}% + {red.,\addabbrvspace oms., komm\adddotspace og innl\adddot}}, + editortrcofo = {{redakt{\o}r, omsetjar, kommentarar og f{\o}reord}% + {red.,\addabbrvspace oms., komm\adddotspace og f{\o}reord}}, + editorstrcofo = {{redakt{\o}rar, omsetjarar, kommentarar og f{\o}reord}% + {red.,\addabbrvspace oms., komm\adddotspace og f{\o}reord}}, + editortrcoaf = {{redakt{\o}r, omsetjar, kommentarar og etterord}% + {red.,\addabbrvspace oms., komm\adddotspace og etterord}}, + editorstrcoaf = {{redakt{\o}rar, omsetjarar, kommentarar og etterord}% + {red.,\addabbrvspace oms., komm\adddotspace og etterord}}, + editortranin = {{redakt{\o}r, omsetjar, forklaringar og innleiing}% + {red.,\addabbrvspace oms., forkl\adddotspace og innl\adddot}}, + editorstranin = {{redakt{\o}rar, omsetjarar, forklaringar og innleiing}% + {red.,\addabbrvspace oms., forkl\adddotspace og innl\adddot}}, + editortranfo = {{redakt{\o}r, omsetjar, forklaringar og f{\o}reord}% + {red.,\addabbrvspace oms., forkl\adddotspace og f{\o}reord}}, + editorstranfo = {{redakt{\o}rar, omsetjarar, forklaringar og f{\o}reord}% + {red.,\addabbrvspace oms., forkl\adddotspace og f{\o}reord}}, + editortranaf = {{redakt{\o}r, omsetjar, forklaringar og etterord}% + {red.,\addabbrvspace oms., forkl\adddotspace og etterord}}, + editorstranaf = {{redakt{\o}rar, omsetjarar, forklaringar og etterord}% + {red.,\addabbrvspace oms., forkl\adddotspace og etterord}}, + translatorco = {{omsetjar og kommentarar}% + {oms\adddotspace og komm\adddot}}, + translatorsco = {{omsetjarar og kommentarar}% + {oms\adddotspace og komm\adddot}}, + translatoran = {{omsetjar og forklaringar}% + {oms\adddotspace og forkl\adddot}}, + translatorsan = {{omsetjarar og forklaringar}% + {oms\adddotspace og forkl\adddot}}, + translatorin = {{omsetjar og innleiing}% + {oms\adddotspace og innl\adddot}}, + translatorsin = {{omsetjarar og innleiing}% + {oms\adddotspace og innl\adddot}}, + translatorfo = {{omsetjar og f{\o}reord}% + {oms\adddotspace og f{\o}reord}}, + translatorsfo = {{omsetjarar og f{\o}reord}% + {oms\adddotspace og f{\o}reord}}, + translatoraf = {{omsetjar og etterord}% + {oms\adddotspace og etterord}}, + translatorsaf = {{omsetjarar og etterord}% + {oms\adddotspace og etterord}}, + translatorcoin = {{omsetjar, kommentarar og innleiing}% + {oms., komm\adddotspace og innl\adddot}}, + translatorscoin = {{omsetjarar, kommentarar og innleiing}% + {oms., komm\adddotspace og innl\adddot}}, + translatorcofo = {{omsetjar, kommentarar og f{\o}reord}% + {oms., komm\adddotspace og f{\o}reord}}, + translatorscofo = {{omsetjarar, kommentarar og f{\o}reord}% + {oms., komm\adddotspace og f{\o}reord}}, + translatorcoaf = {{omsetjar, kommentarar og etterord}% + {oms., komm\adddotspace og etterord}}, + translatorscoaf = {{omsetjarar, kommentarar og etterord}% + {oms., komm\adddotspace og etterord}}, + translatoranin = {{omsetjar, forklaringar og innleiing}% + {oms., forkl\adddotspace og innl\adddot}}, + translatorsanin = {{omsetjarar, forklaringar og innleiing}% + {oms., forkl\adddotspace og innl\adddot}}, + translatoranfo = {{omsetjar, forklaringar og f{\o}reord}% + {oms., forkl\adddotspace og f{\o}reord}}, + translatorsanfo = {{omsetjarar, forklaringar og f{\o}reord}% + {oms., forkl\adddotspace og f{\o}reord}}, + translatoranaf = {{omsetjar, forklaringar og etterord}% + {oms., forkl\adddotspace og etterord}}, + translatorsanaf = {{omsetjarar, forklaringar og etterord}% + {oms., forkl\adddotspace og etterord}}, + organizers = {{organisatorar}{org\adddot}}, + byredactor = {{omarbeidd av}{omarb\adddotspace av}}, + bycontinuator = {{vidaref{\o}rt av}{vidaref\adddotspace av}}, + bytranslator = {{omsett \lbx@lfromlang\ av}% + {oms\adddot\ \lbx@sfromlang\ av}}, + withcommentator = {{med kommentarar av}{med komm\adddot\ av}}, + withannotator = {{med forklaringar av}{med forkl\adddot\ av}}, + withintroduction = {{med innleiing av}{med innl\adddot\ av}}, + withforeword = {{med f{\o}reord av}{med f{\o}reord av}}, + byeditortr = {{redigert og omsett \lbx@lfromlang\ av}% + {red\adddotspace og oms\adddot\ \lbx@sfromlang\ av}}, + byeditorin = {{redigert, med innleiing, av}% + {red.,\addabbrvspace med innl., av}}, + byeditorfo = {{redigert, med f{\o}reord, av}% + {red.,\addabbrvspace med f{\o}reord, av}}, + byeditortrco = {{redigert, omsett \lbx@lfromlang\ og kommentert av}% + {red.,\addabbrvspace oms\adddot\ \lbx@sfromlang\ og komm\adddot\ av}}, + byeditortran = {{redigert, omsett \lbx@lfromlang\ og forklart av}% + {red.,\addabbrvspace oms\adddot\ \lbx@sfromlang\ og forkl\adddot\ av}}, + byeditortrin = {{redigert og omsett \lbx@lfromlang, med innleiing, av}% + {red\adddotspace og oms\adddot\ \lbx@sfromlang, med innl., av}}, + byeditortrfo = {{redigert og omsett \lbx@lfromlang, med f{\o}reord, av}% + {red\adddotspace og oms\adddot\ \lbx@sfromlang, med f{\o}reord, av}}, + byeditortraf = {{redigert og omsett \lbx@lfromlang, med etterord, av}% + {red\adddotspace og oms\adddot\ \lbx@sfromlang, med etterord, av}}, + byeditorcoin = {{redigert og kommentert, med innleiing, av}% + {red\adddotspace og komm., med innl., av}}, + byeditorcofo = {{redigert og kommentert, med f{\o}reord, av}% + {red\adddotspace og komm., med f{\o}reord, av}}, + byeditoranin = {{redigert og forklart, med innleiing, av}% + {red\adddotspace og forkl., med innl., av}}, + byeditoranfo = {{redigert og forklart, med f{\o}reord, av}% + {red\adddotspace og forkl., med f{\o}reord, av}}, + byeditortrcoin = {{redigert, omsett \lbx@lfromlang\ og kommentert, med innleiing, av}% + {red.,\addabbrvspace oms\adddot\ \lbx@sfromlang\ og komm., med innl., av}}, + byeditortrcofo = {{redigert, omsett \lbx@lfromlang\ og kommentert, med f{\o}reord, av}% + {red.,\addabbrvspace oms\adddot\ \lbx@sfromlang\ og komm., med f{\o}reord, av}}, + byeditortrcoaf = {{redigert, omsett \lbx@lfromlang\ og kommentert, med etterord, av}% + {red.,\addabbrvspace oms\adddot\ \lbx@sfromlang\ og komm., med etterord, av}}, + byeditortranin = {{redigert, omsett \lbx@lfromlang\ og forklart, med innleiing, av}% + {red.,\addabbrvspace oms\adddot\ \lbx@sfromlang\ og forkl., med innl., av}}, + byeditortranfo = {{redigert, omsett \lbx@lfromlang\ og forklart, med f{\o}reord, av}% + {red.,\addabbrvspace oms\adddot\ \lbx@sfromlang\ og forkl., med f{\o}reord, av}}, + byeditortranaf = {{redigert, omsett \lbx@lfromlang\ og forklart, med etterord, av}% + {red.,\addabbrvspace oms\adddot\ \lbx@sfromlang\ og forkl., med etterord, av}}, + bytranslatorco = {{omsett \lbx@lfromlang\ og kommentert av}% + {oms\adddot\ \lbx@sfromlang\ og komm\adddot\ av}}, + bytranslatoran = {{omsett \lbx@lfromlang\ og forklart av}% + {oms\adddot\ \lbx@sfromlang\ og forkl\adddot\ av}}, + bytranslatorin = {{omsett \lbx@lfromlang, med innleiing, av}% + {oms\adddot\ \lbx@sfromlang, med innl., av}}, + bytranslatorfo = {{omsett \lbx@lfromlang, med f{\o}reord, av}% + {oms\adddot\ \lbx@sfromlang, med f{\o}reord, av}}, + bytranslatoraf = {{omsett \lbx@lfromlang, med etterord, av}% + {oms\adddot\ \lbx@sfromlang, med etterord, av}}, + bytranslatorcoin = {{omsett \lbx@lfromlang\ og kommentert, med innleiing, av}% + {oms\adddot\ \lbx@sfromlang\ og komm., med innl., av}}, + bytranslatorcofo = {{omsett \lbx@lfromlang\ og kommentert, med f{\o}reord, av}% + {oms\adddot\ \lbx@sfromlang\ og komm., med f{\o}reord, av}}, + bytranslatorcoaf = {{omsett \lbx@lfromlang\ og kommentert, med etterord, av}% + {oms\adddot\ \lbx@sfromlang\ og komm., med etterord, av}}, + bytranslatoranin = {{omsett \lbx@lfromlang\ og forklart, med innleiing, av}% + {oms\adddot\ \lbx@sfromlang\ og forkl., med innl., av}}, + bytranslatoranfo = {{omsett \lbx@lfromlang\ og forklart, med f{\o}reord, av}% + {oms\adddot\ \lbx@sfromlang\ og forkl., med f{\o}reord, av}}, + bytranslatoranaf = {{omsett \lbx@lfromlang\ og forklart, med etterord, av}% + {oms\adddot\ \lbx@sfromlang\ og forkl., med etterord, av}}, + andothers = {{med fleire}{mfl\adddot}}, + andmore = {{med meir}{m.m\adddot}}, + oldseries = {{gamal serie}{gl\adddotspace ser\adddot}}, + edition = {{utg{\aa}ve}{utg\adddot}}, + reprintfrom = {{opptrykk fr{\aa}}{opptr\adddotspace fr{\aa}}}, + translationof = {{omsetjing av}{oms\adddotspace av}}, + translationas = {{omsett som}{oms\adddotspace som}}, + translationfrom = {{omsett fr{\aa}}{oms\adddotspace fr{\aa}}}, + origpubas = {{opphavleg utgitt som}{opph\adddot\ utg\adddot\ som}}, + origpubin = {{opphavleg utgitt i}{opph\adddot\ utg\adddot\ i}}, +% bathesis = {{}{}},% FIXME: missing + mathesis = {{masteroppg{\aa}ve}{masteroppg\adddot}}, + candthesis = {{hovudoppg{\aa}ve}{hovudoppg\adddot}}, + resreport = {{forskingsrapport}{forsk.rapp\adddot}}, + url = {{adresse}{adresse}}, + urlfrom = {{tilgjengeleg fr{\aa}}{tilgj\adddotspace fr{\aa}}}, + urlseen = {{sjekka}{sjekka}}, + inpreparation = {{under utarbeiding}{under utarb\adddot}}, + forthcoming = {{under utgiving}{under utgiv\adddot}}, + citedas = {{heretter sitert som}{heretter sit\adddotspace som}}, + seenote = {{sj{\aa} note}{sj{\aa} n\adddot}}, + idem = {{den same}{d.s\adddot}}, + idemsf = {{den same}{d.s\adddot}}, + idemsm = {{den same}{d.s\adddot}}, + idemsn = {{det same}{d.s\adddot}}, + idempf = {{dei same}{d.s\adddot}}, + idempm = {{dei same}{d.s\adddot}}, + idempn = {{dei same}{d.s\adddot}}, + idempp = {{dei same}{d.s\adddot}}, + ibidem = {{same staden}{sst\adddot}}, + opcit = {{same staden}{sst\adddot}}, + loccit = {{same staden}{sst\adddot}}, + see = {{sj{\aa}}{sj{\aa}}}, + seealso = {{sj{\aa} \`{o}g}{sj{\aa} \`{o}g}}, + backrefpage = {{sj{\aa} side}{sj{\aa} s\adddot}}, + backrefpages = {{sj{\aa} sidene}{sj{\aa} s\adddot}}, + fromamerican = {{fr{\aa} amerikansk-engelsk}{fr{\aa} amerikansk-engelsk}}, + frombrazilian = {{fr{\aa} brasiliansk-portugisisk}{fr{\aa} brasiliansk-portugisisk}}, + frombulgarian = {{fr{\aa} bulgarsk}{fr{\aa} bulgarsk}}, + fromcatalan = {{fr{\aa} katalansk}{fr{\aa} katalansk}}, + fromcroatian = {{fr{\aa} kroatisk}{fr{\aa} kroatisk}}, + fromczech = {{fr{\aa} tsjekkisk}{fr{\aa} tsjekkisk}}, + fromdanish = {{fr{\aa} dansk}{fr{\aa} dansk}}, + fromdutch = {{fr{\aa} nederlandsk}{fr{\aa} nederlandsk}}, + fromenglish = {{fr{\aa} engelsk}{fr{\aa} engelsk}}, + fromestonian = {{fr{\aa} estisk}{fr{\aa} estisk}}, + fromfinnish = {{fr{\aa} finsk}{fr{\aa} finsk}}, + fromfrench = {{fr{\aa} fransk}{fr{\aa} fransk}}, + fromgalician = {{fr{\aa} galisisk}{fr{\aa} galisisk}}, + fromgerman = {{fr{\aa} tysk}{fr{\aa} tysk}}, + fromgreek = {{fr{\aa} gresk}{fr{\aa} gresk}}, +% fromhungarian = {{}{}}, % FIXME: missing + fromitalian = {{fr{\aa} italiensk}{fr{\aa} italiensk}}, + fromjapanese = {{fr{\aa} japansk}{fr{\aa} japansk}}, + fromlatin = {{fr{\aa} latin}{fr{\aa} latin}}, +% fromlatvian = {{}{}},% FIXME: missing + fromnorwegian = {{fr{\aa} norsk}{fr{\aa} norsk}}, + frompolish = {{fr{\aa} polsk}{fr{\aa} polsk}}, + fromportuguese = {{fr{\aa} portugisisk}{fr{\aa} portugisisk}}, + fromrussian = {{fr{\aa} russisk}{fr{\aa} russisk}}, + fromslovene = {{fr{\aa} slovakisk}{fr{\aa} slovakisk}}, + fromslovak = {{fr{\aa} slovensk}{fr{\aa} slovensk}}, + fromspanish = {{fr{\aa} spansk}{fr{\aa} spansk}}, + fromswedish = {{fr{\aa} svensk}{fr{\aa} svensk}}, + fromukrainian = {{fr{\aa} ukrainsk}{fr{\aa} ukrainsk}}, + countryeu = {{Den europeiske unionen}{EU}}, + countryep = {{Den europeiske unionen}{EP}}, + abstract = {{samandrag}{samandrag}}, + commonera = {{vesterlandsk tidsrekning}{v\adddot t\adddot}}, + beforecommonera = {{f{\o}r vesterlandsk tidsrekning}{f\adddot v\adddot t\adddot}}, + annodomini = {{e\adddot Kr\adddot}{e\adddot Kr\adddot}}, + beforechrist = {{f\adddot Kr\adddot}{f\adddot Kr\adddot}}, + circa = {{cirka}{ca\adddot}}, + spring = {{v{\aa}r}{v{\aa}r}}, + summer = {{sommar}{sommar}}, + autumn = {{haust}{haust}}, + winter = {{vinter}{vinter}}, + am = {{a\adddot m\adddot}{a\adddot m\adddot}}, + pm = {{p\adddot m\adddot}{p\adddot m\adddot}}, +} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/lbx/polish.lbx b/macros/latex/contrib/biblatex/latex/lbx/polish.lbx new file mode 100644 index 0000000000..7618a69ec5 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/lbx/polish.lbx @@ -0,0 +1,572 @@ +\ProvidesFile{polish.lbx} +[\abx@lbxid] + +\DeclareRedundantLanguages{polish}{polish} + +\DeclareBibliographyExtras{% + \protected\def\bibrangedash{\textendash\penalty\hyphenpenalty}% + \let\finalandcomma=\empty + \let\finalandsemicolon=\empty + \protected\def\mkbibordinal#1{\stripzeros{#1}}% + \protected\def\mkbibmascord{\mkbibordinal}% + \protected\def\mkbibfemord{\mkbibordinal}% + \protected\def\mkbibneutord{\mkbibordinal}% + \protected\def\mkbibdatelong#1#2#3{% + \iffieldundef{#3} + {} + {\mkbibordinal{\thefield{#3}}% + \iffieldundef{#2}{}{\nobreakspace}}% + \iffieldundef{#2} + {} + {\iffieldundef{#3} + {\mkbibmonth{\thefield{#2}}} + {\lbx@pl@mkbibmonth{\thefield{#2}}}% + \iffieldundef{#1}{}{\space}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}% + \protected\def\mkbibdateshort#1#2#3{% + \iffieldundef{#3} + {} + {\mkdayzeros{\thefield{#3}}\adddot + \iffieldundef{#2}{}{\thinspace}}% + \iffieldundef{#2} + {} + {\mkmonthzeros{\thefield{#2}}% + \iffieldundef{#1} + {} + {\iffieldundef{#3}{/}{\adddot\thinspace}}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}% + \savecommand\mkbibordedition + \savecommand\mkbibordseries + \def\mkbibordedition{\mkbibneutord}% + \def\mkbibordseries{\mkbibfemord}% + \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{% + \iffieldundef{#1}{} + {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}% + \iffieldundef{#2}{} + {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}% + \iffieldundef{#3}{} + {\printtext{\mktimezeros{\thefield{#3}}}}% + \setunit{}% + \iffieldundef{#4}{} + {\bibtimezonesep + \mkbibtimezone{\thefield{#4}}}}% + \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{% + \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep + \forcezerosmdt{\thefield{#2}}% + \iffieldundef{#3}{} + {\bibtimesep + \forcezerosmdt{\thefield{#3}}}% + \space + \ifnumless{\thefield{#1}}{12} + {\bibstring{am}} + {\bibstring{pm}}% + \iffieldundef{#4}{} + {\space\bibtimezonesep + \parentext{\mkbibtimezone{\thefield{#4}}}}}% + \protected\def\mkbibseasondateshort#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% + \protected\def\mkbibseasondatelong#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% +} + +\UndeclareBibliographyExtras{% + \restorecommand\mkbibordedition + \restorecommand\mkbibordseries +} + +\NewBibliographyString{% Month name variants used after day + datejanuary, + datefebruary, + datemarch, + dateapril, + datemay, + datejune, + datejuly, + dateaugust, + dateseptember, + dateoctober, + datenovember, + datedecember% +} + +\DeclareBibliographyStrings{% + bibliography = {{Bibliografia}{Bibliografia}}, + references = {{Bibliografia}{Bibliografia}}, + shorthands = {{lista skr\'{o}t\'{o}w}{skr\'{o}ty}}, + editor = {{redaktor}{red\adddot}}, + editors = {{redaktorzy}{red\adddot}}, + compiler = {{redaktor}{red\adddot}}, + compilers = {{redaktorzy}{red\adddot}}, + redactor = {{redaktor}{red\adddot}}, + redactors = {{redaktorzy}{red\adddot}}, + reviser = {{korektor}{kor\adddot}}, + revisers = {{korektorzy}{kor\adddot}}, + founder = {{za\l o\.{z}yciel}{za\l \adddot}}, + founders = {{za\l o\.{z}yciele}{za\l \adddot}}, + continuator = {{nast\c{e}pca}{nast\adddot}}, + continuators = {{nast\c{e}pcy}{nast\adddot}}, + collaborator = {{uczestnik}{ucz\adddot}}, + collaborators = {{uczestnicy}{ucz\adddot}}, + translator = {{t\l umacz}{t\l um\adddot}}, + translators = {{t\l umacze}{t\l um\adddot}}, + commentator = {{komentator}{kom\adddot}}, + commentators = {{komentatorzy}{kom\adddot}}, + annotator = {{uwaga}{uw\adddot}}, + annotators = {{uwagi}{uw\adddot}}, + commentary = {{komentarz}{kom\adddot}}, + annotations = {{komentarze}{kom\adddot}}, + introduction = {{wst\c{e}p}{wst\adddot}}, + foreword = {{przedmowa}{przedm\adddot}}, + afterword = {{pos\l owie}{pos\l \adddot}}, + editortr = {{redaktor i t\l umacz}{red\adddotspace i per\adddot}}, + editorstr = {{redaktorzy i t\l umacze}{red\adddotspace i per\adddot}}, + editorco = {{redaktor i komentator}{red\adddotspace i kom\adddot}}, + editorsco = {{redaktorzy i komentatorzy}% + {red\adddotspace i kom\adddot}},% FIXME: check + editoran = {{redaktor i autor uwag}% + {red\adddotspace i aut\adddotspace uw\adddot}}, + editorsan = {{redaktorzy i autorzy uwag}% + {red\adddotspace i aut\adddotspace uw\adddot}}, + editorin = {{redaktor i autor wst\c{e}pu}% + {red\adddotspace i aut\adddotspace wst\adddot}}, + editorsin = {{redaktorzy i autorzy wst\c{e}pu}% + {red\adddotspace i aut\adddotspace wst\adddot}}, + editorfo = {{redaktor i autor przedmowy}% + {red\adddotspace i aut\adddotspace przedm\adddot}}, + editorsfo = {{redaktorzy i autorzy przedmowy}% + {red\adddotspace i aut\adddotspace przedm\adddot}}, + editoraf = {{redaktor i autor pos\l owia}% + {red\adddotspace i aut\adddotspace pos\l \adddot}}, + editorsaf = {{redaktorzy i autorzy pos\l owia}% + {red\adddotspace i aut\adddotspace pos\l \adddot}}, + editortrco = {{redaktor, t\l umacz i komentator}% + {red., t\l um\adddotspace i kom\adddot}}, + editorstrco = {{redaktorzy, t\l umacze i komentatory}% + {red., t\l um\adddotspace i kom\adddot}}, + editortran = {{redaktor, t\l umacz i autor uwag}% + {red., t\l um\adddotspace i aut\adddotspace uw\adddot}}, + editorstran = {{redaktorzy, t\l umacze i autorzy uwag}% + {red., t\l um\adddotspace i aut\adddotspace uw\adddot}}, + editortrin = {{redaktor, t\l umacz i autor wst\c{e}pu}% + {red., t\l um\adddotspace i aut\adddotspace wst\adddot}}, + editorstrin = {{redaktorzy, t\l umacze i autorzy wst\c{e}pu}% + {red., t\l um\adddotspace i aut\adddotspace wst\adddot}}, + editortrfo = {{redaktor, t\l umacz i autor przedmowy}% + {red., t\l um\adddotspace i aut\adddotspace przedm\adddot}}, + editorstrfo = {{redaktorzy, t\l umacze i autorzy przedmowy}% + {red., t\l um\adddotspace i aut\adddotspace przedm\adddot}}, + editortraf = {{redaktor, t\l umacz i autor pos\l owia}% + {red., t\l um\adddotspace i aut\adddotspace pos\l \adddot}}, + editorstraf = {{redaktorzy, t\l umacze i autorzy pos\l owia}% + {red., t\l um\adddotspace i aut\adddotspace pos\l \adddot}}, + editorcoin = {{redaktor, komentator i autor wst\c{e}pu}% + {red., kom\adddotspace i aut\adddotspace wst\adddot}}, + editorscoin = {{redaktorzy, komentatorzy i autorzy wst\c{e}pu}% + {red., kom\adddotspace i aut\adddotspace wst\adddot}}, + editorcofo = {{redaktor, komentator i autor przedmowy}% + {red., kom\adddotspace i aut\adddotspace przedm\adddot}}, + editorscofo = {{redaktorzy, komentatorzy i autorzy przedmowy}% + {red., kom\adddotspace i aut\adddotspace przedm\adddot}}, + editorcoaf = {{redaktor, komentator i autor pos\l owia}% + {red., kom\adddotspace i aut\adddotspace pos\l \adddot}}, + editorscoaf = {{redaktorzy, komentatorzy i autorzy pos\l owia}% + {red., kom\adddotspace i aut\adddotspace pos\l \adddot}}, + editoranin = {{redaktor, autor uwag i autor wst\c{e}pu}% + {red., aut\adddotspace uw\adddotspace i aut\adddotspace wst\adddot}}, + editorsanin = {{redaktorzy, autorzy uwag i autorzy wst\c{e}pu}% + {red., aut\adddotspace uw\adddotspace i aut\adddotspace wst\adddot}}, + editoranfo = {{redaktor, autor uwag i autor przedmowy}% + {red., aut\adddotspace uw\adddotspace i aut\adddotspace przedm\adddot}}, + editorsanfo = {{redaktorzy, autorzy uwag i autorzy przedmowy}% + {red., aut\adddotspace uw\adddotspace i aut\adddotspace przedm\adddot}}, + editoranaf = {{redaktor, autor uwag i autor pos\l owia}% + {red., aut\adddotspace uw\adddotspace i aut\adddotspace pos\l \adddot}}, + editorsanaf = {{redaktorzy, autorzy uwag i autorzy pos\l owia}% + {red., aut\adddotspace uw\adddotspace i aut\adddotspace pos\l \adddot}}, + editortrcoin = {{redaktor, t\l umacz, komentator i autor wst\c{e}pu}% + {red., t\l um., kom\adddotspace i aut\adddotspace wst\adddot}}, + editorstrcoin = {{redaktorzy, t\l umacze, komentatorzy i autorzy wst\c{e}pu}% + {red., t\l um., kom\adddotspace i aut\adddotspace wst\adddot}}, + editortrcofo = {{redaktor, t\l umacz, komentator i autor przedmowy}% + {red., t\l um., kom\adddotspace i aut\adddotspace przedm\adddot}}, + editorstrcofo = {{redaktorzy, t\l umacze, komentatorzy i autorzy przedmowy}% + {red., t\l um., kom\adddotspace i aut\adddotspace przedm\adddot}}, + editortrcoaf = {{redaktor, t\l umacz, komentator i autor pos\l owia}% + {red., t\l um., kom\adddotspace i aut\adddotspace pos\l \adddot}}, + editorstrcoaf = {{redaktorzy, t\l umacze, komentatorzy i autorzy pos\l owia}% + {red., t\l um., kom\adddotspace i aut\adddotspace pos\l \adddot}}, + editortranin = {{redaktor, t\l umacz, autor uwag i autor wst\c{e}pu}% + {red., t\l um., aut\adddotspace uw\adddotspace i aut\adddotspace wst\adddot}}, + editorstranin = {{redaktorzy, t\l umacze, autorzy uwag i autorzy wst\c{e}pu}% + {red., t\l um., aut\adddotspace uw\adddotspace i aut\adddotspace wst\adddot}}, + editortranfo = {{redaktor, t\l umacz, autor uwag i autor przedmowy}% + {red., t\l um., aut\adddotspace uw\adddotspace i aut\adddotspace przedm\adddot}}, + editorstranfo = {{redaktorzy, t\l umacze, autorzy uwag i autorzy przedmowy}% + {red., t\l um., aut\adddotspace uw\adddotspace i aut\adddotspace przedm\adddot}}, + editortranaf = {{redaktor, t\l umacz, autor uwag i autor pos\l owia}% + {red., t\l um., aut\adddotspace uw\adddotspace i aut\adddotspace pos\l \adddot}}, + editorstranaf = {{redaktorzy, t\l umacze, autorzy uwag i autorzy pos\l owia}% + {red., t\l um., aut\adddotspace uw\adddotspace i aut\adddotspace pos\l \adddot}}, + translatorco = {{t\l umacz i komentator}{t\l um\adddotspace i kom\adddot}}, + translatorsco = {{t\l umacze i komentatorzy}{t\l um\adddotspace i kom\adddot}}, + translatoran = {{t\l umacz i autor uwag}% + {t\l um\adddotspace i aut\adddotspace uw\adddot}}, + translatorsan = {{t\l umacze i autorzy uwag}% + {t\l um\adddotspace i aut\adddotspace uw\adddot}}, + translatorin = {{t\l umacz i autor wst\c{e}pu}% + {t\l um\adddotspace i aut\adddotspace wst\adddot}}, + translatorsin = {{t\l umacze i autorzy wst\c{e}pu}% + {t\l um\adddotspace i aut\adddotspace wst\adddot}}, + translatorfo = {{t\l umacz i autor przedmowy}% + {t\l um\adddotspace i aut\adddotspace przedm\adddot}}, + translatorsfo = {{t\l umacze i autorzy przedmowy}% + {t\l um\adddotspace i aut\adddotspace przedm\adddot}}, + translatoraf = {{t\l umacz i autor pos\l owia}% + {t\l um\adddotspace i aut\adddotspace pos\l \adddot}}, + translatorsaf = {{t\l umacze i autorzy pos\l owia}% + {t\l um\adddotspace i aut\adddotspace pos\l \adddot}}, + translatorcoin = {{t\l umacz, autor uwag i autor wst\c{e}pu}% + {t\l um., aut\adddotspace uw\adddotspace i aut\adddotspace wst\adddot}}, + translatorscoin = {{t\l umacze, autorzy uwag i autorzy wst\c{e}pu}% + {t\l um., aut\adddotspace uw\adddotspace i aut\adddotspace wst\adddot}}, + translatorcofo = {{t\l umacz, autor uwag i autor przedmowy}% + {t\l um., aut\adddotspace uw\adddotspace i aut\adddotspace przedm\adddot}}, + translatorscofo = {{t\l umacze, autorzy uwag i autorzy przedmowy}% + {t\l um., aut\adddotspace uw\adddotspace i aut\adddotspace przedm\adddot}}, + translatorcoaf = {{t\l umacz, autor uwag i autor pos\l owia}% + {t\l um., aut\adddotspace uw\adddotspace i aut\adddotspace pos\l \adddot}}, + translatorscoaf = {{t\l umacze, autorzy uwag i autorzy posowia}% + {t\l um., aut\adddotspace uw\adddotspace i aut\adddotspace pos\l \adddot}}, + translatoranin = {{t\l umacz, autor uwag i autor wst\c{e}pu}% + {t\l um., aut\adddotspace uw\adddotspace i aut\adddotspace wst\adddot}}, + translatorsanin = {{t\l umacze, autorzy uwag i autorzy wst\c{e}pu}% + {t\l um., aut\adddotspace uw\adddotspace i aut\adddotspace wst\adddot}}, + translatoranfo = {{t\l umacz, autor komentarzy i autor wst\c{e}pu}% + {t\l um., aut\adddotspace kom\adddotspace i aut\adddotspace wst\adddot}}, + translatorsanfo = {{t\l umacze, autorzy komentarzy i autorzy przedmowy}% + {t\l um., aut\adddotspace kom\adddotspace i aut\adddotspace przedm\adddot}}, + translatoranaf = {{t\l umacz, autor komentarzy i autor pos\l owia}% + {t\l um., aut\adddotspace kom\adddotspace i aut\adddotspace pos\l \adddot}}, + translatorsanaf = {{t\l umacze, autorzy komentarzy i autorzy pos\l owia}% + {t\l um., aut\adddotspace kom\adddotspace i aut\adddotspace pos\l \adddot}}, + organizer = {{organizator}{org\adddot}}, + organizers = {{organizatorzy}{org\adddot}}, + byorganizer = {{organizowane}{org\adddot}}, + byauthor = {{autorstwo}{aut\adddot}}, + byeditor = {{redagowa\l}{red\adddot}}, + bycompiler = {{u\l o\.{z}y\l }{u\l \adddot}}, + byredactor = {{zredagowano}{zred\adddot}}, + byreviser = {{poprawione}{popr\adddot}}, + byreviewer = {{recenzja}{rec\adddot}}, + byfounder = {{za\l o\.{z}one}{za\l \adddot}}, + bycontinuator = {{przej\c{e}te}{przej\adddot}}, + bycollaborator = {{przy wsp\'{o}\l pracy}{przy wsp\adddot}}, + bytranslator = {{t\l umaczenie \lbx@lfromlang}{t\l um\adddotspace \lbx@sfromlang}}, + bycommentator = {{skomentowane przez}{skom\adddot}}, + byannotator = {{uwagi od}{uw\adddot}}, + withcommentator = {{komentarze}{kom\adddot}}, + withannotator = {{uwagi}{uw\adddot}}, + withintroduction = {{wst\c{e}p}{wst\adddot}}, + withforeword = {{przedmowa}{przedm\adddot}}, + withafterword = {{pos\l owie}{pos\l \adddot}}, + byeditortr = {{t\l umaczenie \lbx@lfromlang, zredagowany przez}% + {t\l um\adddotspace \lbx@sfromlang, zred\adddotspace przez}}, + byeditorco = {{zredagowany i skomentowany przez}% + {zred\adddotspace i skom\adddotspace przez}}, + byeditoran = {{zredagowany i z uwagami}{zredag\adddotspace i z uw\adddot}}, + byeditorin = {{zredagowany, z wst\c{e}pem}{zred., z wst\adddot}}, + byeditorfo = {{zredagowany, z przedmow\c{a}}{zred., z przedm\adddot}}, + byeditoraf = {{zredagowany, z pos\l owiem}{zred., z pos\l \adddot}}, + byeditortrco = {{zredagowany, t\l umaczenie \lbx@lfromlang i komentarze}% + {zred., t\l um\adddotspace \lbx@sfromlang i kom\adddot}}, + byeditortran = {{zredagowany, t\l umaczenie \lbx@lfromlang i uwagi}% + {zred., t\l um\adddotspace \lbx@sfromlang i uw\adddot}}, + byeditortrin = {{zredagowany, t\l umaczenie \lbx@lfromlang, wst\c{e}p}% + {zred., t\l um\adddotspace \lbx@sfromlang, wst\adddot}}, + byeditortrfo = {{zredagowany, t\l umaczenie \lbx@lfromlang, przedmowa}% + {zred., t\l um\adddotspace \lbx@sfromlang, przedm\adddot}}, + byeditortraf = {{zredagowany, t\l umaczenie \lbx@lfromlang, pos\l owie}% + {zred\adddotspace t\l um\adddotspace \lbx@sfromlang, pos\l \adddot}}, + byeditorcoin = {{zredagowany, komentarze i wst\c{e}p}{zred., kom\adddotspace i wst\adddot}}, + byeditorcofo = {{zredagowany, komentarze i przedmowa}{zred., kom\adddotspace i przedm\adddot}}, + byeditorcoaf = {{zredagowany, komentarze i pos\l owie}{zred., kom\adddotspace i pos\l \adddot}}, + byeditoranin = {{zredagowany, uwagi i wst\c{e}p}{zred., uw\adddotspace i wst\adddot}}, + byeditoranfo = {{zredagowany, uwagi i przedmowa}{zred., uw\adddotspace i przedm\adddot}}, + byeditoranaf = {{zredagowany, uwagi i pos\l owie}{zred., uw\adddotspace i pos\l \adddot}}, + byeditortrcoin = {{zredagowany, t\l umaczenie \lbx@lfromlang, komentarze i wst\c{e}p}% + {zred., t\l um\adddotspace \lbx@sfromlang, kom\adddotspace i wst\c{e}p\adddot}}, + byeditortrcofo = {{zredagowany, t\l umaczenie \lbx@lfromlang, komentarze i przedmowa}% + {zred., t\l um\adddotspace \lbx@sfromlang, kom\adddotspace i przedm\adddot}}, + byeditortrcoaf = {{zredagowany, t\l umaczenie \lbx@lfromlang, komentarze i pos\l owie}% + {zred., t\l um\adddotspace \lbx@sfromlang, kom\adddotspace i pos\l \adddot}}, + byeditortranin = {{zredagowany, t\l umaczenie \lbx@lfromlang, uwagi i wst\c{e}p}% + {zred., t\l um\adddotspace \lbx@sfromlang, uw\adddotspace i wst\adddot}}, + byeditortranfo = {{zredagowany, t\l umaczenie \lbx@lfromlang, uwagi i przedmowa}% + {zred., t\l um\adddotspace \lbx@sfromlang, uw\adddotspace i przedm\adddot}}, + byeditortranaf = {{zredagowany, t\l umaczenie \lbx@lfromlang, uwagi i pos\l owie}% + {zred., t\l um\adddotspace \lbx@sfromlang, uw\adddotspace i pos\l \adddot}}, + bytranslatorco = {{t\l umaczenie \lbx@lfromlang i komentarze}% + {t\l um\adddotspace \lbx@sfromlang i kom\adddot}}, + bytranslatoran = {{t\l umaczenie \lbx@lfromlang i uwagi}% + {t\l um\adddotspace \lbx@sfromlang i uw\adddot}}, + bytranslatorin = {{t\l umaczenie \lbx@lfromlang i wst\c{e}p}% + {t\l um\adddotspace \lbx@sfromlang i wst\adddot}}, + bytranslatorfo = {{t\l umaczenie \lbx@lfromlang i przedmowa}% + {t\l um\adddotspace \lbx@sfromlang i przedm\adddot}}, + bytranslatoraf = {{t\l umaczenie \lbx@lfromlang i pos\l owie}% + {t\l um\adddotspace \lbx@sfromlang i pos\l \adddot}}, + bytranslatorcoin = {{t\l umaczenie \lbx@lfromlang, komentarze i wst\c{e}p}% + {t\l um\adddotspace \lbx@sfromlang, kom\adddotspace i wst\adddot}}, + bytranslatorcofo = {{t\l umaczenie \lbx@lfromlang, komentarze i przedmowa}% + {t\l um\adddotspace \lbx@sfromlang, kom\adddotspace i przedm\adddot}}, + bytranslatorcoaf = {{t\l umaczenie \lbx@lfromlang, komentarze i pos\l owie}% + {t\l um\adddotspace \lbx@sfromlang, kom\adddotspace i pos\l \adddot}}, + bytranslatoranin = {{t\l umaczenie \lbx@lfromlang, uwagi i wst\c{e}p}% + {t\l um\adddotspace \lbx@sfromlang, uw\adddotspace i wst\adddot}}, + bytranslatoranfo = {{t\l umaczenie \lbx@lfromlang, uwagi i przedmowa}% + {t\l um\adddotspace \lbx@sfromlang, uw\adddotspace i przedm\adddot}}, + bytranslatoranaf = {{t\l umaczenie \lbx@lfromlang, uwagi i pos\l owie}% + {t\l um\adddotspace \lbx@sfromlang, uw\adddotspace i pos\l \adddot}}, + and = {{i}{i}}, + andothers = {{i inni}{i in\adddot}}, + andmore = {{i inni}{i in\adddot}}, + volume = {{tom}{t\adddot}}, + volumes = {{tomy}{t\adddot}}, + involumes = {{w}{w}}, + jourvol = {{tom}{t\adddot}}, + jourser = {{seria}{ser\adddot}}, + book = {{ksi\c{a}\.{z}ka}{ks\adddot}}, + part = {{cz\c{e}\'{s}\'{c}}{cz\adddot}}, + issue = {{wydanie}{wyd\adddot}}, + newseries = {{nowa seria}{now\adddotspace ser\adddot}}, + oldseries = {{stara seria}{star\adddotspace ser\adddot}}, + edition = {{wydruk}{wyd\adddot}}, + reprint = {{przedruk}{przedr\adddot}}, + reprintof = {{przedruk}{przedr\adddot}}, + reprintas = {{przedrukowano jako}{przedr\adddotspace jako}}, + reprintfrom = {{przedrukowano z}{przedr\adddotspace z}}, + translationof = {{t\l umaczenie}{t\l um\adddot}}, + translationas = {{t\l umaczenie jako}{t\l um\adddotspace jako}}, + translationfrom = {{t\l umaczenie z}{t\l um\adddotspace z}}, + reviewof = {{recenzja na\addcolon}{rec\adddotspace na\addcolon}}, + origpubas = {{pierwodruk wydano jako}% + {pierw\adddotspace wyd\adddotspace jako}}, + origpubin = {{pierwodruk wydano w}{pierw\adddotspace wyd\adddotspace w}}, + astitle = {{pod tytu\l em}{pod tyt\adddot}}, + bypublisher = {{przez wydawc\c{e}}{prz\adddotspace wyd\adddot}}, + page = {{strona}{s\adddot}}, + pages = {{strony}{s\adddot}}, + column = {{kolumna}{kol\adddot}}, + columns = {{kolumny}{kol\adddot}}, + line = {{linijka}{l\adddot}}, + lines = {{linijki}{l\adddot}}, + nodate = {{bez daty}{b\adddot d\adddot}}, + verse = {{werset}{wer\adddot}}, + verses = {{wersety}{wer\adddot}}, + section = {{paragraf}{par\adddot}}, + sections = {{paragrafy}{par\adddot}}, + paragraph = {{akapit}{akap\adddot}}, + paragraphs = {{akapity}{akap\adddot}}, + pagetotal = {{strona}{s\adddot}}, + pagetotals = {{strony}{s\adddot}}, + columntotal = {{kolumna}{kol\adddot}}, + columntotals = {{kolumny}{kol\adddot}}, + linetotal = {{wers}{wer\adddot}}, + linetotals = {{wersy}{wer\adddot}}, + versetotal = {{wiersz}{wier\adddot}}, + versetotals = {{wiersze}{wier\adddot}}, + sectiontotal = {{paragraf}{par\adddot}}, + sectiontotals = {{paragrafy}{par\adddot}}, + paragraphtotal = {{akapit}{akap\adddot}}, + paragraphtotals = {{akapit}{akap\adddot}}, + in = {{w}{w}}, + inseries = {{w}{w}}, + ofseries = {{z}{z}}, + number = {{numer}{nr\adddot}},% FIXME: check + chapter = {{rozdzia\l }{rozd\adddot}}, +% bathesis = {{}{}},% FIXME: missing + mathesis = {{praca magisterska}{prac\adddotspace mag\adddot}}, + phdthesis = {{praca doktorska}{prac\adddotspace dokt\adddot}}, + candthesis = {{praca kandydacka}% + {prac\adddotspace kand\adddot}},% FIXME: unsure + resreport = {{sprawozdanie naukowe}{spraw\adddotspace nau\adddot}}, + techreport = {{sprawozdanie techniczne}{spraw\adddotspace tech\adddot}}, + software = {{oprogramowanie}{opr\adddot}}, + datacd = {{CD-ROM}{CD-ROM}}, + audiocd = {{audio CD}{audio CD}}, + version = {{wersja}{wer\adddot}}, + url = {{adres}{adr\adddot}}, + urlfrom = {{dost\c{e}pne z}{dost\adddotspace z}}, + urlseen = {{termin wizyty}{term\adddotspace wiz\adddot}}, + inpreparation = {{przygotowanie}{przyg\adddot}}, + submitted = {{prezentacja}{prez\adddot}}, + forthcoming = {{przygotowanie}{przyg\adddot}},% FIXME: unsure + inpress = {{wydrukowane}{wydruk\adddot}}, + prepublished = {{przedwydanie}{przedw\adddot}}, + citedas = {{cytowane dalej jako}{cyt\adddotspace dal\adddotspace jako}}, + thiscite = {{tutaj}{tut\adddot}}, + seenote = {{patrz uwag\c{e}}{patrz uw\adddot}}, + quotedin = {{cytat wed\l ug}{cyt\adddotspace wg\adddot}}, + idem = {{ten\.{z}e}{ten\.{z}e}}, + idemsm = {{ten\.{z}e}{ten\.{z}e}}, + idemsf = {{ta\.{z} sama}{ta\.{z} sama}}, + idemsn = {{ten sam}{ten sam}}, + idempm = {{ci sami}{ci sami}}, + idempf = {{ci sami}{ci sami}}, + idempn = {{ci sami}{ci sami}}, + idempp = {{ci sami}{ci sami}}, + ibidem = {{tam\.{z}e}{tam\.{z}e}}, + opcit = {{praca cytowana}{prac\adddotspace cyt\adddot}}, + loccit = {{miejsce cytowane}{miej\adddotspace cyt\adddot}}, + confer = {{por\'{o}wnaj}{por\adddot}}, + sequens = {{i nast\c{e}pna}{i nast\adddot}}, + sequentes = {{i nast\c{e}pni}{i nast\adddot}}, + passim = {{wsz\c{e}dzie}{wsz\c{e}dzie}}, + see = {{patrz}{p\adddot}}, + seealso = {{ratrz r\'{o}wnie\.{z}}{p\adddotspace r\'{o}wn\adddot}}, + backrefpage = {{cytowane na stronie}{cyt\adddotspace na s\adddot}}, + backrefpages = {{cytowane na stronach}{cyt\adddotspace na s\adddot}}, + january = {{stycze\'{n}}{sty\adddot}}, + february = {{luty}{lut\adddot}}, + march = {{marzec}{mar\adddot}}, + april = {{kwiecie\'{n}}{kw\adddot}}, + may = {{maj}{maj}}, + june = {{czerwiec}{czer\adddot}}, + july = {{lipiec}{lip\adddot}}, + august = {{sierpie\'{n}}{sierp\adddot}}, + september = {{wrzesie\'{n}}{wrz\adddot}}, + october = {{pa\'{z}dziernik}{pa\'{z}\adddot}}, + november = {{listopad}{list\adddot}}, + december = {{grudzie\'{n}}{grud\adddot}}, + datejanuary = {{stycznia}{sty\adddot}}, + datefebruary = {{lutego}{lut\adddot}}, + datemarch = {{marca}{mar\adddot}}, + dateapril = {{kwietnia}{kw\adddot}}, + datemay = {{maja}{maj\adddot}}, + datejune = {{czerwca}{czer\adddot}}, + datejuly = {{lipca}{lip\adddot}}, + dateaugust = {{sierpnia}{sierp\adddot}}, + dateseptember = {{wrze\'{s}nia}{wrz\adddot}}, + dateoctober = {{pa\'{z}dziernika}{pa\'{z}\adddot}}, + datenovember = {{listopada}{list\adddot}}, + datedecember = {{grudnia}{grud\adddot}}, + langamerican = {{ameryka\'{n}ski}{ameryka\'{n}ski}}, + langbrazilian = {{brazylijski}{brazylijski}}, + langbulgarian = {{bu\l garski}{bu\l garski}}, + langcatalan = {{katalo\'{n}ski}{katalo\'{n}ski}}, + langcroatian = {{chorwacki}{chorwacki}}, + langczech = {{czeski}{czeski}}, + langdanish = {{du\'{n}ski}{du\'{n}ski}}, + langdutch = {{holenderski}{holenderski}}, + langenglish = {{angielski}{angielski}}, + langestonian = {{esto\'{n}ski}{esto\'{n}ski}}, + langfinnish = {{fi\'{n}ski}{fi\'{n}ski}}, + langfrench = {{francuski}{francuski}}, + langgalician = {{galicyjski}{galicyjski}}, + langgerman = {{niemiecki}{niemiecki}}, + langgreek = {{grecki}{grecki}}, + langhungarian = {{w\c{e}gierski}{w\c{e}gierski}}, + langitalian = {{w\l oski}{w\l oski}}, + langlatin = {{\l acina}{\l acina}}, +% langlatvian = {{}{}},% FIXME: missing + langnorwegian = {{norweski}{norweski}}, + langpolish = {{polski}{polski}}, + langportuguese = {{portugalski}{portugalski}}, + langrussian = {{rosyjski}{rosyjski}}, +% langslovak = {{}{}},% FIXME: missing + langslovene = {{s\l owe\'{n}ski}{s\l owe\'{n}ski}}, + langspanish = {{hiszpa\'{n}ski}{hiszpa\'{n}ski}}, + langswedish = {{szwedzki}{szwedzki}}, + fromamerican = {{z ameryka\'{n}skiego}{z amer\adddot}}, + frombrazilian = {{z brazylijskiego}{z braz\adddot}}, + frombulgarian = {{z bu\l garskiego}{z bu\l g\adddot}}, + fromcatalan = {{z katalo\'{n}skiego}{z katal\adddot}}, + fromcroatian = {{z chorwackiego}{z chorw\adddot}}, + fromczech = {{z czeskiego}{z czesk.}}, + fromdanish = {{z du\'{n}skiego}{z du\'{n}\adddot}}, + fromdutch = {{z niderla\'{n}skiego}{z nid\adddot}}, + fromenglish = {{z angielskiego}{z ang\adddot}}, + fromestonian = {{z esto\'{n}skiego}{z est\adddot}}, + fromfinnish = {{z fi\'{n}skiego}{z fi\'{n}\adddot}}, + fromfrench = {{z francuzkiego}{z fran\adddot}}, + fromgalician = {{z galicyjzkiego}{z gal\adddot}}, + fromgerman = {{z niemieckiego}{z niem\adddot}}, + fromgreek = {{z greckiego}{z grec\adddot}}, + fromhungarian = {{z w\c{e}gierskiego}{z w\c{e}gierskiego}}, + fromitalian = {{z w\l oskiego}{z w\l os\adddot}}, + fromlatin = {{z \l aciny}{z \l at\adddot}}, +% fromlatvian = {{}{}},% FIXME: missing + fromnorwegian = {{z norweskiego}{z norw\adddot}}, + frompolish = {{z polskiego}{z pol\adddot}}, + fromportuguese = {{z portugalskiego}{z port\adddot}}, + fromrussian = {{z rosyjskiego}{z ros\adddot}}, +% fromslovak = {{}{}},% FIXME: missing + fromslovene = {{z s\l owe\'{n}skiego}{z s\l owe\'{n}\adddot}}, + fromspanish = {{z hiszpa\'{n}skiego}{z hiszp\adddot}}, + fromswedish = {{ze szwedskiego}{ze szw\adddot}}, + countryde = {{Niemcy}{DE}}, + countryeu = {{Unia Europejska}{EU}}, + countryep = {{Unia Europejska}{EP}}, + countryfr = {{Francja}{FR}}, + countryuk = {{Wielka Brytania}{GB}}, + countryus = {{Stany Zjednoczone Ameryki}{US}}, + patent = {{patent}{pat\adddot}}, + patentde = {{patent Niemiec}{pat\adddotspace Niemiec}}, + patenteu = {{patent Europy}{pat\adddotspace Europy}}, + patentfr = {{patent Francji}{pat\adddotspace Francji}}, + patentuk = {{patent Wielkiej Brytanji}{pat\adddotspace Wielkiej Brytanji}}, + patentus = {{patent USA}{pat\adddotspace USA}}, + patreq = {{podanie na patent}{podanie na pat\adddot}}, + patreqde = {{podanie na patent Niemiec}% + {podanie na pat\adddotspace Niemiec}}, + patreqeu = {{podanie na patent Europy}{podanie na pat\adddotspace Europy}}, + patreqfr = {{podanie na patent Francji}% + {podanie na pat\adddotspace Francji}}, + patrequk = {{podanie na patent Wielkiej Brytanji}% + {podanie na pat\adddotspace Wielkiej Brytanji}}, + patrequs = {{podanie na patent USA}{podanie na pat\adddotspace USA}}, + file = {{plik}{plik}}, + library = {{bibloteka}{bibl\adddot}}, + abstract = {{podsumowanie}{pod\adddot}}, + annotation = {{adnotacja}{adn\adddot}}, + commonera = {{CE}{CE}}, + beforecommonera = {{BCE}{BCE}}, + annodomini = {{n\adddot e\adddot}{n\adddot e\adddot}}, + beforechrist = {{p\adddot n\adddot e\adddot}{p\adddot n\adddot e\adddot}}, + circa = {{oko\l o}{ok\adddot}}, + spring = {{wiosna}{wiosna}}, + summer = {{lato}{lato}}, + autumn = {{jesie\'{n}}{jesie\'{n}}}, + winter = {{zima}{zima}}, + am = {{AM}{AM}}, + pm = {{PM}{PM}}, +} + +\protected\gdef\lbx@pl@mkbibmonth#1{% + \ifcase0#1\relax + #1\BibliographyWarning{Month out of range}% + \or\abx@bibmonth{datejanuary}% + \or\abx@bibmonth{datefebruary}% + \or\abx@bibmonth{datemarch}% + \or\abx@bibmonth{dateapril}% + \or\abx@bibmonth{datemay}% + \or\abx@bibmonth{datejune}% + \or\abx@bibmonth{datejuly}% + \or\abx@bibmonth{dateaugust}% + \or\abx@bibmonth{dateseptember}% + \or\abx@bibmonth{dateoctober}% + \or\abx@bibmonth{datenovember}% + \or\abx@bibmonth{datedecember}% + \else + #1\BibliographyWarning{Month out of range}% + \fi}% + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/lbx/portuges.lbx b/macros/latex/contrib/biblatex/latex/lbx/portuges.lbx new file mode 100644 index 0000000000..8e19b10701 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/lbx/portuges.lbx @@ -0,0 +1,7 @@ +\ProvidesFile{portuges.lbx} +[\abx@lbxid] + +\InheritBibliographyExtras{portuguese} +\InheritBibliographyStrings{portuguese} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/lbx/portuguese.lbx b/macros/latex/contrib/biblatex/latex/lbx/portuguese.lbx new file mode 100644 index 0000000000..3526b7968f --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/lbx/portuguese.lbx @@ -0,0 +1,537 @@ +\ProvidesFile{portuguese.lbx} +[\abx@lbxid] + +\DeclareRedundantLanguages{portuguese}{portuges,brazil} + +\DeclareBibliographyExtras{% + \protected\def\bibrangedash{% + \textendash\penalty\hyphenpenalty}% breakable dash + \let\finalandcomma=\empty + \let\finalandsemicolon=\empty + \def\mkbibordinal{\mkbibmascord}% + \protected\def\mkbibmascord#1{% + \stripzeros{#1}\textordmasculine}% \textordmasculine -> textcomp.sty + \protected\def\mkbibfemord#1{% + \stripzeros{#1}\textordfeminine}% \textordfeminine -> textcomp.sty + \protected\def\mkbibneutord{\mkbibmascord}% + \protected\def\mkbibdatelong#1#2#3{% + \iffieldundef{#3} + {} + {\stripzeros{\thefield{#3}}% + \iffieldundef{#2}{}{\nobreakspace de\space}}% + \iffieldundef{#2} + {} + {\mkbibmonth{\thefield{#2}}% + \iffieldundef{#1}{}{\nobreakspace de\space}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}% + \protected\def\mkbibdateshort#1#2#3{% + \iffieldundef{#3} + {} + {\mkdayzeros{\thefield{#3}}% + \iffieldundef{#2}{}{/}}% + \iffieldundef{#2} + {} + {\mkmonthzeros{\thefield{#2}}% + \iffieldundef{#1}{}{/}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}% + \savecommand\mkbibordedition + \savecommand\mkbibordseries + \def\mkbibordedition{\mkbibfemord}% + \def\mkbibordseries{\mkbibfemord}% + \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{% + \iffieldundef{#1}{} + {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}% + \iffieldundef{#2}{} + {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}% + \iffieldundef{#3}{} + {\printtext{\mktimezeros{\thefield{#3}}}}% + \setunit{}% + \iffieldundef{#4}{} + {\bibtimezonesep + \mkbibtimezone{\thefield{#4}}}}% + \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{% + \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep + \forcezerosmdt{\thefield{#2}}% + \iffieldundef{#3}{} + {\bibtimesep + \forcezerosmdt{\thefield{#3}}}% + \space + \ifnumless{\thefield{#1}}{12} + {\bibstring{am}} + {\bibstring{pm}}% + \iffieldundef{#4}{} + {\space\bibtimezonesep + \parentext{\mkbibtimezone{\thefield{#4}}}}}% + \protected\def\mkbibseasondateshort#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% + \protected\def\mkbibseasondatelong#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% +} + +\UndeclareBibliographyExtras{% + \restorecommand\mkbibordedition + \restorecommand\mkbibordseries +} + +\DeclareBibliographyStrings{% + bibliography = {{Bibliografia}{Bibliografia}}, + references = {{Refer\^encias}{Refer\^encias}}, + shorthands = {{Lista de Abreviaturas}{Abreviaturas}}, + editor = {{editor}{ed\adddot}}, + editors = {{editores}{eds\adddot}}, + compiler = {{compilador}{comp\adddot}}, + compilers = {{compiladores}{comp\adddot}}, + redactor = {{redator}{red\adddot}}, + redactors = {{redatores}{red\adddot}}, + reviser = {{revisor}{rev\adddot}}, + revisers = {{revisores}{rev\adddot}}, + founder = {{fundador}{fund\adddot}}, + founders = {{fundadores}{fund\adddot}}, + continuator = {{continuador}{cont\adddot}}, + continuators = {{continuadores}{cont\adddot}}, + collaborator = {{colaborador}{col\adddot}}, + collaborators = {{colaboradores}{col\adddot}}, + translator = {{tradutor}{trad\adddot}}, + translators = {{tradutores}{trad\adddot}}, + commentator = {{comentador}{coment\adddot}}, + commentators = {{comentadores}{coment\adddot}}, + annotator = {{anotador}{anot\adddot}}, + annotators = {{anotadores}{anot\adddot}}, + commentary = {{coment\'ario}{coment\adddot}}, + annotations = {{notas}{notas}}, + introduction = {{introdu\c{c}\~ao}{introd\adddot}}, + foreword = {{pref\'acio}{pref\adddot}}, + afterword = {{posf\'acio}{posf\adddot}}, + editortr = {{editor e tradutor}% + {ed\adddotspace e trad\adddot}}, + editorstr = {{editores e tradutores}% + {eds\adddotspace e trad\adddot}}, + editorco = {{editor e comentador}% + {ed\adddotspace e coment\adddot}}, + editorsco = {{editores e comentadores}% + {eds\adddotspace e coment\adddot}}, + editoran = {{editor e anotador}% + {ed\adddotspace e anot\adddot}}, + editorsan = {{editores e anotadores}% + {eds\adddotspace e anot\adddot}}, + editorin = {{editor e introdu\c{c}\~ao}% + {ed\adddotspace e introd\adddot}}, + editorsin = {{editores e introdu\c{c}\~ao}% + {eds\adddotspace e introd\adddot}}, + editorfo = {{editor e pref\'acio}% + {ed\adddotspace e pref\adddot}}, + editorsfo = {{editores e pref\'acio}% + {eds\adddotspace e pref\adddot}}, + editoraf = {{editor e posf\'acio}% + {ed\adddotspace e posf\adddot}}, + editorsaf = {{editores e posf\'acio}% + {eds\adddotspace e posf\adddot}}, + editortrco = {{editor, tradutor e comentador}% + {ed., trad\adddot\ e coment\adddot}}, + editorstrco = {{editores, tradutores e comentadores}% + {eds., trad\adddot\ e coment\adddot}}, + editortran = {{editor, tradutor e anotador}% + {ed., trad\adddot\ e anot\adddot}}, + editorstran = {{editores, tradutores e anotadores}% + {eds., trad\adddot\ e anot\adddot}}, + editortrin = {{editor, tradutor e introdu\c{c}\~ao}% + {ed., trad\adddot\ e introd\adddot}}, + editorstrin = {{editores, tradutores e introdu\c{c}\~ao}% + {eds., trad\adddot\ e introd\adddot}}, + editortrfo = {{editor, tradutor e pref\'acio}% + {ed., trad\adddot\ e pref\adddot}}, + editorstrfo = {{editores, tradutores e pref\'acio}% + {eds., trad\adddot\ e pref\adddot}}, + editortraf = {{editor, tradutor e posf\'acio}% + {ed., trad\adddot\ e posf\adddot}}, + editorstraf = {{editores, tradutores e posf\'acio}% + {eds., trad\adddot\ e posf\adddot}}, + editorcoin = {{editor, comentador e introdu\c{c}\~ao}% + {ed., coment\adddot\ e introd\adddot}}, + editorscoin = {{editores, comentadores e introdu\c{c}\~ao}% + {eds., coment\adddot\ e introd\adddot}}, + editorcofo = {{editor, comentador e pref\'acio}% + {ed., coment\adddot\ e pref\adddot}}, + editorscofo = {{editores, comentadores e pref\'acio}% + {eds., coment\adddot\ e pref\adddot}}, + editorcoaf = {{editor, comentador e posf\'acio}% + {ed., coment\adddot\ e posf\adddot}}, + editorscoaf = {{editores, comentadores e posf\'acio}% + {eds., coment\adddot\ e posf\adddot}}, + editoranin = {{editor, anotador e introdu\c{c}\~ao}% + {ed., anot\adddot\ e introd\adddot}}, + editorsanin = {{editores, anotadores e introdu\c{c}\~ao}% + {eds., anot\adddot\ e introd\adddot}}, + editoranfo = {{editor, anotador e pref\'acio}% + {ed., anot\adddot\ e pref\adddot}}, + editorsanfo = {{editores, anotadores e pref\'acio}% + {eds., anot\adddot\ e pref\adddot}}, + editoranaf = {{editor, anotador e posf\'acio}% + {ed., anot\adddot\ e posf\adddot}}, + editorsanaf = {{editores, anotadores e posf\'acio}% + {eds., anot\adddot\ e posf\adddot}}, + editortrcoin = {{editor, tradutor, comentador e introdu\c{c}\~ao}% + {ed., trad., coment\adddot\ e introd\adddot}}, + editorstrcoin = {{editores, tradutores, comentadores e introdu\c{c}\~ao}% + {eds., trad., coment\adddot\ e introd\adddot}}, + editortrcofo = {{editor, tradutor, comentador e pref\'acio}% + {ed., trad., coment\adddot\ e pref\adddot}}, + editorstrcofo = {{editores, tradutores, comentadores e pref\'acio}% + {eds., trad., coment\adddot\ e pref\adddot}}, + editortrcoaf = {{editor, tradutor, comentador e posf\'acio}% + {ed., trad., coment\adddot\ e posf\adddot}}, + editorstrcoaf = {{editores, tradutores, comentadores e posf\'acio}% + {eds., trad., coment\adddot\ e posf\adddot}}, + editortranin = {{editor, tradutor, anotador e introdu\c{c}\~ao}% + {ed., trad., anot\adddot\ e introd\adddot}}, + editorstranin = {{editores, tradutores, anotadores e introdu\c{c}\~ao}% + {eds., trad., anot\adddot\ e introd\adddot}}, + editortranfo = {{editor, tradutor, anotador e pref\'acio}% + {ed., trad., anot\adddot\ e pref\adddot}}, + editorstranfo = {{editores, tradutores, anotadores e pref\'acio}% + {eds., trad., anot\adddot\ e pref\adddot}}, + editortranaf = {{editor, tradutor, anotador e posf\'acio}% + {ed., trad., anot\adddot\ e posf\adddot}}, + editorstranaf = {{editores, tradutores, anotadores e posf\'acio}% + {eds., trad., anot\adddot\ e posf\adddot}}, + translatorco = {{tradutor e comentador}% + {trad\adddot\ e coment\adddot}}, + translatorsco = {{tradutores e comentadores}% + {trad\adddot\ e coment\adddot}}, + translatoran = {{tradutor e anotador}% + {trad\adddot\ e anot\adddot}}, + translatorsan = {{tradutores e anotadores}% + {trad\adddot\ e anot\adddot}}, + translatorin = {{tradu\c{c}\~ao e introdu\c{c}\~ao}% + {trad\adddot\ e introd\adddot}}, + translatorsin = {{tradu\c{c}\~ao e introdu\c{c}\~ao}% + {trad\adddot\ e introd\adddot}}, + translatorfo = {{tradu\c{c}\~ao e pref\'acio}% + {trad\adddot\ e pref\adddot}}, + translatorsfo = {{tradu\c{c}\~ao e pref\'acio}% + {trad\adddot\ e pref\adddot}}, + translatoraf = {{tradu\c{c}\~ao e posf\'acio}% + {trad\adddot\ e posf\adddot}}, + translatorsaf = {{tradu\c{c}\~ao e posf\'acio}% + {trad\adddot\ e posf\adddot}}, + translatorcoin = {{tradu\c{c}\~ao, coment\'ario e introdu\c{c}\~ao}% + {trad., coment\adddot\ e introd\adddot}}, + translatorscoin = {{tradu\c{c}\~ao, coment\'ario e introdu\c{c}\~ao}% + {trad., coment\adddot\ e introd\adddot}}, + translatorcofo = {{tradu\c{c}\~ao, coment\'ario e pref\'acio}% + {trad., coment\adddot\ e pref\adddot}}, + translatorscofo = {{tradu\c{c}\~ao, coment\'ario e pref\'acio}% + {trad., coment\adddot\ e pref\adddot}}, + translatorcoaf = {{tradu\c{c}\~ao, coment\'ario e posf\'acio}% + {trad., coment\adddot\ e posf\adddot}}, + translatorscoaf = {{tradu\c{c}\~ao, coment\'ario e posf\'acio}% + {trad., coment\adddot\ e posf\adddot}}, + translatoranin = {{tradu\c{c}\~ao, notas e introdu\c{c}\~ao}% + {trad., notas e introd\adddot}}, + translatorsanin = {{tradu\c{c}\~ao, notas e introdu\c{c}\~ao}% + {trad., notas e introd\adddot}}, + translatoranfo = {{tradu\c{c}\~ao, notas e pref\'acio}% + {trad., notas e pref\adddot}}, + translatorsanfo = {{tradu\c{c}\~ao, notas e pref\'acio}% + {trad., notas e pref\adddot}}, + translatoranaf = {{tradu\c{c}\~ao, notas e posf\'acio}% + {trad., notas e posf\adddot}}, + translatorsanaf = {{tradu\c{c}\~ao, notas e posf\'acio}% + {trad., notas e posf\adddot}}, + organizer = {{organizador}{org\adddot}}, + organizers = {{organizadores}{orgs\adddot}}, + byorganizer = {{organizado por}{org\adddotspace por}}, + byauthor = {{por}{por}}, + byeditor = {{editado por}{ed\adddotspace por}}, + bycompiler = {{compilado por}{comp\adddotspace por}}, + byredactor = {{redigido por}{red\adddotspace por}}, + byreviser = {{revisto por}{rev\adddotspace por}}, + byreviewer = {{resenhado por}{res\adddotspace por}},% FIXME: check + byfounder = {{fundado por}{fund\adddotspace por}}, + bycontinuator = {{continuado por}{cont\adddotspace por}}, + bycollaborator = {{em colabora\c{c}\~ao com}{em col\adddotspace com}}, + bytranslator = {{traduzido \lbx@lfromlang\ por}{trad\adddot\ \lbx@sfromlang\ por}}, + bycommentator = {{comentado por}{coment\adddot\ por}}, + byannotator = {{notas de}{notas de}}, + withcommentator = {{com coment\'arios de}{com coment\adddot\ de}}, + withannotator = {{com notas de}{com notas de}}, + withintroduction = {{com introdu\c{c}\~ao de}{com introd\adddot\ de}}, + withforeword = {{com pref\'acio de}{com pref\adddot\ de}}, + withafterword = {{com posf\'acio de}{com posf\adddot\ de}}, + byeditortr = {{editado e traduzido \lbx@lfromlang\ por}% + {ed\adddotspace e trad\adddot\ \lbx@sfromlang\ por}}, + byeditorco = {{editado e comentado por}% + {ed\adddotspace e coment\adddot\ por}}, + byeditoran = {{editado e anotado por}% + {ed\adddotspace e anot\adddot\ por}}, + byeditorin = {{editado e introduzido por}% + {ed\adddotspace e introd\adddot\ por}}, + byeditorfo = {{editado e prefaciado por}% + {ed\adddotspace e pref\adddot\ por}}, + byeditoraf = {{editado e posfaciado por}% + {ed\adddotspace e posf\adddot\ por}}, + byeditortrco = {{editado, traduzido \lbx@lfromlang\ e comentado por}% + {ed.,\addabbrvspace trad\adddot\ \lbx@sfromlang\ e coment\adddot\ por}}, + byeditortran = {{editado, traduzido \lbx@lfromlang\ e anotado por}% + {ed.,\addabbrvspace trad\adddot\ \lbx@sfromlang\ e anot\adddot\ por}}, + byeditortrin = {{editado, traduzido \lbx@lfromlang\ e introduzido por}% + {ed.,\addabbrvspace trad. \lbx@sfromlang\ e introd\adddot\ por}}, + byeditortrfo = {{editado, traduzido \lbx@lfromlang\ e prefaciado por}% + {ed.,\addabbrvspace trad. \lbx@sfromlang\ e pref\adddot\ por}}, + byeditortraf = {{editado, traduzido \lbx@lfromlang\ e posfaciado por}% + {ed.,\addabbrvspace trad. \lbx@sfromlang\ e posf\adddot\ por}}, + byeditorcoin = {{editado, comentado e introduzido por}% + {ed.,\addabbrvspace coment\adddot\ e introd\adddot\ por}}, + byeditorcofo = {{editado, comentado e prefaciado por}% + {ed.,\addabbrvspace coment\adddot\ e pref\adddot\ por}}, + byeditorcoaf = {{editado, comentado e posfaciado por}% + {ed.,\addabbrvspace coment\adddot\ e posf\adddot\ por}}, + byeditoranin = {{editado, anotado e introduzido por}% + {ed.,\addabbrvspace anot\adddot\ e introd\adddot\ por}}, + byeditoranfo = {{editado, anotado e prefaciado por}% + {ed.,\addabbrvspace anot\adddot\ e pref\adddot\ por}}, + byeditoranaf = {{editado, anotado e posfaciado por}% + {ed.,\addabbrvspace anot\adddot\ e posf\adddot\ por}}, + byeditortrcoin = {{editado, traduzido \lbx@lfromlang, comentado e introduzido por}% + {ed.,\addabbrvspace trad\adddot\ \lbx@sfromlang, coment\adddot\ e introd\adddot\ por}}, + byeditortrcofo = {{editado, traduzido \lbx@lfromlang, comentado e prefaciado por}% + {ed.,\addabbrvspace trad\adddot\ \lbx@sfromlang, coment\adddot\ e pref\adddot\ por}}, + byeditortrcoaf = {{editado, traduzido \lbx@lfromlang, comentado e posfaciado por}% + {ed.,\addabbrvspace trad\adddot\ \lbx@sfromlang, coment\adddot\ e posf\adddot\ por}}, + byeditortranin = {{editado, traduzido \lbx@lfromlang, anotado e introduzido por}% + {ed.,\addabbrvspace trad\adddot\ \lbx@sfromlang, anot\adddot\ e introd\adddot\ por}}, + byeditortranfo = {{editado, traduzido \lbx@lfromlang, anotado e prefaciado por}% + {ed.,\addabbrvspace trad\adddot\ \lbx@sfromlang, anot\adddot\ e pref\adddot\ por}}, + byeditortranaf = {{editado, traduzido \lbx@lfromlang, anotado e posfaciado por}% + {ed.,\addabbrvspace trad\adddot\ \lbx@sfromlang, anot\adddot\ e posf\adddot\ por}}, + bytranslatorco = {{traduzido \lbx@lfromlang\ e comentado por}% + {trad\adddot\ \lbx@sfromlang\ e coment\adddot\ por}}, + bytranslatoran = {{traduzido \lbx@lfromlang\ e anotado por}% + {trad\adddot\ \lbx@sfromlang\ e anot\adddot\ por}}, + bytranslatorin = {{traduzido \lbx@lfromlang\ e introduzido por}% + {trad\adddot\ \lbx@sfromlang\ e introd\adddot\ por}}, + bytranslatorfo = {{traduzido \lbx@lfromlang\ e prefaciado por}% + {trad\adddot\ \lbx@sfromlang\ e pref\adddot\ por}}, + bytranslatoraf = {{traduzido \lbx@lfromlang\ e posfaciado por}% + {trad\adddot\ \lbx@sfromlang\ e posf\adddot\ por}}, + bytranslatorcoin = {{traduzido \lbx@lfromlang, comentado e introduzido por}% + {trad\adddot\ \lbx@sfromlang, coment\adddot\ e introd\adddot\ por}}, + bytranslatorcofo = {{traduzido \lbx@lfromlang, comentado e prefaciado por}% + {trad\adddot\ \lbx@sfromlang, coment\adddot\ e pref\adddot\ por}}, + bytranslatorcoaf = {{traduzido \lbx@lfromlang, comentado e posfaciado por}% + {trad\adddot\ \lbx@sfromlang, coment\adddot\ e posf\adddot\ por}}, + bytranslatoranin = {{traduzido \lbx@lfromlang, anotado e introduzido por}% + {trad\adddot\ \lbx@sfromlang, anot\adddot\ e introd\adddot\ por}}, + bytranslatoranfo = {{traduzido \lbx@lfromlang, anotado e prefaciado por}% + {trad\adddot\ \lbx@sfromlang, anot\adddot\ e pref\adddot\ por}}, + bytranslatoranaf = {{traduzido \lbx@lfromlang, anotado e posfaciado por}% + {trad\adddot\ \lbx@sfromlang, anot\adddot\ e posf\adddot\ por}}, + and = {{e}{e}}, + andothers = {{et\addabbrvspace al\adddot}{et\addabbrvspace al\adddot}}, + andmore = {{et\addabbrvspace al\adddot}{et\addabbrvspace al\adddot}}, + volume = {{volume}{vol\adddot}}, + volumes = {{volumes}{vols\adddot}}, + involumes = {{em}{em}}, + jourvol = {{volume}{vol\adddot}}, + jourser = {{s\'erie}{s\'er\adddot}}, + book = {{livro}{livro}}, + part = {{parte}{parte}}, + issue = {{n\'umero}{n\'umero}}, + newseries = {{nova s\'erie}{nova s\'er\adddot}}, + oldseries = {{s\'erie antiga}{s\'er\adddot\ antiga}}, + edition = {{edi\c{c}\~ao}{ed\adddot}}, + reprint = {{reimpress\~ao}{reimpr\adddot}}, + reprintof = {{reimpress\~ao de}{reimpr\adddotspace de}}, + reprintas = {{reimpresso como}{reimpr\adddotspace como}}, + reprintfrom = {{reimpresso}{reimpr\adddot}},% FIXME: check + translationof = {{tradu\c{c}\~ao de}{trad\adddotspace de}},% FIXME: check + translationas = {{traduzido como}{trad\adddotspace como}},% FIXME: check + translationfrom = {{traduzido do}{trad\adddotspace do}},% FIXME: check + reviewof = {{resenha de}{res\adddotspace de}},% FIXME: check + origpubas = {{originalmente publicado como}{orig\adddotspace pub\adddotspace como}},% FIXME: check + origpubin = {{originalmente publicado em}{orig\adddotspace pub\adddotspace em}},% FIXME: check + astitle = {{como}{como}},% FIXME: check + bypublisher = {{por}{por}},% FIXME: check + nodate = {{sem data}{s\adddot d\adddot}},% FIXME: latin: sine die + page = {{p\'agina}{p\adddot}}, + pages = {{p\'aginas}{pp\adddot}}, + column = {{coluna}{col\adddot}}, + columns = {{colunas}{cols\adddot}}, + line = {{linha}{l\adddot}}, + lines = {{linhas}{ll\adddot}},% FIXME: check + verse = {{verso}{v\adddot}}, + verses = {{versos}{vv\adddot}},% FIXME: check + section = {{se\c{c}\~ao}{\S}}, + sections = {{se\c{c}\~oes}{\S\S}}, + paragraph = {{par\'agrafo}{par\adddot}}, + paragraphs = {{par\'agrafo}{par\adddot}}, + pagetotal = {{p\'agina}{p\adddot}}, + pagetotals = {{p\'aginas}{pp\adddot}}, + columntotal = {{coluna}{col\adddot}}, + columntotals = {{colunas}{cols\adddot}}, + linetotal = {{linha}{l\adddot}}, + linetotals = {{linhas}{ll\adddot}},% FIXME: check + versetotal = {{verso}{v\adddot}}, + versetotals = {{versos}{vv\adddot}},% FIXME: check + sectiontotal = {{se\c{c}\~ao}{\S}}, + sectiontotals = {{se\c{c}\~oes}{\S\S}}, + paragraphtotal = {{par\'agrafo}{par\adddot}}, + paragraphtotals = {{par\'agrafo}{par\adddot}}, + in = {{em}{em}}, + inseries = {{em}{em}}, + ofseries = {{de}{de}}, + number = {{n\'umero}{n\adddot\textordmasculine}}, + chapter = {{cap\'\i tulo}{cap\adddot}}, +% bathesis = {{}{}},% FIXME: missing + mathesis = {{tese de mestrado}{tese de mestrado}}, + phdthesis = {{tese de doutoramento}{tese de doutoramento}}, + candthesis = {{proposta de tese}{proposta de tese}}, + resreport = {{relat\'orio de pesquisa}{rel\adddotspace de pesquisa}}, + techreport = {{relat\'orio t\'ecnico}{rel\adddotspace t\'ec\adddot}}, + software = {{software}{software}}, + datacd = {{CD-ROM}{CD-ROM}}, + audiocd = {{CD \'audio}{CD \'audio}}, + version = {{vers\~ao}{vers\~ao}}, + url = {{URL}{URL}}, + urlfrom = {{URL}{URL}}, + urlseen = {{acedido em}{acedido em}}, + inpreparation = {{em prepara\c{c}\~ao}{em prep\adddot}}, + submitted = {{submetido}{subm\adddot}}, + forthcoming = {{no prelo}{no prelo}}, + inpress = {{no prelo}{no prelo}}, + prepublished = {{pr\'e publicado}{pr\'e pub\adddot}},% FIXME: check + citedas = {{doravante citado como}{doravante citado como}}, + thiscite = {{especialmente}{esp\adddot}},% FIXME: check + seenote = {{ver nota}{ver nota}}, + quotedin = {{apud}{apud}}, + idem = {{idem}{idem}}, + idemsm = {{idem}{idem}}, + idemsf = {{eadem}{eadem}}, + idemsn = {{idem}{idem}}, + idempm = {{eidem}{eidem}}, + idempf = {{eaedem}{eaedem}}, + idempn = {{eadem}{eadem}}, + idempp = {{eidem}{eidem}}, + ibidem = {{ibidem}{ibid\adddot}}, + opcit = {{op\adddotspace cit\adddot}{op\adddotspace cit\adddot}}, + loccit = {{loc\adddotspace cit\adddot}{loc\adddotspace cit\adddot}}, + confer = {{cf\adddot}{cf\adddot}}, + sequens = {{sq\adddot}{sq\adddot}}, + sequentes = {{sqq\adddot}{sqq\adddot}}, + passim = {{passim}{pass\adddot}}, + see = {{ver}{ver}}, + seealso = {{ver tamb\'em}{ver tamb\'em}}, + backrefpage = {{ver p\'agina}{ver p\adddot}}, + backrefpages = {{ver p\'aginas}{ver pp\adddot}}, + january = {{janeiro}{jan\adddot}}, + february = {{fevereiro}{fev\adddot}}, + march = {{mar\c{c}o}{mar\adddot}}, + april = {{abril}{abr\adddot}}, + may = {{maio}{mai\adddot}}, + june = {{junho}{jun\adddot}}, + july = {{julho}{jul\adddot}}, + august = {{agosto}{ago\adddot}}, + september = {{setembro}{set\adddot}}, + october = {{outubro}{out\adddot}}, + november = {{novembro}{nov\adddot}}, + december = {{dezembro}{dez\adddot}}, + langamerican = {{ingl\^es}{ingl\^es}}, + langbrazilian = {{portugu{\^e}s}{portugu{\^e}s}}, + langbulgarian = {{b\'ulgaro}{b\'ulgaro}}, + langcatalan = {{catal\~ao}{catal\~ao}}, + langcroatian = {{croata}{croata}}, + langczech = {{checo}{checo}}, + langdanish = {{dinamarqu\^es}{dinamarqu\^es}}, + langdutch = {{holand{\^e}s}{holand{\^e}s}}, + langenglish = {{ingl\^es}{ingl\^es}}, + langestonian = {{est\'onio}{est\'onio}},% FIXME: check + langfinnish = {{finland\^es}{finland\^es}}, + langfrench = {{franc\^es}{franc\^es}}, + langgalician = {{galego}{galego}}, + langgerman = {{alem\~ao}{alem\~ao}}, + langgreek = {{grego}{grego}}, +% langhungarian = {{}{}}, % FIXME: missing + langitalian = {{italiano}{italiano}}, + langjapanese = {{japon\^es}{japon\^es}}, + langlatin = {{latim}{latim}}, +% langlatvian = {{}{}},% FIXME: missing + langnorwegian = {{noruegu\^es}{noruegu\^es}}, + langpolish = {{polaco}{polaco}}, + langportuguese = {{portugu{\^e}s}{portugu{\^e}s}}, + langrussian = {{russo}{russo}}, + langslovak = {{eslovaco}{eslovaco}}, + langslovene = {{esloveno}{esloveno}}, + langspanish = {{espanhol}{espanhol}}, + langswedish = {{sueco}{sueco}}, + fromamerican = {{do ingl\^es}{do ingl\^es}}, + frombrazilian = {{do portugu{\^e}s}{do portugu{\^e}s}}, + frombulgarian = {{do b\'ulgaro}{do b\'ulgaro}}, + fromcatalan = {{do catal\~ao}{do catal\~ao}}, + fromcroatian = {{do croata}{do croata}}, + fromczech = {{do checo}{do checo}}, + fromdanish = {{do dinamarqu\^es}{do dinamarqu\^es}}, + fromdutch = {{do holand{\^e}s}{do holand{\^e}s}}, + fromenglish = {{do ingl\^es}{do ingl\^es}}, + fromestonian = {{do est\'onio}{do est\'onio}},% FIXME: check + fromfinnish = {{do finland\^es}{do finland\^es}}, + fromfrench = {{do franc\^es}{do franc\^es}}, + fromgalician = {{do galego}{do galego}}, + fromgerman = {{do alem\~ao}{do alem\~ao}}, + fromgreek = {{do grego}{do grego}}, +% fromhungarian = {{}{}}, % FIXME: missing + fromitalian = {{do italiano}{do italiano}}, + fromjapanese = {{do japon\^es}{do japon\^es}}, + fromlatin = {{do latim}{do latim}}, +% fromlatvian = {{}{}},% FIXME: missing + fromnorwegian = {{do noruegu\^es}{do noruegu\^es}}, + frompolish = {{do polaco}{do polaco}}, + fromportuguese = {{do portugu{\^e}s}{do portugu{\^e}s}}, + fromrussian = {{do russo}{do russo}}, + fromslovak = {{do eslovaco}{do eslovaco}}, + fromslovene = {{do esloveno}{do esloveno}}, + fromspanish = {{do espanhol}{do espanhol}}, + fromswedish = {{do sueco}{do sueco}}, + countryde = {{Alemanha}{DE}},% FIXME: abbrev.: ISO 3166 or translated? + countryeu = {{Uni\~ao Europeia}{EU}},% FIXME: abbrev.: ISO 3166 or translated? + countryep = {{Uni\~ao Europeia}{EP}},% FIXME: check + countryfr = {{Fran\c{c}a}{FR}},% FIXME: abbrev.: ISO 3166 or translated? + countryuk = {{Reino Unido}{GB}},% FIXME: abbrev.: ISO 3166 or translated? + countryus = {{Estados Unidos da Am\'erica}{US}},% FIXME: abbrev.: ISO 3166 or translated? + patent = {{patente}{pat\adddot}}, + patentde = {{patente alem\~a}{pat\adddot\ alem\~a}}, + patenteu = {{patente europeia}{pat\adddot\ europeia}}, + patentfr = {{patente francesa}{pat\adddot\ francesa}}, + patentuk = {{patente brit\^anica}{pat\adddot\ brit\^anica}}, + patentus = {{patente americana}{pat\adddot\ americana}}, + patreq = {{pedido de patente}{ped\adddot\ de pat\adddot}}, + patreqde = {{pedido de patente alem\~a}{ped\adddot\ de pat\adddot\ alem\~a}}, + patreqeu = {{pedido de patente europeia}{ped\adddot\ de pat\adddot\ europeia}}, + patreqfr = {{pedido de patente francesa}{ped\adddot\ de pat\adddot\ francesa}}, + patrequk = {{pedido de patente brit\^anica}{ped\adddot\ de pat\adddot\ brit\^anica}}, + patrequs = {{pedido de patente americana}{ped\adddot\ de pat\adddot\ americana}}, + file = {{arquivo}{arq\adddot}}, + library = {{biblioteca}{bibl\adddot}}, + abstract = {{resumo}{res\adddot}}, + annotation = {{anota\c{c}\~ao}{anot\adddot}}, + commonera = {{Era Comum}{EC}}, + beforecommonera = {{antes da Era Comum}{AEC}}, + annodomini = {{depois de Cristo}{d\adddot C\adddot}}, + beforechrist = {{antes de Cristo}{a\adddot C\adddot}}, + circa = {{circa}{ca}},% FIXME: latin: circa. pt: cerca de ...(data) + spring = {{primavera}{primavera}}, + summer = {{ver\~ao}{ver\~ao}}, + autumn = {{outono}{outono}}, + winter = {{inverno}{inverno}}, + am = {{AM}{AM}}, + pm = {{PM}{PM}}, +} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/lbx/russian.lbx b/macros/latex/contrib/biblatex/latex/lbx/russian.lbx new file mode 100644 index 0000000000..bc7817c546 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/lbx/russian.lbx @@ -0,0 +1,602 @@ +\ProvidesFile{russian.lbx} +[\abx@lbxid] + +\DeclareRedundantLanguages{russian}{russian} + +% This file requires UTF-8 support! + +\lbx@ifutfinput + {} + {\PackageError{biblatex} + {Russian requires UTF-8 support} + {The 'russian.lbx' file requires UTF-8 encoding but you + seem\MessageBreak to be using a different encoding. + This is a fatal error. I will\MessageBreak abort loading + russian.lbx now.}% + \endinput} + +\NewBibliographyString{% Used only Russian for month checks + datejanuary, + datefebruary, + datemarch, + dateapril, + datemay, + datejune, + datejuly, + dateaugust, + dateseptember, + dateoctober, + datenovember, + datedecember% +} + +\DeclareBibliographyExtras{% + \protected\def\bibrangedash{% + \textemdash\penalty\hyphenpenalty}% breakable dash + \let\finalandcomma=\empty + \let\finalandsemicolon=\empty + \protected\def\mkbibordinal#1{\mkbibmascord}% + \protected\def\mkbibmascord#1{#1-й}% + \protected\def\mkbibfemord#1{#1-я}% + \protected\def\mkbibneutord#1{#1-е}% + \protected\def\mkbibdatelong#1#2#3{% + \iffieldundef{#3} + {} + {\stripzeros{\thefield{#3}}% + \iffieldundef{#2}{}{\nobreakspace}}% + \iffieldundef{#2} + {} + {\iffieldundef{#3} + {\mkbibmonth{\thefield{#2}}} + {\lbx@ru@mkbibdatemonth{\thefield{#2}}}% + \iffieldundef{#1}{}{\space}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}% + \protected\def\mkbibdateshort#1#2#3{% + \iffieldundef{#3} + {} + {\mkdayzeros{\thefield{#3}}% + \iffieldundef{#2}{}{\adddot}}% + \iffieldundef{#2} + {} + {\mkmonthzeros{\thefield{#2}}% + \iffieldundef{#1}{}{\adddot}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}% + \savecommand\mkbibordedition + \savecommand\mkbibordseries + \def\mkbibordedition{\mkbibneutord}% + \def\mkbibordseries{\mkbibfemord}% + \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{% + \iffieldundef{#1}{} + {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}% + \iffieldundef{#2}{} + {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}% + \iffieldundef{#3}{} + {\printtext{\mktimezeros{\thefield{#3}}}}% + \setunit{}% + \iffieldundef{#4}{} + {\bibtimezonesep + \mkbibtimezone{\thefield{#4}}}}% + \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{% + \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep + \forcezerosmdt{\thefield{#2}}% + \iffieldundef{#3}{} + {\bibtimesep + \forcezerosmdt{\thefield{#3}}}% + \space + \ifnumless{\thefield{#1}}{12} + {\bibstring{am}} + {\bibstring{pm}}% + \iffieldundef{#4}{} + {\space\bibtimezonesep + \parentext{\mkbibtimezone{\thefield{#4}}}}}% + \protected\def\mkbibseasondateshort#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% + \protected\def\mkbibseasondatelong#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% +} + +\UndeclareBibliographyExtras{% + \restorecommand\mkbibordedition + \restorecommand\mkbibordseries +} + +\DeclareBibliographyStrings{% + bibliography = {{Список литературы}{Список литературы}},%book-like (chapter) + references = {{Список литературы}{Список литературы}},%article-like (section) + shorthands = {{Список сокращений}{Сокращения}}, + editor = {{редактор}{ред\adddot}}, + editors = {{редакторы}{ред\adddot}}, + compiler = {{составитель}{сост\adddot}}, + compilers = {{составители}{сост\adddot}}, + redactor = {{редактор}{ред\adddot}},% FIXME: unsure + redactors = {{редакторы}{ред\adddot}},% FIXME: unsure + reviser = {{ревизионный корректор}{ревиз\adddotspace кор\adddot}}, + revisers = {{ревизионные корректоры}{ревиз\adddotspace кор\adddot}}, + founder = {{основатель}{осн\adddot}}, + founders = {{основатели}{осн\adddot}}, + continuator = {{продолжатель}{прод\adddot}},% FIXME: unsure + continuators = {{продолжатели}{прод\adddot}},% FIXME: unsure + collaborator = {{участник}{участ\adddot}},% FIXME: unsure + collaborators = {{участники}{участ\adddot}},% FIXME: unsure + translator = {{переводчик}{пер\adddot}}, + translators = {{переводчики}{пер\adddot}}, + commentator = {{комментатор}{коммент\adddot}}, + commentators = {{комментаторы}{коммент\adddot}}, + annotator = {{примечания}{примеч\adddot}}, + annotators = {{примечания}{примеч\adddot}}, + commentary = {{комментарий}{коммент\adddot}}, + annotations = {{примечания}{примеч\adddot}}, + introduction = {{вступительная статья}{вступ\adddotspace ст\adddot}}, + foreword = {{предисловие}{предисл\adddot}}, + afterword = {{послесловие}{послесл\adddot}}, + editortr = {{редактор и переводчик}% + {ред\adddotspace и пер\adddot}}, + editorstr = {{редакторы и переводчики}% + {ред\adddotspace и пер\adddot}}, + editorco = {{редактор и комментатор}% + {ред\adddotspace и коммент\adddot}}, + editorsco = {{редакторы и комментаторы}% + {ред\adddotspace и коммент\adddot}}, + editoran = {{редактор и составитель примечаний}% + {ред\adddotspace и сост\adddotspace примеч\adddot}}, + editorsan = {{редакторы и составители примечаний}% + {ред\adddotspace и сост\adddotspace примеч\adddot}}, + editorin = {{редактор и автор вступительной статьи}% + {ред\adddotspace и авт\adddotspace вступ\adddotspace ст\adddot}}, + editorsin = {{редакторы и авторы вступительной статьи}% + {ред\adddotspace и авт\adddotspace вступ\adddotspace ст\adddot}}, + editorfo = {{редактор и автор предисловия}% + {ред\adddotspace и авт\adddotspace предисл\adddot}}, + editorsfo = {{редакторы и авторы предисловия}% + {ред\adddotspace и авт\adddotspace предисл\adddot}}, + editoraf = {{редактор и автор послесловия}% + {ред\adddotspace и авт\adddotspace послесл\adddot}}, + editorsaf = {{редакторы и авторы послесловия}% + {ред\adddotspace и авт\adddotspace послесл\adddot}}, + editortrco = {{редактор, переводчик и автор комментариев}% + {ред.,\addabbrvspace пер\adddotspace и авт\adddotspace коммент\adddot}}, + editorstrco = {{редакторы, переводчики и авторы комментариев}% + {ред.,\addabbrvspace пер\adddotspace и авт\adddotspace коммент\adddot}}, + editortran = {{редактор, переводчик и составитель примечаний}% + {ред.,\addabbrvspace пер\adddotspace и сост\adddotspace примеч\adddot}}, + editorstran = {{редакторы, переводчики и составители примечаний}% + {ред.,\addabbrvspace пер\adddotspace и сост\adddotspace примеч\adddot}}, + editortrin = {{редактор, переводчик и автор вступительной статьи}% + {ред.,\addabbrvspace пер\adddotspace и авт\adddotspace вступ\adddotspace ст\adddot}}, + editorstrin = {{редакторы, переводчики и авторы вступительной статьи}% + {ред.,\addabbrvspace пер\adddotspace и авт\adddotspace вступ\adddotspace ст\adddot}}, + editortrfo = {{редактор, переводчик и автор предисловия}% + {ред.,\addabbrvspace пер\adddotspace и авт\adddotspace предисл\adddot}}, + editorstrfo = {{редакторы, переводчики и авторы предисловия}% + {ред.,\addabbrvspace пер\adddotspace и авт\adddotspace предисл\adddot}}, + editortraf = {{редактор, переводчик и автор послесловия}% + {ред.,\addabbrvspace пер\adddotspace и авт\adddotspace послесловия\adddot}}, + editorstraf = {{редакторы, переводчики и авторы послесловия}% + {ред.,\addabbrvspace пер\adddotspace и авт\adddotspace послесл\adddot}}, + editorcoin = {{редактор, автор комментариев и вступительной статьи}% + {ред.,\addabbrvspace авт\adddotspace коммент\adddotspace и вступ\adddotspace ст\adddot}}, + editorscoin = {{редакторы, авторы комментариев и вступительной статьи}% + {ред.,\addabbrvspace авт\adddotspace коммент\adddotspace и вступ\adddotspace ст\adddot}}, + editorcofo = {{редактор, автор комментариев и предисловия}% + {ред.,\addabbrvspace авт\adddotspace коммент\adddotspace и предисл\adddot}}, + editorscofo = {{редакторы, авторы комментариев и предисловия}% + {ред.,\addabbrvspace авт\adddotspace коммент\adddotspace и предисл\adddot}}, + editorcoaf = {{редактор, автор комментариев и послесловия}% + {ред.,\addabbrvspace авт\adddotspace коммент\adddotspace и послесл\adddot}}, + editorscoaf = {{редакторы, авторы комментариев и послесловия}% + {ред.,\addabbrvspace авт\adddotspace коммент\adddotspace и послесл\adddot}}, + editoranin = {{редактор, составитель примечаний и автор вступительной статьи}% + {ред.,\addabbrvspace сост\adddotspace примеч\adddotspace и авт\adddotspace вступ\adddotspace ст\adddot}}, + editorsanin = {{редакторы, составители примечаний и авторы вступительной статьи}% + {ред.,\addabbrvspace сост\adddotspace примеч\adddotspace и авт\adddotspace вступ\adddotspace ст\adddot}}, + editoranfo = {{редактор, составитель примечаний и автор предисловия}% + {ред.,\addabbrvspace сост\adddotspace примеч\adddotspace и авт\adddotspace предисл\adddot}}, + editorsanfo = {{редакторы, составители примечаний и авторы предисловия}% + {ред.,\addabbrvspace сост\adddotspace примеч\adddotspace и авт\adddotspace предисл\adddot}}, + editoranaf = {{редактор, составитель примечаний и автор послесловия}% + {ред.,\addabbrvspace сост\adddotspace примеч\adddotspace и авт\adddotspace послесл\adddot}}, + editorsanaf = {{редакторы, составители примечаний и авторы послесловия}% + {ред.,\addabbrvspace сост\adddotspace примеч\adddotspace и авт\adddotspace послесл\adddot}}, + editortrcoin = {{редактор, переводчик, автор комментариев и вступительной статьи}% + {ред.,\addabbrvspace пер.,\addabbrvspace авт\adddotspace коммент\adddotspace и вступ\adddotspace ст\adddot}}, + editorstrcoin = {{редакторы, переводчики, авторы комментариев и вступительной статьи}% + {ред.,\addabbrvspace пер.,\addabbrvspace авт\adddotspace коммент\adddotspace и вступ\adddotspace ст\adddot}}, + editortrcofo = {{редактор, переводчик, автор комментариев и предисловия}% + {ред.,\addabbrvspace пер.,\addabbrvspace авт\adddotspace коммент\adddotspace и предисл\adddot}}, + editorstrcofo = {{редакторы, переводчики, авторы комментариев и предисловия}% + {ред.,\addabbrvspace пер.,\addabbrvspace авт\adddotspace коммент\adddotspace и предисл\adddot}}, + editortrcoaf = {{редактор, переводчик, автор комментариев и послесловия}% + {ред.,\addabbrvspace пер.,\addabbrvspace авт\adddotspace коммент\adddotspace и послесл\adddot}}, + editorstrcoaf = {{редакторы, переводчики, авторы комментариев и послесловия}% + {ред.,\addabbrvspace пер.,\addabbrvspace авт\adddotspace коммент\adddotspace и послесл\adddot}}, + editortranin = {{редактор, переводчик, составитель примечаний и автор вступительной статьи}% + {ред.,\addabbrvspace пер.,\addabbrvspace сост\adddotspace примеч\adddotspace и авт\adddotspace вступ\adddotspace ст\adddot}}, + editorstranin = {{редакторы, переводчики, составители примечаний и авторы вступительной статьи}% + {ред.,\addabbrvspace пер.,\addabbrvspace сост\adddotspace примеч\adddotspace и авт\adddotspace вступ\adddotspace ст\adddot}}, + editortranfo = {{редактор, переводчик, составитель примечаний и автор предисловия}% + {ред.,\addabbrvspace пер.,\addabbrvspace сост\adddotspace примеч\adddotspace и авт\adddotspace предисл\adddot}}, + editorstranfo = {{редакторы, переводчики, составители примечаний и авторы предисловия}% + {ред.,\addabbrvspace пер.,\addabbrvspace сост\adddotspace примеч\adddotspace и авт\adddotspace предисл\adddot}}, + editortranaf = {{редактор, переводчик, составитель примечаний и автор послесловия}% + {ред.,\addabbrvspace пер.,\addabbrvspace сост\adddotspace примеч\adddotspace и авт\adddotspace послесл\adddot}}, + editorstranaf = {{редакторы, переводчики, составители примечаний и авторы послесловия}% + {ред.,\addabbrvspace пер.,\addabbrvspace сост\adddotspace примеч\adddotspace и авт\adddotspace послесл\adddot}}, + translatorco = {{переводчик и автор комментариев}% + {пер\adddotspace и авт\adddotspace коммент\adddot}}, + translatorsco = {{переводчики и авторы комментариев}% + {пер\adddotspace и авт\adddotspace коммент\adddot}}, + translatoran = {{переводчик и автор примечаний}% + {пер\adddotspace и сост\adddotspace примеч\adddot}}, + translatorsan = {{переводчики и составители примечаний}% + {пер\adddotspace и сост\adddotspace примеч\adddot}}, + translatorin = {{переводчик и автор вступительной статьи}% + {пер\adddotspace и авт\adddotspace вступ\adddotspace ст\adddot}}, + translatorsin = {{переводчики и авторы вступительной статьи}% + {пер\adddotspace и авт\adddotspace вступ\adddotspace ст\adddot}}, + translatorfo = {{переводчик и автор предисловия}% + {пер\adddotspace и авт\adddotspace предисл\adddot}}, + translatorsfo = {{переводчики и авторы предисловия}% + {пер\adddotspace и авт\adddotspace предисл\adddot}}, + translatoraf = {{переводчик и автор послесловия}% + {пер\adddotspace и авт\adddotspace послесл\adddot}}, + translatorsaf = {{переводчики и авторы послесловия}% + {пер\adddotspace и авт\adddotspace послесл\adddot}}, + translatorcoin = {{переводчик, автор комментариев и вступительной статьи}% + {пер.,\addabbrvspace авт\adddotspace коммент\adddotspace и вступ\adddotspace ст\adddot}}, + translatorscoin = {{переводчики, авторы комментариев и вступительной статьи}% + {пер.,\addabbrvspace авт\adddotspace коммент\adddotspace и вступ\adddotspace ст\adddot}}, + translatorcofo = {{переводчик, автор комментариев и предисловия}% + {пер.,\addabbrvspace авт\adddotspace коммент\adddotspace и предисл\adddot}}, + translatorscofo = {{переводчики, авторы комментариев и предисловия}% + {пер.,\addabbrvspace авт\adddotspace коммент\adddotspace и предисл\adddot}}, + translatorcoaf = {{переводчик, автор комментариев и послесловия}% + {пер.,\addabbrvspace авт\adddotspace коммент\adddotspace и послесл\adddot}}, + translatorscoaf = {{переводчики, авторы комментариев и послесловия}% + {пер.,\addabbrvspace авт\adddotspace коммент\adddotspace и послесл\adddot}}, + translatoranin = {{переводчик, автор комментариев и вступительной статьим}% + {пер.,\addabbrvspace авт\adddotspace коммент\adddotspace и вступ\adddotspace ст\adddot}}, + translatorsanin = {{переводчики, авторы комментариев и вступительной статьи}% + {пер.,\addabbrvspace авт\adddotspace коммент\adddotspace и вступ\adddotspace ст\adddot}}, + translatoranfo = {{переводчик, автор комментариев и предисловия}% + {пер.,\addabbrvspace авт\adddotspace коммент\adddotspace и предисл\adddot}}, + translatorsanfo = {{переводчики, авторы комментариев и предисловия}% + {пер.,\addabbrvspace авт\adddotspace коммент\adddotspace и предисл\adddot}}, + translatoranaf = {{переводчик, автор комментариев и послесловия}% + {пер.,\addabbrvspace авт\adddotspace коммент\adddotspace и послесл\adddot}}, + translatorsanaf = {{переводчики, авторы комментариев и послесловия}% + {пер.,\addabbrvspace авт\adddotspace коммент\adddotspace и послесл\adddot}}, + organizer = {{организатор}{орг\adddot}}, + organizers = {{организаторы}{орг\adddot}}, + byorganizer = {{организатор}{орг\adddot}},% FIXME: unsure + byauthor = {{}{}}, + byeditor = {{под редакцией}{под\addabbrvspace ред\adddot}}, + bycompiler = {{составитель}{сост\adddot}}, + byredactor = {{под редакцией}{под\addabbrvspace ред\adddot}}, + byreviser = {{исправлено}{испр\adddot}}, + byreviewer = {{рецензия}{рец\adddot}}, + byfounder = {{учредитель}{учр\adddot}},% FIXME: unsure + bycontinuator = {{продолжение}{продолж\adddot}},% FIXME: unsure + bycollaborator = {{при участии}{при\addabbrvspace уч\adddot}}, + bytranslator = {{перевод \lbx@lfromlang}{пер\adddot\ \lbx@sfromlang}}, + bycommentator = {{комментарии}{коммент\adddot}}, + byannotator = {{примечания}{примеч\adddot}}, + withcommentator = {{комментарии}{коммент\adddot}}, + withannotator = {{примечания}{примеч\adddot}}, + withintroduction = {{вступительная статья}{вступ\adddotspace ст\adddot}}, + withforeword = {{предисловие}{предисл\adddot}}, + withafterword = {{послесловие}{послесл\adddot}}, + byeditortr = {{перевод \lbx@lfromlang, под редакцией}% + {пер\adddot\ \lbx@sfromlang, под\addabbrvspace ред\adddot}}, + byeditorco = {{под редакцией, комментарии}% + {под ред.,\addabbrvspace коммент\adddot}}, + byeditoran = {{под редакцией, примечания}% + {под ред.,\addabbrvspace примеч\adddot}}, + byeditorin = {{под редакцией, вступительная статья}% + {под ред.,\addabbrvspace вступ\adddotspace ст\adddot}}, + byeditorfo = {{под редакцией, предисловие}% + {под ред.,\addabbrvspace предисл\adddot}}, + byeditoraf = {{под редакцией, послесловие}% + {под ред.,\addabbrvspace послесл\adddot}}, + byeditortrco = {{под редакцией, перевод \lbx@lfromlang\ и комментарии}% + {под ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang\ и коммент\adddot}}, + byeditortran = {{под редакцией, перевод \lbx@lfromlang\ и примечания}% + {под ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang\ и примеч\adddot}}, + byeditortrin = {{под редакцией, перевод \lbx@lfromlang, вступительная статья}% + {под ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang, вступ\adddotspace ст\adddot}}, + byeditortrfo = {{под редакцией, перевод \lbx@lfromlang, предисловие}% + {под ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang, предисл\adddot}}, + byeditortraf = {{под редакцией, перевод \lbx@lfromlang, послесловие}% + {под ред\adddotspace и пер\adddot\ \lbx@sfromlang, послесл\adddot}}, + byeditorcoin = {{под редакцией, комментарии и вступительная статья}% + {под ред.,\addabbrvspace коммент\adddotspace и вступ\adddotspace ст\adddot}}, + byeditorcofo = {{под редакцией, комментарии и предисловие}% + {под ред.,\addabbrvspace коммент\adddotspace и предисл\adddot}}, + byeditorcoaf = {{под редакцией, комментарии и послесловие}% + {под ред.,\addabbrvspace коммент\adddotspace и послесл\adddot}}, + byeditoranin = {{под редакцией, примечания и вступительная статья}% + {под ред.,\addabbrvspace примеч\adddotspace и вступ\adddotspace ст\adddot}}, + byeditoranfo = {{под редакцией, примечания и предисловие}% + {под ред.,\addabbrvspace примеч\adddotspace и предисл\adddot}}, + byeditoranaf = {{под редакцией, примечания и послесловие}% + {под ред.,\addabbrvspace примеч\adddotspace и послесл\adddot}}, + byeditortrcoin = {{под редакцией, перевод \lbx@lfromlang, комментарии и вступительная статья}% + {под ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang, коммент\adddotspace и вступ\adddotspace ст\adddot}}, + byeditortrcofo = {{под редакцией, перевод \lbx@lfromlang, комментарии и предисловие}% + {под ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang, коммент\adddotspace и предисл\adddot}}, + byeditortrcoaf = {{под редакцией, перевод \lbx@lfromlang, комментарии и послесловие}% + {под ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang, коммент\adddotspace и послесл\adddot}}, + byeditortranin = {{под редакцией, перевод \lbx@lfromlang, примечания и вступительная статья}% + {под ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang, примеч\adddotspace и вступ\adddotspace ст\adddot}}, + byeditortranfo = {{под редакцией, перевод \lbx@lfromlang, примечания и предисловие}% + {под ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang, примеч\adddotspace и предисл\adddot}}, + byeditortranaf = {{под редакцией, перевод \lbx@lfromlang, примечания и послесловие}% + {под ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang, примеч\adddotspace и послесл\adddot}}, + bytranslatorco = {{перевод \lbx@lfromlang\ и комментарии}% + {пер\adddot\ \lbx@sfromlang\ и коммент\adddot}}, + bytranslatoran = {{перевод \lbx@lfromlang\ и примечания}% + {пер\adddot\ \lbx@sfromlang\ и примеч\adddot}}, + bytranslatorin = {{перевод \lbx@lfromlang\ и вступительная статья}% + {пер\adddot\ \lbx@sfromlang\ и вступ\adddotspace ст\adddot}}, + bytranslatorfo = {{перевод \lbx@lfromlang\ и предисловие}% + {пер\adddot\ \lbx@sfromlang\ и предисл\adddot}}, + bytranslatoraf = {{перевод \lbx@lfromlang\ и послесловие}% + {пер\adddot\ \lbx@sfromlang\ и и послесл\adddot}}, + bytranslatorcoin = {{перевод \lbx@lfromlang, комментарии и вступительная статья}% + {пер\adddot\ \lbx@sfromlang, коммент\adddotspace и вступ\adddotspace ст\adddot}}, + bytranslatorcofo = {{перевод \lbx@lfromlang, комментарии и предисловие}% + {пер\adddot\ \lbx@sfromlang, коммент\adddotspace и предисл\adddot}}, + bytranslatorcoaf = {{перевод \lbx@lfromlang, комментарии и послесловие}% + {пер\adddot\ \lbx@sfromlang, коммент\adddotspace и послесл\adddot}}, + bytranslatoranin = {{перевод \lbx@lfromlang, примечания и вступительная статья}% + {пер\adddot\ \lbx@sfromlang, примеч\adddotspace и вступ\adddotspace ст\adddot}}, + bytranslatoranfo = {{перевод \lbx@lfromlang, примечания и предисловие}% + {пер\adddot\ \lbx@sfromlang, примеч\adddotspace и предисл\adddot}}, + bytranslatoranaf = {{перевод \lbx@lfromlang, примечания и послесловие}% + {пер\adddot\ \lbx@sfromlang, примеч\adddotspace и послесл\adddot}}, + and = {{и}{и}}, + andothers = {{и\addabbrvspace др\adddot}{и\addabbrvspace др\adddot}}, + andmore = {{и\addabbrvspace др\adddot}{и\addabbrvspace др\adddot}}, + volume = {{том}{т\adddot}}, + volumes = {{томах}{т\adddot}}, + involumes = {{в}{в}}, + jourvol = {{том}{т\adddot}}, + jourser = {{серия}{сер\adddot}}, + book = {{книга}{кн\adddot}}, + part = {{часть}{ч\adddot}}, + issue = {{выпуск}{вып\adddot}}, + newseries = {{новая серия}{нов\adddotspace сер\adddot}}, + oldseries = {{старая серия}{стар\adddotspace сер\adddot}}, + edition = {{издание}{изд\adddot}}, + reprint = {{переиздание}{переизд\adddot}}, + reprintof = {{переиздание}{переизд\adddot}}, + reprintas = {{переиздано как}{переизд\adddotspace как}}, + reprintfrom = {{переиздано с}{переизд\adddotspace с}}, + translationof = {{перевод по изданию\addcolon}{пер\adddotspace по изд\adddot\addcolon}}, + translationas = {{перевод\addcolon}{пер\adddot\addcolon}}, + translationfrom = {{перевод с}{пер\adddotspace с}}, + reviewof = {{рецензия на\addcolon}{рец\adddotspace на\addcolon}},% FIXME: unsure + origpubas = {{первая публикация\addcolon}% + {перв\adddotspace публ\adddot\addcolon}}, + origpubin = {{первая публикация в}% + {перв\adddotspace публ\adddotspace в}}, + astitle = {{\addcolon}{\addcolon}},% FIXME: unsure + bypublisher = {{\addcomma}{\addcomma}},% FIXME: unsure + nodate = {{б\adddot г\adddot}{б\adddot г\adddot}}, + page = {{страница}{с\adddot}}, + pages = {{страницы}{с\adddot}}, + column = {{колонка}{кол\adddot}}, + columns = {{колонки}{кол\adddot}}, + line = {{строка}{строка}}, + lines = {{строки}{строка}}, + verse = {{стих}{стих}}, + verses = {{стихи}{стихи}}, + section = {{параграф}{\S}}, + sections = {{параграфы}{\S\S}}, + paragraph = {{абзац}{абз\adddot}}, + paragraphs = {{абзацы}{абз\adddot}}, + pagetotal = {{страница}{с\adddot}}, + pagetotals = {{страницы}{с\adddot}}, + columntotal = {{колонка}{кол\adddot}}, + columntotals = {{колонки}{кол\adddot}}, + linetotal = {{строка}{строка}}, + linetotals = {{строки}{строка}}, + versetotal = {{стих}{стих}}, + versetotals = {{стихи}{стихи}}, + sectiontotal = {{параграф}{\S}}, + sectiontotals = {{параграфы}{\S\S}}, + paragraphtotal = {{абзац}{абз\adddot}}, + paragraphtotals = {{абзацы}{абз\adddot}}, + in = {{в}{в}}, + inseries = {{в}{в}}, + ofseries = {{из}{из}}, + number = {{номер}{№}}, + chapter = {{глава}{гл\adddot}}, +% bathesis = {{}{}},% FIXME: missing + mathesis = {{дис\adddotspace\textellipsis\ маг\adddot} + {дис\adddotspace\textellipsis\ маг\adddot}}, + phdthesis = {{дис\adddotspace\textellipsis\ док\adddot} + {дис\adddotspace\textellipsis\ док\adddot}}, + candthesis = {{дис\adddotspace\textellipsis\ канд\adddot} + {дис\adddotspace\textellipsis\ канд\adddot}}, + resreport = {{научный отчёт}{науч\adddotspace отч\adddot}}, + techreport = {{технический отчёт}{тех\adddotspace отч\adddot}}, + software = {{программное обеспечение}{прогр\adddotspace обесп\adddot}}, + datacd = {{CD-ROM}{CD-ROM}}, + audiocd = {{audio CD}{audio CD}}, + version = {{версия}{вер\adddot}}, + url = {{url}{url}}, + urlfrom = {{режим доступа}{режим доступа}}, + urlseen = {{дата обращения}{дата\addabbrvspace обр\adddot}}, + inpreparation = {{в\addabbrvspace подготовке}{в подг\adddot}}, + submitted = {{представлено}{предст\adddot}}, + forthcoming = {{в печати}{в печ\adddot}}, + inpress = {{в\addabbrvspace печати}{в печ\adddot}}, + prepublished = {{предварительная публикация}{пред\adddotspace пуб\adddot}},% FIXME: unsure + citedas = {{далее цитируется как}{далее цит\addabbrvspace как}}, + thiscite = {{здесь}{здесь}}, + seenote = {{смотри сноску}{см\adddotspace сн\adddot}}, + quotedin = {{цитируется по}{цит\adddotspace по}}, + idem = {{он\addabbrvspace же}{он\addabbrvspace же}}, + idemsm = {{он\addabbrvspace же}{он\addabbrvspace же}}, + idemsf = {{она\addabbrvspace же}{она\addabbrvspace же}}, + idemsn = {{он\addabbrvspace же}{он\addabbrvspace же}}, + idempm = {{они\addabbrvspace же}{они\addabbrvspace же}}, + idempf = {{они\addabbrvspace же}{они\addabbrvspace же}}, + idempn = {{они\addabbrvspace же}{они\addabbrvspace же}}, + idempp = {{они\addabbrvspace же}{они\addabbrvspace же}}, + ibidem = {{там\addabbrvspace же}{там\addabbrvspace же}}, + opcit = {{указ\adddotspace соч\adddot}{указ\adddotspace соч\adddot}}, + loccit = {{указ\adddotspace место}{указ\adddotspace место}}, + confer = {{сравни}{ср\adddot}}, + sequens = {{и следующая}{и\addabbrvspace сл\adddot}}, + sequentes = {{и следующие}{и\addabbrvspace сл\adddot}}, + passim = {{всюду}{всюду}}, + see = {{смотри}{см\adddot}}, + seealso = {{смотри также}{см\adddotspace также}}, + backrefpage = {{цитируется на странице}{цит\adddotspace на\addabbrvspace с\adddot}}, + backrefpages = {{цитируется на страницах}{цит\adddotspace на\addabbrvspace с\adddot}}, + january = {{январь}{янв\adddot}}, + february = {{февраль}{февр\adddot}}, + march = {{март}{март}}, + april = {{апрель}{апр\adddot}}, + may = {{май}{май}}, + june = {{июнь}{июнь}}, + july = {{июль}{июль}}, + august = {{август}{авг\adddot}}, + september = {{сентябрь}{сент\adddot}}, + october = {{октябрь}{окт\adddot}}, + november = {{ноябрь}{нояб\adddot}}, + december = {{декабрь}{дек\adddot}}, + datejanuary = {{января}{янв\adddot}}, + datefebruary = {{февраля}{февр\adddot}}, + datemarch = {{марта}{марта}}, + dateapril = {{апреля}{апр\adddot}}, + datemay = {{мая}{мая}}, + datejune = {{июня}{июня}}, + datejuly = {{июля}{июля}}, + dateaugust = {{августа}{авг\adddot}}, + dateseptember = {{сентября}{сент\adddot}}, + dateoctober = {{октября}{окт\adddot}}, + datenovember = {{ноября}{нояб\adddot}}, + datedecember = {{декабря}{дек\adddot}}, + langamerican = {{американский}{амер\adddot}}, + langbrazilian = {{бразильский}{браз\adddot}}, + langbulgarian = {{болгарский}{болг\adddot}}, + langcatalan = {{каталонский}{катал\adddot}}, + langcroatian = {{хорватский}{хорв\adddot}}, + langczech = {{чешский}{чеш\adddot}}, + langdanish = {{датский}{дат\adddot}}, + langdutch = {{нидерландский}{нидерл\adddot}}, + langenglish = {{английский}{англ\adddot}}, + langestonian = {{эстонский}{эст\adddot}}, + langfinnish = {{финский}{фин\adddot}}, + langfrench = {{французский}{фр\adddot}}, + langgalician = {{галисийский}{гал\adddot}}, + langgerman = {{немецкий}{нем\adddot}}, + langgreek = {{греческий}{греч\adddot}}, + langhungarian = {{венгерский}{венг\adddot}}, + langitalian = {{итальянский}{итал\adddot}}, + langjapanese = {{японский}{яп\adddot}}, + langlatin = {{латинский}{лат\adddot}}, +% langlatvian = {{}{}},% FIXME: missing + langnorwegian = {{норвежский}{норв\adddot}}, + langpolish = {{польский}{пол\adddot}}, + langportuguese = {{португальский}{порт\adddot}}, + langrussian = {{русский}{рус\adddot}}, +% langslovak = {{}{}},% FIXME: missing + langslovene = {{словенский}{слов\adddot}}, + langspanish = {{испанский}{исп\adddot}}, + langswedish = {{шведский}{швед\adddot}}, + langukrainian = {{украинский}{укр\adddot}}, + fromamerican = {{с американского}{с\addabbrvspace амер\adddot}}, + frombrazilian = {{с бразильского}{с\addabbrvspace браз\adddot}}, + frombulgarian = {{с болгарского}{с\addabbrvspace болг\adddot}}, + fromcatalan = {{с каталонского}{с\addabbrvspace катал\adddot}}, + fromcroatian = {{с хорватского}{с\addabbrvspace хорв\adddot}}, + fromczech = {{с чешского}{с\addabbrvspace чеш\adddot}}, + fromdanish = {{с датского}{с\addabbrvspace дат\adddot}}, + fromdutch = {{с нидерландского}{с\addabbrvspace нидерл\adddot}}, + fromenglish = {{с английского}{с\addabbrvspace англ\adddot}}, + fromestonian = {{с эстонского}{с\addabbrvspace эст\adddot}}, + fromfinnish = {{с финского}{с\addabbrvspace фин\adddot}}, + fromfrench = {{с французского}{с\addabbrvspace фр\adddot}}, + fromgalician = {{c галисийского}{c\addabbrvspace гал\adddot}}, + fromgerman = {{с немецкого}{с\addabbrvspace нем\adddot}}, + fromgreek = {{с греческого}{с\addabbrvspace греч\adddot}}, + fromhungarian = {{с венгерского}{с\addabbrvspace венг\adddot}}, + fromitalian = {{с итальянского}{с\addabbrvspace итал\adddot}}, + fromjapanese = {{с японского}{с\addabbrvspace яп\adddot}}, + fromlatin = {{с латинского}{с\addabbrvspace лат\adddot}}, +% fromlatvian = {{}{}},% FIXME: missing + fromnorwegian = {{с норвежского}{с\addabbrvspace норв\adddot}}, + frompolish = {{с польского}{с пол\adddot}}, + fromportuguese = {{с португальского}{с\addabbrvspace порт\adddot}}, + fromrussian = {{с русского}{с\addabbrvspace рус\adddot}}, +% fromslovak = {{}{}},% FIXME: missing + fromslovene = {{со словенского}{со\addabbrvspace слов\adddot}}, + fromspanish = {{с испанского}{с\addabbrvspace исп\adddot}}, + fromswedish = {{со шведского}{со\addabbrvspace швед\adddot}}, + fromukrainian = {{с украинского}{с\addabbrvspace укр\adddot}}, + countryde = {{Германия}{Германия}}, + countryeu = {{Европейский Союз}{ЕС}}, + countryep = {{Европейский Союз}{ЕС}}, + countryfr = {{Франция}{Франция}}, + countryuk = {{Великобритания}{Великобритания}}, + countryus = {{Соединённые Штаты Америки}{США}}, + patent = {{патент}{пат\adddot}}, + patentde = {{патент Германии}{пат\adddotspace Германии}}, + patenteu = {{патент Европы}{пат\adddotspace Европы}}, + patentfr = {{патент Франции}{пат\adddotspace Франции}}, + patentuk = {{патент Великобритании}{пат\adddotspace Великобритании}}, + patentus = {{патент США}{пат\adddotspace США}}, + patreq = {{заявка}{заявка}}, + patreqde = {{заявка на патент Германии}{заявка на пат\adddotspace Германии}}, + patreqeu = {{заявка на патент Европы}{заявка на пат\adddotspace Европы}}, + patreqfr = {{заявка на патент Франции}{заявка на пат\adddotspace Франции}}, + patrequk = {{заявка на патент Великобритании}{заявка на пат\adddotspace Великобритании}}, + patrequs = {{заявка на патент США}{заявка на пат\adddotspace США}}, + file = {{файл}{файл}}, + library = {{библиотека}{б-ка}}, + abstract = {{резюме}{рез\adddot}}, + annotation = {{аннотация}{аннот\adddot}}, + commonera = {{нашей эры}{н\adddotspace э\adddot}}, + beforecommonera = {{до нашей эры}{до н\adddotspace э\adddot}}, + annodomini = {{от Рождества Христова}{от Р\adddotspace Х\adddot}}, + beforechrist = {{до Рождества Христова}{до Р\adddotspace Х\adddot}}, + circa = {{около}{ок\adddot}}, + spring = {{весна}{весна}}, + summer = {{лето}{лето}}, + autumn = {{осень}{осень}}, + winter = {{зима}{зима}}, + am = {{ДП}{ДП}}, + pm = {{ПП}{ПП}}, +} + +\protected\gdef\lbx@ru@mkbibdatemonth#1{% + \ifcase0#1\relax + #1\BibliographyWarning{Month out of range}% + \or\abx@bibmonth{datejanuary}% + \or\abx@bibmonth{datefebruary}% + \or\abx@bibmonth{datemarch}% + \or\abx@bibmonth{dateapril}% + \or\abx@bibmonth{datemay}% + \or\abx@bibmonth{datejune}% + \or\abx@bibmonth{datejuly}% + \or\abx@bibmonth{dateaugust}% + \or\abx@bibmonth{dateseptember}% + \or\abx@bibmonth{dateoctober}% + \or\abx@bibmonth{datenovember}% + \or\abx@bibmonth{datedecember}% + \else + #1\BibliographyWarning{Month out of range}% + \fi}% + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/lbx/slovak.lbx b/macros/latex/contrib/biblatex/latex/lbx/slovak.lbx new file mode 100644 index 0000000000..4548ff67df --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/lbx/slovak.lbx @@ -0,0 +1,724 @@ +\ProvidesFile{slovak.lbx} +[\abx@lbxid] + +\DeclareBibliographyExtras{% + \DeclareCapitalPunctuation{.!?}% + \protected\def\bibrangedash{% + \textendash\penalty\hyphenpenalty}% breakable dash + \protected\def\bibdatedash{% + \textendash\penalty\hyphenpenalty}% breakable dash + \let\finalandcomma=\empty + \let\finalandsemicolon=\empty + \protected\def\mkbibordinal#1{\stripzeros{#1}\adddot}% + \protected\def\mkbibmascord{\mkbibordinal}% + \protected\def\mkbibfemord{\mkbibordinal}% + \protected\def\mkbibneutord{\mkbibordinal}% + \protected\def\mkbibdatelong#1#2#3{% + \iffieldundef{#3} + {} + {\mkbibordinal{\thefield{#3}}% + \iffieldundef{#2}{}{\thinspace}}% + \iffieldundef{#2} + {} + {\mkbibmonth{\thefield{#2}}% + \iffieldundef{#1}{}{\space}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}% + \protected\def\mkbibdateshort#1#2#3{% + \iffieldundef{#3} + {} + {\mkdayzeros{\thefield{#3}}\adddot + \iffieldundef{#2}{}{\thinspace}}% + \iffieldundef{#2} + {} + {\mkmonthzeros{\thefield{#2}}% + \iffieldundef{#1} + {} + {\iffieldundef{#3}{/}{\adddot\thinspace}}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}% + \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{% + \iffieldundef{#1}{} + {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}% + \iffieldundef{#2}{} + {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}% + \iffieldundef{#3}{} + {\printtext{\mktimezeros{\thefield{#3}}}}% + \setunit{}% + \iffieldundef{#4}{} + {\bibtimezonesep + \mkbibtimezone{\thefield{#4}}}}% + \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{% + \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep + \forcezerosmdt{\thefield{#2}}% + \iffieldundef{#3}{} + {\bibtimesep + \forcezerosmdt{\thefield{#3}}}% + \space + \ifnumless{\thefield{#1}}{12} + {\bibstring{am}} + {\bibstring{pm}}% + \iffieldundef{#4}{} + {\space\bibtimezonesep + \parentext{\mkbibtimezone{\thefield{#4}}}}}% + \protected\def\mkbibseasondateshort#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% + \protected\def\mkbibseasondatelong#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% +} + +\DeclareBibliographyStrings{% + bibliography = {{Zoznam bibliografick\'{y}ch odkazov}% + {Bibliografia}}, + references = {{Cit\'{a}cie}% % ISO 690 -- section 2.15 + {Cit\'{a}cie}}, + shorthands = {{Zoznam skratiek}% + {Skratky}}, + editor = {{editor}% + {ed\adddot}}, + editors = {{editori}% + {ed\adddot}}, + compiler = {{zostavovate\v{l}}% % ISO 690 -- section 5.1 -- c) + {zost\adddot}}, + compilers = {{zostavovatelia}% + {zost\adddot}}, + redactor = {{redaktor}% + {red\adddot}}, + redactors = {{redaktori}% + {red\adddot}}, + reviser = {{korektor}% + {kor\adddot}}, + revisers = {{korektori}% + {kor\adddot}}, + founder = {{zakladate\v{l}}% + {zakl\adddot}}, + founders = {{zakladatelia}% + {zakl\adddot}}, + continuator = {{pokra\v{c}ovate\v{l}}% + {pokr\adddot}}, + continuators = {{pokra\v{c}ovatelia}% + {pokr\adddot}}, + collaborator = {{spolupracovn\'{i}k}% + {spoluprac\adddot}}, + collaborators = {{spolupracovn\'{i}ci}% + {spoluprac\adddot}}, + translator = {{prekladate\v{l}}% + {prekl\adddot}}, + translators = {{prekladatelia}% + {prekl\adddot}}, + commentator = {{koment\'{a}tor}% + {kom\adddot}}, + commentators = {{koment\'{a}tori}% + {kom\adddot}}, + annotator = {{anot\'{a}tor}% + {anot\adddot}}, + annotators = {{anot\'{a}tori}% + {anot\adddot}}, + commentary = {{koment\'{a}r}% + {kom\adddot}}, + annotations = {{anot\'{a}cia}% + {anot\adddot}}, + introduction = {{\'{u}vod}% + {\'{u}v\adddot}}, + foreword = {{predhovor}% + {predh\adddot}}, + afterword = {{doslov}% + {dosl\adddot}}, + editortr = {{editor a prekladate\v{l}}% + {ed\adddotspace a prekl\adddot}}, + editorstr = {{editori a prekladatelia}% + {ed\adddotspace a prekl\adddot}}, + editorco = {{editor a koment\'{a}tor}% + {ed\adddotspace a kom\adddot}}, + editorsco = {{editori a koment\'{a}tori}% + {ed\adddotspace a kom\adddot}}, + editoran = {{editor a anot\'{a}tor}% + {ed\adddotspace a anot\adddot}}, + editorsan = {{editori a anot\'{a}tori}% + {ed\adddotspace a anot\adddot}}, + editorin = {{editor a \'{u}vod}% + {ed\adddotspace a \'{u}v\adddot}}, + editorsin = {{editori a \'{u}vod}% + {ed\adddotspace a \'{u}v\adddot}}, + editorfo = {{editor a predhovor}% + {ed\adddotspace a predh\adddot}}, + editorsfo = {{editori a predhovor}% + {ed\adddotspace a predh\adddot}}, + editoraf = {{editor a doslov}% + {ed\adddotspace a dosl\adddot}}, + editorsaf = {{editori a doslov}% + {ed\adddotspace a dosl\adddot}}, + editortrco = {{editor, prekladate\v{l}\ a koment\'{a}tor}% + {ed.,\addabbrvspace prekl\adddot\ a kom\adddot}}, + editorstrco = {{editori, prekladatelia\ a koment\'{a}tori}% + {ed.,\addabbrvspace prekl\adddot\ a kom\adddot}}, + editortran = {{editor, prekladate\v{l}\ a anot\'{a}tor}% + {ed.,\addabbrvspace prekl\adddot\ a anot\adddot}}, + editorstran = {{editori, prekladatelia\ a anot\'{a}tori}% + {ed.,\addabbrvspace prekl\adddot\ a anot\adddot}}, + editortrin = {{editor, prekladate\v{l}\ a \'{u}vod}% + {ed.,\addabbrvspace prekl\adddot\ a \'{u}v\adddot}}, + editorstrin = {{editori, prekladatelia\ a \'{u}vod}% + {ed.,\addabbrvspace prekl\adddot\ a \'{u}v\adddot}}, + editortrfo = {{editor, prekladate\v{l}\ a predhovor}% + {ed.,\addabbrvspace prekl\adddot\ a predh\adddot}}, + editorstrfo = {{editori, prekladatelia\ a predhovor}% + {ed.,\addabbrvspace prekl\adddot\ a predh\adddot}}, + editortraf = {{editor, prekladate\v{l}\ a doslov}% + {ed.,\addabbrvspace prekl\adddot\ a dosl\adddot}}, + editorstraf = {{editori, prekladatelia\ a doslov}% + {ed.,\addabbrvspace prekl\adddot\ a dosl\adddot}}, + editorcoin = {{editor, koment\'{a}tor\ a \'{u}vod}% + {ed.,\addabbrvspace kom\adddot\ a \'{u}v\adddot}}, + editorscoin = {{editori, koment\'{a}tori\ a \'{u}vod}% + {ed.,\addabbrvspace kom\adddot\ a \'{u}v\adddot}}, + editorcofo = {{editor, koment\'{a}tor\ a predhovor}% + {ed.,\addabbrvspace kom\adddot\ a predh\adddot}}, + editorscofo = {{editori, koment\'{a}tori\ a predhovor}% + {ed.,\addabbrvspace kom\adddot\ a predh\adddot}}, + editorcoaf = {{editor, koment\'{a}tor\ a doslov}% + {ed.,\addabbrvspace kom\adddot\ a dosl\adddot}}, + editorscoaf = {{editori, koment\'{a}tori\ a doslov}% + {ed.,\addabbrvspace kom\adddot\ a dosl\adddot}}, + editoranin = {{editor, anot\'{a}tor\ a \'{u}vod}% + {ed.,\addabbrvspace anot\adddot\ a \'{u}v\adddot}}, + editorsanin = {{editori, anot\'{a}tori\ a \'{u}vod}% + {ed.,\addabbrvspace anot\adddot\ a \'{u}v\adddot}}, + editoranfo = {{editor, anot\'{a}tor\ a predhovor}% + {ed.,\addabbrvspace anot\adddot\ a predh\adddot}}, + editorsanfo = {{editori, anot\'{a}tori\ a predhovor}% + {ed.,\addabbrvspace anot\adddot\ a predh\adddot}}, + editoranaf = {{editor, anot\'{a}tor\ a doslov}% + {ed.,\addabbrvspace anot\adddot\ a dosl\adddot}}, + editorsanaf = {{editori, anot\'{a}tori\ a doslov}% + {ed.,\addabbrvspace anot\adddot\ a dosl\adddot}}, + editortrcoin = {{editor, prekladate\v{l}, koment\'{a}tor\ a \'{u}vod}% + {ed.,\addabbrvspace prekl., kom\adddot\ a \'{u}v\adddot}}, + editorstrcoin = {{editori, prekladatelia, koment\'{a}tori\ a \'{u}vod}% + {ed.,\addabbrvspace prekl., kom\adddot\ a \'{u}v\adddot}}, + editortrcofo = {{editor, prekladate\v{l}, koment\'{a}tor\ a predhovor}% + {ed.,\addabbrvspace prekl., kom\adddot\ a predh\adddot}}, + editorstrcofo = {{editori, prekladatelia, koment\'{a}tori\ a predhovor}% + {ed.,\addabbrvspace prekl., kom\adddot\ a predh\adddot}}, + editortrcoaf = {{editor, prekladate\v{l}, koment\'{a}tor\ a doslov}% + {ed.,\addabbrvspace prekl., kom\adddot\ a dosl\adddot}}, + editorstrcoaf = {{editori, prekladatelia, koment\'{a}tori\ a doslov}% + {ed.,\addabbrvspace prekl., kom\adddot\ a dosl\adddot}}, + editortranin = {{editor, prekladate\v{l}, anot\'{a}tor\ a \'{u}vod}% + {ed.,\addabbrvspace prekl., anot\adddot\ a \'{u}v\adddot}}, + editorstranin = {{editori, prekladatelia, anot\'{a}tori\ a \'{u}vod}% + {ed.,\addabbrvspace prekl., anot\adddot\ a \'{u}v\adddot}}, + editortranfo = {{editor, prekladate\v{l}, anot\'{a}tor\ a predhovor}% + {ed.,\addabbrvspace prekl., anot\adddot\ a predh\adddot}}, + editorstranfo = {{editori, prekladatelia, anot\'{a}tori\ a predhovor}% + {ed.,\addabbrvspace prekl., anot\adddot\ a predh\adddot}}, + editortranaf = {{editor, prekladate\v{l}, anot\'{a}tor\ a doslov}% + {ed.,\addabbrvspace prekl., anot\adddot\ a dosl\adddot}}, + editorstranaf = {{editori, prekladatelia, anot\'{a}tori\ a doslov}% + {ed.,\addabbrvspace prekl., anot\adddot\ a dosl\adddot}}, + translatorco = {{prekladate\v{l} a koment\'{a}tor}% + {prekl\adddot\ a kom\adddot}}, + translatorsco = {{prekladatelia a koment\'{a}tori}% + {prekl\adddot\ a kom\adddot}}, + translatoran = {{prekladate\v{l} a anot\'{a}tor}% + {prekl\adddot\ a anot\adddot}}, + translatorsan = {{prekladatelia a anot\'{a}tori}% + {prekl\adddot\ a anot\adddot}}, + translatorin = {{prekladate\v{l} a \'{u}vod}% + {prekl\adddot\ a \'{u}v\adddot}}, + translatorsin = {{prekladatelia a \'{u}vod}% + {prekl\adddot\ a \'{u}v\adddot}}, + translatorfo = {{prekladate\v{l} a predhovor}% + {prekl\adddot\ a predh\adddot}}, + translatorsfo = {{prekladatelia a predhovor}% + {prekl\adddot\ a predh\adddot}}, + translatoraf = {{prekladate\v{l} a doslov}% + {prekl\adddot\ a dosl\adddot}}, + translatorsaf = {{prekladatelia a doslov}% + {prekl\adddot\ a dosl\adddot}}, + translatorcoin = {{prekladate\v{l}, koment\'{a}tor\ a \'{u}vod}% + {prekl., kom\adddot\ a \'{u}v\adddot}}, + translatorscoin = {{prekladatelia, koment\'{a}tori\ a \'{u}vod}% + {prekl., kom\adddot\ a \'{u}v\adddot}}, + translatorcofo = {{prekladate\v{l}, koment\'{a}tor\ a predhovor}% + {prekl., kom\adddot\ a predh\adddot}}, + translatorscofo = {{prekladatelia, koment\'{a}tori\ a predhovor}% + {prekl., kom\adddot\ a predh\adddot}}, + translatorcoaf = {{prekladate\v{l}, koment\'{a}tor\ a doslov}% + {prekl., kom\adddot\ a dosl\adddot}}, + translatorscoaf = {{prekladatelia, koment\'{a}tori\ a doslov}% + {prekl., kom\adddot\ a dosl\adddot}}, + translatoranin = {{prekladate\v{l}, anot\'{a}tor\ a \'{u}vod}% + {prekl., anot\adddot\ a \'{u}v\adddot}}, + translatorsanin = {{prekladatelia, anot\'{a}tori\ a \'{u}vod}% + {prekl., anot\adddot\ a \'{u}v\adddot}}, + translatoranfo = {{prekladate\v{l}, anot\'{a}tor\ a predhovor}% + {prekl., anot\adddot\ a predh\adddot}}, + translatorsanfo = {{prekladatelia, anot\'{a}tori\ a predhovor}% + {prekl., anot\adddot\ a predh\adddot}}, + translatoranaf = {{prekladate\v{l}, anot\'{a}tor\ a doslov}% + {prekl., anot\adddot\ a dosl\adddot}}, + translatorsanaf = {{prekladatelia, anot\'{a}tori\ a doslov}% + {prekl., anot\adddot\ a dosl\adddot}}, +% organizer = {{}{}},% FIXME: missing +% organizers = {{}{}},% FIXME: missing +% byorganizer = {{}{}},% FIXME: missing + byauthor = {{}% + {}}, + byeditor = {{editovan\'{e}}% + {ed\adddot}}, + bycompiler = {{zostaven\'{e}}% + {zost\adddot}}, + byredactor = {{redigovan\'{e}}% + {red\adddot}}, + byfounder = {{zalo\v{z}en\'{e}}% + {zal\adddot}}, + bycontinuator = {{pokra\v{c}ovan\'{e}}% + {pokr\adddot}}, + bycollaborator = {{v\addnbspace spolupr\'{a}ci s}% + {v\addnbspace spol\adddotspace s}}, + bytranslator = {{prelo\v{z}en\'{e} \lbx@lfromlang}% + {prel\adddot\ \lbx@sfromlang}}, + bycommentator = {{komentovan\'{e}}% + {kom\adddot}}, + byannotator = {{anotovan\'{e}}% + {anot\adddot}}, + withcommentator = {{s\addnbspace koment\'{a}rom od}% + {s\addnbspace kom\adddotspace od}}, + withannotator = {{s\addnbspace anot\'{a}ciami od}% + {s\addnbspace anot\adddot\ od}}, + withintroduction = {{s\addnbspace \'{u}vodom od}% + {s\addnbspace \'{u}v\adddot\ od}}, + withforeword = {{s\addnbspace predhovorom od}% + {s\addnbspace predh\adddot\ od}}, + withafterword = {{s\addnbspace doslovom od}% + {s\addnbspace dosl\adddot\ od}}, + byeditortr = {{editovan\'{e} a prelo\v{z}en\'{e} \lbx@lfromlang\ }% + {ed\adddotspace a prel\adddot\ \lbx@sfromlang\ }}, + byeditorco = {{editovan\'{e} a komentovan\'{e}}% + {ed\adddotspace a kom\adddot\ }}, + byeditoran = {{editovan\'{e} a anotovan\'{e}}% + {ed\adddotspace a anot\adddot\ }}, + byeditorin = {{editovan\'{e}, s\addnbspace \'{u}vodom}% + {ed.,\addabbrvspace s\addnbspace \'{u}v\adddot}}, + byeditorfo = {{editovan\'{e}, s\addnbspace predhovorom}% + {ed.,\addabbrvspace s\addnbspace predh.,}}, + byeditoraf = {{editovan\'{e}, s\addnbspace doslovom}% + {ed.,\addabbrvspace s\addnbspace dosl.,}}, + byeditortrco = {{editovan\'{e}, prelo\v{z}en\'{e} \lbx@lfromlang\ a komentovan\'{e}}% + {ed.,\addabbrvspace prel\adddot\ \lbx@sfromlang\ a kom\adddot\ }}, + byeditortran = {{editovan\'{e}, prelo\v{z}en\'{e} \lbx@lfromlang\ a anotovan\'{e}}% + {ed.,\addabbrvspace prel\adddot\ \lbx@sfromlang\ a anot\adddot\ }}, + byeditortrin = {{editovan\'{e} a prelo\v{z}en\'{e} \lbx@lfromlang, s\addnbspace \'{u}vodom}% + {ed\adddotspace a prel\adddot\ \lbx@sfromlang, s\addnbspace \'{u}v\adddot}}, + byeditortrfo = {{editovan\'{e} a prelo\v{z}en\'{e} \lbx@lfromlang, s\addnbspace predhovorom}% + {ed\adddotspace a prel\adddot\ \lbx@sfromlang, s\addnbspace predh\adddot}}, + byeditortraf = {{editovan\'{e} a prelo\v{z}en\'{e} \lbx@lfromlang, s\addnbspace doslovom}% + {ed\adddotspace a prekl\adddot\ \lbx@sfromlang, s\addnbspace dosl\adddot}}, + byeditorcoin = {{editovan\'{e} a komentovan\'{e}, s\addnbspace \'{u}vodom}% + {ed\adddotspace a kom., s\addnbspace \'{u}v\adddot}}, + byeditorcofo = {{editovan\'{e} a komentovan\'{e}, s\addnbspace predhovorom}% + {ed\adddotspace a kom., s\addnbspace predh\adddot}}, + byeditorcoaf = {{editovan\'{e} a komentovan\'{e}, s\addnbspace doslovom}% + {ed\adddotspace a kom., s\addnbspace dosl\adddot}}, + byeditoranin = {{editovan\'{e} a anotovan\'{e}, s\addnbspace \'{u}vodom}% + {ed\adddotspace a anot., s\addnbspace \'{u}v\adddot}}, + byeditoranfo = {{editovan\'{e} a anotovan\'{e}, s\addnbspace predhovorom}% + {ed\adddotspace a anot., s\addnbspace predh\adddot}}, + byeditoranaf = {{editovan\'{e} a anotovan\'{e}, s\addnbspace doslovom}% + {ed\adddotspace a anot., s\addnbspace dosl\adddot}}, + byeditortrcoin = {{editovan\'{e}, prelo\v{z}en\'{e} \lbx@lfromlang\ a komentovan\'{e}, s\addnbspace \'{u}vodom}% + {ed.,\addabbrvspace prel\adddot\ \lbx@sfromlang\ a kom., s\addnbspace \'{u}v\adddot}}, + byeditortrcofo = {{editovan\'{e}, prelo\v{z}en\'{e} \lbx@lfromlang\ a komentovan\'{e}, s\addnbspace predhovorom}% + {ed.,\addabbrvspace prel\adddot\ \lbx@sfromlang\ a kom., s\addnbspace predh\adddot}}, + byeditortrcoaf = {{editovan\'{e}, prelo\v{z}en\'{e} \lbx@lfromlang\ a komentovan\'{e}, s\addnbspace doslovom}% + {ed.,\addabbrvspace prel\adddot\ \lbx@sfromlang\ a kom., s\addnbspace dosl\adddot}}, + byeditortranin = {{editovan\'{e}, prelo\v{z}en\'{e} \lbx@lfromlang\ a anotovan\'{e}, s\addnbspace \'{u}vodom}% + {ed.,\addabbrvspace prel\adddot\ \lbx@sfromlang\ a anot\adddot, s\addnbspace \'{u}v\adddot}}, + byeditortranfo = {{editovan\'{e}, prelo\v{z}en\'{e} \lbx@lfromlang\ a anotovan\'{e}, s\addnbspace predhovorom}% + {ed.,\addabbrvspace prel\adddot\ \lbx@sfromlang\ a anot\adddot, s\addnbspace predh\adddot}}, + byeditortranaf = {{editovan\'{e}, prelo\v{z}en\'{e} \lbx@lfromlang\ a anotovan\'{e}, s\addnbspace doslovom}% + {ed.,\addabbrvspace prel\adddot\ \lbx@sfromlang\ a anot\adddot, s\addnbspace dosl\adddot}}, + bytranslatorco = {{prelo\v{z}en\'{e} \lbx@lfromlang\ a komentovan\'{e}}% + {prel\adddot\ \lbx@sfromlang\ a kom\adddot}}, + bytranslatoran = {{prelo\v{z}en\'{e} \lbx@lfromlang\ a anotovan\'{e}}% + {prel\adddot\ \lbx@sfromlang\ a anot\adddot}}, + bytranslatorin = {{prelo\v{z}en\'{e} \lbx@lfromlang, s\addnbspace \'{u}vodom}% + {prel\adddot\ \lbx@sfromlang, s\addnbspace \'{u}v\adddot}}, + bytranslatorfo = {{prelo\v{z}en\'{e} \lbx@lfromlang, s\addnbspace predhovorom}% + {prel\adddot\ \lbx@sfromlang, s\addnbspace predh\adddot}}, + bytranslatoraf = {{prelo\v{z}en\'{e} \lbx@lfromlang, s\addnbspace doslovom}% + {prel\adddot\ \lbx@sfromlang, s\addnbspace dosl\adddot}}, + bytranslatorcoin = {{prelo\v{z}en\'{e} \lbx@lfromlang\ a komentovan\'{e}, s\addnbspace \'{u}vodom}% + {prel\adddot\ \lbx@sfromlang\ a kom., s\addnbspace \'{u}v\adddot}}, + bytranslatorcofo = {{prelo\v{z}en\'{e} \lbx@lfromlang\ a komentovan\'{e}, s\addnbspace predhovorom}% + {prel\adddot\ \lbx@sfromlang\ a kom., s\addnbspace predh\adddot}}, + bytranslatorcoaf = {{prelo\v{z}en\'{e} \lbx@lfromlang\ a komentovan\'{e}, s\addnbspace doslovom}% + {prel\adddot\ \lbx@sfromlang\ a kom., s\addnbspace dosl\adddot}}, + bytranslatoranin = {{prelo\v{z}en\'{e} \lbx@lfromlang\ a anotovan\'{e}, s\addnbspace \'{u}vodom}% + {prel\adddot\ \lbx@sfromlang\ a anot., s\addnbspace \'{u}v\adddot}}, + bytranslatoranfo = {{prelo\v{z}en\'{e} \lbx@lfromlang\ a anotovan\'{e}, s\addnbspace predhovorom}% + {prel\adddot\ \lbx@sfromlang\ a anot., s\addnbspace predh\adddot}}, + bytranslatoranaf = {{prelo\v{z}en\'{e} \lbx@lfromlang\ a anotovan\'{e}, s\addnbspace doslovom}% + {prel\adddot\ \lbx@sfromlang\ a anot., s\addnbspace dosl\adddot}}, + and = {{a}% + {a}}, + andothers = {{et\addabbrvspace al\adddot}% %et\addabbrvspace alii + {et\addabbrvspace al\adddot}}, + andmore = {{et\addabbrvspace al\adddot}% %et\addabbrvspace alii + {et\addabbrvspace al\adddot}}, + volume = {{zv\"{a}zok}% + {zv\adddot}}, + volumes = {{zv\"{a}zky}% + {zv\adddot}}, + involumes = {{in}% + {in}}, + jourvol = {{ro\v{c}n\'{i}k}% + {ro\v{c}\adddot}}, + jourser = {{ed\'{i}cia}% % ISO 690 -- section 2.17 + {ed\adddot}}, + book = {{kniha}% + {kniha}}, + part = {{\v{c}as\v{t}}% + {\v{c}as\v{t}}}, + issue = {{\v{c}\'{i}slo}% + {\v{c}\'{i}slo}}, + newseries = {{nov\'{a} ed\'{i}cia}% % ISO 690 -- section 2.17 + {n\adddotspace ed\adddot}}, + oldseries = {{star\'{a} ed\'{i}cia}% % ISO 690 -- section 2.17 + {st\adddotspace ed\adddot}}, + edition = {{vydanie}% + {vyd\adddot}}, + reprint = {{dotla\v{c}}% + {dotl\adddot}}, + reprintof = {{dotla\v{c}}% + {dotl\adddot}}, + reprintas = {{dotla\v{c}en\'{e} ako}% + {dotl\adddotspace ako}}, + reprintfrom = {{dotla\v{c}en\'{e} z}% + {dotl\adddotspace z}}, + reviewof = {{hodnotenie}% + {hodn\adddot}}, + translationof = {{preklad}% + {prekl\adddot}}, + translationas = {{prelo\v{z}en\'{e} ako}% + {prel\adddotspace ako}}, + translationfrom = {{prelo\v{z}en\'{e} z}% + {prel\adddotspace z}}, + origpubas = {{p\^{o}vodne vydan\'{e} ako}% + {p\^{o}v\adddotspace vyd\adddotspace ako}}, + origpubin = {{p\^{o}vodne vydan\'{e} v\addnbspace roku}% + {p\^{o}v\adddotspace vyd\adddotspace v\addnbspace r\adddot}}, + astitle = {{ako}% + {ako}}, + bypublisher = {{}% + {}}, + page = {{strana}% + {s\adddot}}, + pages = {{strany}% + {s\adddot}}, + column = {{st\'{l}pec}% + {st\'{l}p\adddot}}, + columns = {{st\'{l}pce}% + {st\'{l}p\adddot}}, + line = {{riadok}% + {r\adddot}}, + lines = {{riadky}% + {r\adddot}}, + nodate = {{nedatovan\'{e}}% % ISO 690 -- section 9.3.4 + {b\adddotspace r\adddot}}, % bez roku + verse = {{ver\v{s}}% + {v\adddot}}, + verses = {{ver\v{s}e}% + {v\adddot}}, + section = {{paragraf}% + {\S}}, + sections = {{paragrafy}% + {\S\S}}, + paragraph = {{odsek}% + {ods\adddot}}, + paragraphs = {{odseky}% + {ods\adddot}}, + in = {{in}% + {in}}, + inseries = {{v}% + {v}}, + ofseries = {{z}% + {z}}, + number = {{\v{c}\'{i}slo}% + {\v{c}\adddot}}, + chapter = {{kapitola}% + {kap\adddot}}, +% bathesis = {{}{}},% FIXME: missing + mathesis = {{diplomov\'{a} pr\'{a}ca}% + {dipl\adddotspace pr\adddot}}, + phdthesis = {{dizerta\v{c}n\'{a} pr\'{a}ca}% + {diz\adddotspace pr\adddot}}, + candthesis = {{kandid\'{a}tska pr\'{a}ca}% + {kand\adddotspace pr\adddot}}, + resreport = {{v\'{y}skumn\'{a} spr\'{a}va}% + {v\'{y}sk\adddot\ spr\adddot}}, + techreport = {{technick\'{a} spr\'{a}va}% + {tech\adddotspace spr\adddot}}, + software = {{po\v{c}\'{i}ta\v{c}ov\'{y} softv\'{e}r}% + {soft\adddot}}, + datacd = {{CD-ROM}% + {CD-ROM}}, + audiocd = {{audio CD}% + {audio CD}}, + version = {{verzia}% + {ver\adddot}}, + url = {{url}% + {url}}, + urlfrom = {{dostupn\'{e} z}% % ISO 690 -- section 15.2.6 + {dostupn\'{e} z}}, + urlseen = {{citovane\'{e}}% + {cit\adddot}}, + inpreparation = {{v\addnbspace pr\'{i}prave}% + {v\addnbspace pr\'{i}prave}}, + submitted = {{predlo\v{z}en\'{e}}% + {predl\adddot}}, + forthcoming = {{prijat\'{e}}% + {prij\adddot}}, + inpress = {{v\addnbspace tla\v{c}i}% + {v\addnbspace tla\v{c}i}}, + prepublished = {{pred publikovan\'{i}m}% + {pred publ\adddot}}, + citedas = {{\v{d}alej citovan\'{e} ako}% + {\v{d}alej cit\adddotspace ako}}, + thiscite = {{obzvl\'{a}\v{s}\v{t}}% + {obzvl\adddot}}, + seenote = {{vi\v{d} pozn\'{a}mka}% + {vi\v{d} pozn\adddot}}, + quotedin = {{citovan\'{e} v}% + {cit\adddotspace v}}, + idem = {{idem}% + {idem}}, + idemsm = {{idem}% + {idem}}, + idemsf = {{eadem}% + {eadem}}, + idemsn = {{idem}% + {idem}}, + idempm = {{eidem}% + {eidem}}, + idempf = {{eaedem}% + {eaedem}}, + idempn = {{eadem}% + {eadem}}, + idempp = {{eidem}% + {eidem}}, + ibidem = {{ibidem}% + {ibid\adddot}}, + opcit = {{op\adddotspace cit\adddot}% + {op\adddotspace cit\adddot}}, + loccit = {{loc\adddotspace cit\adddot}% + {loc\adddotspace cit\adddot}}, + confer = {{cf\adddot}% + {cf\adddot}}, + sequens = {{sq\adddot}% + {sq\adddot}}, + sequentes = {{sqq\adddot}% + {sqq\adddot}}, + passim = {{passim}% + {pass\adddot}}, + see = {{vi\v{d}}% + {vi\v{d}}}, + seealso = {{vi\v{d} tie\v{z}}% + {vi\v{d} tie\v{z}}}, + backrefpage = {{citovan\'{e} na strane}% + {cit\adddotspace na s\adddot}}, + backrefpages = {{citovan\'{e} na stran\'{a}ch}% + {cit\adddotspace na str\adddot}}, + january = {{janu\'{a}r}% + {jan\adddot}}, + february = {{febru\'{a}r}% + {feb\adddot}}, + march = {{marec}% + {mar\adddot}}, + april = {{apr\'{i}l}% + {apr\adddot}}, + may = {{m\'{a}j}% + {m\'{a}j}}, + june = {{j\'{u}n}% + {j\'{u}n}}, + july = {{j\'{u}l}% + {j\'{u}l}}, + august = {{august}% + {aug\adddot}}, + september = {{september}% + {sept\adddot}}, + october = {{okt\'{o}ber}% + {okt\adddot}}, + november = {{november}% + {nov\adddot}}, + december = {{december}% + {dec\adddot}}, + langamerican = {{americk\'{a} angli\v{c}tina}% + {am\adddot angl\adddot}}, + langbrazilian = {{braz\'{i}lska portugal\v{c}ina}% + {braz\adddot portugal\adddot}}, +% langbulgarian = {{}{}},% FIXME: missing + langcatalan = {{katal\'{a}n\v{c}ina}% + {katal\adddot}}, + langcroatian = {{chorv\'{a}t\v{c}ina}% + {chorv\adddot}}, + langczech = {{\v{c}e\v{s}tina}% + {\v{c}e\v{s}tina}}, + langdanish = {{d\'{a}n\v{c}ina}% + {d\'{a}n\adddot}}, + langdutch = {{holand\v{c}ina}% + {hol\adddot}}, + langenglish = {{angli\v{c}tina}% + {angl\adddot}}, +% langestonian = {{}{}},% FIXME: missing + langfinnish = {{f\'{i}n\v{c}ina}% + {f\'{i}n\adddot}}, + langfrench = {{franc\'{u}z\v{s}tina}% + {franc\adddot}}, + langgalician = {{gal\'icij\v{c}ina}% + {gal\adddot}}, + langgerman = {{nem\v{c}ina}% + {nem\adddot}}, + langgreek = {{gr\'{e}\v{c}tina}% + {gr\'{e}\v{c}tina}}, +% langhungarian = {{}{}}, % FIXME: missing + langitalian = {{talian\v{c}ina}% + {tal\adddot}}, + langjapanese = {{japon\v{c}ina}% + {jap\adddot}}, + langlatin = {{latin\v{c}ina}% + {lat\adddot}}, +% langlatvian = {{}{}},% FIXME: missing + langnorwegian = {{n\'{o}r\v{c}ina}% + {n\'{o}r\adddot}}, + langpolish = {{po\v{l}\v{s}tina}% + {po\v{l}\adddot}}, + langportuguese = {{portugal\v{c}ina}% + {portugal\adddot}}, + langrussian = {{ru\v{s}tina}% + {ru\v{s}tina}}, + langslovak = {{sloven\v{c}ina}% + {sloven\v{c}ina}}, + langslovene = {{slovin\v{c}ina}% + {slovin\v{c}ina}}, + langspanish = {{\v{s}paniel\v{c}ina}% + {\v{s}pan\adddot}}, + langswedish = {{\v{s}v\'{e}d\v{c}ina}% + {\v{s}v\'{e}d\adddot}}, + fromamerican = {{z\addnbspace americkej angli\v{c}tiny}% + {z\addnbspace amer\adddot angl\adddot}}, + frombrazilian = {{z\addnbspace braz\'{i}lskej portugal\v{c}iny}% + {z\addnbspace braz\adddotspace portugal\adddot}}, +% frombulgarian = {{}{}},% FIXME: missing + fromcatalan = {{z\addnbspace katal\'{a}n\v{c}iny}% + {z\addnbspace katal\adddot}}, + fromcroatian = {{z\addnbspace chorvat\v{c}iny}% + {z\addnbspace chorv\adddot}}, + fromczech = {{z\addnbspace \v{c}e\v{s}tiny}% + {z\addnbspace \v{c}e\v{s}tiny}}, + fromdanish = {{z\addnbspace d\'{a}n\v{c}iny}% + {z\addnbspace d\'{a}n\adddot}}, + fromdutch = {{z\addnbspace holand\v{c}iny}% + {z\addnbspace hol\adddot}}, + fromenglish = {{z\addnbspace angli\v{c}tiny}% + {z\addnbspace angl\adddot}}, +% fromestonian = {{}{}},% FIXME: missing + fromfinnish = {{z\addnbspace f\'{i}n\v{c}iny}% + {z\addnbspace f\'{i}n\adddot}}, + fromfrench = {{z\addnbspace franc\'{u}z\v{s}tiny}% + {z\addnbspace franc\adddot}}, + fromgalician = {{z\addnbspace gal\'icij\v{c}ina}% + {z\addbnspace gal\adddot}}, + fromgerman = {{z\addnbspace nem\v{c}iny}% + {z\addnbspace nem\adddot}}, + fromgreek = {{z\addnbspace gr\'{e}\v{c}tiny}% + {z\addnbspace gr\'{e}\v{c}tiny}}, +% fromhungarian = {{}{}}, % FIXME: missing + fromitalian = {{z\addnbspace talian\v{c}iny}% + {z\addnbspace tal\adddot}}, + fromjapanese = {{z\addnbspace japon\v{c}iny}% + {z\addnbspace jap\adddot}}, + fromlatin = {{z\addnbspace latin\v{c}iny}% + {z\addnbspace lat\adddot}}, +% fromlatvian = {{}{}},% FIXME: missing + fromnorwegian = {{z\addnbspace n\'{o}r\v{c}iny}% + {z\addnbspace n\'{o}r\adddot}}, + frompolish = {{z\addnbspace po\v{l}\v{s}tiny}% + {z\addnbspace po\v{l}\adddot}}, + fromportuguese = {{z\addnbspace portugal\v{c}iny}% + {z\addnbspace portugal\adddot}}, + fromrussian = {{z\addnbspace ru\v{s}tiny}% + {z\addnbspace ru\v{s}tiny}}, + fromslovak = {{zo sloven\v{c}iny}% + {zo sloven\v{c}iny}}, + fromslovene = {{zo slovin\v{c}iny}% + {zo slovin\v{c}iny}}, + fromspanish = {{zo \v{s}paniel\v{c}iny}% + {zo \v{s}pan\adddot}}, + fromswedish = {{zo \v{s}v\'{e}d\v{c}iny}% + {zo \v{s}v\'{e}d\adddot}}, + countryde = {{Nemecko}% + {DE}}, + countryeu = {{Eur\'{o}pska \'{u}nia}% + {EU}}, + countryep = {{Eur\'{o}pska \'{u}nia}% + {EP}}, + countryfr = {{Franc\'{u}zsko}% + {FR}}, + countryuk = {{Ve\v{l}k\'{a} Brit\'{a}nia}% + {GB}}, + countryus = {{Spojen\'{e} \v{S}t\'{a}ty Americk\'{e}}% + {US}}, + patent = {{patent}% + {pat\adddot}}, + patentde = {{nemeck\'{y} patent}% + {nem\adddot\ pat\adddot}}, + patenteu = {{eur\'{o}psky patent}% + {eur\adddot\ pat\adddot}}, + patentfr = {{franc\'{u}zsky patent}% + {franc\adddot\ pat\adddot}}, + patentuk = {{britsk\'{y} patent}% + {britsk\'{y} pat\adddot}}, + patentus = {{americk\'{y} patent}% + {US\adddotspace pat\adddot}}, + patreq = {{patentov\'{a} \v{z}iados\v{t}}% + {pat\adddot\ \v{z}iad\adddot}}, + patreqde = {{nemeck\'{a} patentov\'{a} \v{z}iados\v{t}}% + {nem\adddot\ pat\adddot\ \v{z}iad\adddot}}, + patreqeu = {{eur\'{o}pska patentov\'{a} \v{z}iados\v{t}}% + {eur\adddot\ pat\adddot\ \v{z}iad\adddot}}, + patreqfr = {{franc\'{u}zska patentov\'{a} \v{z}iados\v{t}}% + {franc\adddot\ pat\adddot\ \v{z}iad\adddot}}, + patrequk = {{britsk\'{a} patentov\'{a} \v{z}iados\v{t}}% + {brit\adddot\ pat\adddot\ \v{z}iad\adddot}}, + patrequs = {{US\adddotspace patentov\'{a} \v{z}iados\v{t}}% + {US\adddotspace pat\adddot\ \v{z}iad\adddot}}, + file = {{s\'{u}bor}% + {s\'{u}b\adddot}}, + library = {{kni\v{z}nica}% + {kni\v{z}nica}}, + abstract = {{abstrakt}% + {abst\adddot}}, + annotation = {{anot\'{a}cia}% + {anot\adddot}}, + commonera = {{n\'a\v{s}ho letopo\v{c}tu}{n\adddotspace l\adddot}}, + beforecommonera = {{pred na\v{s}\'{\i}m letopo\v{c}tom}{pred\ n\adddotspace l\adddot}}, + annodomini = {{po Kristovi}{po\ Kr\adddot}}, + beforechrist = {{pred Kristom}{pred\ Kr\adddot}}, +% circa = {{}{}},% FIXME: missing +% spring = {{}{}},% FIXME: missing +% summer = {{}{}},% FIXME: missing +% autumn = {{}{}},% FIXME: missing +% winter = {{}{}},% FIXME: missing + am = {{AM}{AM}}, + pm = {{PM}{PM}}, +} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/lbx/slovene.lbx b/macros/latex/contrib/biblatex/latex/lbx/slovene.lbx new file mode 100644 index 0000000000..225361ed45 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/lbx/slovene.lbx @@ -0,0 +1,532 @@ +\ProvidesFile{slovene.lbx} +[\abx@lbxid] + +\DeclareRedundantLanguages{slovene}{slovene,slovenian} + +\DeclareBibliographyExtras{% + \protected\def\bibrangedash{\textendash\penalty\hyphenpenalty}% + \let\finalandcomma=\empty + \let\finalandsemicolon=\empty + \protected\def\mkbibordinal#1{\stripzeros{#1}\adddot}% + \protected\def\mkbibmascord{\mkbibordinal}% + \protected\def\mkbibfemord{\mkbibordinal}% + \protected\def\mkbibneutord{\mkbibordinal}% + \protected\def\mkbibdatelong#1#2#3{% + \iffieldundef{#3} + {} + {\mkbibordinal{\thefield{#3}}% + \iffieldundef{#2}{}{\nobreakspace}}% + \iffieldundef{#2} + {} + {\mkbibmonth{\thefield{#2}}% + \iffieldundef{#1}{}{\space}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}% + \protected\def\mkbibdateshort#1#2#3{% + \iffieldundef{#3} + {} + {\mkbibordinal{\thefield{#3}}% + \iffieldundef{#2}{}{\addnbthinspace}}% + \iffieldundef{#2} + {} + {\mkbibordinal{\thefield{#2}}% + \iffieldundef{#1}{}{\addnbthinspace}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}% + \savecommand\mkbibordedition + \savecommand\mkbibordseries + \def\mkbibordedition{\mkbibordinal}% + \def\mkbibordseries{\mkbibfemord}% + \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{% + \iffieldundef{#1}{} + {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}% + \iffieldundef{#2}{} + {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}% + \iffieldundef{#3}{} + {\printtext{\mktimezeros{\thefield{#3}}}}% + \setunit{}% + \iffieldundef{#4}{} + {\bibtimezonesep + \mkbibtimezone{\thefield{#4}}}}% + \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{% + \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep + \forcezerosmdt{\thefield{#2}}% + \iffieldundef{#3}{} + {\bibtimesep + \forcezerosmdt{\thefield{#3}}}% + \space + \ifnumless{\thefield{#1}}{12} + {\bibstring{am}} + {\bibstring{pm}}% + \iffieldundef{#4}{} + {\space\bibtimezonesep + \parentext{\mkbibtimezone{\thefield{#4}}}}}% + \protected\def\mkbibseasondateshort#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% + \protected\def\mkbibseasondatelong#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% +} + +\UndeclareBibliographyExtras{% + \restorecommand\mkbibordedition + \restorecommand\mkbibordseries +} + +\DeclareBibliographyStrings{% + bibliography = {{Literatura}{Literatura}}, + references = {{Literatura}{Literatura}}, + shorthands = {{Kratice}{Kratice}}, + editor = {{urednik}{ur\adddot}}, + editors = {{uredniki}{ur\adddot}}, + compiler = {{sestavljalec}{sest\adddot}}, + compilers = {{sestavljalci}{sest\adddot}}, + redactor = {{redaktor}{redaktor}}, + redactors = {{redaktorji}{redaktorji}}, + reviser = {{korektor}{korektor}}, + revisers = {{korektorji}{korektorji}}, + founder = {{snovalec}{snovalec}}, + founders = {{snovalci}{snovalci}}, + continuator = {{nadaljevalec}{nadaljevalec}}, + continuators = {{nadaljevalci}{nadaljevalci}}, + collaborator = {{sodelavec}{sod\adddot}}, + collaborators = {{sodelavci}{sod\adddot}}, + translator = {{prevajalec}{prev\adddot}}, + translators = {{prevajalci}{prev\adddot}}, + commentator = {{komentator}{komentator}}, + commentators = {{komentatorji}{komentatorji}}, + annotator = {{anotator}{anotator}}, + annotators = {{anotatorji}{anotatorji}}, + commentary = {{komentar}{komentar}}, + annotations = {{opombe}{op\adddot}}, + introduction = {{uvod}{uvod}}, + foreword = {{predgovor}{predg\adddot}}, + afterword = {{spremna beseda}{spr\adddotspace b\adddot}}, + editortr = {{urednik in prevajalec}% + {ur\adddotspace in prev\adddot}}, + editorstr = {{uredniki in prevajalci}% + {ur\adddotspace and prev\adddot}}, + editorco = {{urednik in komentator}% + {ur\adddotspace in komentator}}, + editorsco = {{uredniki in komentatorji}% + {ur\adddotspace in komentatorji}}, + editoran = {{urednik in anotator}% + {ur\adddotspace in anotator}}, + editorsan = {{uredniki in anotatorji}% + {ur\adddotspace in anotatorji}}, + editorin = {{urednik in avtor uvoda}% + {ur\adddotspace in avt\adddotspace uvoda}}, + editorsin = {{uredniki in avtorji uvoda}% + {ur\adddotspace in avt\adddotspace uvoda}}, + editorfo = {{urednik in avtor predgovora}% + {ur\adddotspace in avt\adddotspace predg\adddot}}, + editorsfo = {{uredniki in avtorji predgovora}% + {ur\adddotspace in avt\adddotspace predg\adddot}}, + editoraf = {{urednik in avtor spremne besede}% + {ur\adddotspace in avt\adddotspace spr\adddotspace b\adddot}}, + editorsaf = {{uredniki in avtorji spremne besede}% + {ur\adddotspace in avt\adddotspace spr\adddotspace b\adddot}}, + editortrco = {{urednik, prevajalec in komentator}% + {ur\adddotspace, prev\adddotspace in komentator}}, + editorstrco = {{uredniki, prevajalci in komentatorji}% + {ur\adddotspace, prev\adddotspace in komentatorji}}, + editortran = {{urednik, prevajalec in anotator}% + {ur\adddotspace, prev\adddotspace in anotator}}, + editorstran = {{uredniki, prevajalci in anotatorji}% + {ur\adddotspace, prev\adddotspace in anotatorji}}, + editortrin = {{urednik, prevajalec in avtor uvoda}% + {ur\adddotspace, prev\adddotspace in avt\adddotspace uvoda}}, + editorstrin = {{uredniki, prevajalci in avtorji uvoda}% + {ur\adddotspace, prev\adddotspace in avt\adddotspace uvoda}}, + editortrfo = {{urednik, prevajalec in avtor predgovora}% + {ur\adddotspace, prev\adddotspace in avt\adddotspace predg\adddot}}, + editorstrfo = {{uredniki, prevajalci in avtorji predgovora}% + {ur\adddotspace, prev\adddotspace in avt\adddotspace predg\adddot}}, + editortraf = {{urednik, prevajalec in avtor spremne besede}% + {ur\adddotspace, prev\adddotspace in avt\adddotspace spr\adddotspace b\adddot}}, + editorstraf = {{uredniki, prevajalci in avtorji spremne besede}% + {ur\adddotspace, prev\adddotspace in avt\adddotspace spr\adddotspace b\adddot}}, + editorcoin = {{urednik, komentator in avtor uvoda}% + {ur\adddotspace, komentator in avt\adddotspace uvoda}}, + editorscoin = {{uredniki, komentatorji in avtorji uvoda}% + {ur\adddotspace, komentatorji in avt\adddotspace uvoda}}, + editorcofo = {{urednik, komentator in avtor predgovora}% + {ur\adddotspace, komentator in avt\adddotspace predg\adddot}}, + editorscofo = {{uredniki, komentatorji in avtorji predgovora}% + {ur\adddotspace, komentatorji in avt\adddotspace predg\adddot}}, + editorcoaf = {{urednik, komentator in avtor spremne besede}% + {ur\adddotspace, komentator in avt\adddotspace spr\adddotspace b\adddot}}, + editorscoaf = {{uredniki, komentatorji in avtorji spremne besede}% + {ur\adddotspace, komentatorji in avt\adddotspace spr\adddotspace b\adddot}}, + editoranin = {{urednik, anotator in avtor uvoda}% + {ur\adddotspace, anotator in avt\adddotspace uvoda}}, + editorsanin = {{uredniki, anotatorji in avtorji uvoda}% + {ur\adddotspace, anotatorji in avt\adddotspace uvoda}}, + editoranfo = {{urednik, anotator in avtor predgovora}% + {ur\adddotspace, anotator in avt\adddotspace predg\adddot}}, + editorsanfo = {{uredniki, anotatorji in avtorji predgovora}% + {ur\adddotspace, anotatorji in avt\adddotspace predg\adddot}}, + editoranaf = {{urednik, anotator in avtor spremne besede}% + {ur\adddotspace, anotator in avt\adddotspace spr\adddotspace b\adddot}}, + editorsanaf = {{uredniki, anotatorji in avtorji spremne besede}% + {ur\adddotspace, anotatorji in avt\adddotspace spr\adddotspace b\adddot}}, + editortrcoin = {{urednik, prevajalec, komentator in avtor uvoda}% + {ur\adddotspace, prev\adddotspace, komentator in avt\adddotspace uvoda}}, + editorstrcoin = {{uredniki, prevajalci, komentatorji in avtorji uvoda}% + {ur\adddotspace, prev\adddotspace, komentatorji in avt\adddotspace uvoda}}, + editortrcofo = {{urednik, prevajalec, komentator in avtor predgovora}% + {ur\adddotspace, prev\adddotspace, komentator in avt\adddotspace predg\adddot}}, + editorstrcofo = {{uredniki, prevajalci, komentatorji in avtorji predgovora}% + {ur\adddotspace, prev\adddotspace, komentatorji in avt\adddotspace predg\adddot}}, + editortrcoaf = {{urednik, prevajalec, komentator in avtor spremne besede}% + {ur\adddotspace, prev\adddotspace, komentator in avt\adddotspace spr\adddotspace b\adddot}}, + editorstrcoaf = {{uredniki, prevajalci, komentatorji in avtorji spremne besede}% + {ur\adddotspace, prev\adddotspace, komentatorji in avt\adddotspace spr\adddotspace b\adddot}}, + editortranin = {{urednik, prevajalec, anotator in avtor uvoda}% + {ur\adddotspace, prev\adddotspace, anotator in avt\adddotspace uvoda}}, + editorstranin = {{uredniki, prevajalci, anotatorji in avtorji uvoda}% + {ur\adddotspace, prev\adddotspace, anotatorji in avt\adddotspace uvoda}}, + editortranfo = {{urednik, prevajalec, anotator in avtor predgovora}% + {ur\adddotspace, prev\adddotspace, anotator in avt\adddotspace predg\adddot}}, + editorstranfo = {{uredniki, prevajalci, anotatorji in avtorji predgovora}% + {ur\adddotspace, prev\adddotspace, anotatorji in avt\adddotspace predg\adddot}}, + editortranaf = {{urednik, prevajalec, anotator in avtor spremne besede}% + {ur\adddotspace, prev\adddotspace, anotator in avt\adddotspace spr\adddotspace b\adddot}}, + editorstranaf = {{uredniki, prevajalci, anotatorji in avtorji spremne besede}% + {ur\adddotspace, prev\adddotspace, anotatorji in avt\adddotspace spr\adddotspace b\adddot}}, + translatorco = {{prevajalec in komentator}% + {prev\adddotspace in komentator}}, + translatorsco = {{prevajalci in komentatorji}% + {prev\adddotspace in komentatorji}}, + translatoran = {{prevajalec in anotator}% + {prev\adddotspace in anotator}}, + translatorsan = {{prevajalci in anotatorji}% + {prev\adddotspace in anotatorji}}, + translatorin = {{avtor prevoda in uvoda}% + {avt\adddotspace prev\adddotspace in uvoda}}, + translatorsin = {{avtorji prevoda in uvoda}% + {avt\adddotspace prev\adddotspace in uvoda}}, + translatorfo = {{avtor prevoda in predgovora}% + {avt\adddotspace prev\adddotspace in predg\adddot}}, + translatorsfo = {{avtorji prevoda in predgovora}% + {avt\adddotspace prev\adddotspace in predg\adddot}}, + translatoraf = {{avtor prevoda in spremne besede}% + {avt\adddotspace prev\adddotspace in spr\adddotspace b\adddot}}, + translatorsaf = {{avtorji prevoda in spremne besede}% + {avt\adddotspace prev\adddotspace in spr\adddotspace b\adddot}}, + translatorcoin = {{avtor prevoda, komentarja in uvoda}% + {avt\adddotspace prev\adddotspace, komentarja in uvoda}}, + translatorscoin = {{avtorji prevoda, komentarja in uvoda}% + {avt\adddotspace prev\adddotspace, komentarja in uvoda}}, + translatorcofo = {{avtor prevoda, komentarja in predgovora}% + {avt\adddotspace prev\adddotspace, komentarja in predg\adddot}}, + translatorscofo = {{avtorji prevoda, komentarja in predgovora}% + {avt\adddotspace prev\adddotspace, komentarja in predg\adddot}}, + translatorcoaf = {{avtor prevoda, komentarja in spremne besede}% + {avt\adddotspace prev\adddotspace, komentarja in spr\adddotspace b\adddot}}, + translatorscoaf = {{avtorji prevoda, komentarja in spremne besede}% + {avt\adddotspace prev\adddotspace, komentarja in spr\adddotspace b\adddot}}, + translatoranin = {{avtor prevoda, opomb in uvoda}% + {avt\adddotspace prev\adddotspace, opomb in uvoda}}, + translatorsanin = {{avtorji prevoda, opomb in uvoda}% + {avt\adddotspace prev\adddotspace, opomb in uvoda}}, + translatoranfo = {{avtor prevoda, opomb in predgovora}% + {avt\adddotspace prev\adddotspace, opomb in predg\adddot}}, + translatorsanfo = {{avtorji prevoda, opomb in predgovora}% + {avt\adddotspace prev\adddotspace, opomb in predg\adddot}}, + translatoranaf = {{avtor prevoda, opomb in spremne besede}% + {avt\adddotspace prev\adddotspace, opomb in spr\adddotspace b\adddot}}, + translatorsanaf = {{avtorji prevoda, opomb in spremne besede}% + {avt\adddotspace prev\adddotspace, opomb in spr\adddotspace b\adddot}}, +% organizer = {{}{}},% FIXME: missing +% organizers = {{}{}},% FIXME: missing +% byorganizer = {{}{}},% FIXME: missing + byauthor = {{}{}}, + byeditor = {{uredil}{ur\adddot}},% FIXME: unsure + bycompiler = {{sestavil}{sest\adddot}},% FIXME: unsure + byredactor = {{oblikoval}{oblik\adddot}},% FIXME: unsure + byreviser = {{koregiral}{koregiral}},% FIXME: unsure + byreviewer = {{recenziral}{recenziral}},% FIXME: unsure + byfounder = {{snoval}{snoval}},% FIXME: unsure + bycontinuator = {{nadaljeval}{nadaljeval}},% FIXME: unsure + bycollaborator = {{v sodelovanju z}{v sod\adddotspace z}}, + bytranslator = {{prevedel}{prev\adddot}},% FIXME: unsure + bycommentator = {{komentiral}{komentiral}},% FIXME: unsure + byannotator = {{anotiral}{anotiral}},% FIXME: unsure + withcommentator = {{s komentarjem}{s komentarjem}}, + withannotator = {{z opombami}{z opombami}}, + withintroduction = {{z uvodom}{z uvodom}}, + withforeword = {{s predgovorom}{s predg\adddot}}, + withafterword = {{s spremno besedo}{s spr\adddotspace b\adddot}}, + byeditortr = {{uredil in prevedel}% + {uredil in prevedel}},% FIXME: unsure + byeditorco = {{uredil in komentiral}% + {ur\adddotspace in komentiral}},% FIXME: unsure + byeditoran = {{uredil in anotiral}% + {ur\adddotspace in anotiral}},% FIXME: unsure + byeditorin = {{uredil, z uvodom}% + {ur\adddotspace z uvodom}},% FIXME: unsure + byeditorfo = {{uredil, s predgovorom}% + {ur\adddotspace s predg\adddot}},% FIXME: unsure + byeditoraf = {{uredil, s spremno besedo}% + {ur\adddotspace s sprem\adddotspace b\adddot}},% FIXME: unsure + byeditortrco = {{uredil, prevedel \lbx@lfromlang\ in komentiral}% + {ur\adddotspace prev\adddot\ \lbx@sfromlang\ in komentiral}},% FIXME: unsure + byeditortran = {{uredil, prevedel \lbx@lfromlang\ in anotiral}% + {ur\adddotspace prev\adddot\ \lbx@sfromlang\ in anotiral}},% FIXME: unsure + byeditortrin = {{uredil in prevedel \lbx@lfromlang, z uvodom}% + {ur\adddotspace in prev\adddot\ \lbx@sfromlang, z uvodom}},% FIXME: unsure + byeditortrfo = {{uredil in prevedel \lbx@lfromlang, s predgovorom}% + {ur\adddotspace in prev\adddot\ \lbx@sfromlang, s predg\adddot}},% FIXME: unsure + byeditortraf = {{uredil in prevedel \lbx@lfromlang, s spremno besedo}% + {ur\adddotspace in prev\adddot\ \lbx@sfromlang, s sprem\adddotspace b\adddot}},% FIXME: unsure + byeditorcoin = {{uredil in komentiral, z uvodom}% + {ur\adddotspace in komentiral, z uvodom}},% FIXME: unsure + byeditorcofo = {{uredil in komentiral, s predgovorom}% + {ur\adddotspace in komentiral, s predg\adddot}},% FIXME: unsure + byeditorcoaf = {{uredil in komentiral, s spremno besedo}% + {ur\adddotspace in komentiral, s sprem\adddotspace b\adddot}},% FIXME: unsure + byeditoranin = {{uredil in anotiral, z uvodom}% + {ur\adddotspace in anotiral, z uvodom}},% FIXME: unsure + byeditoranfo = {{uredil in anotiral, s predgovorom}% + {ur\adddotspace in anotiral, s predg\adddot}},% FIXME: unsure + byeditoranaf = {{uredil in anotiral, s spremno besedo}% + {ur\adddotspace in anotiral, s sprem\adddotspace b\adddot}},% FIXME: unsure + byeditortrcoin = {{uredil, prevedel \lbx@lfromlang\ in komentiral, z uvodom}% + {ur\adddotspace prev\adddot\ \lbx@sfromlang\ in komentiral, z uvodom}},% FIXME: unsure + byeditortrcofo = {{uredil, prevedel \lbx@lfromlang\ in komentiral, s predgovorom}% + {ur\adddotspace prev\adddot\ \lbx@sfromlang\ in komentiral, s predg\adddot}},% FIXME: unsure + byeditortrcoaf = {{uredil, prevedel \lbx@lfromlang\ in komentiral, s spremno besedo}% + {ur\adddotspace prev\adddot\ \lbx@sfromlang\ in komentiral, s sprem\adddotspace b\adddot}},% FIXME: unsure + byeditortranin = {{uredil, prevedel \lbx@lfromlang\ in anotiral, z uvodom}% + {ur\adddotspace prev\adddot\ \lbx@sfromlang\ in anotiral, z uvodom}},% FIXME: unsure + byeditortranfo = {{uredil, prevedel \lbx@lfromlang\ in anotiral, s predgovorom}% + {ur\adddotspace prev\adddot\ \lbx@sfromlang\ in anotiral, s predg\adddot}},% FIXME: unsure + byeditortranaf = {{uredil, prevedel \lbx@lfromlang\ in anotiral, s spremno besedo}% + {ur\adddotspace prev\adddot\ \lbx@sfromlang\ in anotiral, s sprem\adddotspace b\adddot}},% FIXME: unsure + bytranslatorco = {{prevedel \lbx@lfromlang\ in komentiral}% + {prev\adddot\ \lbx@sfromlang\ in komentiral}},% FIXME: unsure + bytranslatoran = {{prevedel \lbx@lfromlang\ in anotiral}% + {prev\adddot\ \lbx@sfromlang\ in anotiral}},% FIXME: unsure + bytranslatorin = {{prevedel \lbx@lfromlang, z uvodom}% + {prev\adddot\ \lbx@sfromlang, z uvodom}},% FIXME: unsure + bytranslatorfo = {{prevedel \lbx@lfromlang, s predgovorom}% + {prev\adddot\ \lbx@sfromlang, s predg\adddot}},% FIXME: unsure + bytranslatoraf = {{prevedel \lbx@lfromlang, s spremno besedo}% + {prev\adddot\ \lbx@sfromlang, s sprem\adddotspace b\adddot}},% FIXME: unsure + bytranslatorcoin = {{prevedel \lbx@lfromlang\ in komentiral, z uvodom}% + {prev\adddot\ \lbx@sfromlang\ in komentiral, z uvodom}},% FIXME: unsure + bytranslatorcofo = {{prevedel \lbx@lfromlang\ in komentiral, s predgovorom}% + {prev\adddot\ \lbx@sfromlang\ in komentiral, s predg\adddot}},% FIXME: unsure + bytranslatorcoaf = {{prevedel \lbx@lfromlang\ in komentiral, s spremno besedo}% + {prev\adddot\ \lbx@sfromlang\ in komentiral, s sprem\adddotspace b\adddot}},% FIXME: unsure + bytranslatoranin = {{prevedel \lbx@lfromlang\ in anotiral, z uvodom}% + {prev\adddot\ \lbx@sfromlang\ in anotiral, z uvodom}},% FIXME: unsure + bytranslatoranfo = {{prevedel \lbx@lfromlang\ in anotiral, s predgovorom}% + {prev\adddot\ \lbx@sfromlang\ in anotiral, s predg\adddot}},% FIXME: unsure + bytranslatoranaf = {{prevedel \lbx@lfromlang\ in anotiral, s spremno besedo}% + {prev\adddot\ \lbx@sfromlang\ in anotiral, s sprem\adddotspace b\adddot}},% FIXME: unsure + and = {{in}{in}}, + andothers = {{in sodelavci}{in sod\adddot}}, + andmore = {{idr\adddot}{idr\adddot}}, + volume = {{zvezek}{zv\adddot}}, + volumes = {{zvezki}{zv\adddot}}, + involumes = {{v}{v}}, + jourvol = {{letnik}{let\adddot}}, + jourser = {{zbirka}{zbirka}}, + book = {{knjiga}{knj\adddot}}, + part = {{del}{del}}, + issue = {{\v{s}tevilka}{\v{s}t\adddot}}, + newseries = {{nova zbirka}{nova zbirka}}, + oldseries = {{stara zbirka}{stara zbirka}}, + edition = {{izdaja}{izd\adddot}}, + reprint = {{ponatis}{ponatis}}, + reprintof = {{ponatis}{ponatis}}, + reprintas = {{ponatisnjeno kot}{ponatisnjeno kot}}, + reprintfrom = {{ponatisnjeno iz}{ponatisnjeno iz}}, + %reviewof = {{recenzija}{recenzija}},% FIXME: unsure + translationof = {{prevod}{prev\adddot}}, + translationas = {{prevedeno kot}{prev\adddotspace kot}}, + translationfrom = {{prevedeno iz}{prev\adddotspace iz}}, + origpubas = {{izvirna izdaja}{izvirna izd\adddot}}, + origpubin = {{izvirno izdano v}{izvirno izdano v}}, + astitle = {{}{}}, + bypublisher = {{}{}}, + nodate = {{brez datuma}{b\adddot d\adddot}}, + page = {{stran}{str\adddot}}, + pages = {{strani}{str\adddot}}, + column = {{stolpec}{st\adddot}}, + columns = {{stolpci}{st\adddot}}, + line = {{vrstica}{v\adddot}}, + lines = {{vrstice}{v\adddot}}, + verse = {{verz}{v\adddot}}, + verses = {{verzi}{v\adddot}}, + section = {{razdelek}{\S}}, + sections = {{razdelek}{\S\S}}, + paragraph = {{odstavek}{odstavek}}, + paragraphs = {{odstavki}{odstavki}}, +% pagetotal = {{}{}},% FIXME: missing +% pagetotals = {{}{}},% FIXME: missing +% columntotal = {{}{}},% FIXME: missing +% columntotals = {{}{}},% FIXME: missing +% linetotal = {{}{}},% FIXME: missing +% linetotals = {{}{}},% FIXME: missing +% versetotal = {{}{}},% FIXME: missing +% versetotals = {{}{}},% FIXME: missing +% sectiontotal = {{}{}},% FIXME: missing +% sectiontotals = {{}{}},% FIXME: missing +% paragraphtotal = {{}{}},% FIXME: missing +% paragraphtotals = {{}{}},% FIXME: missing + in = {{v}{v}}, + inseries = {{v zbirki}{v zbirki}}, + ofseries = {{iz zbirke}{iz zbirke}}, + number = {{\v{s}tevilka}{\v{s}t\adddot}}, + chapter = {{poglavje}{pogl\adddot}}, +% bathesis = {{}{}},% FIXME: missing + mathesis = {{Magistrsko delo}{Magistrsko delo}}, + phdthesis = {{Doktorska disertacija}{Doktorska disertacija}}, +% candthesis = {{Candidate thesis}{Cand\adddotspace thesis}},% FIXME: don't know + resreport = {{Raziskovalno poro\v{c}ilo}{Razisk\adddotspace poro\v{c}ilo}}, + techreport = {{Tehni\v{c}no poro\v{c}ilo}{Teh\adddotspace poro\v{c}ilo}}, + software = {{Ra\v{c}unalni\v{s}ki program}{Ra\v{c}\adddotspace prog\adddot}}, + datacd = {{CD-ROM}{CD-ROM}}, + audiocd = {{avdio CD}{avdio CD}}, + version = {{verzija}{ver\adddot}}, + url = {{spletni naslov}{spletni naslov}}, + urlfrom = {{dostopno na}{dostopno na}}, + urlseen = {{pridobljeno}{pridobljeno}}, + inpreparation = {{v pripravi}{v pripravi}}, + submitted = {{poslano v objavo}{poslano v objavo}}, + %forthcoming = {{forthcoming}{forthcoming}},% FIXME: don't know + inpress = {{v tisku}{v tisku}}, + %prepublished = {{pre-published}{pre-published}},% FIXME: don't know + citedas = {{v nadaljevanju citirano kot}{v nadalj\adddotspace cit\adddotspace kot}}, + thiscite = {{posebno}{posebno}}, + seenote = {{glej opombo}{gl\adddotspace op\adddot}}, + quotedin = {{citirano v}{cit\adddotspace v}}, + idem = {{isti}{id\adddot}}, + idemsm = {{isti}{id\adddot}}, + idemsf = {{ista}{id\adddot}}, + idemsn = {{isto}{id\adddot}}, + idempm = {{isti}{id\adddot}}, + idempf = {{iste}{id\adddot}}, + idempn = {{ista}{id\adddot}}, + idempp = {{isti}{id\adddot}}, + ibidem = {{prav tam}{ibid\adddot}}, +% opcit = {{op\adddotspace cit\adddot}{op\adddotspace cit\adddot}},% FIXME: don't know +% loccit = {{loc\adddotspace cit\adddot}{loc\adddotspace cit\adddot}},% FIXME: don't know + confer = {{primerjaj}{prim\adddot}}, +% sequens = {{sq\adddot}{sq\adddot}},% FIXME: don't know +% sequentes = {{sqq\adddot}{sqq\adddot}},% FIXME: don't know +% passim = {{passim}{pass\adddot}},% FIXME: don't know + see = {{glej}{gl\adddot}}, + seealso = {{glej tudi}{gl\adddotspace tudi}}, + backrefpage = {{citirano na strani}{cit\adddotspace na str\adddot}}, + backrefpages = {{citirano na straneh}{cit\adddotspace na str\adddot}}, + january = {{januar}{jan\adddot}}, + february = {{februar}{feb\adddot}}, + march = {{marec}{mar\adddot}}, + april = {{april}{apr\adddot}}, + may = {{maj}{maj}}, + june = {{junij}{jun\adddot}}, + july = {{julij}{jul\adddot}}, + august = {{avgust}{avg\adddot}}, + september = {{september}{sep\adddot}}, + october = {{oktober}{okt\adddot}}, + november = {{november}{nov\adddot}}, + december = {{december}{dec\adddot}}, + langamerican = {{angle\v{s}\v{c}ina}{angl\adddot}}, + langbrazilian = {{brazil\v{s}\v{c}ina}{braz\adddot}}, +% langbulgarian = {{}{}},% FIXME: missing + langcatalan = {{katalon\v{s}\v{c}ina}{kat\adddot}}, + langcroatian = {{hrva\v{s}\v{c}ina}{hrv\adddot}}, + langczech = {{\v{c}e\v{s}\v{c}ina}{\v{c}e\v{s}\adddot}}, + langdanish = {{dan\v{s}\v{c}ina}{dan\adddot}}, + langdutch = {{nizozem\v{s}\v{c}ina}{niz\adddot}}, + langenglish = {{angle\v{s}\v{c}ina}{angl\adddot}}, +% langestonian = {{}{}},% FIXME: missing + langfinnish = {{fin\v{s}\v{c}ina}{fin\adddot}}, + langfrench = {{franco\v{s}\v{c}ina}{fr\adddot}}, + langgalician = {{galicij\v{s}\v{c}ina}{gal\adddot}}, + langgerman = {{nem\v{s}\v{c}ina}{nem\adddot}}, + langgreek = {{gr\v{s}\v{c}ina}{gr\adddot}}, +% langhungarian = {{}{}}, % FIXME: missing + langitalian = {{italijan\v{s}\v{c}ina}{it\adddot}}, + langlatin = {{latin\v{s}\v{c}ina}{lat\adddot}}, +% langlatvian = {{}{}},% FIXME: missing + langnorwegian = {{norve\v{s}\v{c}ina}{nor\adddot}}, + langpolish = {{polj\v{s}\v{c}ina}{polj\adddot}}, + langportuguese = {{portugal\v{s}\v{c}ina}{por\adddot}}, + langrussian = {{ru\v{s}\v{c}ina}{ru\adddot}}, +% langslovak = {{}{}},% FIXME: missing + langslovene = {{sloven\v{s}\v{c}ina}{sl\adddot}}, + langspanish = {{\v{s}pan\v{s}\v{c}ina}{\v{s}p\adddot}}, + langswedish = {{\v{s}ved\v{s}\v{c}ina}{\v{s}ved\adddot}}, + fromamerican = {{iz angle\v{s}\v{c}ine}{iz angl\adddot}}, + frombrazilian = {{iz brazil\v{s}\v{c}ine}{iz braz\adddot}}, +% frombulgarian = {{}{}},% FIXME: missing + fromcatalan = {{iz katalon\v{s}\v{c}ine}{iz kat\adddot}}, + fromcroatian = {{iz hrva\v{s}\v{c}ine}{iz hrv\adddot}}, + fromczech = {{iz \v{c}e\v{s}\v{c}ine}{iz \v{c}e\v{s}\adddot}}, + fromdanish = {{iz dan\v{s}\v{c}ine}{iz dan\adddot}}, + fromdutch = {{iz nizozem\v{s}\v{c}ine}{iz niz\adddot}}, + fromenglish = {{iz angle\v{s}\v{c}ine}{iz angl\adddot}}, +% fromestonian = {{}{}},% FIXME: missing + fromfinnish = {{iz fin\v{s}\v{c}ine}{iz fin\adddot}}, + fromfrench = {{iz franco\v{s}\v{c}ine}{iz fr\adddot}}, + fromgalician = {{iz galicij\v{s}\v{c}ine}{iz gal\adddot}}, + fromgerman = {{iz nem\v{s}\v{c}ine}{iz nem\adddot}}, + fromgreek = {{iz gr\v{s}\v{c}ine}{iz gr\adddot}}, +% fromhungarian = {{}{}}, % FIXME: missing + fromitalian = {{iz italijan\v{s}\v{c}ine}{iz it\adddot}}, + fromlatin = {{iz latin\v{s}\v{c}ine}{iz lat\adddot}}, +% fromlatvian = {{}{}},% FIXME: missing + fromnorwegian = {{iz norve\v{s}\v{c}ine}{iz nor\adddot}}, + frompolish = {{iz polj\v{s}\v{c}ine}{iz polj\adddot}}, + fromportuguese = {{iz portugal\v{s}\v{c}ine}{iz por\adddot}}, + fromrussian = {{iz ru\v{s}\v{c}ine}{iz ru\adddot}}, +% fromslovak = {{}{}},% FIXME: missing + fromslovene = {{iz sloven\v{s}\v{c}ine}{iz sl\adddot}}, + fromspanish = {{iz \v{s}pan\v{s}\v{c}ine}{iz \v{s}p\adddot}}, + fromswedish = {{iz \v{s}ved\v{s}\v{c}ine}{iz \v{s}ved\adddot}}, + countryde = {{Nem\v{c}ija}{Nem\v{c}ija}}, + countryeu = {{Evropska unija}{EU}}, + countryep = {{Evropska unija}{EP}}, + countryfr = {{Francija}{Francija}}, + countryuk = {{Velika Britanija}{VB}}, + countryus = {{Zdru\v{z}ene dr\v{z}ave Amerike}{ZDA}}, + patent = {{patent}{patent}}, + patentde = {{nem\v{s}ki patent}{nem\v{s}ki patent}}, + patenteu = {{evropski patent}{evropski patent}}, + patentfr = {{francoski patent}{francoski patent}}, + patentuk = {{britanski patent}{britanski patent}}, + patentus = {{patent v ZDA}{patent v ZDA}}, + patreq = {{patentna prijava}{patentna prijava}}, + patreqde = {{prijava nem\v{s}kega patenta}{prijava nem\v{s}kega patenta}}, + patreqeu = {{prijava evropskega patenta}{prijava evropskega patenta}}, + patreqfr = {{prijava francoskega patenta}{prijava francoskega patenta}}, + patrequk = {{prijava britanskega patenta}{prijava britanskega patenta}}, + patrequs = {{prijava patenta v ZDA}{prijava patenta v ZDA}}, + file = {{datoteka}{datoteka}}, + library = {{knji\v{z}nica}{knji\v{z}nica}}, + abstract = {{povzetek}{povzetek}}, + annotation = {{opomba}{op\adddot}}, + commonera = {{po n\adddotspace\v{s}t\adddot}{n\adddotspace\v{s}t\adddot}}, + beforecommonera = {{pred na\v{s}im \v{s}tetjem}{pr\adddotspace n\adddotspace\v{s}t\adddot}}, + annodomini = {{na\v{s}e \v{s}tetje}{po\ n\adddotspace\v{s}t\adddot}}, + beforechrist = {{pred Kristusom}{pr\adddotspace Kr\adddot}}, +% circa = {{}{}},% FIXME: missing +% spring = {{}{}},% FIXME: missing +% summer = {{}{}},% FIXME: missing +% autumn = {{}{}},% FIXME: missing +% winter = {{}{}},% FIXME: missing + am = {{dop\adddot}{dop\adddot}}, + pm = {{pop\adddot}{pop\adddot}}, +} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/lbx/slovenian.lbx b/macros/latex/contrib/biblatex/latex/lbx/slovenian.lbx new file mode 100644 index 0000000000..69214d4032 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/lbx/slovenian.lbx @@ -0,0 +1,7 @@ +\ProvidesFile{slovenian.lbx} +[\abx@lbxid] + +\InheritBibliographyExtras{slovene} +\InheritBibliographyStrings{slovene} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/lbx/spanish.lbx b/macros/latex/contrib/biblatex/latex/lbx/spanish.lbx new file mode 100644 index 0000000000..3326fe55d2 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/lbx/spanish.lbx @@ -0,0 +1,592 @@ +\ProvidesFile{spanish.lbx} +[\abx@lbxid] + +\DeclareRedundantLanguages{spanish}{spanish} + +\DeclareBibliographyExtras{% + \protected\def\bibrangedash{\mbox{-}}% non-breaking hyphen + \let\finalandcomma=\empty + \let\finalandsemicolon=\empty + \def\mkbibordinal{\mkbibmascord}% + \providecommand*{\sptext}{\textsuperscript}% \sptext -> spanish.ldf (babel) + \protected\def\mkbibmascord#1{\stripzeros{#1}\sptext{o}}% + \protected\def\mkbibfemord#1{\stripzeros{#1}\sptext{a}}% + \protected\def\mkbibneutord{\mkbibmascord}% + \protected\def\mkbibdatelong#1#2#3{% + \iffieldundef{#3} + {} + {\stripzeros{\thefield{#3}}% + \iffieldundef{#2}{}{\nobreakspace de\space}}% + \iffieldundef{#2} + {} + {\mkbibmonth{\thefield{#2}}% + \iffieldundef{#1}{}{\nobreakspace de\space}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}% + \protected\def\mkbibdateshort#1#2#3{% + \iffieldundef{#3} + {} + {\mkdayzeros{\thefield{#3}}% + \iffieldundef{#2}{}{\mbox{-}}}% + \iffieldundef{#2} + {} + {\mkmonthzeros{\thefield{#2}}% + \iffieldundef{#1}{}{\mbox{-}}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}% + \savecommand\mkdaterangeterse + \protected\def\mkdaterangeterse{% + \BibliographyWarning{% + Date format 'terse' not applicable to\MessageBreak + Spanish dates. Using format 'short' instead}% + \mkdaterangefull{short}}% + \savecommand\lbx@finalnamedelim + \savecommand\lbx@finallistdelim + \ifnumgreater{\value{smartand}}{0} + {\let\lbx@finalnamedelim=\lbx@es@smartand + \let\lbx@finallistdelim=\lbx@es@smartand} + {}% + \savecommand\mkbibordedition + \savecommand\mkbibordseries + \def\mkbibordedition{\mkbibfemord}% + \def\mkbibordseries{\mkbibfemord}% + \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{% + \iffieldundef{#1}{} + {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}% + \iffieldundef{#2}{} + {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}% + \iffieldundef{#3}{} + {\printtext{\mktimezeros{\thefield{#3}}}}% + \setunit{}% + \iffieldundef{#4}{} + {\bibtimezonesep + \mkbibtimezone{\thefield{#4}}}}% + \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{% + \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep + \forcezerosmdt{\thefield{#2}}% + \iffieldundef{#3}{} + {\bibtimesep + \forcezerosmdt{\thefield{#3}}}% + \space + \ifnumless{\thefield{#1}}{12} + {\bibstring{am}} + {\bibstring{pm}}% + \iffieldundef{#4}{} + {\space\bibtimezonesep + \parentext{\mkbibtimezone{\thefield{#4}}}}}% + \protected\def\mkbibseasondateshort#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% + \protected\def\mkbibseasondatelong#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% +} + +\UndeclareBibliographyExtras{% + \restorecommand\mkdaterangeterse + \restorecommand\lbx@finalnamedelim + \restorecommand\lbx@finallistdelim + \restorecommand\mkbibordedition + \restorecommand\mkbibordseries +} + +\DeclareBibliographyStrings{% + bibliography = {{Bibliograf\'{\i}a}{Bibliograf\'{\i}a}}, + references = {{Referencias}{Referencias}}, + shorthands = {{Lista de abreviaturas}{Abreviaturas}}, + editor = {{edici\'on}{ed\adddot}}, %% {edic'{\i}on} instead of {editor} or {editora} + editors = {{edici\'on}{eds\adddot}}, %% {edic'{\i}on} instead of {editores} or {editoras} + compiler = {{compilaci\'{o}n}{comp\adddot}}, %% {compilac\'{\i}on} instead of {compilador} or {compiladora} + compilers = {{compilaci\'{o}n}{comps\adddot}}, %% {compilac\'{\i}on} instead of {compiladores} or {compiladoras} + redactor = {{redacci\'{o}n}{red\adddot}}, %% {redacc\'{\i}on} instead of {redactor} or {redactora} + redactors = {{redacci\'{o}n}{reds\adddot}}, %% {redacc\'{\i}on} instead of {redactores} or {redactoras} + reviser = {{revisi\'{o}n}{rev\adddot}}, %% {revisi\'{\i}on} instead of {revisor} or {revisora} + revisers = {{revisi\'{o}n}{revs\adddot}}, %% {revisi\'{\i}on} instead of {revisores} or {revisoras} + founder = {{fundaci\'{o}n}{fund\adddot}}, %% {fundaci\'{o}n} instead of {fundador} or {fundadora} + founders = {{fundaci\'{o}n}{funds\adddot}}, %% {fundaci\'{o}n} instead of {fundadores} or {fundadoras} + continuator = {{continuaci\'{o}n}{cont\adddot}}, %% {continuaci\'{o}n} instead of {continuador} or {continuadora} + continuators = {{continuaci\'{o}n}{conts\adddot}}, %% {continuaci\'{o}n} instead of {continuadores} or {continuadoras} + collaborator = {{colaboraci\'{o}n}{colab\adddot}}, %% {colaboraci\'{o}n} instead of {colaborador} or {colaboradora} + collaborators = {{colaboraci\'{o}n}{colabs\adddot}}, %% {colaboraci\'{o}n} instead of {colaboradores} or {colaboradoras} + translator = {{traducci\'{o}n \lbx@sfromlang}{trad\adddotspace \lbx@sfromlang}}, %% {traducci\'{o}n} instead of {traductor} or {traductora} + translators = {{traducci\'{o}n \lbx@sfromlang}{trads\adddotspace \lbx@sfromlang}}, %% {traducci\'{o}n} instead of {traductores} or {traductoras} + commentator = {{comentario}{com\adddot}}, %% {comentario} instead of {comentador} or {comentadora} + commentators = {{comentarios}{coms\adddot}}, %% {comentarios} instead of {comentadores} or {comentadoras} + annotator = {{anotaciones}{anot\adddot}}, %% {anotaciones instead of {anotador} or {anotadora} + annotators = {{anotaciones}{anots\adddot}}, %% {anotaciones} instead of {anotadores} or {anotadoras} + commentary = {{comentario}{com\adddot}}, + annotations = {{notas}{notas}}, + introduction = {{introducci\'on}{intr\adddot}}, + foreword = {{pr\'ologo}{pr\'ol\adddot}}, + afterword = {{ep\'{i}logo}{ep\'{\i}l\adddot}}, + editortr = {{edici\'{o}n y traducci\'{o}n \lbx@sfromlang}{ed\adddotspace y trad\adddotspace \lbx@sfromlang}}, %% {{edici\'{o}n y traducci\'{o}n} instead of {editor y traductor} or {editora y traductora} + editorstr = {{edici\'{o}n y traducci\'{o}n \lbx@sfromlang}{eds\adddotspace y trads\adddotspace \lbx@sfromlang}}, %% {{edici\'{o}n y traducci\'{o}n} instead of {editores y traductores} or {editoras y traductoras} + editorco = {{edici\'{o}n y comentario}{ed\adddotspace y com\adddot}}, %% {edici\'{o}n y comentario} instead of {editor y comentador} or {editora y comentadora} + editorsco = {{edici\'{o}n y comentarios}{eds\adddotspace y coms\adddot}}, %% {edici\'{o}n y comentarios} instead of {editores y comentadores} or {editoras y comentadoras} + editoran = {{edici\'{o}n y notas}{ed\adddotspace y anot\adddot}}, %% {edici\'{o}n y notas} instead of {editor y notas} or {editora y notas} + editorsan = {{edici\'{o}n y notas}{eds\adddotspace y anot\adddot}}, %% {edici\'{o}n y notas} instead of {editores y notas} or {editoras y notas} + editorin = {{edici\'{o}n e introducci\'{o}n}{ed\adddotspace e intr\adddot}}, %% {edici\'{o}n e introducci\'{o}n} instead of {editor e introducci\'{o}n} or {editora e introducci\'{o}n} + editorsin = {{edici\'{o}n e introducci\'{o}n}{eds\adddotspace e intr\adddot}}, %% {edici\'{o}n e introducci\'{o}n} instead of {editores e introducci\'{o}n} or {editoras e introducci\'{o}n} + editorfo = {{edici\'{o}n y pr\'{o}logo}{ed\adddotspace y pr\'{o}l\adddot}}, %% {edici\'{o}n y pr\'{o}logo} instead of {editor y pr\'{o}logo} or {editora y pr\'{o}logo} + editorsfo = {{edici\'{o}n y pr\'{o}logo}{eds\adddotspace y pr\'{o}l\adddot}}, %% {edici\'{o}n y pr\'{o}logo} instead of {editores y pr\'{o}logo} or {editoras y pr\'{o}logo} + editoraf = {{edici\'{o}n y ep\'{i}logo}{ed\adddotspace y ep\'{\i}l\adddot}}, %% {edici\'{o}n y ep\'{\i}l\ogo} instead of {editor y ep\'{\i}l\ogo} or {editora y ep\'{\i}l\ogo} + editorsaf = {{edici\'{o}n y ep\'{i}logo}{eds\adddotspace y ep\'{\i}l\adddot}}, %% {edici\'{o}n y ep\'{\i}l\ogo} instead of {editores y ep\'{\i}l\ogo} or {editoras y ep\'{\i}l\ogo} + editortrco = {{edici\'{o}n, traducci\'{o}n \lbx@sfromlang\ y comentario}{ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang\ y com\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx@sfromlang y comentarios} instead of {editor, traductor y comentarios} or {editora, traductora y comentarios} + editorstrco = {{edici\'{o}n, traducci\'{o}n \lbx@sfromlang\ y comentarios}{eds.,\addabbrvspace trads\adddotspace \lbx@sfromlang\ y coms\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx@sfromlang y comentarios} instead of {editores, traductores y comentarios} or {editoras, traductoras y comentarios} + editortran = {{edici\'{o}n, traducci\'{o}n \lbx@sfromlang\ y notas}{ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang\ y anot\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx@sfromlang y notas} instead of {editor, traductor y notas} or {editora, traductora y notas} + editorstran = {{edici\'{o}n, traducci\'{o}n \lbx@sfromlang\ y notas}{eds.,\addabbrvspace trads\adddotspace \lbx@sfromlang\ y anot\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx@sfromlang y notas} instead of {editores, traductores y notas} or {editoras, traductoras y notas} + editortrin = {{edici\'{o}n, traducci\'{o}n \lbx@sfromlang\ e introducci\'{o}n}{ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang\ e intr\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx@sfromlang e introducci\'{o}n} instead of {editor, traductor e introducci\'{o}n} or {editora, traductora e introducci\'{o}n} + editorstrin = {{edici\'{o}n, traducci\'{o}n \lbx@sfromlang\ e introducci\'{o}n}{eds.,\addabbrvspace trads\adddotspace \lbx@sfromlang\ e intr\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx@sfromlang e introducci\'{o}n} instead of {editores, traductores e introducci\'{o}n} or {editoras, traductoras e introducci\'{o}n} + editortrfo = {{edici\'{o}n, traducci\'{o}n \lbx@sfromlang\ y pr\'{o}logo}{ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang\ y pr\'{o}l\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx@sfromlang y pr\'{o}logo} instead of {editor, traductor y prologuista} or {editora, traductora y prologuista} + editorstrfo = {{edici\'{o}n, traducci\'{o}n \lbx@sfromlang\ y pr\'{o}logo}{eds.,\addabbrvspace trads\adddotspace \lbx@sfromlang\ y pr\'{o}l\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx@sfromlang y pr\'{o}logo} instead of {editores, traductores y prologuista} or {editoras, traductoras y prologuistas} + editortraf = {{edici\'{o}n, traducci\'{o}n \lbx@sfromlang\ y ep\'{i}logo}{ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang\ y ep\'{\i}l\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx@sfromlang y ep\'{i}logo} instead of {editor, traductor y ep\'{i}logo} or {editora, traductora y ep\'{i}logo} + editorstraf = {{edici\'{o}n, traducci\'{o}n \lbx@sfromlang\ y ep\'{i}logo}{eds.,\addabbrvspace trads\adddotspace \lbx@sfromlang\ y ep\'{\i}l\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx@sfromlang y ep\'{i}logo} instead of {editores, traductores y ep\'{i}logo} or {editoras, traductoras y ep\'{i}logo} + editorcoin = {{edici\'{o}n, comentarios e introducci\'{o}n}{ed.,\addabbrvspace com\adddotspace e intr\adddot}}, %% {edici\'{o}n, comentarios e introducci\'{o}n} instead of {editor, comentador e introducci\'{o}n} or {editora, comentadora e introducci\'{o}n} + editorscoin = {{edici\'{o}n, comentarios e introducci\'{o}n}{eds.,\addabbrvspace coms\adddotspace e intr\adddot}}, %% {edici\'{o}n, comentarios e introducci\'{o}n} instead of {editores, comentadores e introducci\'{o}n} or {editoras, comentadoras e introducci\'{o}n} + editorcofo = {{edici\'{o}n, comentarios y pr\'{o}logo}{ed.,\addabbrvspace com\adddotspace y pr\'{o}l\adddot}}, %% {edici\'{o}n, comentarios y pr\'{o}logo} instead of {editor, comentador y pr\'{o}logo} or {editora, comentadora y pr\'{o}logo} + editorscofo = {{edici\'{o}n, comentarios y pr\'{o}logo}{eds.,\addabbrvspace coms\adddotspace y pr\'{o}l\adddot}}, %% {edici\'{o}n, comentarios y pr\'{o}logo} instead of {editores, comentadores y pr\'{o}logo} or {editoras, comentadoras y pr\'{o}logo} + editorcoaf = {{edici\'{o}n, comentarios y ep\'{i}logo}{eds.,\addabbrvspace com\adddotspace y ep\'{\i}l\adddot}}, %% {edici\'{o}n, comentarios y ep\'{i}logo} instead of {editor, comentador y ep\'{i}logo} or {editora, comentadora y ep\'{i}logo} + editorscoaf = {{edici\'{o}n, comentarios y ep\'{i}logo}{eds.,\addabbrvspace coms\adddotspace y ep\'{\i}l\adddot}}, %% {edici\'{o}n, comentarios y ep\'{i}logo} instead of {editores, comentadores y ep\'{i}logo} or {editoras, comentadoras y ep\'{i}logo} + editoranin = {{edici\'{o}n, notas e introducci\'{o}n}{ed.,\addabbrvspace anot\adddotspace e intr\adddot}}, %% {{edici\'{o}n, notas e introducci\'{o}n} instead of {editor, notas e introducci\'{o}n} or {editora, notas e introducci\'{o}n} + editorsanin = {{edici\'{o}n, notas e introducci\'{o}n}{eds.,\addabbrvspace anot\adddotspace e intr\adddot}}, %% {{edici\'{o}n, notas e introducci\'{o}n} instead of {editor, notas e introducci\'{o}n} or {editora, notas e introducci\'{o}n} + editoranfo = {{edici\'{o}n, notas y pr\'{o}logo}{ed.,\addabbrvspace anot\adddotspace y ep\'{\i}l\adddot}}, %% {{edici\'{o}n, notas y pr\'{o}logo} instead of {editor, notas y pr\'{o}logo} or {editora, notas y pr\'{o}logo} + editorsanfo = {{edici\'{o}n, notas y pr\'{o}logo}{eds.,\addabbrvspace anot\adddotspace y ep\'{\i}l\adddot}}, %% {{edici\'{o}n, notas y pr\'{o}logo} instead of {editores, notas y pr\'{o}logo} or {editoras, notas y pr\'{o}logo} + editoranaf = {{edici\'{o}n, notas y ep\'{i}logo}{ed.,\addabbrvspace anot\adddotspace y ep\'{\i}l\adddot}}, %% {{edici\'{o}n, notas y ep\'{i}logo} instead of {editor, notas y ep\'{i}logo} or {editora, notas y ep\'{i}logo} + editorsanaf = {{edici\'{o}n, notas y ep\'{i}logo}{eds.,\addabbrvspace anot\adddotspace y ep\'{\i}l\adddot}}, %% {{edici\'{o}n, notas y ep\'{i}logo} instead of {editores, notas y ep\'{i}logo} or {editoras, notas y ep\'{i}logo} + editortrcoin = {{edici\'{o}n, traducci\'{o}n \lbx@sfromlang, comentarios e introducci\'{o}n}{ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang,\addabbrvspace com\adddotspace e intr\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx@sfromlang, comentarios e introducci\'{o}n} instead of {editor, traducci\'{o}n \lbx@sfromlang, comentarios e introducci\'{o}n} or {editora, traducci\'{o}n \lbx@sfromlang, comentarios e introducci\'{o}n} + editorstrcoin = {{edici\'{o}n, traducci\'{o}n \lbx@sfromlang, comentarios e introducci\'{o}n}{eds.,\addabbrvspace trads\adddotspace \lbx@sfromlang,\addabbrvspace coms\adddotspace e intr\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx@sfromlang, comentarios e introducci\'{o}n} instead of {editores, traducci\'{o}n \lbx@sfromlang, comentarios e introducci\'{o}n} or {editoras, traducci\'{o}n \lbx@sfromlang, comentarios e introducci\'{o}n} + editortrcofo = {{edici\'{o}n, traducci\'{o}n \lbx@sfromlang, comentarios y pr\'{o}logo}{ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang,\addabbrvspace com\adddotspace y pr\'{o}l\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx@sfromlang, comentarios y pr\'{o}logo} instead of {editor, traducci\'{o}n \lbx@sfromlang, comentarios y pr\'{o}logo} or {editora, traducci\'{o}n \lbx@sfromlang, comentarios y pr\'{o}logo} + editorstrcofo = {{edici\'{o}n, traducci\'{o}n \lbx@sfromlang, comentarios y pr\'{o}logo}{eds.,\addabbrvspace trads\adddotspace \lbx@sfromlang,\addabbrvspace coms\adddotspace y pr\'{o}l\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx@sfromlang, comentarios y pr\'{o}logo} instead of {editores, traducci\'{o}n \lbx@sfromlang, comentarios y pr\'{o}logo} or {editoras, traducci\'{o}n \lbx@sfromlang, comentarios y pr\'{o}logo} + editortrcoaf = {{edici\'{o}n, traducci\'{o}n \lbx@sfromlang, comentarios y ep\'{i}logo}{ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang,\addabbrvspace com\adddotspace y ep\'{\i}l\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx@sfromlang, comentarios y ep\'{i}logo} instead of {editor, traducci\'{o}n \lbx@sfromlang, comentarios y ep\'{i}logo} or {editora, traducci\'{o}n \lbx@sfromlang, comentarios y ep\'{i}logo} + editorstrcoaf = {{edici\'{o}n, traducci\'{o}n \lbx@sfromlang, comentarios y ep\'{i}logo}{eds.,\addabbrvspace trads\adddotspace \lbx@sfromlang,\addabbrvspace coms\adddotspace y ep\'{\i}l\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx@sfromlang, comentarios y ep\'{i}logo} instead of {editor, traducci\'{o}n \lbx@sfromlang, comentarios y ep\'{i}logo} or {editora, traducci\'{o}n \lbx@sfromlang, comentarios y ep\'{i}logo} + editortranin = {{edici\'{o}n, traducci\'{o}n \lbx@sfromlang, introducci\'{o}n y notas}{ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang,\addabbrvspace intr\adddotspace y anot\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx@sfromlang, introducci\'{o}n y notas} instead of {{editor, traducci\'{o}n \lbx@sfromlang, introducci\'{o}n y notas} or {{editora, traducci\'{o}n \lbx@sfromlang, introducci\'{o}n y notas} + editorstranin = {{edici\'{o}n, traducci\'{o}n \lbx@sfromlang, introducci\'{o}n y notas}{eds.,\addabbrvspace trads\adddotspace \lbx@sfromlang,\addabbrvspace intr\adddotspace y anot\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx@sfromlang, introducci\'{o}n y notas} instead of {{editores, traducci\'{o}n \lbx@sfromlang, introducci\'{o}n y notas} or {{editoras, traducci\'{o}n \lbx@sfromlang, introducci\'{o}n y notas} + editortranfo = {{edici\'{o}n, traducci\'{o}n \lbx@sfromlang, pr\'{o}logo y notas}{ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang,\addabbrvspace pr\'{o}l\adddotspace y anot\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx@sfromlang, pr\'{o}logo y notas} instead of {editor, traducci\'{o}n \lbx@sfromlang, pr\'{o}logo y notas} or {editora, traducci\'{o}n \lbx@sfromlang, pr\'{o}logo y notas} + editorstranfo = {{edici\'{o}n, traducci\'{o}n \lbx@sfromlang, pr\'{o}logo y notas}{eds.,\addabbrvspace trads\adddotspace \lbx@sfromlang,\addabbrvspace pr\'{o}l\adddotspace y anot\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx@sfromlang, pr\'{o}logo y notas} instead of {editores, traducci\'{o}n \lbx@sfromlang, pr\'{o}logo y notas} or {editoras, traducci\'{o}n \lbx@sfromlang, pr\'{o}logo y notas} + editortranaf = {{edici\'{o}n, traducci\'{o}n \lbx@sfromlang, ep\'{i}logo y notas}{ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang,\addabbrvspace ep\'{\i}l\adddotspace y anot\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx@sfromlang, ep\'{i}logo y notas} instead of {editor, traducci\'{o}n \lbx@sfromlang, ep\'{i}logo y notas} or {editora, traducci\'{o}n \lbx@sfromlang, ep\'{i}logo y notas} + editorstranaf = {{edici\'{o}n, traducci\'{o}n \lbx@sfromlang, ep\'{i}logo y notas}{eds.,\addabbrvspace trads\adddotspace \lbx@sfromlang,\addabbrvspace ep\'{\i}l\adddotspace y anot\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx@sfromlang, ep\'{i}logo y notas} instead of {editores, traducci\'{o}n \lbx@sfromlang, ep\'{i}logo y notas} or {editoras, traducci\'{o}n \lbx@sfromlang, ep\'{i}logo y notas} + translatorco = {{traducci\'{o}n \lbx@sfromlang\ y comentario}{trad\adddotspace \lbx@sfromlang\ y com\adddot}}, %% {traducci\'{o}n \lbx@sfromlang y comentario} instead of {traductor y comentador} or {traductora y comentadora} + translatorsco = {{traducci\'{o}n \lbx@sfromlang\ y comentario}{trads\adddotspace \lbx@sfromlang\ y coms\adddot}}, %% {traducci\'{o}n \lbx@sfromlang y comentario} instead of {traductores y comentadores} or {traductoras y comentadoras} + translatoran = {{traducci\'{o}n \lbx@sfromlang\ y notas}{trad\adddotspace \lbx@sfromlang\ y anot\adddot}}, %% {traducci\'{o}n \lbx@sfromlang y notas} instead of {traductor y anotador} or {traductora y anotadora} + translatorsan = {{traducci\'{o}n \lbx@sfromlang\ y notas}{trads\adddotspace \lbx@sfromlang\ y anots\adddot}}, %% {traducci\'{o}n \lbx@sfromlang y notas} instead of {traductores y anotadores} or {traductoras y anotadoras} + translatorin = {{traducci\'{o}n \lbx@sfromlang\ e introducci\'{o}n}{trad\adddotspace \lbx@sfromlang\ e intr\adddot}}, %% {traducci\'{o}n \lbx@sfromlang e introducci\'{o}n} instead of {traductor \lbx@sfromlang e introducci\'{o}n} {traductora \lbx@sfromlang e introducci\'{o}n} + translatorsin = {{traducci\'{o}n \lbx@sfromlang\ e introducci\'{o}n}{trads\adddotspace \lbx@sfromlang\ e intr\adddot}}, %% {traducci\'{o}n \lbx@sfromlang e introducci\'{o}n} instead of {traductores \lbx@sfromlang e introducci\'{o}n} {traductoras \lbx@sfromlang e introducci\'{o}n} + translatorfo = {{traducci\'{o}n \lbx@sfromlang\ y pr\'{o}logo}{trad\adddotspace \lbx@sfromlang\ y pr\'{o}l\adddot}}, %% {traducci\'{o}n \lbx@sfromlang y pr\'{o}logo} instead of {traductor \lbx@sfromlang y prologuista} or {traductora \lbx@sfromlang y prologuista} + translatorsfo = {{traducci\'{o}n \lbx@sfromlang\ y pr\'{o}logo}{trads\adddotspace \lbx@sfromlang\ y pr\'{o}l\adddot}}, %% {traducci\'{o}n \lbx@sfromlang y pr\'{o}logo} instead of {traductores \lbx@sfromlang y prologuistas} or {traductoras \lbx@sfromlang y prologuistas} + translatoraf = {{traducci\'{o}n \lbx@sfromlang\ y ep\'{i}logo}{trad\adddotspace \lbx@sfromlang\ y ep\'{\i}l\adddot}}, %% {traducci\'{o}n \lbx@sfromlang y ep\'{i}logo} instead of {traductor \lbx@sfromlang y epiloguista} or {traductora \lbx@sfromlang y epiloguista} + translatorsaf = {{traducci\'{o}n \lbx@sfromlang\ y ep\'{i}logo}{trads\adddotspace \lbx@sfromlang\ y ep\'{\i}l\adddot}}, %% {traducci\'{o}n \lbx@sfromlang y ep\'{i}logo} instead of {traductores \lbx@sfromlang y epiloguistas} or {traductoras \lbx@sfromlang y epiloguistas} + translatorcoin = {{traducci\'{o}n \lbx@sfromlang, introducci\'{o}n y comentario}{trad\adddotspace \lbx@sfromlang, intr\adddotspace y com\adddot}}, %% {traducci\'{o}n \lbx@sfromlang, introducci\'{o}n y comentario} instead of {traductor \lbx@sfromlang, introducci\'{o}n y comentario} or {traductora \lbx@sfromlang, introducci\'{o}n y comentario} + translatorscoin = {{traducci\'{o}n \lbx@sfromlang, introducci\'{o}n y comentarios}{trads\adddotspace \lbx@sfromlang, intr\adddotspace y coms\adddot}}, %% {traducci\'{o}n \lbx@sfromlang, introducci\'{o}n y comentarios} instead of {traductores \lbx@sfromlang, introducci\'{o}n y comentarios} or {traductoras \lbx@sfromlang, introducci\'{o}n y comentarios} + translatorcofo = {{traducci\'{o}n \lbx@sfromlang, pr\'{o}logo y comentario}{trad\adddotspace \lbx@sfromlang, pr\'{o}l\adddotspace y com\adddot}}, %% {traducci\'{o}n \lbx@sfromlang, introducci\'{o}n y comentario} instead of {traductor \lbx@sfromlang, pr\'{o}logo y comentario} or {traductora \lbx@sfromlang, pr\'{o}logo y comentario} + translatorscofo = {{traducci\'{o}n \lbx@sfromlang, pr\'{o}logo y comentarios}{trads\adddotspace \lbx@sfromlang, pr\'{o}l\adddotspace y coms\adddot}}, %% {traducci\'{o}n \lbx@sfromlang, introducci\'{o}n y comentarios} instead of {traductores \lbx@sfromlang, pr\'{o}logo y comentarios} or {traductoras \lbx@sfromlang, pr\'{o}logo y comentarios} + translatorcoaf = {{traducci\'{o}n \lbx@sfromlang, ep\'{i}logo y comentario}{trad\adddotspace \lbx@sfromlang, ep\'{\i}l\adddotspace y com\adddot}}, %% {traducci\'{o}n \lbx@sfromlang, introducci\'{o}n y comentarios} instead of {traductor \lbx@sfromlang, ep\'{i}logo y comentario} or {traductora \lbx@sfromlang, ep\'{i}logo y comentario} + translatorscoaf = {{traducci\'{o}n \lbx@sfromlang, ep\'{i}logo y comentarios}{trads\adddotspace \lbx@sfromlang, ep\'{\i}l\adddotspace y coms\adddot}}, %% {traducci\'{o}n \lbx@sfromlang, introducci\'{o}n y comentarios} instead of {traductores \lbx@sfromlang, ep\'{i}logo y comentarios} or {traductoras \lbx@sfromlang, ep\'{i}logo y comentarios} + translatoranin = {{traducci\'{o}n \lbx@sfromlang, introducci\'{o}n y notas}{trad\adddotspace \lbx@sfromlang, intr\adddotspace y anot\adddot}}, %% {traducci\'{o}n \lbx@sfromlang, introducci\'{o}n y notas} instead of {traductor \lbx@sfromlang, introducci\'{o}n y notas} or {traductora \lbx@sfromlang, introducci\'{o}n y notas} + translatorsanin = {{traducci\'{o}n \lbx@sfromlang, introducci\'{o}n y notas}{trads\adddotspace \lbx@sfromlang, intr\adddotspace y anot\adddot}}, %% {traducci\'{o}n \lbx@sfromlang, introducci\'{o}n y notas} instead of {traductores \lbx@sfromlang, introducci\'{o}n y notas} or {traductoras \lbx@sfromlang, introducci\'{o}n y notas} + translatoranfo = {{traducci\'{o}n \lbx@sfromlang, pr\'{o}logo y notas}{trad\adddotspace \lbx@sfromlang, pr\'{o}l\adddotspace y anot\adddot}}, %% {traducci\'{o}n \lbx@sfromlang, pr\'{o}logo y notas} instead of {traductor \lbx@sfromlang, pr\'{o}logo y notas} or {traductora \lbx@sfromlang, pr\'{o}logo y notas} + translatorsanfo = {{traducci\'{o}n \lbx@sfromlang, pr\'{o}logo y notas}{trads\adddotspace \lbx@sfromlang, pr\'{o}l\adddotspace y anot\adddot}}, %% {traducci\'{o}n \lbx@sfromlang, pr\'{o}logo y notas} instead of {traductores \lbx@sfromlang, pr\'{o}logo y notas} or {traductoras \lbx@sfromlang, pr\'{o}logo y notas} + translatoranaf = {{traducci\'{o}n \lbx@sfromlang, ep\'{i}logo y notas}{trad\adddotspace \lbx@sfromlang, ep\'{\i}l\adddotspace y anot\adddot}}, %% {traducci\'{o}n \lbx@sfromlang, ep\'{i}logo y notas} instead of {traductor \lbx@sfromlang, ep\'{i}logo y notas} or {traductora \lbx@sfromlang, ep\'{i}logo y notas} + translatorsanaf = {{traducci\'{o}n \lbx@sfromlang, ep\'{i}logo y notas}{trads\adddotspace \lbx@sfromlang, ep\'{\i}l\adddotspace y anot\adddot}}, %% {traducci\'{o}n \lbx@sfromlang, ep\'{i}logo y notas} instead of {traductores \lbx@sfromlang, ep\'{i}logo y notas} or {traductora \lbx@sfromlang, ep\'{i}logo y notas} + organizer = {{organizaci\'on}{org\adddot}}, %% {organizaci\'on} instead of {organizador} or {organizadora} + organizers = {{organizaci\'on}{orgs\adddot}}, %% {organizaci\'on} instead of {organizadores} or {organizadoras} + byorganizer = {{organizado por}{org\adddotspace por}}, + byauthor = {{de}{de}}, + byeditor = {{editado por}{ed\adddotspace por}}, + bycompiler = {{compilado por}{comp\adddotspace por}}, + byredactor = {{redacci\'on de}{red\adddotspace de}}, + byreviser = {{revisado por}{rev\adddotspace por}},% FIXME: unsure + byreviewer = {{rese\~{n}ado por}{res\adddotspace por}},% FIXME: unsure + byfounder = {{fundado por}{fund\adddotspace por}}, + bycontinuator = {{continuado por}{cont\adddotspace por}}, + bycollaborator = {{colaboraci\'{o}n de}{col\adddotspace de}},% FIXME: unsure + bytranslator = {{traducido \lbx@lfromlang\ por}{trad\adddot \lbx@sfromlang\ por}}, + bycommentator = {{comentado por}{com\adddotspace por}}, + byannotator = {{anotado por}{anot\adddotspace por}}, + withcommentator = {{con comentario de}{con com\adddotspace de}}, + withannotator = {{con notas de}{con notas de}}, + withintroduction = {{con introduci\'on de}{con intr\adddotspace de}}, + withforeword = {{con pr\'ologo de}{con pr\'ol\adddotspace de}}, + withafterword = {{con ep\'{i}logo de}{con ep\'{\i}l\adddotspace de}}, + byeditortr = {{editado y traducido \lbx@lfromlang\ por}% + {ed\adddotspace y trad\adddot \lbx@sfromlang\ por}}, + byeditorco = {{editado y comentado por}% + {ed\adddotspace y com\adddotspace por}}, + byeditoran = {{editado y anotado por}% + {ed\adddotspace y anot\adddotspace por}}, + byeditorin = {{editado e introducido por}% + {ed\adddotspace e intr\adddotspace por}}, + byeditorfo = {{editado y prologado por}% + {ed\adddotspace y pr\'ol\adddotspace por}}, + byeditoraf = {{editado y epilogado por}% + {ed\adddotspace y ep\'{\i}l\adddotspace por}}, + byeditortrco = {{editado, traducido \lbx@lfromlang\ y comentado por}% + {ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang\ y com\adddotspace por}}, + byeditortran = {{editado, traducido \lbx@lfromlang\ y anotado por}% + {ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang\ y anot\adddotspace por}}, + byeditortrin = {{editado, traducido \lbx@lfromlang\ e introducido por}% + {ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang\ e intr\adddotspace por}}, + byeditortrfo = {{editado, traducido \lbx@lfromlang\ y prologado por}% + {ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang\ y pr\'ol\adddotspace por}}, + byeditortraf = {{editado, traducido \lbx@lfromlang\ y epilogado por}% + {ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang\ y ep\'{\i}l\adddotspace por}}, + byeditorcoin = {{editado, comentado e introducido por}% + {ed.,\addabbrvspace com\adddotspace e intr\adddotspace por}}, + byeditorcofo = {{editado, comentado y prologado por}% + {ed.,\addabbrvspace com\adddotspace y pr\'ol\adddotspace por}}, + byeditorcoaf = {{editado, comentado y epilogado por}% + {ed.,\addabbrvspace com\adddotspace y ep\'{\i}l\adddotspace por}}, + byeditoranin = {{editado, anotado e introducido por}% + {ed.,\addabbrvspace anot\adddotspace e intr\adddotspace por}}, + byeditoranfo = {{editado, anotado y prologado por}% + {ed.,\addabbrvspace anot\adddotspace y pr\'ol\adddotspace por}}, + byeditoranaf = {{editado, anotado y epilogado por}% + {ed.,\addabbrvspace anot\adddotspace y ep\'{\i}l\adddotspace por}}, + byeditortrcoin = {{editado, traducido \lbx@lfromlang, comentado e introducido por}% + {ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang, com\adddotspace e intr\adddotspace por}}, + byeditortrcofo = {{editado, traducido \lbx@lfromlang, comentado y prologado por}% + {ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang, com\adddotspace y pr\'ol\adddotspace por}}, + byeditortrcoaf = {{editado, traducido \lbx@lfromlang, comentado y epilogado por}% + {ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang, com\adddotspace y ep\'{\i}l\adddotspace por}}, + byeditortranin = {{editado, traducido \lbx@lfromlang, anotado e introducido por}% + {ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang, anot\adddotspace e intr\adddotspace por}}, + byeditortranfo = {{editado, traducido \lbx@lfromlang, anotado y prologado por}% + {ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang, anot\adddotspace y pr\'ol\adddotspace por}}, + byeditortranaf = {{editado, traducido \lbx@lfromlang, anotado y epilogado por}% + {ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang, anot\adddotspace y ep\'{\i}l\adddotspace por}}, + bytranslatorco = {{traducido \lbx@lfromlang\ y comentado por}% + {trad\adddotspace \lbx@sfromlang\ y com\adddotspace por}}, + bytranslatoran = {{traducido \lbx@lfromlang\ y anotado por}% + {trad\adddotspace \lbx@sfromlang\ y anot\adddotspace por}}, + bytranslatorin = {{traducido \lbx@lfromlang\ e introducido por}% + {trad\adddotspace \lbx@sfromlang\ e introd\adddotspace por}}, + bytranslatorfo = {{traducido \lbx@lfromlang\ y prologado por}% + {trad\adddotspace \lbx@sfromlang\ y pr\'ol\adddotspace por}}, + bytranslatoraf = {{traducido \lbx@lfromlang\ y epilogado por}% + {trad\adddotspace \lbx@sfromlang\ y ep\'{\i}l\adddotspace por}}, + bytranslatorcoin = {{traducido \lbx@lfromlang, comentado e introducido por}% + {trad\adddot \lbx@sfromlang, com\adddotspace e intr\adddotspace por}}, + bytranslatorcofo = {{traducido \lbx@lfromlang, comentado y prologado por}% + {trad\adddot \lbx@sfromlang, com\adddotspace y pr\'ol\adddotspace por}}, + bytranslatorcoaf = {{traducido \lbx@lfromlang, comentado y epilogado por}% + {trad\adddot \lbx@sfromlang, com\adddotspace y ep\'{\i}l\adddotspace por}}, + bytranslatoranin = {{traducido \lbx@lfromlang, anotado e introducido por}% + {trad\adddot \lbx@sfromlang, anot\adddotspace e intr\adddotspace por}}, + bytranslatoranfo = {{traducido \lbx@lfromlang, anotado y prologado por}% + {trad\adddot \lbx@sfromlang, anot\adddotspace y pr\'ol\adddotspace por}}, + bytranslatoranaf = {{traducido \lbx@lfromlang, anotado y epilogado por}% + {trad\adddot \lbx@sfromlang, anot\adddotspace y ep\'{\i}l\adddotspace por}}, + and = {{y}{y}}, + andothers = {{y~col\adddot}{y~col\adddot}}, + andmore = {{et\adddotspace al\adddot}{et\adddotspace al\adddot}}, + volume = {{volumen}{vol\adddot}}, + volumes = {{vol\'umenes}{vols\adddot}}, + involumes = {{en}{en}}, + jourvol = {{volumen}{vol\adddot}}, + jourser = {{\'epoca}{\'ep\adddot}}, + book = {{libro}{libro}}, + part = {{parte}{parte}}, + issue = {{n\'umero}{n\'um\adddot}},% FIXME: unsure + newseries = {{nueva \'epoca}{n\adddotspace \'ep\adddot}}, + oldseries = {{antigua \'epoca}{ant\adddotspace \'ep\adddot}}, + edition = {{edici\'on}{ed\adddot}}, + reprint = {{reimpresi\'{o}n}{reimp\adddot}}, + reprintof = {{reimpresi\'{o}n de}{reimp\adddotspace de}}, + reprintas = {{reimpreso como}{reimp\adddotspace como}}, + reprintfrom = {{reimpresi\'{o} de}{reimp\adddotspace de}},% FIXME: unsure. What's the difference between reprintof and reprintfrom? + reviewof = {{rese\~{n}a de}{rese\~{n}a de}}, + translationof = {{traducci\'{o}n de}{trad\adddotspace de}}, + translationas = {{traducido como}{trad\adddotspace como}}, + translationfrom = {{traducido del}{trad\adddotspace del}},% FIXME: unsure. + origpubas = {{publicado originalmente como}{pub\adddotspace orig\adddotspace como}},% FIXME: check + origpubin = {{publicado originalmente en}{pub\adddot orig\adddot en}},% FIXME: check + astitle = {{con el t\'{\i}tulo}{con el t\'{\i}t\adddot}},% FIXME: check + bypublisher = {{por la editorial}{por la ed\adddot}}, + nodate = {{sin fecha}{{}s\adddot f\adddot}}, + page = {{p\'agina}{p\'ag\adddot}}, + pages = {{p\'aginas}{p\'ags\adddot}}, + column = {{columna}{col\adddot}}, + columns = {{columnas}{cols\adddot}}, + line = {{l\'{\i}nea}{l\adddot}},% FIXME: abbrev. unsure. There is no standard + lines = {{l\'{\i}neas}{ll\adddot}},% FIXME: abbrev. unsure. There is no standard + verse = {{verso}{v\adddot}}, + verses = {{versos}{vv\adddot}}, + section = {{secci\'{o}n}{sec\adddot}}, + sections = {{secciones}{secs\adddot}}, + paragraph = {{p\'{a}rrafo}{p\'{a}rr\adddot}}, + paragraphs = {{p\'{a}rrafos}{p\'{a}rrs\adddot}}, + pagetotal = {{p\'agina}{p\'ag\adddot}}, + pagetotals = {{p\'aginas}{p\'ags\adddot}}, + columntotal = {{columna}{col\adddot}}, + columntotals = {{columnas}{cols\adddot}}, + linetotal = {{l\'{\i}nea}{l\adddot}},% FIXME: abbrev. unsure. There is no standard + linetotals = {{l\'{\i}neas}{ll\adddot}},% FIXME: abbrev. unsure. There is no standard + versetotal = {{verso}{v\adddot}}, + versetotals = {{versos}{vv\adddot}}, + sectiontotal = {{secci\'{o}n}{sec\adddot}}, + sectiontotals = {{secciones}{secs\adddot}}, + paragraphtotal = {{p\'{a}rrafo}{p\'{a}rr\adddot}}, + paragraphtotals = {{p\'{a}rrafos}{p\'{a}rrs\adddot}}, + in = {{en}{en}}, + inseries = {{en}{en}}, + ofseries = {{de}{de}}, + number = {{n\'umero}{n\sptext{o}}}, + chapter = {{cap\'itulo}{cap\adddot}}, + bathesis = {{Tesis de licenciatura}{Tesis de lic\adddot}},% FIXME: unsure. + mathesis = {{Tesis de maestr\'{\i}a}{Tesis de mtr\'{\i}a\adddot}}, + phdthesis = {{Tesis doctoral}{Tesis doct\adddot}}, + candthesis = {{Tesis de candidatura doctoral}{Tesis de cand\adddotspace doct\adddot}},% FIXME: unsure + resreport = {{reporte de investigaci\'{o}n}{rep\adddotspace de inv\adddot}},% FIXME: unsure + techreport = {{informe t\'ecnico}{inf\adddotspace t\'ec\adddot}}, + software = {{programa}{prog\adddot}}, + datacd = {{disco de datos}{CD de datos}},% FIXME: abbrev. unsure + audiocd = {{disco de audio}{CD de audio}},% FIXME: abbrev. unsure + version = {{versi\'on}{ver\adddot}}, + url = {{direcci\'on}{direcci\'on}}, + urlfrom = {{disponible desde}{disp\adddotspace desde}},% FIXME: unsure + urlseen = {{visitado}{visitado}}, + inpreparation = {{en preparaci\'{o}n}{en prep\adddot}}, + submitted = {{enviado}{enviado}}, + forthcoming = {{pr\'oximamente}{prox\adddot}}, + inpress = {{en prensa}{en prensa}}, + prepublished = {{previamente publicado}{prepublicado}}, + citedas = {{citado en adelante como}{cit\adddotspace en adelante como}}, + thiscite = {{especialmente}{esp\adddot}}, + seenote = {{ver nota}{ver n\adddot}}, + quotedin = {{citado en}{cit\adddotspace en}}, + idem = {{\'{\i}dem}{\'{\i}d\adddot}}, + idemsf = {{\'{\i}dem}{\'{\i}d\adddot}}, + idemsm = {{\'{\i}dem}{\'{\i}d\adddot}}, + idemsn = {{\'{\i}dem}{\'{\i}d\adddot}}, + idempf = {{\'{\i}dem}{\'{\i}d\adddot}}, + idempm = {{\'{\i}dem}{\'{\i}d\adddot}}, + idempn = {{\'{\i}dem}{\'{\i}d\adddot}}, + idempp = {{\'{\i}dem}{\'{\i}d\adddot}}, + ibidem = {{ib\'{\i}dem}{ib\'{\i}d\adddot}}, + opcit = {{\'{o}p\adddotspace cit\adddot}{\'{o}p\adddot cit\adddot}}, + loccit = {{loc\adddotspace cit\adddot}{loc\adddot cit\adddot}}, + confer = {{cf\adddot}{cf\adddot}}, + sequens = {{s\adddot}{s\adddot}}, + sequentes = {{ss\adddot}{ss\adddot}}, + passim = {{p\'assim}{p\'assim}}, + see = {{v\'ease}{vid\adddot}}, + seealso = {{v\'ease tambi\'en}{vid\adddotspace tambi\'en}}, + backrefpage = {{v\'ease p\'agina}{vid\adddotspace p\'ag\adddot}}, + backrefpages = {{v\'eanse p\'aginas}{vid\adddotspace p\'ags\adddot}}, + january = {{enero}{ene\adddot}}, + february = {{febrero}{feb\adddot}}, + march = {{marzo}{mar\adddot}}, + april = {{abril}{abr\adddot}}, + may = {{mayo}{mayo}}, + june = {{junio}{jun\adddot}}, + july = {{julio}{jul\adddot}}, + august = {{agosto}{ago\adddot}}, + september = {{septiembre}{sep\adddot}}, + october = {{octubre}{oct\adddot}}, + november = {{noviembre}{nov\adddot}}, + december = {{diciembre}{dic\adddot}}, + langamerican = {{ingl\'{e}s americano}{ingl\'{e}s americano}}, + langbrazilian = {{brasile\~no}{brasile\~no}}, + langbulgarian = {{b\'ulgaro}{b\'ulgaro}}, + langcatalan = {{catal\'{a}n}{catal\'{a}n}}, + langcroatian = {{croata}{croata}}, + langczech = {{checo}{checo}}, + langdanish = {{dan\'es}{dan\'es}}, + langdutch = {{neerland\'es}{neerland\'es}}, + langenglish = {{ingl\'es}{ingl\'es}}, + langestonian = {{estonio}{estonio}}, + langfinnish = {{fin\'{e}s}{fin\'{e}s}}, + langfrench = {{franc\'es}{franc\'es}}, + langgalician = {{gallego}{gallego}}, + langgerman = {{alem\'an}{alem\'an}}, + langgreek = {{griego}{griego}}, + langhungarian = {{h\'ungaro}{h\'ungaro}}, + langitalian = {{italiano}{italiano}}, + langjapanese = {{japon\'es}{japon\'es}}, + langlatin = {{lat\'{\i}n}{lat\'{\i}n}}, + langlatvian = {{lituano}{lituano}}, + langnorwegian = {{noruego}{noruego}}, + langpolish = {{polaco}{polaco}}, + langportuguese = {{portugu\'es}{portugu\'es}}, + langrussian = {{ruso}{ruso}}, + langslovak = {{eslovaco}{eslovaco}}, + langslovene = {{esloveno}{esloveno}}, + langspanish = {{espa\~nol}{espa\~nol}}, + langswedish = {{sueco}{sueco}}, + langukrainian = {{ucraniano}{ucraniano}}, + fromamerican = {{del ingl\'{e}s americano}{del ingl\'{e}s americano}}, + frombrazilian = {{del brasile\~no}{del brasile\~no}}, + frombulgarian = {{del b\'ulgaro}{del b\'ulgaro}}, + fromcatalan = {{del catal\'{a}n}{del catal\'{a}n}}, + fromcroatian = {{del croata}{del croata}}, + fromczech = {{del checo}{del checo}}, + fromdanish = {{del dan\'es}{del dan\'es}}, + fromdutch = {{del neerland\'es}{del neerland\'es}}, + fromenglish = {{del ingl\'es}{del ingl\'es}}, + fromestonian = {{del estonio}{del estonio}}, + fromfinnish = {{del fin\'{e}s}{del fin\'{e}s}}, + fromfrench = {{del franc\'es}{del franc\'es}}, + fromgalician = {{del gallego}{del gallego}}, + fromgerman = {{del alem\'an}{del alem\'an}}, + fromgreek = {{del griego}{del griego}}, + fromhungarian = {{del h\'ungaro}{del h\'ungaro}}, + fromitalian = {{del italiano}{del italiano}}, + fromjapanese = {{del japon\'es}{del japon\'es}}, + fromlatin = {{del lat\'{\i}n}{del lat\'{\i}n}}, + fromlatvian = {{del lituano}{del lituano}}, + fromnorwegian = {{del noruego}{del noruego}}, + frompolish = {{del polaco}{del polaco}}, + fromportuguese = {{del portugu\'es}{del portugu\'es}}, + fromrussian = {{del ruso}{del ruso}}, + fromslovak = {{del eslovaco}{del eslovaco}}, + fromslovene = {{del esloveno}{del esloveno}}, + fromspanish = {{del espa\~nol}{del espa\~nol}}, + fromswedish = {{del sueco}{del sueco}}, + fromukrainian = {{del ucraniano}{del ucraniano}}, + countryde = {{Alemania}{DE}}, + countryeu = {{Uni\'on Europea}{EU}}, + countryep = {{Uni\'on Europea}{EP}}, + countryfr = {{Francia}{FR}}, + countryuk = {{Reino Unido}{GB}},% FIXME: "Reino Unido" or "Gran Breta\~na"? + countryus = {{Estados Unidos}{US}},% FIXME: "Estados Unidos de Am\'erica"? + patent = {{patente}{pat\adddot}}, + patentde = {{patente alemana}{pat\adddotspace alemana}}, + patenteu = {{patente europea}{pat\adddotspace europea}}, + patentfr = {{patente francesa}{pat\adddotspace francesa}}, + patentuk = {{patente brit\'anica}{pat\adddotspace brit\'anica}}, + patentus = {{patente estadounidense}{pat\adddotspace estadounidense}}, + patreq = {{solicitud de patente}{sol\adddotspace de pat\adddot}}, + patreqde = {{solicitud de patente alemana}{sol\adddotspace de pat\adddot alemana}}, + patreqeu = {{solicitud de patente europea}{sol\adddotspace de pat\adddot europea}}, + patreqfr = {{solicitud de patente francesa}{sol\adddotspace de pat\adddot francesa}}, + patrequk = {{solicitud de patente brit\'anica}{sol\adddotspace de pat\adddot brit\'anica}}, + patrequs = {{solicitud de patente estadounidense}{sol\adddotspace de pat\adddot estadounidense}}, + file = {{archivo}{archivo}}, + library = {{biblioteca}{bibl\adddot}}, + abstract = {{resumen}{resumen}}, + annotation = {{anotaci\'{o}n}{anot\adddot}}, + commonera = {{era com\'un}{e\adddotspace c\adddot}}, + beforecommonera = {{antes de la era com\'un}{a\adddotspace e\adddotspace c\adddot}}, + annodomini = {{despu\'es de Cristo}{d\adddotspace C\adddot}}, + beforechrist = {{antes de Cristo}{a\adddotspace C\adddot}}, + circa = {{circa}{ca\adddot}}, + spring = {{primavera}{prim\adddot}}, + summer = {{verano}{ver\adddot}}, + autumn = {{oto\~no}{ot\adddot}}, + winter = {{invierno}{inv\adddot}}, + am = {{a\adddotspace m\adddot}{a\adddot m\adddot}}, + pm = {{p\adddotspace m\adddot}{p\adddot m\adddot}}, +} + +\protected\gdef\lbx@es@smartand{% + \ifcase\value{smartand}% + \or + \addspace + \expandafter\lbx@es@smartand@i + \or + \addspace y\nobreakspace + \expandafter\@gobble + \or + \addspace e\nobreakspace + \expandafter\@gobble + \else + \addspace\bibstring{and}\space + \expandafter\@gobble + \fi} + +\begingroup +\catcode`\&=3 + +\gdef\lbx@es@smartand@i#1{% + \begingroup + \def\forceY##1{\relax}% + \def\forceE##1{i\relax}% + \def\do##1{\let##1\@firstofone}% + \abx@dosingleaccents + \abx@dodoubleaccents + \def\'{'}\def\i{i}\def\j{j}% + \let\IeC\@firstofone + \def\@tabacckludge##1{\if\noexpand##1''\fi}% + \ifnum\catcode`\'=\active + \uccode`\~=`\' + \uppercase{\def~{'}}% + \fi + \ifnum\catcode`\"=\active + \uccode`\~=`\" + \uppercase{\let~\@empty}% + \fi + \ifnum\catcode`\~=\active + \let~\@empty + \fi + \let\protect\noexpand + \edef\lbx@tempa{#1}% + \expandafter\futurelet + \expandafter\lbx@tempa + \expandafter\lbx@es@smartand@ii + \lbx@tempa&} + +\gdef\lbx@es@smartand@ii{% + \ifcat\bgroup\noexpand\lbx@tempa + \def\lbx@tempa##1{\futurelet\lbx@tempa\lbx@es@smartand@ii##1}% + \else\ifcat\noexpand~\noexpand\lbx@tempa + \def\lbx@tempa##1{\futurelet\lbx@tempa\lbx@es@smartand@ii}% + \else\ifnum 0% + \if h\noexpand\lbx@tempa 1\fi + \if H\noexpand\lbx@tempa 1\fi + >0 % + \def\lbx@tempa##1{\futurelet\lbx@tempa\lbx@es@smartand@ii}% + \else\ifnum 0% + \if i\noexpand\lbx@tempa 1\fi + \if y\noexpand\lbx@tempa 1\fi + \if I\noexpand\lbx@tempa 1\fi + \if Y\noexpand\lbx@tempa 1\fi + >0 % + \def\lbx@tempa##1{\futurelet\lbx@tempa\lbx@es@smartand@iii}% + \else\if '\noexpand\lbx@tempa + \def\lbx@tempa##1{\futurelet\lbx@tempa\lbx@es@smartand@iv}% + \else + \let\lbx@tempa\lbx@es@smartand@y + \fi\fi\fi\fi\fi + \lbx@tempa} + +\gdef\lbx@es@smartand@iii{% + \ifcat\bgroup\noexpand\lbx@tempa + \def\lbx@tempa##1{\futurelet\lbx@tempa\lbx@es@smartand@iii##1}% + \else\ifcat\noexpand~\noexpand\lbx@tempa + \let\lbx@tempa\lbx@es@smartand@e + \else\if '\noexpand\lbx@tempa + \def\lbx@tempa##1{\futurelet\lbx@tempa\lbx@es@smartand@iii}% + \else\ifnum 0% + \if a\noexpand\lbx@tempa 1\fi + \if e\noexpand\lbx@tempa 1\fi + \if i\noexpand\lbx@tempa 1\fi + \if o\noexpand\lbx@tempa 1\fi + \if u\noexpand\lbx@tempa 1\fi + \if A\noexpand\lbx@tempa 1\fi + \if E\noexpand\lbx@tempa 1\fi + \if I\noexpand\lbx@tempa 1\fi + \if O\noexpand\lbx@tempa 1\fi + \if U\noexpand\lbx@tempa 1\fi + >0 % + \let\lbx@tempa\lbx@es@smartand@y + \else + \let\lbx@tempa\lbx@es@smartand@e + \fi\fi\fi\fi + \lbx@tempa} + +\gdef\lbx@es@smartand@iv{% + \if i\lbx@tempa + \expandafter\lbx@es@smartand@e + \else + \expandafter\lbx@es@smartand@y + \fi} + +\gdef\lbx@es@smartand@e#1&{\endgroup e\nobreakspace} +\gdef\lbx@es@smartand@y#1&{\endgroup y\nobreakspace} + +\endgroup + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/lbx/swedish.lbx b/macros/latex/contrib/biblatex/latex/lbx/swedish.lbx new file mode 100644 index 0000000000..d0b3cf1747 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/lbx/swedish.lbx @@ -0,0 +1,510 @@ +\ProvidesFile{swedish.lbx} +[\abx@lbxid] + +% Translator's notes (Per Starb\"ack) +% +% One of the sources used is: +% +% Hedberg, Sten. Bibliografiska referenser. SIS-STG Handbok 165. +% Stockholm: Standardiseringskommissionen i Sverige (SIS), 1991. ISBN +% 91-7162-323-X. +% +% which incorporates Swedish standard SS 03 82 07 which is a +% translation of ISO 690, Documentation -- Bibliographic references -- +% Content, form and structure, 2. ed., 1987. +% +% In that standard lots of things aren't translated, but left as in +% the original works. So in the same bibliography will be a work that +% is "2. ed." and another that is "2. Aufl.". +% +% I've almost only used abbrevations found in the appendix +% "Bibliografiska f\"orkortningar" there (though not a part of the +% standard). + +\DeclareRedundantLanguages{swedish}{swedish} + +\DeclareBibliographyExtras{% + \protected\def\bibrangedash{% + \textendash\penalty\hyphenpenalty}% breakable dash + \let\finalandcomma=\empty + \let\finalandsemicolon=\empty + \protected\def\mkbibordinal#1{\stripzeros{#1}\adddot}% + % The following is for ordinals like "2:a" and "12:e". + % (Hedberg uses just "2." and "12." as above; + % others use "2" and "12".) + %\protected\def\mkbibordinal#1{% + % \begingroup + % \@tempcnta0#1\relax\number\@tempcnta\addcolon + % \@whilenum\@tempcnta>100\do{\advance\@tempcnta-100\relax}% + % \ifnum\@tempcnta>20 + % \@whilenum\@tempcnta>9\do{\advance\@tempcnta-10\relax}% + % \fi + % \ifcase\@tempcnta e\or a\or a\else e\fi + % \endgroup}% + \protected\def\mkbibmascord{\mkbibordinal}% + \protected\def\mkbibfemord{\mkbibordinal}% + \protected\def\mkbibneutord{\mkbibordinal}% + \protected\def\mkbibdatelong#1#2#3{% + \iffieldundef{#3} + {} + {\stripzeros{\thefield{#3}}% + \iffieldundef{#2}{}{\nobreakspace}}% + \iffieldundef{#2} + {} + {\mkbibmonth{\thefield{#2}}% + \iffieldundef{#1}{}{\space}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}% + \protected\def\mkbibdateshort#1#2#3{% + \iffieldundef{#1} + {} + {\iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% + \iffieldundef{#2}{}{\mbox{-}}}% + \iffieldundef{#2} + {} + {\mkmonthzeros{\thefield{#2}}% + \iffieldundef{#3}{}{\mbox{-}}}% + \iffieldundef{#3} + {} + {\mkdayzeros{\thefield{#3}}}}% + \savecommand\mkdaterangeterse + \protected\def\mkdaterangeterse{% + \BibliographyWarning{% + Date format 'terse' not applicable to\MessageBreak + Swedish dates. Using format 'short' instead}% + \mkdaterangefull{short}}% + \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{% + \iffieldundef{#1}{} + {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}% + \iffieldundef{#2}{} + {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}% + \iffieldundef{#3}{} + {\printtext{\mktimezeros{\thefield{#3}}}}% + \setunit{}% + \iffieldundef{#4}{} + {\bibtimezonesep + \mkbibtimezone{\thefield{#4}}}}% + \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{% + \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep + \forcezerosmdt{\thefield{#2}}% + \iffieldundef{#3}{} + {\bibtimesep + \forcezerosmdt{\thefield{#3}}}% + \space + \ifnumless{\thefield{#1}}{12} + {\bibstring{am}} + {\bibstring{pm}}% + \iffieldundef{#4}{} + {\space\bibtimezonesep + \parentext{\mkbibtimezone{\thefield{#4}}}}}% + \protected\def\mkbibseasondateshort#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% + \protected\def\mkbibseasondatelong#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% +} + +\UndeclareBibliographyExtras{% + \restorecommand\mkdaterangeterse +} + +\DeclareBibliographyStrings{% + bibliography = {{Litteraturf\"orteckning}{Litteratur}}, + references = {{Referenser}{Referenser}}, + shorthands = {{F\"orkortningar}{F\"orkortningar}}, + % editor may be "utgivare (utg.)" or "redakt\"or (red.)" + editor = {{utgivare}{utg\adddot}}, + editors = {{utgivare}{utg\adddot}}, + compiler = {{sammanst\"allare}{sammanst\adddot}}, + compilers = {{sammanst\"allare}{sammanst\adddot}}, + redactor = {{redakt\"or}{red\adddot}}, + redactors = {{redakt\"orer}{red\adddot}}, +% reviser = {{}{}},% FIXME: missing +% revisers = {{}{}},% FIXME: missing +% founder = {{}{}},% FIXME: missing +% founders = {{}{}},% FIXME: missing +% continuator = {{}{}},% FIXME: missing +% continuators = {{}{}},% FIXME: missing +% collaborator = {{}{}},% FIXME: missing +% collaborators = {{}{}},% FIXME: missing + translator = {{\"overs\"attare}{\"overs\adddot}}, + translators = {{\"overs\"attare}{\"overs\adddot}}, + commentator = {{kommentar}{komm\adddot}},% "commentator" awkward, we use "commentary" + commentators = {{kommentar}{komm\adddot}},% "commentator" awkward, we use "commentary" + annotator = {{f\"orklaringar}{f\"orkl\adddot}},% "annotator" awkward, we use "annotations" + annotators = {{f\"orklaringar}{f\"orkl\adddot}},% "annotator" awkward, we use "annotations" + commentary = {{kommentar}{komm\adddot}}, + annotations = {{f\"orklaringar}{f\"orkl\adddot}}, + introduction = {{inledning}{inl\adddot}}, + foreword = {{f\"orord}{f\"orord}}, + afterword = {{efterord}{efterord}}, + editortr = {{utgivare och \"overs\"attare}{utg\adddot\ och \"overs\adddot}}, + editorstr = {{utgivare och \"overs\"attare}{utg\adddot\ och \"overs\adddot}}, +% editorco = {{}{}},% FIXME: missing +% editorsco = {{}{}},% FIXME: missing +% editoran = {{}{}},% FIXME: missing +% editorsan = {{}{}},% FIXME: missing +% editorin = {{}{}},% FIXME: missing +% editorsin = {{}{}},% FIXME: missing +% editorfo = {{}{}},% FIXME: missing +% editorsfo = {{}{}},% FIXME: missing +% editoraf = {{}{}},% FIXME: missing +% editorsaf = {{}{}},% FIXME: missing +% editortrco = {{}{}},% FIXME: missing +% editorstrco = {{}{}},% FIXME: missing +% editortran = {{}{}},% FIXME: missing +% editorstran = {{}{}},% FIXME: missing +% editortrin = {{}{}},% FIXME: missing +% editorstrin = {{}{}},% FIXME: missing +% editortrfo = {{}{}},% FIXME: missing +% editorstrfo = {{}{}},% FIXME: missing +% editortraf = {{}{}},% FIXME: missing +% editorstraf = {{}{}},% FIXME: missing +% editorcoin = {{}{}},% FIXME: missing +% editorscoin = {{}{}},% FIXME: missing +% editorcofo = {{}{}},% FIXME: missing +% editorscofo = {{}{}},% FIXME: missing +% editorcoaf = {{}{}},% FIXME: missing +% editorscoaf = {{}{}},% FIXME: missing +% editoranin = {{}{}},% FIXME: missing +% editorsanin = {{}{}},% FIXME: missing +% editoranfo = {{}{}},% FIXME: missing +% editorsanfo = {{}{}},% FIXME: missing +% editoranaf = {{}{}},% FIXME: missing +% editorsanaf = {{}{}},% FIXME: missing +% editortrcoin = {{}{}},% FIXME: missing +% editorstrcoin = {{}{}},% FIXME: missing +% editortrcofo = {{}{}},% FIXME: missing +% editorstrcofo = {{}{}},% FIXME: missing +% editortrcoaf = {{}{}},% FIXME: missing +% editorstrcoaf = {{}{}},% FIXME: missing +% editortranin = {{}{}},% FIXME: missing +% editorstranin = {{}{}},% FIXME: missing +% editortranfo = {{}{}},% FIXME: missing +% editorstranfo = {{}{}},% FIXME: missing +% editortranaf = {{}{}},% FIXME: missing +% editorstranaf = {{}{}},% FIXME: missing +% translatorco = {{}{}},% FIXME: missing +% translatorsco = {{}{}},% FIXME: missing +% translatoran = {{}{}},% FIXME: missing +% translatorsan = {{}{}},% FIXME: missing +% translatorin = {{}{}},% FIXME: missing +% translatorsin = {{}{}},% FIXME: missing +% translatorfo = {{}{}},% FIXME: missing +% translatorsfo = {{}{}},% FIXME: missing +% translatoraf = {{}{}},% FIXME: missing +% translatorsaf = {{}{}},% FIXME: missing +% translatorcoin = {{}{}},% FIXME: missing +% translatorscoin = {{}{}},% FIXME: missing +% translatorcofo = {{}{}},% FIXME: missing +% translatorscofo = {{}{}},% FIXME: missing +% translatorcoaf = {{}{}},% FIXME: missing +% translatorscoaf = {{}{}},% FIXME: missing +% translatoranin = {{}{}},% FIXME: missing +% translatorsanin = {{}{}},% FIXME: missing +% translatoranfo = {{}{}},% FIXME: missing +% translatorsanfo = {{}{}},% FIXME: missing +% translatoranaf = {{}{}},% FIXME: missing +% translatorsanaf = {{}{}},% FIXME: missing +% organizer = {{}{}},% FIXME: missing +% organizers = {{}{}},% FIXME: missing +% byorganizer = {{}{}},% FIXME: missing + byauthor = {{av}{av}}, + byeditor = {{utgiven av}{utg\adddotspace av}}, + bycompiler = {{sammanst\"alld av}{sammanst\adddotspace av}}, + byredactor = {{bearbetad av}{bearb\adddotspace av}}, + byreviser = {{reviderad av}{rev\adddotspace av}}, +% byreviewer = {{}{}},% FIXME: missing +% byfounder = {{}{}},% FIXME: missing +% bycontinuator = {{}{}},% FIXME: missing +% bycollaborator = {{}{}},% FIXME: missing + bytranslator = {{\"oversatt \lbx@lfromlang\ av}{\"overs\adddot\ \lbx@sfromlang\ av}}, + bycommentator = {{kommenterad av}{kommenterad av}}, + byannotator = {{f\"orklarad av}{f\"orklarad av}}, + withcommentator = {{med kommentarer av}{med kommentarer av}}, + withannotator = {{med f\"orklaringar av}{med f\"orklaringar av}}, + withintroduction = {{med inledning av}{med inl\adddot\ av}}, + withforeword = {{med f\"orord av}{med f\"orord av}}, + withafterword = {{med efterord av}{med efterord av}}, + byeditortr = {{utgiven och \"oversatt \lbx@lfromlang\ av}% + {utg\adddotspace och \"overs\adddot\ \lbx@sfromlang\ av}}, + byeditorco = {{utgiven och kommenterad av}% + {utg\adddotspace och kommenterad av}}, + byeditoran = {{utgiven och f\"orklarad av}% + {utg\adddotspace och f\"orklarad av}}, + byeditorin = {{utgiven och f\"orsedd med inledning av}% + {utg\adddotspace och med inl\adddot\ av}}, + byeditorfo = {{utgiven och f\"orsedd med f\"orord av}% + {utg\adddotspace och med f\"orord av}}, + byeditoraf = {{utgiven och f\"orsedd med efterord av}% + {utg\adddotspace och med efterord av}}, + byeditortrco = {{utgiven, \"oversatt \lbx@lfromlang\ och kommenterad av}% + {utg.,\addabbrvspace \"overs\adddot\ \lbx@sfromlang\ och kommenterad av}}, + byeditortran = {{utgiven, \"oversatt \lbx@lfromlang\ och f\"orklarad av}% + {utg.,\addabbrvspace \"overs\adddot\ \lbx@sfromlang\ och f\"orklarad av}}, + byeditortrin = {{utgiven, \"oversatt \lbx@lfromlang\ och f\"orsedd med inledning av}% + {utg.,\addabbrvspace \"overs\adddot\ \lbx@sfromlang\ och med inl\adddot\ av}}, + byeditortrfo = {{utgiven, \"oversatt \lbx@lfromlang\ och f\"orsedd med f\"orord av}% + {utg.,\addabbrvspace \"overs\adddot\ \lbx@sfromlang\ och med f\"orord av}}, + byeditortraf = {{utgiven, \"oversatt \lbx@lfromlang\ och f\"orsedd med efterord av}% + {utg.,\addabbrvspace \"overs\adddot\ \lbx@sfromlang\ och med efterord av}}, + byeditorcoin = {{utgiven, kommenterad och f\"orsedd med inledning av}% + {utg.,\addabbrvspace kommenterad och med inl\adddot\ av}}, + byeditorcofo = {{utgiven, kommenterad och f\"orsedd med f\"orord av}% + {utg.,\addabbrvspace kommenterad och med f\"orord av}}, + byeditorcoaf = {{utgiven, kommenterad och f\"orsedd med efterord av}% + {utg.,\addabbrvspace kommenterad och med efterord av}}, + byeditoranin = {{utgiven, f\"orklarad och f\"orsedd med inledning av}% + {utg.,\addabbrvspace f\"orklarad och med inl\adddot\ av}}, + byeditoranfo = {{utgiven, f\"orklarad och f\"orsedd med f\"orord av}% + {utg.,\addabbrvspace f\"orklarad och med f\"orord av}}, + byeditoranaf = {{utgiven, f\"orklarad och f\"orsedd med efterord av}% + {utg.,\addabbrvspace f\"orklarad och med efterord av}}, + byeditortrcoin = {{utgiven, \"oversatt \lbx@lfromlang, kommenterad och f\"orsedd med inledning av}% + {utg.,\addabbrvspace \"overs\adddot\ \lbx@sfromlang, kommenterad och med inl\adddot\ av}}, + byeditortrcofo = {{utgiven, \"oversatt \lbx@lfromlang, kommenterad och f\"orsedd med f\"orord av}% + {utg.,\addabbrvspace \"overs\adddot\ \lbx@sfromlang, kommenterad och med f\"orord av}}, + byeditortrcoaf = {{utgiven, \"oversatt \lbx@lfromlang, kommenterad och f\"orsedd med efterord av}% + {utg.,\addabbrvspace \"overs\adddot\ \lbx@sfromlang, kommenterad och med efterord av}}, + byeditortranin = {{utgiven, \"oversatt \lbx@lfromlang, f\"orklarad och f\"orsedd med inledning av}% + {utg.,\addabbrvspace \"overs\adddot\ \lbx@sfromlang, f\"orklarad och med inl\adddot\ av}}, + byeditortranfo = {{utgiven, \"oversatt \lbx@lfromlang, f\"orklarad och f\"orsedd med f\"orord av}% + {utg.,\addabbrvspace \"overs\adddot\ \lbx@sfromlang, f\"orklarad och med f\"orord av}}, + byeditortranaf = {{utgiven, \"oversatt \lbx@lfromlang, f\"orklarad och f\"orsedd med efterord av}% + {utg.,\addabbrvspace \"overs\adddot\ \lbx@sfromlang, f\"orklarad och med efterord av}}, + bytranslatorco = {{\"oversatt \lbx@lfromlang\ och kommenterad av}% + {\"overs\adddot\ \lbx@sfromlang\ och kommenterad av}}, + bytranslatoran = {{\"oversatt \lbx@lfromlang\ och f\"orklarad av}% + {\"overs\adddot\ \lbx@sfromlang\ och f\"orklarad av}}, + bytranslatorin = {{\"oversatt \lbx@lfromlang\ och f\"orsedd med inledning av}% + {\"overs\adddot\ \lbx@sfromlang\ och med inl\adddot\ av}}, + bytranslatorfo = {{\"oversatt \lbx@lfromlang\ och f\"orsedd med f\"orord av}% + {\"overs\adddot\ \lbx@sfromlang\ och med f\"orord av}}, + bytranslatoraf = {{\"oversatt \lbx@lfromlang\ och f\"orsedd med efterord av}% + {\"overs\adddot\ \lbx@sfromlang\ och med efterord av}}, + bytranslatorcoin = {{\"oversatt \lbx@lfromlang, kommenterad och f\"orsedd med inledning av}% + {\"overs\adddot\ \lbx@sfromlang, kommenterad och med inl\adddot\ av}}, + bytranslatorcofo = {{\"oversatt \lbx@lfromlang, kommenterad och f\"orsedd med f\"ordord av}% + {\"overs\adddot\ \lbx@sfromlang, kommenterad och med f\"ordord av}}, + bytranslatorcoaf = {{\"oversatt \lbx@lfromlang, kommenterad och f\"orsedd med efterord av}% + {\"overs\adddot\ \lbx@sfromlang, kommenterad och med efterord av}}, + bytranslatoranin = {{\"oversatt \lbx@lfromlang, f\"orklarad och f\"orsedd med inledning av}% + {\"overs\adddot\ \lbx@sfromlang, f\"orklarad med inledning\ av}}, + bytranslatoranfo = {{\"oversatt \lbx@lfromlang, f\"orklarad och f\"orsedd med f\"orord av}% + {\"overs\adddot\ \lbx@sfromlang, f\"orklarad med f\"orord av}}, + bytranslatoranaf = {{\"oversatt \lbx@lfromlang, f\"orklarad och f\"orsedd med efterord av}% + {\"overs\adddot\ \lbx@sfromlang, f\"orklarad med efterord av}}, + and = {{och}{och}}, + % Hedberg uses "et al.", but in an all-Swedish lists "m.fl." may be used + andothers = {{m.\,fl\adddot}{m.\,fl\adddot}}, + andmore = {{m.\,fl\adddot}{m.\,fl\adddot}}, + volume = {{volym}{vol\adddot}}, + volumes = {{volymer}{vol\adddot}}, + involumes = {{i}{i}}, + jourvol = {{\aa rg\aa ng}{\aa rg\adddot}}, + jourser = {{serie}{ser\adddot}}, + book = {{bok}{bok}}, + part = {{del}{del}}, +% issue = {{}{}},% FIXME: missing + % Both "ny serie (N.S.)" and "ny f\"oljd (N.F.)" are common + newseries = {{ny f\"oljd}{N.\,F\adddot}}, + oldseries = {{gammal f\"oljd}{gammal f\"oljd}}, + % In Swedish books both "upplaga" and "utg\aa va" are common. + % Hedberg (p. 82f.) uses the later in the terminology section + % (but uses whatever is given in a particular book otherwise). +% edition = {{upplaga}{uppl\adddot}}, + edition = {{utg\aa van}{utg\adddot}}, + reprint = {{nytryck}{nytr\adddot}}, + reprintof = {{nytryck av}{nytr\adddotspace av}}, + reprintas = {{nytryckt som}{nytr\adddotspace som}}, + reprintfrom = {{nytryckt fr\aa n}{nytryckt fr\aa n}},% FIXME: check + translationof = {{\"overs\"attning av}{\"overs\adddot\ av}}, + translationas = {{\"overs\"attning som}{\"overs\adddot\ som}}, + translationfrom = {{\"overs\"attning fr\aa n}{\"overs\adddotspace fr\aa n}}, + reviewof = {{recension av}{recension av}}, + origpubas = {{ursprungligen publicerad som}{ursprunglingen publ\adddot\ som}}, + origpubin = {{ursprungligen publicerad}{ursprungligen publ\adddot}}, + astitle = {{som}{som}}, + bypublisher = {{av}{av}}, + nodate = {{u\adddot d\adddot}{n\adddot d\adddot}},%FIXME + page = {{sidan}{s\adddot}}, + pages = {{sidorna}{s\adddot}}, + column = {{spalt}{sp\adddot}}, + columns = {{spalterna}{sp\adddot}}, + line = {{rad}{r\adddot}}, + lines = {{raderna}{r\adddot}}, + verse = {{vers}{v\adddot}}, + verses = {{verserna}{v\adddot}}, + section = {{paragraf}{\S}}, + sections = {{paragraferna}{\S}}, + % "paragraph" is "stycke" in Swedish, but this is probably + % more suitable for works referenced by paragraphs + paragraph = {{paragraf}{\S}}, + paragraphs = {{paragraferna}{\S}}, + pagetotal = {{sida}{s\adddot}}, + pagetotals = {{sidor}{s\adddot}}, + columntotal = {{spalt}{sp\adddot}}, + columntotals = {{spalter}{sp\adddot}}, + linetotal = {{rad}{r\adddot}}, + linetotals = {{rader}{r\adddot}}, + versetotal = {{vers}{v\adddot}}, + versetotals = {{verser}{v\adddot}}, + sectiontotal = {{paragraf}{\S}}, + sectiontotals = {{paragrafer}{\S}}, + paragraphtotal = {{paragraf}{\S}}, + paragraphtotals = {{paragrafer}{\S}}, + in = {{i}{i}}, + inseries = {{i}{i}}, + ofseries = {{i}{i}}, + number = {{nummer}{nr}}, + chapter = {{kapitel}{kap\adddot}}, +% bathesis = {{}{}},% FIXME: missing + mathesis = {{examensarbete}{examensarb\adddot}}, + phdthesis = {{doktorsavhandling}{diss\adddot}}, + candthesis = {{kandidatavhandling}{kand.avh}},% FIXME: unsure + resreport = {{forskningsrapport}{forskn.rapport}}, + techreport = {{teknisk rapport}{tekn\adddotspace rapport}}, + % Hedberg (p. 57) uses "Datafil" and adds that it's possible to + % render more precisely "[Programfil] resp [Textfil] e. dyl." + software = {{datorprogram}{datorprogram}}, + datacd = {{data-cd}{data-cd}}, + audiocd = {{ljud-cd}{ljud-cd}}, + version = {{version}{version}}, + url = {{webbadress}{URL}}, + urlfrom = {{tillg\"anglig fr\aa n}{tillg\"anglig fr\aa n}}, + urlseen = {{senast h\"amtad}{h\"amtad}}, +% inpreparation = {{}{}},% FIXME: missing +% submitted = {{}{}},% FIXME: missing +% forthcoming = {{}{}},% FIXME: missing +% inpress = {{}{}},% FIXME: missing +% prepublished = {{}{}},% FIXME: missing + citedas = {{h\"adanefter citerad som}{h\"adanefter cit\adddotspace som}}, +% thiscite = {{}{}},% FIXME: missing + seenote = {{se not}{se not}}, + quotedin = {{citerad i}{cit\adddotspace i}}, + idem = {{densamma}{dens\adddot}},% or Latin: idem + idemsf = {{densamma}{dens\adddot}}, + idemsm = {{densamme}{dens\adddot}}, + idemsn = {{densamma}{dens\adddot}}, + idempf = {{desamma}{desamma}}, + idempm = {{desamma}{desamma}}, + idempn = {{desamma}{desamma}}, + idempp = {{desamma}{desamma}}, + ibidem = {{ibidem}{ibid\adddot}}, + opcit = {{a.\,a\adddot}{a.\,a\adddot}},% or Latin: op. cit. + loccit = {{loc\adddotspace cit\adddot}{loc\adddotspace cit\adddot}}, + confer = {{j\"amf\"or}{jfr}}, + sequens = {{f\adddot}{f\adddot}}, + sequentes = {{ff\adddot}{ff\adddot}}, + passim = {{passim}{pass\adddot}}, + see = {{se}{se}}, + seealso = {{se \"aven}{se \"aven}}, + backrefpage = {{se sidan}{se s\adddot}}, + backrefpages = {{se sidorna}{se s\adddot}}, + january = {{januari}{jan\adddot}}, + february = {{februari}{febr\adddot}}, + march = {{mars}{mars}}, + april = {{april}{april}}, + may = {{maj}{maj}}, + june = {{juni}{juni}}, + july = {{juli}{juli}}, + august = {{augusti}{aug\adddot}}, + september = {{september}{sept\adddot}}, + october = {{oktober}{okt\adddot}}, + november = {{november}{nov\adddot}}, + december = {{december}{dec\adddot}}, + langamerican = {{amerikanska}{amerikanska}}, +% langbrazilian = {{}{}},% FIXME: missing +% langbulgarian = {{}{}},% FIXME: missing + langcatalan = {{katalanska}{katalanska}}, + langcroatian = {{kroatiska}{kroatiska}}, + langczech = {{tjeckiska}{tjeckiska}}, + langdanish = {{danska}{danska}}, + langdutch = {{nederl\"andska}{nederl\"andska}}, + langenglish = {{engelska}{engelska}}, +% langestonian = {{}{}},% FIXME: missing + langfinnish = {{finska}{finska}}, + langfrench = {{franska}{franska}}, + langgalician = {{galiciska}{galiciska}}, + langgerman = {{tyska}{tyska}}, + langgreek = {{grekiska}{grekiska}}, +% langhungarian = {{}{}}, % FIXME: missing + langitalian = {{italienska}{italienska}}, + langlatin = {{latin}{latin}}, +% langlatvian = {{}{}},% FIXME: missing + langnorwegian = {{norska}{norska}}, + langpolish = {{polska}{polska}}, + langportuguese = {{portugisiska}{portugisiska}}, + langrussian = {{ryska}{ryska}}, +% langslovene = {{}{}},% FIXME: missing + langspanish = {{spanska}{spanska}}, + langswedish = {{svenska}{svenska}}, + fromamerican = {{fr\aa n amerikanska}{fr\aa n amerikanska}}, +% frombrazilian = {{}{}},% FIXME: missing +% frombulgarian = {{}{}},% FIXME: missing + fromcatalan = {{fr\aa n katalanska}{fr\aa n katalanska}}, + fromcroatian = {{fr\aa n kroatiska}{fr\aa n kroatiska}}, + fromczech = {{fr\aa n tjeckiska}{fr\aa n tjeckiska}}, + fromdanish = {{fr\aa n danska}{fr\aa n danska}}, + fromdutch = {{fr\aa n nederl\"andska}{fr\aa n nederl\"andska}}, + fromenglish = {{fr\aa n engelska}{fr\aa n engelska}}, +% fromestonian = {{}{}},% FIXME: missing + fromfinnish = {{fr\aa n finska}{fr\aa n finska}}, + fromfrench = {{fr\aa n franska}{fr\aa n franska}}, + fromgalician = {{fr\aa n galiciska}{fr\aa n galiciska}}, + fromgerman = {{fr\aa n tyska}{fr\aa n tyska}}, + fromgreek = {{fr\aa n grekiska}{fr\aa n grekiska}}, +% fromhungarian = {{}{}}, % FIXME: missing + fromitalian = {{fr\aa n italienska}{fr\aa n italienska}}, + fromlatin = {{fr\aa n latin}{fr\aa n latin}}, +% fromlatvian = {{}{}},% FIXME: missing + fromnorwegian = {{fr\aa n norska}{fr\aa n norska}}, + frompolish = {{fr\aa n polska}{fr\aa n polska}}, + fromportuguese = {{fr\aa n portugisiska}{fr\aa n portugisiska}}, + fromrussian = {{fr\aa n ryska}{fr\aa n ryska}}, +% fromslovak = {{}{}},% FIXME: missing +% fromslovene = {{}{}},% FIXME: missing + fromspanish = {{fr\aa n spanska}{fr\aa n spanska}}, + fromswedish = {{fr\aa n svenska}{fr\aa n svenska}}, + countryde = {{Tyskland}{DE}}, + countryep = {{Europeiska unionen}{EP}}, + countryeu = {{Europeiska unionen}{EU}}, + countryfr = {{Frankrike}{FR}}, + countryuk = {{Storbritannien}{GB}}, + countryus = {{USA}{US}}, + patent = {{patent}{patent}}, + patentde = {{tyskt patent}{tyskt patent}}, + patenteu = {{europeiskt patent}{europeiskt patent}}, + patentfr = {{franskt patent}{franskt patent}}, + patentuk = {{brittiskt patent}{brittiskt patent}}, + patentus = {{amerikanskt patent}{amerikanskt patent}}, + patreq = {{patentans\"okan}{patentans\"okan}}, + patreqde = {{ans\"okan om tyskt patent}{ans\"okan om tyskt patent}}, + patreqeu = {{ans\"okan om europeiskt patent}{ans\"okan om europeiskt patent}}, + patreqfr = {{ans\"okan om franskt patent}{ans\"okan om franskt patent}}, + patrequk = {{ans\"okan om brittiskt patent}{ans\"okan om brittiskt patent}}, + patrequs = {{ans\"okan om amerikanskt patent}{ans\"okan om amerikanskt patent}}, + file = {{fil}{fil}}, + library = {{bibliotek}{bibliotek}}, + abstract = {{sammandrag}{sammandrag}}, + annotation = {{anm\"arkning}{anm\adddot}}, + commonera = {{v\"asterl\"andsk tider\"akning}{v\adddot t\adddot}}, + beforecommonera = {{f\"ore v\"asterl\"andsk tider\"akning}{f\adddot v\adddot t\adddot}}, + annodomini = {{efter Kristus}{e\adddot Kr\adddot}}, + beforechrist = {{f\"ore Kristus}{f\adddot Kr\adddot}}, +% circa = {{}{}},% FIXME: missing +% spring = {{}{}},% FIXME: missing +% summer = {{}{}},% FIXME: missing +% autumn = {{}{}},% FIXME: missing +% winter = {{}{}},% FIXME: missing + am = {{fm}{fm}}, + pm = {{em}{em}}, +} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/lbx/swissgerman.lbx b/macros/latex/contrib/biblatex/latex/lbx/swissgerman.lbx new file mode 100644 index 0000000000..f82ad9b057 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/lbx/swissgerman.lbx @@ -0,0 +1,24 @@ +\ProvidesFile{swissgerman.lbx} +[\abx@lbxid] + +\InheritBibliographyExtras{german} + +% Swiss time sep is a dot +\DeclareBibliographyExtras{% + \protected\def\bibtimesep{.}% +} + +% One point where Swiss German spelling +% differs from Austrian and German German +% is the (non-)use of \ss +\DeclareBibliographyStrings{% + inherit = {german}, + countryuk = {{Grossbritannien}{GB}}, +} + +\DeclareHyphenationExceptions{% + Pa-tent-an-mel-dung + Pa-tent-an-meld +} + +\endinput diff --git a/macros/latex/contrib/biblatex/latex/lbx/ukrainian.lbx b/macros/latex/contrib/biblatex/latex/lbx/ukrainian.lbx new file mode 100644 index 0000000000..b5be8984c5 --- /dev/null +++ b/macros/latex/contrib/biblatex/latex/lbx/ukrainian.lbx @@ -0,0 +1,602 @@ +\ProvidesFile{ukrainian.lbx} +[\abx@lbxid] + +\DeclareRedundantLanguages{ukrainian}{ukrainian} + +% This file requires UTF-8 support! + +\lbx@ifutfinput + {} + {\PackageError{biblatex} + {Ukrainian requires UTF-8 support} + {The 'ukrainian.lbx' file requires UTF-8 encoding but you + seem\MessageBreak to be using a different encoding. + This is a fatal error. I will\MessageBreak abort loading + ukrainian.lbx now.}% + \endinput} + +\NewBibliographyString{% Used only Ukrainian for month checks + datejanuary, + datefebruary, + datemarch, + dateapril, + datemay, + datejune, + datejuly, + dateaugust, + dateseptember, + dateoctober, + datenovember, + datedecember% +} + +\DeclareBibliographyExtras{% + \protected\def\bibrangedash{% + \textemdash\penalty\hyphenpenalty}% breakable dash + \let\finalandcomma=\empty + \let\finalandsemicolon=\empty + \protected\def\mkbibordinal#1{\mkbibmascord}% + \protected\def\mkbibmascord#1{#1-й}% + \protected\def\mkbibfemord#1{#1-я}% + \protected\def\mkbibneutord#1{#1-е}% + \protected\def\mkbibdatelong#1#2#3{% + \iffieldundef{#3} + {} + {\stripzeros{\thefield{#3}}% + \iffieldundef{#2}{}{\nobreakspace}}% + \iffieldundef{#2} + {} + {\iffieldundef{#3} + {\mkbibmonth{\thefield{#2}}} + {\lbx@ru@mkbibdatemonth{\thefield{#2}}}% + \iffieldundef{#1}{}{\space}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}% + \protected\def\mkbibdateshort#1#2#3{% + \iffieldundef{#3} + {} + {\mkdayzeros{\thefield{#3}}% + \iffieldundef{#2}{}{\adddot}}% + \iffieldundef{#2} + {} + {\mkmonthzeros{\thefield{#2}}% + \iffieldundef{#1}{}{\adddot}}% + \iffieldbibstring{#1} + {\bibstring{\thefield{#1}}} + {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}% + \savecommand\mkbibordedition + \savecommand\mkbibordseries + \def\mkbibordedition{\mkbibneutord}% + \def\mkbibordseries{\mkbibfemord}% + \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{% + \iffieldundef{#1}{} + {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}% + \iffieldundef{#2}{} + {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}% + \iffieldundef{#3}{} + {\printtext{\mktimezeros{\thefield{#3}}}}% + \setunit{}% + \iffieldundef{#4}{} + {\bibtimezonesep + \mkbibtimezone{\thefield{#4}}}}% + \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{% + \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep + \forcezerosmdt{\thefield{#2}}% + \iffieldundef{#3}{} + {\bibtimesep + \forcezerosmdt{\thefield{#3}}}% + \space + \ifnumless{\thefield{#1}}{12} + {\bibstring{am}} + {\bibstring{pm}}% + \iffieldundef{#4}{} + {\space\bibtimezonesep + \parentext{\mkbibtimezone{\thefield{#4}}}}}% + \protected\def\mkbibseasondateshort#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% + \protected\def\mkbibseasondatelong#1#2{% + \mkbibseason{\thefield{#2}}% + \iffieldundef{#1}{}{\space}% + \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}% +} + +\UndeclareBibliographyExtras{% + \restorecommand\mkbibordedition + \restorecommand\mkbibordseries +} + +\DeclareBibliographyStrings{% + bibliography = {{Перелік літератури}{Література}},%book-like (chapter) + references = {{Перелік літератури}{Література}},%article-like (section) + shorthands = {{Перелік скорочень}{Скорочення}}, + editor = {{редактор}{ред\adddot}}, + editors = {{редактори}{ред\adddot}}, + compiler = {{укладач}{уклад\adddot}}, + compilers = {{укладачі}{уклад\adddot}}, + redactor = {{редактор}{ред\adddot}},% FIXME: unsure + redactors = {{редактори}{ред\adddot}},% FIXME: unsure + reviser = {{ревізійний коректор}{ревіз\adddotspace кор\adddot}}, + revisers = {{ревізійні коректори}{ревіз\adddotspace кор\adddot}}, + founder = {{засновник}{засн\adddot}}, + founders = {{засновник}{засн\adddot}}, + continuator = {{продовжувач}{прод\adddot}},% FIXME: unsure + continuators = {{продовжувачі}{прод\adddot}},% FIXME: unsure + collaborator = {{учасник}{учас\adddot}},% FIXME: unsure + collaborators = {{учасники}{учас\adddot}},% FIXME: unsure + translator = {{перекладач}{пер\adddot}}, + translators = {{перекладачі}{пер\adddot}}, + commentator = {{коментатор}{комент\adddot}}, + commentators = {{коментатори}{комент\adddot}}, + annotator = {{примітки}{прим\adddot}}, + annotators = {{примітки}{прим\adddot}}, + commentary = {{коментар}{комент\adddot}}, + annotations = {{примітки}{прим\adddot}}, + introduction = {{вступна стаття}{вступ\adddotspace ст\adddot}}, + foreword = {{передмова}{передм\adddot}}, + afterword = {{післямова}{післям\adddot}}, + editortr = {{редактор та перекладач}% + {ред\adddotspace та пер\adddot}}, + editorstr = {{редактори та перекладачі}% + {ред\adddotspace та пер\adddot}}, + editorco = {{редактор та коментатор}% + {ред\adddotspace та комент\adddot}}, + editorsco = {{редактори та коментатори}% + {ред\adddotspace та комент\adddot}}, + editoran = {{редактор та укладач приміток}% + {ред\adddotspace та укл\adddotspace прим\adddot}}, + editorsan = {{редактори та укладачі приміток}% + {ред\adddotspace та укл\adddotspace прим\adddot}}, + editorin = {{редактор та автор вступної статті}% + {ред\adddotspace та авт\adddotspace вступ\adddotspace ст\adddot}}, + editorsin = {{редактори та автори вступної статті}% + {ред\adddotspace та авт\adddotspace вступ\adddotspace ст\adddot}}, + editorfo = {{редактор та автор передмови}% + {ред\adddotspace та авт\adddotspace передм\adddot}}, + editorsfo = {{редактори та автори передмови}% + {ред\adddotspace та авт\adddotspace передм\adddot}}, + editoraf = {{редактор та автор післямови}% + {ред\adddotspace та авт\adddotspace післям\adddot}}, + editorsaf = {{редактори та автори післямови}% + {ред\adddotspace та авт\adddotspace післям\adddot}}, + editortrco = {{редактор, перекладач та автор коментарів}% + {ред.,\addabbrvspace пер\adddotspace та авт\adddotspace комент\adddot}}, + editorstrco = {{редактори, перекладачі та автори коментарів}% + {ред.,\addabbrvspace пер\adddotspace та авт\adddotspace комент\adddot}}, + editortran = {{редактор, перекладач та укладач приміток}% + {ред.,\addabbrvspace пер\adddotspace та укл\adddotspace прим\adddot}}, + editorstran = {{редактори, перекладачі та укладачі приміток}% + {ред.,\addabbrvspace пер\adddotspace та укл\adddotspace прим\adddot}}, + editortrin = {{редактор, перекладач та автор вступної статті}% + {ред.,\addabbrvspace пер\adddotspace та авт\adddotspace вступ\adddotspace ст\adddot}}, + editorstrin = {{редактори, перекладачі та автори вступної статті}% + {ред.,\addabbrvspace пер\adddotspace та авт\adddotspace вступ\adddotspace ст\adddot}}, + editortrfo = {{редактор, перекладач та автор передмови}% + {ред.,\addabbrvspace пер\adddotspace та авт\adddotspace передм\adddot}}, + editorstrfo = {{редактори, перекладачі та автори передмови}% + {ред.,\addabbrvspace пер\adddotspace та авт\adddotspace передм\adddot}}, + editortraf = {{редактор, перекладач та автор післямови}% + {ред.,\addabbrvspace пер\adddotspace та авт\adddotspace післямови\adddot}}, + editorstraf = {{редактори, перекладачі та автори післямови}% + {ред.,\addabbrvspace пер\adddotspace та авт\adddotspace післям\adddot}}, + editorcoin = {{редактор, автор коментарів та вступної статті}% + {ред.,\addabbrvspace авт\adddotspace комент\adddotspace та вступ\adddotspace ст\adddot}}, + editorscoin = {{редактори, автори коментарів та вступної статті}% + {ред.,\addabbrvspace авт\adddotspace комент\adddotspace та вступ\adddotspace ст\adddot}}, + editorcofo = {{редактор, автор коментарів та передмови}% + {ред.,\addabbrvspace авт\adddotspace комент\adddotspace та передм\adddot}}, + editorscofo = {{редактори, автори коментарів та передмови}% + {ред.,\addabbrvspace авт\adddotspace комент\adddotspace та передм\adddot}}, + editorcoaf = {{редактор, автор коментарів та післямови}% + {ред.,\addabbrvspace авт\adddotspace комент\adddotspace та післям\adddot}}, + editorscoaf = {{редактори, автори коментарів та післямови}% + {ред.,\addabbrvspace авт\adddotspace комент\adddotspace та післям\adddot}}, + editoranin = {{редактор, укладач приміток та автор вступної статті}% + {ред.,\addabbrvspace укл\adddotspace прим\adddotspace та авт\adddotspace вступ\adddotspace ст\adddot}}, + editorsanin = {{редактори, укладачі приміток та автори вступної статті}% + {ред.,\addabbrvspace укл\adddotspace прим\adddotspace та авт\adddotspace вступ\adddotspace ст\adddot}}, + editoranfo = {{редактор, укладач приміток та автор передмови}% + {ред.,\addabbrvspace укл\adddotspace прим\adddotspace та авт\adddotspace передм\adddot}}, + editorsanfo = {{редактори, укладачі приміток та автори передмови}% + {ред.,\addabbrvspace укл\adddotspace прим\adddotspace та авт\adddotspace передм\adddot}}, + editoranaf = {{редактор, укладач приміток та автор післямови}% + {ред.,\addabbrvspace укл\adddotspace прим\adddotspace та авт\adddotspace післям\adddot}}, + editorsanaf = {{редактори, укладачі приміток та автори післямови}% + {ред.,\addabbrvspace укл\adddotspace прим\adddotspace та авт\adddotspace післям\adddot}}, + editortrcoin = {{редактор, перекладач, автор коментарів та вступної статті}% + {ред.,\addabbrvspace пер.,\addabbrvspace авт\adddotspace комент\adddotspace та вступ\adddotspace ст\adddot}}, + editorstrcoin = {{редактори, перекладачі, автори коментарів та вступної статті}% + {ред.,\addabbrvspace пер.,\addabbrvspace авт\adddotspace комент\adddotspace та вступ\adddotspace ст\adddot}}, + editortrcofo = {{редактор, перекладач, автор коментарів та передмови}% + {ред.,\addabbrvspace пер.,\addabbrvspace авт\adddotspace комент\adddotspace та передм\adddot}}, + editorstrcofo = {{редактори, перекладачі, автори коментарів та передмови}% + {ред.,\addabbrvspace пер.,\addabbrvspace авт\adddotspace комент\adddotspace та передм\adddot}}, + editortrcoaf = {{редактор, перекладач, автор коментарів та післямови}% + {ред.,\addabbrvspace пер.,\addabbrvspace авт\adddotspace комент\adddotspace та післям\adddot}}, + editorstrcoaf = {{редактори, перекладачі, автори коментарів та післямови}% + {ред.,\addabbrvspace пер.,\addabbrvspace авт\adddotspace комент\adddotspace та післям\adddot}}, + editortranin = {{редактор, перекладач, укладач приміток та автор вступної статті}% + {ред.,\addabbrvspace пер.,\addabbrvspace укл\adddotspace прим\adddotspace та авт\adddotspace вступ\adddotspace ст\adddot}}, + editorstranin = {{редактори, перекладачі, укладачі приміток та автори вступної статті}% + {ред.,\addabbrvspace пер.,\addabbrvspace укл\adddotspace прим\adddotspace та авт\adddotspace вступ\adddotspace ст\adddot}}, + editortranfo = {{редактор, перекладач, укладач приміток та автор передмови}% + {ред.,\addabbrvspace пер.,\addabbrvspace укл\adddotspace прим\adddotspace та авт\adddotspace передм\adddot}}, + editorstranfo = {{редактори, перекладачі, укладачі приміток та автори передмови}% + {ред.,\addabbrvspace пер.,\addabbrvspace укл\adddotspace прим\adddotspace та авт\adddotspace передм\adddot}}, + editortranaf = {{редактор, перекладач, укладач приміток та автор післямови}% + {ред.,\addabbrvspace пер.,\addabbrvspace укл\adddotspace прим\adddotspace та авт\adddotspace післям\adddot}}, + editorstranaf = {{редактори, перекладачі, укладачі приміток та автори післямови}% + {ред.,\addabbrvspace пер.,\addabbrvspace укл\adddotspace прим\adddotspace та авт\adddotspace післям\adddot}}, + translatorco = {{перекладач та автор коментарів}% + {пер\adddotspace та авт\adddotspace комент\adddot}}, + translatorsco = {{перекладачі та автор коментарів}% + {пер\adddotspace та авт\adddotspace комент\adddot}}, + translatoran = {{перекладач та автор приміток}% + {пер\adddotspace та укл\adddotspace прим\adddot}}, + translatorsan = {{перекладачі та укладачі приміток}% + {пер\adddotspace та уклад\adddotspace прим\adddot}}, + translatorin = {{перекладач та автор вступної статті}% + {пер\adddotspace та авт\adddotspace вступ\adddotspace ст\adddot}}, + translatorsin = {{перекладачі та автори вступної статті}% + {пер\adddotspace та авт\adddotspace вступ\adddotspace ст\adddot}}, + translatorfo = {{перекладач та автор передмови}% + {пер\adddotspace та авт\adddotspace передм\adddot}}, + translatorsfo = {{перекладачі та автори передмови}% + {пер\adddotspace та авт\adddotspace передм\adddot}}, + translatoraf = {{перекладач та автор післямови}% + {пер\adddotspace та авт\adddotspace післям\adddot}}, + translatorsaf = {{перекладачі та автори післямови}% + {пер\adddotspace та авт\adddotspace післям\adddot}}, + translatorcoin = {{перекладач, автор коментарів та вступної статті}% + {пер.,\addabbrvspace авт\adddotspace комент\adddotspace та вступ\adddotspace ст\adddot}}, + translatorscoin = {{перекладачі, автори коментарів та вступної статті}% + {пер.,\addabbrvspace авт\adddotspace комент\adddotspace та вступ\adddotspace ст\adddot}}, + translatorcofo = {{перекладач, автор коментарів та передмови}% + {пер.,\addabbrvspace авт\adddotspace комент\adddotspace та передм\adddot}}, + translatorscofo = {{перекладачі, автори коментарів та передмови}% + {пер.,\addabbrvspace авт\adddotspace комент\adddotspace та передм\adddot}}, + translatorcoaf = {{перекладач, автор коментарів та післямови}% + {пер.,\addabbrvspace авт\adddotspace комент\adddotspace та післям\adddot}}, + translatorscoaf = {{перекладачі, автори коментарів та післямови}% + {пер.,\addabbrvspace авт\adddotspace комент\adddotspace та післям\adddot}}, + translatoranin = {{перекладач, автор коментарів та вступної статті}% + {пер.,\addabbrvspace авт\adddotspace комент\adddotspace та вступ\adddotspace ст\adddot}}, + translatorsanin = {{перекладачі, автори коментарів та вступної статті}% + {пер.,\addabbrvspace авт\adddotspace комент\adddotspace та вступ\adddotspace ст\adddot}}, + translatoranfo = {{перекладач, автор коментарів та передмови}% + {пер.,\addabbrvspace авт\adddotspace комент\adddotspace та передм\adddot}}, + translatorsanfo = {{перекладачі, автори коментарів та передмови}% + {пер.,\addabbrvspace авт\adddotspace комент\adddotspace та передм\adddot}}, + translatoranaf = {{перекладач, автор коментарів та післямови}% + {пер.,\addabbrvspace авт\adddotspace комент\adddotspace та післям\adddot}}, + translatorsanaf = {{перекладачі, автори коментарів та післямови}% + {пер.,\addabbrvspace авт\adddotspace комент\adddotspace та післям\adddot}}, + organizer = {{організатор}{орг\adddot}}, + organizers = {{організатори}{орг\adddot}}, + byorganizer = {{організатор}{орг\adddot}},% FIXME: unsure + byauthor = {{згідно автора}{згідн\adddot авт\adddot}}, + byeditor = {{за редакцією}{за\addabbrvspace ред\adddot}}, + bycompiler = {{укладач}{уклад\adddot}}, + byredactor = {{за редакцією}{за\addabbrvspace ред\adddot}}, + byreviser = {{виправлено}{випр\adddot}}, + byreviewer = {{рецензія}{рец\adddot}}, + byfounder = {{засновник}{засн\adddot}},% FIXME: unsure + bycontinuator = {{продовження}{продовж\adddot}},% FIXME: unsure + bycollaborator = {{за участю}{за\addabbrvspace уч\adddot}}, + bytranslator = {{переклад \lbx@lfromlang}{пер\adddot\ \lbx@sfromlang}}, + bycommentator = {{коментарі}{комент\adddot}}, + byannotator = {{примітки}{прим\adddot}}, + withcommentator = {{коментарі}{комент\adddot}}, + withannotator = {{примітки}{прим\adddot}}, + withintroduction = {{вступна стаття}{вступ\adddotspace ст\adddot}}, + withforeword = {{передмовие}{передм\adddot}}, + withafterword = {{післямовие}{післям\adddot}}, + byeditortr = {{переклад \lbx@lfromlang, за редакцією}% + {пер\adddot\ \lbx@sfromlang, за\addabbrvspace ред\adddot}}, + byeditorco = {{за редакцією, коментарі}% + {за ред.,\addabbrvspace комент\adddot}}, + byeditoran = {{за редакцією, примітки}% + {за ред.,\addabbrvspace прим\adddot}}, + byeditorin = {{за редакцією, вступна стаття}% + {за ред.,\addabbrvspace вступ\adddotspace ст\adddot}}, + byeditorfo = {{за редакцією, передмова}% + {за ред.,\addabbrvspace передм\adddot}}, + byeditoraf = {{за редакцією, післямова}% + {за ред.,\addabbrvspace післям\adddot}}, + byeditortrco = {{за редакцією, переклад \lbx@lfromlang\ та коментарі}% + {за ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang\ та комент\adddot}}, + byeditortran = {{за редакцією, переклад \lbx@lfromlang\ та примітки}% + {за ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang\ та прим\adddot}}, + byeditortrin = {{за редакцією, переклад \lbx@lfromlang, вступна стаття}% + {за ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang, вступ\adddotspace ст\adddot}}, + byeditortrfo = {{за редакцією, переклад \lbx@lfromlang, передмовие}% + {за ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang, передм\adddot}}, + byeditortraf = {{за редакцією, переклад \lbx@lfromlang, післямова}% + {за ред\adddotspace та пер\adddot\ \lbx@sfromlang, післям\adddot}}, + byeditorcoin = {{за редакцією, коментарі та вступна стаття}% + {за ред.,\addabbrvspace комент\adddotspace та вступ\adddotspace ст\adddot}}, + byeditorcofo = {{за редакцією, коментарі та передмова}% + {за ред.,\addabbrvspace комент\adddotspace та передм\adddot}}, + byeditorcoaf = {{за редакцією, коментарі та післямова}% + {за ред.,\addabbrvspace комент\adddotspace та післям\adddot}}, + byeditoranin = {{за редакцією, примітки та вступна стаття}% + {за ред.,\addabbrvspace приміт\adddotspace та вступ\adddotspace ст\adddot}}, + byeditoranfo = {{за редакцією, примітки та передмова}% + {за ред.,\addabbrvspace приміт\adddotspace та передм\adddot}}, + byeditoranaf = {{за редакцією, примітки та післямова}% + {за ред.,\addabbrvspace приміт\adddotspace та післям\adddot}}, + byeditortrcoin = {{за редакцією, переклад \lbx@lfromlang, коментарі та вступна стаття}% + {за ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang, комент\adddotspace та вступ\adddotspace ст\adddot}}, + byeditortrcofo = {{за редакцією, переклад \lbx@lfromlang, коментарі та передмова}% + {за ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang, комент\adddotspace та передм\adddot}}, + byeditortrcoaf = {{за редакцією, переклад \lbx@lfromlang, коментарі та післямова}% + {за ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang, комент\adddotspace та післям\adddot}}, + byeditortranin = {{за редакцією, переклад \lbx@lfromlang, примітки та вступна стаття}% + {за ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang, прим\adddotspace та вступ\adddotspace ст\adddot}}, + byeditortranfo = {{за редакцією, переклад \lbx@lfromlang, примітки та передмова}% + {за ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang, прим\adddotspace та передм\adddot}}, + byeditortranaf = {{за редакцією, переклад \lbx@lfromlang, примітки та післямова}% + {за ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang, прим\adddotspace та післям\adddot}}, + bytranslatorco = {{переклад \lbx@lfromlang\ та коментарі}% + {пер\adddot\ \lbx@sfromlang\ та комент\adddot}}, + bytranslatoran = {{переклад \lbx@lfromlang\ та примітки}% + {пер\adddot\ \lbx@sfromlang\ та прим\adddot}}, + bytranslatorin = {{переклад \lbx@lfromlang\ та вступна стаття}% + {пер\adddot\ \lbx@sfromlang\ та вступ\adddotspace ст\adddot}}, + bytranslatorfo = {{переклад \lbx@lfromlang\ та передмова}% + {пер\adddot\ \lbx@sfromlang\ та передм\adddot}}, + bytranslatoraf = {{переклад \lbx@lfromlang\ та післямова}% + {пер\adddot\ \lbx@sfromlang\ та післям\adddot}}, + bytranslatorcoin = {{переклад \lbx@lfromlang, коментарі та вступна стаття}% + {пер\adddot\ \lbx@sfromlang, комент\adddotspace та вступ\adddotspace ст\adddot}}, + bytranslatorcofo = {{переклад \lbx@lfromlang, коментарі та передмова}% + {пер\adddot\ \lbx@sfromlang, комент\adddotspace та передм\adddot}}, + bytranslatorcoaf = {{переклад \lbx@lfromlang, коментарі та післямова}% + {пер\adddot\ \lbx@sfromlang, комент\adddotspace та післям\adddot}}, + bytranslatoranin = {{переклад \lbx@lfromlang, примітки та вступна стаття}% + {пер\adddot\ \lbx@sfromlang, прим\adddotspace та вступ\adddotspace ст\adddot}}, + bytranslatoranfo = {{переклад \lbx@lfromlang, примітки та передмова}% + {пер\adddot\ \lbx@sfromlang, прим\adddotspace та передм\adddot}}, + bytranslatoranaf = {{переклад \lbx@lfromlang, примітки та післямова}% + {пер\adddot\ \lbx@sfromlang, прим\adddotspace та післям\adddot}}, + and = {{та}{та}}, + andothers = {{та\addabbrvspace ін\adddot}{та\addabbrvspace ін\adddot}}, + andmore = {{та\addabbrvspace ін\adddot}{та\addabbrvspace ін\adddot}}, + volume = {{том}{т\adddot}}, + volumes = {{томах}{т\adddot}}, + involumes = {{в}{в}}, + jourvol = {{том}{т\adddot}}, + jourser = {{серія}{сер\adddot}}, + book = {{книга}{кн\adddot}}, + part = {{частина}{ч\adddot}}, + issue = {{випуск}{вип\adddot}}, + newseries = {{нова серія}{нов\adddotspace сер\adddot}}, + oldseries = {{стара серія}{стар\adddotspace сер\adddot}}, + edition = {{видання}{вид\adddot}}, + reprint = {{перевидання}{перевид\adddot}}, + reprintof = {{перевидання}{перевид\adddot}}, + reprintas = {{перевидано як}{перевид\adddotspace як}}, + reprintfrom = {{перевидано з}{перевид\adddotspace з}}, + translationof = {{переклад по виданню\addcolon}{пер\adddotspace по вид\adddot\addcolon}}, + translationas = {{переклад\addcolon}{пер\adddot\addcolon}}, + translationfrom = {{переклад з}{пер\adddotspace з}}, + reviewof = {{рецензія на\addcolon}{рец\adddotspace на\addcolon}},% FIXME: unsure + origpubas = {{перша публикація\addcolon}% + {перш\adddotspace публ\adddot\addcolon}}, + origpubin = {{перша публікация в}% + {перш\adddotspace публ\adddotspace в}}, + astitle = {{\addcolon}{\addcolon}},% FIXME: unsure + bypublisher = {{\addcomma}{\addcomma}},% FIXME: unsure + nodate = {{б\adddot р\adddot}{б\adddot р\adddot}}, + page = {{сторінка}{с\adddot}}, + pages = {{сторінки}{с\adddot}}, + column = {{колонка}{кол\adddot}}, + columns = {{колонки}{кол\adddot}}, + line = {{рядок}{рядок}}, + lines = {{рядки}{рядки}}, + verse = {{вірш}{вірш}}, + verses = {{вірші}{вірші}}, + section = {{параграф}{\S}}, + sections = {{параграфи}{\S\S}}, + paragraph = {{абзац}{абз\adddot}}, + paragraphs = {{абзаци}{абз\adddot}}, + pagetotal = {{сторінка}{с\adddot}}, + pagetotals = {{сторінки}{с\adddot}}, + columntotal = {{колонка}{кол\adddot}}, + columntotals = {{колонки}{кол\adddot}}, + linetotal = {{рядок}{рядок}}, + linetotals = {{рядки}{рядки}}, + versetotal = {{вірш}{вірш}}, + versetotals = {{вірші}{вірші}}, + sectiontotal = {{параграф}{\S}}, + sectiontotals = {{параграфи}{\S\S}}, + paragraphtotal = {{абзац}{абз\adddot}}, + paragraphtotals = {{абзаци}{абз\adddot}}, + in = {{в}{в}}, + inseries = {{в}{в}}, + ofseries = {{із}{із}}, + number = {{номер}{№}}, + chapter = {{глава}{гл\adddot}}, +% bathesis = {{}{}},% FIXME: missing + mathesis = {{дис\adddotspace\textellipsis\ маг\adddot} + {дис\adddotspace\textellipsis\ маг\adddot}}, + phdthesis = {{дис\adddotspace\textellipsis\ док\adddot} + {дис\adddotspace\textellipsis\ док\adddot}}, + candthesis = {{дис\adddotspace\textellipsis\ канд\adddot} + {дис\adddotspace\textellipsis\ канд\adddot}}, + resreport = {{науковий звіт}{наук\adddotspace звіт\adddot}}, + techreport = {{технічний звіт}{тех\adddotspace звіт\adddot}}, + software = {{програмне забезпечення}{прогр\adddotspace забезп\adddot}}, + datacd = {{CD-ROM}{CD-ROM}}, + audiocd = {{audio CD}{audio CD}}, + version = {{версія}{вер\adddot}}, + url = {{url}{url}}, + urlfrom = {{режим доступу}{режим доступу}}, + urlseen = {{дата звернення}{дата\addabbrvspace зверн\adddot}}, + inpreparation = {{в\addabbrvspace підготовці}{в підг\adddot}}, + submitted = {{представлено}{предст\adddot}}, + forthcoming = {{в друці}{в друц\adddot}}, + inpress = {{в\addabbrvspace друці}{в друці\adddot}}, + prepublished = {{попередня публікация}{попер\adddotspace пуб\adddot}},% FIXME: unsure + citedas = {{далі цитується як}{далі цит\addabbrvspace як}}, + thiscite = {{тут}{тут}}, + seenote = {{дивись зноску}{див\adddotspace зн\adddot}}, + quotedin = {{цитується за}{цит\adddotspace за}}, + idem = {{він\addabbrvspace же}{він\addabbrvspace же}}, + idemsm = {{він\addabbrvspace же}{він\addabbrvspace же}}, + idemsf = {{вона\addabbrvspace же}{вона\addabbrvspace же}}, + idemsn = {{він\addabbrvspace же}{він\addabbrvspace же}}, + idempm = {{вони\addabbrvspace ж}{вони\addabbrvspace ж}}, + idempf = {{вони\addabbrvspace ж}{вони\addabbrvspace ж}}, + idempn = {{вони\addabbrvspace ж}{вони\addabbrvspace ж}}, + idempp = {{вони\addabbrvspace ж}{вони\addabbrvspace ж}}, + ibidem = {{там\addabbrvspace же}{там\addabbrvspace же}}, + opcit = {{вказ\adddotspace твор\adddot}{вказ\adddotspace твор\adddot}}, + loccit = {{вказ\adddotspace місце}{вказ\adddotspace місце}}, + confer = {{порівняй}{порівн\adddot}}, + sequens = {{та наступна}{та\addabbrvspace наст\adddot}}, + sequentes = {{та наступні}{и\addabbrvspace наст\adddot}}, + passim = {{всюди}{всюди}}, + see = {{дивись}{див\adddot}}, + seealso = {{дивись також}{див\adddotspace також}}, + backrefpage = {{цитується на сторінці}{цит\adddotspace на\addabbrvspace с\adddot}}, + backrefpages = {{цитується на сторінках}{цит\adddotspace на\addabbrvspace с\adddot}}, + january = {{січень}{січ\adddot}}, + february = {{лютий}{лют\adddot}}, + march = {{березень}{бер\adddot}}, + april = {{квітень}{квіт\adddot}}, + may = {{травень}{трав\adddot}}, + june = {{червень}{черв\adddot}}, + july = {{липень}{лип\adddot}}, + august = {{серпень}{серп\adddot}}, + september = {{вересень}{вер\adddot}}, + october = {{жовтень}{жовт\adddot}}, + november = {{листопад}{листоп\adddot}}, + december = {{грудень}{груд\adddot}}, + datejanuary = {{січня}{січ\adddot}}, + datefebruary = {{лютого}{лют\adddot}}, + datemarch = {{березня}{бер\adddot}}, + dateapril = {{квітня}{квіт\adddot}}, + datemay = {{травня}{трав\adddot}}, + datejune = {{червня}{черв\adddot}}, + datejuly = {{липня}{лип\adddot}}, + dateaugust = {{серпня}{серп\adddot}}, + dateseptember = {{вересня}{вер\adddot}}, + dateoctober = {{жовтня}{жовт\adddot}}, + datenovember = {{листопда}{листоп\adddot}}, + datedecember = {{грудня}{груд\adddot}}, + langamerican = {{американський}{амер\adddot}}, + langbrazilian = {{бразильський}{браз\adddot}}, + langbulgarian = {{болгарська}{болг\adddot}}, + langcatalan = {{каталонська}{катал\adddot}}, + langcroatian = {{хорватська}{хорв\adddot}}, + langczech = {{чеська}{чеськ\adddot}}, + langdanish = {{датська}{дат\adddot}}, + langdutch = {{нідерландська}{нід\adddot}}, + langenglish = {{англійська}{англ\adddot}}, + langestonian = {{естонська}{ест\adddot}}, + langfinnish = {{фінська}{фін\adddot}}, + langfrench = {{французька}{фр\adddot}}, + langgalician = {{галісійський}{гал\adddot}}, + langgerman = {{німецька}{нім\adddot}}, + langgreek = {{грецька}{грець\adddot}}, + langhungarian = {{угорська}{угор\adddot}}, + langitalian = {{італійська}{італ\adddot}}, + langjapanese = {{японська}{яп\adddot}}, + langlatin = {{латинська}{лат\adddot}}, +% langlatvian = {{}{}},% FIXME: missing + langnorwegian = {{норвезька}{норв\adddot}}, + langpolish = {{польська}{пол\adddot}}, + langportuguese = {{португальська}{порт\adddot}}, + langrussian = {{російська}{рос\adddot}}, +% langslovak = {{}{}},% FIXME: missing + langslovene = {{словенська}{слов\adddot}}, + langspanish = {{іспанська}{ісп\adddot}}, + langswedish = {{шведська}{швед\adddot}}, + langukrainian = {{українська}{укр\adddot}}, + fromamerican = {{з американської}{з\addabbrvspace амер\adddot}}, + frombrazilian = {{з бразильської}{з\addabbrvspace браз\adddot}}, + frombulgarian = {{з болгарскої}{з\addabbrvspace болг\adddot}}, + fromcatalan = {{з каталонської}{з\addabbrvspace катал\adddot}}, + fromcroatian = {{з хорватської}{з\addabbrvspace хорв\adddot}}, + fromczech = {{з чеської}{з\addabbrvspace чеськ\adddot}}, + fromdanish = {{з датської}{з\addabbrvspace дат\adddot}}, + fromdutch = {{з нідерландської}{з\addabbrvspace нід\adddot}}, + fromenglish = {{з англійскої}{з\addabbrvspace англ\adddot}}, + fromestonian = {{з естонської}{з\addabbrvspace ест\adddot}}, + fromfinnish = {{з фінської}{з\addabbrvspace фін\adddot}}, + fromfrench = {{з французької}{з\addabbrvspace фр\adddot}}, + fromgalician = {{з галісійської}{з\addabbrvspace гал\adddot}}, + fromgerman = {{з німецької}{з\addabbrvspace нім\adddot}}, + fromgreek = {{з грецької}{з\addabbrvspace грец\adddot}}, + fromhungarian = {{з угорської}{з\addabbrvspace угор\adddot}}, + fromitalian = {{з італійської}{з\addabbrvspace італ\adddot}}, + fromjapanese = {{з японської}{з\addabbrvspace яп\adddot}}, + fromlatin = {{з латинської}{з\addabbrvspace лат\adddot}}, +% fromlatvian = {{}{}},% FIXME: missing + fromnorwegian = {{з норвезької}{з\addabbrvspace норв\adddot}}, + frompolish = {{з польської}{з\addabbrvspace пол\adddot}}, + fromportuguese = {{з португальської}{з\addabbrvspace порт\adddot}}, + fromrussian = {{з російської}{з\addabbrvspace рос\adddot}}, +% fromslovak = {{}{}},% FIXME: missing + fromslovene = {{зі словенської}{зі\addabbrvspace слов\adddot}}, + fromspanish = {{з іспанської}{з\addabbrvspace ісп\adddot}}, + fromswedish = {{з шведської}{з\addabbrvspace швед\adddot}}, + fromukrainian = {{з української}{з\addabbrvspace укр\adddot}}, + countryde = {{Німеччина}{Німеччина}}, + countryeu = {{Європейський Союз}{ЄС}}, + countryep = {{Європейський Союз}{ЄС}}, + countryfr = {{Франція}{Франція}}, + countryuk = {{Великобританія}{Великобританія}}, + countryus = {{Сполучені Штати Америки}{США}}, + patent = {{патент}{пат\adddot}}, + patentde = {{патент Німеччини}{пат\adddotspace Німеччини}}, + patenteu = {{патент Європи}{пат\adddotspace Європи}}, + patentfr = {{патент Франції}{пат\adddotspace Франції}}, + patentuk = {{патент Великобританії}{пат\adddotspace Великобританії}}, + patentus = {{патент США}{пат\adddotspace США}}, + patreq = {{заявка}{заявка}}, + patreqde = {{заявка на патент Німеччини}{заявка на пат\adddotspace Німеччини}}, + patreqeu = {{заявка на патент Європи}{заявка на пат\adddotspace Європи}}, + patreqfr = {{заявка на патент Франції}{заявка на пат\adddotspace Франції}}, + patrequk = {{заявка на патент Великобританії}{заявка на пат\adddotspace Великобританії}}, + patrequs = {{заявка на патент США}{заявка на пат\adddotspace США}}, + file = {{файл}{файл}}, + library = {{бібліотека}{б-ка}}, + abstract = {{резюме}{рез\adddot}}, + annotation = {{анотація}{анот\adddot}}, + commonera = {{нашої ери}{н\adddotspace е\adddot}}, + beforecommonera = {{до нашої ери}{до н\adddotspace е\adddot}}, + annodomini = {{від Різдва Христового}{від Р\adddotspace Х\adddot}}, + beforechrist = {{до Різдва Христового}{до Р\adddotspace Х\adddot}}, + circa = {{близько}{бл\adddot}}, + spring = {{весна}{весна}}, + summer = {{літо}{літо}}, + autumn = {{осінь}{осінь}}, + winter = {{зима}{зима}}, + am = {{ДП}{ДП}}, + pm = {{ПП}{ПП}}, +} + +\protected\gdef\lbx@ru@mkbibdatemonth#1{% + \ifcase0#1\relax + #1\BibliographyWarning{Month out of range}% + \or\abx@bibmonth{datejanuary}% + \or\abx@bibmonth{datefebruary}% + \or\abx@bibmonth{datemarch}% + \or\abx@bibmonth{dateapril}% + \or\abx@bibmonth{datemay}% + \or\abx@bibmonth{datejune}% + \or\abx@bibmonth{datejuly}% + \or\abx@bibmonth{dateaugust}% + \or\abx@bibmonth{dateseptember}% + \or\abx@bibmonth{dateoctober}% + \or\abx@bibmonth{datenovember}% + \or\abx@bibmonth{datedecember}% + \else + #1\BibliographyWarning{Month out of range}% + \fi}% + +\endinput |