TeX Live 2021 以降と glyphtounicode 非互換フォント: \pdfmapline で = は何をしますか? サブセット化によってどのような違いが生じますか?

TeX Live 2021 以降と glyphtounicode 非互換フォント: \pdfmapline で = は何をしますか? サブセット化によってどのような違いが生じますか?

次のMNWEはTeX Live 2021以降では失敗します。

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

コンパイルは

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

によるとデビッド・カーライルの回答これは、TL 2021以降ではデフォルトでグリフからユニコードへのマッピングが追加されますが、dictsymこれと互換性がないためです。彼の回避策は、マッピングをグローバルに無効にすることでした。ウルリケ・フィッシャーの後の質問に対する答え追加することを提案した

\pdfmapline{=dictsym DictSym <dictsym.pfb}

代わりに、「元の地図の線を上書きして修正する」ために使用できます。そして、実際に、次の MWE は機能します。

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

これにより、元のマップ ラインが 2 つの方法で変更されます。

  1. =先頭に追加されます (これが存続する場合\pdfmapline)。
  2. <置き換える<<と、pdfTeX はフォント全体ではなく、フォントのサブセットのみを埋め込むようになります。

しかし、私は について興味があります=。pdfTeX のドキュメントには、マップ ファイル行の構文が説明されている記述が見つかりませんでした。次の MWE もコンパイルされることに注意してください。

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

基本的なテストでは、違いを生むの<<はからへの変化であることが示唆されています。<

\pdfmapline{dictsym DictSym <dictsym.pfb}

そして

\pdfmapline{=dictsym DictSym <dictsym.pfb}

仕事も、

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

オリジナル

\pdfmapline{dictsym DictSym <<dictsym.pfb}

する。

によるとこのコメント、等号を省略すると微妙な問題が発生する可能性がありますが、=私が見た限りでは、マップ ファイルで を使用することは一般的ではありません。(おそらく に特有のものでしょう\pdfmapline?)

しかし、さらにテストしてみる=と、結局はが重要であることがわかります。場合によっては、この変更も含めないと、同じコンパイル エラーが発生します。

それで、私は2つの点で困惑しています。

  1. 追加機能は具体的に何=をするのでしょうか?
  2. フォント全体を埋め込む場合とサブセットのみを埋め込む場合では、グリフからユニコードへのマッピングはどのように作用しますか?

場合によっては(scaled使用されない場合)、以下も機能します。

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

しかし、そうでないと失敗するので、これは私が使用すべき方法ではありません。(透明な回避策があればいいと思っただけです。)


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!

関連情報