
Das folgende MNWE schlägt ab TeX Live 2021 fehl.
\documentclass{article}
\usepackage{dictsym}
\begin{document}
\dsbiological
\end{document}
Die Zusammenstellung endet mit
<</usr/local/texlive/2023/texmf-dist/fonts/type1/public/dictsym/dictsym.pfb>>
!pdfTeX error: pdflatex: builtin glyph names is empty
==> Fatal error occurred, no output PDF file produced!
EntsprechendDavid Carlisles Antwort, das liegt daran, dass TL 2021 und höher standardmäßig eine Glyphtounicode-Zuordnung hinzufügen, aber dictsym
damit nicht kompatibel ist. Sein Workaround bestand darin, die Zuordnung global zu deaktivieren, aberAntwort von Ulrike Fischer auf eine spätere Frageschlug vor, das Hinzufügen
\pdfmapline{=dictsym DictSym <dictsym.pfb}
stattdessen verwendet werden, um „die ursprünglichen Kartenlinien zu überschreiben und zu korrigieren“. Und tatsächlich funktioniert das folgende MWE.
\documentclass{article}
\usepackage{dictsym}
\pdfmapline{=dictsym DictSym <dictsym.pfb}
\begin{document}
\dsbiological
\end{document}
Dadurch wird die ursprüngliche Kartenlinie auf zwei Arten verändert.
=
Am Anfang wird ein hinzugefügt (sofern dieses erhalten bleibt\pdfmapline
).<
ersetzt<<
, sodass pdfTeX nur eine Teilmenge der Schriftart und nicht die gesamte Schriftart einbettet.
Aber ich bin neugierig auf das =
, das ich in der Dokumentation von pdfTeX nicht finden konnte, wo die Syntax der Map-Dateizeilen erklärt wird. Beachten Sie, dass das folgende MWE auch kompiliert.
\documentclass{article}
\usepackage{dictsym}
\pdfmapline{dictsym DictSym <dictsym.pfb}
\begin{document}
\dsbiological
\end{document}
Grundlegende Tests legen nahe, dass der Wechsel von <<
zu <
den Unterschied ausmacht. Während beide
\pdfmapline{dictsym DictSym <dictsym.pfb}
Und
\pdfmapline{=dictsym DictSym <dictsym.pfb}
Arbeit, weder
\pdfmapline{=dictsym DictSym <<dictsym.pfb}
noch das Original
\pdfmapline{dictsym DictSym <<dictsym.pfb}
Tun.
Entsprechenddieser Kommentar, das Weglassen des Gleichheitszeichens kann subtilere Probleme verursachen, aber die Verwendung von =
ist, soweit ich gesehen habe, in Map-Dateien nicht üblich. (Vielleicht ist es spezifisch für \pdfmapline
?)
Weitere Tests legen jedoch nahe, dass dies =
doch entscheidend ist. In einigen Fällen erhalte ich denselben Kompilierungsfehler, wenn ich diese Änderung nicht ebenfalls einbeziehe.
Ich bin also aus zwei Gründen verwirrt.
- Was genau macht der Zusatz
=
? - Wie interagiert das Einbetten der gesamten Schriftart im Vergleich zum Einbetten nur einer Teilmenge mit der Glyph-zu-Unicode-Zuordnung?
In einigen Fällen (wenn scaled
es nicht verwendet wird?) funktioniert auch Folgendes.
\usepackage{dictsym}
\font\f=dictsym
\pdfnobuiltintounicode \f
aber so sollte ich es nicht verwenden, da es sonst fehlschlägt. (Ich dachte nur, es wäre schön, eine transparente Problemumgehung zu haben.)
Detaillierte Ausgabe für MNWE:
This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023) (preloaded format=pdflatex)
restricted \write18 enabled.
entering extended mode
(./prawf.tex
LaTeX2e <2023-11-01> patch level 1
L3 programming layer <2024-01-22>
(/usr/local/texlive/2023/texmf-dist/tex/latex/base/article.cls
Document Class: article 2023/05/17 v1.4n Standard LaTeX document class
(/usr/local/texlive/2023/texmf-dist/tex/latex/base/size10.clo))
(/usr/local/texlive/2023/texmf-dist/tex/latex/dictsym/dictsym.sty
(/usr/local/texlive/2023/texmf-dist/tex/latex/psnfss/pifont.sty
(/usr/local/texlive/2023/texmf-dist/tex/latex/psnfss/upzd.fd)
(/usr/local/texlive/2023/texmf-dist/tex/latex/psnfss/upsy.fd))
(/usr/local/texlive/2023/texmf-dist/tex/latex/graphics/keyval.sty))
(/usr/local/texlive/2023/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def)
(./prawf.aux) [1{/usr/local/texlive/2023/texmf-var/fonts/map/pdftex/updmap/pdft
ex.map}] (./prawf.aux) )</usr/local/texlive/2023/texmf-dist/fonts/type1/public/
amsfonts/cm/cmr10.pfb><</usr/local/texlive/2023/texmf-dist/fonts/type1/public/d
ictsym/dictsym.pfb>>
!pdfTeX error: pdflatex: builtin glyph names is empty
==> Fatal error occurred, no output PDF file produced!