平均能量损失

平均能量损失

我想建立一个包含希腊字母(例如 Δ)的参考书目,但在打印参考书目时收到错误。

尽管已经阅读了与该主题相关的几个问题(例如123) 我找不到我的错误。我知道它与我的参考书目的编码有关,因为只有当我打印参考书目时才会出现错误。我是否遗漏了 biblatex 的任何其他选项?

我通过 Zotero 使用 UTF8 编码将我的参考书目导出为 BibLateX 文件。我使用的 Texmaker 编辑器也使用 UTF8 编码。

平均能量损失

\begin{filecontents*}{references.bib}
% this article is fine
@article{stuiver_modeling_1993,
    title = {Modeling Atmospheric 14C Influences and 14C Ages of Marine Samples to 10,000 {BC}},
    author = {Stuiver, Minze and Braziunas, Thomas F.},
    date = {1993},
% this article creates headache due to the greek capital delta in the title
@article{dutta_r_2001,
    title = {ΔR Correction Values for the Northern Indian Ocean},
    author = {Dutta, Koushik and Bhushan, Ravi and Somayajulu, B. L. K.},
    date = {2001}
\end{filecontents*}

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[backend=biber]{biblatex}
\addbibresource{references.bib}

\begin{document}
Test first \textcite{bard_radiocarbon_2013} and second \textcite{dutta_r_2001}

% Error shows up only if I add the bibliography
\printbibliography
\end{document}

从.log文件复制的错误信息:

Package biblatex Info: Input encoding 'utf8' detected.
Package biblatex Info: Automatic encoding selection.
(biblatex)             Assuming data encoding 'utf8'.
\openout3 = `test.bcf'.

Package biblatex Info: Trying to load bibliographic data...
Package biblatex Info: ... file 'test.bbl' found.
(./test.bbl)
Package biblatex Info: Reference section=0 on input line 40.
Package biblatex Info: Reference segment=0 on input line 40.
LaTeX Font Info:    Try loading font information for T1+cmtt on input line 43.
 (/usr/share/texlive/texmf-dist/tex/latex/base/t1cmtt.fd
File: t1cmtt.fd 2014/09/29 v2.5h Standard LaTeX font definitions
)
LaTeX Font Info:    External font `cmex10' loaded for size
(Font)              <7> on input line 43.
LaTeX Font Info:    External font `cmex10' loaded for size
(Font)              <5> on input line 43.


! Package inputenc Error: Unicode char Δ (U+394)
(inputenc)                not set up for use with LaTeX.

See the inputenc package documentation for explanation.
Type  H <return>  for immediate help.

解决方法:

正如评论中指出的那样,有两种快速的解决方法:

  1. 编辑您的.bib文件。在我的特定情况下,在文件中替换ΔR为。$\Delta R$.bib
  2. \DeclareUnicodeCharacter{394}{$\Delta$}在文档的序言中使用.tex

然而,解决方案 1如果您定期更新文件则没用,.bib因为您必须每次手动替换字符。 解决方案 2节省了很多时间,但我仍然想知道我的错误根源。显然,UFT-8 完整角色列表也包括Δ GREEK CAPITAL LETTER DELTA (U+0394)。那么为什么尽管设置了所有编码,我仍收到错误消息uft8

答案1

类似的问题也发生在

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\begin{document}
Δ
\end{document}

使用 pdfLaTeX 编译时。事实上(对某些人来说有点烦人),inputencUTF-8 配置文件没有设置所有 Unicode 字符以供 LaTeX 使用。原因之一是 LaTeX 中的字体包含的代码点比 Unicode 少得多,并且并不总是能够预测字形所在的位置(如果它存在的话)。

正如评论中指出的那样,

\DeclareUnicodeCharacter{0394}{$\Delta$}

或者

\DeclareUnicodeCharacter{0394}{\ensuremath{\Delta}}

可以解决您的问题。后者的优点是它可以在文本和数学模式下工作,而$\Delta$如果 TeX 已经处于数学模式,即输入如下内容,则会失败\(ΔR\)(感谢 @egreg 在评论中指出这一点)。

替代解决方案是写作

title = {$\Delta\mathrm{R}$ Correction Values for the {Northern} {Indian} {Ocean}},

是我在这里更喜欢的,但我不知道你所在领域的惯例,也许 R 应该是直立的,...你用来导出.bib文件的软件应该让你使用 TeX 的数学模式,这样你就不必一直手动编辑你的.bib文件。

或者,您可以使用原生支持 Unicode 的引擎,XeLaTeX 或 LuaLaTeX。使用这些引擎,您将不需要这些,\DeclareUnicodeCharacter因为它们可以直接访问系统字体,而 LaTeX 的字符限制不会发挥作用。

答案2

自 2010 年以来,我一直在 Ubuntu 中使用 MiKTeX + PdfTeX + TeXstudio 用希腊语书写。对于新笔记本电脑,我使用了与 Windows 10 相同的配置,每当写入希腊字符时就会出现上述错误。经过大量阅读,问题仍未解决,我只是尝试用 更改\usepackage[utf8]{inputenc}utf8x就这样,问题解决了。同时我utf在 Ubuntu 系统中使用,一切正常!

相关内容