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}
  • 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 '15 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 '15 at 15:23
  • Ahhh, so you simply want "Id. at p. 14" instead of "ibid., p. 14"? – moewe Dec 18 '15 at 15:33
  • Yes , that's precisely it. – ssch Dec 18 '15 at 15:43
3

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}
  • 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 '15 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 '15 at 16:22
  • Not just in the Id., but for all citations. Again, many thanks. – ssch Dec 18 '15 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 '15 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 '15 at 17:06

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.