8

Am I right that it is impossible to turn the dashed option on for one refsection, but not for another within the same document?

(If you're wondering why one would need that: I'm compiling a research proposal which has a complicated structure (stipulated by the funding organization). My CV is part of that structure and hence my list of publications. Using dashes in your CV looks silly. But I'd like to use them in the other sections, where I'm citing other people's works. (The CV-part is a seperate refsection in order to prevent the a,b,c suffixes))

10

Changing the dashed option

We can achieve this by calling \AtNextBibliography{\renewbibmacro*{bbx:savehash}{}}, which redefines bbx:savehash bibmacro (the one that tells the style to save and use dashes) at the beginning of the next \printbibliography (it can be used out of the preamble).

\AtNextBibliography{\renewbibmacro*{bbx:savehash}{}}

Removing the alphabetical label in the date

It's the same principle of changing the dashed option: we must set the blx@labeldate toggle to false within a given bibliography; once again, we use \AtNextBibliography to set it, and we will use it within a refsection.

\AtNextBibliography{\settoggle{blx@labeldate}{false}}

Here's a MWE:

(\DeclareSourcemap is used here to easily produce a list of a single author's publications. For more details, refer to How to print a bibliography for a particular author only?)

\documentclass{article}
\usepackage[style=authoryear]{biblatex}
\addbibresource{biblatex-examples.bib}
\DeclareSourcemap{
  \maps[datatype=bibtex]{
    \map{
      \step[fieldsource=author,
            match=Kant,
            final]
      \step[fieldset=keywords, fieldvalue=own]
    }
  }
}
\begin{document}
\autocites{knuth:ct,knuth:ct:a,companion,kant:kpv,kant:ku}

\begin{refsection}
\AtNextBibliography{
  \renewbibmacro*{bbx:savehash}{}
  \settoggle{blx@labeldate}{false}
}
\nocite{*}
\printbibliography[keyword=own,title={These are my Works}]
\end{refsection}
\printbibliography[title={These are awesome works by other people I like}]
\end{document}

MWE

  • Just a small thing - you don't need to wrap the match term in \regexp{} since it has no tricky regexp characters in it, match=Kant works fine. – PLK Aug 10 '13 at 9:24
  • Hm, the problem is that I do also quote myself in the other sections. So it's a bit more tricky, I think. The selection can't be made at the level of bibentries. It is not the entry that determines whether it should be dashed but the context in which it is printed... In other words, if "Kritik der Urteilskraft" is printed under "These are my works", it should not be dashed. But if it appears unter the second section, it should be dashed (provided another Kant title appears there too). – Christoph Aug 10 '13 at 14:53
  • Oh, and I also noticed that the year is suffixed with a,b etc on the "These are my works" section. This should also be turned off in that section, but not in the second one. I somehow managed to do this in my document, but I don't understand anymore how... – Christoph Aug 10 '13 at 14:56
  • Hi @Christoph! I edited the answer to incorporate the labeldate requirement. I also expanded the example and the text to try to address some of the issues form your first comment. – henrique Aug 10 '13 at 17:03
  • Okay, @henrique, we're getting somewhere. In fact, all I needed was the \AtNextBibliography{\renewbibmacro*{bbx:savehash}{}}. (Had to figure out first, though, that this is only available since April 2013 or so, and MikTeX hasn't packaged that one yet, so I had to install manually). I was unable to use keywords to distinguish my publications from others because I'm already using it to distinguish different types of publications, i.e. I'm printing several (sub-)bibliographies within that refsection. So all I had to do is insert the '\AtNextBib...'-thing before everty \printbibliography. – Christoph Aug 11 '13 at 21:26

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.