如何在不改变公式字体的情况下更改文本字体

如何在不改变公式字体的情况下更改文本字体

如何将文档中的文本字体更改为“Times”并保持公式字体不变(即 Computer Modern)?

答案1

我喜欢做的一件事(可能与你想要的有关)就是将其放在我的标题中:

\renewcommand{\rmdefault}{ptm}

它将我的所有正文都更改为 Times,但与

\usepackage{times}

因为它不会将打字机字体更改为 Courier,也不会将无衬线字体更改为 Helvetica;它将这两者都保留为标准的 Computer Modern 版本。

答案2

这是使用包的 XeLaTeX 版本fontspec

\documentclass{article}
\usepackage[no-math]{fontspec}
\setromanfont{Times}
\begin{document}
    Whatever
\end{document}

一般来说,当前字体取决于一些参数,例如“size”、“family”、“series”和“shape”。例如,如果说\sffamily,LaTeX 将尝试将当前字体系列更改为sf(代表“无衬线”),其他参数保持不变:相同大小、相同系列和相同形状。

但在 LaTeX 更改当前字体之前,LaTeX 需要知道精确的您想要的字体系列。(因为“sans serif”实际上不是字体系列,而更像是关于字体的“描述”。)此信息存储在中\sfdefault。同样\rmdefault,和\ttdefault包含\rmfamily和的信息\ttfamily

因此,通过编辑它\renewcommand\rmdefault{blahblahblah}会导致当前字体发生变化。好消息是,前面的机制只会影响文档的正文。还有另一种专为数学模式设计的机制。因此,技巧奏效了:数学字体不变。

坏消息是,正文的字体包有时会同时更改数学字体。这会使您的文档看起来更兼容。因此,在设计正文fontspec时也会更改数学字体\setromanfont。我需要通过来[no-math]阻止它。

更新

在这个答案下,Mico 提到了另一个坏消息:有些字体在不同的系统上的名称不同。例如Times,,,和。很难分辨它是带有昵称的字体还是不同的字体看起来难以区分。因此,每当您想要尝试新字体时,请仔细检查字体名称。Times RomanTimes-RomanTimes New Roman

相关内容