使用 isomath 和 newtxmath 的粗体斜体向量

使用 isomath 和 newtxmath 的粗体斜体向量

我正在尝试使用 newtxmath 字体获取粗体斜体矢量。

使用其他字体我只需加载 isomath 包然后使用它\vectorsym{...}来获得所需的输出。

但是,与 newtxmath 包结合使用时,\vectorsym根本没有效果。

下面是我的 MWE,它产生两个相同的非粗体字母 x,而我希望第二个字母是粗体。

我正在按照手册第 17 页上的示例 2 加载字体堆栈
https://mirror.funkfreundelandshut.de/latex/fonts/newtx/doc/newtxdoc.pdf

我知道,我可以\vectorsym借助它重新定义\bm,但这会在我的实际应用中产生另一个问题,我认为 isomath 的要点是你加载它并且它会处理所有事情......

\documentclass{standalone}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

% page 17 in manual
\usepackage[lining,semibold]{libertine} % a bit lighter than Times--no osf in math
\usepackage[T1]{fontenc} % best for Western European languages
\usepackage{textcomp} % required to get special symbols
\usepackage[varqu,varl]{inconsolata}% a typewriter font must be defined
\usepackage{amsmath}% must be loaded before amsthm, if using
\usepackage{amsthm}% must be loaded before newtxmath
\usepackage[libertine,vvarbb,slantedGreek]{newtxmath}
\usepackage[scr=rsfso]{mathalfa}
\usepackage{bm}% load after all math to give access to bold math
%After loading math package, switch to osf in text.
\useosf % for osf in normal text

\usepackage{isomath}

\begin{document}
    $x \vectorsym{x}$   
\end{document}

答案1

问题isomath

\ifisomath@reuseMathAlphabets
  \DeclareMathAlphabet{\mathbf}{OML}{\isomath@rmdefault}{bx}{it}
  \def\mathbfit{\mathbf}
\else
  \DeclareMathAlphabet{\mathbfit}{OML}{\isomath@rmdefault}{bx}{it}
\fi

事实上你得到了

LaTeX Font Warning: Font shape `OML/LinuxLibertineT-TLF/bx/it' undefined
(Font)              using `OML/nxlmi/m/it' instead on input line 21.

isomath做出了一些假设,在加载时这些假设不成立newtxmath。请自行更改 的定义\mathbfit

\documentclass{article}
\usepackage[T1]{fontenc}

\usepackage[lining,semibold]{libertine} % a bit lighter than Times--no osf in math
\usepackage[T1]{fontenc} % best for Western European languages
\usepackage{textcomp} % required to get special symbols
\usepackage[varqu,varl]{inconsolata}% a typewriter font must be defined
\usepackage{amsmath}% must be loaded before amsthm, if using
\usepackage{amsthm}% must be loaded before newtxmath
\usepackage[libertine,vvarbb,slantedGreek]{newtxmath}
\usepackage[scr=rsfso]{mathalfa}
\usepackage{bm}% load after all math to give access to bold math

\usepackage{isomath}


\useosf % for osf in normal text

% fix \mathbfit
\DeclareMathAlphabet{\mathbfit}{OML}{nxlmi}{bx}{it}

\begin{document}

$x \vectorsym{x}$   

\end{document}

在此处输入图片描述

相关内容