我使用(版本 3.8,BibTeX 后端)组织我的源代码biblatex
并设置好一切。这是我的序言:
\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}
我用\footcite[p. x]{author2018}
它来创建来源引用。假设我在第 7 页,这一页的最后一个引用是作者 A 的书籍 B。在第 8 页,biblatex
在脚注中写上“ibid”,而不是再次写出来源。但是,在.tex
使用 3.3 的另一台计算机上编译同一篇文档时,biblatex
一切都运行正常。我猜这是因为版本问题,biblatex
但谁知道呢。
所以我想修复这个行为,以便在下一页上不会使用“ibid”。
答案1
如果你使用上下文相关功能pagetracker
(例如,以确保“ibid”不会出现在页面上的第一个引用),则通常必须使用以下方式编译文档:
- 乳胶
- Biber/BibTeX
- 乳胶
- 乳胶
即在运行完 Biber/BibTeX 后必须运行两次 LaTeX。在极少数情况下,可能需要再运行一次 LaTeX 甚至 Biber/BibTeX。
您应该在日志文件中收到有关需要额外运行的警告,其中的消息如下
Package biblatex Warning: Please rerun LaTeX. (biblatex) Page breaks have changed.
该消息可能应该说“可能已改变”...
或者
Package biblatex Warning: Please (re)run Biber on the file: (biblatex) <file name> (biblatex) and rerun LaTeX afterwards.
该现象可以在
\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}
在 Biber 运行之后的第一次 LaTeX 运行中,第二页的引文显示为“Ebd.”(“ibid.”),但在第二次运行时,它却按预期显示了一个简短的引文。
两次额外的 LaTeX 运行是必要的,因为biblatex
's 的pagetracker
实现方式与标准 LaTeX 中的\label
/非常相似\ref
。第一次运行时,页面信息将写入文件.aux
,第二次运行时,通过读取文件,可以从文档编译的开始处获取该信息.aux
。请参阅了解引用和标签的工作原理很好地解释了如何\label
工作\ref
(特别是第 4 部分很有趣,因为pagetracker
需要正确设置页码,https://texfaq.org/FAQ-wrongpn,\thepage 在哪里开始起作用?和关于写入和读取辅助文件(.aux、.toc 等)的基础知识解释为什么以类似于的方式实现页面跟踪器是一个好主意\label
)。
避免使用 biblatex ibid 引用样式进行无限次编译?有一个例子,其中“同上”并导致pagetracker
重新运行请求的无限循环。