Seite 1 von 1

Unfreie Schriften installieren

Verfasst: Di 23. Nov 2021, 13:44
von M0M0

Mein Problem ist ähnlich dem hier beschriebenen:

viewtopic.php?f=18&t=15153

Zusätzlich zur dort beschriebenen manuellen Installation, habe ich auch probiert UWS Classico mittels getnonfreefonts zu installieren. Habe alles sowohl Systemweit als auch für den Benutzer probiert.

Lasse ich

getnonfreefonts --user --lsfonts

laufen erhalte ich auch

classico       Classico (URW)                                       [installed]

Dennoch liefert

\documentclass{article}
\usepackage{fontspec}
\setmainfont{UWS Classico}
\begin{document}
  Hallo Welt!
\end{document}

den Fehler

! Package fontspec Error: The font "UWS Classico" cannot be found.

Re: Unfreie Schriften installieren

Verfasst: Di 23. Nov 2021, 18:17
von KOMA

getnonfreefonts installiert die URW Classico. Man kann diese selbstverständlich nicht mit dem Namen UWS Classico laden. Mit

%!TeX lualatex
\documentclass{article}
\usepackage{fontspec}
\setmainfont{URW Classico}
\begin{document}
  Hallo Welt!
\end{document}

wird bei mir hingegen laut log-Datei /usr/local/texlive/texmf-local/fonts/opentype/urw/classico/URWClassico-Regular.otf geladen. Ob ich die per getnonfreefonts installiert habe, müsste ich erst einmal überprüfen. Jedenfalls ist sie bei mir vorhanden und funktioniert.

Ebenso geht:

\documentclass{article}
\usepackage[sfdefault]{classico}
\begin{document}
  \sffamily Hallo Welt!
\end{document}

Bei Verwendung von PDFLaTeX wird statt der OTF-Datei natürlich /usr/local/texlive/texmf-local/fonts/type1/urw/classico/URWClassico-Regular.pfb, also die Type-1-Variante, verwendet.

Hier im Online-Compiler funktioniert leider beides nicht, da die Fonts nicht installiert sind.


Re: Unfreie Schriften installieren

Verfasst: Di 23. Nov 2021, 19:44
von M0M0
KOMA hat geschrieben:
Di 23. Nov 2021, 18:17

getnonfreefonts installiert die URW Classico.

Oh, da hätte ich mein Minimalbeispiel mir nochmal durchlesen müssen... Jedoch habe ich im "echten" Dokument tatsächlich

\setsansfont{URW Classico}

korrekt geschrieben, bekomme jedoch trotzdem besagten Fehler


Re: Unfreie Schriften installieren

Verfasst: Di 23. Nov 2021, 20:47
von KOMA

Generell sollte man den Helfen als Minimalbeispiel nur das verkaufen, was man auch wirklich als Minimalbeispiel getestet hat. Alles andere demotiviert die Helfer ganz schnell. Ich fühle mich dann wirklich verarscht, weil ich Zeit in etwas investiert habe, was so gar nicht wahr und schon gar nicht relevant ist. Deshalb ein Minimalbeispiel immer in den Beitrag kopieren und weder abtippen und noch vor dem Posten eben schnell etwas daran ändern. Das ist dann nicht getestet und genau genommen irrelevant und kann das Problem komplett verfälschen.

XeLaTeX oder LuaLaTeX? XeLaTeX hat desöfteren ein Problem damit, Fonts per Namen zu finden.

Du kannst auch noch überprüfen, ob die Font-Datei überhaupt vorhanden ist. Name habe ich ja oben angegeben.

Übrigens: Das Paket classico erkennt LuaLaTeX und XeLaTeX selbständig und funktioniert auch mit diesen und stellt dann die Font-Familie \classico zur Verfügung.

Ich mache jetzt Feierabend. Der Bereich ist ohnehin nicht meine Baustelle.


Re: Unfreie Schriften installieren

Verfasst: Di 23. Nov 2021, 22:30
von M0M0
KOMA hat geschrieben:
Di 23. Nov 2021, 20:47

Generell sollte man den Helfen als Minimalbeispiel nur das verkaufen, was man auch wirklich als Minimalbeispiel getestet hat. Alles andere demotiviert die Helfer ganz schnell. Ich fühle mich dann wirklich verarscht, weil ich Zeit in etwas investiert habe, was so gar nicht wahr und schon gar nicht relevant ist. Deshalb ein Minimalbeispiel immer in den Beitrag kopieren und weder abtippen und noch vor dem Posten eben schnell etwas daran ändern. Das ist dann nicht getestet und genau genommen irrelevant und kann das Problem komplett verfälschen.

Das sehe ich vollkommen ein. Möchte aber im konkreten Fall anmerken, dass das Testen meines falschen Minimalbeispiels ja genau denselben Fehler hervorruft wie bei korrekter Schreibweise, nämlich dass keine Schrift mit diesem Namen vorliegt. Daher ist mir der Fehler nicht aufgefallen. Ich bitte um Entschuldigung ;)

KOMA hat geschrieben:
Di 23. Nov 2021, 20:47

