1

Is it possible to always cite the full source after changing the reference, instead of using the shorted version with last-name, title verbose-ibid offers? I found this question by someone else. It seems to be possible to rewrite cite:short using \renewbibmacro*{cite:short} if that helps. Is it possible to just replace cite:short with cite:long/full or however it might be called?

My current setup: \usepackage[backend=biber,citestyle=verbose-ibid,natbib=true,bibstyle=authoryear]{biblatex}

Minimal working example:

\documentclass{article}
\usepackage[backend=biber,citestyle=verbose-ibid,natbib=true,bibstyle=authoryear]{biblatex}
\addbibresource{\jobname.bib}
\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@book{key1,
  author = {Author, A.},
  year = {2001},
  title = {Title},
  publisher = {Publisher},
}
@book{key2,
    author = {Author, B.},
    year = {2002},
    title = {Title 2},
    publisher = {Publisher 2},
}
\end{filecontents}

\begin{document}

Lorem ipsum dolor sit amet \footcite{key1}, consectetur adipiscing elit \footcite{key1}, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua \footcite{key2}. Ut enim ad minim veniam \footcite{key2}, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat \footcite{key1}.

\printbibliography

\end{document}

I basicly want, that footnote 5 is "A. Author (2001). Title. Publisher." instead of "Author, Title."

1

2 Answers 2

1

You can redefine the cite bibmacro to use cite:full instead of cite:short:

\renewbibmacro*{cite}{%
  \usebibmacro{cite:citepages}%
  \global\togglefalse{cbx:loccit}%
  \ifciteseen
    {\iffieldundef{shorthand}
       {\ifboolexpr{
          test {\ifciteibid}
          and
          not test {\iffirstonpage}
        }
          {\usebibmacro{cite:ibid}}
          {\usebibmacro{cite:full}}}
       {\usebibmacro{cite:shorthand}}}
    {\usebibmacro{cite:full}}}

A full MWE:

\documentclass{article}
\usepackage[backend=biber,citestyle=verbose-ibid,natbib=true,bibstyle=authoryear]{biblatex}
\addbibresource{\jobname.bib}
\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@book{key1,
  author = {Author, A.},
  year = {2001},
  title = {Title},
  publisher = {Publisher},
}
@book{key2,
    author = {Author, B.},
    year = {2002},
    title = {Title 2},
    publisher = {Publisher 2},
}
\end{filecontents}

\renewbibmacro*{cite}{%
  \usebibmacro{cite:citepages}%
  \global\togglefalse{cbx:loccit}%
  \ifciteseen
    {\iffieldundef{shorthand}
       {\ifboolexpr{
          test {\ifciteibid}
          and
          not test {\iffirstonpage}
        }
          {\usebibmacro{cite:ibid}}
          {\usebibmacro{cite:full}}}
       {\usebibmacro{cite:shorthand}}}
    {\usebibmacro{cite:full}}}

\begin{document}

Lorem ipsum dolor sit amet \footcite{key1}, consectetur adipiscing elit \footcite{key1}, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua \footcite{key2}. Ut enim ad minim veniam \footcite{key2}, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat \footcite{key1}.

\printbibliography

\end{document}

enter image description here

3
  • 1
    +1) Slightly shorter: \letbibmacro{cite:short}{cite:full} makes cite:short always execute the same code as cite:full leading to the same result.
    – moewe
    Mar 11, 2018 at 0:12
  • @moewe "slightly" :) Didn't think of that, and it's actually a very nice idea. I'd say it deserves an answer of it's own. Please feel free.
    – gusbrs
    Mar 11, 2018 at 0:24
  • I don't think you should have deleted your answer tex.stackexchange.com/a/419705/35864 to tex.stackexchange.com/q/419702/35864. It was a perfectly good and clever idea.
    – moewe
    Mar 12, 2018 at 10:59
1

With

\letbibmacro{cite:short}{cite:full}

we can \let the bibmacro cite:short execute what cite:full would do. This uses \let, so it copies the definition of cite:full when the \letbibmacro is executed. See What is the difference between \let and \def?

If you'd rather have the definition of cite:full at the time of executing cite:short, i.e. handle the assignment with \def, use

\renewbibmacro*{cite:short}{\usebibmacro{cite:full}}

instead.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .