我在我的文档中使用 XeLaTeX 排版中文字体。(所以 XeLaTeX 是唯一适合我的方式。)我想使用 LaTex 原版ptm
字体排版所有英文文本。
我知道有一种简单的方法可以Times
在 XeLaTeX 中使用相关字体,例如\setmainfont{Times New Roman}
。但是这样,连字就不起作用了,即使使用:
\defaultfontfeatures{Ligatures=TeX}
\setmainfont{Times New Roman}
无论如何,我仍然想使用原始ptm
字体,而不是Times New Roman
。如果仔细观察,仍然会发现一些本质的设计差异。我更喜欢ptm
。那么我该如何使用ptm
?
我发现
\DeclareFixedFont{\PTMtext}{OT1}{ptm}{m}{n}{12pt}
\PTMtext{blah blah}
可以工作,但只影响一小部分区域,例如,无法在section
标题或数学内联模式下工作,例如$a=0 \text{if needed}$
,其中“如果需要”仍然有效lmr
。并且\renewcommand{\rmdefault}{ptm}
也不起作用。
答案1
只需进行视觉比较,即可看到它ptm
与使用 TeX Gyre Termes 获得的结果完全相同。
\documentclass{article}
\usepackage{amsmath}
\usepackage{fontspec}
\setmainfont{TeX Gyre Termes}
\newfontfamily{\OTIMES}{Times New Roman}
\def\fn"#1/#2"{#1}%
\begin{document}
{\OTIMES abcdefghijklmnopqrstuvwxyzfifl \expandafter\fn\fontname\font}
abcdefghijklmnopqrstuvwxyzfifl \expandafter\fn\fontname\font
{\fontencoding{OT1}\fontfamily{ptm}\selectfont
abcdefghijklmnopqrstuvwxyzfifl \fontname\font}
{\OTIMES ABCDEFGHIJKLMNOPQRSTUVWXYZ \expandafter\fn\fontname\font}
ABCDEFGHIJKLMNOPQRSTUVWXYZ \expandafter\fn\fontname\font
{\fontencoding{OT1}\fontfamily{ptm}\selectfont
ABCDEFGHIJKLMNOPQRSTUVWXYZ \fontname\font}
\itshape
{\OTIMES abcdefghijklmnopqrstuvwxyzfifl \expandafter\fn\fontname\font}
abcdefghijklmnopqrstuvwxyzfifl \expandafter\fn\fontname\font
{\fontencoding{OT1}\fontfamily{ptm}\selectfont
abcdefghijklmnopqrstuvwxyzfifl \fontname\font}
{\OTIMES ABCDEFGHIJKLMNOPQRSTUVWXYZ \expandafter\fn\fontname\font}
ABCDEFGHIJKLMNOPQRSTUVWXYZ \expandafter\fn\fontname\font
{\fontencoding{OT1}\fontfamily{ptm}\selectfont
ABCDEFGHIJKLMNOPQRSTUVWXYZ \fontname\font}
\end{document}
如您所见,TeX Gyre Termes 中的斜体字体也匹配ptm
,尽管字距调整略有不同。
答案2
定义自己的字体。如果您使用 KOMA-Script 类之一,则可以轻松使用 Times 定义标题。
\documentclass{article}
\usepackage{amsmath}
\usepackage{unicode-math}
%\setmainfont{what ever you want}
\newfontface\Times{Times New Roman MT Std}% I have only this otf version
\begin{document}
Latin Modern
{\Times $a=0 \text{ if needed}$}
\section{LatinModern}
\subsection{\Times Times New Roman}
foo \Times foo
\end{document}