如何根据每个字体改变 \normalsize 的含义?

如何根据每个字体改变 \normalsize 的含义?

我正在尝试混合搭配字体,使用同事推荐的测试版 OTF 字体。但是当我以默认大小加载字体时,它与 Computer Modern 不太匹配。我需要\normalsize为 Carob 设置比 Computer Modern 更小的字体。 两种高度的文本示例 正如您在示例中看到的,文本Carob太大了。我需要告诉 XeLaTeX 将其缩小,以便它看起来与ttfamily那里的高度大致相同。我可以通过实验找到一个合适的高度,但我如何告诉 XeLaTeX 这\normalsize应该意味着那个高度?

我想对\small和做类似的事情\footnotesize

\documentclass{article}
\usepackage{fontspec}
\newfontfamily\carob{Carob Mono}
\begin{document}
\noindent 
\thispagestyle{empty}
Primitives are standard.
This text is {\ttfamily ttfamily} and this is {\carob Carob}.
\end{document}

编辑以添加:我希望能够为命令提供某种缩放选项\newfontfamily,但浏览手册fontspec并没有发现这样的事情。

答案1

使用Scale方法如下。您有两个选择:缩放以匹配主字体的大写字母或小写字母。

通常,第二种选择用于等宽字体。例如,Latin Modern Mono 的大写字母比 Latin Modern Roman 的要短,但小写字母却相同。

我使用了不同的字体,但其字体明显高于 Latin Modern。

\documentclass{article}
\usepackage{fontspec}

\newfontfamily\carobA{Lucida Sans Typewriter OT}
\newfontfamily\carobB{Lucida Sans Typewriter OT}[Scale=MatchUppercase]
\newfontfamily\carobC{Lucida Sans Typewriter OT}[Scale=MatchLowercase]

\begin{document}

This text is {\ttfamily ttfamily} and this is X{\carobA Carob}a.

This text is {\ttfamily ttfamily} and this is X{\carobB Carob}a.

This text is {\ttfamily ttfamily} and this is X{\carobC Carob}a.

\end{document}

在此处输入图片描述

相关内容