summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/biblatex-publist/publist.bbx
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2019-05-04 22:47:27 +0000
committerKarl Berry <karl@freefriends.org>2019-05-04 22:47:27 +0000
commitf6c261f6b96c7c2e1db05022054073e8af95a02c (patch)
treee7cf44d4b835043b17758d12ccec1472fc30e83c /Master/texmf-dist/tex/latex/biblatex-publist/publist.bbx
parentb29d97e34cfe9a6d8ecf55de223c21ae703bda8a (diff)
biblatex-publist (16apr19)
git-svn-id: svn://tug.org/texlive/trunk@50989 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/biblatex-publist/publist.bbx')
-rw-r--r--Master/texmf-dist/tex/latex/biblatex-publist/publist.bbx1602
1 files changed, 700 insertions, 902 deletions
diff --git a/Master/texmf-dist/tex/latex/biblatex-publist/publist.bbx b/Master/texmf-dist/tex/latex/biblatex-publist/publist.bbx
index 8370a95a202..7ba7be52cee 100644
--- a/Master/texmf-dist/tex/latex/biblatex-publist/publist.bbx
+++ b/Master/texmf-dist/tex/latex/biblatex-publist/publist.bbx
@@ -25,19 +25,19 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\bpl@version{1.15}
-\def\bpl@rdate{2019/02/22}
+\def\bpl@version{1.16}
+\def\bpl@rdate{2019/04/16}
\ProvidesFile{publist.bbx}[\bpl@rdate\space v.\bpl@version\space
biblatex bibliography style (JSP)]
\@ifpackagelater{biblatex}{2017/11/04}
- {}
- {\PackageError{biblatex-publist}
- {Outdated 'biblatex' package\MessageBreak
- Upgrade to biblatex v3.8 (2017/11/04) or later.\MessageBreak
- I found: '\csuse{ver@biblatex.sty}'.\MessageBreak
- This is a fatal error. I'm aborting now}%
+ {}
+ {\PackageError{biblatex-publist}
+ {Outdated 'biblatex' package\MessageBreak
+ Upgrade to biblatex v3.8 (2017/11/04) or later.\MessageBreak
+ I found: '\csuse{ver@biblatex.sty}'.\MessageBreak
+ This is a fatal error. I'm aborting now}%
\endinput}
@@ -47,17 +47,20 @@
% Deprecated Options (as of v. 1.4)
\DeclareBibliographyOption{omitname}{%
- \PackageWarning{biblatex-publist}{The omitname option is deprecated!\MessageBreak
- Please use plauthorname instead.}{}%
- \def\bpl@osurname{#1}}
+ \PackageWarning{biblatex-publist}
+ {The omitname option is deprecated!\MessageBreak
+ Please use plauthorname instead.}{}%
+ \def\bpl@osurname{#1}}
\DeclareBibliographyOption{omitfirstname}{%
- \PackageWarning{biblatex-publist}{The omitfirstname option is deprecated!\MessageBreak
- Please use plauthorfirstname instead.}{}%
- \def\bpl@ofirstname{#1}}
+ \PackageWarning{biblatex-publist}
+ {The omitfirstname option is deprecated!\MessageBreak
+ Please use plauthorfirstname instead.}{}%
+ \def\bpl@ofirstname{#1}}
\DeclareBibliographyOption{omitnameprefix}{%
- \PackageWarning{biblatex-publist}{The omitnameprefix option is deprecated!\MessageBreak
- Please use plauthornameprefix instead.}{}%
- \def\bpl@ovonpart{#1}}
+ \PackageWarning{biblatex-publist}
+ {The omitnameprefix option is deprecated!\MessageBreak
+ Please use plauthornameprefix instead.}{}%
+ \def\bpl@ovonpart{#1}}
% Valid options
\DeclareBibliographyOption{plauthorname}{\def\bpl@osurname{#1}}
@@ -141,9 +144,9 @@
% Default sorting depends on plauthorhandling
\if@hlauthor%
- \ExecuteBibliographyOptions{sorting=ydnt}
+ \ExecuteBibliographyOptions{sorting=ydnt}
\else
- \ExecuteBibliographyOptions{sorting=ydt}
+ \ExecuteBibliographyOptions{sorting=ydt}
\fi
% Execute these options only with the standard base style
@@ -168,34 +171,35 @@
% http://tex.stackexchange.com/a/79583/19291)
% and normalize spaces
\def\bpl@normalize#1#2{%
- \begingroup
- \def\bibnamedelima{ }%
- \def\bibnamedelimb{ }%
- \def\IeC##1{##1}%
- \protected@edef\@tempa{#1}%
- \gdef\@gtempa{}%
- \expandafter\bpl@@normalize\@tempa\@nil
- \endgroup
- \let#2\@gtempa
+ \begingroup
+ \def\bibnamedelima{ }%
+ \def\bibnamedelimb{ }%
+ \def\IeC##1{##1}%
+ \protected@edef\@tempa{#1}%
+ \gdef\@gtempa{}%
+ \expandafter\bpl@@normalize\@tempa\@nil
+ \endgroup
+ \let#2\@gtempa
}
\def\bpl@@normalize#1{%
- \ifx#1\@nil\else
- \expandafter\gdef\expandafter\@gtempa\expandafter{\@gtempa#1}%
- \expandafter\bpl@@normalize
- \fi
+ \ifx#1\@nil\else
+ \expandafter\gdef\expandafter%
+ \@gtempa\expandafter{\@gtempa#1}%
+ \expandafter\bpl@@normalize
+ \fi
}
%
% Check first token of macro
% (based on a suggestion by Qrrbrbirlbel at
% https://tex.stackexchange.com/a/132254)
\newcommand*{\iffirstinitialsequal}{%
- \@expandtwoargs\if@startswith}
+ \@expandtwoargs\if@startswith}
\newcommand*{\if@startswith}[2]{%
- \if\@car#1.\@nil\@car#2.\@nil
- \expandafter\@firstoftwo
- \else
- \expandafter\@secondoftwo
- \fi
+ \if\@car#1.\@nil\@car#2.\@nil
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
}
%
% Split plauthors list item
@@ -217,12 +221,58 @@
% Fully expanded comparison
% (adapted from scrbase.sty)
\newcommand\bpl@ifstreq[2]{%
- \begingroup\edef\@tempa{#1}\edef\@tempb{#2}%
- \ifx\@tempa\@tempb
- \endgroup\expandafter\@firstoftwo
- \else
- \endgroup\expandafter\@secondoftwo
- \fi
+ \begingroup\edef\@tempa{#1}\edef\@tempb{#2}%
+ \ifx\@tempa\@tempb
+ \endgroup\expandafter\@firstoftwo
+ \else
+ \endgroup\expandafter\@secondoftwo
+ \fi
+}
+%
+% Check if we have an entry in plauthors
+% \bpl@ifplauthor{firstname}{prefix}{surname}{true}{false}
+\newcommand*\bpl@ifplauthor[3]{%
+ \newtoggle{checkplauthor}%
+ \bpl@normalize{#1}{\bpl@tfirstname}%
+ \bpl@normalize{#2}{\bpl@tvonpart}%
+ \bpl@normalize{#3}{\bpl@tsurname}%
+ \bpl@normalize{\bpl@osurname}{\bpl@esurname}%
+ \bpl@normalize{\bpl@ofirstname}{\bpl@efirstname}%
+ \bpl@normalize{\bpl@ovonpart}{\bpl@evonpart}%
+ % Check if we are dealing with a plauthor
+ % First the plauthorname as set via option
+ \ifboolexpr{
+ test { \bpl@ifstreq{\bpl@esurname}{\bpl@tsurname} }
+ and
+ ( test { \bpl@ifstreq{\bpl@efirstname}{\bpl@tfirstname} } or test { \ifdefstring{\bpl@ofirstname}{} }
+ or ( test { \iftoggle{firstinit} } and test{ \iffirstinitialsequal{\bpl@efirstname}{\bpl@tfirstname} } )
+ )
+ and
+ ( test { \bpl@ifstreq{\bpl@evonpart}{\bpl@tvonpart} } or test { \ifdefstring{\bpl@ovonpart}{} }) }
+ {\toggletrue{checkplauthor}}{\togglefalse{checkplauthor}}%
+ % Then the name(s) set via macro
+ \def\bpl@lsurname{}%
+ \def\bpl@lfirstname{}%
+ \def\bpl@lvonpart{}%
+ \renewcommand*{\do}[1]{%
+ \jsp@splitpllist{##1}%
+ \bpl@normalize{\bpl@lsurname}{\bpl@elsurname}%
+ \bpl@normalize{\bpl@lfirstname}{\bpl@elfirstname}%
+ \bpl@normalize{\bpl@lvonpart}{\bpl@elvonpart}%
+ \ifboolexpr{
+ test { \bpl@ifstreq{\bpl@elsurname}{\bpl@tsurname} }
+ and
+ ( test { \bpl@ifstreq{\bpl@elfirstname}{\bpl@tfirstname} } or test { \ifdefstring{\bpl@lfirstname}{} }
+ or ( test { \iftoggle{firstinit} } and test{ \iffirstinitialsequal{\bpl@lfirstname}{\bpl@tfirstname} } )
+ )
+ and
+ ( test { \bpl@ifstreq{\bpl@elvonpart}{\bpl@tvonpart} } or test { \ifdefstring{\bpl@lvonpart}{} }) }
+ {\toggletrue{checkplauthor}}{}%
+ }%
+ \dolistloop{\bpl@plauthors}%
+ \iftoggle{checkplauthor}%
+ {\expandafter\@firstoftwo}%
+ {\expandafter\@secondoftwo}%
}
@@ -239,7 +289,7 @@
% List to store multiple pl authors (for highlight only)
\def\bpl@plauthors{}
%
-% Manual way to specify publication list author name
+% Manual way to specify publication list author(s) name
\def\plauthorname{%
\@ifnextchar[%
{\plauthorname@i}
@@ -257,13 +307,13 @@
%
% Formatting of year in margin par (if requested)
\providecommand*\plmarginyear[1]{%
- \raggedleft\small\textbf{#1}%
+ \raggedleft\small\textbf{#1}%
}
%
% Highlighting auf publist author with plauthorhandling=highlight
\providecommand*\plauthorhl[1]{%
- \mkbibbold{#1}%
+ \mkbibbold{#1}%
}
@@ -291,24 +341,28 @@
\setlength\extralabelnumberwidth{0pt}
\defbibenvironment{bibliography}
- {\addtolength{\labelnumberwidth}{\extralabelnumberwidth}%
- \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
- \ifnumgreater{\c@refsection}{\bbx@saverefsection}%
- {\csnumgdef{bbx@itemtotal}{\csuse{bbx@itemtotal}+\csuse{bbx@currentitem}}}{}%
- \csnumgdef{bbx@saverefsection}{\c@refsection}%
- }
- {\item}
+ {%
+ \addtolength{\labelnumberwidth}{\extralabelnumberwidth}%
+ \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
+ \ifnumgreater{\c@refsection}{\bbx@saverefsection}%
+ {\csnumgdef{bbx@itemtotal}{\csuse{bbx@itemtotal}+\csuse{bbx@currentitem}}}{}%
+ \csnumgdef{bbx@saverefsection}{\c@refsection}%
+ }
+ {\item}
\DeclareFieldFormat{labelnumber}{%
\ifbool{newsection}{%
@@ -322,20 +376,25 @@
% Print labelnumber as actual number, plus item total
\newrobustcmd{\mkbibdesc}[1]{%
- \number\numexpr\csuse{bbx@itemtotal}+#1\relax}
+ \number\numexpr\csuse{bbx@itemtotal}+#1\relax%
+}
% Way to manual shift the numbering (undocumented)
-\newcommand*\decreasebbxnumbering[1]{\csnumgdef{bbx@itemtotal}{\csuse{bbx@itemtotal}-#1}}
+\newcommand*\decreasebbxnumbering[1]{%
+ \csnumgdef{bbx@itemtotal}{\csuse{bbx@itemtotal}-#1}%
+}
%
% New environment for (foreign) reviews
%
\defbibenvironment{reviews}
- {\begin{enumerate}%
- \small\setlength\itemsep{0pt}}
- {\end{enumerate}}
- {\item}
+ {%
+ \begin{enumerate}%
+ \small\setlength\itemsep{0pt}%
+ }
+ {\end{enumerate}}
+ {\item}
%
@@ -346,102 +405,30 @@
\DeclareBibliographyCategory{filtered}
\DeclareIndexNameFormat{authorfiltered}{%
- \bpl@normalize{\namepartfamily}{\bpl@tsurname}%
- \bpl@normalize{\namepartgiven}{\bpl@tfirstname}%
- \bpl@normalize{\namepartprefix}{\bpl@tvonpart}%
- \bpl@normalize{\bpl@osurname}{\bpl@esurname}%
- \bpl@normalize{\bpl@ofirstname}{\bpl@efirstname}%
- \bpl@normalize{\bpl@ovonpart}{\bpl@evonpart}%
- % Check if we are dealing with a plauthor
- % First the plauthorname as set via option
- \ifboolexpr{
- test { \bpl@ifstreq{\bpl@esurname}{\bpl@tsurname} }
- and
- ( test { \bpl@ifstreq{\bpl@efirstname}{\bpl@tfirstname} } or test { \ifdefstring{\bpl@ofirstname}{} }
- or ( test { \iftoggle{firstinit} } and test{ \iffirstinitialsequal{\bpl@efirstname}{\bpl@tfirstname} } )
- )
- and
- ( test { \bpl@ifstreq{\bpl@evonpart}{\bpl@tvonpart} } or test { \ifdefstring{\bpl@ovonpart}{} }) }
- {\addtocategory{filtered}{\thefield{entrykey}}}%
- {}%
- % Then the name(s) set via macro
- \def\bpl@lsurname{}%
- \def\bpl@lfirstname{}%
- \def\bpl@lvonpart{}%
- \renewcommand*{\do}[1]{%
- \jsp@splitpllist{##1}%
- \bpl@normalize{\bpl@lsurname}{\bpl@elsurname}%
- \bpl@normalize{\bpl@lfirstname}{\bpl@elfirstname}%
- \bpl@normalize{\bpl@lvonpart}{\bpl@elvonpart}%
- \ifboolexpr{
- test { \bpl@ifstreq{\bpl@elsurname}{\bpl@tsurname} }
- and
- ( test { \bpl@ifstreq{\bpl@elfirstname}{\bpl@tfirstname} } or test { \ifdefstring{\bpl@lfirstname}{} }
- or ( test { \iftoggle{firstinit} } and test{ \iffirstinitialsequal{\bpl@lfirstname}{\bpl@tfirstname} } )
- )
- and
- ( test { \bpl@ifstreq{\bpl@elvonpart}{\bpl@tvonpart} } or test { \ifdefstring{\bpl@lvonpart}{} }) }
- {\addtocategory{filtered}{\thefield{entrykey}}}%
- {}%
- }%
- \dolistloop{\bpl@plauthors}%
+ \bpl@ifplauthor{\namepartgiven}{\namepartprefix}{\namepartfamily}%
+ {\addtocategory{filtered}{\thefield{entrykey}}}%
+ {}%
}
\DeclareIndexNameFormat{editorfiltered}{%
- \edef\bpl@tsurname{\namepartfamily}%
- \edef\bpl@tfirstname{\namepartgiven}%
- \edef\bpl@tvonpart{\namepartprefix}%
- \bpl@normalize{\bpl@osurname}{\bpl@esurname}%
- \bpl@normalize{\bpl@ofirstname}{\bpl@efirstname}%
- \bpl@normalize{\bpl@ovonpart}{\bpl@evonpart}%
- % Check if we are dealing with a plauthor
- % First the plauthorname as set via option
- \ifboolexpr{
- test { \bpl@ifstreq{\bpl@esurname}{\bpl@tsurname} }
- and
- ( test { \bpl@ifstreq{\bpl@efirstname}{\bpl@tfirstname} } or test { \ifdefstring{\bpl@ofirstname}{} }
- or ( test { \iftoggle{firstinit} } and test{ \iffirstinitialsequal{\bpl@efirstname}{\bpl@tfirstname} } )
- )
- and
- ( test { \bpl@ifstreq{\bpl@evonpart}{\bpl@tvonpart} } or test { \ifdefstring{\bpl@ovonpart}{} }) }
- {\addtocategory{filtered}{\thefield{entrykey}}}%
- {}%
- % Then the name(s) set via macro
- \def\bpl@lsurname{}%
- \def\bpl@lfirstname{}%
- \def\bpl@lvonpart{}%
- \renewcommand*{\do}[1]{%
- \jsp@splitpllist{##1}%
- \bpl@normalize{\bpl@lsurname}{\bpl@elsurname}%
- \bpl@normalize{\bpl@lfirstname}{\bpl@elfirstname}%
- \bpl@normalize{\bpl@lvonpart}{\bpl@elvonpart}%
- \ifboolexpr{
- test { \bpl@ifstreq{\bpl@elsurname}{\bpl@tsurname} }
- and
- ( test { \bpl@ifstreq{\bpl@elfirstname}{\bpl@tfirstname} } or test { \ifdefstring{\bpl@lfirstname}{} }
- or ( test { \iftoggle{firstinit} } and test{ \iffirstinitialsequal{\bpl@lfirstname}{\bpl@tfirstname} } )
- )
- and
- ( test { \bpl@ifstreq{\bpl@elvonpart}{\bpl@tvonpart} } or test { \ifdefstring{\bpl@lvonpart}{} }) }
- {\addtocategory{filtered}{\thefield{entrykey}}}%
- {}%
- }%
- \dolistloop{\bpl@plauthors}%
+ \bpl@ifplauthor{\namepartgiven}{\namepartprefix}{\namepartfamily}%
+ {\addtocategory{filtered}{\thefield{entrykey}}}%
+ {}%
}
\DeclareIndexNameFormat[inbook,inproceedings,incollection]{editorfiltered}{}%
-\DeclareDelimFormat{bplfinalnamedelim}{%
- \ifnumgreater{\value{nonplauthors}}{2}{\finalandcomma}{}%
- \addspace\bibstring{and}\space}
+\DeclareDelimFormat[author]{bplfinalnamedelim}{%
+ \ifnumgreater{\value{nonplauthors}}{2}{\finalandcomma}{}%
+ \addspace\bibstring{and}\space}
-\DeclareDelimFormat{bplfinalnamedelimed}{%
- \ifnumgreater{\value{nonpleditors}}{2}{\finalandcomma}{}%
- \addspace\bibstring{and}\space}
+\DeclareDelimFormat[editor]{bplfinalnamedelim}{%
+ \ifnumgreater{\value{nonpleditors}}{2}{\finalandcomma}{}%
+ \addspace\bibstring{and}\space}
\AtDataInput{%
- \indexnames[authorfiltered]{author}%
- \indexnames[editorfiltered]{editor}%
+ \indexnames[authorfiltered]{author}%
+ \indexnames[editorfiltered]{editor}%
}
\defbibfilter{mine}{category=filtered}
@@ -454,106 +441,28 @@
\newcounter{nonplauthors}
\DeclareIndexNameFormat{nonplauthorcount}{%
- \newtoggle{havenonplauthor}%
- \toggletrue{havenonplauthor}%
- \bpl@normalize{\namepartfamily}{\bpl@tsurname}%
- \bpl@normalize{\namepartgiven}{\bpl@tfirstname}%
- \bpl@normalize{\namepartprefix}{\bpl@tvonpart}%
- \bpl@normalize{\bpl@osurname}{\bpl@esurname}%
- \bpl@normalize{\bpl@ofirstname}{\bpl@efirstname}%
- \bpl@normalize{\bpl@ovonpart}{\bpl@evonpart}%
- % Check if we are dealing with a plauthor
- % First the plauthorname as set via option
- \ifboolexpr{
- test { \bpl@ifstreq{\bpl@esurname}{\bpl@tsurname} }
- and
- ( test { \bpl@ifstreq{\bpl@efirstname}{\bpl@tfirstname} } or test { \ifdefstring{\bpl@ofirstname}{} }
- or ( test { \iftoggle{firstinit} } and test{ \iffirstinitialsequal{\bpl@efirstname}{\bpl@tfirstname} } )
- )
- and
- ( test { \bpl@ifstreq{\bpl@evonpart}{\bpl@tvonpart} } or test { \ifdefstring{\bpl@ovonpart}{} }) }
- {\togglefalse{havenonplauthor}}%
- {}%
- % Then the name(s) set via macro
- \def\bpl@lsurname{}%
- \def\bpl@lfirstname{}%
- \def\bpl@lvonpart{}%
- \renewcommand*{\do}[1]{%
- \jsp@splitpllist{##1}%
- \bpl@normalize{\bpl@lsurname}{\bpl@elsurname}%
- \bpl@normalize{\bpl@lfirstname}{\bpl@elfirstname}%
- \bpl@normalize{\bpl@lvonpart}{\bpl@elvonpart}%
- \ifboolexpr{
- test { \bpl@ifstreq{\bpl@elsurname}{\bpl@tsurname} }
- and
- ( test { \bpl@ifstreq{\bpl@elfirstname}{\bpl@tfirstname} } or test { \ifdefstring{\bpl@lfirstname}{} }
- or ( test { \iftoggle{firstinit} } and test{ \iffirstinitialsequal{\bpl@lfirstname}{\bpl@tfirstname} } )
- )
- and
- ( test { \bpl@ifstreq{\bpl@elvonpart}{\bpl@tvonpart} } or test { \ifdefstring{\bpl@lvonpart}{} }) }
- {\togglefalse{havenonplauthor}}%
- {}%
- }%
- \dolistloop{\bpl@plauthors}%
- \iftoggle{havenonplauthor}{\stepcounter{nonplauthors}}{}%
+ \bpl@ifplauthor{\namepartgiven}{\namepartprefix}{\namepartfamily}%
+ {}%
+ {\stepcounter{nonplauthors}}%
}
\newcounter{nonpleditors}
\DeclareIndexNameFormat{nonpleditorcount}{%
- \newtoggle{havenonplauthor}%
- \toggletrue{havenonplauthor}%
- \edef\bpl@tsurname{\namepartfamily}%
- \edef\bpl@tfirstname{\namepartgiven}%
- \edef\bpl@tvonpart{\namepartprefix}%
- \bpl@normalize{\bpl@osurname}{\bpl@esurname}%
- \bpl@normalize{\bpl@ofirstname}{\bpl@efirstname}%
- \bpl@normalize{\bpl@ovonpart}{\bpl@evonpart}%
- % Check if we are dealing with a plauthor
- % First the plauthorname as set via option
- \ifboolexpr{
- test { \bpl@ifstreq{\bpl@esurname}{\bpl@tsurname} }
- and
- ( test { \bpl@ifstreq{\bpl@efirstname}{\bpl@tfirstname} } or test { \ifdefstring{\bpl@ofirstname}{} }
- or ( test { \iftoggle{firstinit} } and test{ \iffirstinitialsequal{\bpl@efirstname}{\bpl@tfirstname} } )
- )
- and
- ( test { \bpl@ifstreq{\bpl@evonpart}{\bpl@tvonpart} } or test { \ifdefstring{\bpl@ovonpart}{} }) }
- {\togglefalse{havenonplauthor}}%
- {}%
- % Then the name(s) set via macro
- \def\bpl@lsurname{}%
- \def\bpl@lfirstname{}%
- \def\bpl@lvonpart{}%
- \renewcommand*{\do}[1]{%
- \jsp@splitpllist{##1}%
- \bpl@normalize{\bpl@lsurname}{\bpl@elsurname}%
- \bpl@normalize{\bpl@lfirstname}{\bpl@elfirstname}%
- \bpl@normalize{\bpl@lvonpart}{\bpl@elvonpart}%
- \ifboolexpr{
- test { \bpl@ifstreq{\bpl@elsurname}{\bpl@tsurname} }
- and
- ( test { \bpl@ifstreq{\bpl@elfirstname}{\bpl@tfirstname} } or test { \ifdefstring{\bpl@lfirstname}{} }
- or ( test { \iftoggle{firstinit} } and test{ \iffirstinitialsequal{\bpl@lfirstname}{\bpl@tfirstname} } )
- )
- and
- ( test { \bpl@ifstreq{\bpl@elvonpart}{\bpl@tvonpart} } or test { \ifdefstring{\bpl@lvonpart}{} }) }
- {\togglefalse{havenonplauthor}}%
- {}%
- }%
- \dolistloop{\bpl@plauthors}%
- \iftoggle{havenonplauthor}{\stepcounter{nonpleditors}}{}%
+ \bpl@ifplauthor{\namepartgiven}{\namepartprefix}{\namepartfamily}%
+ {}%
+ {\stepcounter{nonpleditors}}%
}
\newcounter{nonplauthor}
\newcounter{nonpleditor}
\AtEveryBibitem{%
- \setcounter{nonplauthors}{0}%
- \setcounter{nonpleditors}{0}%
- \setcounter{nonplauthor}{0}%
- \setcounter{nonpleditor}{0}%
- \indexnames[nonplauthorcount]{author}%
- \indexnames[nonpleditorcount]{editor}%
+ \setcounter{nonplauthors}{0}%
+ \setcounter{nonpleditors}{0}%
+ \setcounter{nonplauthor}{0}%
+ \setcounter{nonpleditor}{0}%
+ \indexnames[nonplauthorcount]{author}%
+ \indexnames[nonpleditorcount]{editor}%
}
%
@@ -563,287 +472,136 @@
\newtoggle{hadplauthor}
\newtoggle{isplauthor}
-
-\DeclareNameFormat{author}{%
- \bpl@normalize{\namepartfamily}{\bpl@tsurname}%
- \bpl@normalize{\namepartgiven}{\bpl@tfirstname}%
- \bpl@normalize{\namepartprefix}{\bpl@tvonpart}%
- \bpl@normalize{\bpl@osurname}{\bpl@esurname}%
- \bpl@normalize{\bpl@ofirstname}{\bpl@efirstname}%
- \bpl@normalize{\bpl@ovonpart}{\bpl@evonpart}%
- % Check if we are dealing with a plauthor
- % First the plauthorname as set via option
- \ifboolexpr{
- test { \bpl@ifstreq{\bpl@esurname}{\bpl@tsurname} }
- and
- ( test { \bpl@ifstreq{\bpl@efirstname}{\bpl@tfirstname} } or test { \ifdefstring{\bpl@ofirstname}{} }
- or ( test { \iftoggle{firstinit} } and test{ \iffirstinitialsequal{\bpl@efirstname}{\bpl@tfirstname} } )
- )
- and
- ( test { \bpl@ifstreq{\bpl@evonpart}{\bpl@tvonpart} } or test { \ifdefstring{\bpl@ovonpart}{} }) }
- {\global\toggletrue{isplauthor}}{\global\togglefalse{isplauthor}}%
- % Then the name(s) set via macro
- \def\bpl@lsurname{}%
- \def\bpl@lfirstname{}%
- \def\bpl@lvonpart{}%
- \renewcommand*{\do}[1]{%
- \jsp@splitpllist{##1}%
- \bpl@normalize{\bpl@lsurname}{\bpl@elsurname}%
- \bpl@normalize{\bpl@lfirstname}{\bpl@elfirstname}%
- \bpl@normalize{\bpl@lvonpart}{\bpl@elvonpart}%
- \ifboolexpr{
- test { \bpl@ifstreq{\bpl@elsurname}{\bpl@tsurname} }
- and
- ( test { \bpl@ifstreq{\bpl@elfirstname}{\bpl@tfirstname} } or test { \ifdefstring{\bpl@lfirstname}{} }
- or ( test { \iftoggle{firstinit} } and test{ \iffirstinitialsequal{\bpl@lfirstname}{\bpl@tfirstname} } )
- )
- and
- ( test { \bpl@ifstreq{\bpl@elvonpart}{\bpl@tvonpart} } or test { \ifdefstring{\bpl@lvonpart}{} }) }
- {\global\toggletrue{isplauthor}}{}%
- }%
- \dolistloop{\bpl@plauthors}%
- %
- % First case: plauthorhandling=highlight
- \if@hlauthor%
- % Highlight plauthor(s)
- \ifthenelse{\value{listcount}=1}{}{%
- \ifnumless{\value{listcount}}{\value{liststop}}%
- {\multinamedelim}%
- {\finalnamedelim}%
- }%
- \iftoggle{isplauthor}{%
- \plauthorhl{%
- \if@givenfirst% given name first
- \ifgiveninits
- {\ifdefvoid{\namepartgiveni}{}{\namepartgiveni\addspace}}%
- {\ifdefvoid{\namepartgiven}{}{\namepartgiven\addspace}}%
- \ifdefvoid{\namepartprefix}%
- {}%
- {\namepartprefix\addspace}%
- \namepartfamily%
- \else% family name first
- \ifdefvoid{\namepartprefix}%
+% Omission/highlighting routine
+% (common code for authors and editors)
+% \usebibmacro{bpl:handlenames}[author|editor]
+\newbibmacro{bpl:handlenames}[1][author]{%
+ \bpl@ifplauthor{\namepartgiven}{\namepartprefix}{\namepartfamily}%
+ {\global\toggletrue{isplauthor}}%
+ {\global\togglefalse{isplauthor}}%
+ %
+ % First case: plauthorhandling=highlight
+ \if@hlauthor%
+ % Highlight plauthor(s)
+ \ifthenelse{\value{listcount}=1}{}{%
+ \ifnumless{\value{listcount}}{\value{liststop}}%
+ {\multinamedelim}%
+ {\finalnamedelim}%
+ }%
+ \iftoggle{isplauthor}{%
+ \plauthorhl{%
+ \if@givenfirst% given name first
+ \ifgiveninits
+ {\ifdefvoid{\namepartgiveni}{}{\namepartgiveni\addspace}}%
+ {\ifdefvoid{\namepartgiven}{}{\namepartgiven\addspace}}%
+ \ifdefvoid{\namepartprefix}%
+ {}%
+ {\namepartprefix\addspace}%
+ \namepartfamily%
+ \else% family name first
+ \ifdefvoid{\namepartprefix}%
+ {}%
+ {\namepartprefix\addspace}%
+ \namepartfamily%
+ \ifgiveninits
+ {\ifdefvoid{\namepartgiveni}{}{\addcomma\addspace\namepartgiveni\addspace}}%
+ {\ifdefvoid{\namepartgiven}{}{\addcomma\addspace\namepartgiven\isdot\addspace}}%
+ \fi
+ }%
+ }{%
+ \if@givenfirst% given name first
+ \ifgiveninits
+ {\ifdefvoid{\namepartgiveni}{}{\namepartgiveni\addspace}}%
+ {\ifdefvoid{\namepartgiven}{}{\namepartgiven\addspace}}%
+ \ifdefvoid{\namepartprefix}%
+ {}%
+ {\namepartprefix\addspace}%
+ \namepartfamily%
+ \else% family name first
+ \ifdefvoid{\namepartprefix}%
{}%
{\namepartprefix\addspace}%
- \namepartfamily%
- \ifgiveninits
- {\ifdefvoid{\namepartgiveni}{}{\addcomma\addspace\namepartgiveni\addspace}}%
- {\ifdefvoid{\namepartgiven}{}{\addcomma\addspace\namepartgiven\isdot\addspace}}%
- \fi
- }%
- }{%
- \if@givenfirst% given name first
+ \namepartfamily%
+ \ifgiveninits
+ {\ifdefvoid{\namepartgiveni}{}{\addcomma\addspace\namepartgiveni\addspace}}%
+ {\ifdefvoid{\namepartgiven}{}{\addcomma\addspace\namepartgiven\isdot\addspace}}%
+ \fi
+ }%
+ \usebibmacro{name:andothers}%
+ %
+ % Second case: plauthorhandling=omit
+ \else% \if@hlauthor false
+ \ifthenelse{\value{listcount}=1}%
+ {\ifthenelse{\value{nonpl#1s}>0}%
+ {\bibopenparen\bibstring{with}\addspace}%
+ {}%
+ \iftoggle{isplauthor}%
+ {\global\toggletrue{plauthorprecedes}}%
+ {\global\togglefalse{plauthorprecedes}}%
+ }%
+ {}%
+ % Exclude omitted author
+ \iftoggle{isplauthor}%
+ {% <- TRUE condition
+ \global\toggletrue{hadplauthor}%
+ }% <- end TRUE condition
+ {% <- FALSE condition
+ \stepcounter{nonpl#1}%
+ \ifthenelse{\value{listcount}=1}%
+ {\global\togglefalse{hadplauthor}}%
+ {%
+ \iftoggle{plauthorprecedes}%
+ {}%
+ {%
+ \ifnumless{\value{nonpl#1}}{\value{nonpl#1s}}%
+ {\multinamedelim}%
+ {\printdelim[#1]{bplfinalnamedelim}}%
+ }%
+ }%
\ifgiveninits
{\ifdefvoid{\namepartgiveni}{}{\namepartgiveni\addspace}}%
{\ifdefvoid{\namepartgiven}{}{\namepartgiven\addspace}}%
- \ifdefvoid{\namepartprefix}%
- {}%
- {\namepartprefix\addspace}%
- \namepartfamily%
- \else% family name first
- \ifdefvoid{\namepartprefix}%
- {}%
- {\namepartprefix\addspace}%
+ \ifdefvoid{\namepartprefix}{}{\namepartprefix\addspace}%
+ \global\togglefalse{plauthorprecedes}%
\namepartfamily%
- \ifgiveninits
- {\ifdefvoid{\namepartgiveni}{}{\addcomma\addspace\namepartgiveni\addspace}}%
- {\ifdefvoid{\namepartgiven}{}{\addcomma\addspace\namepartgiven\isdot\addspace}}%
- \fi
- }%
- \usebibmacro{name:andothers}%
- %
- % Second case: plauthorhandling=omit
- \else% \if@hlauthor false
- \ifthenelse{\value{listcount}=1}%
- {\ifthenelse{\value{nonplauthors}>0}%
- {\bibopenparen\bibstring{with}\addspace}%
- {}%
- \iftoggle{isplauthor}%
- {\global\toggletrue{plauthorprecedes}}%
- {\global\togglefalse{plauthorprecedes}}%
- }%
- {}%
- % Exclude omitted author
- \iftoggle{isplauthor}%
- {% <- TRUE condition
- \global\toggletrue{hadplauthor}%
- }% <- end TRUE condition
- {% <- FALSE condition
- \stepcounter{nonplauthor}%
- \ifthenelse{\value{listcount}=1}%
- {\global\togglefalse{hadplauthor}}%
- {%
- \iftoggle{plauthorprecedes}%
- {}%
- {%
- \ifnumless{\value{nonplauthor}}{\value{nonplauthors}}%
- {\multinamedelim}%
- {\bplfinalnamedelim}%
- }%
- }%
- \ifgiveninits
- {\ifdefvoid{\namepartgiveni}{}{\namepartgiveni\addspace}}%
- {\ifdefvoid{\namepartgiven}{}{\namepartgiven\addspace}}%
- \ifdefvoid{\namepartprefix}{}{\namepartprefix\addspace}%
- \global\togglefalse{plauthorprecedes}%
- \namepartfamily%
- }% <- end FALSE condition
- %
- \usebibmacro{name:andothers}%
- \ifthenelse{\value{nonplauthors}>0\AND\value{listcount}=\value{liststop}}{\unspace\bibcloseparen}{}%
- \fi% end of \if@hlauthor else condition
+ }% <- end FALSE condition
+ %
+ \usebibmacro{name:andothers}%
+ \ifthenelse{\value{nonpl#1s}>0\AND\value{listcount}=\value{liststop}}%
+ {\unspace\bibcloseparen}%
+ {}%
+ \fi% end of \if@hlauthor else condition
+}
+
+\DeclareNameFormat{author}{%
+ \usebibmacro{bpl:handlenames}%
}
\DeclareNameFormat{editor}{%
- \bpl@normalize{\namepartfamily}{\bpl@tsurname}%
- \bpl@normalize{\namepartgiven}{\bpl@tfirstname}%
- \bpl@normalize{\namepartprefix}{\bpl@tvonpart}%
- \bpl@normalize{\bpl@osurname}{\bpl@esurname}%
- \bpl@normalize{\bpl@ofirstname}{\bpl@efirstname}%
- \bpl@normalize{\bpl@ovonpart}{\bpl@evonpart}%
- % Check if we are dealing with a plauthor
- % First the plauthorname as set via option
- \ifboolexpr{
- test { \bpl@ifstreq{\bpl@esurname}{\bpl@tsurname} }
- and
- ( test { \bpl@ifstreq{\bpl@efirstname}{\bpl@tfirstname} } or test { \ifdefstring{\bpl@ofirstname}{} }
- or ( test { \iftoggle{firstinit} } and test{ \iffirstinitialsequal{\bpl@efirstname}{\bpl@tfirstname} } )
- )
- and
- ( test { \bpl@ifstreq{\bpl@evonpart}{\bpl@tvonpart} } or test { \ifdefstring{\bpl@ovonpart}{} }) }
- {\global\toggletrue{isplauthor}}{\global\togglefalse{isplauthor}}%
- % Then the name(s) set via macro
- \def\bpl@lsurname{}%
- \def\bpl@lfirstname{}%
- \def\bpl@lvonpart{}%
- \renewcommand*{\do}[1]{%
- \jsp@splitpllist{##1}%
- \bpl@normalize{\bpl@lsurname}{\bpl@elsurname}%
- \bpl@normalize{\bpl@lfirstname}{\bpl@elfirstname}%
- \bpl@normalize{\bpl@lvonpart}{\bpl@elvonpart}%
- \ifboolexpr{
- test { \bpl@ifstreq{\bpl@elsurname}{\bpl@tsurname} }
- and
- ( test { \bpl@ifstreq{\bpl@elfirstname}{\bpl@tfirstname} } or test { \ifdefstring{\bpl@lfirstname}{} }
- or ( test { \iftoggle{firstinit} } and test{ \iffirstinitialsequal{\bpl@lfirstname}{\bpl@tfirstname} } )
- )
- and
- ( test { \bpl@ifstreq{\bpl@elvonpart}{\bpl@tvonpart} } or test { \ifdefstring{\bpl@lvonpart}{} }) }
- {\global\toggletrue{isplauthor}}{}%
- }%
- \dolistloop{\bpl@plauthors}%
- %
- % First case: plauthorhandling=highlight
- \if@hlauthor
- % Highlight omitted editor
- \ifthenelse{\value{listcount}=1}{}{%
- \ifnumless{\value{listcount}}{\value{liststop}-1}%
- {\multinamedelim}%
- {\finalnamedelim}%
- }%
- \iftoggle{isplauthor}{%
- \plauthorhl{%
- \if@givenfirst% given name first
- \ifgiveninits
- {\ifdefvoid{\namepartgiveni}{}{\namepartgiveni\addspace}}%
- {\ifdefvoid{\namepartgiven}{}{\namepartgiven\addspace}}%
- \ifdefvoid{\namepartprefix}%
- {}%
- {\namepartprefix\addspace}%
- \namepartfamily%
- \else% family name first
- \ifdefvoid{\namepartprefix}%
- {}%
- {\namepartprefix\addspace}%
- \namepartfamily%
- \ifgiveninits
- {\ifdefvoid{\namepartgiveni}{}{\addcomma\addspace\namepartgiveni\addspace}}%
- {\ifdefvoid{\namepartgiven}{}{\addcomma\addspace\namepartgiven\isdot\addspace}}%
- \fi
- }%
- }{%
- \if@givenfirst% given name first
- \ifgiveninits
- {\ifdefvoid{\namepartgiveni}{}{\namepartgiveni\addspace}}%
- {\ifdefvoid{\namepartgiven}{}{\namepartgiven\addspace}}%
- \ifdefvoid{\namepartprefix}%
- {}%
- {\namepartprefix\addspace}%
- \namepartfamily%
- \else% family name first
- \ifdefvoid{\namepartprefix}%
- {}%
- {\namepartprefix\addspace}%
- \namepartfamily%
- \ifgiveninits
- {\ifdefvoid{\namepartgiveni}{}{\addcomma\addspace\namepartgiveni\addspace}}%
- {\ifdefvoid{\namepartgiven}{}{\addcomma\addspace\namepartgiven\isdot\addspace}}%
- \fi
- }%
- \usebibmacro{name:andothers}%
- %
- % Second case: plauthorhandling=omit
- \else% \if@hlauthor false
- \ifthenelse{\value{listcount}=1}%
- {\ifthenelse{\value{nonpleditors}>0}%
- {\bibopenparen\bibstring{with}\addspace}%
- {}%
- \iftoggle{isplauthor}%
- {\global\toggletrue{plauthorprecedes}}%
- {\global\togglefalse{plauthorprecedes}}%
- }%
- {}%
- % Exclude omitted editor
- \iftoggle{isplauthor}%
- {% <- TRUE condition
- \global\toggletrue{hadplauthor}%
- }% <- end TRUE condition
- {% <- FALSE condition
- \stepcounter{nonpleditor}%
- \ifthenelse{\value{listcount}=1}%
- {\global\togglefalse{hadplauthor}}%
- {%
- \iftoggle{plauthorprecedes}%
- {}%
- {%
- \ifnumless{\value{nonpleditor}}{\value{nonpleditors}}%
- {\multinamedelim}%
- {\bplfinalnamedelimed}%
- }%
- }%
- \ifgiveninits
- {\ifdefvoid{\namepartgiveni}{}{\namepartgiveni\addspace}}%
- {\ifdefvoid{\namepartgiven}{}{\namepartgiven\addspace}}%
- \ifdefvoid{\namepartprefix}{}{\namepartprefix\addspace}%
- \global\togglefalse{plauthorprecedes}%
- \namepartfamily%
- }% <- end FALSE condition
- %
- \usebibmacro{name:andothers}%
- \ifthenelse{\value{nonpleditors}>0\AND\value{listcount}=\value{liststop}}{\unspace\bibcloseparen}{}%
- \fi% end of \if@hlauthor else condition
+ \usebibmacro{bpl:handlenames}[editor]%
}
\DeclareNameFormat{bookauthor}{%
- \if@givenfirst% given name first
- \ifgiveninits
- {\ifdefvoid{\namepartgiveni}{}{\namepartgiveni\addspace}}%
- {\ifdefvoid{\namepartgiven}{}{\namepartgiven\addspace}}%
- \ifdefvoid{\namepartprefix}{}{\namepartprefix\addspace}%
- \namepartfamily%
- \else% family name first
- \ifdefvoid{\namepartprefix}{}{\namepartprefix\addspace}%
- \namepartfamily%
- \ifgiveninits
- {\ifdefvoid{\namepartgiveni}{}{\addcomma\addspace\namepartgiveni\addspace}}%
- {\ifdefvoid{\namepartgiven}{}{\addcomma\addspace\namepartgiven\isdot\addspace}}%
- \fi
- \ifthenelse{\value{listcount}<\value{liststop}}
- {\ifnumless{\value{listcount}}{\value{liststop}-1}%
- {\multinamedelim}%
- {\finalnamedelim}}%
- {}%
- \usebibmacro{name:andothers}}
+ \if@givenfirst% given name first
+ \ifgiveninits
+ {\ifdefvoid{\namepartgiveni}{}{\namepartgiveni\addspace}}%
+ {\ifdefvoid{\namepartgiven}{}{\namepartgiven\addspace}}%
+ \ifdefvoid{\namepartprefix}{}{\namepartprefix\addspace}%
+ \namepartfamily%
+ \else% family name first
+ \ifdefvoid{\namepartprefix}{}{\namepartprefix\addspace}%
+ \namepartfamily%
+ \ifgiveninits
+ {\ifdefvoid{\namepartgiveni}{}{\addcomma\addspace\namepartgiveni\addspace}}%
+ {\ifdefvoid{\namepartgiven}{}{\addcomma\addspace\namepartgiven\isdot\addspace}}%
+ \fi
+ \ifthenelse{\value{listcount}<\value{liststop}}
+ {\ifnumless{\value{listcount}}{\value{liststop}-1}%
+ {\multinamedelim}%
+ {\finalnamedelim}}%
+ {}%
+ \usebibmacro{name:andothers}%
+}
%
@@ -851,191 +609,229 @@
%
\renewbibmacro*{author}{%
- \if@hlauthor
- \ifnameundef{author}
- {}
- {\usebibmacro{bpl:marginyear}%
- \printnames{author}%
- \setunit{\addspace}%
- \iffieldundef{nameaddon}
- {}
- {\mkbibbrackets{\bibstring{alias}%
- \addspace\printfield{nameaddon}}}}
- \adddot\addspace\usebibmacro{bpl:year+labelyear}%
- \else% \if@hlauthor false
- \ifnameundef{author}
- {}
- {\usebibmacro{bpl:marginyear}%
- \usebibmacro{bpl:year+labelyear}\addspace%
- \printnames{author}%
- \setunit{\addspace}%
- \iffieldundef{nameaddon}
- {}
- {\mkbibbrackets{\bibstring{alias}%
- \addspace\printfield{nameaddon}}}}
- \fi% end of \if@hlauthor else condition
+ \if@hlauthor
+ \ifnameundef{author}
+ {}
+ {%
+ \usebibmacro{bpl:marginyear}%
+ \printnames{author}%
+ \setunit{\addspace}%
+ \iffieldundef{nameaddon}
+ {}
+ {%
+ \mkbibbrackets{%
+ \bibstring{alias}%
+ \addspace\printfield{nameaddon}%
+ }%
+ }%
+ }%
+ \adddot\addspace\usebibmacro{bpl:year+labelyear}%
+ \else% \if@hlauthor false
+ \ifnameundef{author}
+ {}
+ {%
+ \usebibmacro{bpl:marginyear}%
+ \usebibmacro{bpl:year+labelyear}\addspace%
+ \printnames{author}%
+ \setunit{\addspace}%
+ \iffieldundef{nameaddon}
+ {}
+ {%
+ \mkbibbrackets{%
+ \bibstring{alias}%
+ \addspace\printfield{nameaddon}%
+ }%
+ }%
+ }%
+ \fi% end of \if@hlauthor else condition
}
\renewbibmacro*{editor}{%
- \if@hlauthor
- \ifnameundef{editor}
- {}
- {\usebibmacro{bpl:marginyear}%
- \printnames{editor}%
- \setunit{\addspace}%
- \usebibmacro{editorstrg}}
- \adddot\addspace%
- \usebibmacro{bpl:year+labelyear}%
- \else% \if@hlauthor false
- \ifnameundef{editor}
- {}
- {\usebibmacro{bpl:marginyear}%
- \usebibmacro{bpl:year+labelyear}%
- \addspace%
- \printnames{editor}%
- \setunit{\addspace}%
- \usebibmacro{editorstrg}}
- \fi% end of \if@hlauthor else condition
+ \if@hlauthor
+ \ifnameundef{editor}
+ {}
+ {%
+ \usebibmacro{bpl:marginyear}%
+ \printnames{editor}%
+ \setunit{\addspace}%
+ \usebibmacro{editorstrg}%
+ }%
+ \adddot\addspace%
+ \usebibmacro{bpl:year+labelyear}%
+ \else% \if@hlauthor false
+ \ifnameundef{editor}
+ {}
+ {%
+ \usebibmacro{bpl:marginyear}%
+ \usebibmacro{bpl:year+labelyear}%
+ \addspace%
+ \printnames{editor}%
+ \setunit{\addspace}%
+ \usebibmacro{editorstrg}%
+ }%
+ \fi% end of \if@hlauthor else condition
}
\renewbibmacro*{editor+others}{%
-\if@hlauthor
- \ifboolexpr{
- test \ifuseeditor
- and
- not test {\ifnameundef{editor}}
- }
- {\usebibmacro{bpl:marginyear}%
- \printnames{editor}%
- \setunit{\addcomma\space}%
- \usebibmacro{editor+othersstrg}%
- \adddot\addspace%
- \usebibmacro{bpl:year+labelyear}%
- \clearname{editor}}
- {}%
-\else% \if@hlauthor false
- \ifboolexpr{
- test \ifuseeditor
- and
- not test {\ifnameundef{editor}}
- }
- {\usebibmacro{bpl:marginyear}%
- \usebibmacro{bpl:year+labelyear}%
- \addspace%
- \printnames{editor}%
- \setunit{\addcomma\space}%
- \usebibmacro{editor+othersstrg}%
- \clearname{editor}}
- {}%
-\fi% end of \if@hlauthor else condition
+ \if@hlauthor
+ \ifboolexpr{
+ test \ifuseeditor
+ and not test {\ifnameundef{editor}}}
+ {%
+ \usebibmacro{bpl:marginyear}%
+ \printnames{editor}%
+ \setunit{\addcomma\space}%
+ \usebibmacro{editor+othersstrg}%
+ \adddot\addspace%
+ \usebibmacro{bpl:year+labelyear}%
+ \clearname{editor}%
+ }
+ {}%
+ \else% \if@hlauthor false
+ \ifboolexpr{
+ test \ifuseeditor
+ and not test {\ifnameundef{editor}}}
+ {%
+ \usebibmacro{bpl:marginyear}%
+ \usebibmacro{bpl:year+labelyear}%
+ \addspace%
+ \printnames{editor}%
+ \setunit{\addcomma\space}%
+ \usebibmacro{editor+othersstrg}%
+ \clearname{editor}%
+ }
+ {}%
+ \fi% end of \if@hlauthor else condition
}
\renewbibmacro*{name:andothers}{%
- \ifthenelse{\value{listcount}=\value{liststop}\AND
- \ifmorenames}
- {\ifnum\value{liststop}>1 \finalandcomma\fi
- \andothersdelim\biblcstring{andothers}}
- {}}
+ \ifthenelse{\value{listcount}=\value{liststop}\AND\ifmorenames}
+ {%
+ \ifnum\value{liststop}>1 \finalandcomma\fi
+ \andothersdelim\biblcstring{andothers}%
+ }
+ {}%
+}
\ifbpl@standardbasestyle
-% Work around issue in authoryear.bbx:
-% test for empty year before printing parens
-\renewbibmacro*{issue+date}{%
- \ifboolexpr{test {\iffieldundef{year}}
- and test {\iffieldundef{issue}}}
- {}
- {\printtext[parens]{%
- \printfield{issue}%
- \setunit*{\addspace}%
- \usebibmacro{date}}}%
- \newunit}
+ % Work around issue in authoryear.bbx:
+ % test for empty year before printing parens
+ \renewbibmacro*{issue+date}{%
+ \ifboolexpr{test {\iffieldundef{year}}
+ and test {\iffieldundef{issue}}}
+ {}
+ {%
+ \printtext[parens]{%
+ \printfield{issue}%
+ \setunit*{\addspace}%
+ \usebibmacro{date}}%
+ }%
+ \newunit%
+ }
\fi
\newbibmacro*{bpl:date:makedate}{%
- \printtext{%
- \iffieldundef{year}{%
- \iffieldundef{pubstate}{}{%
- \printfield{pubstate}%
+ \printtext{%
+ \iffieldundef{year}{%
+ \iffieldundef{pubstate}%
+ {}
+ {\printfield{pubstate}}%
+ }{%
+ \iffieldundef{month}%
+ {\printdateextra}%
+ {\printdate}%
}%
- }{%
- \iffieldundef{month}{%
- \printdateextra}%
- {\printdate}%
- }%
- }%
+ }%
}
\newbibmacro*{bpl:date:labeldate+extradate}{%
- \mkbibbold{\usebibmacro{bpl:date:makedate}}%
+ \mkbibbold{\usebibmacro{bpl:date:makedate}}%
}
\AtBeginDocument{%
-\if@unboldyear
-\renewbibmacro*{bpl:date:labeldate+extradate}{%
- \usebibmacro{bpl:date:makedate}%
-}
-\fi
+ \if@unboldyear
+ \renewbibmacro*{bpl:date:labeldate+extradate}{%
+ \usebibmacro{bpl:date:makedate}%
+ }
+ \fi
}
\newbibmacro*{bpl:marginyear}{%
-\if@marginyear%
- \iffieldundef{year}{%
- \iffieldundef{pubstate}{}{%
- \iffieldequals{pubstate}{\bbx@lasthash}{}{%
- \printtext{\marginpar{\small\plmarginyear{\bibsentence\printfield{pubstate}}}}%
- }%
- }%
- }{%
- \iffieldequals{year}{\bbx@lasthash}{}{%
- \printtext{\marginpar{\small\plmarginyear{\bibsentence\printfield{year}}}}%
- }%
- }%
-\fi
+ \if@marginyear%
+ \iffieldundef{year}{%
+ \iffieldundef{pubstate}%
+ {}%
+ {\iffieldequals{pubstate}{\bbx@lasthash}%
+ {}%
+ {%
+ \printtext{\marginpar{\small\plmarginyear{\bibsentence\printfield{pubstate}}}}%
+ }%
+ }%
+ }{%
+ \iffieldequals{year}{\bbx@lasthash}%
+ {}%
+ {%
+ \printtext{\marginpar{\small\plmarginyear{\bibsentence\printfield{year}}}}%
+ }%
+ }%
+ \fi
}
\newbibmacro*{bpl:year+labelyear}{%
- \iffieldundef{year}{%
- \iffieldundef{pubstate}{\let\bbx@lasthash\undefined}{%
- \usebibmacro{bpl:date:labeldate+extradate}%
- \savefield{pubstate}{\bbx@lasthash}%
- \clearfield{pubstate}%
- }%
+ \iffieldundef{year}{%
+ \iffieldundef{pubstate}%
+ {\let\bbx@lasthash\undefined}%
+ {%
+ \usebibmacro{bpl:date:labeldate+extradate}%
+ \savefield{pubstate}{\bbx@lasthash}%
+ \clearfield{pubstate}%
+ }%
}{%
- \usebibmacro{bpl:date:labeldate+extradate}%
- \savefield{year}{\bbx@lasthash}%
- \clearfield{year}%
+ \usebibmacro{bpl:date:labeldate+extradate}%
+ \savefield{year}{\bbx@lasthash}%
+ \clearfield{year}%
}%
}
\newbibmacro*{bpl:review:author/label}{%
- \ifnameundef{author}
- {\usebibmacro{label}}
- {\usebibmacro{bpl:review:author}}
+ \ifnameundef{author}
+ {\usebibmacro{label}}
+ {\usebibmacro{bpl:review:author}}
}
\newbibmacro*{bpl:review:author}{%
- \ifnameundef{author}
- {\let\bbx@lasthash\undefined}
- {\ifthenelse{\iffieldequals{namehash}{\bbx@lasthash}\AND\NOT
- \iffirstonpage}
- {\bibnamedash}
- {\savefield{namehash}{\bbx@lasthash}%
- \printnames{author}%
- \setunit{\addspace}}}%
+ \ifnameundef{author}
+ {\let\bbx@lasthash\undefined}
+ {%
+ \ifthenelse{\iffieldequals{namehash}{\bbx@lasthash}\AND\NOT\iffirstonpage}
+ {\bibnamedash}
+ {%
+ \savefield{namehash}{\bbx@lasthash}%
+ \printnames{author}%
+ \setunit{\addspace}%
+ }%
+ }%
\iffieldundef{nameaddon}
- {}
- {\mkbibbrackets{\bibstring[\unspace]{alias}\addspace\printfield{nameaddon}}%
- \addspace}%
- \usebibmacro{bpl:review:year+labelyear}}
+ {}
+ {%
+ \mkbibbrackets{\bibstring[\unspace]{alias}\addspace\printfield{nameaddon}}%
+ \addspace%
+ }%
+ \usebibmacro{bpl:review:year+labelyear}%
+}
\newbibmacro*{bpl:review:year+labelyear}{%
- \iffieldundef{year}
- {}
- {\printtext[parens]{%
- \printfield{labelyear}%
- \printfield{extradate}}}}
+ \iffieldundef{year}
+ {}
+ {%
+ \printtext[parens]{%
+ \printfield{labelyear}%
+ \printfield{extradate}%
+ }%
+ }%
+}
%
% l7n
@@ -1043,16 +839,16 @@
\NewBibliographyString{with}
\NewBibliographyString{parttranslationof}
\DefineBibliographyStrings{english}{%
- parttranslationof = {partial translation of},
- with = {with}
+ parttranslationof = {partial translation of},
+ with = {with}
}
\DefineBibliographyStrings{french}{%
- parttranslationof = {traduction partielle de},
- with = {avec}
+ parttranslationof = {traduction partielle de},
+ with = {avec}
}
\DefineBibliographyStrings{german}{%
- parttranslationof = {Teil\"ubersetzung von},
- with = {mit}
+ parttranslationof = {Teil\"ubersetzung von},
+ with = {mit}
}
@@ -1061,29 +857,30 @@
%
\DeclareBibliographyDriver{review}{%
- \usebibmacro{bpl:review:author/label}%
- \setunit*{\addcolon\space}%
- \usebibmacro{title}%
- \newunit\newblock
- \usebibmacro{in:}%
- \usebibmacro{journal+issuetitle}%
- \newunit\newblock
- \printfield{note}%
- \setunit{\addcomma\space}%
- \printfield{pages}
- \newunit\newblock
- \printfield{issn}%
- \newunit\newblock
- \printfield{doi}%
- \setunit{\addspace}
- \usebibmacro{addendum+pubstate}%
- \newunit\newblock
- \usebibmacro{url+urldate}%
- \newunit\newblock
- \usebibmacro{pageref}%
- \newunit\newblock
- \usebibmacro{related}%
- \usebibmacro{finentry}}
+ \usebibmacro{bpl:review:author/label}%
+ \setunit*{\addcolon\space}%
+ \usebibmacro{title}%
+ \newunit\newblock
+ \usebibmacro{in:}%
+ \usebibmacro{journal+issuetitle}%
+ \newunit\newblock
+ \printfield{note}%
+ \setunit{\addcomma\space}%
+ \printfield{pages}
+ \newunit\newblock
+ \printfield{issn}%
+ \newunit\newblock
+ \printfield{doi}%
+ \setunit{\addspace}
+ \usebibmacro{addendum+pubstate}%
+ \newunit\newblock
+ \usebibmacro{url+urldate}%
+ \newunit\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \usebibmacro{related}%
+ \usebibmacro{finentry}%
+}
%
% Sorting schemes
@@ -1092,210 +889,210 @@
% Consider the whole date (year-month-day)
% Sorting date (descending), name, title
\DeclareSortingTemplate{ddnt}{
- \sort{
- \field{presort}
- }
- \sort[final]{
- \field{sortkey}
- }
- \sort[direction=descending]{
- \field[strside=left,strwidth=4]{sortyear}
- \field[strside=left,strwidth=4]{year}
- \literal{9999}
- }
- \sort[direction=descending]{
- \field[padside=left,padwidth=2,padchar=0]{month}
- \literal{00}
- }
- \sort[direction=descending]{
- \field[padside=left,padwidth=2,padchar=0]{day}
- \literal{00}
- }
- \sort{
- \field{sortname}
- \field{author}
- \field{editor}
- \field{translator}
- \field{sorttitle}
- \field{title}
- }
- \sort{
- \field{sorttitle}
- \field{title}
- }
+ \sort{
+ \field{presort}
+ }
+ \sort[final]{
+ \field{sortkey}
+ }
+ \sort[direction=descending]{
+ \field[strside=left,strwidth=4]{sortyear}
+ \field[strside=left,strwidth=4]{year}
+ \literal{9999}
+ }
+ \sort[direction=descending]{
+ \field[padside=left,padwidth=2,padchar=0]{month}
+ \literal{00}
+ }
+ \sort[direction=descending]{
+ \field[padside=left,padwidth=2,padchar=0]{day}
+ \literal{00}
+ }
+ \sort{
+ \field{sortname}
+ \field{author}
+ \field{editor}
+ \field{translator}
+ \field{sorttitle}
+ \field{title}
+ }
+ \sort{
+ \field{sorttitle}
+ \field{title}
+ }
}
% Sorting year (descending), month, day, name, title
\DeclareSortingTemplate{ydmdnt}{
- \sort{
- \field{presort}
- }
- \sort[final]{
- \field{sortkey}
- }
- \sort[direction=descending]{
- \field[strside=left,strwidth=4]{sortyear}
- \field[strside=left,strwidth=4]{year}
- \literal{9999}
- }
- \sort{
- \field[padside=left,padwidth=2,padchar=0]{month}
- \literal{00}
- }
- \sort{
- \field[padside=left,padwidth=2,padchar=0]{day}
- \literal{00}
- }
- \sort{
- \field{sortname}
- \field{author}
- \field{editor}
- \field{translator}
- \field{sorttitle}
- \field{title}
- }
- \sort{
- \field{sorttitle}
- \field{title}
- }
+ \sort{
+ \field{presort}
+ }
+ \sort[final]{
+ \field{sortkey}
+ }
+ \sort[direction=descending]{
+ \field[strside=left,strwidth=4]{sortyear}
+ \field[strside=left,strwidth=4]{year}
+ \literal{9999}
+ }
+ \sort{
+ \field[padside=left,padwidth=2,padchar=0]{month}
+ \literal{00}
+ }
+ \sort{
+ \field[padside=left,padwidth=2,padchar=0]{day}
+ \literal{00}
+ }
+ \sort{
+ \field{sortname}
+ \field{author}
+ \field{editor}
+ \field{translator}
+ \field{sorttitle}
+ \field{title}
+ }
+ \sort{
+ \field{sorttitle}
+ \field{title}
+ }
}
% Sorting date (ascending), name, title
\DeclareSortingTemplate{dnt}{
- \sort{
- \field{presort}
- }
- \sort[final]{
- \field{sortkey}
- }
- \sort{
- \field[strside=left,strwidth=4]{sortyear}
- \field[strside=left,strwidth=4]{year}
- \literal{9999}
- }
- \sort{
- \field[padside=left,padwidth=2,padchar=0]{month}
- \literal{00}
- }
- \sort{
- \field[padside=left,padwidth=2,padchar=0]{day}
- \literal{00}
- }
- \sort{
- \field{sortname}
- \field{author}
- \field{editor}
- \field{translator}
- \field{sorttitle}
- \field{title}
- }
- \sort{
- \field{sorttitle}
- \field{title}
- }
+ \sort{
+ \field{presort}
+ }
+ \sort[final]{
+ \field{sortkey}
+ }
+ \sort{
+ \field[strside=left,strwidth=4]{sortyear}
+ \field[strside=left,strwidth=4]{year}
+ \literal{9999}
+ }
+ \sort{
+ \field[padside=left,padwidth=2,padchar=0]{month}
+ \literal{00}
+ }
+ \sort{
+ \field[padside=left,padwidth=2,padchar=0]{day}
+ \literal{00}
+ }
+ \sort{
+ \field{sortname}
+ \field{author}
+ \field{editor}
+ \field{translator}
+ \field{sorttitle}
+ \field{title}
+ }
+ \sort{
+ \field{sorttitle}
+ \field{title}
+ }
}
% Sorting schemes without name
% Sorting year (descending), title
\DeclareSortingTemplate{ydt}{
- \sort{
- \field{presort}
- }
- \sort[final]{
- \field{sortkey}
- }
- \sort[direction=descending]{
- \field[strside=left,strwidth=4]{sortyear}
- \field[strside=left,strwidth=4]{year}
- \literal{9999}
- }
- \sort{
- \field{sorttitle}
- \field{title}
- }
+ \sort{
+ \field{presort}
+ }
+ \sort[final]{
+ \field{sortkey}
+ }
+ \sort[direction=descending]{
+ \field[strside=left,strwidth=4]{sortyear}
+ \field[strside=left,strwidth=4]{year}
+ \literal{9999}
+ }
+ \sort{
+ \field{sorttitle}
+ \field{title}
+ }
}
% Consider the whole date (year-month-day)
% Sorting date (descending), title
\DeclareSortingTemplate{ddt}{
- \sort{
- \field{presort}
- }
- \sort[final]{
- \field{sortkey}
- }
- \sort[direction=descending]{
- \field[strside=left,strwidth=4]{sortyear}
- \field[strside=left,strwidth=4]{year}
- \literal{9999}
- }
- \sort[direction=descending]{
- \field[padside=left,padwidth=2,padchar=0]{month}
- \literal{00}
- }
- \sort[direction=descending]{
- \field[padside=left,padwidth=2,padchar=0]{day}
- \literal{00}
- }
- \sort{
- \field{sorttitle}
- \field{title}
- }
+ \sort{
+ \field{presort}
+ }
+ \sort[final]{
+ \field{sortkey}
+ }
+ \sort[direction=descending]{
+ \field[strside=left,strwidth=4]{sortyear}
+ \field[strside=left,strwidth=4]{year}
+ \literal{9999}
+ }
+ \sort[direction=descending]{
+ \field[padside=left,padwidth=2,padchar=0]{month}
+ \literal{00}
+ }
+ \sort[direction=descending]{
+ \field[padside=left,padwidth=2,padchar=0]{day}
+ \literal{00}
+ }
+ \sort{
+ \field{sorttitle}
+ \field{title}
+ }
}
% Sorting year (descending), month, day, title
\DeclareSortingTemplate{ydmdt}{
- \sort{
- \field{presort}
- }
- \sort[final]{
- \field{sortkey}
- }
- \sort[direction=descending]{
- \field[strside=left,strwidth=4]{sortyear}
- \field[strside=left,strwidth=4]{year}
- \literal{9999}
- }
- \sort{
- \field[padside=left,padwidth=2,padchar=0]{month}
- \literal{00}
- }
- \sort{
- \field[padside=left,padwidth=2,padchar=0]{day}
- \literal{00}
- }
- \sort{
- \field{sorttitle}
- \field{title}
- }
+ \sort{
+ \field{presort}
+ }
+ \sort[final]{
+ \field{sortkey}
+ }
+ \sort[direction=descending]{
+ \field[strside=left,strwidth=4]{sortyear}
+ \field[strside=left,strwidth=4]{year}
+ \literal{9999}
+ }
+ \sort{
+ \field[padside=left,padwidth=2,padchar=0]{month}
+ \literal{00}
+ }
+ \sort{
+ \field[padside=left,padwidth=2,padchar=0]{day}
+ \literal{00}
+ }
+ \sort{
+ \field{sorttitle}
+ \field{title}
+ }
}
% Sorting date (ascending), title
\DeclareSortingTemplate{dt}{
- \sort{
- \field{presort}
- }
- \sort[final]{
- \field{sortkey}
- }
- \sort{
- \field[strside=left,strwidth=4]{sortyear}
- \field[strside=left,strwidth=4]{year}
- \literal{9999}
- }
- \sort{
- \field[padside=left,padwidth=2,padchar=0]{month}
- \literal{00}
- }
- \sort{
- \field[padside=left,padwidth=2,padchar=0]{day}
- \literal{00}
- }
- \sort{
- \field{sorttitle}
- \field{title}
- }
+ \sort{
+ \field{presort}
+ }
+ \sort[final]{
+ \field{sortkey}
+ }
+ \sort{
+ \field[strside=left,strwidth=4]{sortyear}
+ \field[strside=left,strwidth=4]{year}
+ \literal{9999}
+ }
+ \sort{
+ \field[padside=left,padwidth=2,padchar=0]{month}
+ \literal{00}
+ }
+ \sort{
+ \field[padside=left,padwidth=2,padchar=0]{day}
+ \literal{00}
+ }
+ \sort{
+ \field{sorttitle}
+ \field{title}
+ }
}
@@ -1307,39 +1104,39 @@
% ignore author constellation on extralabel assignment.
\if@hlauthor
\else
-\DeclareStyleSourcemap{
- \maps[datatype=bibtex]{
- \map[overwrite]{
- \step[fieldset=shortauthor, fieldvalue={1111}]
- }
- }
+ \DeclareStyleSourcemap{
+ \maps[datatype=bibtex]{
+ \map[overwrite]{
+ \step[fieldset=shortauthor, fieldvalue={1111}]
+ }
+ }
}
\fi
% Correctly sort pubstates.
\DeclareStyleSourcemap{
- \maps[datatype=bibtex]{
- \map{
- \step[fieldsource=year, final]
- \step[fieldset=sortyear, origfieldval]
- }
- \map{
- \step[fieldsource=pubstate, match=\regexp{forthcoming}, final]
- \step[fieldset=sortyear, fieldvalue={2222}]
- }
- \map{
- \step[fieldsource=pubstate, match=\regexp{inpress}, final]
- \step[fieldset=sortyear, fieldvalue={3333}]
- }
- \map{
- \step[fieldsource=pubstate, match=\regexp{submitted}, final]
- \step[fieldset=sortyear, fieldvalue={4444}]
+ \maps[datatype=bibtex]{
+ \map{
+ \step[fieldsource=year, final]
+ \step[fieldset=sortyear, origfieldval]
+ }
+ \map{
+ \step[fieldsource=pubstate, match=\regexp{forthcoming}, final]
+ \step[fieldset=sortyear, fieldvalue={2222}]
+ }
+ \map{
+ \step[fieldsource=pubstate, match=\regexp{inpress}, final]
+ \step[fieldset=sortyear, fieldvalue={3333}]
+ }
+ \map{
+ \step[fieldsource=pubstate, match=\regexp{submitted}, final]
+ \step[fieldset=sortyear, fieldvalue={4444}]
+ }
+ \map{
+ \step[fieldsource=pubstate, match=\regexp{inpreparation}, final]
+ \step[fieldset=sortyear, fieldvalue={5555}]
+ }
}
- \map{
- \step[fieldsource=pubstate, match=\regexp{inpreparation}, final]
- \step[fieldset=sortyear, fieldvalue={5555}]
- }
- }
}
@@ -1351,17 +1148,18 @@
% Issue a warning if used.
\newtoggle{bpl:omitname}
\def\omitname{%
- \toggletrue{bpl:omitname}%
- \@ifnextchar[%
- {\plauthorname@i}
- {\plauthorname@i[]}%
+ \toggletrue{bpl:omitname}%
+ \@ifnextchar[%
+ {\plauthorname@i}
+ {\plauthorname@i[]}%
}
\AtEndPreamble{%
- \iftoggle{bpl:omitname}{
- \PackageWarning{biblatex-publist}{The \protect\omitname\space macro is deprecated!\MessageBreak
- Please use \protect\plauthorname\space instead.}{}%
- }
+ \iftoggle{bpl:omitname}{%
+ \PackageWarning{biblatex-publist}%
+ {The \protect\omitname\space macro is deprecated!\MessageBreak
+ Please use \protect\plauthorname\space instead.}{}%
+ }%
}