如何在 XeLaTeX 中为单个对象缩小单词间距(例如,我只想缩小标题中的单词间距)?我知道,fontspec
通常使用 选项来设置字体的单词间距WordSpace
,但我发现无法在 中本地设置\addfontfeature{WordSpace=0.8}
。另一方面,LaTeX 命令\fontdimen2
似乎也不起作用。
答案1
您可以加载两次主字体,一次使用选项WordSpace
。然后您可以使用caption
它来轻松定义字幕的格式。
\documentclass{article}
\usepackage{fontspec}
\usepackage{caption}
\setmainfont{Libertinus Serif}
\newfontfamily{\tightfont}{Libertinus Serif}[
WordSpace=0.3 % exaggerated
]
\DeclareCaptionFormat{tight}{#1#2\tightfont#3\par}
\captionsetup{format=tight}
\begin{document}
\begin{center}
Figure 1. This is text with some word spacing.
\end{center}
\begin{figure}[htp]
\caption{This is text with some word spacing.}
\end{figure}
\end{document}
或者,设置\spaceskip
。
\documentclass{article}
\usepackage{fontspec}
\usepackage{caption}
\setmainfont{Libertinus Serif}
\newcommand{\tightfont}{%
\setlength{\spaceskip}{
0.3\fontdimen2\font
plus 0.3\fontdimen2\font
minus 0.3\fontdimen3\font
}%
}
\DeclareCaptionFormat{tight}{#1#2\tightfont#3\par}
\captionsetup{format=tight}
\begin{document}
\begin{center}
Figure 1. This is text with some word spacing.
\end{center}
\begin{figure}[htp]
\caption{This is text with some word spacing.}
\end{figure}
\end{document}