Note: The maintainer of biblatex-publist
(@JSpitzm here at TeX.SX) reports that the fix below has been included to the package, as of version 1.12, which should be available soon. So, as long as you can update, you should no longer need this in your preamble.
I'm not sure what might have changed or where, but if I had to guess the new name wrapper formatting directives introduced somehow a grouping for individual names thus messing with the toggles used by biblatex-publist
in its name formatting directives.
Update: @moewe identified the place the grouping was introduced, and it was not in the new name wrapper formatting facilities as my uninformed hunch would have, but in https://github.com/plk/biblatex/pull/731.
Making the toggling of myselfprec
and hadmyself
global in the author
and editor
name formatting directives seems to solve the issue. And, as far as I can tell, these toggles are only used there, so making them global should be harmless.
Unfortunately, those formatting directives are quite long, even when the changes introduced are small.
\documentclass{article}
\usepackage[bibstyle=publist]{biblatex}
\plauthorname{Frank}
\begin{filecontents}{mwebib.bib}
@Article{Frank1994e,
author = {Frank, Andrew U. and Timpf, Sabine},
title = {Multiple Representations for Cartographic Objects in a Multi-Scale Tree - An Intelligent Graphical Zoom},
journal = {Computers and Graphics Special Issue on Modelling and Visualization of Spatial Data in GIS},
year = {1994},
volume = {18},
number = {6},
pages = {823--829},
}
@Article{Buyong1991,
author = {Buyong, Taher and Kuhn, Werner and Frank, Andrew U.},
title = {A Conceptual Model of Measurement-Based Multipurpose Cadastral Systems},
journal = {Journal of the Urban and Regional Information Systems Association (URISA)},
year = {1991},
volume = {3},
number = {2},
pages = {35--49},
}
\end{filecontents}
\makeatletter
\DeclareNameFormat{author}{%
\if@hlauthor%
% Embolden omitted 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}%
\ifboolexpr{
test { \ifdefstrequal{\bpl@esurname}{\bpl@tsurname} }
and
( test { \ifdefstrequal{\bpl@efirstname}{\bpl@tfirstname} } or test { \ifdefstring{\bpl@ofirstname}{} })
and
( test { \ifdefstrequal{\bpl@evonpart}{\bpl@tvonpart} } or test { \ifdefstring{\bpl@ovonpart}{} }) }
{\toggletrue{ismyself}}{\togglefalse{ismyself}}%
\ifthenelse{\value{listcount}=1}{}{%
\ifnumless{\value{listcount}}{\value{liststop}}%
{\multinamedelim}%
{\finalnamedelim}%
}%
\iftoggle{ismyself}{\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\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\addspace}}%
\fi
}%
\usebibmacro{name:andothers}%
\else% \if@hlauthor false
\ifthenelse{\value{listcount}=1}{\ifthenelse{\value{author}>1}{\bibopenparen\bibstring{with}\addspace}{}}{}%
% Exclude omitted 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}%
\ifboolexpr{
test { \ifdefstrequal{\bpl@esurname}{\bpl@tsurname} }
and
( test { \ifdefstrequal{\bpl@efirstname}{\bpl@tfirstname} } or test { \ifdefstring{\bpl@ofirstname}{} })
and
( test { \ifdefstrequal{\bpl@evonpart}{\bpl@tvonpart} } or test { \ifdefstring{\bpl@ovonpart}{} }) }
{\global\toggletrue{myselfprec}\global\toggletrue{hadmyself}% <- % change here
\ifthenelse{\value{listcount}=1\AND\value{liststop}=1}
{\stepcounter{liststop}}{}}
{\ifthenelse{\value{listcount}=1}{\global\togglefalse{hadmyself}}{% <- change here
\ifboolexpr{
test { \iftoggle{myselfprec} }
and
test { \ifnumless{\value{listcount}}{3} } }
{}{%
\ifnumless{\value{listcount}}{\value{liststop}-1}%
{\multinamedelim}%
{\iftoggle{hadmyself}{%
\ifnumless{\value{listcount}}{\value{liststop}}%
{\multinamedelim}%
{\finalnamedelim}}
{\finalnamedelim}}%
}%
}%
\ifgiveninits
{\ifdefvoid{\namepartgiveni}{}{\namepartgiveni\addspace}}%
{\ifdefvoid{\namepartgiven}{}{\namepartgiven\addspace}}%
\ifdefvoid{\namepartprefix}{}{\namepartprefix\addspace}%
\global\togglefalse{myselfprec}% <- change here
\namepartfamily}%
\usebibmacro{name:andothers}%
\ifthenelse{\value{listcount}=\value{liststop}\AND\value{author}>1}{\unspace\bibcloseparen}{}%
\fi% end of \if@hlauthor else condition
}
\DeclareNameFormat{editor}{%
\if@hlauthor
% Embolden omitted editor
\bpl@normalize{\namepartfamily}{\bpl@tsurname}%
\bpl@normalize{\namepartgiven}{\bpl@tfirstname}%
\bpl@normalize{\bpl@osurname}{\bpl@esurname}%
\bpl@normalize{\bpl@ofirstname}{\bpl@efirstname}%
\ifboolexpr{
test { \ifdefstrequal{\bpl@esurname}{\bpl@tsurname} }
and
( test { \ifdefstrequal{\bpl@efirstname}{\bpl@tfirstname} } or test { \ifdefstring{\bpl@ofirstname}{} })
and
( test { \ifdefstrequal{\bpl@evonpart}{\bpl@tvonpart} } or test { \ifdefstring{\bpl@ovonpart}{} }) }
{\toggletrue{ismyself}}{\togglefalse{ismyself}}
\ifthenelse{\value{listcount}=1}{}{%
\ifnumless{\value{listcount}}{\value{liststop}-1}%
{\multinamedelim}%
{\finalnamedelim}%
}%
\iftoggle{ismyself}{\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\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\addspace}}%
\fi
}%
\usebibmacro{name:andothers}%
\else% \if@hlauthor false
\ifthenelse{\value{listcount}=1}{\ifthenelse{\value{editor}>1}{\bibopenparen\bibstring{with}\addspace}{}}{}%
% Exclude omitted author
\bpl@normalize{\namepartfamily}{\bpl@tsurname}%
\bpl@normalize{\namepartgiven}{\bpl@tfirstname}%
\bpl@normalize{\bpl@osurname}{\bpl@esurname}%
\bpl@normalize{\bpl@ofirstname}{\bpl@efirstname}%
\ifboolexpr{
test { \ifdefstrequal{\bpl@esurname}{\bpl@tsurname} }
and
( test { \ifdefstrequal{\bpl@efirstname}{\bpl@tfirstname} } or test { \ifdefstring{\bpl@ofirstname}{} })
and
( test { \ifdefstrequal{\bpl@evonpart}{\bpl@tvonpart} } or test { \ifdefstring{\bpl@ovonpart}{} }) }
{\global\toggletrue{myselfprec}\global\toggletrue{hadmyself}% <- change here
\ifthenelse{\value{listcount}=1\AND\value{liststop}=1}
{\stepcounter{liststop}}{}}
{\ifthenelse{\value{listcount}=1}{\global\togglefalse{hadmyself}}{% <- change herey
\ifboolexpr{
test { \iftoggle{myselfprec} }
and
test { \ifnumless{\value{listcount}}{3} } }
{}{%
\ifnumless{\value{listcount}}{\value{liststop}-1}%
{\multinamedelim}%
{\iftoggle{hadmyself}{%
\ifnumless{\value{listcount}}{\value{liststop}}%
{\multinamedelim}%
{\finalnamedelim}}
{\finalnamedelim}}%
}%
}%
\ifgiveninits
{\ifdefvoid{\namepartgiveni}{}{\namepartgiveni\addspace}}%
{\ifdefvoid{\namepartgiven}{}{\namepartgiven\addspace}}%
\ifdefvoid{\namepartprefix}{}{\namepartprefix\addspace}%
\global\togglefalse{myselfprec}% <- change here
\namepartfamily}%
\usebibmacro{name:andothers}%
\ifthenelse{\value{listcount}=\value{liststop}\AND\value{editor}>1}{\unspace\bibcloseparen}{}%
\fi% end of \if@hlauthor else condition
}
\makeatother
\begin{document}
\title{XX publications}
\author{}
\date{\today}
\maketitle
\section{Articles}
\newrefsection[mwebib]
\nocite{*}
\printbibliography[heading=none]
\end{document}
