在回答这个问题我发现greek
语言设置和设置选项autolang
之间存在一些奇怪的交互。biblatex
other
从输出中可以看出,月份输出为日期四月因为该书目字符串未定义。如果我将主要语言更改为除 之外的其他语言greek
,例如german
或,则french
不会出现问题。但由于autolang=other
选项应该是访问english
日期字符串(就像它对这些语言所做的那样),所以我不清楚为什么当greek
主要语言是 时,日期字符串未定义。
以下文档重现了该问题。
\documentclass{article}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{anarticle,
author={Lathrop, J.W.},
journal={Electron Devices, IRE Transactions on},
title={Photolithographic fabrication techniques for transistors},
year={1958},
month={4},
volume={5},
number={2},
pages={117},
doi={10.1109/T-ED.1958.14395},
ISSN={0096-2430},
langid={english},
hyphenation={english}
}
\end{filecontents}
\usepackage{polyglossia}
\setmainlanguage{greek} % works with german, french, etc.
\setotherlanguage{english}
% Change these if you want
\newcommand{\MainFont}{Times New Roman}
\newcommand{\MonoFont}{Courier New}
\setmainfont[Mapping=tex-text,Ligatures={TeX,Common}]{\MainFont}
\setmonofont[Mapping=tex-text,Ligatures={TeX,Common}]{\MonoFont}
\newfontfamily\greekfont[Script=Greek,Mapping=tex-text,Ligatures={Common,TeX}]{\MainFont}
\newfontfamily\greekfonttt[Script=Greek,Mapping=tex-text,Ligatures={Common,TeX}]{\MonoFont}
\usepackage[style=alphabetic,maxcitenames=2,language=auto,autolang=other]{biblatex}
\addbibresource{\jobname.bib}
\begin{document}
\cite{anarticle}
\printbibliography
\end{document}
答案1
问题原来是greek.lbx
本地化文件的一个错误。它没有使用已经定义的格式\lbx@gr@mkbibmonth
来格式化日期,而是在第一次使用之后使用了\mkbibmonth
定义的格式。\let\mkbibmonth\lbx@gr@mkbibmonth
\savecommand{\mkbibmonth}
\mkbibmonth
直接\lbx@gr@mkbibmonth
在文件中替换 的使用.lbx
即可解决问题。我已向作者报告了此错误,修复后的文件将在下一次 的更新biblatex
推送到 CTAN 时出现。