0

When writing my cv, I wanna include some bibentries for my own papers, but also some other describing some courses I've taken. My strategy is to put those courses taken in a special class (e.g. @book) and print separate bibliographies as follows:

\documentclass{article}

\title{Curriculm Vitae} \author{R. Reventlov Giskard}

\usepackage% [backend=biber,% style=publist]% {biblatex}

\plauthorname[R. Giskard]{Reventlov}

\addbibresource{articles.bib} \addbibresource{courses.bib}

\begin{document}

\maketitle

\nocite{*}

% MY ARTICLES \printbibliography[title={Published Articles}, type=article]

% COURSES [BOOKS] BY OTHERS \printbibliography[title={Courses Taken}, type=book]

\end{document}

The \printbibliography commands should print something like:

Published Articles

1 2006 (with R. Daneel Olivaw). "The Three Laws of Robotics Revisited".

2 2005. "The Zeroth Law of Robotics".

Courses Taken

3 2004 Susan Calvin. Practical Aspects of Robotics.

4 2003 Han Fastolfe and Vasilia Fastolfe. How to read and influence the emotions of humans and robots.

Instead, they fourth entry is mistakenly printed as follows:

4 2003 (with Han Fastolfe and Vasilia Fastolfe). How to read and influence the emotions of humans and robots.

How can I prevent biblatex-publist from implicitly making me coauthor of this fourth entry (or of all @book entries for that matter)?

Note 1

In my full code I declare a special entry type @course as follows:

\DeclareBibliographyAlias{course}{book}

and then call:

\printbibliography[title={Courses Taken}, type=course]

In both cases, the error persists.

Note 2

The output without style=publist would be something like:

Published Articles

1 R. Reventlov Giskard and R. Daneel Olivaw (2006). "The Three Laws of Robotics Revisited".

2 R. Reventlov Giskard (2005). "The Zeroth Law of Robotics".

Courses Taken

3 Susan Calvin (2004). Practical Aspects of Robotics.

4 Han Fastolfe and Vasilia Fastolfe (2003). How to read and influence the emotions of humans and robots.

OP Edit 1

I have tested the following version of the code provided by @moewe (the only changes being removing the "R." from "R. Giskard Reventlov" and adding "Susan Calvin" as coauthor of "appleby"): txt.do/1fc7k

However, the output is:

Notice that the co-authorship that matters here is that of the "appleby" entry. It isn't supposed to say "(with ...)" because Giskard (the pluauthorname) is not coauthor in the entry "appleby".

Here's the log file, in case it is of interest: txt.do/1fcz2

OP Edit 2

After having installed a vanilla TeX Live, as recommended in @moewe's comment to his answer, we seem to be one step away from solving the issue. The same input returns the following output:

(Highlights are mine.)

Here is the log file: txt.do/1fg0o

Just in case, I wouldn't mind loosing the et al feature since I'm setting maxnames=99.

lfba
  • 731
  • 4
  • 13
  • 1
    Please consider posting complete examples including example .bib entries in the future. We don't have your .bib files and having to make up suitable entries is quite a boring and unnecessary task. – moewe Aug 06 '20 at 15:40

2 Answers2

1

This is not a case biblatex-publist is currently prepared for. However, it strikes me you could (mis-)use the @review type for this type of task, which does not consider plauthor. Or you define a new driver @course on the base of @review.

For the usage of @review, please refer to the manual.

JSpitzm
  • 1,292
1

Update As mentioned by JSpitzm, the developer of biblatex-publist, version 1.20 with a fix for this slightly counter-intuitive behaviour is out now.


Previously (< v1.20) biblatex-publist assumed you are the co-author of the works listed. If I understand all the work the style does the information whether or not a \plauthorname is present in a name is available, we just need to make use of it.

The trick is to check nonplauthors/nonpleditors against listtotal. If they are equal \plauthorname is not amongst the authors/editors. In that case we avoid the "with" and the parentheses.

