我正在尝试使用 Linux Libertine 作为数学(和主)字体,并且我使用了这个答案设置数学字体。但是,数学输出仍然是 CM。
\documentclass{minimal}
\usepackage{amsmath, mathspec, libertine, lipsum}
%\usepackage[libertine]{newtxmath}
\setmathsfont[ItalicFont={LinLibertine_RI.otf}]{LinLibertine_R.otf}
\setmathrm{LinLibertine_R.otf}
\setboldmathrm{LinLibertine_RB.otf}
\setmathsf{LinBiolinum_RB.otf}
\begin{document}
\lipsum[1]
\begin{equation}
\hat{Q}_i=\int_0^\infty \mathcal{G}^2(x) \Sigma^{-1}(x^2) f_i(x)dx
\end{equation}
\end{document}
如果我尝试取消注释该newtxmath
行,则会收到错误
程序包 mathspec 错误:
amsmath' must be loaded earlier than
mathspec'
但我amsmath
之前已经加载过mathspec
!
我该如何解决这些问题(修复任何一个都可以,因为目标是使用 LL 字体进行数学运算)。
正如指出的那样,移动newtxmath
之前amsmath
解决了上述 MWE 中的问题。现在让我稍微修改一下,并将其amsthm
也包括在内,这现在会导致许多其他错误,例如:
!LaTeX 错误:命令 \openbox 已定义。或名称 \end... 非法,请参阅手册第 192 页。
答案1
加载这些包的正确顺序是amsthm
,,newtxmath
mathspec
\usepackage{amsthm}
\usepackage[libertine]{newtxmath}
\usepackage{mathspec}
您无需加载,amsmath
因为它已被加载。这也是为什么在它之后加载时会出现抱怨的newtxmath
原因。mathspec
newtxmath
此外,请注意amsthm
和都newtxmath
定义了\openbox
命令。但是,前者通过定义它\newcommand
,而后者通过定义它\DeclareRobustCommand
,因此它不会抱怨......
答案2
自由主义者是 Linux Libertine 的一个分支,修复了一些错误,并提供了非常好的数学支持(请查看本示例文档)。它将使您能够使用 Linux Libertine 进行数学运算,而无需使用newtxmath
。这是问题标题...(请参阅XY问题)。
进行编译xelatex
并安装 Libertinus 字体。
\documentclass[varwidth,border=1mm]{standalone}
\usepackage[
math-style=ISO,
bold-style=ISO,
partial=upright,
nabla=upright
]{unicode-math}
\setmainfont{Libertinus Serif}
\setsansfont{Libertinus Sans}
\setmathfont{Libertinus Math}
\begin{document}
The formula \(E=mc^2\) is arguably the most famous formula in physics.
In mathematics, it could be \(\mathrm{e}^{\mathrm{i}\uppi}-1=0\).
\(\displaystyle \sum_{k=0}^\infty \frac{1}{k^2} = \frac{\uppi^2}{6}\), and
\(\displaystyle \int\displaylimits_{-\infty}^\infty
\exp\left(-\frac{x^2}{2}\right) = \sqrt{2\uppi}\).
\(\alpha\beta\gamma\delta\epsilon\zeta\eta\theta\iota\kappa\lambda\mu\nu\xi\pi\rho\sigma\tau\upupsilon\phi\chi\psi\omega \varepsilon\vartheta\varrho\varsigma\varphi\varkappa\)
\(\upalpha\upbeta\upgamma\updelta\upepsilon\upzeta\upeta\uptheta\upiota\upkappa\uplambda\upmu\upnu\upxi\uppi\uprho\upsigma\uptau\upupsilon\upphi\upchi\uppsi\upomega \upvarepsilon\upvartheta\upvarrho\upvarsigma\upvarphi\upvarkappa\)
\(\Alpha\Beta\Gamma\Delta\Epsilon\Zeta\Eta\Theta\Iota\Kappa\Lambda\Mu\Nu\Xi\Pi\Rho\Sigma\Tau\Upsilon\Phi\Chi\Psi\Omega\)
\(\upAlpha\upBeta\upGamma\upDelta\upEpsilon\upZeta\upEta\upTheta\upIota\upKappa\upLambda\upMu\upNu\upXi\upPi\upRho\upSigma\upTau\upUpsilon\upPhi\upChi\upPsi\upOmega\)
\end{document}
但请注意:xe(la)tex
目前(TeX Live 2016)有一个错误,在我的屏幕截图中可以看到:为什么 XeTeX 中的分数偏离了数学轴?TeX lualatex
Live 2016 也有一个错误:使用 unicode-math 在 LuaLaTeX 中实现空格