如何在虚拟字体中设置字形名称

如何在虚拟字体中设置字形名称

我创建了一个虚拟字体,其中包含一些非标准字符(由来自其他字体的叠加字符组成)。我想使用该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 定义中放置等效构造。

相关内容