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
    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 '18 at 18:38
  • Thank you for checking. I have repored a bug, as you suggest! – user855443 Nov 23 '18 at 18:55
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

  • 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 '18 at 10:05
  • @moewe Btw, the new name/list wrappers are a very neat addition. Thanks a bunch. – gusbrs Nov 24 '18 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 '18 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 '18 at 12:51
2

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

  • @StefanPinnow We cannot delete the response of the package creator. ctan.org/pkg/biblatex-publist?lang=en – AndréC Nov 25 '18 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 '18 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 '18 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). – Stefan Pinnow Nov 25 '18 at 12:40
  • I will have to learn how to update my installation! Thank you for the tool! – user855443 Nov 26 '18 at 18:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.