![为什么 textcomp 不加载我的字体的字形而是替换它?](https://linux22.com/image/463017/%E4%B8%BA%E4%BB%80%E4%B9%88%20textcomp%20%E4%B8%8D%E5%8A%A0%E8%BD%BD%E6%88%91%E7%9A%84%E5%AD%97%E4%BD%93%E7%9A%84%E5%AD%97%E5%BD%A2%E8%80%8C%E6%98%AF%E6%9B%BF%E6%8D%A2%E5%AE%83%EF%BC%9F.png)
不久前我转换了一种字体,现在这个字体有了更新。由于新字体文件是由不同的公司提供的,因此存在细微差异,尤其是符号。不过,我找出了字形位置的所有差异,并在修改后的编码文件中进行了相应的设置。但是有一个问题:当我尝试访问符号时,例如通过\textuparrow
PDFtex 告诉我:
Package textcomp Info: Symbol \textuparrow not provided by
(textcomp) font family MYFONT-TLF in TS1 encoding.
(textcomp) Default family used instead on input line 525.
但当我把一个简单的
\DeclareTextSymbolDefault{\textuparrow}{TS1}
\DeclareTextSymbol{\textuparrow}{TS1}{94}
在序言中,PDFtex 不再抱怨。
我在这里做错了什么,我有什么样的误解,我可以做哪些更改才能使其工作,而无需将上述代码作为手动定义添加到我的 MYFONT.sty 文件中?我检查了textcomp.sty
哪个前面有这个奇怪的东西\tc@check@symbol2
,这可能是我的问题:
\DeclareTextCommandDefault{\textuparrow}%
{\tc@check@symbol2\textuparrow}
正如ts1enc.def
直接这样:
\DeclareTextSymbol{\textuparrow}{TS1}{94}
答案1
正如指出的那样https://ctan.math.washington.edu/tex-archive/macros/latex/base/ltnews36.pdf参考https://www.latex-project.org/help/documentation/fntguide.pdf自 2021/06/01 起,必须声明 TS1 编码字体中包含哪些字形子集。因此,可以根据相应的子集选择\DeclareEncodingSubset{TS1}{MYFONT-*}{1}
例如或任何其他合适的数字。