Eigene kontextsensitive Alternativen definieren

Schriftbild, Absätze und Auflistungen einstellen


gyps_ruepelli
Forum-Anfänger
Forum-Anfänger
Beiträge: 33
Registriert: Mo 19. Jan 2015, 21:45

Eigene kontextsensitive Alternativen definieren

Beitrag von gyps_ruepelli »

Hallo in die Runde,

Ich grüble gerade über folgendem Problem. Ich layoute gerade ein Manuskript in EB Garamond, in dem die Abkürzung "AfD" vorkommt. Und nun ist es so, dass das kleine "f", das in EB Garamond relativ breit ist, auf unschöne Weise mit dem folgenden "D" verschmilzt und sozusagen eine Pseudoligatur bildet. Das möchte ich gerne verhindern. Dafür hat EB Garamond eine schmalere Glyphe für das kleine "f", die auch in bestimmten, kontextsensitiven Fällen benutzt wird, beispielsweise in der Kombination "fä" (Stichwort "kontextsensitive Alternativen" - Obtion "calt" in otf- und ttf-Fonts). Ich würde LaTeX bzw. XeLaTeX gerne beibiegen, dass es im Falle der Buchstabenkombination "fD" das kürzere "f" benutzen soll. Ich habe auch schon herausbekommen, wie der Code aussehen müsste, der zum gewünschten Ergebnis führt (siehe Minimalbeispiel). Was mir nur fehlt ist ein Befehl, der XeLaTeX ganz zu Anfang oder in der Präambel sagt "wenn Du 'fD' findest, nimm' das schmalere kleine 'f'".

Hier mein Minimalbeispiel: Die erste Zeile enthält die Abkürzung "AfD" mit der unerwünschten "Pseudoligatur". Die zweite Zeile die Version mit dem schmaleren kleinen "f."

Die letzte Zeile zeigt, dass XeLaTeX bei der Verwendung von "fä" automatisch das schmalere kleine "f" nutzt.
\documentclass{article}
\usepackage{fontspec}
\setmainfont{EBGaramond}

\begin{document}

AfD

A\XeTeXglyph\the\XeTeXglyphindex "f.short" D

gefährlich fahren

\end{document}
Kann mir jemand erklären, wie ich meinen gewünschten Satz bekomme?

gyps_ruepelli
Forum-Anfänger
Forum-Anfänger
Beiträge: 33
Registriert: Mo 19. Jan 2015, 21:45

Re: Eigene kontextsensitive Alternativen definieren

Beitrag von gyps_ruepelli »

Hallo in die Runde,

Ich habe nochmal ein bisschen rumgefrickelt und habe jetzt eine Lösung für mein Problem gefunden. Das erfordert allerdings den Umstieg auf LuaLaTeX. Hier das entsprechende Minimalbeispiel.
\documentclass{article}
\usepackage{fontspec}
\directlua{
  fonts.handlers.otf.addfeature{
    name = "trix",
    type = "chainsubstitution",
    lookups = {
      {
        type = "substitution",
        data = {
          ["f.DEU"] = "f.short",
        },
      },
    },
    data = {
      rules = {
        {
          after  = { { "f.short" , "k", "e" , "o" , "D" , "h", "i" } },
          current = { { "f.DEU" } },
          lookups = { 1 },
        },
      },
    },
  }
}
\setmainfont{EB_Garamond_Regular.otf}[
      RawFeature=+trix,
      Language=German]


\begin{document}

AfD

\end{document}

Antworten