![是否可以将 iso-8859-7 编码(英语、希腊语)与 biblatex(后端设置为 biber)一起使用?](https://linux22.com/image/383296/%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E5%B0%86%20iso-8859-7%20%E7%BC%96%E7%A0%81%EF%BC%88%E8%8B%B1%E8%AF%AD%E3%80%81%E5%B8%8C%E8%85%8A%E8%AF%AD%EF%BC%89%E4%B8%8E%20biblatex%EF%BC%88%E5%90%8E%E7%AB%AF%E8%AE%BE%E7%BD%AE%E4%B8%BA%20biber%EF%BC%89%E4%B8%80%E8%B5%B7%E4%BD%BF%E7%94%A8%EF%BC%9F.png)
我正在尝试使用以下软件包编写双语论文文档:
\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}
编译无错误。尽管它加载greek
了babel
.english
是主要语言,并且希腊语从未用于引文或参考书目,所以一切都运行良好。