为 fontspec 包的 \letterspace 功能设置一个值

为 fontspec 包的 \letterspace 功能设置一个值

我发现使用 XeTeX 和 fontspec 包时使用以下值

{\addfontfeature{LetterSpace=15em plus.1em minus.1em}

而不是例如

{\addfontfeature{LetterSpace=15} 

这样可以获得良好的结果,因为这样线条就不会超出边缘。

我想问一下是否有办法为该值定义一个键,这样我就可以避免每次都输入它。例如,我会获得与 microtype 包类似的功能,您可以在序言中定义间距值,然后只需输入 \textls{textspaced} 即可应用它。

谢谢你!

编辑

我还想问是否有可能为 LetterSpace 设置一个更“动态”的值,因为使用 {\addfontfeature{LetterSpace=15em plus.1em minus.1em} 时,我也有一些超出边距的线条。

答案1

我猜标准方法是写一个命令。但是,我没有看到以下 MWE 的 PDF 中倒数第二段和第三段有什么区别。所有段落都有过满\hbox。我用的是XeLaTeX。定义LetterSpace=15与手册相符fontspec,其他定义在LuaTeX中不起作用。

\documentclass{memoir}

\usepackage{fontspec}
\setmainfont{texgyrepagella-regular.otf}
\newcommand{\textls}[1]{{\addfontfeature{LetterSpace=15}#1}}

\usepackage{polyglossia}\setmainlanguage{english}
%\usepackage[english]{babel}

\begin{document}

honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus

\textls{honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus}

\addfontfeature{LetterSpace=15em plus.1em minus.1em}
honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus honorificabilitudinitatibus

\end{document}

编辑我很高兴这至少解决了一个问题。通常,我不使用 Xe(La)TeX。不幸的是,我无法回答你关于减少过满框的好问题。我通常加载microtypepolyglossia或通过连字符和微排版来减少这个问题。请注意,当你加载(或使用)时babel,你必须重命名命令\textlsmicrotype\renewcommand。任何更多的行溢出都会在编辑过程结束时手动通过重新措辞或手动换行来消除。这里应该有很多关于这个问题的问题。例如文本超出边距

相关内容