我正在尝试使用 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}