在 xelatex 下本地设置单词间距

在 xelatex 下本地设置单词间距

如何在 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}

相关内容