LuaLaTeX,Fontspec:字距和字母间距

LuaLaTeX,Fontspec:字距和字母间距

我有一个命令\work,它可以将标题格式化为 SmallCaps 格式,并且字母间距较小。现在有趣的是:如果我尝试添加一些单词间距,并且只针对 SmallCaps,它会影响整个文档,正如您在 MWE 中看到的那样。有什么想法可以实现单词间距仅影响 SmallCaps 或我的命令吗?

\documentclass{article}

\usepackage{blindtext}
\usepackage{fontspec}
\setmainfont[SmallCapsFont={Latin Modern Roman Caps},
             SmallCapsFeatures={LetterSpace=-6,WordSpace={3}}]{Latin Modern Roman}

\newcommand{\work}[1]{\textsc{{#1}}}

\begin{document}

    Immanuel Kants \work{Kritik der praktischen Vernunft}, \work{Kritik der reinen Vernunft} und \work{Kritik der Urteilskraft}...

    \blindtext

\end{document}

在此处输入图片描述

答案1

一个可以接受的解决方法,它仍然让你使用\textsc而不改变它,它定义\work具有所需间距的类似命令。

我认为完全没有理由需要这种间距:字母重叠!它们需要空间来呼吸……

\documentclass{scrartcl}

\usepackage{blindtext}
\usepackage{fontspec}
\setmainfont{Latin Modern Roman}
\newfontface\workcaps{Latin Modern Roman Caps}[LetterSpace=-6,WordSpace=3]
\DeclareTextFontCommand\work{\workcaps}

\begin{document}

Immanuel Kants \work{Kritik der praktischen Vernunft}, \work{Kritik der
reinen Vernunft} und \work{Kritik der Urteilskraft}...

\blindtext

\end{document}

在此处输入图片描述

答案2

在解决了同一个问题后,我找到了“错误”的根源。它是“Wordspace”功能。我不太确定“Letterspace”定义是否也处理了空格。

\documentclass{article}
\usepackage{blindtext}
\usepackage{fontspec}
\setmainfont[SmallCapsFont={Latin Modern Roman Caps},
             SmallCapsFeatures={LetterSpace=-6}]{Latin Modern Roman}
\newcommand{\work}[1]{\textsc{{#1}}}

\begin{document}
    Immanuel Kants \work{Kritik der praktischen Vernunft}, \work{Kritik der reinen Vernunft} und \work{Kritik der Urteilskraft}...
    \blindtext
\end{document}

在此处输入图片描述

相关内容