有没有办法使用 latex/luatex/xelatex/context 实现段落中的恒定单词间距?我碰到过提到 Tex 在单词之间应用粘连的帖子,但不确定如何准确控制它们,如果可能的话(我更希望有一种 lualatex 方法来做到这一点)。我猜可以在 InDesign 中通过为最小值、理想值和最大值指定相同的值来实现:https://creativepro.com/the-complete-guide-to-word-spacing/
答案1
真正恒定的单词间距似乎很难获得,但是,我们可以观察一个单词的最后一个字母与下一个单词的第一个字母之间的距离。
在下面图片的最后一行或倒数第二行中,“of”和“words”之间的距离似乎比“match”和“the”之间的距离要小。
我尝试了一下 fontspec 包提供的丰富选项。该选项OpticalSize
有效果,而 ragged2e 包的 justifying 和 RaggedRight 环境则没有效果。
但是,您需要一个较宽的右边距,因为如果单词间空间的拉伸和收缩变为零(如),通常的自动换行就不会起作用WordSpace={1,0,0}
。
\documentclass[english, fontsize=14pt, parskip=full, usegeometry]{scrartcl}
\usepackage{babel}
\usepackage{fontspec}
\usepackage{roboto-mono}
\usepackage[sfdefault]{FiraSans}
%\usepackage{ragged2e}
\usepackage{blindtext}
\usepackage[right=5cm]{geometry}
%\frenchspacing
\begin{document}
\fontspec{FiraSans-Regular.otf}[WordSpace={1,0,0}, PunctuationSpace=0, Kerning=Off,
OpticalSize=0]
\blindtext
\ttfamily{}
\fontspec{RobotoMono-Regular.otf}[WordSpace={.5,0,0}, PunctuationSpace=0,
%OpticalSize=0
]
%\fontspec{RobotoMono-Regular.otf}
\blindtext
\fontspec{RobotoMono-Regular.otf}[WordSpace={.5,0,0}, PunctuationSpace=0,
OpticalSize=0
]
%\begin{RaggedRight}
\blindtext{}
%\end{RaggedRight}
\end{document}