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