是否存在一种水平作用方式与\setstretch
垂直作用方式类似的“句子拉伸”?
答案1
\documentclass{article}
\usepackage{microtype}
\begin{document}
\noindent This is a rather short sentence that will not fill a line.
{\raggedright
\spaceskip 2\fontdimen2 \font
This is a rather short sentence that will not fill a line.
\spaceskip 1em \relax
This is a rather short sentence that will not fill a line.
}
% Or from microtype:
\noindent\textls[150]{This is a rather short sentence that will not fill a line.}
\end{document}
1/3 em
上述方法应仅在需要时谨慎使用,因为 TeX 中的单词间距设计考虑到了给定字体的良好排版。例如,默认 CM 使用可拉伸至1/2 em
和可收缩至的单词间距,而2/9 em
不会太丑陋。
通过使用 设置明确的值(如)或当前字体,更改\spaceskip
将影响所有字体的字间间距。1em
<factor>\fontdimen2 \font
第二种方法可以用来microtype
控制字符之间的间距。这是通过 实现的\textls[<percentage>]{<text>}
。
例如,如果fontspec
与 XeLaTeX 一起使用,您也可以使用类似以下设置fontspec
:
\newfontfamily\mycustomfont[LetterSpace=12,WordSpace=2,Ligatures=NoCommon]{<font name>}
。
笔记:
我的解决方案在设计页眉、封面、徽标等时特别有用。如果只对填充线条感兴趣,那么@egreg 的解决方案是直接的方法。
答案2
答案3
与...合作时仅有的如果你想拉伸整个文本块中的一行文本,可以使用s
tretch 选项\makebox
:
\documentclass{article}
\setlength{\parindent}{0pt}% Just for this example
\begin{document}
This is a rather short sentence that will not fill a line.
\makebox[\textwidth][s]{This is a rather short sentence that will not fill a line.}
\hrulefill
This is a rather lengthy sentence that will most certainly fill the entire first line of the paragraph.
\makebox[\textwidth][s]{This is a rather lengthy sentence that will most certainly fill the entire first line of the paragraph.}
\end{document}
这将仅拉伸空格以适应给定宽度内的句子。但请注意,过满的句子将超出文本块宽度。使用egreg 的\parfillskip
方法因为此时你处理的是段落,而不是单行句子。
答案4
至于行距,你可以通过以下方式实现
\vspace{length}
或者
\vfill
在句子之间。
至于字母间距。LuaTeX 和 Microtype 可以实现所需的效果。使用:
\textls[150]{VECTOR ANALYSIS}
但是在 XeTeX 上您需要使用 Fontspec 并调整字体功能:
LetterSpace = ...
WordSpace = ...
我建议通过创建一个命令来实现这一点,以便能够在您可能使用的其他不同字体之间共享这些功能,例如
假设您要共享几种标题样式的某些功能,然后通过创建如下命令:
\newcommand{\titlingFontFeatures}{%
...
LetterSpace = 100,
WordSpace = 2,
...
}
然后你可以使用:
\newcommand{\bigTitle}[1]{{\fontspec
[
\titlingFontFeatures
]
{Helvetica}
\fontsize{18}{20}\selectfont#1
\par}}
分享这个新字体的功能。
如果您不使用 pdfLatex,Microtype 就不是一个选择,而且由于您对字体如此重视,您可能不久前就迁移到了 XeTeX 或 LuaTeX 之类的字体,现在,即使在 LuaTeX 上,Microtype 也没有很多实际可用的功能。因此,Fontspec 是最佳选择。