3

I am having a hard time removing the suffix in the year in authoryear-ibid citation as you can see in the following picture.

Citation Image

This is the code I use for biblatex:

\usepackage[
    citestyle=verbose-ibid, 
    bibstyle=authoryear-ibid, 
    backend=biber]
    {biblatex}

I know that this suffix apperantly should be controllable by the labeldateparts but apperantly it does not take effect. Any help is greatly appreciated.

  • Found this: which works kinda good for me: tex.stackexchange.com/questions/63500/… if no one else has a better solution this will be logged as my answer. – HFinch Aug 3 at 21:16
  • 1
    Welcome to TeX.se! For future questions it's helpful to post a compilable minimal document that shows what you're doing, rather than a code fragment. – Alan Munn Aug 3 at 23:34
3

This can be done simply by clearing the extradate field. Note that this solution works for your particular use case, but in other situations it might lead to unexpected results. In this case, the solution by moewe is more robust. See the comments there for some discussion.

\begin{filecontents}{\jobname.bib}

@book{Chomsky1986,
    Address = {Cambridge Mass.},
    Author = {Noam Chomsky},
    Publisher = {{MIT} Press},
    Title = {Barriers},
    Year = {1986}}

@book{Chomsky1986b,
    Address = {New York},
    Author = {Noam Chomsky},
    Publisher = {Praeger},
    Title = {Knowledge of Language: its nature, origin and use},
    Year = {1986}}
\end{filecontents}
\documentclass{article}
\usepackage[
    citestyle=verbose-ibid, 
    bibstyle=authoryear-ibid, 
]
    {biblatex}
\addbibresource{\jobname.bib}
\DeclareFieldFormat{extradate}{}
\begin{document}
\autocite{Chomsky1986b,Chomsky1986}
\printbibliography
\end{document}

output of code

3

Since I'm not too fond of suppressing fields with en empty field format, here is a solution that redefines the involved commands directly.

\documentclass{article}
\usepackage[
  citestyle=verbose-ibid,
  bibstyle=authoryear-ibid,
]{biblatex}

\renewbibmacro*{date+extradate}{%
  \iffieldundef{labelyear}
    {}
    {\printtext[parens]{\printdate}}}

\renewbibmacro*{bbx:ifmergeddate}[2]{#1}%


\addbibresource{biblatex-examples.bib}
\begin{document}
\autocite{knuth:ct:b,knuth:ct:c}
\printbibliography
\end{document}

Knuth, Donald E. (1986). Computers & Typesetting. Vol. B: TeX: The Program. Reading, Mass.: Addison-Wesley.//— (1986). Computers & Typesetting. Vol. C: The METAFONTbook. Reading, Mass.: Addison-Wesley.

A slightly less aggressive approach would still leave traces of labeldate by only redefining date+extradate as follows (and leaving bbx:ifmergeddate unchanged)

\renewbibmacro*{date+extradate}{%
  \iffieldundef{labelyear}
    {}
    {\printtext[parens]{%
       \iflabeldateisdate
         {\printdate}
         {\printlabeldate}}}}%

A different, but more direct, way to delete the extra date would be

\DeclareFieldInputHandler{extradate}{\def\NewValue{}}
  • Apart from the conceptual reasons for not doing this by clearing the field format, are there empirical downsides to doing it that way? It's certainly a more user-accessible way of doing it. – Alan Munn Aug 4 at 13:01
  • @AlanMunn There shouldn't be a lot (for almost all intents and purposes). \printfield checks if the field format is empty and then behaves as if the field didn't exist. \iffieldundef checks might give the wrong result, but most styles keep those at a minimum. A difference between the two approaches can be seen if you only load style=authoryear-comp,. Then \autocite{knuth:ct:b,knuth:ct:c}. \DeclareFieldFormat{extradate}{} leaves a comma in the output, but \DeclareFieldInputHandler{extradate}{\def\NewValue{}} doesn't (of course both results are wrong, so ...). – moewe Aug 4 at 13:08
  • I have used the clearfield method by @AlanMunn but your approach is quite sophisticated but for my usage I prefer it a bit simplistic. Sadly i cant flag both answers to be true :( – HFinch Aug 4 at 14:04
  • @AlanMunn Here is an example that shows two problematic uses of an empty field format: gist.github.com/moewew/f07c3add09939506071f25ff459af897 – moewe Aug 4 at 18:30
  • @moewe Thanks. I've added a link to your answer in mine so that people don't overgeneralize the solution. – Alan Munn Aug 4 at 18:47

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.