2

I am using biblatex to print bibliographies per section. My style requires in general no article titles and maximum 3 authors per bibliography entry. Nevertheless in a specific section, I need to relax these limitations, and have article titles shown along with full list of authors. How can I achieve so?

The following are my current settings:

\documentclass{article}
\usepackage[backend=bibtex,
            maxnames = 3,
            firstinits=false,
            uniquename=init,
            autocite=superscript,
            style=nature,
            articletitle=false,
            natbib=true,
            defernumbers=true]{biblatex}
\addbibresource{my_publications.bib}

...
\begin{document}

\newrefsection
\section{First section}
Some text with \autocite{Ref:1}
...
\printbibliography

\newrefsection
\section{Second Section}
%%------------------------
%% Here we want to relax no-show of article title max 3 authors
\settoggle{bbx:articletitle}{true} % Reset showing article name
<what should I do to reset maxbibnames??>

...

Some text with \autocite{Ref:1,Ref:2}
...

\printbibliography

\end{document}

I think that a possible workaround could be by

\patchcmd{\blx@maxbibnames}{...}{...}{}{}

but I cannot complete the other fields correctly...

  • 1
    For future reference please note that your code does not constitute an MWE - it can't be copied and compiled just like that. We are missing your .bib file, and the code is missing an \end{document} as well as a \documentclass. Please have a look at this help about MWEBs as well. – moewe Feb 12 '17 at 16:16
  • Sorry about that. I am going to edit it accordingly. – maurizio Feb 12 '17 at 16:17
  • Thanks for updating, but please note that your code is still not an MWE. We are still missing the \documentclass and have no idea bout your references in the .bib file. – moewe Feb 12 '17 at 16:30
  • @moewe Thanks. I know that. But my bib file is a master file with thousands of references, I doubt it is useful here. – maurizio Feb 12 '17 at 16:33
  • 1
    Of course the whole thing is not very useful, but you could just extract two example entries, which would be tremendously helpful. Or use biblatex-examples.bib as suggested in one of the links from my first comment. Have a look at the code in my answer and compare your non-MWE with the code there. – moewe Feb 12 '17 at 16:36
2

Resetting the maxname option is surprisingly hard, because maxnames is kept very close to the entry itself. So I've come up with

\newtoggle{bbx:allnames}
\togglefalse{bbx:allnames}
\AtEveryBibitem{\iftoggle{bbx:allnames}{\defcounter{maxnames}{999}}{}}

where you can use

\toggletrue{bbx:allnames}

in exact analogy to the bbx:articletitle toggle before \printbibliography to see all names. You can toggle back to the document default for the next \printbibliography with \togglefalse{bbx:allnames}.

MWE

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[british]{babel}
\usepackage{csquotes}
\usepackage[backend=bibtex,
            maxnames = 3,
            firstinits=false,
            uniquename=init,
            autocite=superscript,
            style=nature,
            articletitle=false,
            natbib=true,
            defernumbers=true]{biblatex}
\addbibresource{biblatex-examples.bib}

\newtoggle{bbx:allnames}
\togglefalse{bbx:allnames}
\AtEveryBibitem{\iftoggle{bbx:allnames}{\defcounter{maxnames}{999}}{}}

\begin{document}
\newrefsection
\section{First section}
Some text with \autocite{aksin}
\printbibliography

\newrefsection
\section{Second Section}
\toggletrue{bbx:articletitle}
\toggletrue{bbx:allnames}
Some text with \autocite{aksin,worman}
\printbibliography
\end{document}

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.