![如何在虚拟字体中设置字形名称](https://linux22.com/image/406942/%E5%A6%82%E4%BD%95%E5%9C%A8%E8%99%9A%E6%8B%9F%E5%AD%97%E4%BD%93%E4%B8%AD%E8%AE%BE%E7%BD%AE%E5%AD%97%E5%BD%A2%E5%90%8D%E7%A7%B0.png)
我创建了一个虚拟字体,其中包含一些非标准字符(由来自其他字体的叠加字符组成)。我想使用该pdftex
命令\pdfglyphtounicode
使从生成的 pdf 文件粘贴的功能正常进行。此命令需要“字形名称”作为第一个参数。
我如何为我的新角色设置字形名称?
例如,我的一个字符位于索引 65,因此 TeX 认为它是“A”。但我不能使用\pdfglyphtounicode{a}{0102}
,因为这会损坏文本中的所有常规“a”。
答案1
在 PDF 中,输入是通过虚拟文件还是通过源中的明确字符和字距输入没有区别。您不能使用,\pdfglyphtounicode
因为它在字体级别起作用,并且 PDF 中有两个字符,但是您可以使用该ActualText
功能并用合适的替换标记范围,
\documentclass{article}
\begin{document}
a Ț b
\end{document}
好像
但如果你剪切并粘贴输入伪造如果T逗号变得明显,你得到
a T, b
但是您可以使用 accsupp 标记该区域:
\documentclass{article}
\usepackage{accsupp}
\begin{document}
a \BeginAccSupp{method=hex,unicode,ActualText={021A}}Ț\EndAccSupp{} b
\end{document}
视觉输出看起来相同,但现在剪切和粘贴会产生
a Ț b
带有 U+021A 字符。
\BeginAccSupp
你可以修改定义,而不是把它放入文档中
\DeclareUnicodeCharacter{021A}{\textcommabelow T}
并将 accsupp 标记添加到最后一个参数。
当使用虚拟字体时,您还可以在字符的 vf 定义中放置等效构造。