3

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?

  • @campa is right! – Mogic Apr 28 '18 at 13:32
  • 2
    You get the same error from \documentclass{article} \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \begin{document} Δ \end{document} It is a known 'problem'/fact that by default inputenc's UTF-8 config file does not include mappings for all of the Unicode specification. For native Unicode support you need XeLaTeX or LuaLaTeX. Otherwise you'll have to live with the occasional \DeclareUnicodeCharacter. – moewe Apr 28 '18 at 14:04
  • Perhaps rewrite these comments as an answer... – Jhor Apr 28 '18 at 20:08
  • @campa ^^^^^ Do you want to type up an answer? – moewe Apr 29 '18 at 11:27
  • @campa OK then. I'm no Unicode expert either, so feel free to comment if you see room for improvement. – moewe Apr 29 '18 at 17:43
5

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.

  • 2
    This might be a place where \ensuremath is good: \DeclareUnicodeCharacter{0394}{\ensuremath{\Delta}} The R should definitely be upright, so the title field should be title = {{ΔR} Correction Values for the {Northern} {Indian} {Ocean}} – egreg Apr 29 '18 at 20:41
  • @egreg Good point, thank you. I have edited that in. – moewe Apr 29 '18 at 20:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.