使用 biblatex 的 utf8 输入编码(biber 和 bibencoding=utf8)

使用 biblatex 的 utf8 输入编码(biber 和 bibencoding=utf8)

我有一份包含西里尔文、英文和德文的文档。到目前为止,一切都运行良好。但现在我需要 bibliography.bib 文件中的特殊字符。它是\.{E}

如果我将其放入其中,会出现以下错误:

! Package inputenc Error: Unicode char \u8:Ė not set up for use with LaTeX.

以下是重现该行为的示例代码:

\documentclass[12pt,a4paper]{article}
\usepackage{amsmath,amsthm,amssymb,amsfonts}
\usepackage[T1,T2A]{fontenc}
\usepackage[utf8]{inputenc}

\usepackage[english,russian,ngerman]{babel}

\usepackage[backend=biber,bibencoding=utf8]{biblatex}

\usepackage{filecontents}
\begin{filecontents}{onebook.bib}
@book{eichenbaum,
author={{\.{E}}jchenbaum},
title={Wie Gogol's \enquote{Mantel} gemacht ist},
}
\end{filecontents}
\addbibresource{onebook.bib}
\nocite{*}

\begin{document}

\.{E}jchenbaum

Гоголь

Münze

\printbibliography

\end{document}

如果我E在该 .bib 文件中放入一个常规文件,我会得到以下内容(以及正确的编码,因为我希望它在参考书目之外):

.bib 中没有特殊字符

如果我将其放入\.{E}.bib 文件中并注释掉该行: % \usepackage[utf8]{inputenc} 然后我得到以下内容:

.bib 文件中含有特殊字符

有趣的是,我可以让参考书目与我的文档文件进行交互,但代价是丢失其中的常规文本编码......

一如既往,我非常感谢任何形式的帮助!谢谢!

答案1

我编写的newunicodechar只是为了解决类似的问题,因为的 Unicode 支持inputenc有限(但可扩展)。

您可以通过两种方式进行:

  1. 在 Unicode 表中查找,发现 Ė 是 U+0116 拉丁大写字母 E,上面带点,并将其添加到序言中

    \DeclareUnicodeCharacter{0116}{\.{E}}
    
  2. 从终端输出或日志文件复制有问题的字符并将其粘贴到第一个参数中\newunicodechar

    \newunicodechar{Ė}{\.{E}}
    

这两种方法都应该可以解决您的问题。

相关内容