Linux Libertine 粗体数学

Linux Libertine 粗体数学

我在文档中到处都使用 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

在此处输入图片描述

相关内容