The entire definition of bpl:handlenames is quite full on, here we only added the two \ifthenelse{\value{nonpl#1s}=\value{listtotal}} tests to the original definition from publist.bbx.

The code below requires biblatex-publist v.1.18 (2020/07/31). There may not be an error with older versions, but the output is probably not going to be as expected.

\documentclass{article}

\usepackage% [backend=biber,% style=publist]% {biblatex}

\plauthorname[Giskard]{Reventlov}

\makeatletter \renewbibmacro{bpl:handlenames}[1][author]{% \bpl@ifplauthor{\namepartgiven}{\namepartprefix}{\namepartfamily}% {\global\toggletrue{isplauthor}\stepcounter{pl#1}}% {\global\togglefalse{isplauthor}}% % % Calculate real list stop \ifnumless{\value{liststop}}{\value{maxnames}} {\setcounter{realliststop}{\theliststop}} {\setcounter{realliststop}{\value{minnames}}}% % % First case: plauthorhandling=highlight \if@hlauthor% % Highlight plauthor(s) \usebibmacro{bpl:omissiondelim}[#1]% \iftoggle{isplauthor}{% \plauthorhl{% \if@givenfirst% given name first \ifgiveninits {\ifdefvoid{\namepartgiveni}{}{\namepartgiveni\addspace}}% {\ifdefvoid{\namepartgiven}{}{\namepartgiven\addspace}}% \ifdefvoid{\namepartprefix}% {}% {\namepartprefix\addspace}% \namepartfamily% \else% family name first \ifdefvoid{\namepartprefix}% {}% {\namepartprefix\addspace}% \namepartfamily% \ifgiveninits {\ifdefvoid{\namepartgiveni}{}{\addcomma\addspace\namepartgiveni\addspace}}% {\ifdefvoid{\namepartgiven}{}{\addcomma\addspace\namepartgiven\isdot\addspace}}% \fi }% \ifnumequal{\value{listcount}}{\value{liststop}}{}{\usebibmacro{name:andothers}}% }{% \ifnumgreater{\value{listcount}}{\value{realliststop}}{}{% \if@givenfirst% given name first \ifgiveninits {\ifdefvoid{\namepartgiveni}{}{\namepartgiveni\addspace}}% {\ifdefvoid{\namepartgiven}{}{\namepartgiven\addspace}}% \ifdefvoid{\namepartprefix}% {}% {\namepartprefix\addspace}% \namepartfamily% \else% family name first \ifdefvoid{\namepartprefix}% {}% {\namepartprefix\addspace}% \namepartfamily% \ifgiveninits {\ifdefvoid{\namepartgiveni}{}{\addcomma\addspace\namepartgiveni\addspace}}% {\ifdefvoid{\namepartgiven}{}{\addcomma\addspace\namepartgiven\isdot\addspace}}% \fi }% \usebibmacro{name:andothers}% }% % % Second case: plauthorhandling=omit \else% \if@hlauthor false \ifthenelse{\value{listcount}=1}% {\ifthenelse{\value{nonpl#1s}>0}% {\ifthenelse{\value{pl#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}% {}% {% \ifnumgreater{\value{listcount}}{\value{realliststop}}{}{% \ifnumless{\value{nonpl#1}}{\value{nonpl#1s}}% {\multinamedelim}% {\printdelim[#1]{bplfinalnamedelim}}% }% }% }% \ifnumgreater{\value{listcount}}{\value{realliststop}}{}{% \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{nonpl#1s}>0\AND\value{listcount}=\value{liststop}}% {\ifthenelse{\value{pl#1s}=0} {} {\unspace\bibcloseparen}}% {}% \fi% end of \if@hlauthor else condition } \makeatother

\begin{filecontents}{\jobname.bib} @book{appleby, author = {Humphrey Appleby}, title = {On the Importance of the Civil Service}, date = {2001}, } @book{bppleby, author = {Humphrey Bppleby and Someone Else}, title = {On the Importance of the Civil Service}, date = {2002}, } @book{cppleby, author = {Humphrey Cppleby and Someone Else and A. Third Person}, title = {On the Importance of the Civil Service}, date = {2003}, } @article{reventlov:2, author = {Giskard Reventlov and Someone Else}, title = {Turtles}, date = {2012}, } @article{reventlov:1, author = {Giskard Reventlov}, title = {Turtles}, date = {2011}, } @article{reventlov:3, author = {Giskard Reventlov and Ann Uthor and Bann Tuthor}, title = {Turtles}, date = {2013}, } \end{filecontents} \addbibresource{\jobname.bib}

\begin{document} \nocite{*}

% MY ARTICLES \printbibliography[title={Published Articles}, type=article]

% COURSES [BOOKS] BY OTHERS \printbibliography[title={Courses Taken}, type=book] \end{document}

2013 (with Ann Uthor and Bann Tuthor). “Turtles”. In://2003 Humphrey Cppleby, Someone Else, and A. Third Person. On the Importance of the Civil Service.

moewe
  • 175,683
  • Thanks, @moewe. Could you explain a bit how the code works? The problem persists for more than two authors. In fact, there has never been a problem with only one author: it has never been parenthesised nor prefixed by "with". – lfba Aug 08 '20 at 11:36
  • 1
    @lfba As I briefly alluded in the answer body, biblatex-publist already counts the number of non-pl authors/editors. If we compare that number to the total number of authors/editors and they are the same, there was no pl author/editor and we thus don't print 'with'. If I change the author = {Humphrey Appleby}, to author = {Humphrey Appleby and Bernard Woolley}, in appleby I still get no 'with' for the authors. Can you please explain what exactly goes wrong when you write author = {Humphrey Appleby and Bernard Woolley}, in my MWE? – moewe Aug 08 '20 at 11:46
  • 1
    @lfba I only just realised that there is something odd going on with "R. Giskard Reventlov" in the example. That appears to be a bug in biblatex-publist that I just reported at https://github.com/jspitz/biblatex-publist/issues/24. So if you are asking about the superfluous "R. Giskard Reventlov" in the first entry, that should explain things. For the time being take a different name that doesn't contain initials and you should be good. – moewe Aug 08 '20 at 12:12
  • 1
    Quick update on the bug mention above: It was fixed shortly after it was reported. The version on GitHub already works fine, not sure when the update will hit CTAN. – moewe Aug 08 '20 at 20:33
  • Thanks, @moewe. The problem is not with the @article entry "reventlov", but with the @book entry "appleby". See my OP Edit 1 for more details. – lfba Aug 08 '20 at 22:07
  • 1
    @lfba Your version of biblatex-publist is outdated (you have publist.bbx 2018/03/01 v.1.9, mine is publist.bbx 2020/07/10 v.1.17). Your old version does not calculate nonplauthors/nonpleditors. You could try grabbing the .bbx and .cbx from https://ctan.org/tex-archive/macros/latex/contrib/biblatex-contrib/biblatex-publist and dropping it into the same directory as your main .tex file to get a newer version. This may not work if biblatex-publist depends on a newer biblatex version than you have. ... – moewe Aug 09 '20 at 04:52
  • 1
    ... In that case you may have to think about switching from the TeX live from the Debian/Ubuntu repositories to a vanilla TeX live, see https://tex.stackexchange.com/q/1092/35864. (In case it was unclear, I tested your MWE and I got the expected/correct output.) – moewe Aug 09 '20 at 04:53
  • Thanks for your support, @moewe. We seem to be one step away from the solution. Please, check my OP Edit 2. – lfba Aug 10 '20 at 10:53
  • 1
    @lfba Oh, there was a biblatex-publist update changing some bits of bpl:handlenames. The update also makes what we want a bit easier. Try again, please. – moewe Aug 10 '20 at 11:32
  • It doesn't seem to work, @moewe. However, I already removed "et al" by commenting out \usebibmacro{name:andothers}. So I take this to be solved. – lfba Aug 11 '20 at 01:50
  • 1
    @lfba I have updated the code example and example image. That is the output I get with biblatex-publist v.1.18 (the current release version on CTAN) and biblatex 3.14/Biber 2.14 (also current CTAN releases). I think that is the desired output and there is no 'et al.'. I'm not quite sure what didn't work for you. However, please do not just remove \usebibmacro{name:andothers} as that will simply remove the ability to properly deal with 'et al.' if necessary. I rejected your edit to the answer to that effect, because I don't want to suggest that. – moewe Aug 11 '20 at 05:15
  • Everything is working perfectly now, @moewe. Thanks. – lfba Aug 11 '20 at 10:30
  • 1
    @lfba Very odd. As you can see in the edit history the relevant code was not touched in the edit. I only added a few more test cases. – moewe Aug 11 '20 at 14:58
  • FYI I have now fixed this in biblatex-publist itself, for version 1.20 (under development). So if you take https://raw.githubusercontent.com/jspitz/biblatex-publist/master/publist.bbx it should work as well – JSpitzm Aug 23 '20 at 16:02
  • biblatex-publist 1.20, which fixes the issue reported here, has now been released. – JSpitzm Sep 15 '20 at 13:57
  • 1
    @JSpitzm Thanks for the heads-up. Answer updated- – moewe Sep 15 '20 at 14:02