我在文本和数学模式下使用 XeLaTeX 2023 编译器和 Old Standard TT 字体。但是,数学模式下的粗体字体根本不起作用。
我想使用字体的适当粗体文本符号作为默认粗体数学符号:字母符号(拉丁字母和希腊字母)如斜体+粗体,数字如常规文本。我还希望它们都可以自动缩放。
第一行显示文本模式斜体和常规字符,并且在下面的数学模式中存在相同的字符。
第三行显示文本模式粗体斜体和简单粗体字符。这些应该在下面的数学模式中出现,但实际上没有。
请注意文本模式和数学模式下 +、-、<、> 等符号之间的区别。因此,我们不应直接将粗体文本运算、关系等符号用作粗体数学字体。
任何问题的解决方案都会满足我的需求。提前感谢大家!
最小工作示例:
\documentclass[leqno,12pt]{extarticle}
\usepackage[paperheight=169mm,paperwidth=120mm,top=12pt,left=12pt,right=12pt,bottom=44pt]{geometry}
\usepackage{parskip}
\usepackage[oldstandard]{fontsetup}
\begin{document}
\textit{y A} 0 1 2 \textit{α β γ δ ε θ λ μ ξ π ρ τ φ χ ψ ω + -- < > = , . : ;}\\
$y, A, 0, 1, 2, \alpha, \beta, \gamma, \delta, \varepsilon, \theta, \lambda, \mu, \xi, \pi, \rho, \tau, \varphi, \chi, \omega, +, -, <, >, =, ., :, ;$
\textbf{\textit{y A} 0 1 2 \textit{α β γ δ ε θ λ μ ξ π ρ ς τ φ χ ψ ω + -- < > = , . : ;}}\\
\boldmath{$y, A, 0, 1, 2, \alpha, \beta, \gamma, \delta, \varepsilon, \theta, \lambda, \mu, \xi, \pi, \rho, \sigma, \tau, \varphi, \chi, \omega, +, -, <, >, =, ., :, ;$}
\end{document}
答案1
这是因为unicode-math
不支持同时支持range
和version
选项。您可以在数学模式中设置或使用旧标准字母,但不能同时使用两者。您使用的包使用的是后者。\setmathfont
\setmathfont[version=bold]
如果您只想要粗体字母(例如,对于矢量等),您可以使用\symbfup
粗体直立 和\symbfit
粗体斜体。\mathbf
如果 Old Standard Bold 有符号,该命令应该会为您提供数学模式下粗体文本字体的符号。除非您指定类,否则这些符号不会有正确的间距,例如\mathbin
,\mathrel
等。例如,\mathbin{\mathbf{+}}
。
如果您需要旧标准中没有的特定粗体数学符号,您可以通过 访问它\setmathfontface
。但是,fontsetup
使用 Garamond Math 作为其数学符号,它不是粗体。您可以使用该FakeBold
选项,也可以从 XITS Math Bold 中获取。
如果您确实需要切换到粗体数学环境,请考虑定义一个可以更改\setmathfont
然后恢复的数学环境。或者,选择与文本字体匹配的数学字体,而无需\setmathfont[range=
。