缺少字符;可以重新定义 Unicode 映射吗?

缺少字符;可以重新定义 Unicode 映射吗?

我使用的字体缺少许多间距修饰字母和所有组合变音符号。但是,它在专用区中确实有我需要的变音符号(尽管不是组合符号)。

在我的 .tex 文档中,是否可以将私有使用区域中的 U+xxxx“重新定义”为缺失的 U+yyyy 组合变音符号?如果可以的话,我想将重新定义的字符“堆叠”在基本拉丁字符之上,作为缺失组合变音符号的解决方法。

我想要重新映射字符的原因是为了保真度;例如,当从 PDF 复制粘贴时,我希望将字符 U+yyyy 复制到剪贴板中,同时在 PDF 中显示 U+xxxx。

编辑1:

我正在使用 TeX Live 和 LuaLaTeX。有问题的字体是 Minion Pro。

为了举例,我将在

Minion Pro 在通常的 Unicode 块中缺少倒短音符,但在 U+F6D5(即在私人使用区)处有一个非组合短音符。

到目前为止我已经尝试过:

\usepackage{tipa}
\begin{document}
\textroundcap{e}
\end{document}

这不满足保真度要求,而且变音符号不是真正的倒置短音符。其他重音也是如此(例如\'{e})。

我的第二次尝试:

\usepackage{newunicodechar}
\newunicodechar{̑}{\accent"F6D5}
\begin{document}
\end{document}

倒短音符不在,但位于其右侧。

相似地...

\usepackage{newunicodechar}
\newfontfamily{\fallbackfont}{Minion Pro}
\DeclareTextFontCommand{\textfallback}{\fallbackfont}
\newunicodechar{̑}{\textfallback{\char"F6D5}}
\begin{document}
\end{document}

...产生相同的结果。

编辑2:

根据 egreg 的建议,我尝试了accsupp

\usepackage{accsupp}
\begin{document}
\BeginAccSupp{unicode,method=escape,ActualText=x{o\char"0311}x}%
  x{\accent"F6D5 o}x%
\EndAccSupp{}
\end{document}

虽然输出正确,但复制的文本是x ˆ ox

相关内容