3

I have what I thought would be a very simple question, but has turned out to be much more difficult.

Using biblatex and the verbose-inote style, I would like to redefine for footcite Ibid as Id. and print an ibidem citation as follows: "Id. at #" where # is the page number.

Any suggestions greatly appreciated!

Thanks!

\documentclass{article}
\usepackage{geometry} 
\geometry{letterpaper, margin=1in}
\usepackage{setspace}
\usepackage[style=verbose-inote,backend=bibtex]{biblatex}
\bibliography{nbib.bib}


\begin{document}

This is a test.\footcite[1]{test}

\end{document}
4
  • Do you want to refer back to the last mention of the citation or the first mention? Since you use inote wouldn't it be nicer to refer back to the note of the respective citation and not the page number?
    – moewe
    Dec 18, 2015 at 8:30
  • In cases where it's not the immediately preceding citation, yes, that would make sense. The page number I referred to would be the cited page of the source.
    – ssch
    Dec 18, 2015 at 15:23
  • Ahhh, so you simply want "Id. at p. 14" instead of "ibid., p. 14"?
    – moewe
    Dec 18, 2015 at 15:33
  • Yes , that's precisely it.
    – ssch
    Dec 18, 2015 at 15:43

1 Answer 1

4

Changing "ibid." to "id." is as easy as

\DefineBibliographyStrings{english}{
  ibidem = {id\adddot},
}

(where you of course replace english by the language you are actually using).


For the "at" only for pages after "id." we can do the following

\NewBibliographyString{at}
\DefineBibliographyStrings{english}{
  ibidem = {id\adddot},
  at = {at},
}

and then

\DeclareFieldFormat{postnote}{%
  \ifthenelse{\ifciteibid\AND\NOT\iffirstonpage\AND\ifpages{#1}}
    {\bibstring{at}%
     \addspace}
    {}%
  #1}

\renewbibmacro*{footcite:ibid}{%
  \printtext[bibhyperlink]{\bibstring[\mkibid]{ibidem}}%
  \iffieldpages{postnote}{\printunit{\addspace}}{}%
  \ifloccit
    {\global\toggletrue{cbx:loccit}}
    {}}

This tries to make sure no spurious punctuation occurs.

MWE

\documentclass{article}
\usepackage[style=verbose-inote,backend=bibtex]{biblatex}
\bibliography{biblatex-examples.bib}

\NewBibliographyString{at}
\DefineBibliographyStrings{english}{
  ibidem = {id\adddot},
  at = {at},
}

\DeclareFieldFormat{postnote}{%
  \ifthenelse{\ifciteibid\AND\NOT\iffirstonpage\AND\ifpages{#1}}
    {\bibstring{at}%
     \addspace}
    {}%
  #1}

\renewbibmacro*{footcite:ibid}{%
  \printtext[bibhyperlink]{\bibstring[\mkibid]{ibidem}}%
  \iffieldpages{postnote}{\printunit{\addspace}}{}%
  \ifloccit
    {\global\toggletrue{cbx:loccit}}
    {}}

\begin{document}
This is a test.\footcite[1]{sigfridsson} Ewoud\footcite[1]{sigfridsson}. Ewoud\footcite[jeugd]{sigfridsson}.
\end{document}
6
  • This is brilliant, many thanks!. I thought I could also drop the page number prefix in the citations such that it would print something like "Id. at 5" instead of "Id. at p. 5" using the command: \DeclareFieldFormat{pages}{#1}% However, that doesn't seem to work. Thoughts?
    – ssch
    Dec 18, 2015 at 16:19
  • @ssch Do you only want to drop the prefix for the "id." citations or for all? In any case the field to play around with is postnote.
    – moewe
    Dec 18, 2015 at 16:22
  • Not just in the Id., but for all citations. Again, many thanks.
    – ssch
    Dec 18, 2015 at 16:28
  • @ssch Then it should be as easy as replacing the \mkpageprefix[pagination]{#1} by #1. See the edited answer.
    – moewe
    Dec 18, 2015 at 16:33
  • Brilliant. However, using that I'm getting citations that are missing a space, such that it's "Id. at241.", not "Id. at 241" I fixed by changing that line to \addspace #1}
    – ssch
    Dec 18, 2015 at 17:06

You must log in to answer this question.

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