texlive[50989] Master/texmf-dist: biblatex-publist (16apr19)

commits+karl at tug.org commits+karl at tug.org
Sun May 5 00:47:27 CEST 2019


Revision: 50989
          http://tug.org/svn/texlive?view=revision&revision=50989
Author:   karl
Date:     2019-05-05 00:47:27 +0200 (Sun, 05 May 2019)
Log Message:
-----------
biblatex-publist (16apr19)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/biblatex-publist/README
    trunk/Master/texmf-dist/doc/latex/biblatex-publist/biblatex-publist.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex-publist/biblatex-publist.tex
    trunk/Master/texmf-dist/tex/latex/biblatex-publist/publist.bbx
    trunk/Master/texmf-dist/tex/latex/biblatex-publist/publist.cbx

Modified: trunk/Master/texmf-dist/doc/latex/biblatex-publist/README
===================================================================
--- trunk/Master/texmf-dist/doc/latex/biblatex-publist/README	2019-05-04 22:47:13 UTC (rev 50988)
+++ trunk/Master/texmf-dist/doc/latex/biblatex-publist/README	2019-05-04 22:47:27 UTC (rev 50989)
@@ -45,6 +45,9 @@
 
 == CHANGES ==
 
+* V. 1.16 (2019-04-16):
+	- Major code cleanup.
+
 * V. 1.15 (2019-02-22):
 	- Add support for omitting multiple authors.
 	- Fix documentation issues.

Modified: trunk/Master/texmf-dist/doc/latex/biblatex-publist/biblatex-publist.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex-publist/biblatex-publist.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/biblatex-publist/biblatex-publist.tex	2019-05-04 22:47:13 UTC (rev 50988)
+++ trunk/Master/texmf-dist/doc/latex/biblatex-publist/biblatex-publist.tex	2019-05-04 22:47:27 UTC (rev 50989)
@@ -87,6 +87,8 @@
 % Conditional page breaks
 \def\condbreak#1{%
 	\vskip 0pt plus #1\pagebreak[3]\vskip 0pt plus -#1\relax}
