Fehler im Fontenc (oder Libertine)?

Fehler im Fontenc (oder Libertine)?

Ich arbeite an einem Buch mit über 200 A5-Seiten. Beim Umstieg von pdflatex auf xelatex sind mir einige gravierende Layoutunterschiede aufgefallen. Um das Problem zu ermitteln, bin ich dazu gekommen, MWE für pdflatex zu verwenden.

\documentclass[paper=a5,pagesize,fontsize=13pt]{scrbook}
\usepackage{showframe}
\usepackage[T1]{fontenc}
\usepackage[osf]{libertine}

\begin{document}
Hello, here is some text without a meaning. This text
should show what a printed text will look like at this place.
\end{document}

Wenn

\usepackage[T1]{fontenc}

ist, endet die erste Textzeile mit „Dieser Text“. Wenn sie auskommentiert ist, endet sie mit „Dieser Text sollte“, was ebenfalls zu einem überfüllten Feld führt.

Antwort1

Der Unterschied liegt an

OT1:

.\OT1/LinuxLibertineT-TOsF/m/n/13 i
.\OT1/LinuxLibertineT-TOsF/m/n/13 n
.\OT1/LinuxLibertineT-TOsF/m/n/13 g
.\OT1/LinuxLibertineT-TOsF/m/n/13 .
.\glue 3.7921 plus 4.875 minus 0.36096
.\OT1/LinuxLibertineT-TOsF/m/n/13  (ligature Th)
.\OT1/LinuxLibertineT-TOsF/m/n/13 i
.\OT1/LinuxLibertineT-TOsF/m/n/13 s
.\glue 3.25 plus 1.625 minus 1.08289
.\OT1/LinuxLibertineT-TOsF/m/n/13 t
.\OT1/LinuxLibertineT-TOsF/m/n/13 e
.\kern-0.091
.\OT1/LinuxLibertineT-TOsF/m/n/13 x
.\OT1/LinuxLibertineT-TOsF/m/n/13 t

T1:

....\T1/LinuxLibertineT-TOsF/m/n/13 i
....\T1/LinuxLibertineT-TOsF/m/n/13 n
....\T1/LinuxLibertineT-TOsF/m/n/13 g
....\T1/LinuxLibertineT-TOsF/m/n/13 .
....\glue 3.7921 plus 4.875 minus 0.36096
....\T1/LinuxLibertineT-TOsF/m/n/13 T
....\T1/LinuxLibertineT-TOsF/m/n/13 h
....\T1/LinuxLibertineT-TOsF/m/n/13 i
....\T1/LinuxLibertineT-TOsF/m/n/13 s
....\glue 3.25 plus 1.625 minus 1.08289
....\T1/LinuxLibertineT-TOsF/m/n/13 t
....\T1/LinuxLibertineT-TOsF/m/n/13 e
....\kern-0.091
....\T1/LinuxLibertineT-TOsF/m/n/13 x
....\T1/LinuxLibertineT-TOsF/m/n/13 t

das heißt, die OT1-Schriftart hat eine Th-Ligatur, die in der T1-Schriftart nicht vorhanden ist. Das ist etwas überraschend, aber nicht unbedingt ein Fehler. Danach sind die Wortlängen geringfügig unterschiedlich, was ausreicht, um den Absatzzeilenumbruch einen anderen Weg nehmen zu lassen.

Sie könnten die Ligatur vermeiden wie

\documentclass[paper=a5,pagesize,fontsize=13pt]{scrbook}
\usepackage{showframe}
%\usepackage[T1]{fontenc}
\usepackage[osf]{libertine}

%\showoutput

\begin{document}
Hello, here is some text without a meaning. T{}his text
should show what a printed text will look like at this place.
\end{document}

Antwort2

Sie können die gefürchtete Th-Ligatur in OT1-Schriftarten deaktivieren, indem Sie laden microtypeund ausführen

\DisableLigatures[T]{encoding=OT1}

Dies hat allerdings den Nachteil, dass auch das Kerning gegenüber T deaktiviert wird, wie das folgende Beispiel zeigt.

\documentclass[paper=a5,pagesize,fontsize=13pt]{scrbook}
\usepackage{showframe}
\usepackage[T1]{fontenc}
\usepackage[osf]{libertine}

\usepackage{microtype}
\DisableLigatures[T]{encoding=OT1}

\begin{document}

\fontencoding{OT1}\selectfont

Hello, here is some text without a meaning. This text
should show what a printed text will look like at this place.

To

\fontencoding{T1}\selectfont

Hello, here is some text without a meaning. This text
should show what a printed text will look like at this place.

To

\end{document}

Bildbeschreibung hier eingeben

Es gibt also keine wirkliche Lösung für Ihr Problem. Sie könnten den Betreuer des libertinePakets bitten, eine Option zum Deaktivieren der Th-Ligatur in der OT1-Kodierung hinzuzufügen (ein neuer Satz virtueller Schriftarten wird benötigt). Meiner Meinung nach wäre dies einesehrgutes Feature, da ich die Ligatur echt furchtbar finde.

verwandte Informationen