我使用 BibLaTeX 的两种不同的参考书目样式,一种是作者年份样式(用于出版物),另一种是简单的数字样式,用于在线参考,但 pdfLaTeX 始终无法稳定下来。问题是由于defernumbers
/omitnumbers
选项,我必须运行 pdflatex/biber/pdflatex/pdflatex 才能获得正确的数字(基本上,作者年份样式的参考文献在编号中不会被忽略,因此您需要运行 pdflatex 两次,以便让 BibLaTeX 重新计算正确的数字),但最后一次 pdflatex 运行将更改参考文献的文本大小的宽度,因此可能会更改分页符并将其他参考文献移动到其他页面,因此需要重新运行 pdflatex。如果 BibLaTeX(使用版本 2.4 + biber 1.4,但我认为我在另一台计算机上使用 2.5/1.5 时也遇到了同样的问题)没有循环行为,那就完全没问题了:再运行一次 pdfLaTeX 会将数字改回错误的数字,您必须再运行一次才能获得正确的数字……这会再次更改分页符,您就陷入困境了。以下几乎 MWE(我必须包含 @online 条目的替代环境和引用命令来演示该问题,不确定如何缩小它)展示了 defernumbers/omitnumbers 选项的循环行为,这是(我认为)我的问题的根本原因:
\documentclass{article}
\usepackage[style=authoryear,backend=biber,labelnumber,defernumbers]{biblatex}
\DeclareCiteCommand{\citeonline}[\mkbibbrackets]
{\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\printtext[bibhyperref]{%
\printfield{prefixnumber}%
\printfield{labelnumber}}}
{\multicitedelim}
{\usebibmacro{postnote}}
\defbibenvironment{online}
{\list
{\printtext[labelnumberwidth]{%
\iffieldundef{shorthand}
{\printfield{prefixnumber}%
\printfield{labelnumber}}
{\printfield{shorthand}}}}
{\setlength{\labelwidth}{\labelnumberwidth}%
\setlength{\leftmargin}{\labelwidth}%
\setlength{\labelsep}{\biblabelsep}%
\addtolength{\leftmargin}{\labelsep}%
\setlength{\itemsep}{\bibitemsep}%
\setlength{\parsep}{\bibparsep}}%
\renewcommand*{\makelabel}[1]{\hss##1}}
{\endlist}
{\item}
\begin{filecontents*}{test.bib}
@article{TehAuthor2013,
author = "TehAuthor",
year = 2013,
journal = "Random Thoughts about science",
title = "Blablabla",
}
@online{TSE2011,
author = "TSE",
year = 2011,
url = "http://tex.stackexchange.com/blabla",
}
\end{filecontents*}
\bibliography{test.bib}
\title{}
\begin{document}
\parencite{TehAuthor2013} \\
\parencite{TSE2011}
\printbibliography[heading=subbibliography,title={In print},nottype=online,omitnumbers]
\printbibliography[heading=subbibliography,title={Online},sorting=none,type=online,env=online]
\end{document}
这是一个值得报告的错误,还是我做错了什么?(我知道整个替代环境/子书目不是很漂亮,但它似乎可以完成工作,我还没有找到其他方法来做到这一点)
答案1
作为参考,这个问题已在 biblatex 2.6 beta 中修复。请参阅https://github.com/plk/biblatex/issues/70