Fuentes incompatibles con gliptounicode con TeX Live 2021 y versiones posteriores: ¿Qué hace = en \pdfmapline? ¿Qué diferencia hace el subconjunto?

Fuentes incompatibles con gliptounicode con TeX Live 2021 y versiones posteriores: ¿Qué hace = en \pdfmapline? ¿Qué diferencia hace el subconjunto?

El siguiente MNWE falla con TeX Live 2021 en adelante.

\documentclass{article}
\usepackage{dictsym}
\begin{document}
  \dsbiological
\end{document}

La compilación termina con

<</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!

De acuerdo aLa respuesta de David Carlisle, esto se debe a que TL 2021 y posteriores agregan un mapeo gliptounicode de forma predeterminada, pero dictsymes incompatible con esto. Su solución implicó deshabilitar el mapeo globalmente, peroLa respuesta de Ulrike Fischer a una pregunta posteriorsugirió que agregar

\pdfmapline{=dictsym DictSym <dictsym.pfb}

utilizarse en su lugar para 'sobrescribir y corregir las líneas del mapa original'. Y, efectivamente, el siguiente MWE funciona.

\documentclass{article}
\usepackage{dictsym}
\pdfmapline{=dictsym DictSym <dictsym.pfb}
\begin{document}
  \dsbiological
\end{document}

Esto cambia la línea del mapa original de dos maneras.

  1. Se agrega un =al principio (si sobrevive \pdfmapline).
  2. <reemplaza <<para que pdfTeX incruste solo un subconjunto de la fuente en lugar de todo.

Pero tengo curiosidad acerca de =, que no pude encontrar documentado en la documentación de pdfTeX, donde se explica la sintaxis de las líneas del archivo de mapa. Tenga en cuenta que el siguiente MWE también se compila.

\documentclass{article}
\usepackage{dictsym}
\pdfmapline{dictsym DictSym <dictsym.pfb}
\begin{document}
  \dsbiological
\end{document}

Las pruebas básicas sugieren que es el cambio de <<a <lo que marca la diferencia. Mientras tanto

\pdfmapline{dictsym DictSym <dictsym.pfb}

y

\pdfmapline{=dictsym DictSym <dictsym.pfb}

trabajo, tampoco

\pdfmapline{=dictsym DictSym <<dictsym.pfb}

ni el original

\pdfmapline{dictsym DictSym <<dictsym.pfb}

hacer.

De acuerdo aeste comentario, omitir los iguales puede causar problemas más sutiles, pero, =hasta donde he visto, el uso de no es común en archivos de mapas. (¿Quizás sea específico de \pdfmapline?)

Pero más pruebas sugieren que, =después de todo, es crucial. En algunos casos recibo el mismo error de compilación a menos que incluya también este cambio.

Así que estoy desconcertado por dos motivos.

  1. ¿Qué hace exactamente el adicional =?
  2. ¿Cómo interactúa la incrustación de toda la fuente versus la incrustación solo de un subconjunto con el mapeo gliptounicode?

En algunos casos (¿si scaledno se utiliza?), lo siguiente también funciona.

\usepackage{dictsym}
\font\f=dictsym
\pdfnobuiltintounicode \f

pero no puede ser así como debería usarlo ya que de lo contrario falla. (Simplemente pensé que sería bueno tener una solución alternativa transparente).


Salida detallada para 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!

información relacionada