+% \condbr{<number of lines>}
+\newcommand*\condbr[1]{\condbreak{#1\baselineskip}}
 
 \renewcommand{\lstlistingname}{Example}
 
@@ -100,7 +102,7 @@
 \thanks{Please report issues via \protect\url{https://github.com/jspitz/biblatex-publist}.}%
 }
 
-\date{Version 1.15, 2019/02/22}
+\date{Version 1.16, 2019/04/16}
 \maketitle
 
 \begin{abstract}
@@ -244,7 +246,7 @@
 \end{description}
 
 
-\subsection{Multiple authors and\slash or name variants}\label{sec:multiauthors}
+\subsection{Handling multiple authors and\slash or name variants}\label{sec:multiauthors}
 
 If multiple \jcsmacro{plauthorname} specifications have been entered (or a \jcsmacro{plauthorname} specification
 in addition to a specification via the options \joption{plauthorname}, \joption{plauthorname} and
@@ -254,9 +256,9 @@
 list (for instance to mark contributions of a research team):
 \begin{lstlisting}[moretexcs={[2]{plauthorname}}]
 \usepackage[style=publist,plauthorhandling=highlight]{biblatex}
-\plauthorname[John]{Doe}
-\plauthorname[Mary][van]{Smith}
-\plauthorname{Wittgenstein}
+\plauthorname[Cristiano]{Ronaldo}
+\plauthorname[\'Angel][Di]{Mar\'ia}
+\plauthorname{Neymar}
 \end{lstlisting}
 %
 Multiple specifications can also be used to deal with name variants:
@@ -273,8 +275,8 @@
 which have to be adjusted accordingly if names are omitted). However, it does not strike me sensible to do so (in other words,
 if you need to deal with a \emph{team} of authors, you should really consider to use \joption{plauthorhandling=highlight}).
 
-Note that this also applies to filtering (see sec.~\ref{sec:filtering}), i.\,e., the \joption{mine} filter considers
-entries authored by \emph{any} of the specified persons.
+Note that multiple specifications also affect filtering (see sec.~\ref{sec:filtering}), i.\,e., the \joption{mine} filter selects
+entries authored or edited by any and all specified persons.
 
 
 \section{Customization}
@@ -532,11 +534,16 @@
 \endrefcontext
 \end{lstlisting}
 
-\clearpage
+\condbr{4}
 
 \section{Revision Log}
 
 \begin{description}
+	\item [{V. 1.16 (2019-04-16):}]~
+	\begin{itemize}
+		\item Major code cleanup.
+	\end{itemize}
+
 	\item [{V. 1.15 (2019-02-22):}]~
 	\begin{itemize}
 		\item Add support for omitting multiple authors. See sec.~\ref{sec:multiauthors}.
@@ -588,7 +595,7 @@
 		      of the publication list items
 		\item Documentation improvements.
 	\end{itemize}
-\clearpage
+\condbr{3}
 	\item [{V.~1.8 (2017-11-14):}]~
 	\begin{itemize}
 		\item Adapt to \bibltx\ 3.8. This version is now required.
@@ -632,7 +639,7 @@
 		\item Assure the margin text always starts uppercased (relevant for pubstates).
 		\item Minor corrections to the manual.
 	\end{itemize}
-\clearpage
+\condbr{3}
    \item [{V.~1.3 (2016-08-06):}]~
 
    \begin{itemize}

Modified: trunk/Master/texmf-dist/tex/latex/biblatex-publist/publist.bbx
===================================================================
--- trunk/Master/texmf-dist/tex/latex/biblatex-publist/publist.bbx	2019-05-04 22:47:13 UTC (rev 50988)
+++ trunk/Master/texmf-dist/tex/latex/biblatex-publist/publist.bbx	2019-05-04 22:47:27 UTC (rev 50989)
@@ -25,19 +25,19 @@
 %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
-\def\bpl at version{1.15}
-\def\bpl at rdate{2019/02/22}
+\def\bpl at version{1.16}
+\def\bpl at rdate{2019/04/16}
 
 \ProvidesFile{publist.bbx}[\bpl at rdate\space v.\bpl at 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 at 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 at 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 at osurname{#1}}
+    \PackageWarning{biblatex-publist}
+        {The omitname option is deprecated!\MessageBreak
+         Please use plauthorname instead.}{}%
+    \def\bpl at osurname{#1}}
 \DeclareBibliographyOption{omitfirstname}{%
-  \PackageWarning{biblatex-publist}{The omitfirstname option is deprecated!\MessageBreak
-                                  Please use plauthorfirstname instead.}{}%
-  \def\bpl at ofirstname{#1}}
+    \PackageWarning{biblatex-publist}
+         {The omitfirstname option is deprecated!\MessageBreak
+          Please use plauthorfirstname instead.}{}%
+    \def\bpl at ofirstname{#1}}
 \DeclareBibliographyOption{omitnameprefix}{%
-  \PackageWarning{biblatex-publist}{The omitnameprefix option is deprecated!\MessageBreak
-                                  Please use plauthornameprefix instead.}{}%
-  \def\bpl at ovonpart{#1}}
+    \PackageWarning{biblatex-publist}
+        {The omitnameprefix option is deprecated!\MessageBreak
+         Please use plauthornameprefix instead.}{}%
+    \def\bpl at ovonpart{#1}}
 
 % Valid options
 \DeclareBibliographyOption{plauthorname}{\def\bpl at osurname{#1}}
@@ -141,9 +144,9 @@
 
 % Default sorting depends on plauthorhandling
 \if at 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,21 +171,22 @@
 % http://tex.stackexchange.com/a/79583/19291)
 % and normalize spaces
 \def\bpl at normalize#1#2{%
-  \begingroup
-  \def\bibnamedelima{ }%
-  \def\bibnamedelimb{ }%
-  \def\IeC##1{##1}%
-  \protected at edef\@tempa{#1}%
-  \gdef\@gtempa{}%
-  \expandafter\bpl@@normalize\@tempa\@nil
-  \endgroup
-  \let#2\@gtempa
+    \begingroup
+    \def\bibnamedelima{ }%
+    \def\bibnamedelimb{ }%
+    \def\IeC##1{##1}%
+    \protected at 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
@@ -189,13 +193,13 @@
 % (based on a suggestion by Qrrbrbirlbel at
 % https://tex.stackexchange.com/a/132254)
 \newcommand*{\iffirstinitialsequal}{%
-  \@expandtwoargs\if at startswith}
+    \@expandtwoargs\if at startswith}
 \newcommand*{\if at 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,13 +221,59 @@
 % Fully expanded comparison
 % (adapted from scrbase.sty)
 \newcommand\bpl at 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 at ifplauthor{firstname}{prefix}{surname}{true}{false}
+\newcommand*\bpl at ifplauthor[3]{%
+    \newtoggle{checkplauthor}%
+    \bpl at normalize{#1}{\bpl at tfirstname}%
+    \bpl at normalize{#2}{\bpl at tvonpart}%
+    \bpl at normalize{#3}{\bpl at tsurname}%
+    \bpl at normalize{\bpl at osurname}{\bpl at esurname}%
+    \bpl at normalize{\bpl at ofirstname}{\bpl at efirstname}%
+    \bpl at normalize{\bpl at ovonpart}{\bpl at evonpart}%
+    % Check if we are dealing with a plauthor
+    % First the plauthorname as set via option
+    \ifboolexpr{
+        test { \bpl at ifstreq{\bpl at esurname}{\bpl at tsurname} }
+        and
+        ( test { \bpl at ifstreq{\bpl at efirstname}{\bpl at tfirstname} } or test { \ifdefstring{\bpl at ofirstname}{} }
+          or ( test { \iftoggle{firstinit} } and test{ \iffirstinitialsequal{\bpl at efirstname}{\bpl at tfirstname} } )
+        )
+        and
+        ( test { \bpl at ifstreq{\bpl at evonpart}{\bpl at tvonpart} } or test { \ifdefstring{\bpl at ovonpart}{} }) }
+        {\toggletrue{checkplauthor}}{\togglefalse{checkplauthor}}%
+    % Then the name(s) set via macro
+    \def\bpl at lsurname{}%
+    \def\bpl at lfirstname{}%
+    \def\bpl at lvonpart{}%
+    \renewcommand*{\do}[1]{%
+        \jsp at splitpllist{##1}%
+        \bpl at normalize{\bpl at lsurname}{\bpl at elsurname}%
+        \bpl at normalize{\bpl at lfirstname}{\bpl at elfirstname}%
+        \bpl at normalize{\bpl at lvonpart}{\bpl at elvonpart}%
+        \ifboolexpr{
+            test { \bpl at ifstreq{\bpl at elsurname}{\bpl at tsurname} }
+            and
+            ( test { \bpl at ifstreq{\bpl at elfirstname}{\bpl at tfirstname} } or test { \ifdefstring{\bpl at lfirstname}{} }
+              or ( test { \iftoggle{firstinit} } and test{ \iffirstinitialsequal{\bpl at lfirstname}{\bpl at tfirstname} } )
+            )
+            and
+            ( test { \bpl at ifstreq{\bpl at elvonpart}{\bpl at tvonpart} } or test { \ifdefstring{\bpl at lvonpart}{} }) }
+            {\toggletrue{checkplauthor}}{}%
+    }%
+    \dolistloop{\bpl at plauthors}%
+    \iftoggle{checkplauthor}%
+        {\expandafter\@firstoftwo}%
+        {\expandafter\@secondoftwo}%
+}
 
 
 %
@@ -239,7 +289,7 @@
 % List to store multiple pl authors (for highlight only)
 \def\bpl at plauthors{}
 %
-% Manual way to specify publication list author name
+% Manual way to specify publication list author(s) name
 \def\plauthorname{%
    \@ifnextchar[%
      {\plauthorname at 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 at refsection}{\bbx at saverefsection}%
-    {\csnumgdef{bbx at itemtotal}{\csuse{bbx at itemtotal}+\csuse{bbx at currentitem}}}{}%
-   \csnumgdef{bbx at saverefsection}{\c at 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 at refsection}{\bbx at saverefsection}%
+     {\csnumgdef{bbx at itemtotal}{\csuse{bbx at itemtotal}+\csuse{bbx at currentitem}}}{}%
+      \csnumgdef{bbx at saverefsection}{\c at refsection}%
+    }
+    {\item}
 
 \DeclareFieldFormat{labelnumber}{%
     \ifbool{newsection}{%
@@ -322,10 +376,13 @@
 
 % Print labelnumber as actual number, plus item total
 \newrobustcmd{\mkbibdesc}[1]{%
-  \number\numexpr\csuse{bbx at itemtotal}+#1\relax}
+    \number\numexpr\csuse{bbx at itemtotal}+#1\relax%
+}
 
 % Way to manual shift the numbering (undocumented)
-\newcommand*\decreasebbxnumbering[1]{\csnumgdef{bbx at itemtotal}{\csuse{bbx at itemtotal}-#1}}
+\newcommand*\decreasebbxnumbering[1]{%
+    \csnumgdef{bbx at itemtotal}{\csuse{bbx at itemtotal}-#1}%
+}
 
 
 %
@@ -332,10 +389,12 @@
 % 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 at normalize{\namepartfamily}{\bpl at tsurname}%
-   \bpl at normalize{\namepartgiven}{\bpl at tfirstname}%
-   \bpl at normalize{\namepartprefix}{\bpl at tvonpart}%
-   \bpl at normalize{\bpl at osurname}{\bpl at esurname}%
-   \bpl at normalize{\bpl at ofirstname}{\bpl at efirstname}%
-   \bpl at normalize{\bpl at ovonpart}{\bpl at evonpart}%
-   % Check if we are dealing with a plauthor
-   % First the plauthorname as set via option
-   \ifboolexpr{
-      test { \bpl at ifstreq{\bpl at esurname}{\bpl at tsurname} }
-      and
-      ( test { \bpl at ifstreq{\bpl at efirstname}{\bpl at tfirstname} } or test { \ifdefstring{\bpl at ofirstname}{} }
-        or ( test { \iftoggle{firstinit} } and test{ \iffirstinitialsequal{\bpl at efirstname}{\bpl at tfirstname} } ) 
-      )
-      and
-      ( test { \bpl at ifstreq{\bpl at evonpart}{\bpl at tvonpart} } or test { \ifdefstring{\bpl at ovonpart}{} }) }
-    {\addtocategory{filtered}{\thefield{entrykey}}}%
-    {}%
-    % Then the name(s) set via macro
-    \def\bpl at lsurname{}%
-    \def\bpl at lfirstname{}%
-    \def\bpl at lvonpart{}%
-    \renewcommand*{\do}[1]{%
-        \jsp at splitpllist{##1}%
-        \bpl at normalize{\bpl at lsurname}{\bpl at elsurname}%
-        \bpl at normalize{\bpl at lfirstname}{\bpl at elfirstname}%
-        \bpl at normalize{\bpl at lvonpart}{\bpl at elvonpart}%
-        \ifboolexpr{
-              test { \bpl at ifstreq{\bpl at elsurname}{\bpl at tsurname} }
-              and
-              ( test { \bpl at ifstreq{\bpl at elfirstname}{\bpl at tfirstname} } or test { \ifdefstring{\bpl at lfirstname}{} }
-                or ( test { \iftoggle{firstinit} } and test{ \iffirstinitialsequal{\bpl at lfirstname}{\bpl at tfirstname} } )
-              )
-              and
-              ( test { \bpl at ifstreq{\bpl at elvonpart}{\bpl at tvonpart} } or test { \ifdefstring{\bpl at lvonpart}{} }) }
-            {\addtocategory{filtered}{\thefield{entrykey}}}%
-            {}%
-    }%
-   \dolistloop{\bpl at plauthors}%
+    \bpl at ifplauthor{\namepartgiven}{\namepartprefix}{\namepartfamily}%
+       {\addtocategory{filtered}{\thefield{entrykey}}}%
+       {}%
 }
 
 \DeclareIndexNameFormat{editorfiltered}{%
-   \edef\bpl at tsurname{\namepartfamily}%
-   \edef\bpl at tfirstname{\namepartgiven}%
-   \edef\bpl at tvonpart{\namepartprefix}%
-   \bpl at normalize{\bpl at osurname}{\bpl at esurname}%
-   \bpl at normalize{\bpl at ofirstname}{\bpl at efirstname}%
-   \bpl at normalize{\bpl at ovonpart}{\bpl at evonpart}%
-   % Check if we are dealing with a plauthor
-   % First the plauthorname as set via option
-   \ifboolexpr{
-      test { \bpl at ifstreq{\bpl at esurname}{\bpl at tsurname} }
-      and
-      ( test { \bpl at ifstreq{\bpl at efirstname}{\bpl at tfirstname} } or test { \ifdefstring{\bpl at ofirstname}{} }
-        or ( test { \iftoggle{firstinit} } and test{ \iffirstinitialsequal{\bpl at efirstname}{\bpl at tfirstname} } ) 
-      )
-      and
-      ( test { \bpl at ifstreq{\bpl at evonpart}{\bpl at tvonpart} } or test { \ifdefstring{\bpl at ovonpart}{} }) }
-    {\addtocategory{filtered}{\thefield{entrykey}}}%
-    {}%
-    % Then the name(s) set via macro
-    \def\bpl at lsurname{}%
-    \def\bpl at lfirstname{}%
-    \def\bpl at lvonpart{}%
-    \renewcommand*{\do}[1]{%
-        \jsp at splitpllist{##1}%
-        \bpl at normalize{\bpl at lsurname}{\bpl at elsurname}%
-        \bpl at normalize{\bpl at lfirstname}{\bpl at elfirstname}%
-        \bpl at normalize{\bpl at lvonpart}{\bpl at elvonpart}%
-        \ifboolexpr{
-              test { \bpl at ifstreq{\bpl at elsurname}{\bpl at tsurname} }
-              and
-              ( test { \bpl at ifstreq{\bpl at elfirstname}{\bpl at tfirstname} } or test { \ifdefstring{\bpl at lfirstname}{} }
-                or ( test { \iftoggle{firstinit} } and test{ \iffirstinitialsequal{\bpl at lfirstname}{\bpl at tfirstname} } )
-              )
-              and
-              ( test { \bpl at ifstreq{\bpl at elvonpart}{\bpl at tvonpart} } or test { \ifdefstring{\bpl at lvonpart}{} }) }
-            {\addtocategory{filtered}{\thefield{entrykey}}}%
-            {}%
-    }%
-   \dolistloop{\bpl at plauthors}%
+    \bpl at 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 at normalize{\namepartfamily}{\bpl at tsurname}%
-   \bpl at normalize{\namepartgiven}{\bpl at tfirstname}%
-   \bpl at normalize{\namepartprefix}{\bpl at tvonpart}%
-   \bpl at normalize{\bpl at osurname}{\bpl at esurname}%
-   \bpl at normalize{\bpl at ofirstname}{\bpl at efirstname}%
-   \bpl at normalize{\bpl at ovonpart}{\bpl at evonpart}%
-   % Check if we are dealing with a plauthor
-   % First the plauthorname as set via option
-   \ifboolexpr{
-      test { \bpl at ifstreq{\bpl at esurname}{\bpl at tsurname} }
-      and
-      ( test { \bpl at ifstreq{\bpl at efirstname}{\bpl at tfirstname} } or test { \ifdefstring{\bpl at ofirstname}{} }
-        or ( test { \iftoggle{firstinit} } and test{ \iffirstinitialsequal{\bpl at efirstname}{\bpl at tfirstname} } ) 
-      )
-      and
-      ( test { \bpl at ifstreq{\bpl at evonpart}{\bpl at tvonpart} } or test { \ifdefstring{\bpl at ovonpart}{} }) }
-    {\togglefalse{havenonplauthor}}%
-    {}%
-    % Then the name(s) set via macro
-    \def\bpl at lsurname{}%
-    \def\bpl at lfirstname{}%
-    \def\bpl at lvonpart{}%
-    \renewcommand*{\do}[1]{%
-        \jsp at splitpllist{##1}%
-        \bpl at normalize{\bpl at lsurname}{\bpl at elsurname}%
-        \bpl at normalize{\bpl at lfirstname}{\bpl at elfirstname}%
-        \bpl at normalize{\bpl at lvonpart}{\bpl at elvonpart}%
-        \ifboolexpr{
-              test { \bpl at ifstreq{\bpl at elsurname}{\bpl at tsurname} }
-              and
-              ( test { \bpl at ifstreq{\bpl at elfirstname}{\bpl at tfirstname} } or test { \ifdefstring{\bpl at lfirstname}{} }
-                or ( test { \iftoggle{firstinit} } and test{ \iffirstinitialsequal{\bpl at lfirstname}{\bpl at tfirstname} } )
-              )
-              and
-              ( test { \bpl at ifstreq{\bpl at elvonpart}{\bpl at tvonpart} } or test { \ifdefstring{\bpl at lvonpart}{} }) }
-            {\togglefalse{havenonplauthor}}%
-            {}%
-    }%
-   \dolistloop{\bpl at plauthors}%
-   \iftoggle{havenonplauthor}{\stepcounter{nonplauthors}}{}%
+    \bpl at ifplauthor{\namepartgiven}{\namepartprefix}{\namepartfamily}%
+       {}%
+       {\stepcounter{nonplauthors}}%
 }
 
 \newcounter{nonpleditors}
 
 \DeclareIndexNameFormat{nonpleditorcount}{%
-   \newtoggle{havenonplauthor}%
-   \toggletrue{havenonplauthor}%
-   \edef\bpl at tsurname{\namepartfamily}%
-   \edef\bpl at tfirstname{\namepartgiven}%
-   \edef\bpl at tvonpart{\namepartprefix}%
-   \bpl at normalize{\bpl at osurname}{\bpl at esurname}%
-   \bpl at normalize{\bpl at ofirstname}{\bpl at efirstname}%
-   \bpl at normalize{\bpl at ovonpart}{\bpl at evonpart}%
-   % Check if we are dealing with a plauthor
-   % First the plauthorname as set via option
-   \ifboolexpr{
-      test { \bpl at ifstreq{\bpl at esurname}{\bpl at tsurname} }
-      and
-      ( test { \bpl at ifstreq{\bpl at efirstname}{\bpl at tfirstname} } or test { \ifdefstring{\bpl at ofirstname}{} }
-        or ( test { \iftoggle{firstinit} } and test{ \iffirstinitialsequal{\bpl at efirstname}{\bpl at tfirstname} } ) 
-      )
-      and
-      ( test { \bpl at ifstreq{\bpl at evonpart}{\bpl at tvonpart} } or test { \ifdefstring{\bpl at ovonpart}{} }) }
-    {\togglefalse{havenonplauthor}}%
-    {}%
-    % Then the name(s) set via macro
-    \def\bpl at lsurname{}%
-    \def\bpl at lfirstname{}%
-    \def\bpl at lvonpart{}%
-    \renewcommand*{\do}[1]{%
-        \jsp at splitpllist{##1}%
-        \bpl at normalize{\bpl at lsurname}{\bpl at elsurname}%
-        \bpl at normalize{\bpl at lfirstname}{\bpl at elfirstname}%
-        \bpl at normalize{\bpl at lvonpart}{\bpl at elvonpart}%
-        \ifboolexpr{
-              test { \bpl at ifstreq{\bpl at elsurname}{\bpl at tsurname} }
-              and
-              ( test { \bpl at ifstreq{\bpl at elfirstname}{\bpl at tfirstname} } or test { \ifdefstring{\bpl at lfirstname}{} }
-                or ( test { \iftoggle{firstinit} } and test{ \iffirstinitialsequal{\bpl at lfirstname}{\bpl at tfirstname} } )
-              )
-              and
-              ( test { \bpl at ifstreq{\bpl at elvonpart}{\bpl at tvonpart} } or test { \ifdefstring{\bpl at lvonpart}{} }) }
-            {\togglefalse{havenonplauthor}}%
-            {}%
-    }%
-   \dolistloop{\bpl at plauthors}%
-   \iftoggle{havenonplauthor}{\stepcounter{nonpleditors}}{}%
+    \bpl at 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 at normalize{\namepartfamily}{\bpl at tsurname}%
-  \bpl at normalize{\namepartgiven}{\bpl at tfirstname}%
-  \bpl at normalize{\namepartprefix}{\bpl at tvonpart}%
-  \bpl at normalize{\bpl at osurname}{\bpl at esurname}%
-  \bpl at normalize{\bpl at ofirstname}{\bpl at efirstname}%
-  \bpl at normalize{\bpl at ovonpart}{\bpl at evonpart}%
-  % Check if we are dealing with a plauthor
-  % First the plauthorname as set via option
-  \ifboolexpr{
-      test { \bpl at ifstreq{\bpl at esurname}{\bpl at tsurname} }
-      and
-      ( test { \bpl at ifstreq{\bpl at efirstname}{\bpl at tfirstname} } or test { \ifdefstring{\bpl at ofirstname}{} }
-        or ( test { \iftoggle{firstinit} } and test{ \iffirstinitialsequal{\bpl at efirstname}{\bpl at tfirstname} } )
-      )
-      and
-      ( test { \bpl at ifstreq{\bpl at evonpart}{\bpl at tvonpart} } or test { \ifdefstring{\bpl at ovonpart}{} }) }
-      {\global\toggletrue{isplauthor}}{\global\togglefalse{isplauthor}}%
-  % Then the name(s) set via macro
-  \def\bpl at lsurname{}%
-  \def\bpl at lfirstname{}%
-  \def\bpl at lvonpart{}%
-  \renewcommand*{\do}[1]{%
-     \jsp at splitpllist{##1}%
-     \bpl at normalize{\bpl at lsurname}{\bpl at elsurname}%
-     \bpl at normalize{\bpl at lfirstname}{\bpl at elfirstname}%
-     \bpl at normalize{\bpl at lvonpart}{\bpl at elvonpart}%
-     \ifboolexpr{
-           test { \bpl at ifstreq{\bpl at elsurname}{\bpl at tsurname} }
-           and
-           ( test { \bpl at ifstreq{\bpl at elfirstname}{\bpl at tfirstname} } or test { \ifdefstring{\bpl at lfirstname}{} }
-             or ( test { \iftoggle{firstinit} } and test{ \iffirstinitialsequal{\bpl at lfirstname}{\bpl at tfirstname} } )
-           )
-           and
-           ( test { \bpl at ifstreq{\bpl at elvonpart}{\bpl at tvonpart} } or test { \ifdefstring{\bpl at lvonpart}{} }) }
-          {\global\toggletrue{isplauthor}}{}%
-  }%
-  \dolistloop{\bpl at plauthors}%
-  %
-  % First case: plauthorhandling=highlight
-  \if at hlauthor%
-      % Highlight plauthor(s)
-      \ifthenelse{\value{listcount}=1}{}{%
-          \ifnumless{\value{listcount}}{\value{liststop}}%
-             {\multinamedelim}%
-             {\finalnamedelim}%
-      }%
-      \iftoggle{isplauthor}{%
-          \plauthorhl{%
-              \if at givenfirst% given name first
-                  \ifgiveninits
-                      {\ifdefvoid{\namepartgiveni}{}{\namepartgiveni\addspace}}%
-                      {\ifdefvoid{\namepartgiven}{}{\namepartgiven\addspace}}%
-                  \ifdefvoid{\namepartprefix}%
+% Omission/highlighting routine
+% (common code for authors and editors)
+% \usebibmacro{bpl:handlenames}[author|editor]
+\newbibmacro{bpl:handlenames}[1][author]{%
+    \bpl at ifplauthor{\namepartgiven}{\namepartprefix}{\namepartfamily}%
+       {\global\toggletrue{isplauthor}}%
+       {\global\togglefalse{isplauthor}}%
+    %
+    % First case: plauthorhandling=highlight
+    \if at hlauthor%
+        % Highlight plauthor(s)
+        \ifthenelse{\value{listcount}=1}{}{%
+            \ifnumless{\value{listcount}}{\value{liststop}}%
+                {\multinamedelim}%
+                {\finalnamedelim}%
+        }%
+        \iftoggle{isplauthor}{%
+            \plauthorhl{%
+                \if at 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 at 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%
-              \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 at 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 at 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}%
+              \ifdefvoid{\namepartprefix}{}{\namepartprefix\addspace}%
+              \global\togglefalse{plauthorprecedes}%
               \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 at 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 at 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 at hlauthor else condition
 }
 
+\DeclareNameFormat{author}{%
+    \usebibmacro{bpl:handlenames}%
+}
+
 \DeclareNameFormat{editor}{%
-  \bpl at normalize{\namepartfamily}{\bpl at tsurname}%
-  \bpl at normalize{\namepartgiven}{\bpl at tfirstname}%
-  \bpl at normalize{\namepartprefix}{\bpl at tvonpart}%
-  \bpl at normalize{\bpl at osurname}{\bpl at esurname}%
-  \bpl at normalize{\bpl at ofirstname}{\bpl at efirstname}%
-  \bpl at normalize{\bpl at ovonpart}{\bpl at evonpart}%
-  % Check if we are dealing with a plauthor
-  % First the plauthorname as set via option
-  \ifboolexpr{
-      test { \bpl at ifstreq{\bpl at esurname}{\bpl at tsurname} }
-      and
-      ( test { \bpl at ifstreq{\bpl at efirstname}{\bpl at tfirstname} } or test { \ifdefstring{\bpl at ofirstname}{} }
-        or ( test { \iftoggle{firstinit} } and test{ \iffirstinitialsequal{\bpl at efirstname}{\bpl at tfirstname} } )
-      )
-      and
-      ( test { \bpl at ifstreq{\bpl at evonpart}{\bpl at tvonpart} } or test { \ifdefstring{\bpl at ovonpart}{} }) }
-      {\global\toggletrue{isplauthor}}{\global\togglefalse{isplauthor}}%
-  % Then the name(s) set via macro
-  \def\bpl at lsurname{}%
-  \def\bpl at lfirstname{}%
-  \def\bpl at lvonpart{}%
-  \renewcommand*{\do}[1]{%
-     \jsp at splitpllist{##1}%
-     \bpl at normalize{\bpl at lsurname}{\bpl at elsurname}%
-     \bpl at normalize{\bpl at lfirstname}{\bpl at elfirstname}%
-     \bpl at normalize{\bpl at lvonpart}{\bpl at elvonpart}%
-     \ifboolexpr{
-           test { \bpl at ifstreq{\bpl at elsurname}{\bpl at tsurname} }
-           and
-           ( test { \bpl at ifstreq{\bpl at elfirstname}{\bpl at tfirstname} } or test { \ifdefstring{\bpl at lfirstname}{} }
-             or ( test { \iftoggle{firstinit} } and test{ \iffirstinitialsequal{\bpl at lfirstname}{\bpl at tfirstname} } )
-           )
-           and
-           ( test { \bpl at ifstreq{\bpl at elvonpart}{\bpl at tvonpart} } or test { \ifdefstring{\bpl at lvonpart}{} }) }
-          {\global\toggletrue{isplauthor}}{}%
-  }%
-  \dolistloop{\bpl at plauthors}%
-  %
-  % First case: plauthorhandling=highlight
-  \if at hlauthor
-      % Highlight omitted editor
-      \ifthenelse{\value{listcount}=1}{}{%
-          \ifnumless{\value{listcount}}{\value{liststop}-1}%
-              {\multinamedelim}%
-              {\finalnamedelim}%
-      }%
-      \iftoggle{isplauthor}{%
-          \plauthorhl{%
-              \if at 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 at 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 at 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 at hlauthor else condition
+    \usebibmacro{bpl:handlenames}[editor]%
 }
 
 \DeclareNameFormat{bookauthor}{%
-  \if at 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 at 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 at 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 at 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 at hlauthor else condition
+    \if at 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 at 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 at hlauthor else condition
 }
 
 \renewbibmacro*{editor}{%
- \if at hlauthor
-  \ifnameundef{editor}
-    {}
-    {\usebibmacro{bpl:marginyear}%
-     \printnames{editor}%
-     \setunit{\addspace}%
-     \usebibmacro{editorstrg}}
-     \adddot\addspace%
-     \usebibmacro{bpl:year+labelyear}%
- \else% \if at hlauthor false
-  \ifnameundef{editor}
-    {}
-    {\usebibmacro{bpl:marginyear}%
-     \usebibmacro{bpl:year+labelyear}%
-      \addspace%
-      \printnames{editor}%
-     \setunit{\addspace}%
-     \usebibmacro{editorstrg}}
- \fi% end of \if at hlauthor else condition
+    \if at hlauthor
+        \ifnameundef{editor}
+            {}
+            {%
+             \usebibmacro{bpl:marginyear}%
+             \printnames{editor}%
+             \setunit{\addspace}%
+             \usebibmacro{editorstrg}%
+            }%
+            \adddot\addspace%
+            \usebibmacro{bpl:year+labelyear}%
+    \else% \if at hlauthor false
+        \ifnameundef{editor}
+            {}
+            {%
+             \usebibmacro{bpl:marginyear}%
+             \usebibmacro{bpl:year+labelyear}%
+             \addspace%
+             \printnames{editor}%
+             \setunit{\addspace}%
+             \usebibmacro{editorstrg}%
+            }%
+    \fi% end of \if at hlauthor else condition
 }
 
 \renewbibmacro*{editor+others}{%
-\if at 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 at 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 at hlauthor else condition
+    \if at 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 at 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 at 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 at 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 at unboldyear
-\renewbibmacro*{bpl:date:labeldate+extradate}{%
-   \usebibmacro{bpl:date:makedate}%
+    \if at unboldyear
+        \renewbibmacro*{bpl:date:labeldate+extradate}{%
+            \usebibmacro{bpl:date:makedate}%
+        }
+    \fi
 }
-\fi
-}
 
 \newbibmacro*{bpl:marginyear}{%
-\if at marginyear%
-  \iffieldundef{year}{%
-    \iffieldundef{pubstate}{}{%   
-     \iffieldequals{pubstate}{\bbx at lasthash}{}{%
-      \printtext{\marginpar{\small\plmarginyear{\bibsentence\printfield{pubstate}}}}%
-     }%
-      }%
-    }{%
-     \iffieldequals{year}{\bbx at lasthash}{}{%
-      \printtext{\marginpar{\small\plmarginyear{\bibsentence\printfield{year}}}}%
-     }%
-    }%
-\fi
+    \if at marginyear%
+        \iffieldundef{year}{%
+            \iffieldundef{pubstate}%
+                {}%
+                {\iffieldequals{pubstate}{\bbx at lasthash}%
+                     {}%
+                     {%
+                      \printtext{\marginpar{\small\plmarginyear{\bibsentence\printfield{pubstate}}}}%
+                     }%
+                }%
+        }{%
+            \iffieldequals{year}{\bbx at lasthash}%
+                {}%
+                {%
+                 \printtext{\marginpar{\small\plmarginyear{\bibsentence\printfield{year}}}}%
+                }%
+        }%
+    \fi
 }
     
 \newbibmacro*{bpl:year+labelyear}{%
-  \iffieldundef{year}{%
-    \iffieldundef{pubstate}{\let\bbx at lasthash\undefined}{%
-     \usebibmacro{bpl:date:labeldate+extradate}%
-     \savefield{pubstate}{\bbx at lasthash}%
-     \clearfield{pubstate}%
-     }%
+    \iffieldundef{year}{%
+        \iffieldundef{pubstate}%
+            {\let\bbx at lasthash\undefined}%
+            {%
+             \usebibmacro{bpl:date:labeldate+extradate}%
+             \savefield{pubstate}{\bbx at lasthash}%
+             \clearfield{pubstate}%
+            }%
     }{%
-     \usebibmacro{bpl:date:labeldate+extradate}%
-     \savefield{year}{\bbx at lasthash}%
-     \clearfield{year}%
+         \usebibmacro{bpl:date:labeldate+extradate}%
+         \savefield{year}{\bbx at 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 at lasthash\undefined}
-    {\ifthenelse{\iffieldequals{namehash}{\bbx at lasthash}\AND\NOT
-                 \iffirstonpage}
-       {\bibnamedash}
-       {\savefield{namehash}{\bbx at lasthash}%
-        \printnames{author}%
-        \setunit{\addspace}}}%
+    \ifnameundef{author}
+        {\let\bbx at lasthash\undefined}
+        {%
+         \ifthenelse{\iffieldequals{namehash}{\bbx at lasthash}\AND\NOT\iffirstonpage}
+             {\bibnamedash}
+             {%
+              \savefield{namehash}{\bbx at 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,107 +889,107 @@
 % 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
@@ -1199,103 +996,103 @@
 
 % 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 at 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]
+    \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{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}]
-    }
-  }
 }
 
 
@@ -1351,17 +1148,18 @@
 % Issue a warning if used.
 \newtoggle{bpl:omitname}
 \def\omitname{%
-   \toggletrue{bpl:omitname}%
-   \@ifnextchar[%
-     {\plauthorname at i}
-     {\plauthorname at i[]}%
+    \toggletrue{bpl:omitname}%
+    \@ifnextchar[%
+        {\plauthorname at i}
+        {\plauthorname at 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.}{}%
+    }%
 }
 
 

Modified: trunk/Master/texmf-dist/tex/latex/biblatex-publist/publist.cbx
===================================================================
--- trunk/Master/texmf-dist/tex/latex/biblatex-publist/publist.cbx	2019-05-04 22:47:13 UTC (rev 50988)
+++ trunk/Master/texmf-dist/tex/latex/biblatex-publist/publist.cbx	2019-05-04 22:47:27 UTC (rev 50989)
@@ -26,8 +26,8 @@
 %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
-\def\bpl at version{1.15}
-\def\bpl at rdate{2019/02/22}
+\def\bpl at version{1.16}
+\def\bpl at rdate{2019/04/16}
 
 \ProvidesFile{publist.cbx}[\bpl at rdate\space v.\bpl at version\space
                            biblatex citation style (JSP)]



More information about the tex-live-commits mailing list