biblatex 日期字符串未用希腊语和 autolang=other 定义

biblatex 日期字符串未用希腊语和 autolang=other 定义

在回答这个问题我发现greek语言设置和设置选项autolang之间存在一些奇怪的交互。biblatexother

从输出中可以看出,月份输出为日期四月因为该书目字符串未定义。如果我将主要语言更改为除 之外的其他语言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 时出现。

答案2

添加序言:

\DefineBibliographyStrings{english}{%
  dateapril = {April}
 }

现在的结果是: 在此处输入图片描述

相关内容