我正在尝试使用DejaVu Sans Light作为数学字体。它没有一套全面的数学字符,但它有我需要的(罗马数字、beta、gamma、epsilon 和一些其他字符)。
我尝试使用选择字体
\setmathfont(Greek,Latin,Digits){DejaVu Sans ExtraLight}
在我的序言中。(“Light”字体在序言中必须称为“ExtraLight”;否则将无法加载。)这给了我一个以 Light 字体设置数字的文档。但没有其他字符以该字体设置。相反,它们设置为相同字体的较重版本:DejaVu Sans Oblique。这是一个完整的工作示例:
\documentclass{article}
\usepackage{mathspec}
\setmathfont(Greek,Latin,Digits){DejaVu Sans ExtraLight}
\begin{document}
Inline math: $\hat{\beta} = (X'X)^{-1}X'Y, 1234$.\\
Display math: $$\hat{\beta} = (X'X)^{-1}X'Y, 1234$$
\end{document}
结果如下:
这种行为让我很困惑。我在日志文件或文档中看不到任何mathspec
与此相关的内容。而且 Light 字体并不像 Oblique 字体那样有字形。有没有办法理解它mathspec
正在做什么——或者至少让它在仍然使用 XeLaTeX 的同时渲染Light 字体中的$\beta$
、$\gamma$
和其他几个字符?
答案1
我的系统上没有 DejaVu Sans ExtraLight 的倾斜版本。所以我也得到了正常重量。但您可以使用 FakeSlant-Option:
\documentclass[letterpaper, 12pt, oneside]{article}
\usepackage{mathspec}
\setmainfont[ItalicFont={DejaVu Sans ExtraLight},
ItalicFeatures={FakeSlant=0.2}]{DejaVu Sans ExtraLight}
\setmathfont(Greek,Latin,Digits)[ItalicFont={DejaVu Sans ExtraLight},
ItalicFeatures={FakeSlant=0.2}]{DejaVu Sans ExtraLight}
\begin{document}
X123 \itshape X124 \slshape X124
Inline math: $\hat{\beta} = (X'X)^{-1}X'Y, 1234$.\\ Display math: \[\hat{\beta} = (X'X)^{-1}X'Y, 1234\]
\end{document}