我正在使用 calibri 字体在 LuaLatex 中写一封信。要进行设置,我使用以下命令:
\usepackage{fontspec}
\setmainfont{calibri}[Ligatures=TeX,
SmallCapsFeatures={Letters=SmallCaps,LetterSpace=5},
Path=fonts/,
Extension = .ttf,
BoldFont = *b,
ItalicFont = *i,
BoldItalicFont = *z]
问题是我需要使用内联数学模式,并且“数学”字体与文本字体冲突严重:
有没有办法即使在数学模式下强制使用字体?
提前致谢。
答案1
\documentclass{article}
\usepackage[math-style=upright]{unicode-math}
\setmainfont{Calibri}
\setmathfont{Fira Math}
\setmathfont{Calibri}[range={up/{latin,Latin,num},
it/{latin,Latin,num},
bfup/{latin,Latin,num},
bfit/{latin,Latin,num},
frak/{latin,Latin,num}}]
\begin{document}
\[ \mathbf{F}(x) = \int\limits_1^\infty \frac1{x^2} dx = 1 \]
\centering\textbf{F}(x) $\phi$ \textsc{SmallCaps}
\end{document}
答案2
经过多次尝试,我发现了一些可行的方法:
\usepackage{fontspec}
\usepackage[math-style=upright]{unicode-math}
\setmainfont{calibri}[Ligatures=TeX, SmallCapsFeatures={Letters=SmallCaps,LetterSpace=5}, Path=fonts/, Extension = .ttf, UprightFont = calibri, BoldFont = calibrib, ItalicFont = calibrii, BoldItalicFont = calibriz]
\setmathfont{XITS Math}
\setmathfont{calibri}[
range={up/{greek,Greek,latin,Latin,num},
it/{greek,Greek,latin,Latin,num},
bfup/{greek,Greek,latin,Latin,num},
bfit/{greek,Greek,latin,Latin,num},
frak/{greek,Greek,latin,Latin,num}},
Path=fonts/, Extension=.ttf, UprightFont = calibri, BoldFont = calibrib, ItalicFont = calibrii, BoldItalicFont = calibriz
]
\DeclareMathOperator{\uphi}{\symbol{"03C6}}
但它非常不可靠。我需要加载 XITS Math 来获取符号,因为 calibri 中缺少很多符号,\mathbf 无法处理很多字符。
我没有信心在大规模文档上使用此解决方案,因为它似乎有点问题。