Übersetzt man mit lualatex eine Datei mit Umlauten in den von hyperref erzeugten Bookmarks, so werden diese Mehr-Byte-Zeichen offenbar Byte für Byte interpretiert und so vollkommen falsch in den Lesezeichen dargestellt:

Open in Online-Editor
\documentclass{article}
\usepackage{fontspec}
\usepackage{hyperref}
\begin{document}
\section{Äpfel können rollen}
\end{document}

Ergibt in den Lesezeichen:

Lesezeichen mit falschen Umlauten

Wie kann man dafür sorgen, dass die Umlaute korrekt dargestellt werden?

gefragt 18 Feb '15, 11:59

saputello's gravatar image

saputello
11.1k174365
Akzeptiert-Rate: 51%

bearbeitet 18 Feb '15, 13:33


Das Paket hyperref kennt die Option pdfencoding mit der man ihm mitteilen kann, welche Codierung u. a. die Bookmarks haben sollen. Neben der Einstellung unicode gibt es auch die Einstellung auto, bei der hyperref zunächst die Codierung jedes einzelnen Strings zu ermitteln versucht, um diesen dann in die passende Codierung für Bookmarks zu bringen. Damit funktioniert es dann auch mit der nativen UTF8-Eingabecodierung von LuaLaTeX:

Open in Online-Editor
\documentclass{article}
\usepackage{fontspec}
\usepackage[pdfencoding=auto]{hyperref}
\begin{document}
\section{Äpfel können rollen}
\end{document}

Erzeugt mit LuaLaTeX Lesezeichen, wie folgt:

Korrekte Lesezeichen

XeLaTeX benötigt die Option übrigens nicht, weil hyperref sie selbst aktiviert, wenn es XeLaTeX erkennt (Hinweis stammt von @Ulrike Fischer). Natürlich stört es auch nicht, wenn man die Option selbst angibt. Obiges Beispiel funktioniert daher mit XeLaTeX genauso.

In meinen eigenen Tests hat übrigens pdfencoding=unicode oder einfach unicode als Option ebenfalls funktioniert. Wie Ulrike bemerkt hat, scheint es aber ältere Versionen des Adobe Readers zu geben, die damit manchmal Probleme haben. Da ich selbst keinen Adobe Reader verwende, kann ich das nicht verifizieren.


In einigen Foren findet man übrigens stattdessen den Tipp, das Paket luainputenc zu verwenden. Wie schon der Einleitung dessen Anleitung zu entnehmen ist, sollte man das Paket aber nur dann verwenden, wenn man keine andere Wahl hat. Dafür werden in der Anleitung auch nur zwei Fälle genannt:

  1. Man hat ein altes Dokument, das nicht UTF8-codiert ist, und will dieses aus irgendwelchen Gründen nicht umcodieren.
  2. Man muss das Paket fontenc mit einem 8-Bit-codierten Font verwenden, statt Pakete wie fontspec oder luaotfload und fontenc mit der Codierungsoption EU2 zu verwenden.

Für das Problem der Sonderzeichen in Bookmarks trifft keiner dieser Fälle zu. Da aber ansonsten von der Verwendung von luainputenc abgeraten wird, betrachte ich dessen Verwendung für das genannte Problem daher als nicht empfehlenswert.

Permanenter link

beantwortet 18 Feb '15, 12:06

saputello's gravatar image

saputello
11.1k174365
Akzeptiert-Rate: 51%

bearbeitet 21 Feb '15, 15:27

pdfencoding=auto ist oft die bessere Wahl, weil der AR (je nach Stand des Mondes oder was sonst auch immer) bei der Option unicode doch irgendwas falsch macht. Siehe auch http://tex.stackexchange.com/a/26193/2388.

(18 Feb '15, 12:51) Ulrike Fischer

@saputello: Ja, wobei ich wirklich nicht genau weiß, warum und wann der AR manchmal spinnt. N.B: xetex benutzt standardmäßig pdfencoding=auto, siehe readme von hyperref für eine Begründung.

(18 Feb '15, 14:24) Ulrike Fischer
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×117
×62
×29
×14

gestellte Frage: 18 Feb '15, 11:59

Frage wurde gesehen: 13,505 Mal

zuletzt geändert: 21 Feb '15, 15:27