![fontspec 不允许在 XeLaTeX 中指定斜体字体](https://linux22.com/image/440125/fontspec%20%E4%B8%8D%E5%85%81%E8%AE%B8%E5%9C%A8%20XeLaTeX%20%E4%B8%AD%E6%8C%87%E5%AE%9A%E6%96%9C%E4%BD%93%E5%AD%97%E4%BD%93.png)
平均能量损失
\documentclass[]{article}
\usepackage{amsthm,amsmath,amsfonts}
\usepackage[]{fontspec}
\setmainfont{Old Standard}[
FakeBold=2,
%SmallCapsFont=PlayfairDisplaySC-Black.otf,
%BoldFont=ModernMTStd-Bold.otf,
ItalicFont=ModernMT-ExtendedItalic.otf,
%BoldItalicFont=ModernMT-ExtendedItalic.otf,
]
\title{Test}
\author{Me}
\begin{document}
\maketitle
Just testing if the sum operator works.
\begin{align*}
F(n)
& = \sum_{d\mid n}f(d)\\
f\ast g
& = \sum_{d\mid n}f(d)g(n/d)
\end{align*}
\end{document}
但如果我注释掉斜体字体,它就可以正常工作。
\documentclass[]{article}
\usepackage{amsthm,amsmath,amsfonts}
\usepackage[]{fontspec}
\setmainfont{Old Standard}[
FakeBold=2,
%SmallCapsFont=PlayfairDisplaySC-Black.otf,
%BoldFont=ModernMTStd-Bold.otf,
%ItalicFont=ModernMT-ExtendedItalic.otf,
%BoldItalicFont=ModernMT-ExtendedItalic.otf,
]
\title{Test}
\author{Me}
\begin{document}
\maketitle
Just testing if the sum operator works.
\begin{align*}
F(n)
& = \sum_{d\mid n}f(d)\\
f\ast g
& = \sum_{d\mid n}f(d)g(n/d)
\end{align*}
\end{document}
答案1
fontspec
在系统字体文件夹中查找系统字体(已安装的字体)*。
否则,fontspec
使用该Path=
选项告知已卸载的字体位于哪个文件夹中。
例如,以下使用AvrileSerif-Bold.ttf
直立字体,并ModernMT-ExtendedItalic.otf
使用斜体字体,两个字体文件都在本地文件夹中,因此选项Path=
设置为Path=./,
:
这是一个比较夸张的例子,实际排版的时候不建议大家随意混用字体。
请注意,文本模式字体(直立蓝色,斜体红色)与数学模式字体无关。MWE
\documentclass{article}
\usepackage{xcolor}
\usepackage{amsthm,amsmath,amsfonts}
\usepackage{fontspec}
\setmainfont{AvrileSerif}[
FakeBold=2,
%SmallCapsFont=PlayfairDisplaySC-Black.otf,
%BoldFont=ModernMTStd-Bold.otf,
Path=./,
UprightFont=*-Bold.ttf,
UprightFeatures={Colour=blue},
ItalicFont=ModernMT-ExtendedItalic.otf,
ItalicFeatures={Colour=red},
%BoldItalicFont=ModernMT-ExtendedItalic.otf,
]
\title{Test}
\author{Me}
\begin{document}
\maketitle
Just testing if the \textit{sum operator} works.
\begin{align*}
F(n)
& = \sum_{d\mid n}f(d)\\
f\ast g
& = \sum_{d\mid n}f(d)g(n/d)
\end{align*}
\end{document}
*在 Windows 上,以用户身份安装的字体不可见;而是以管理员身份安装它们。
答案2
使用你的例子ItalicFont=ModernMT-ExtendedItalic,
没有 .otf
扩大和使用一些斜体文字\textit
我得到:
SSJTRD+OldStandard-Regular-Identity-H CID Type 0C Identity-H yes yes yes 4 0
YIVKHN+ModernMT-ExtendedItalic-Identity-H CID Type 0C Identity-H yes yes yes 6 0
SNOFLJ+CMMI10 Type 1C Builtin yes yes yes 8 0
WBSDKO+CMR10 Type 1C Builtin yes yes yes 9 0
GQLKOX+CMEX10 Type 1C Builtin yes yes yes 10 0
VJTWUB+CMMI7 Type 1C Builtin yes yes yes 11 0
FNWRCQ+CMSY7 Type 1C Builtin yes yes yes 12 0
IOSJMP+CMSY10 Type 1C Builtin yes yes yes 13 0
如果要使用text
字体来math
以斜体显示变量,请使用包unicode-math
和数学字体或者用文本斜体字体定义默认数学字体,这通常不是一个好主意。
答案3
否则,在 \setmainfont 中定义字体格式
\documentclass{article}
\usepackage{xcolor}
\usepackage{amsthm,amsmath,amsfonts}
\usepackage{fontspec}
\setmainfont{AvrileSerif}[
FakeBold=2,ext=.otf,
%SmallCapsFont=PlayfairDisplaySC-Black,
%BoldFont=ModernMTStd-Bold,
Path=./,
UprightFont=*-Bold.ttf,
UprightFeatures={Colour=blue},
ItalicFont=ModernMT-ExtendedItalic.otf,
ItalicFeatures={Colour=red},
%BoldItalicFont=ModernMT-ExtendedItalic.otf,
]
\title{Test}
\author{Me}
\begin{document}
\maketitle
Just testing if the \textit{sum operator} works.
\begin{align*}
F(n)
& = \sum_{d\mid n}f(d)\\
f\ast g
& = \sum_{d\mid n}f(d)g(n/d)
\end{align*}
\end{document}