如何将文档中的文本字体更改为“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 Roman
Times-Roman
Times New Roman