是否可以将 iso-8859-7 编码(英语、希腊语)与 biblatex(后端设置为 biber)一起使用?

是否可以将 iso-8859-7 编码(英语、希腊语)与 biblatex(后端设置为 biber)一起使用?

我正在尝试使用以下软件包编写双语论文文档:

\documentclass{customThesis}
\usepackage[greek,english]{babel}
\usepackage[iso-8859-7]{inputenc}

\usepackage[refsection=chapter,

               backend=biber,
               firstinits=true,
               isbn=false,
               url=false,
               safeinputenc,
 %             bibencoding=auto
               sorting=none]{biblatex}

当我尝试在其上运行 pdflatex+biber+pdflatex 时,我收到以下错误: !软件包 biblatex 错误:希腊语需要 UTF-8 支持。请参阅 biblatex 软件包文档以获取解释。

有什么想法可以让它发挥作用吗?

答案1

biblatex的本地化模块要求对某些非拉丁字母语言(目前为保加利亚语、希腊语、俄语、乌克兰语)进行 UTF-8 编码。这意味着,只有当文档采用 UTF-8 编码时(或者更确切地说,如果检测到文档以 UTF-8 模式处理),.lbx才能加载这些文件。biblatex

如果未检测到 UTF-8 编码,模块将发出错误。如果您需要biblatex希腊语,则不能使用 ISO 8859-7(或者您必须重新编码greek.lbx为 ISO 8859-7)。

不幸的是,仅仅将语言声明为babel就会导致加载本地化模块,即使它实际上不需要和使用。这意味着即使您greek.lbx根本不关心,您也会收到此错误。在这种情况下 - 并且只有在这种情况下 - 您可以使用 来消除错误\csletcs{lbx@ifutfinput}{@firstoftwo}。该行假装.lbx文件是在 UTF-8 模式下读取的。这只有在您从未使用希腊语本地化时才会顺利运行,否则您可能会遇到各种错误或不良行为。

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[greek,english]{babel}
\usepackage[iso-8859-7]{inputenc}
\usepackage{csquotes}

\usepackage[style=authoryear, backend=biber]{biblatex}

\csletcs{lbx@ifutfinput}{@firstoftwo}

\addbibresource{biblatex-examples.bib}

\begin{document}
\cite{sigfridsson}
\printbibliography
\end{document}

编译无错误。尽管它加载greekbabel.english是主要语言,并且希腊语从未用于引文或参考书目,所以一切都运行良好。

相关内容