3

I produce a publist with the current version of publist (File: publist.bbx 2018/09/01 v.1.11) and get in entries where I am the first author "(with and XX)", but not when I am not the first author (second or later). the first entry is wrong, the second correct Here is a MWE:

\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}

\begin{document}

\title{XX publications}
\author{}
\date{\today}
\maketitle


\section{Articles}
\newrefsection[mwebib]
\nocite{*}
\printbibliography[heading=none]  


\end{document}
2
  • 2
    I can reproduce the issue, but I don't have time right now to look into it. Even if you get an answer here quickly, please consider reporting this at github.com/jspitz/biblatex-publist/issues. It looks very much like a small bug in the style and I'm sure the developer would be happy to hear about it so he can have a look at it.
    – moewe
    Nov 23, 2018 at 18:38
  • Thank you for checking. I have repored a bug, as you suggest!
    – user855443
    Nov 23, 2018 at 18:55

2 Answers 2

3

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}

enter image description here

4
  • 1
    The analysis is spot on, but one small correction: The grouping that keeps the toggles here local was not introduced by the new wrappers (phew!), it was introduced explicitly in github.com/plk/biblatex/pull/731 to fix a different bug in biblatex.
    – moewe
    Nov 24, 2018 at 10:05
  • @moewe Btw, the new name/list wrappers are a very neat addition. Thanks a bunch.
    – gusbrs
    Nov 24, 2018 at 11:45
  • I fixes indeed the issue for me. Thank you very much for the quick response! - the fix is quite long and I have put it in a file to include; is there a better solution?
    – user855443
    Nov 24, 2018 at 12:46
  • @user855443 There's no harm in that and, if it helps keeping your stuff organized in a way that suits you, it is fine. Anyway, until the fix arrives in the package itself, you will have to maintain this being called somehow in your preamble. Just keep an eye to remove it when the fix does come.
    – gusbrs
    Nov 24, 2018 at 12:51
3

Thanks, all. Will be fixed in biblatex-publist 1.12 (to be released today).

5
  • @StefanPinnow We cannot delete the response of the package creator. ctan.org/pkg/biblatex-publist?lang=en
    – AndréC
    Nov 25, 2018 at 10:01
  • 1
    @StefanPinnow I beg to disagree. The question points towards a bug in the biblatex-publist package, and I think it is relevant to announce here that I have fixed this bug (which makes the workaround obsolete).
    – JSpitzm
    Nov 25, 2018 at 10:33
  • I added you to the list of maintainers of the biblatex-publish package, I omitted the others, you can fix it if you want here tex.meta.stackexchange.com/questions/1181/…
    – AndréC
    Nov 25, 2018 at 10:47
  • For me this would also be ok, but in the past, answers related to "update the package" where removed quite often and instead it was requested to put a comment below the question (or an answer which incorporated the fix). Nov 25, 2018 at 12:40
  • I will have to learn how to update my installation! Thank you for the tool!
    – user855443
    Nov 26, 2018 at 18:24

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .