Glyphtounicode-inkompatible Schriftarten mit TeX Live 2021 und höher: Was macht = in \pdfmapline? Welchen Unterschied macht die Unterteilung?

Glyphtounicode-inkompatible Schriftarten mit TeX Live 2021 und höher: Was macht = in \pdfmapline? Welchen Unterschied macht die Unterteilung?

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 dictsymdamit 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.

  1. =Am Anfang wird ein hinzugefügt (sofern dieses erhalten bleibt \pdfmapline).
  2. <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.

  1. Was genau macht der Zusatz =?
  2. 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 scaledes 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!

verwandte Informationen