2

I organize my source with biblatex (version 3.8, BibTeX backend) and got everything setup. This is my preamble:

\documentclass[12pt]{report}
\usepackage[utf8]{inputenc}
\usepackage{mathptmx}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{geometry}
\usepackage[expansion, final]{microtype}
\usepackage[style=verbose-ibid, backend=bibtex, dashed=false]{biblatex}
\usepackage{csquotes}
\usepackage{setspace}

% Style Setup
\geometry{a4paper, top=25mm, left=25mm, right=40mm, bottom=25mm}
\setstretch{1.5}
\interfootnotelinepenalty=10000
\widowpenalty=10000
\clubpenalty=10000

% Chapter Style
\usepackage{titlesec}
\titlespacing{\chapter}{0pt}{0pt}{20pt}
\titleformat{\chapter}[hang] 
{\normalfont\huge\bfseries}{\thechapter.}{1em}{} 

% Bibliography Style
\bibliography{library}
\renewcommand\mkbibnamefamily[1]{\textsc{#1}}
\DeclareNameAlias{sortname}{family-given}
\DeclareNameAlias{default}{family-given}
\DefineBibliographyStrings{ngerman}{
    bibliography={Literaturverzeichnis}
}



\usepackage{filecontents}

\begin{filecontents*}{\jobname.bib}
  @book{Knu86,
    author = {Knuth, Donald E.},
    year = {1986},
    title = {The \TeX book},
  }
\end{filecontents*}

\bibliography{\jobname}



\begin{document}

\chapter{Introduction}

\noindent Some text\footcite[p. 38]{Knu86} ....
\newpage


\chapter{Second}

\noindent Some other text \footcite[p. 39]{Knu86}

\end{document}

I am using \footcite[p. x]{author2018} to create source references. Say I am on page 7 and the last citation on this page is Book B from Author A. On page 8, biblatex writes "ibid" in the footnote instead of writing the source again. But when compile the same .tex document on another computer, which uses biblatex 3.3 everything works just fine. I am guessing it's because of the biblatex version but who knows.

So I would like to fix this behavior, so that "ibid" won't be used on the following page.

Codey
  • 265
  • Please note that biblatex 3.8 is also slightly outdated now, the current version is 3.11. I just completed your code into a fully working example and got the expected output (i.e. no "ibid." as first citation on a new page), but there might be something going on at your end that I don't know about. So a fully working example that reproduces your issue is required to investigate the problem further. – moewe Oct 01 '18 at 09:18
  • I am using TexShop on macOS, and just downloaded the newest version of TexLive for Mac. So I don't know if I can get any newer version than 3.8. Anyways I am just writing an example. – Codey Oct 01 '18 at 09:27
  • You should be able to update with tlmgr, see https://tex.stackexchange.com/q/55437/35864. (Depending on how you installed TeX live, you may not have all available updates installed on your system. If you want to make sure all packages are fully updated, you need to run tlmgr to update after you installed MacTeX/TeX live.) But I'm not sure if the difference between 3.8 and 3.11 is the explanation here. Anyway, we'll be able to say more once the MWE is ready. – moewe Oct 01 '18 at 09:31
  • Ok so something really strange happened: While writing the MWEB, I deleted the part with \DefineBibliographyStrings{ngerman}{...}, then everything worked just fine. After adding it in again it still works. But if I clean up my folder, leaving just the .tex file, and compile it completely new, then the same error appears again. I've updated my question, it now includes the MWEB – Codey Oct 01 '18 at 09:39
  • Mhhh. Does the effect show in the exact MWE as posted? Can you please include a picture of the incorrect output in the question and upload the .log to some plain-text sharing website (pastebin, hastebin, GitHub Gists, GitLab snippets, ...). I can not reproduce the issue with the current biblatex version 3.11 and also failed to reproduce the issue with biblatex 3.8. – moewe Oct 01 '18 at 10:40
  • Somehow, I am also not able to reproduce the error. When compile the .tex document in a clean folder, then start biblatex and then compile again, the error is still present. But if I compile it again the error is gone. I am pretty sure that I've done that before and it didn't help, but now it does. I still uploaded the log (before I recompiled and the error disappeared) here: https://pastebin.com/Dp5wHYZy. You can find the PDF here: https://file.io/KyoGnR. Note that "Ebd." is the german equivalent of "Ibid." – Codey Oct 01 '18 at 11:54
  • Oh hang on. Do you mean the error occurs when you compile with LaTeX, BibTeX, LaTeX, but goes away when you compile with LaTeX again to obtain the full sequence LaTeX, LaTeX, BibTeX, LaTeX? That is actually expected behaviour. You must run LaTeX twice after the BibTeX run to get everything right. Indeed the only interesting bit the .log contains is Package biblatex Warning: Please rerun LaTeX. Page breaks have changed. which asks you to run LaTeX again to get page breaks and labels right. – moewe Oct 01 '18 at 11:57
  • Yeah that I know, and I am pretty sure that I've done the procedure LaTeX, BibTeX, LaTeX, LaTeX before but it didn't help. Now it does. Anyways the error is gone :) thanks a lot for helping me with this one! – Codey Oct 01 '18 at 12:11
  • Very good. What do we do about this question, though? Do you want me to type up an answer explaining why one needs the second LaTeX run here? Do you want to close the question as unclear or delete it? – moewe Oct 01 '18 at 12:14
  • I think, if you answer with explaining why a second run is necessary it may be helpful for others anyways :) I would accept it as an answer of course! – Codey Oct 02 '18 at 11:42

1 Answers1

2

If you use context-dependent features like pagetracker (to make sure that "ibid" does not appear as first citation on a page), the document must usually be compiled with

  1. LaTeX
  2. Biber/BibTeX
  3. LaTeX
  4. LaTeX

i.e. there must be two LaTeX runs after the Biber/BibTeX run. In very rare situations another LaTeX or even Biber/BibTeX run may be required.

You should be warned about required additional runs in the log file with a message along the lines of

Package biblatex Warning: Please rerun LaTeX.
(biblatex)                Page breaks have changed.

The message should probably say "may have changed"...

or

Package biblatex Warning: Please (re)run Biber on the file:
(biblatex)                <file name>
(biblatex)                and rerun LaTeX afterwards.

The phenomenon can be reproduced in

\documentclass[12pt]{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{csquotes}
\usepackage[style=verbose-ibid, backend=biber]{biblatex}
\addbibresource{biblatex-examples.bib}

\begin{document}
Lorem\footcite[380]{sigfridsson}
\clearpage
Ipsum\footcite[381]{sigfridsson}
\end{document}

On the first LaTeX run after the Biber run, the citation on page two reads "Ebd." ("ibid."), but on the second run it shows a short citation instead as expected.

The two additional LaTeX runs are necessary because biblatex's pagetracker is implemented much in the same way \label/\ref is in standard LaTeX. On a first run the page information is written to the .aux file and on the second run that information is available from the beginning of the document compilation by reading the .aux file. See Understanding how references and labels work for a great explanation how \label and \ref work (especially section 4 is interesting, because pagetracker needs to get the page numbers right, https://texfaq.org/FAQ-wrongpn, Where does \thepage kick in? and On the basics of writing to & reading from auxiliary files (.aux, .toc, etc.) explain why it is a good idea to implement a page tracker in a way similar to \label).

Avoid infinite compiler passes with biblatex ibid citation styles? has an example where "ibid" and the pagetracker cause an infinite loop of rerun requests.

moewe
  • 175,683