我在文档中到处都使用 Linux Libertine。但是,我不知道如何让粗体数学\mathbf
显示为粗体文本。这个答案似乎与这个问题有关,但是在我的例子中尝试这样做(用 Linux Libertine O 替换 Minion Pro)会给我以下错误(对于每个X:Y:Z
):
符号字体“Latin:m:n”未定义。
如何在我的文档中获得粗体数学符号?
梅威瑟:
\documentclass{minimal}
\usepackage{amsthm}
\usepackage[libertine]{newtxmath}
\usepackage{mathspec, libertine, lipsum}
\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(\mathbf{x}) \mathbf{\Sigma}^{-1}(x^2) f_i(x)dx
\end{equation}
\end{document}
答案1
我没有收到您所声称的错误,但有些事情出了问题,我相信是因为libertine
与之交互的方式mathspec
。
不过,必须指定需要 Libertine 的类,这会触发有关数学组不足的错误。可以使用中概述的方法解决此问题http://tex.stackexchange.com/a/100428/4427
此版本可以通过直接按名称调用字体来工作。
\documentclass{article}
\usepackage{etoolbox}
\makeatletter
%% http://tex.stackexchange.com/questions/100426/
%% http://tex.stackexchange.com/a/100428/
\def\new@mathgroup{\alloc@8\mathgroup\mathchardef\@cclvi}
\patchcmd{\document@select@group}{\sixt@@n}{\@cclvi}{}{}
\patchcmd{\select@group}{\sixt@@n}{\@cclvi}{}{}
\makeatother
\usepackage{amsthm}
\usepackage[libertine]{newtxmath}
\usepackage{mathspec,lipsum}
\setmainfont{Linux Libertine O}
\setmathsfont(Digits,Latin,Greek){Linux Libertine O}
\setmathrm{Linux Libertine O}
\setboldmathrm{Linux Libertine O}
\setmathsf{Linux Biolinum O}
\begin{document}
\lipsum[2]
\begin{gather}
\hat{Q}_i=\int_0^\infty \mathcal{G}^2(\mathbf{x})
\mathbf{\Sigma}^{-1}(x^2) f_i(x)\,dx=\mathsf{X} \\
\hat{Q}_i=\int_0^\infty \mathcal{G}^2(\mathbf{x})
\mathbf{\Sigma}^{-1}("x^2) f_i(x)\,dx=\mathsf{X}
\end{gather}
\end{document}
我在你的公式中添加了一行,显示了如何"
按照手册中的说明进行操作mathspec
。