[Tex/LaTex] Suppress author option: remove the name of an author already used in text

biblatexciting

Sometimes, I write the name of an author in a sentence before the citation. For this reason, I'd like to suppress it in the citation. How can I do that?

Is the only solution to create a new macro, e.g. \citewoauth, similar to \cite but without author names, or am I missing something?
[The MWE (non-working actually) below is with \parencite but the general idea is similar.]

How to suppress the superfluous, highlighted, John Doe ?

\begin{filecontents}{\jobname.bib}
  @article{doe_2011,
    title = {A title},
    author = {John Doe},
    journal = {Journal},
    number = {99},
    pages = {483--488},
    date = {2015},
  }
\end{filecontents}

\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage{csquotes}
\usepackage[style=verbose-trad2,language=french,backend=biber]{biblatex}

\addbibresource{\jobname.bib}

\begin{document}
Some text\footnote{According to John Doe, it is \enquote{a complete nonsense} \parencite[485]{doe_2011}}

\printbibliography
\end{document}

Best Answer

The authoryear and authortitle styles provide \cite* and \parencite* for that exact purpose. The verbose styles do not have such a command.

You can use the \AtNextCite hook to disable the display of names in the next citation

\makeatletter
\newcommand{\int@suppauth}{%
  \def\ifciteibid{\@secondoftwo}%
  \renewbibmacro*{cite:name}{}%
  \renewbibmacro*{cite:idem}{}%
  \renewbibmacro*{author}{}%
  \renewbibmacro*{editor+others}{}%
  \renewbibmacro*{translator+others}{}}

\newcommand{\suppauth}{\AtNextCite{\int@suppauth}}
\makeatother

The first line in \int@suppauth turns off any "ibid." that might occur, the second and third take care of suppressing names and "idem"s inn short citations, while the last three are for the bibliography driver (long first citations). This will also work if the relevant name to suppress is the editor of a work.

Now you can just say \suppauth\cite{foo} to suppress the author/labelname in the following citation.

\makeatletter
\DeclareCiteCommand*{\parencite}[\mkbibparens]
  {\int@suppauth
   \usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \usebibmacro{cite}}
  {\multicitedelim}
  {\usebibmacro{cite:postnote}}

\DeclareCiteCommand*{\cite}
  {\int@suppauth
   \usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \usebibmacro{cite}}
  {\multicitedelim}
  {\usebibmacro{cite:postnote}}
\makeatother

then emulates the behaviour of the authoryear and authortitle style's \cite* and \parencite*.

MWE

\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage{csquotes}
\usepackage[style=verbose-trad2,backend=biber]{biblatex}

\addbibresource{biblatex-examples.bib}

\makeatletter
\newcommand{\int@suppauth}{%
  \def\ifciteibid{\@secondoftwo}%
  \renewbibmacro*{cite:name}{}%
  \renewbibmacro*{cite:idem}{}%
  \renewbibmacro*{author}{}%
  \renewbibmacro*{editor+others}{}%
  \renewbibmacro*{translator+others}{}}

\newcommand{\suppauth}{\AtNextCite{\int@suppauth}}

\DeclareCiteCommand*{\parencite}[\mkbibparens]
  {\int@suppauth
   \usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \usebibmacro{cite}}
  {\multicitedelim}
  {\usebibmacro{cite:postnote}}

\DeclareCiteCommand*{\cite}
  {\int@suppauth
   \usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \usebibmacro{cite}}
  {\multicitedelim}
  {\usebibmacro{cite:postnote}}
\makeatother



\begin{document}
Lorem\footnote{According to Sigfridsson, it is \enquote{a complete nonsense} \suppauth\parencite[485]{sigfridsson}}
 ipsum\footcite{geer} dolor\footnote{According to Sigfridsson again, it is \enquote{a complete nonsense} \suppauth\parencite[485]{sigfridsson}}
\citereset
Lorem\footnote{According to Sigfridsson, it is \enquote{a complete nonsense} \parencite*[485]{sigfridsson}}
 ipsum\footcite{geer} dolor\footnote{According to Sigfridsson again, it is \enquote{a complete nonsense} \parencite*[485]{sigfridsson}}

\printbibliography
\end{document}

enter image description here

Related Question