我在 Mac OS X 10.7.1 上安装了最新版本的 latexmk (4.26)。通过以下方式进行编译时,我经常收到以下消息(基本上,对于文中的所有引用)latexmk -pvc -pdf
:
Package biblatex Warning: Value out of range
(biblatex) at entry 'foo' on input
line bar.
有人见过这种情况并知道哪里出了问题吗? 类似的问题已发布在这里https://groups.google.com/group/comp.text.tex/browse_thread/thread/5a2a0d7ab113a151?hl=de(参见上一篇文章),但尚未得到答复。键“foo”与 .bib 文件中的有效条目相关,并且还找到了 .bib 文件(因此排除了这两个错误来源)。
*编辑:这是一个最小的例子*
% (1) Compile with latexmk minimal.tex
% (2) I had the latest version: Latexmk, John Collins, 9 August 2011. Version 4.26
% (3) My latex distribution is: TeXLive-2011 v. 2.0 (Build 150) installed via the latest MacTeX distribution.
% (4) I work on Mac OS X 10.7.2
% Note: I used latexmk and biblatex on 10.6 with TeXLive-2010 for quite some time (also with DeclareFieldFormat{labelyear}) without flaws
\documentclass{scrartcl}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[american]{babel}
\usepackage[
style=authoryear,
uniquename=false,
hyperref=true,
maxnames=2,
date=short
]{biblatex}
\DeclareFieldFormat{labelyear}{\mknumalph{#1}} % => comment this out and it works!
\usepackage{filecontents}
\begin{filecontents}{mybib.bib}
@article{mykey,
author={TeX, L.},
journal={Journal of LaTeX questions},
pages={1--10},
title={{Minimal title}},
volume={1},
number={1},
year={2011}}
\end{filecontents}
\bibliography{mybib}
\begin{document}
Some text
\par\bigskip
\textcite{mykey}
\par\bigskip
Some more text
\printbibliography
\end{document}
答案1
从比布拉特克斯文件:
\mknumalph{⟨integer⟩}
以 1–702 范围内的整数作为参数,并将其转换为字符串,如下所示:1=a, ... , 26=z, 27=aa, . . . , 702=zz。这旨在用于 extrayear 和 extraalpha 字段的格式化指令。
当您将其应用于年份标签时,就会超出范围。该命令必须应用于extrayear
或extraalpha
字段,以区分同一年出版的不同项目,而不是字段year
:您可能不想按字母顺序打印年份。