
[Hintergrund: Da mir der Speicherplatz und die Geduld ausgingen, löschte ich mein Systemlaufwerk und installierte Catalina von Grund auf neu. Ich installiere jetzt alle Anwendungen, die ich noch verwende, nacheinander neu.] Ich installierte MacTex vonhttp://www.tug.org/mactex/mactex-download.htmlund es funktioniert im Großen und Ganzen, aber ich muss eine zusätzliche nicht-freie Schriftart installieren, Sabon, für die ich eine Lizenz und die entsprechenden Dateien habe. Die Notizen an mich selbst von vor ein paar Jahren sagen mir, dass ich (angesichts einer sabon2.tgz-Datei, die ich zu einem Zeitpunkt vorbereitet habe und die eine Verzeichnisstruktur mit einer Reihe von Sabon-relevanten Dateien enthält) ein persönliches texmf-Verzeichnis unter erstellen sollte ~/Library/texmf/
. Dort
tar zxvf sabon2.tgz
texhash
updmap --enable Map=psb.map
Dieses Rezept, das ich von etwas adaptierte, das unter Linux funktionierte, hatte bei mir etwa 2017 auf dem Mac erfolgreich funktioniert. Wenn ich in der Zwischenzeit etwas geändert habe, habe ich vergessen, es aufzuschreiben. Als ich heute meine eigenen Anweisungen ausprobierte, funktionierten sie jedoch nicht. Texhash sagte, dass eine Reihe von Verzeichnissen nicht beschreibbar waren:
$ texhash
texhash: /usr/local/texlive/2020/texmf-config: directory not writable. Skipping...
texhash: /usr/local/texlive/2020/texmf-dist: directory not writable. Skipping...
texhash: /usr/local/texlive/2020/texmf-var: directory not writable. Skipping...
texhash: /usr/local/texlive/texmf-local: directory not writable. Skipping...
texhash: Done.
Ich habe das umgangen, indem ich texhash als sudo ausgeführt habe, obwohl ich nicht sicher bin, ob ich das tun sollte. FAQ QM05 unterhttps://tug.org/mactex/faq/faq.html#qm05sagt, dass es nicht notwendig ist, texhash auszuführen, wenn Dateien zu ~/Library/texmf hinzugefügt werden, also gehe ich davon aus, dass dieser Schritt im Jahr 2020 unnötig geworden ist. OK, also machen wir weiter. Nächster Fehler:
$ updmap --enable Map=psb.map
updmap [ERROR]: Either -sys or -user mode is required.
updmap [ERROR]: In nearly all cases you should use updmap -sys.
updmap [ERROR]: For special cases see https://tug.org/texlive/scripts-sys-user.html
Nach der Fehlermeldung füge ich -sys... hinzu.
$ updmap -sys --enable Map=psb.map
updmap will read the following updmap.cfg files (in precedence order):
/usr/local/texlive/2020/texmf-dist/web2c/updmap.cfg
updmap may write changes to the following updmap.cfg file:
/usr/local/texlive/2020/texmf-config/web2c/updmap.cfg
updmap: can't write to /usr/local/texlive/2020/texmf-config/web2c/updmap.cfg: Permission denied at /Library/TeX/texbin/updmap line 1589.
...aber wieder ein Berechtigungsfehler. Auch hier füge ich sudo hinzu und versuche es erneut:
$ sudo updmap -sys --enable Map=psb.map
updmap [WARNING]: resetting $HOME value (was /Users/XXX) to root's actual home (/var/root).
updmap will read the following updmap.cfg files (in precedence order):
/usr/local/texlive/2020/texmf-dist/web2c/updmap.cfg
updmap may write changes to the following updmap.cfg file:
/usr/local/texlive/2020/texmf-config/web2c/updmap.cfg
Creating new config file /usr/local/texlive/2020/texmf-config/web2c/updmap.cfg
dvips output dir: "/usr/local/texlive/2020/texmf-var/fonts/map/dvips/updmap"
pdftex output dir: "/usr/local/texlive/2020/texmf-var/fonts/map/pdftex/updmap"
dvipdfmx output dir: "/usr/local/texlive/2020/texmf-var/fonts/map/dvipdfmx/updmap"
updmap [ERROR]: The following map file(s) couldn't be found:
updmap [ERROR]: psb.map (in /usr/local/texlive/2020/texmf-config/web2c/updmap.cfg)
updmap [ERROR]: Did you run mktexlsr?
You can disable non-existent map entries using the option
--syncwithtrees.
Ich vermute, dass der Grund, warum updmap psb.map nicht finden konnte, darin liegt, dass psb.map in der ~/Library/texmf meines Benutzers liegt, aber wenn ich updmap als Root ausführe, sucht es dort nicht. Andererseits kann es die Datei nicht aktualisieren, wenn ich es als ich selbst ausführe.
Dank dieser Frage,Probleme bei der lokalen Schriftartinstallationhabe ich herausgefunden, dass ich updmap-sys ohne Leerzeichen schreiben kann und dass das ohne sudo funktioniert:
$ updmap-sys --enable Map=psb.map
updmap will read the following updmap.cfg files (in precedence order):
/usr/local/texlive/2020/texmf-config/web2c/updmap.cfg
/usr/local/texlive/2020/texmf-dist/web2c/updmap.cfg
updmap may write changes to the following updmap.cfg file:
/usr/local/texlive/2020/texmf-config/web2c/updmap.cfg
/usr/local/texlive/2020/texmf-config/web2c/updmap.cfg unchanged. Map files not recreated.
updmap: Updating ls-R files.
Und diese Datei enthielt nun die einzelne Zeile „Map psb.map“:
$ cat /usr/local/texlive/2020/texmf-config/web2c/updmap.cfg
Map psb.map
Beim Kompilieren einer Tex-Datei, die Sabon verwendet, bekam ich jedoch
$ pdflatex test.tex
...
kpathsea: Running mktexpk --mfmode / --bdpi 600 --mag 1+264/600 --dpi 864 psbb8r
mktexpk: don't know how to create bitmap font for psbb8r.
mktexpk: perhaps psbb8r is missing from the map file.
kpathsea: Appending font creation commands to missfont.log.
(see the transcript file for additional information)
!pdfTeX error: pdflatex (file psbb8r): Font psbb8r at 864 not found
==> Fatal error occurred, no output PDF file produced!
Warum will es überhaupt Bitmap-Schriftarten erstellen? Ich will sowieso nur Vektor-Schriftarten. Wir leben nicht mehr im 20. Jahrhundert.
Was übersehe ich und was sollte ich stattdessen tun?
Antwort1
TEXMFLOCAL
Nach einigen Diskussionen in den Kommentaren war die beste Lösung, die Dateien in Ihrem Verzeichnis (Hier, /usr/local/texlive/texmf-local
) statt TEXMFHOME
(Hier, ~/Library/texmf
) zu entpacken .
Die MacTeX-FAQ empfiehlt, lokale Dateien in letzterem abzulegen, aber 8-Bit-Schriftzuordnungen sind eine Ausnahme. Sie sollten nie updmap
im Benutzermodus arbeiten. Das ist eine Falle, die Ihre Systemschriftzuordnungen überschreibt, anstatt sie zu ergänzen, und die mit der Aktualisierung Ihres Systembaums immer veralteter wird. Allerdings updmap-sys
sucht nicht TEXMFHOME
.