fontspec WordSpace 不清楚

fontspec WordSpace 不清楚

fontspec 包的第 27 页内容如下:

段落中单词之间的间距将自动选择,通常不需要调整。当精确的细节很重要时,可以使用 WordSpace 功能,该功能要么采用单个缩放因子来缩放默认值,要么采用三个逗号分隔的值来分别缩放单词间距的标称值、拉伸和收缩。(WordSpace={x} 与 WordSpace={x,x,x} 相同。)

不清楚带有三重参数的 WordSpace 的参数是什么意思。假设我想使用可以拉伸或缩小多达 5% 的单词间距(我知道这是糟糕的排版)。我应该使用什么 WordSpace={x,x,x}?
我猜是 WordSpace={1,1.05,0.95},但同样,包说明不清楚。

答案1

这三个值是字体参数乘以的因子。

你可以利用这个事实,即在定义字体时,\font会引用它。标准字间距为\fontdimen2\font,可拉伸性为\fontdimen3\font,可收缩性为\fontdimen4\font

现在需要将单词间间距除以可拉伸性和可收缩性,然后将这些商乘以您希望的因子,在您的情况下,两者都为 0.05。

\documentclass{article}

\usepackage{fontspec}

\setmainfont{Times New Roman}[
  WordSpace={
    1,
    \fpeval{0.05*(\the\fontdimen2\font)/(\the\fontdimen3\font)},
    \fpeval{0.05*(\the\fontdimen2\font)/(\the\fontdimen4\font)}
  },
]

\begin{document}

Standard space: \the\fontdimen2\font

Stretchability: \the\fontdimen3\font

Shrinkability: \the\fontdimen4\font

\end{document}

在此处输入图片描述

注意:该答案已被重新修改,您可以在编辑历史中阅读原始想法。

相关内容