Fontspec:addfontfeature LetterSpace 操作

Fontspec:addfontfeature LetterSpace 操作

我需要在段落内的单词上使用字母间距。我对 fontspec 和 LetterSpace 功能进行了一些实验。

虽然渲染似乎是正确的,但我观察到在某些配置中,单词字母之间会插入空格字符。(这是一个问题,因为它会使这些单词无法查找)。

  • 当同一行上有间距文本和非间距文本时,似乎会出现问题。

  • 我不确定我的代码出了什么问题,以及是否有办法控制这种行为。

我的 tex 文件:

\documentclass{minimal}
\usepackage{fontspec}
\setmainfont{FreeMono}
\begin{document}
    This is a text \\
    {\addfontfeature{LetterSpace=20.0}This is a short spaced text}\\
    {\addfontfeature{LetterSpace=20.0}This is a spaced text} This is not spaced text \\
    {\addfontfeature{LetterSpace=20.0}This is a another, longer than the previous one, spaced text} \\
    This is normal text
\end{document}

PDF渲染:

这是渲染后的 PDF

正文内容:

这是文本内容

答案1

您可以使用 accsupp 添加 /Actualtext(这样的文本应该很短,因此如果需要,可以逐字逐句地添加):

\documentclass{article}
\usepackage{fontspec}
\setmainfont{FreeMono}
\usepackage{accsupp}

\begin{document}

    This is a text \\
    {\addfontfeature{LetterSpace=20.0}%
     \BeginAccSupp {method=plain,ActualText=This is a short spaced text}%
      This is a short spaced text\EndAccSupp{}} This is a text
    \\
    {\addfontfeature{LetterSpace=20.0}This is a spaced text}
\end{document}

相关内容