1. 重要边界条件
- 应该使用 pdflatex。请勿使用 xelatex。
- 字体不应该与Computer Modern,Times New Roman,Stix完全不同。
- Stix2 是一种看起来完全不同的字体。
为什么?
- 因为提交给《物理评论》期刊的稿件是由编写的
pdflatex
。 - 因为很多人从未听说过
xelatex
2. 实际问题
我需要使用 STIX 数学斜体(第二行)和数学加粗斜体(第三行)在同一文本中。我发现除 lambda 之外的所有小希腊字母的区别都足够明显。lambda 的形状似乎不一致(太细)。由于我在同一个文本中同时使用了这两种字体,因此很难区分这两个 lambda。在这种情况下,解决方案是什么?
3. 图形说明。
- 它是用 Adobe Illustrator 生成的。据我所知,该
stix
软件包为文本模式提供了第一行(直立文本),为数学模式提供了第二行和第三行。 - 第 4 行和第 5 行说明了 a) 直立字体(1)和无衬线直立字体(4)以及 b) 斜体字体(2)和无衬线倾斜字体之间的适当视觉差异。
- 第 3 行显示了有问题的粗斜体字体。在右侧,我将粗斜体叠加在斜体字体上,以展示 lambda 的微小差异。
4. 可复制粘贴的 Latex 代码
目前,我正在定义无衬线粗体斜体小希腊数学字母
\documentclass{article}
\usepackage{amsmath}
\usepackage{stix}
\usepackage{bm}
\DeclareMathSymbol{\alphaSF}{\mathalpha}{arrows2}{"0B}
\DeclareMathSymbol{\lambdaSF}{\mathalpha}{arrows2}{"15}
\newcommand{\lambdaBold}{{\bm{\lambdaSF}}}
\newcommand{\alphaBold}{{\bm \alphaSF}}
\begin{document}
\begin{align*}
\alpha&=\lambda\\
\bm{\alpha}&=\bm{\lambda}\\
\alphaBold&=\lambdaBold
\end{align*}
\end{document}
答案1
请看下面的截图。在上半部分,数学模式的希腊字母首先以正常形式显示,即倾斜和非粗体形式,然后是粗体、直立和粗体直立形式,用于数学字体XITS Math
。正常和粗体倾斜变体确实\lambda
看起来非常相似。
在下半部分,显示了相同的四个数学希腊字母,但现在是Stix Two Math
数学字体。您会立即注意到常规和粗体倾斜 lambda 字形看起来非常不同。
\documentclass{article}
\usepackage{unicode-math}
\newcommand\blurb{\alpha\beta\gamma\delta\epsilon\zeta\eta%
\theta\iota\kappa\lambda\mu\nu\xi\pi\rho%
\sigma\tau\upsilon\phi\chi\psi\omega}
\begin{document}
\obeylines
\setmainfont{XITS}
\setmathfont{XITS Math}
XITS Math glyphs
$\blurb$
$\symbf{\blurb}$
$\symup{\blurb}$
$\symbfup{\blurb}$
\bigskip
\setmainfont{Stix Two Text}
\setmathfont{Stix Two Math}
Stix Two Math glyphs
$\blurb$
$\symbf{\blurb}$
$\symup{\blurb}$
$\symbfup{\blurb}$
\end{document}
答案2
无需加载bm
;stix
字体带有与标准兼容的\mathversion{bold}
粗体\boldsymbol
字母amsmath
。
使用 PDFLaTeX,您可以加载带有的粗体无衬线数学字母isomath
。有多种选项,包括 Computer Modern Bold 和 Arev。
\documentclass{article}
\usepackage{iftex}
\ifTUTeX
\usepackage{unicode-math}
\setmainfont{XITS}[Scale=1.0]
\setmathfont{XITS Math}[Scale=MatchLowercase] % Also loads STIX Math Bold.
\else
\usepackage{amsmath}
\usepackage{stix}
% sfdefault=zavm is Arev. sfdefault=cmbr is Computer Modern Bright.
\usepackage[sfdefault=cmbr]{isomath} % For \mathsfbfit
\newcommand{\mbfitsansalpha}{\mathsfbfit{\alpha}}
\newcommand{\mbfitsanslambda}{\mathsfbfit{\lambda}}
\fi
\pagestyle{empty} % For convenient cropping of the MWE.
\begin{document}
\begin{align*}
\alpha &= \lambda \\
\boldsymbol{\alpha} &= \boldsymbol{\lambda} \\
\mbfitsansalpha &= \mbfitsanslambda
\end{align*}
\end{document}
使用 PDFLaTeX 编译后得到:
有了unicode-math
,这一切就变得更加简单:该软件包开箱即用地支持\symbfit
和字母表。Khaled Hosny 的 XITS Math 字体还提供了粗体版本。\symbfsfit
使用 LuaLaTeX 或 XeLaTeX 编译的相同 MWE 产生:
选项range=
允许unicode-math
您用任何其他数学或希腊字体替换无衬线数学字母。以下是如何用 STIX Two Math 替换希腊无衬线斜体字母的示例。
不幸的是,截至 2020 年,range=
与数学版本不兼容,因此您在使用时会遇到问题\boldsymbol
。因此我改用了\symbfit
。
\documentclass{article}
\usepackage{unicode-math}
\defaultfontfeatures{Scale=MatchLowercase}
\setmainfont{XITS}[Scale=1.0]
\setmathfont{XITS Math}
\setmathfont{STIX Two Math}[range=bfsfit/{Greek,greek}]
\pagestyle{empty} % For convenient cropping of the MWE.
\begin{document}
\begin{align*}
\alpha &= \lambda \\
\symbfit{\alpha} &= \symbfit{\lambda} \\
\symbfsfit{\alpha} &= \symbfsfit{\lambda}
\end{align*}
\end{document}
您更可能想要替换不同的粗体斜体 lambda (