[Tex/LaTex] ! Package inputenc Error: Unicode char Δ (U+394)

biblatexbibliographiesinput-encodings

I would like to set up a bibliography containing greek letters (e.g. Δ) but receive an error while printing my bibliography.

Though having read several questions related to that topic (e.g. 1, 2 and 3) I am not able to find my error. I understand that it is linked to the encoding of my bibliography, since the error shows up only if I print my bibliography. Am I missing any additional options for biblatex?

I exported my bibliography via Zotero as a BibLateX file using UTF8-Coding. I am using Texmaker editor which uses UTF8 encoding as well.

MWE

\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}

The error message copied from the .log file:

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.

Workarounds:

As pointed out in the comment there are two quick workarounds:

  1. Edit your .bib file. In my particular case replace ΔR by $\Delta R$ in the .bib file.
  2. Use \DeclareUnicodeCharacter{394}{$\Delta$} in the preamble of your .tex document.

However, solution 1 is not useful if you are regularly updating your .bib file as you have to replace the characters each time by hand.
Solution 2 is much more time-saving, but I still would like two know the source of my error. Apparently, the complete character list for UFT-8 includes also Δ GREEK CAPITAL LETTER DELTA (U+0394). So why do I get the error message although all encoding is set up for uft8?

Best Answer

A similar problem occurs with

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

when compiled with pdfLaTeX. It is a (slightly annoying for some) fact that inputenc's UTF-8 config file does not set up all Unicode characters for use with LaTeX. One of the reasons being that fonts in LaTeX contain significantly fewer code points than Unicode and it is not always possible to predict where the glyph resides (if it is present at all).

So as noted in the comments,

\DeclareUnicodeCharacter{0394}{$\Delta$}

or

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

would be a solution to your problem. The latter has the advantage that it works in text and math mode, while $\Delta$ will fail if TeX is already in math mode, i.e. with input such as \(ΔR\) (thanks to @egreg for pointing this out in the comments).

The alternative solution of writing

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

is what I would prefer here, but I don't know about the conventions in your field, maybe the R should be upright, ... The software you use to export your .bib file should let you use TeX's math mode, so that you won't have to manually edit your .bib file all the time.

Alternatively, you can use of the engines that support Unicode natively, XeLaTeX or LuaLaTeX. With those engines you won't need \DeclareUnicodeCharacter because they can access system fonts directly where LaTeX's character limit does not come into play.

Related Question