XeLaTeX + fontspec + StylisticSet 更改文本中底层的 Unicode 字符

XeLaTeX + fontspec + StylisticSet 更改文本中底层的 Unicode 字符

我最近尝试了一下某些字体中针对某些字符的孤立变体的 OpenType 功能——当我制作一个包含、等字符的文档st设置g适当的功能将其外观更改为孤立形状时,在复制文本并编译 PDF 后,我得到的是孤立的 Unicode 字符,即

我猜这与字体中那些变体形状也被分配给那些 Unicode 代码点有关(因此 fontspec 不仅仅改变文本的外观,而且基本上改变底层文本以使用它们?或者更确切地说从字体中选择正确的形状,但在 PDF 的 ToUnicode 映射中仅将它们映射到专用的 Insular 代码点?)。

这很烦人,因为它使 PDF 更难搜索(使用普通的 s、t、g... 不起作用)。

有没有办法解决这个问题,在显示替代形状时强制保留底层 Unicode 值?

使用 Junicode 2.206 字体的示例:

\documentclass[11pt, a4paper]{article}
\usepackage[top=0.3in,right=0.8in,left=0.8in,bottom=0.3in]{geometry}
\usepackage{fontspec}

\usepackage[irish]{babel}

\setmainfont{Junicode}[
  ItalicFont={*-Italic},
  Language=Irish,
]

\begin{document}
    \addfontfeature{StylisticSet=2}%
    Aséidir go reiċ os̅ siolla do ċur accoṁḟoc̅ ⁊ ni cóir ni as sía ina sin do cur
    an̅ mͧ atá so leaḋb ⁊ breab ⁊ sgíos ⁊ {\addfontfeature{CharacterVariant=10:4} seng}
    ⁊ geal ⁊ dlúiṫ ⁊ dos ⁊ tioġ Leiḋbreipsgiseingeallútoisdioġ

    As lor liom ꝗ laḃrꝫ de sin.
\end{document}

当我用 XeLaTeX 编译它时,我得到了预期的漂亮的 Insular 字母:

但是当我从 PDF 复制文本时,我得到:

Aꞅéidiꞃ ᵹo ꞃeiċ oꞅ̅ ꞅiolla do ċuꞃ accoṁḟoc ⁊ ni cóiꞃ ni aꞅ ꞅía ina ꞅin do cuꞃ an̅ mͧ aꞇá ꞅo leaḋb ⁊ bꞃeab ⁊ ꞅᵹíoꞅ ⁊ ꞅenᵹ ⁊ ᵹeal ⁊ dlúiṫ ⁊ doꞅ ⁊ ꞇioġ Leiḋbꞃeipꞅᵹiꞅeinᵹeallúꞇoiꞅdioġ Aꞅ loꞃ liom ꝗ拉赫曼·德·金。

而不是预期的:

在我死后,我们不再相信上帝,因为我们是罪孽深重的,所以我要离开他, ...

相关内容