XeLaTeX hat desöfteren ein Problem damit, Fonts per Namen zu finden.

Das ist in der Tat das Problem, es funktioniert mit LuaLaTeX. Gibt es allgemeine Lösung, wie ich XeLaTeX "beibringen" kann, die richtigen Fonts zu finden?

KOMA hat geschrieben:
Di 23. Nov 2021, 20:47

Ich mache jetzt Feierabend.

Der sei dir gegönnt. Ich jetzt auch :)


Re: Unfreie Schriften installieren

Verfasst: Di 23. Nov 2021, 23:25
von M0M0

XeLaTeX kann anscheinend nur systemweit installierte Fonts verwenden. Ich habe also ein soft link in $USER/.local/share/fonts auf /usr/local/texlive/texmf-local/fonts/opentype/urw/classico/ erstellt und dann fc-cache laufen lassen. Jetzt findet auch XeLaTeX die Schrift


Re: Unfreie Schriften installieren

Verfasst: Mi 24. Nov 2021, 08:13
von KOMA

Gibt es einen objektiven Grund, warum Du nicht LuaLaTeX verwenden möchtest? In den allermeisten Fällen und unter Voraussetzung einer aktuellen TeX-Installation hat die Verwendung von LuaLaTeX gegenüber XeLaTeX Vorteile. Es gibt einige, eher seltene Fälle, in denen man mit XeLaTeX besser fährt, aber die sind eher selten. Auch die Behauptung LuaLaTeX wäre generell langsamer, zu der ich früher einmal beigetragen habe, stimmt so schon lange nicht mehr. Wenn man beispielsweise pgfplots verwendet, kann es sehr viel schneller sein.

Und wenn wir schon bei den Gerüchten sind: Das Gerücht, polyglossia wäre mit XeLaTeX und LuaLaTeX besser als babel, stimmt auch schon lange nicht mehr. Das kann abhängig vom Dokument sogar ins genaue Gegenteil umschlagen. Außerdem wird babel weit aktiver gepflegt, so dass man im Fall eines Bug-Reports oder Feature-Requests beim Maintainer meist recht schnell Hilfe bekommt.

Achja: Wenn man will, dass alle OpenType- und Type-1-Fonts von TeX-Live zu Systemfonts werden, einfach eine Datei /etc/fonts/conf.d/00-texlive-2021.conf:

<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<dir>/usr/local/texlive/2021/texmf-dist/fonts/opentype/</dir>
<dir>/usr/local/texlive/2021/texmf-dist/fonts/type1/</dir>
</fontconfig>

und eine Datei /etc/fonts/conf.d/00-texlive-local.conf:

<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<dir>/usr/local/texlive/texmf-local/fonts/opentype/</dir>
<dir>/usr/local/texlive/texmf-local/fonts/type1/</dir>
</fontconfig>

anlegen und danach natürlich fc-cache laufen lassen. Allerdings spült einem das wirklich eine beträchtliche Anzahl zusätzlicher Fonts in die Fontverwaltung, was bei einigen Programmen erhebliche Auswirkungen auf das Laden des Font-Auswahl-Dialogs haben kann. Es kann daher sinnvoll sein, etwas dedizierter vorzugehen.

Und zum Schluss: Wenn ich bei einem Minimalbeispiel explizit %!TeX lualatex angebe, dann hat das meist einen Grund. :wink:


Re: Unfreie Schriften installieren

Verfasst: Mi 24. Nov 2021, 15:03
von M0M0
KOMA hat geschrieben:
Mi 24. Nov 2021, 08:13

Gibt es einen objektiven Grund, warum Du nicht LuaLaTeX verwenden möchtest?

Nein, aber es gibt zwei subjektive.

Ich habe das gesamte Dokument bisher stets mit XeLaTeX kompiliert, wechsele ich nun zu LuaLaTeX werden viele Zeilen anders umgebrochen. Allgemein habe ich den Eindruck, dass XeLaTeX mehr Zeichen in eine Zeile packt, als LuaLaTeX das tut. Dadurch entstehen viele neue "overfull boxes" welche ich in der XeLaTeX version bereits alle ausgemerzt habe.

Der zweite Punkt liegt an dem verwendeten Editor/wie ich das Dokument kompiliere. Ich bin von Vim zu Emacs gewechselt und rufe dann von innerhalb Emacs make auf, im Makefile selbst wird dann latexmk -xelatex ... aufgrufen. Dessen Output lasse ich in Emacs in einem interaktiven Shell Buffer ausgeben, sodass ich, falls ich mit xelatex interagieren möchte, dies einfach tun kann. Probiere ich das Gleiche mit LuaLaTeX "verschluckt" sich eines der Programme auf dem Weg. Jedenfalls hört nach einiger Zeit das Emacs Window, in dem die interaktive Shell läuft, auf automatisch nach unten zu scrollen. Ich muss also manuell nach unten scrollen um mit zubekomme, ob ein Fehler aufgetreten ist.
Das ist sicherlich ein Problem in Emacs (in Kombination mit latexmk) und nicht von LuaLaTeX, die einfachste Lösung für mich ist es trotzdem einfach XeLaTeX zu verwenden.