summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/biblatex/latex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/biblatex/latex')
-rw-r--r--macros/latex/contrib/biblatex/latex/bbx/draft.bbx4
-rw-r--r--macros/latex/contrib/biblatex/latex/bbx/numeric.bbx4
-rw-r--r--macros/latex/contrib/biblatex/latex/bbx/reading.bbx4
-rw-r--r--macros/latex/contrib/biblatex/latex/bbx/standard.bbx6
-rw-r--r--macros/latex/contrib/biblatex/latex/biblatex.def49
-rw-r--r--macros/latex/contrib/biblatex/latex/biblatex.sty398
-rw-r--r--macros/latex/contrib/biblatex/latex/blx-bibtex.def10
-rw-r--r--macros/latex/contrib/biblatex/latex/blx-case-expl3.sty (renamed from macros/latex/contrib/biblatex/latex/blx-case-expl3.def)34
-rw-r--r--macros/latex/contrib/biblatex/latex/blx-case-latex2e.sty (renamed from macros/latex/contrib/biblatex/latex/blx-case-latex2e.def)44
-rw-r--r--macros/latex/contrib/biblatex/latex/blx-compat.def4
-rw-r--r--macros/latex/contrib/biblatex/latex/blx-dm.def10
-rw-r--r--macros/latex/contrib/biblatex/latex/blx-unicode.def14
-rw-r--r--macros/latex/contrib/biblatex/latex/lbx/basque.lbx480
-rw-r--r--macros/latex/contrib/biblatex/latex/lbx/catalan.lbx172
-rw-r--r--macros/latex/contrib/biblatex/latex/lbx/english.lbx2
-rw-r--r--macros/latex/contrib/biblatex/latex/lbx/french.lbx18
-rw-r--r--macros/latex/contrib/biblatex/latex/lbx/german.lbx2
17 files changed, 1013 insertions, 242 deletions
diff --git a/macros/latex/contrib/biblatex/latex/bbx/draft.bbx b/macros/latex/contrib/biblatex/latex/bbx/draft.bbx
index 1c57325157..0896a6d963 100644
--- a/macros/latex/contrib/biblatex/latex/bbx/draft.bbx
+++ b/macros/latex/contrib/biblatex/latex/bbx/draft.bbx
@@ -8,6 +8,10 @@
\DeclareNameAlias{editor}{default}
\DeclareNameAlias{translator}{default}
+\DeclareNameWrapperAlias{author}{default}
+\DeclareNameWrapperAlias{editor}{default}
+\DeclareNameWrapperAlias{translator}{default}
+
\DeclareFieldFormat{shorthandwidth}{#1}
\defbibenvironment{bibliography}
diff --git a/macros/latex/contrib/biblatex/latex/bbx/numeric.bbx b/macros/latex/contrib/biblatex/latex/bbx/numeric.bbx
index 4bf46c3ff8..909b806fd1 100644
--- a/macros/latex/contrib/biblatex/latex/bbx/numeric.bbx
+++ b/macros/latex/contrib/biblatex/latex/bbx/numeric.bbx
@@ -13,6 +13,10 @@
\DeclareNameAlias{editor}{default}
\DeclareNameAlias{translator}{default}
+\DeclareNameWrapperAlias{author}{default}
+\DeclareNameWrapperAlias{editor}{default}
+\DeclareNameWrapperAlias{translator}{default}
+
\DeclareFieldFormat{bibentrysetcount}{\mkbibparens{\mknumalph{#1}}}
\DeclareFieldFormat{labelnumberwidth}{\mkbibbrackets{#1}}
\DeclareFieldFormat{shorthandwidth}{\mkbibbrackets{#1}}
diff --git a/macros/latex/contrib/biblatex/latex/bbx/reading.bbx b/macros/latex/contrib/biblatex/latex/bbx/reading.bbx
index 547510c37d..3eb35c3909 100644
--- a/macros/latex/contrib/biblatex/latex/bbx/reading.bbx
+++ b/macros/latex/contrib/biblatex/latex/bbx/reading.bbx
@@ -7,6 +7,10 @@
\DeclareNameAlias{editor}{default}
\DeclareNameAlias{translator}{default}
+\DeclareNameWrapperAlias{author}{default}
+\DeclareNameWrapperAlias{editor}{default}
+\DeclareNameWrapperAlias{translator}{default}
+
\DeclareFieldFormat{entrykey}{\mbox{\bfseries#1}}
\DeclareFieldFormat{annotation}{\bibstring{annotation}\addcolon\space #1}
\DeclareFieldFormat{abstract}{\bibstring{abstract}\addcolon\space #1}
diff --git a/macros/latex/contrib/biblatex/latex/bbx/standard.bbx b/macros/latex/contrib/biblatex/latex/bbx/standard.bbx
index 810c8584c9..f53eb722d5 100644
--- a/macros/latex/contrib/biblatex/latex/bbx/standard.bbx
+++ b/macros/latex/contrib/biblatex/latex/bbx/standard.bbx
@@ -983,14 +983,14 @@
test {\ifbibxstring{\thefield{relatedtype}s}}
}
{\printtext[\bbx@tempb]{%
- \bibstring[\mkrelatedstring]{\thefield{relatedtype}s}}}
+ \bibstring[\mkrelatedstringtext]{\thefield{relatedtype}s}}}
{\iffieldbibstring{relatedtype}
{\printtext[\bbx@tempb]{%
- \bibstring[\mkrelatedstring]{\thefield{relatedtype}}}}
+ \bibstring[\mkrelatedstringtext]{\thefield{relatedtype}}}}
{}}}
{\iffieldbibstring{relatedstring}
{\printtext[\bbx@tempb]{%
- \bibstring[\mkrelatedstring]{\thefield{relatedstring}}}}
+ \bibstring[\mkrelatedstringtext]{\thefield{relatedstring}}}}
{\printfield[\bbx@tempb]{relatedstring}}}%
\docsvfield{related}%
\usebibmacro{endrelatedloop}}}%
diff --git a/macros/latex/contrib/biblatex/latex/biblatex.def b/macros/latex/contrib/biblatex/latex/biblatex.def
index 10f4144dab..c4ac8d0169 100644
--- a/macros/latex/contrib/biblatex/latex/biblatex.def
+++ b/macros/latex/contrib/biblatex/latex/biblatex.def
@@ -194,7 +194,7 @@
% Examples of use, uncommenting these would break backwards compatibility
%\newcommand*{\begrelateddelimorigpubin}{\addspace}
%\newcommand*{\begrelateddelimorigpubas}{\addspace}
-\newcommand{\mkrelatedstring}{\mainlang}
+\newcommand{\mkrelatedstringtext}{\textmainlang}
% Used for indexing
@@ -476,7 +476,7 @@
\DeclareFieldFormat{prenote}{#1\isdot}
\DeclareFieldFormat{postnote}{\mkpageprefix[pagination][\mknormrange]{#1}}
\DeclareFieldFormat{volcitevolume}{\bibstring{volume}\ppspace#1}
-\DeclareFieldAlias{volcitepages}{postnote}
+\DeclareFieldFormat{volcitepages}{\mkpageprefix[pagination][\mknormrange]{#1}}
\DeclareFieldFormat{volcitenote}{\mkvolcitenote#1}
\newrobustcmd*{\mkvolcitenote}[2]{%
\printtext[volcitevolume]{#1}%
@@ -624,6 +624,7 @@
% The default used by \citelist
\DeclareListAlias{citelist}{default}
+\DeclareListWrapperAlias{citelist}{default}
% Used in the bibliography
@@ -724,6 +725,11 @@
\DeclareListAlias{institution}{default}
\DeclareListAlias{organization}{default}
+\DeclareListWrapperAlias{origlocation}{location}
+\DeclareListWrapperAlias{origpublisher}{publisher}
+\DeclareListWrapperAlias{institution}{default}
+\DeclareListWrapperAlias{organization}{default}
+
% Auxiliary macros for list formatting directives
% ------------------------------------------------------------------
@@ -943,6 +949,7 @@
% Default used by \citename
\DeclareNameAlias{citename}{default}
+\DeclareNameWrapperAlias{citename}{default}
% Used in some citations
\DeclareNameFormat{labelname}{%
@@ -998,6 +1005,28 @@
\DeclareNameAlias{withforeword}{default}
\DeclareNameAlias{withafterword}{default}
+\DeclareNameWrapperAlias{author}{default}
+\DeclareNameWrapperAlias{bookauthor}{author}
+\DeclareNameWrapperAlias{editor}{default}
+\DeclareNameWrapperAlias{editora}{editor}
+\DeclareNameWrapperAlias{editorb}{editor}
+\DeclareNameWrapperAlias{editorc}{editor}
+\DeclareNameWrapperAlias{translator}{default}
+
+\DeclareNameWrapperAlias{byauthor}{default}
+\DeclareNameWrapperAlias{bybookauthor}{byauthor}
+\DeclareNameWrapperAlias{byeditor}{default}
+\DeclareNameWrapperAlias{byeditora}{byeditor}
+\DeclareNameWrapperAlias{byeditorb}{byeditor}
+\DeclareNameWrapperAlias{byeditorc}{byeditor}
+\DeclareNameWrapperAlias{bytranslator}{default}
+
+\DeclareNameWrapperAlias{withcommentator}{default}
+\DeclareNameWrapperAlias{withannotator}{default}
+\DeclareNameWrapperAlias{withintroduction}{default}
+\DeclareNameWrapperAlias{withforeword}{default}
+\DeclareNameWrapperAlias{withafterword}{default}
+
\DeclareFieldFormat{authortype}{#1}
\DeclareFieldFormat{editortype}{#1}
\DeclareFieldFormat{translatortype}{#1}
@@ -2963,13 +2992,10 @@
\entrydata{#1}{%
\renewbibmacro*{name:hook}[1]{%
\ifnumequal{\value{listcount}}{1}
- {\begingroup
- \mkrelatedstring%
- \lbx@initnamehook{#1}%
- \endgroup}
+ {\mkrelatedstringtext{\lbx@initnamehook{##1}}}
{}}%
\printnames[bytranslator]{translator}%
- \setunit*{\addspace\bibstring[\mkrelatedstring]{astitle}\space}%
+ \setunit*{\addspace\bibstring[\mkrelatedstringtext]{astitle}\space}%
\usebibmacro{title}%
\setunit{\addspace}%
\printtext[parens]{%
@@ -3017,7 +3043,7 @@
test {\iflistundef{publisher}}
}
{}
- {\setunit{\addspace\bibstring[\mkrelatedstring]{bypublisher}\space}%
+ {\setunit{\addspace\bibstring[\mkrelatedstringtext]{bypublisher}\space}%
\printlist{publisher}%
\setunit{\addcomma\space}%
\iflistsequal{location}{savedlocation}
@@ -3033,7 +3059,7 @@
test {\iflistundef{publisher}}
}
{}
- {\setunit{\addspace\bibstring[\mkrelatedstring]{bypublisher}\space}%
+ {\setunit{\addspace\bibstring[\mkrelatedstringtext]{bypublisher}\space}%
\printlist{publisher}%
\setunit{\addcomma\space}%
\iflistsequal{location}{savedlocation}
@@ -3041,10 +3067,7 @@
{\printlist{location}}}}}
\DeclareFieldFormat{title:hook}{%
- \begingroup
- \mkrelatedstring%
- \lbx@inittitlehook{#1}%
- \endgroup
+ \mkrelatedstringtext{\lbx@inittitlehook{#1}}%
\mkbibemph{#1}}
\newbibmacro*{related:reprintfrom}[1]{%
diff --git a/macros/latex/contrib/biblatex/latex/biblatex.sty b/macros/latex/contrib/biblatex/latex/biblatex.sty
index 22da31e261..e24c735007 100644
--- a/macros/latex/contrib/biblatex/latex/biblatex.sty
+++ b/macros/latex/contrib/biblatex/latex/biblatex.sty
@@ -12,8 +12,8 @@
% particular purpose.
% Set up the version strings here
-\def\abx@date{2020/08/23}
-\def\abx@version{3.15a}
+\def\abx@date{2020/12/31}
+\def\abx@version{3.16}
\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)}
@@ -52,6 +52,20 @@
This is a fatal error. I'm aborting now}%
\endinput}
+% The new hook management system in LaTeX 2020-10-01 and above
+% no longer guarantees that \AtBeginDocument/AfterPreamble
+% are executed in order of use.
+% Instead each use of those commands gets a 'label'
+% and code for the same label is chunked together.
+% We give our \AfterPreamble invocations a new label and set up a rule to
+% have it executed after all normal biblatex \AtBeginDocument stuff.
+% Note that begindocument is a one-time hook, so we are guaranteed
+% immediate execution when inside \begin{document}...\end{document}.
+\providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion}
+\IfFormatAtLeastTF{2020/10/01}
+ {\def\blx@AfterPreamble{\AddToHook{begindocument}[biblatex/afterpreamble]}%
+ \DeclareHookRule{begindocument}{biblatex/afterpreamble}{after}{biblatex}}
+ {\def\blx@AfterPreamble{\AfterPreamble}}
% generalised keyval interface
% define a new key (possibly with a default value)
@@ -509,8 +523,10 @@
{\let\xpg@bloaded\xpg@loaded}}
{}%
\global\let\blx@maplang\blx@maplang@polyglossia
- \def\do#1{\blx@langsetup{#1}}%
+ \def\do#1{\blx@langsetup@from@pkglist{#1}}%
\expandafter\docsvlist\expandafter{\xpg@bloaded}%
+ \def\do#1{\blx@langsetup@from@auxlist{#1}}%
+ \dolistloop\blx@lbx@auxloadlist
\ifboolexpr{
not togl {blx@autolangbib}
and
@@ -521,8 +537,10 @@
{\global\let\blx@maplang\blx@maplang@babel
\@ifpackageloaded{babel}
{% This is required for languages which are never explicitly selected
- \def\do#1{\blx@langsetup{#1}}%
+ \def\do#1{\blx@langsetup@from@pkglist{#1}}%
\expandafter\docsvlist\expandafter{\bbl@loaded}%
+ \def\do#1{\blx@langsetup@from@auxlist{#1}}%
+ \dolistloop\blx@lbx@auxloadlist
\ifboolexpr{
not togl {blx@autolangbib}
and
@@ -545,7 +563,10 @@
% babel/polyglossia has loaded the (main document) language already,
% so we need to explicitly enable our captions (abx@strings@)
% and extras (abx@extras@) now
- \toggletrue{blx@lang@captions@\blx@languagename}%
+ \ifdefstring{\blx@langhook}{captions}
+ {\blx@etb@inittoggle{blx@lang@captions@\blx@languagename}%
+ \toggletrue{blx@lang@captions@\blx@languagename}}
+ {}%
\csuse{abx@extras@\blx@languagename}%
\csuse{abx@strings@\blx@languagename}%
% avoid accidental re-initialization
@@ -637,35 +658,44 @@
in recent versions of pdfTeX, LuaTeX and XeTeX}}
{\let\blx@mdfivesum\pdf@mdfivesum}
+\newtoggle{blx@bbl@rerun@requested}
\ifundef\pdf@filemdfivesum
{\blx@warning@noline{Command '\string\pdf@filemdfivesum' undefined.\MessageBreak
Biber rerun detection may not work as expected.\MessageBreak
The command is available (via 'pdftexcmds')\MessageBreak
in recent versions of pdfTeX, LuaTeX and XeTeX}%
- \let\blx@generate@bbl@mdfivesum@found\relax
+ \let\blx@generate@bbl@mdfivesum@found\@gobble
\let\blx@generate@bbl@mdfivesum@notfound\relax
- \let\blx@aux@read@bbl@mdfivesum\@gobble
+ \let\abx@aux@read@bblrerun\relax
+ \let\abx@aux@read@bbl@mdfivesum\@gobble
\let\blx@aux@write@bbl@mdfivesum\relax
\let\blx@check@bbl@rerun@mdfivesum\relax}
{\let\blx@filemdfivesum\pdf@filemdfivesum
- \def\blx@generate@bbl@mdfivesum@found{%
- \xdef\blx@bbl@mdfivesum@new{\blx@filemdfivesum{\jobname.bbl}}}
+ \def\blx@generate@bbl@mdfivesum@found#1{%
+ \xdef\blx@bbl@mdfivesum@new{\blx@filemdfivesum{#1}}}
+ % 'nobblfile' can never be equal to any md5 hash
\def\blx@generate@bbl@mdfivesum@notfound{%
\gdef\blx@bbl@mdfivesum@new{nobblfile}}
- \def\blx@aux@read@bbl@mdfivesum{%
+ \def\abx@aux@read@bblrerun{\global\toggletrue{blx@bbl@rerun@requested}}
+
+ \def\abx@aux@read@bbl@mdfivesum{%
\gdef\blx@bbl@mdfivesum@old}
% If we need Biber to rerun, save the hash of the current .bbl.
% That way we can detect if the Biber rerun really happened when
% we run LaTeX the next time.
\def\blx@aux@write@bbl@mdfivesum{%
+ \blx@auxwrite\@mainaux{}{%
+ \string\abx@aux@read@bbl@mdfivesum{%
+ \ifundef\blx@bbl@mdfivesum@old
+ {nohash}
+ {\blx@bbl@mdfivesum@new}}}%
\iftoggle{blx@runbiber}
- {\blx@auxwrite\@mainaux{}{%
- \string\blx@aux@read@bbl@mdfivesum{\blx@bbl@mdfivesum@new}}}
+ {\blx@auxwrite\@mainaux{}{\string\abx@aux@read@bblrerun}}
{}}
% There was a Biber rerun request last time (\blx@bbl@mdfivesum@old),
@@ -673,9 +703,11 @@
% that means *no* Biber rerun happened.
% So we need to re-request a rerun.
\def\blx@check@bbl@rerun@mdfivesum{%
- \ifdefstrequal\blx@bbl@mdfivesum@old\blx@bbl@mdfivesum@new
- {\blx@logreq@active{}}
- {}}}
+ \iftoggle{blx@bbl@rerun@requested}
+ {\ifdefstrequal\blx@bbl@mdfivesum@old\blx@bbl@mdfivesum@new}
+ {\@secondoftwo}
+ {\blx@logreq@active{}}
+ {}}}
% xstring replacements
@@ -923,6 +955,9 @@
\cslet{blx@defaultrefcontexts@0}\@empty
\listadd\blx@allrefsections{0}
+% Used to track defernumbers from .aux
+\global\let\blx@localnumbers\@empty
+
% Used to track sorting name key specifications
\global\let\blx@sortingnamekeytemplates\@empty
@@ -2164,15 +2199,15 @@
\providerobustcmd*{\nohyphenation}{%
\language\blx@langwohyphens}
-% work around odd XeTeX/babel-french behaviour
+% First part of workaround for odd XeTeX/babel-french behaviour
% https://github.com/plk/biblatex/issues/979
% fix by Ulrike Fischer
-% https://tex.stackexchange.com/a/544914/
+% https://tex.stackexchange.com/a/544914/.
+% The second bit lives in blx-unicode.def.
\ifundef\XeTeXrevision
{\providerobustcmd*{\textnohyphenation}[1]{%
\bgroup\nohyphenation#1\egroup}}
- {\providerobustcmd*{\textnohyphenation}[1]{%
- \bgroup\nohyphenation#1\egroup^^^^200b}}
+ {}
\blx@regimcs{%
\setpunctfont \resetpunctfont \ifcapital \autocap \ifpunctmark
@@ -5203,6 +5238,7 @@
\do{november}%
\do{december}%
\do{langamerican}%
+ \do{langbasque}%
\do{langbrazilian}%
\do{langbulgarian}%
\do{langcatalan}%
@@ -5235,6 +5271,7 @@
\do{langturkish}%
\do{langukrainian}%
\do{fromamerican}%
+ \do{frombasque}%
\do{frombrazilian}%
\do{frombulgarian}%
\do{fromcatalan}%
@@ -5499,7 +5536,9 @@
\IfFileExists{#1}
{\blx@info@noline{... file '#1' found}%
\csuse{blx@lbxfilehook@simple@preload@#1}%
- #3\@@input\@filef@und#4%
+ #3%
+ \@@input\@filef@und
+ #4%
\csuse{blx@lbxfilehook@simple@postload@#1}%
#5%
\ifcsundef{blx@file@lbx@simple@#1}
@@ -5518,7 +5557,9 @@
\IfFileExists{#1}
{\blx@info@noline{... file '#1' found}%
\csuse{blx@lbxfilehook@once@preload@#1}%
- #3\@@input\@filef@und#4%
+ #3%
+ \@@input\@filef@und
+ #4%
\csuse{blx@lbxfilehook@once@postload@#1}%
#5%
\ifcsundef{blx@file@lbx@simple@#1}
@@ -5588,13 +5629,49 @@
\endgroup}
% {<language>}
-\def\blx@langsetup#1{%
+\protected\def\blx@langsetup#1{%
\blx@lbxinput{#1}
{\edef\blx@languagename{#1}}
{\blx@warning
{Language '#1' not supported.\MessageBreak
Using dummy definitions}}}
+\protected\def\blx@langsetup@from@pkglist#1{%
+ \global\cslet{blx@lbx@loaded@from@pkglist@#1}\@empty
+ \blx@langsetup{#1}}
+
+\protected\def\blx@langsetup@from@auxlist#1{%
+ \global\cslet{blx@lbx@loaded@from@auxlist@#1}\@empty
+ \blx@langsetup{#1}}
+
+\newcommand*{\blx@lbx@loadlist}{}
+
+\protected\def\blx@langsetup@indoc#1{%
+ \ifcsundef{blx@lbx@loaded@from@pkglist@#1}
+ {\xifinlist{#1}\blx@lbx@loadlist
+ {}
+ {\listxadd\blx@lbx@loadlist{#1}}%
+ \ifcsundef{blx@lbx@loaded@from@auxlist@#1}
+ {\ifcsundef{blx@lbx@loaded@nolistload@#1}
+ {\blx@warning@noline{%
+ No localisation for language '#1' loaded.\MessageBreak
+ Please rerun LaTeX to ensure languages can\MessageBreak
+ be requested properly}%
+ \global\cslet{blx@lbx@loaded@nolistload@#1}\@empty}
+ {}}
+ {\edef\blx@languagename{#1}}}
+ {\edef\blx@languagename{#1}}%
+}
+
+\newcommand*{\blx@lbx@auxloadlist}{}
+
+\def\abx@aux@lbx@loadrequest{%
+ \listgadd\blx@lbx@auxloadlist}
+
+\protected\def\blx@lbx@writeloaderequest#1{%
+ \blx@auxwrite\@mainaux{}{%
+ \string\abx@aux@lbx@loadrequest{#1}}}
+
% auxiliary macros
% {<field base name>}
@@ -6377,6 +6454,7 @@
\let\blx@hook@endlang\@empty
\let\blx@hook@initlang\@empty
\let\blx@imc@mainlang\@empty
+\let\blx@imc@textmainlang\@firstofone
\def\blx@hyphenreset{%
\blx@ifhyphenationundef{\blx@languagename}
{}
@@ -6403,7 +6481,7 @@
% afterreset was added in 3.9i (~2014-03-16)
% way before 3.9r (2016-04-23), which we require
\AddBabelHook{biblatex@langsetup}{afterreset}{%
- \expandafter\blx@langsetup\expandafter{\languagename}}%
+ \expandafter\blx@langsetup@indoc\expandafter{\languagename}}%
\ifdef\blx@thelangenv
{\def\blx@beglang{%
\blx@clearlang
@@ -6437,8 +6515,20 @@
{}}}
{}%
\def\blx@imc@mainlang{%
+ \ifundef\blx@warn@mainlang
+ {\blx@warning@noline{%
+ '\string\mainlang' is deprecated in favour of\MessageBreak
+ '\string\textmainlang'.%
+ \MessageBreak
+ Please consider using the new command,\MessageBreak
+ but note that the syntax is different.\MessageBreak
+ Using the old, problematic definition}%
+ \global\let\blx@warn@mainlang\@empty}
+ {}%
\expandafter\selectlanguage\expandafter{\blx@main@language}}%
- \expandafter\blx@langsetup\expandafter{\blx@main@language}%
+ \def\blx@imc@textmainlang##1{%
+ {{\expandafter\selectlanguage\expandafter{\blx@main@language}##1}}}%
+ \expandafter\blx@langsetup@from@pkglist\expandafter{\blx@main@language}%
}
\def\blx@beglang@spacefactors{\frenchspacing}
@@ -6453,12 +6543,12 @@
{\let\blx@main@language\mainbabelname}%
\ifundef\polyglossia@language@switched
{\apptocmd\select@language
- {\expandafter\blx@langsetup\expandafter{\babelname}}
+ {\expandafter\blx@langsetup@indoc\expandafter{\babelname}}
{}
{\blx@err@patch{'polyglossia' package}%
\blx@mknoautolang}}
{\appto\polyglossia@language@switched{%
- \expandafter\blx@langsetup\expandafter{\babelname}}}%
+ \expandafter\blx@langsetup@indoc\expandafter{\babelname}}}%
\ifdef\blx@thelangenv
{\def\blx@beglang{%
\blx@clearlang
@@ -6500,15 +6590,27 @@
\blx@beglang@spacefactors}}
{}}}
{}%
- \def\blx@imc@mainlang{\select@language{\blx@main@language}}%
- \expandafter\blx@langsetup\expandafter{\blx@main@language}}
+ \def\blx@imc@mainlang{%
+ \ifundef\blx@warn@mainlang
+ {\blx@warning@noline{%
+ '\string\mainlang' is deprecated in favour of\MessageBreak
+ '\string\textmainlang'.%
+ \MessageBreak
+ Please consider using the new command,\MessageBreak
+ but note that the syntax is different.\MessageBreak
+ Using the old, problematic definition}%
+ \global\let\blx@warn@mainlang\@empty}
+ {}%
+ \select@language{\blx@main@language}}%
+ \def\blx@imc@textmainlang##1{{{\select@language{\blx@main@language}##1}}}%
+ \expandafter\blx@langsetup@from@pkglist\expandafter{\blx@main@language}}
\def\blx@mknoautolang{%
\blx@lbxinput{\blx@languagename}
{}
{\blx@err@nolang{\blx@languagename}}}
-\blx@regimcs{\mainlang}
+\blx@regimcs{\mainlang \textmainlang}
\newrobustcmd*{\DeclareRedundantLanguages}[2]{%
\begingroup
@@ -8302,14 +8404,14 @@
\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}}}
- {}}%
+ \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
@@ -8549,13 +8651,18 @@
% 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.
-
+ \begingroup
+ % Test to see if there are any .aux entries with defernums (localnum)
+ % information which are no longer in the .bbl. This is to catch
+ % when .bib entries are removed when using \nocite{*}. In this case,
+ % We need another run to remove the .aux localnumber info
+ \def\do#1{\xifinlist{#1}\blx@entries{}{\blx@rerun@latex}}%
+ \dolistloop\blx@localnumbers
% 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 with \citeorder anywhere,
@@ -8603,9 +8710,16 @@
{\def\do#1{\blx@auxwrite\@mainaux{}{#1}}
\dolistloop\blx@localnumaux}}
{}%
- % Wite md5 hash of .bbl to .aux if we need a Biber rerun.
+ % Write out missing languages we still need to load
+ \forlistloop{\blx@lbx@writeloaderequest}{\blx@lbx@loadlist}%
+ % Issue rerun warning if we need to load a language babel/polyglossia
+ % hasn't told us about and that we are not loading it already from previous
+ % runs.
+ \def\do#1{\xifinlist{#1}{\blx@lbx@auxloadlist}{}{\blx@rerun@latex\listbreak}}%
+ \dolistloop\blx@lbx@loadlist
+ % Write md5 hash of .bbl to .aux if we need a Biber rerun.
% This needs to happen here and not in \blx@check@rerun together with
- % the other rerun stuff, because \AfterEndBibliography would be too
+ % the other rerun stuff, because \AfterEndDocument would be too
% late for .aux file writing.
\blx@aux@write@bbl@mdfivesum
\endgroup}
@@ -8614,6 +8728,8 @@
\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}%
+ \csgdef{blx@localnumber@#3@\detokenize{#2}}{#5}%
+ \xifinlist{\detokenize{#2}}\blx@localnumbers{}{\listxadd\blx@localnumbers{\detokenize{#2}}}%
\global\toggletrue{blx@localnumber}%
\ifblank{#5}
{}
@@ -8632,9 +8748,14 @@
% 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}} }
+ % Also, have to create localnumber again if \nocite{*} as items
+ % could have been added to the .bib file without changing the cite
+ % information in the .tex
+ {\ifboolexpr { (not togl {blx@localnumber}
+ or
+ test {\ifinlist{*}\blx@nocites})
+ 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}{%
@@ -8642,7 +8763,17 @@
\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}}}
+ {localnumber}{\blx@refcontext@context}{\abx@field@localnumber}}}
+ {}%
+ % Issue re-run message if there was no localnumber in the .aux and
+ % \nocite{*} was used because this means that an entry was added to the .bib
+ % and was not yet recorded in the .aux. We will have generated a localnumber
+ % for such a case above and now we need to re-run to make sure it's in the .aux
+ % for the next run
+ \ifboolexpr { test {\ifinlist{*}\blx@nocites}
+ and
+ not test {\ifcsdef{blx@localnumber@\the\c@refsection @\abx@field@entrykey}} }
+ {\blx@rerun@latex}
{}%
% If localnumbers were already in the .aux, add them
% again from the .aux. This prevents some cycling
@@ -8653,8 +8784,8 @@
\ifcsundef{blx@defer@\the\c@refsection @\blx@refcontext@context @\abx@field@entrykey}
{\ifundef\abx@field@localnumber
{}
- {\listxadd\blx@localnumaux{%
- \string\abx@aux@number%
+ {\listxadd\blx@localnumaux{%
+ \string\abx@aux@number%
{\the\c@instcount}%
{\abx@field@entrykey}%
{\the\c@refsection}%
@@ -8707,10 +8838,9 @@
{\InputIfFileExists{\jobname.bbl}
{\blx@info@noline{... file '\jobname.bbl' found}%
\global\toggletrue{blx@bbldone}%
- \blx@generate@bbl@mdfivesum@found}
+ \blx@generate@bbl@mdfivesum@found{\jobname.bbl}}
{\blx@info@noline{... file '\jobname.bbl' not found}%
\typeout{No file \jobname.bbl.}%
- % 'nobblfile' can never be equal to any mdfivehash
\blx@generate@bbl@mdfivesum@notfound}}
{\blx@generate@bbl@mdfivesum@notfound}%
\blx@bblend
@@ -8848,6 +8978,7 @@
\blx@kv@defkey{blx@bib1}{heading}{}
\blx@kv@defkey{blx@bib1}{env}{}
\blx@kv@defkey{blx@bib1}{title}{}
+\blx@kv@defkey{blx@bib1}{label}{}
\blx@kv@defkey{blx@bib1}{prenote}{}
\blx@kv@defkey{blx@bib1}{postnote}{}
\blx@kv@defkey{blx@bib1}{omitnumbers}[]{}
@@ -8874,6 +9005,7 @@
\blx@kv@defkey{blx@biblist1}{heading}{}
\blx@kv@defkey{blx@biblist1}{env}{}
\blx@kv@defkey{blx@biblist1}{title}{}
+\blx@kv@defkey{blx@biblist1}{label}{}
\blx@kv@defkey{blx@biblist1}{prenote}{}
\blx@kv@defkey{blx@biblist1}{postnote}{}
@@ -9079,6 +9211,10 @@
\blx@kv@defkey{blx@bib2}{title}{\def\blx@thetitle{#1}}
\blx@kv@defkey{blx@biblist2}{title}{\def\blx@thetitle{#1}}
+\blx@kv@defkey{blx@bhd}{label}{\def\blx@thelabel{#1}}
+\blx@kv@defkey{blx@bib2}{label}{\def\blx@thelabel{#1}}
+\blx@kv@defkey{blx@biblist2}{label}{\def\blx@thelabel{#1}}
+
\cslet{blx@note@}\@empty
\def\blx@key@bibnote#1#2{%
\ifcsundef{blx@note@#2}
@@ -9168,10 +9304,12 @@
\def\blx@printbibheading[#1]{%
\let\blx@theheading\blx@default@theheading
\let\blx@thetitle\blx@default@thetitle
+ \undef\blx@thelabel
\blx@safe@actives
\blx@kv@setkeys{blx@bhd}{#1}%
\blx@rest@actives
\blx@bibheading\blx@theheading\blx@thetitle
+ \blx@biblabel\blx@thelabel
\endgroup}
% We use this to determine whether an explicit value for resetnumbers is passed to
@@ -9196,6 +9334,7 @@
\let\blx@theprenote\blx@default@theprenote
\let\blx@thepostnote\blx@default@thepostnote
\let\blx@thetitle\blx@default@thetitle
+ \undef\blx@thelabel
% 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
@@ -9250,6 +9389,7 @@
\let\blx@theprenote\blx@default@theprenote
\let\blx@thepostnote\blx@default@thepostnote
\let\blx@thetitle\blx@default@thetitle
+ \undef\blx@thelabel
\c@refsection\z@
\blx@safe@actives
\blx@kv@setkeys{blx@bbs}{#1}%
@@ -9289,6 +9429,7 @@
\let\blx@theprenote\blx@default@theprenote
\let\blx@thepostnote\blx@default@thepostnote
\let\blx@thetitle\blx@default@thetitle
+ \undef\blx@thelabel
\c@refsegment\@ne
\blx@safe@actives
\blx@kv@setkeys{blx@bbg}{#1}%
@@ -9333,6 +9474,7 @@
\let\blx@theprenote\blx@default@theprenote
\let\blx@thepostnote\blx@default@thepostnote
\let\blx@thetitle\blx@default@thetitle
+ \undef\blx@thelabel
\c@refsection\z@
\blx@safe@actives
\blx@kv@setkeys{blx@bbc}{#1}%
@@ -9361,6 +9503,7 @@
% {<entrykey>,...}
\def\blx@bibliography{%
\blx@bibheading\blx@theheading\blx@thetitle
+ \blx@biblabel\blx@thelabel
\blx@bibnote\blx@theprenote
\begingroup
\blx@bibinit
@@ -9403,6 +9546,11 @@
\let\newrefsection\blx@newrefsection
\let\newrefsegment\blx@newrefsegment}
+\def\blx@biblabel#1{%
+ \ifdefvoid#1
+ {}
+ {\expandafter\label\expandafter{#1}}}
+
\def\blx@bibnote#1{%
\ifdefempty#1
{}
@@ -9631,6 +9779,7 @@
\let\blx@theprenote\@empty
\let\blx@thepostnote\@empty
\let\blx@thetitle\@empty
+ \undef\blx@thelabel
% 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
@@ -9713,6 +9862,7 @@
\@restonecolfalse
\fi
\blx@bibheading\blx@theheading\blx@thetitle
+ \blx@biblabel\blx@thelabel
\blx@bibnote\blx@theprenote
\begingroup
\blx@bibinit
@@ -9900,6 +10050,7 @@
\let\blx@tempc\@empty%
\def\blx@tempd{global}%
\def\blx@tempe{global}%
+ \blx@kv@setkeys{blx@assignrefcontextmeta}{#2}%
\blx@kv@setkeys{blx@assignrefcontext}{#2}%
\def\do##1{%
\listxadd\blx@assignedrefcontextkeywlist{##1}%
@@ -9919,6 +10070,7 @@
\let\blx@tempc\@empty%
\def\blx@tempd{global}%
\def\blx@tempe{global}%
+ \blx@kv@setkeys{blx@assignrefcontextmeta}{#2}%
\blx@kv@setkeys{blx@assignrefcontext}{#2}%
\def\do##1{%
\listxadd\blx@assignedrefcontextcatlist{##1}%
@@ -9938,22 +10090,38 @@
\let\blx@tempc\@empty%
\def\blx@tempd{global}%
\def\blx@tempe{global}%
+ \blx@kv@setkeys{blx@assignrefcontextmeta}{#2}%
\blx@kv@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}}
+% This makes sure that named refcontexts set options first
+% Note that the docs say that "name=default" selects the global default
+% refcontext and this is because this won't set anything and the defaults
+% in the above macros will take effect.
+\blx@kv@defkey{blx@assignrefcontextmeta}{name}{%
+ \begingroup
+ \edef\blx@tempf{\endgroup%
+ \noexpand\blx@kv@setkeys{blx@assignrefcontext}{\csuse{blx@refcontext@name@#1}}}%
+ \blx@tempf}
+\blx@kv@defkey{blx@assignrefcontextmeta}{nametemplates}{}
+\blx@kv@defkey{blx@assignrefcontextmeta}{sorting}{}
+\blx@kv@defkey{blx@assignrefcontextmeta}{sortingnamekeytemplatename}{}
+\blx@kv@defkey{blx@assignrefcontextmeta}{labelprefix}{}
+\blx@kv@defkey{blx@assignrefcontextmeta}{uniquenametemplatename}{}
+\blx@kv@defkey{blx@assignrefcontextmeta}{labelalphanametemplatename}{}
+
% Meta option to set all name template options
+\blx@kv@defkey{blx@assignrefcontext}{name}{}
\blx@kv@defkey{blx@assignrefcontext}{nametemplates}{%
\def\blx@tempb{#1}%
\def\blx@tempd{#1}%
\def\blx@tempe{#1}}
-
\blx@kv@defkey{blx@assignrefcontext}{sorting}{\def\blx@tempa{#1}}
\blx@kv@defkey{blx@assignrefcontext}{sortingnamekeytemplatename}{\def\blx@tempb{#1}}
-\blx@kv@defkey{blx@assignrefcontext}{labelprefix}{%
- \edef\blx@tempc{\blx@mdfivesum{#1}}}
+\blx@kv@defkey{blx@assignrefcontext}{labelprefix}{\edef\blx@tempc{\blx@mdfivesum{#1}}}
\blx@kv@defkey{blx@assignrefcontext}{uniquenametemplatename}{\def\blx@tempd{#1}}
\blx@kv@defkey{blx@assignrefcontext}{labelalphanametemplatename}{\def\blx@tempe{#1}}
@@ -10408,7 +10576,7 @@
{\blx@error
{Category '#1' not declared}
{Use \string\DeclareBibliographyCategory\space to declare}}
- {\AfterPreamble{%
+ {\blx@AfterPreamble{%
\blx@xsanitizeafter{\forcsvlist{\blx@addtocategory{#1}}}{#2}}}}
% {<category>}{<entrykey>,...}
@@ -10692,6 +10860,7 @@
\blx@citation@all}
\def\blx@citation@all{%
+ \blx@auxwrite\@mainaux{}{\string\abx@aux@nociteall}%
\ifbool{citerequest}
{\blx@bibreq{*}%
\global\csletcs
@@ -10702,6 +10871,9 @@
{}}
{}}
+\def\abx@aux@nociteall{%
+ \listgadd\blx@nocites{*}}
+
\protected\def\blx@bibreq#1{%
\begingroup
\blx@xmlsanitizeafter{\def\blx@tempa}{#1}%
@@ -10746,7 +10918,7 @@
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@AfterPreamble{\blx@setreq{\blx@tempa}{\blx@tempb}}}%
\blx@tempa}%
\endgroup
\@esphack}
@@ -11468,7 +11640,7 @@
\def\blx@nocite#1{%
\@bsphack
- \AfterPreamble{%
+ \blx@AfterPreamble{%
\ifstrequal{*}{#1}
{\blx@nocitation@all}
{\blx@xsanitizeafter{\forcsvlist\blx@nocite@do}{#1}}}%
@@ -15272,34 +15444,75 @@
\csdef{blx@opt@casechanger@auto}{%
- \RequirePackage{expl3}[2020/04/06]%
- \@ifpackagelater{expl3}{2020/04/06}
- {\blx@info{expl3\MessageBreak\csuse{ver@expl3.sty}\MessageBreak
- is new enough (at least 2020/04/06),\MessageBreak
- setting 'casechanger=expl3'}%
- \csuse{blx@opt@casechanger@expl3}}
- {\blx@info{expl3\MessageBreak\csuse{ver@expl3.sty}\MessageBreak
- is too old (older than 2020/04/06),\MessageBreak
- setting 'casechanger=latex2e'}%
+ \ifdefstring{\blx@texencoding}{utf8}
+ {\blx@info@noline{Document encoding is UTF8 ...}%
+ \RequirePackage{expl3}[2020/04/06]%
+ \@ifpackagelater{expl3}{2020/04/06}
+ {\blx@info@noline{... and expl3\MessageBreak\csuse{ver@expl3.sty}\MessageBreak
+ is new enough (at least 2020/04/06),\MessageBreak
+ setting 'casechanger=expl3'}%
+ \csuse{blx@opt@casechanger@expl3}}
+ {\blx@info@noline{... but expl3\MessageBreak\csuse{ver@expl3.sty}\MessageBreak
+ is too old (older than 2020/04/06),\MessageBreak
+ setting 'casechanger=latex2e'}%
+ \csuse{blx@opt@casechanger@latex2e}}}
+ {\blx@info@noline{%
+ Document encoding not detected as UTF8.\MessageBreak
+ Setting 'casechanger=latex2e'}%
\csuse{blx@opt@casechanger@latex2e}}}
\csdef{blx@opt@casechanger@latex2e}{%
- \blx@inputonce{blx-case-latex2e.def}
- {LaTeX2e (legacy) case changing code}
- {}{}{}{}}
+ \RequirePackage{blx-case-latex2e}}
\csletcs{blx@opt@casechanger@2e}{blx@opt@casechanger@latex2e}
-% Apparently neither \input nor \blx@inputonce ever pops the
-% \ExplSyntaxOff from \ProvidesExplFile, so we do that ourselves.
\csdef{blx@opt@casechanger@expl3}{%
- \blx@inputonce{blx-case-expl3.def}
- {expl3 case changing code}
- {}{\ExplSyntaxOff}{}{}}
+ \ifdefstring{\blx@texencoding}{utf8}
+ {}
+ {\blx@warning@noline{%
+ The expl3 case changer code should only be used\MessageBreak
+ with UTF-8 encoding.\MessageBreak
+ But the document encoding was detected as
+ '\blx@texencoding'.\MessageBreak
+ Case changing macros may break\MessageBreak
+ if used with non-ASCII characters}}%
+ \RequirePackage{blx-case-expl3}}
\csletcs{blx@opt@casechanger@3}{blx@opt@casechanger@expl3}
% default to auto
\csletcs{blx@deferoption@casechanger}{blx@opt@casechanger@auto}
+% This is a bit unfortunate, but we need some more definitions after
+% loading the case changing code.
+\def\blx@casechange@postload{%
+ % Language fallback, in order:
+ % * explicit option language=<lang>, which overrides everything
+ % * langid field of entry
+ % * babel/polyglossia lang
+ % * main document lang (we should never reach this)
+ % * <empty> (we should *definitely* never reach this)
+ % Everything here is expandable so that
+ % \blx@mksc@lang expands to the language name.
+ \def\blx@mksc@lang{%
+ \ifundef\blx@forcelanguagename
+ {\ifundef\abx@field@langid
+ {\ifundef\blx@languagename
+ {\ifundef\blx@main@language
+ {}
+ {\blx@main@language}}
+ {\blx@languagename}}
+ {\abx@field@langid}}
+ {\blx@forcelanguagename}}%
+ %
+ \DeclareCaseLangs{%
+ american,british,canadian,
+ english,USenglish,UKenglish,
+ australian,newzealand}%
+ % Textcase defines \NoCaseChange as \let\NoCaseChange\@firstofone
+ \ifundef\NoCaseChange
+ {\let\NoCaseChange\@firstofone}
+ {}}
+% That's it for the case change code
+
% Set defaults
\blx@kv@setkeys{blx@opt@ldt}{style=numeric}
\blx@kv@setkeys{blx@opt@pre}{%
@@ -15340,43 +15553,6 @@
% Process load-time options
\ProcessOptions*
-% this ultimately loads either
-% blx-case-expl3.def or blx-case-latex2e.def
-\blx@deferoption@casechanger
-
-% This is a bit unfortunate, but we need some more definitions here.
-
-% Language fallback, in order:
-% * explicit option language=<lang>, which overrides everything
-% * langid field of entry
-% * babel/polyglossia lang
-% * main document lang (we should never reach this)
-% * <empty> (we should *definitely* never reach this)
-% Everything here is expandable so that
-% \blx@mksc@lang expands to the language name.
-\def\blx@mksc@lang{%
- \ifundef\blx@forcelanguagename
- {\ifundef\abx@field@langid
- {\ifundef\blx@languagename
- {\ifundef\blx@main@language
- {}
- {\blx@main@language}}
- {\blx@languagename}}
- {\abx@field@langid}}
- {\blx@forcelanguagename}}
-
-\DeclareCaseLangs{%
- american,british,canadian,
- english,USenglish,UKenglish,
- australian,newzealand}
-
-
-% Textcase defines \NoCaseChange as \let\NoCaseChange\@firstofone
-\ifundef\NoCaseChange
- {\let\NoCaseChange\@firstofone}
- {}
-
-% That's it for the case change code
% Switch to BibTeX support if requested
\iftoggle{blx@bibtex}
@@ -15542,6 +15718,10 @@
\AtBeginDocument{%
\blx@auxwrite\@mainaux{}{\string\abx@aux@refcontext{\blx@refcontext@context}}
\blx@checkencoding
+ % this ultimately loads either
+ % blx-case-expl3.def or blx-case-latex2e.def
+ \blx@deferoption@casechanger
+ \blx@casechange@postload
\if@filesw
\blx@ctrlwrite
\fi
diff --git a/macros/latex/contrib/biblatex/latex/blx-bibtex.def b/macros/latex/contrib/biblatex/latex/blx-bibtex.def
index 03d6781131..956b4708c5 100644
--- a/macros/latex/contrib/biblatex/latex/blx-bibtex.def
+++ b/macros/latex/contrib/biblatex/latex/blx-bibtex.def
@@ -215,6 +215,7 @@
\patchcmd{\blx@bblinput}{\blx@bblfile}{\blx@bblfile\blx@bblsecs}{}{}
+
\def\blx@bblfile{%
\blx@secinit
\begingroup
@@ -227,13 +228,18 @@
\blx@ifsigned{\blx@auxfile}{bbl}
{\InputIfFileExists{\blx@auxfile.bbl}
{\blx@info@noline{... file '\blx@auxfile.bbl' found}%
- \global\toggletrue{blx@bbldone}}
+ \global\toggletrue{blx@bbldone}%
+ \blx@generate@bbl@mdfivesum@found{\blx@auxfile.bbl}}
{\blx@info@noline{... file '\blx@auxfile.bbl' not found}%
\typeout{No file \blx@auxfile.bbl.}%
- \global\togglefalse{blx@bbldone}}}
+ \global\togglefalse{blx@bbldone}%
+ \blx@generate@bbl@mdfivesum@notfound}}
{}%
\blx@bblend
\endgroup
+ % Check if Biber rerun was not carried out.
+ % If so, ask for it again.
+ \blx@check@bbl@rerun@mdfivesum
\csnumgdef{blx@labelnumber@\the\c@refsection}{0}}
\def\blx@bblsecs{%
diff --git a/macros/latex/contrib/biblatex/latex/blx-case-expl3.def b/macros/latex/contrib/biblatex/latex/blx-case-expl3.sty
index e9b7f23289..e90a4a7c11 100644
--- a/macros/latex/contrib/biblatex/latex/blx-case-expl3.def
+++ b/macros/latex/contrib/biblatex/latex/blx-case-expl3.sty
@@ -1,8 +1,29 @@
\RequirePackage{expl3}[2020/04/06]
\RequirePackage{xparse}
-\ProvidesExplFile {blx-case-expl3} {\abx@date} {\abx@version}
+\ProvidesExplPackage {blx-case-expl3} {\abx@date} {\abx@version}
{expl3 case changing code for biblatex}
+
+% helper macros to work around babel \languagename catcode weirdness
+\cs_new:Npn \__biblatex_clist_put_detokenized_left:Nn #1 #2
+ {
+ \clist_put_left:No #1 { \detokenize{#2} }
+ }
+
+\cs_generate_variant:Nn \__biblatex_clist_put_detokenized_left:Nn { Ne }
+
+
+\prg_new_conditional:Npnn \__biblatex_clist_if_detokenized_in:Nn #1#2 { TF }
+ {
+ \clist_if_in:NoTF #1 { \detokenize{#2} }
+ {\prg_return_true:}
+ {\prg_return_false:}
+ }
+
+\prg_generate_conditional_variant:Nnn \__biblatex_clist_if_detokenized_in:Nn {Ne} {TF}
+
+
+
% Map for babel/polyglossia names
% to BCP-47-like l3text names.
% We only need maps for l3text names that do something
@@ -209,8 +230,6 @@
}
-\cs_generate_variant:Nn \clist_if_in:NnTF { NxTF }
-
\cs_generate_variant:Nn \biblatex_text_sentencecase:nn { Vo, xo }
% If \DeclareCaseLangs says we should apply sentence casing,
@@ -222,7 +241,7 @@
{
\IfBooleanTF {#1}
{
- \clist_if_in:NxTF
+ \__biblatex_clist_if_detokenized_in:NeTF
\l__biblatex_caselangs_clist { \blx@mksc@lang }
{
\biblatex_text_sentencecase:xo { \blx@mksc@lang }
@@ -244,19 +263,18 @@
{
\IfBooleanF {#1}
{ \clist_clear:N \l__biblatex_caselangs_clist }
- \clist_put_left:Nn \l__biblatex_caselangs_clist {#2}
+ \__biblatex_clist_put_detokenized_left:Ne
+ \l__biblatex_caselangs_clist {#2}
}
% \DeclareCaseLangs invocation is in biblatex.sty
-
\NewDocumentCommand \ifcaselang {O{\blx@languagename}}
{
- \clist_if_in:NxTF \l__biblatex_caselangs_clist {#1}
+ \__biblatex_clist_if_detokenized_in:NeTF \l__biblatex_caselangs_clist {#1}
}
-
\msg_new:nnnn { biblatex } { invalid-value-bibtexcaseprotection }
{ Invalid~value~'#1'~for~option~'bibtexcaseprotection'. }
{ Valid~values~for~'bibtexcaseprotection'~are~'true'~and~'false'. }
diff --git a/macros/latex/contrib/biblatex/latex/blx-case-latex2e.def b/macros/latex/contrib/biblatex/latex/blx-case-latex2e.sty
index 85641d2e66..5aede0c0bb 100644
--- a/macros/latex/contrib/biblatex/latex/blx-case-latex2e.def
+++ b/macros/latex/contrib/biblatex/latex/blx-case-latex2e.sty
@@ -1,6 +1,41 @@
-\ProvidesFile{blx-case-latex2e.def}
+\ProvidesPackage{blx-case-latex2e}
[\abx@cptid]
+% auxiliary macros
+% babel's \languagename has weird catcodes,
+% so we \detokenize our language names
+
+\def\blx@listgadd@switched#1#2{\listgadd{#2}{#1}}
+
+\ifundef\expanded
+ {\protected\def\blx@deifinlist#1{%
+ \begingroup
+ \edef\blx@tempa{\endgroup
+ \blx@deifinlist@i{#1}}%
+ \blx@tempa}%
+ \protected\def\blx@deifinlist@i#1{%
+ \expandafter\ifinlist\expandafter{\detokenize{#1}}}%
+ %
+ \protected\def\blx@listdxadd@switched#1{%
+ \begingroup
+ \edef\blx@tempa{\endgroup
+ \blx@listdxadd@switched@i{#1}}%
+ \blx@tempa}%
+ \protected\def\blx@listdxadd@switched@i#1{%
+ \expandafter\blx@listgadd@switched\expandafter{\detokenize{#1}}}}
+ {\def\blx@deifinlist#1{%
+ \expandafter\expandafter\expandafter\ifinlist
+ \expandafter\expandafter\expandafter{%
+ \expandafter\detokenize\expandafter{\expanded{#1}}}}%
+ %
+ \def\blx@listdxadd@switched#1{%
+ \expandafter\expandafter\expandafter\blx@listgadd@switched
+ \expandafter\expandafter\expandafter{%
+ \expandafter\detokenize\expandafter{\expanded{#1}}}}}
+
+\def\blx@listdxadd#1#2{\blx@listdxadd@switched{#2}{#1}}
+
+
% we don't have l3text's (pseudo)BCP47 language codes here
\newrobustcmd*{\DeclareBabelToExplLanguageMapping}[2]{%
\blx@warning{The command '\string\DeclareBabelToExplLanguageMapping'%
@@ -108,10 +143,11 @@
\newrobustcmd*{\MakeSentenceCase}{%
\@ifstar\blx@mksc@i\blx@mksc@ii}
+
% \blx@cmksc@lang is defined in biblatex.sty
% it expands to the applicable language for the title field
\def\blx@mksc@i{%
- \xifinlist\blx@mksc@lang\blx@cmksc@lang
+ \blx@deifinlist\blx@mksc@lang\blx@cmksc@lang
{\blx@mksc@ii}
{\@firstofone}}
@@ -280,11 +316,11 @@
\def\blx@defcaselangs#1{%
\ifblank{#1}
{}
- {\forcsvlist{\listgadd\blx@cmksc@lang}{#1}}}
+ {\forcsvlist{\blx@listdxadd\blx@cmksc@lang}{#1}}}
% \DeclareCaseLangs invocation is in biblatex.sty
\newrobustcmd*{\ifcaselang}[1][\blx@languagename]{%
- \xifinlist{#1}\blx@cmksc@lang}
+ \blx@deifinlist{#1}\blx@cmksc@lang}
\endinput
diff --git a/macros/latex/contrib/biblatex/latex/blx-compat.def b/macros/latex/contrib/biblatex/latex/blx-compat.def
index 546f16af43..46272f181f 100644
--- a/macros/latex/contrib/biblatex/latex/blx-compat.def
+++ b/macros/latex/contrib/biblatex/latex/blx-compat.def
@@ -351,5 +351,9 @@
Please use '\string\mkdaterangeisoextra'}%
\mkdaterangeisoextra}
+% 3.16
+% deprecate \mainlang for \textmainlang
+% and \mkrelatedstring for \mkrelatedstringtext
+\newcommand{\mkrelatedstring}{\mainlang}
\endinput
diff --git a/macros/latex/contrib/biblatex/latex/blx-dm.def b/macros/latex/contrib/biblatex/latex/blx-dm.def
index 0667b577ae..cb23e20c5f 100644
--- a/macros/latex/contrib/biblatex/latex/blx-dm.def
+++ b/macros/latex/contrib/biblatex/latex/blx-dm.def
@@ -1464,7 +1464,7 @@
}
}
-\DeclareDatamodelConstraints[book,mvbook,mvcollection,mvreference]{
+\DeclareDatamodelConstraints[book,mvbook]{
\constraint[type=mandatory]{
\constraintfield{author}
\constraintfield{title}
@@ -1489,7 +1489,7 @@
}
}
-\DeclareDatamodelConstraints[collection,reference]{
+\DeclareDatamodelConstraints[collection,reference,mvcollection,mvreference]{
\constraint[type=mandatory]{
\constraintfield{editor}
\constraintfield{title}
@@ -1598,12 +1598,6 @@
\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-unicode.def b/macros/latex/contrib/biblatex/latex/blx-unicode.def
index 01009c028c..12eabfe98b 100644
--- a/macros/latex/contrib/biblatex/latex/blx-unicode.def
+++ b/macros/latex/contrib/biblatex/latex/blx-unicode.def
@@ -32,6 +32,20 @@
\closein\blx@bcfin
\endgroup
+% Second part of workaround for odd XeTeX/babel-french behaviour
+% https://github.com/plk/biblatex/issues/979
+% fix by Ulrike Fischer
+% https://tex.stackexchange.com/a/544914/.
+% The first bit lives in biblatex.sty.
+% At some point we may want to consider providing a
+% blx-unicode-xetex and a blx-unicode-lualatex
+% both loading a blx-unicode-generic.
+% For now this test is enough.
+\ifundef\XeTeXrevision
+ {}
+ {\providerobustcmd*{\textnohyphenation}[1]{%
+ \bgroup\nohyphenation#1\egroup^^^^200b}}
+
\appto\blx@setfrcodes{%
% … should probably have dot spacefactor, but pdfLaTeX
% makes it a period, so we have this here for consistency
diff --git a/macros/latex/contrib/biblatex/latex/lbx/basque.lbx b/macros/latex/contrib/biblatex/latex/lbx/basque.lbx
new file mode 100644
index 0000000000..6263081e97
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/lbx/basque.lbx
@@ -0,0 +1,480 @@
+\ProvidesFile{basque.lbx}
+[\abx@lbxid]
+
+\DeclareRedundantLanguages{basque}{basque}
+
+\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\mkbibmascord#1{\stripzeros{#1}\adddot}%
+ %\protected\def\mkbibfemord#1{\stripzeros{#1}\sptext{a}}%
+ \protected\def\mkbibfemord#1{\stripzeros{#1}\adddot}%
+ \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}\mkyearzeros{\thefield{#1}}}}%
+ \protected\def\mkbibdateshort#1#2#3{%
+ \iffieldundef{#1}
+ {}
+ {\mkdayzeros{\thefield{#1}}%
+ \iffieldundef{#2}{}{\mbox{-}}}%
+ \iffieldundef{#2}
+ {}
+ {\mkmonthzeros{\thefield{#2}}%
+ \iffieldundef{#1}{}{\mbox{-}}}%
+ \iffieldbibstring{#3}
+ {\bibstring{\thefield{#3}}}
+ \stripzeros{\thefield{#3}}}%
+ \savecommand\mkdaterangeterse
+ \protected\def\mkdaterangeterse{%
+ \BibliographyWarning{%
+ Date format 'terse' not applicable to\MessageBreak
+ Spanish dates. Using format 'short' instead}%
+ \mkdaterangefull{short}}%
+ \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 = {{Bibliografia}{Bibliografia}},%
+ references = {{Erreferentziak}{Erreferentziak}},%
+ shorthands = {{Laburduren zerrenda}{Laburdurak}},%
+ editor = {{editorea}{ed\adddot}},%
+ editors = {{editoreak}{edk\adddot}},%
+ compiler = {{biltzailea}{biltz\adddot}},%
+ compilers = {{biltzaileak}{biltzk\adddot}},%
+ redactor = {{erredaktorea}{err\adddot}},%
+ redactors = {{erredakotreak}{errk\adddot}},%
+ reviser = {{orraztailea}{orr\adddot}},%
+ revisers = {{orraztaileak}{orrk\adddot}},%
+ founder = {{sortzailea}{sor\adddot}},%
+ founders = {{sortzaileak}{sork\adddot}},%
+ continuator = {{jarraitzailea}{jarr\adddot}},%
+ continuators = {{jarraitzaileak}{jarrk\adddot}},%
+ collaborator = {{kolaboratzailea}{kolab\adddot}},%
+ collaborators = {{kolaboratzaileak}{kolabk\adddot}},%
+ translator = {{itzulpena}{itz\adddot}},%
+ translators = {{itzulpena}{itz\adddot}},%
+ commentator = {{iruzkingilea}{irzgl\adddot}},%
+ commentators = {{iruzkingileak}{irzglk\adddot}},%
+ annotator = {{ohargilea}{ohr\adddot}},%
+ annotators = {{ohargileak}{ohrk\adddot}},%
+ commentary = {{iruzkina}{ir\adddot}},%
+ annotations = {{oharrak}{ohk\adddot}},%
+ introduction = {{sarrera}{sar\adddot}},%
+ foreword = {{hitzaurrea}{hitzaur\adddot}},%
+ afterword = {{hitzatzea}{hitzatz\adddot}},%
+ editortr = {{edizioa eta \lbx@sfromlang\ itzulpena}{ed\adddotspace eta \lbx@sfromlang\ itz\adddot}},%
+ editorstr = {{edizioa eta \lbx@sfromlang\ itzulpena}{ed\adddotspace eta \lbx@sfromlang\ itz\adddot}},%
+ editorco = {{edizioa eta iruzkinak}{ed\adddotspace eta irk\adddot}},%
+ editorsco = {{edizioa eta iruzkinak}{ed\adddotspace eta irk\adddot}},%
+ editoran = {{edizioa eta oharrak}{ed\adddotspace eta ohk\adddot}},%
+ editorsan = {{edizioa eta oharrak}{ed\adddotspace eta ohk\adddot}},%
+ editorin = {{edizioa eta sarrera}{ed\adddotspace eta sar\adddot}},%
+ editorsin = {{edizioa eta sarrera}{ed\adddotspace eta sar\adddot}},%
+ editorfo = {{edizioa eta hitzaurrea}{ed\adddotspace eta hitzaur\adddot}},%
+ editorsfo = {{edizioa eta hitzaurrea}{ed\adddotspace eta hitzaur\adddot}},%
+ editoraf = {{edizioa eta hitzatzea}{ed\adddotspace eta hitzatz\adddot}},%
+ editorsaf = {{edizioa eta hitzatzea}{ed\adddotspace eta hitzatz\adddot}},%
+ editortrco = {{edizioa, \lbx@sfromlang\ itzulpena eta iruzkinak}{ed.,\addabbrvspace \lbx@sfromlang\ itz\adddotspace eta irzk\adddot}},%
+ editorstrco = {{edizioa, \lbx@sfromlang\ itzulpena eta iruzkinak}{ed.,\addabbrvspace \lbx@sfromlang\ itz\adddotspace eta irzk\adddot}},%
+ editortran = {{edizioa, \lbx@sfromlang\ itzulpena eta oharrak}{ed.,\addabbrvspace \lbx@sfromlang\ itz\adddotspace eta ohk\adddot}},%
+ editorstran = {{edizioa, \lbx@sfromlang\ itzulpena eta oharrak}{ed.,\addabbrvspace \lbx@sfromlang\ itz\adddotspace eta ohk\adddot}},%
+ editortrin = {{edizioa, \lbx@sfromlang\ itzulpena eta sarrera}{ed.,\addabbrvspace \lbx@sfromlang\ itz\adddotspace eta sar\adddot}},%
+ editorstrin = {{edizioa, \lbx@sfromlang\ itzulpena eta sarrera}{ed.,\addabbrvspace \lbx@sfromlang\ itz\adddotspace eta sar\adddot}},%
+ editortrfo = {{edizioa, \lbx@sfromlang\ itzulpena eta hitzaurrea}{ed.,\addabbrvspace \lbx@sfromlang\ itz\adddotspace eta hitzaur\adddot}},%
+ editorstrfo = {{edizioak, \lbx@sfromlang\ itzulpenak eta hitzaurrea}{edk.,\addabbrvspace \lbx@sfromlang\ itzk\adddotspace eta hitzaur\adddot}},%
+ editortraf = {{edizioa, \lbx@sfromlang\ itzulpena eta hitzatzea}{ed.,\addabbrvspace \lbx@sfromlang\ itz\adddotspace eta hitzatz\adddot}},%
+ editorstraf = {{edizioak, \lbx@sfromlang\ itzulpenak eta hitzatzea}{edk.,\addabbrvspace \lbx@sfromlang\ itzk\adddotspace eta hitzatz\adddot}},%
+ editorcoin = {{edizioa, iruzkinak eta sarrera}{ed.,\addabbrvspace irzk\adddotspace eta sar\adddot}},%
+ editorscoin = {{edizioak, iruzkinak eta sarrera}{edk.,\addabbrvspace irzk\adddotspace eta sar\adddot}},%
+ editorcofo = {{edizioa, iruzkinak eta hitzaurrea}{ed.,\addabbrvspace irzk\adddotspace eta hitzaur\adddot}},%
+ editorscofo = {{edizioak, iruzkinak eta hitzaurrea}{edk.,\addabbrvspace irzk\adddotspace eta hitzaur\adddot}},%
+ editorcoaf = {{edizioa, iruzkinak eta hitzatzea}{ed.,\addabbrvspace irzk\adddotspace eta hitzatz\adddot}},%
+ editorscoaf = {{edizioak, iruzkinak eta hitzatzea}{edk.,\addabbrvspace irzk\adddotspace eta hitzatz\adddot}},%
+ editoranin = {{edizioa, oharrak eta sarrera}{ed.,\addabbrvspace ohk\adddotspace eta sar\adddot}},%
+ editorsanin = {{edizioak, oharrak eta sarrera}{edk.,\addabbrvspace ohk\adddotspace eta sar\adddot}},%
+ editoranfo = {{edizioa, oharrak eta hitzaurrea}{ed.,\addabbrvspace ohk\adddotspace eta hitzatz\adddot}},%
+ editorsanfo = {{edizioak, oharrak eta hitzaurrea}{edk.,\addabbrvspace ohk\adddotspace eta hitzatz\adddot}},%
+ editoranaf = {{edizioa, oharrak eta hitzatzea}{ed.,\addabbrvspace ohk\adddotspace eta hitzatz\adddot}},%
+ editorsanaf = {{edizioak, oharrak eta hitzatzea}{edk.,\addabbrvspace ohk\adddotspace eta hitzatz\adddot}},%
+ editortrcoin = {{edizioa, \lbx@sfromlang\ itzulpena, iruzkinak eta sarrera}{ed.,\addabbrvspace \lbx@sfromlang\ itz\adddot,\addabbrvspace irzk\adddotspace eta sar\adddot}},%
+ editorstrcoin = {{edizioak, \lbx@sfromlang\ itzulpenak, iruzkinak eta sarrera}{edk.,\addabbrvspace \lbx@sfromlang\ itzk\adddot,\addabbrvspace irzk\adddotspace eta sar\adddot}},%
+ editortrcofo = {{edizioa, \lbx@sfromlang\ itzulpena, iruzkinak eta hitzaurrea}{ed.,\addabbrvspace \lbx@sfromlang\ itz\adddot,\addabbrvspace irzk\adddotspace eta hitzaur\adddot}},%
+ editorstrcofo = {{edizioak, \lbx@sfromlang\ itzulpenak, iruzkinak eta hitzaurrea}{edk.,\addabbrvspace \lbx@sfromlang\ itzk\adddot,\addabbrvspace irzk\adddotspace eta hitzaur\adddot}},%
+ editortrcoaf = {{edizioa, \lbx@sfromlang\ itzulpena, iruzkinak eta hitzatzea}{ed.,\addabbrvspace \lbx@sfromlang\ itz\adddot,\addabbrvspace irzk\adddotspace eta hitzatz\adddot}},%
+ editorstrcoaf = {{edizioak, \lbx@sfromlang\ itzulpenak, iruzkinak eta hitzatzea}{edk.,\addabbrvspace \lbx@sfromlang\ itzk\adddot,\addabbrvspace irzk\adddotspace eta hitzatz\adddot}},%
+ editortranin = {{edizioa, \lbx@sfromlang\ itzulpena, sarrera eta oharrak}{ed.,\addabbrvspace \lbx@sfromlang\ itz\adddot,\addabbrvspace sar\adddotspace eta ohk\adddot}},%
+ editorstranin = {{edizioak, \lbx@sfromlang\ itzulpenak, sarrera eta oharrak}{edk.,\addabbrvspace \lbx@sfromlang\ itzk\adddot,\addabbrvspace sar\adddotspace eta ohk\adddot}},%
+ editortranfo = {{edizioa, \lbx@sfromlang\ itzulpena, hitzaurrea eta oharrak}{ed.,\addabbrvspace \lbx@sfromlang\ itz\adddot,\addabbrvspace hitzaur\adddotspace eta ohk\adddot}},%
+ editorstranfo = {{edizioak, \lbx@sfromlang\ itzulpenak, hitzaurrea eta oharrak}{edk.,\addabbrvspace \lbx@sfromlang\ itzk\adddot,\addabbrvspace hitzaur\adddotspace eta ohk\adddot}},%
+ editortranaf = {{edizioa, \lbx@sfromlang\ itzulpena, hitzatzea eta oharrak}{ed.,\addabbrvspace \lbx@sfromlang\ itz\adddot,\addabbrvspace hitzatz\adddotspace eta ohk\adddot}},%
+ editorstranaf = {{edizioak, \lbx@sfromlang\ itzulpenak, hitzatzea eta oharrak}{edk.,\addabbrvspace \lbx@sfromlang\ itzk\adddot,\addabbrvspace hitzatz\adddotspace eta ohk\adddot}},%
+ translatorco = {{\lbx@sfromlang\ itzulpena eta iruzkinak}{\lbx@sfromlang\ itz\adddot\ eta irzk\adddot}},%
+ translatorsco = {{\lbx@sfromlang\ itzulpenak eta iruzkinak}{\lbx@sfromlang\ itzk\adddot\ eta irzk\adddot}},%
+ translatoran = {{\lbx@sfromlang\ itzulpena eta oharrak}{\lbx@sfromlang\ itz\adddot\ eta ohk\adddot}},%
+ translatorsan = {{\lbx@sfromlang\ itzulpenak eta oharrak}{\lbx@sfromlang\ itzk\adddot\ eta ohks\adddot}},%
+ translatorin = {{\lbx@sfromlang\ itzulpena eta sarrera}{\lbx@sfromlang\ itz\adddot\ eta sar\adddot}},%
+ translatorsin = {{\lbx@sfromlang\ itzulpenak eta sarrera}{\lbx@sfromlang\ itzk\adddot\ eta sar\adddot}},%
+ translatorfo = {{\lbx@sfromlang\ itzulpena eta hitzaurrea}{\lbx@sfromlang\ itz\adddot\ eta hitzaur\adddot}},%
+ translatorsfo = {{\lbx@sfromlang\ itzulpenak eta hitzaurrea}{\lbx@sfromlang\ itzk\adddot\ eta hitzaur\adddot}},%
+ translatoraf = {{\lbx@sfromlang\ itzulpena eta hitzatzea}{\lbx@sfromlang\ itz\adddot\ eta hitzatz\adddot}},%
+ translatorsaf = {{\lbx@sfromlang\ itzulpenak eta hitzatzea}{\lbx@sfromlang\ itzk\adddot\ eta hitzatz\adddot}},%
+ translatorcoin = {{\lbx@sfromlang\ itzulpena, sarrera eta iruzkinak}{\lbx@sfromlang\ itz\adddot, sar\adddotspace eta irzk\adddot}},%
+ translatorscoin = {{\lbx@sfromlang\ itzulpenak, sarrera eta iruzkinak}{\lbx@sfromlang\ itzk\adddot, sar\adddotspace eta irzk\adddot}},%
+ translatorcofo = {{\lbx@sfromlang\ itzulpena, hitzaurrea eta iruzkinak}{\lbx@sfromlang\ itz\adddot, hitzaur\adddotspace eta irzk\adddot}},%
+ translatorscofo = {{\lbx@sfromlang\ itzulpenak, hitzaurrea eta iruzkinak}{\lbx@sfromlang\ itzk\adddot, hitzaur\adddotspace eta irzk\adddot}},%
+ translatorcoaf = {{\lbx@sfromlang\ itzulpena, hitzatzea eta iruzkinak}{\lbx@sfromlang\ itz\adddot, hitzatz\adddotspace eta irzk\adddot}},%
+ translatorscoaf = {{\lbx@sfromlang\ itzulpenak, hitzatzea eta iruzkinak}{\lbx@sfromlang\ itzk\adddot, hitzatz\adddotspace eta irzk\adddot}},%
+ translatoranin = {{\lbx@sfromlang\ itzulpena, sarrera eta oharrak}{\lbx@sfromlang\ itz\adddot, sar\adddotspace eta ohk\adddot}},%
+ translatorsanin = {{\lbx@sfromlang\ itzulpenak, sarrera eta oharrak}{\lbx@sfromlang\ itzk\adddot, sar\adddotspace eta ohk\adddot}},%
+ translatoranfo = {{\lbx@sfromlang\ itzulpena, hitzaurrea eta oharrak}{\lbx@sfromlang\ itz\adddot, hitzaur\adddotspace eta ohk\adddot}},%
+ translatorsanfo = {{\lbx@sfromlang\ itzulpenak, hitzaurrea eta oharrak}{\lbx@sfromlang\ itzk\adddot, hitzaur\adddotspace eta ohk\adddot}},%
+ translatoranaf = {{\lbx@sfromlang\ itzulpena, hitzatzea eta oharrak}{\lbx@sfromlang\ itz\adddot, hitzatz\adddotspace eta ohk\adddot}},%
+ translatorsanaf = {{\lbx@sfromlang\ itzulpenak, hitzatzea eta oharrak}{\lbx@sfromlang\ itzk\adddot, hitzatz\adddotspace eta ohk\adddot}},%
+ organizer = {{antolatzailea(k)}{antltz(k)\adddot}},%
+ organizers = {{antolatzailea(k)}{antltz(k)\adddot}},%
+ byorganizer = {{antolatzailea(k)}{antltz(k)\adddot}},%
+ byauthor = {{egilea(k)}{eg(k)}},%
+ byeditor = {{editorea(k)}{ed(k)}},%
+ bycompiler = {{biltzailea(k)}{biltz(k)}},%
+ byredactor = {{erredaktorea(k)}{err(k)}},%
+ byreviser = {{orraztailea(k)}{orrz(k)}},%
+ byreviewer = {{berrikustzailea(k)}{berr(k)}},%
+ byfounder = {{sortzailea(k)}{sortz(k)}},%
+ bycontinuator = {{jarraitzailea(k)}{jarr(k)}},%
+ bycollaborator = {{kolaboratzailea(k)}{kolab(k)}},%
+ bytranslator = {{\lbx@lfromlang\ itzulpena}{\lbx@sfromlang\ itz\adddot}},%
+ bycommentator = {{iruzkinak}{irzk\adddotspace}},%
+ byannotator = {{oharrak}{ohk\adddot}},%
+ withcommentator = {{iruzkinak}{irzk\adddot}},%
+ withannotator = {{oharrak}{ohk\adddot}},%
+ withintroduction = {{sarrera}{sar\adddot}},%
+ withforeword = {{hitzaurrea}{hitzaur\adddot}},%
+ withafterword = {{hitzatzea}{hitzatz\adddot}},%
+ byeditortr = {{edizioa eta \lbx@lfromlang\ itzulpena}%
+ {ed\adddotspace eta \lbx@sfromlang\ itz\adddot}},%
+ byeditorco = {{edizioa eta iruzkinak}%
+ {ed\adddotspace eta irzk\adddot}},%
+ byeditoran = {{edizioa eta oharrak}%
+ {ed\adddotspace eta ohk\adddot}},%
+ byeditorin = {{edizioa eta sarrera}%
+ {ed\adddotspace eta sar\adddot}},%
+ byeditorfo = {{edizioa eta hitzaurrea}%
+ {ed\adddotspace eta hitzaur\adddot}},%
+ byeditoraf = {{edizioa eta hitzatzea}%
+ {ed\adddotspace eta hitzatz\adddot}},%
+ byeditortrco = {{edizioa, \lbx@lfromlang\ itzulpena eta iruzkinak}%
+ {ed.,\addabbrvspace \lbx@sfromlang\ itz\adddot\ eta irzk\adddot}},%
+ byeditortran = {{edizioa, \lbx@lfromlang\ itzulpena eta oharrak}%
+ {ed.,\addabbrvspace \lbx@sfromlang\ itz\adddot\ eta ohk\adddot}},%
+ byeditortrin = {{edizioa, \lbx@lfromlang\ itzulpena eta sarrera}%
+ {ed.,\addabbrvspace \lbx@sfromlang\ itz\adddot\ eta sar\adddot}},%
+ byeditortrfo = {{edizioa, \lbx@lfromlang\ itzulpena eta hitzaurrea}%
+ {ed.,\addabbrvspace \lbx@sfromlang\ itz\adddot\ eta hitzaur\adddot}},%
+ byeditortraf = {{edizioa, \lbx@lfromlang\ itzulpena eta hitzatzea}%
+ {ed.,\addabbrvspace \lbx@sfromlang\ itz\adddot\ eta hitzatz\adddot}},%
+ byeditorcoin = {{edizioa, iruzkinak eta sarrera}%
+ {ed.,\addabbrvspace irzk\adddotspace eta sar\adddot}},%
+ byeditorcofo = {{edizioa, iruzkinak eta hitzaurrea}%
+ {ed.,\addabbrvspace irzk\adddotspace eta hitzaur\adddot}},%
+ byeditorcoaf = {{edizioa, iruzkinak eta hitzatzea}%
+ {ed.,\addabbrvspace irzk\adddotspace eta hitzatz\adddot}},%
+ byeditoranin = {{edizioa, oharrak eta sarrera}%
+ {ed.,\addabbrvspace ohk\adddotspace eta sar\adddot}},%
+ byeditoranfo = {{edizioa, oharrak eta hitzaurrea}%
+ {ed.,\addabbrvspace ohk\adddotspace eta hitzaur\adddot}},%
+ byeditoranaf = {{edizioa, oharrak eta hitzatzea}%
+ {ed.,\addabbrvspace ohk\adddotspace eta hitzatz\adddot}},%
+ byeditortrcoin = {{edizioa, \lbx@lfromlang itzulpena, iruzkinak eta sarrera}%
+ {ed.,\addabbrvspace \lbx@sfromlang\ itz\adddot, irzk\adddotspace eta sar\adddot}},%
+ byeditortrcofo = {{edizioa, \lbx@lfromlang itzulpena, iruzkinak eta hitzaurrea}%
+ {ed.,\addabbrvspace \lbx@sfromlang\ itz\adddot, irzk\adddotspace eta hitzaur\adddot}},%
+ byeditortrcoaf = {{edizioa, \lbx@lfromlang itzulpena, iruzkinak eta hitzatzea}%
+ {ed.,\addabbrvspace \lbx@sfromlang\ itz\adddot, irzk\adddotspace eta hitzatz\adddot}},%
+ byeditortranin = {{edizioa, \lbx@lfromlang itzulpena, oharrak eta sarrera}%
+ {ed.,\addabbrvspace \lbx@sfromlang\ itz\adddot, ohk\adddotspace eta sar\adddot}},%
+ byeditortranfo = {{edizioa, \lbx@lfromlang itzulpena, oharrak eta hitzaurrea}%
+ {ed.,\addabbrvspace \lbx@sfromlang\ itz\adddot, ohk\adddotspace eta hitzaur\adddot}},%
+ byeditortranaf = {{edizioa, \lbx@lfromlang itzulpena, oharrak eta hitzatzea}%
+ {ed.,\addabbrvspace \lbx@sfromlang\ itz\adddot, ohk\adddotspace eta hitzatz\adddot}},%
+ bytranslatorco = {{\lbx@lfromlang\ itzulpena eta iruzkinak}%
+ {\lbx@sfromlang\ itz\adddot\ eta irzk\adddot}},%
+ bytranslatoran = {{\lbx@lfromlang\ itzulpena eta oharrak}%
+ {\lbx@sfromlang\ itz\adddot\ eta ohk\adddot}},%
+ bytranslatorin = {{\lbx@lfromlang\ itzulpena eta sarrera}%
+ {\lbx@sfromlang\ itz\adddot\ eta sarod\adddot}},%
+ bytranslatorfo = {{\lbx@lfromlang\ itzulpena eta hitzaurrea}%
+ {\lbx@sfromlang\ itz\adddot\ eta hitzaur\adddot}},%
+ bytranslatoraf = {{\lbx@lfromlang\ itzulpena eta hitzatzea}%
+ {\lbx@sfromlang\ itz\adddot\ eta hitzatz\adddot}},%
+ bytranslatorcoin = {{\lbx@lfromlang itzulpena, iruzkinak eta sarrera}%
+ {\lbx@sfromlang itz\adddot, irzk\adddotspace eta sar\adddot}},%
+ bytranslatorcofo = {{\lbx@lfromlang itzulpena, iruzkinak eta hitzaurrea}%
+ {\lbx@sfromlang itz\adddot, irzk\adddotspace eta pr\'ol\adddot}},%
+ bytranslatorcoaf = {{\lbx@lfromlang itzulpena, iruzkinak eta hitzatzea}%
+ {\lbx@sfromlang itz\adddot, irzk\adddotspace eta hitzatz\adddot}},%
+ bytranslatoranin = {{\lbx@lfromlang itzulpena, oharrak eta sarrera}%
+ {\lbx@sfromlang itz\adddot, ohk\adddotspace eta sar\adddot}},%
+ bytranslatoranfo = {{\lbx@lfromlang itzulpena, oharrak eta hitzaurrea}%
+ {\lbx@sfromlang itz\adddot, ohk\adddotspace eta pr\'ol\adddot}},%
+ bytranslatoranaf = {{\lbx@lfromlang itzulpena, oharrak eta hitzatzea}%
+ {\lbx@sfromlang itz\adddot, ohk\adddotspace eta hitzatz\adddot}},%
+ and = {{eta}{eta}},%
+ andothers = {{et\adddotspace al\adddot}{et\adddotspace al\adddot}},%
+ andmore = {{et\adddotspace al\adddot}{et\adddotspace al\adddot}},%
+ volume = {{bolumena}{bol\adddot}},%
+ volumes = {{bolumeank}{bolk\adddot}},%
+ involumes = {{non}{non}},%
+ jourvol = {{bolumena}{bol\adddot}},%
+ jourser = {{serie-zenbaki}{ser-zb\adddot}},%
+ book = {{liburua}{liburua}},%
+ part = {{atala}{atala}},%
+ issue = {{zenbakia}{zk\adddot}},%
+ newseries = {{serie-zenbaki berria}{ser-zb ber\adddot}},%
+ oldseries = {{serie-zenbaki zaharra}{ser-zb zah\adddot}},%
+ edition = {{edizioa}{ed\adddot}},%
+ reprint = {{berrinprimatzea}{berrinp\adddot}},%
+ reprintof = {{berrinprimatzea}{berrinp\adddot}},%
+ reprintas = {{berrinprimitua}{berrinp\adddot}},%
+ reprintfrom = {{berrinprimitua}{berrinp\adddot}},%
+ reviewof = {{erreseina}{erres\adddot}},%
+ translationof = {{itzulpena}{itz\adddot}},%
+ translationas = {{zein hizkuntzara itzulia}{zein hizk\adddot -ra itz\adddot}},%
+ translationfrom = {{zein hizkuntzatik itzulia}{zein hizk\adddotspace itz\adddot}},%
+ origpubas = {{originalki argitaratua}{orig\adddotspace argit\adddotspace}},%
+ origpubin = {{originalki argitaratua}{orig\adddot argit\adddot}},%
+ astitle = {{izenburua}{izenb\adddot}},%
+ bypublisher = {{argitaletxea}{argit\adddot}},%
+ nodate = {{datarik gabe}{dat\adddot gabe}},%
+ page = {{orria}{orr\adddot}},%
+ pages = {{orriak}{orrk\adddot}},%
+ column = {{zutabea}{ztb\adddot}},%
+ columns = {{zutabeak}{ztbk\adddot}},%
+ line = {{lerroa}{lerr\adddot}},%
+ lines = {{lerroak}{lerrk\adddot}},%
+ verse = {{lerroa}{lerr\adddot}},%
+ verses = {{lerroak}{lerrk\adddot}},%
+ section = {{atala}{at\adddot}},%
+ sections = {{atalak}{atk\adddot}},%
+ paragraph = {{parrafoa}{parr\adddot}},%
+ paragraphs = {{parrafoak}{parrk\adddot}},%
+ pagetotal = {{orria}{orr\adddot}},%
+ pagetotals = {{orriak}{orrk\adddot}},%
+ columntotal = {{zutabea}{ztb\adddot}},%
+ columntotals = {{zutabeak}{ztbk\adddot}},%
+ linetotal = {{lerroa}{lerr\adddot}},%
+ linetotals = {{lerroak}{lerrk\adddot}},%
+ versetotal = {{verso}{v\adddot}},
+ versetotals = {{versos}{vv\adddot}},
+ sectiontotal = {{atala}{at\adddot}},%
+ sectiontotals = {{atalak}{atk\adddot}},%
+ paragraphtotal = {{parrafoa}{parr\adddot}},%
+ paragraphtotals = {{parrafoak}{parrk\adddot}},%
+ in = {{non}{non}},%
+ inseries = {{non}{non}},%
+ ofseries = {{nongo}{nongo}},%
+ number = {{zenbakia}{zb\adddot}},%
+ chapter = {{kapitulua}{kap\adddot}},%
+ bathesis = {{Lizentziatura tesia}{Liz\adddotspace tesia}},%
+ mathesis = {{Maisutza tesia}{Mais\adddotspace tesia}},%
+ phdthesis = {{Tesi doktorala}{Tesi dokt\adddot}},%
+ candthesis = {{Doktoretzarako hautagaitza tesia}{Dokt\adddotspace haut\adddotspace tesia}},%
+ resreport = {{ikerketa txostena}{ik\adddotspace txos\adddot}},%
+ techreport = {{txosten teknikoa}{txos\adddotspace tek\adddot}},%
+ software = {{programa}{prog\adddot}},%
+ datacd = {{datu CD-a}{datu CD-a}},%
+ audiocd = {{audio CD-a}{audio CD-a}},%
+ version = {{bertsioa}{ber\adddot}},%
+ url = {{esteka}{esteka}},%
+ urlfrom = {{noiztik erabilgarri}{erabilg\adddot}},%
+ urlseen = {{azkenekoz ikusia}{azkenekoz ikusia}},%
+ inpreparation = {{prestaketa prozesuan}{prest\adddot proz\adddot}},%
+ submitted = {{bidalia}{bidalia}},%
+ forthcoming = {{laster}{laster}},%
+ inpress = {{inprentan}{inprentan}},%
+ prepublished = {{aurrez argitaratua}{aur\adddot argit\adddot}},%
+ citedas = {{aurrerantzean aipatua}{aur\adddot aip\adddot}},%
+ thiscite = {{bereziki}{berez\adddot}},%
+ seenote = {{ikus oharra}{ik\adddot oh\adddot}},%
+ quotedin = {{aipatua}{aip\adddot}},%
+ idem = {{idem}{id\adddot}},%
+ 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}{o\adddot cit\adddot}},%
+ loccit = {{loc\adddotspace cit\adddot}{loc\adddot cit\adddot}},%
+ confer = {{cf\adddot}{cf\adddot}},%
+ sequens = {{hurr\adddot}{hurr\adddot}},%
+ sequentes = {{hurrk\adddot}{hurrk\adddot}},%
+ passim = {{passim}{passim}},%
+ see = {{ikus}{ik\adddot}},%
+ seealso = {{ikus ere}{ik\adddotspace ere}},%
+ backrefpage = {{ikus orria}{ik\adddotspace orr\adddot}},%
+ backrefpages = {{ikus orriak}{ik\adddotspace orrk\adddot}},%
+ january = {{urtarrila}{urt\adddot}},%
+ february = {{otsaila}{ots\adddot}},%
+ march = {{martxoa}{mar\adddot}},%
+ april = {{apirila}{ap\adddot}},%
+ may = {{maiatza}{mai\adddot}},%
+ june = {{ekaina}{ek\adddot}},%
+ july = {{uztaila}{uz\adddot}},%
+ august = {{abuztua}{abu\adddot}},%
+ september = {{iraila}{ir\adddot}},%
+ october = {{urria}{urr\adddot}},%
+ november = {{azaroa}{az\adddot}},%
+ december = {{abendua}{abe\adddot}},%
+ langamerican = {{ingleles amerikarra}{ingeles amerikarra}},%
+ langbrazilian = {{portugesa}{portugesa}},%
+ langbulgarian = {{bulgariera}{bulgariera}},%
+ langcatalan = {{katalana}{katalana}},%
+ langcroatian = {{kroaziera}{kroaziera}},%
+ langczech = {{txekiera}{txekiera}},%
+ langdanish = {{daniera}{daniera}},%
+ langdutch = {{nederlandera}{nederlandera}},%
+ langenglish = {{ingelesa}{ingelesa}},%
+ langestonian = {{estoniera}{estoniera}},%
+ langfinnish = {{finlandiera}{finlandiera}},%
+ langfrench = {{frantsesa}{frantsesa}},%
+ langgalician = {{galiziera}{galiziera}},%
+ langgerman = {{alemana}{alemana}},%
+ langgreek = {{greziera}{greziera}},%
+ langhungarian = {{hungariera}{hungariera}},%
+ langitalian = {{italiera}{italiera}},%
+ langjapanese = {{japoniera}{japoniera}},%
+ langlatin = {{latina}{latina}},%
+ langlatvian = {{lituaniera}{lituaniera}},%
+ langnorwegian = {{norvegiera}{norvegiera}},%
+ langpolish = {{poloniera}{poloniera}},%
+ langportuguese = {{portugesa}{portugesa}},%
+ langrussian = {{errusiera}{errusiera}},%
+ langslovak = {{eslovakiera}{eslovakiera}},%
+ langslovene = {{esloveniera}{esloveniera}},%
+ langspanish = {{gaztelera}{gaztelera}},%
+ langswedish = {{suediera}{suediera}},%
+ langukrainian = {{ukrainera}{ukrainera}},%
+ fromamerican = {{ingeles amerikarretik}{ingeles amerikarretik}},%
+ frombrazilian = {{portugesetik}{portugesetik}},%
+ frombulgarian = {{bulgarieratik}{bulgarieratik}},%
+ fromcatalan = {{katalanetik}{katalanetik}},%
+ fromcroatian = {{kroazieratik}{kroazieratik}},%
+ fromczech = {{txekieratik}{txekieratik}},%
+ fromdanish = {{danieratik}{danieratik}},%
+ fromdutch = {{nederlanderatik}{nederlanderatik}},%
+ fromenglish = {{ingelesetik}{ingelesetik}},%
+ fromestonian = {{estonieratik}{estonieratik}},%
+ fromfinnish = {{finlandieratik}{finlandieratik}},%
+ fromfrench = {{frantsesetik}{frantsesetik}},%
+ fromgalician = {{galizieratik}{galizieratik}},%
+ fromgerman = {{alemanetik}{alemanetik}},%
+ fromgreek = {{grezieratik}{grezieratik}},%
+ fromhungarian = {{hungarieratik}{hungarieratik}},%
+ fromitalian = {{italieratik}{italieratik}},%
+ fromjapanese = {{japonieratik}{japonieratik}},%
+ fromlatin = {{latinetik}{latinetik}},%
+ fromlatvian = {{lituanieratik}{lituanieratik}},%
+ fromnorwegian = {{norvegieratik}{norvegieratik}},%
+ frompolish = {{polonieratik}{polonieratik}},%
+ fromportuguese = {{portugesetik}{portugesetik}},%
+ fromrussian = {{errusieratik}{errusieratik}},%
+ fromslovak = {{eslovakieratik}{eslovakieratik}},%
+ fromslovene = {{eslovenieratik}{eslovenieratik}},%
+ fromspanish = {{gazteleratik}{gazteleratik}},%
+ fromswedish = {{suedieratik}{suedieratik}},%
+ fromukrainian = {{ukraineratik}{ukraineratik}},%
+ countryde = {{Alemania}{DE}},%
+ countryeu = {{Europar Batasuna}{EU}},%
+ countryep = {{Europar Batasuna}{EP}},%
+ countryfr = {{Frantzia}{FR}},%
+ countryuk = {{Britainia Handia}{GB}},%
+ countryus = {{Ameriketako Estatu Batuak}{US}},%
+ patent = {{patentea}{pat\adddot}},%
+ patentde = {{patente alemana}{pat\adddotspace alemana}},%
+ patenteu = {{patente europarra}{pat\adddotspace europarra}},%
+ patentfr = {{patente frantsesa}{pat\adddotspace frantsesa}},%
+ patentuk = {{patente britainiarra}{pat\adddotspace britainiarra}},%
+ patentus = {{patente estatubatuarra}{pat\adddotspace estatubatuarra}},%
+ patreq = {{patente eskakizuna}{pat\adddotspace esk\adddot}},%
+ patreqde = {{patente alemanaaren eskakizuna}{pat\adddotspace alem\adddotspace esk\adddot}},%
+ patreqeu = {{patente europarraren eskakizuna}{pat\adddotspace europ\adddotspace esk\adddot}},%
+ patreqfr = {{patente frantsesaren eskakizuna}{pat\adddotspace frants\adddotspace esk\adddot}},%
+ patrequk = {{patente britainiarraren eskakizuna}{pat\adddotspace brit\adddotspace esk\adddot}},%
+ patrequs = {{patente estatubatuarraren eskakizuna}{pat\adddotspace estat\adddotspace esk\adddot}},%
+ file = {{fitxategia}{fitxategia}},%
+ library = {{biblioteka}{bibl\adddot}},%
+ abstract = {{laburpena}{laburpena}},%
+ annotation = {{oharra}{oh\adddot}},%
+ commonera = {{oraingo aroa}{o\adddotspace a\adddot}},%
+ beforecommonera = {{oraingo aroaren aurretik}{o\adddotspace a\adddotspace a\adddot}},%
+ annodomini = {{Kristo ondoren}{K\adddotspace o\adddot}},%
+ beforechrist = {{Kristo aurretik}{K\adddotspace a\adddot}},%
+ circa = {{circa}{ca\adddot}},%
+ spring = {{udaberria}{udab\adddot}},%
+ summer = {{uda}{uda}},%
+ autumn = {{udazkena}{udaz\adddot}},%
+ winter = {{negua}{neg\adddot}},%
+ am = {{a\adddotspace m\adddot}{a\adddot m\adddot}},%
+ pm = {{p\adddotspace m\adddot}{p\adddot m\adddot}},%
+}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/lbx/catalan.lbx b/macros/latex/contrib/biblatex/latex/lbx/catalan.lbx
index 4f1878ac4d..abf7f8522c 100644
--- a/macros/latex/contrib/biblatex/latex/lbx/catalan.lbx
+++ b/macros/latex/contrib/biblatex/latex/lbx/catalan.lbx
@@ -274,90 +274,90 @@
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}},
+ byeditor = {{edici\'o a cura\smartof}{ed\adddot\smartof}},
+ bycompiler = {{compilaci\'o a cura\smartof}{comp\adddot\smartof}},
+ byredactor = {{redacci\'o a cura\smartof}{red\adddot\smartof}},
+ byreviser = {{revisi\'o a cura\smartof}{rev\adddot\smartof}},
+ byreviewer = {{ressenya a cura\smartof}{ress\adddot\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}},
+ bycollaborator = {{amb la co\l.laboraci\'o\smartof}{amb la co\l.l\adddot\smartof}},
+ bytranslator = {{traducci\'o \lbx@fromlang\ a cura\smartof}{trad\adddotspace\lbx@fromlang\smartof}},
+ bycommentator = {{comentari a cura\smartof}{com\adddot\smartof}},
+ byannotator = {{notes a cura\smartof}{n\adddot\smartof}},
+ withcommentator = {{amb un comentari a cura\smartof}{amb un com\adddot\smartof}},
+ withannotator = {{amb notes a cura\smartof}{amb n\adddot\smartof}},
+ withintroduction = {{amb una introducci\'o a cura\smartof}{amb una intr\adddot\smartof}},
+ withforeword = {{amb un pr\`oleg a cura\smartof}{amb un pr\`ol\adddot\smartof}},
+ withafterword = {{amb un ep\'{\i}leg a cura\smartof}{amb un ep\adddot\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\adddot\smartof}},
+ byeditoran = {{edici\'o i notes a cura\smartof}%
+ {ed\adddotspace i n\adddot\smartof}},
+ byeditorin = {{edici\'o i introducci\'o a cura\smartof}%
+ {ed\adddotspace i intr\adddot\smartof}},
+ byeditorfo = {{edici\'o i pr\`oleg a cura\smartof}%
+ {ed\adddotspace i pr\`ol\adddot\smartof}},
+ byeditoraf = {{edici\'o i ep\'{\i}leg a cura\smartof}%
+ {ed\adddotspace i ep\adddot\smartof}},
+ byeditortrco = {{edici\'o, traducci\'o \lbx@fromlang\ i comentari a cura\smartof}%
+ {ed.,\addabbrvspace trad\adddotspace\lbx@fromlang\ i com\adddot\smartof}},
+ byeditortran = {{edici\'o, traducci\'o \lbx@fromlang\ i notes a cura\smartof}%
+ {ed.,\addabbrvspace trad\adddotspace\lbx@fromlang\ i n\adddot\smartof}},
+ byeditortrin = {{edici\'o, traducci\'o \lbx@fromlang\ i introducci\'o a cura\smartof}%
+ {ed.,\addabbrvspace trad\adddotspace\lbx@fromlang\ i intr\adddot\smartof}},
+ byeditortrfo = {{edici\'o, traducci\'o \lbx@fromlang\ i pr\`oleg a cura\smartof}%
+ {ed.,\addabbrvspace trad\adddotspace\lbx@fromlang\ i pr\`ol\adddot\smartof}},
+ byeditortraf = {{edici\'o, traducci\'o \lbx@fromlang\ i ep\'{\i}leg a cura\smartof}%
+ {ed.,\addabbrvspace trad\adddotspace\lbx@fromlang\ i ep\adddot\smartof}},
+ byeditorcoin = {{edici\'o, comentari i introducci\'o a cura\smartof}
+ {ed.,\addabbrvspace com\adddotspace i intr\adddot\smartof}},
+ byeditorcofo = {{edici\'o, comentari i pr\`oleg a cura\smartof}
+ {ed.,\addabbrvspace com\adddotspace i pr\`ol\adddot\smartof}},
+ byeditorcoaf = {{edici\'o, comentari i ep\'{\i}leg a cura\smartof}%
+ {ed.,\addabbrvspace com\adddotspace i ep\adddot\smartof}},
+ byeditoranin = {{edici\'o, notes i introducci\'o a cura\smartof}%
+ {ed.,\addabbrvspace n\adddotspace i intr\adddot\smartof}},
+ byeditoranfo = {{edici\'o, notes i pr\`oleg a cura\smartof}%
+ {ed.,\addabbrvspace n\adddotspace i pr\`ol\adddot\smartof}},
+ byeditoranaf = {{edici\'o, notes i ep\'{\i}leg a cura\smartof}%
+ {ed.,\addabbrvspace n\adddotspace i ep\adddot\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\adddot\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\adddot\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}},
@@ -373,11 +373,11 @@
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}},
+ reprintof = {{reimpressi\'o\smartof}{reimpr\adddot\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}},
+ reprintfrom = {{reimpr\`es\smartof}{reimpr\adddot\smartof}},
+ reviewof = {{ressenya\smartof}{ress\adddot\smartof}},
+ translationof = {{traducci\'o\smartof}{trad\adddot\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}},
diff --git a/macros/latex/contrib/biblatex/latex/lbx/english.lbx b/macros/latex/contrib/biblatex/latex/lbx/english.lbx
index 1ade8c7f81..d13bd0fd42 100644
--- a/macros/latex/contrib/biblatex/latex/lbx/english.lbx
+++ b/macros/latex/contrib/biblatex/latex/lbx/english.lbx
@@ -470,6 +470,7 @@ canadian,australian,newzealand,USenglish,UKenglish}
november = {{November}{Nov\adddot}},
december = {{December}{Dec\adddot}},
langamerican = {{American}{American}},
+ langbasque = {{Basque}{Basque}},
langbrazilian = {{Brazilian}{Brazilian}},
langbulgarian = {{Bulgarian}{Bulgarian}},
langcatalan = {{Catalan}{Catalan}},
@@ -502,6 +503,7 @@ canadian,australian,newzealand,USenglish,UKenglish}
langturkish = {{Turkish}{Turkish}},
langukrainian = {{Ukrainian}{Ukrainian}},
fromamerican = {{from the American}{from the American}},
+ frombasque = {{from the Basque}{from the Basque}},
frombrazilian = {{from the Brazilian}{from the Brazilian}},
frombulgarian = {{from the Bulgarian}{from the Bulgarian}},
fromcatalan = {{from the Catalan}{from the Catalan}},
diff --git a/macros/latex/contrib/biblatex/latex/lbx/french.lbx b/macros/latex/contrib/biblatex/latex/lbx/french.lbx
index d2e441b66e..8b3f7f194b 100644
--- a/macros/latex/contrib/biblatex/latex/lbx/french.lbx
+++ b/macros/latex/contrib/biblatex/latex/lbx/french.lbx
@@ -276,23 +276,23 @@
organizers = {{organisateurs}{org\adddot}},%
byorganizer = {{organis\'e par}{org\adddotspace par}},%
byauthor = {{par}{par}},
- byeditor = {{sous la direction \smartof}{sous la dir\adddotspace\smartof}},
+ byeditor = {{sous la direction\smartof}{sous la dir\adddot\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}},
+ bycollaborator = {{avec la collaboration\smartof}{avec la
+ coll\adddot\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}},
+ withcommentator = {{avec des commentaires\smartof}{avec des comment\adddot\smartof}},
+ withannotator = {{avec des annotations\smartof}{avec des annot\adddot\smartof}},
+ withintroduction = {{avec une introduction\smartof}{avec une introd\adddot\smartof}},
+ withforeword = {{avec une pr\'eface\smartof}{avec une pr\'ef\adddot\smartof}},
+ withafterword = {{avec une postface\smartof}{avec une postf\adddot\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}%
@@ -378,7 +378,7 @@
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}},
+ reprintfrom = {{r\'eimpression \`a partir\smartof}{r\'eimpr\adddotspace \`a part\adddot\smartof}},
translationof = {{traduction de}{trad\adddotspace de}},
translationas = {{traduit sous le titre}{trad\adddotspace sous le titre}},
translationfrom = {{traduit de}{trad\adddotspace de}},
diff --git a/macros/latex/contrib/biblatex/latex/lbx/german.lbx b/macros/latex/contrib/biblatex/latex/lbx/german.lbx
index 3aba7d6739..d09bee3a76 100644
--- a/macros/latex/contrib/biblatex/latex/lbx/german.lbx
+++ b/macros/latex/contrib/biblatex/latex/lbx/german.lbx
@@ -455,6 +455,7 @@
november = {{November}{Nov\adddot}},
december = {{Dezember}{Dez\adddot}},
langamerican = {{Amerikanisch}{Amerikanisch}},
+ langbasque = {{Baskisch}{Baskisch}},
langbrazilian = {{Brasilianisch}{Brasilianisch}},
langbulgarian = {{Bulgarisch}{Bulgarisch}},
langcatalan = {{Katalanisch}{Katalanisch}},
@@ -487,6 +488,7 @@
langturkish = {{T\"urkisch}{T\"urkisch}},
langukrainian = {{Ukrainisch}{Ukrainisch}},
fromamerican = {{aus dem Amerikanischen}{aus dem Amerikanischen}},
+ frombasque = {{aus dem Baskischen}{aus dem Baskischen}},
frombrazilian = {{aus dem Brasilianischen}{aus dem Brasilianischen}},
frombulgarian = {{aus dem Bulgarischen}{aus dem Bulgarischen}},
fromcatalan = {{aus dem Katalanischen}{aus dem Katalanischen}},