Einfaches LuaLaTeX-Beispiel (zweite Variante)5

[Update: in diesem Artikel über LuaLaTeX und TeXlive 2010 gibt es eine »bessere« Variante]

Nachdem ich mit dem minimalen LuaLaTeX-Beispiel im Artikel vom Januar nicht wirklich zufrieden war, habe ich noch einmal etwas ausprobiert. Jetzt bin ich bei diesem Beispiel und es scheint wie gewünscht zu funktionieren:

\documentclass{article}
\usepackage{luaotfload}
\usepackage[EU2]{fontenc}
\usepackage{lmodern}
\begin{document}
Das Mädchen ging über die \textbf{Brücke} nach \textit{draußen}.
\end{document}

Der Trick hier ist die EU2-Kodierung. Durch diesen Befehl lädt LuaLaTeX die Datei eu2lmr.fd als Schriftdefinition, und die Datei sieht so aus:

\ProvidesFile{eu2lmr.fd}
    [2009/11/20 v0.2 Font defs for Latin Modern for LuaTeX's EU2 encoding]
\DeclareFontFamily{EU2}{lmr}{}
\DeclareFontShape{EU2}{lmr}{m}{n}%
     {<-5.5>    "lmroman5-regular:+tlig;+tsub;+liga;+rlig;"
      <5.5-6.5> "lmroman6-regular:+tlig;+tsub;+liga;+rlig;"
      <6.5-7.5> "lmroman7-regular:+tlig;+tsub;+liga;+rlig;"
      <7.5-8.5> "lmroman8-regular:+tlig;+tsub;+liga;+rlig;"
      <8.5-9.5> "lmroman9-regular:+tlig;+tsub;+liga;+rlig;"
      <9.5-11>  "lmroman10-regular:+tlig;+tsub;+liga;+rlig;"
      <11-15>   "lmroman12-regular:+tlig;+tsub;+liga;+rlig;"
      <15->     "lmroman17-regular:+tlig;+tsub;+liga;+rlig;"
    }{}
  ...

Man sieht schön, dass hier die erweiterte Fontsyntax von XeTeX bzw. luaotfload benutzt wird, anstatt über den Weg tfm/pfb zu gehen.

Die Kodierung EU1 hätten wir ebenso benutzen können. Die Datei eu1lmr.fd enthält leicht andere Fontbefehle:

...
<11-15>   "[lmroman12-regular]:mapping=tex-text"
...

Vermutlich ist das mapping=tex-text einfach eine Verallgemeinerung von +tlig;+tsub;, das ja keine echten OpenType Font Features sind. Kann jemand Licht ins Dunkle bringen?

Teilen

5 Kommentare zu "Einfaches LuaLaTeX-Beispiel (zweite Variante)"

Georg schrieb am 15.02 um 09:52 Uhr:

EU1 ist nicht empfehlenswert, weil lualatex mit ebenjenem mapping=tex-text nichts anfangen kann. Ganz genau hab ich noch nicht herausgefunden, was tlig und tsub jeweils genau sind, generell sind es Pseudo-OTF-Features, die TeX-spezifische Kürzel »übersetzen«. Am einfachsten kannst du den Effekt sehen, in dem du einen Gedankenstrich (–) in dein Minimalbeispiel einbaust. Mit EU1 bleibt es »–«, mit EU2 wird es wie erwartet als – übersetzt.

Georg schrieb am 15.02 um 09:54 Uhr:

Den letzten Satz nochmal, mit Überlistung des CMS:
Am einfachsten kannst du den Effekt sehen, in dem du einen Gedankenstrich (- -) in dein Minimalbeispiel einbaust. Mit EU1 bleibt es »- -«, mit EU2 wird es wie erwartet als – übersetzt.

Georg schrieb am 15.02 um 13:42 Uhr:

Noch etwas ist mir aufgefallen: Mit EU1 werden auch die Standardligaturen nicht gesetzt. Mein Minimaltext, mit dem ich auch diese und die TeX-spezifischen Kürzel teste, ist:

Das Mädchen ging -- über die \textbf{Brücke} -- nach
\textit{draußen} um Äpfel zu pflücken.

Patrick Gundlach schrieb am 15.02 um 13:46 Uhr:

Danke Georg für die wirklich hilfreichen Kommentare! Bitte weiter so!

Georg schrieb am 16.02 um 13:22 Uhr:

Freut mich, wenn ich helfen kann.
Ich hab nach etwas Recherche auch herausgefunden, was trep und tlig jeweils machen. Unter http://www.mail-archive.com/dev-context@ntg.nl/msg00684.html gibt es eine Diskussion (von 2007) darüber. trep ist für Zeichenersetzungen wie zb ‘ → ’ zuständig, während tlig die oben erwähnten TeX-Zeichenkombinationen in Unicodezeichen übersetzt. Die in der Diskussion als unerwünscht angeführten Mappings funktionieren alle, bis auf `` und ''. Es funktionieren auch !` und ?` und <>.

Kommentar schreiben