目标:我想要一个宏来更改仅下标和上标的数学字体。在 TeX 术语中,我认为这意味着我只想更改使用 scriptfont 排版的 S、S' 样式。
从图形上看,我想要
\bfscript{v_i}
显示为$v_{\mathbf{i}}$
。
尝试:我一直尝试用 TeX 的方式来做这件事;也就是说
\def\bfscript#1{\hbox{$\scriptfont0=\tenbf #1$}}
但这个方法失败了,因为 LaTeX 似乎完全忽略了 scriptfont 之类的东西。LaTeX 似乎只允许在字体大小上做出区分,使用\DeclareMathSizes
。
注意:我最初对这个真实案例感兴趣,但我甚至不确定我是否还需要它;我只是真的想知道答案是什么。
答案1
LaTeX 会加载数学字体并根据需要分配它们,因此您需要进行初始数学设置,以确保有字体可用作脚本字体。此外,在通常的设置中,您需要 fam 1 而不是 0。
我不建议你这样做:
\documentclass{article}
\begin{document}
\showoutput
\def\bfscript#1{%
\setbox0\hbox{$\scriptstyle\mathbf{\xdef\tmp{\the\scriptfont\fam}}$}%
\hbox{$\scriptfont1=\tmp #1$}}
$\bfscript{v_i}$
$v_{\mathbf{i}}$
\end{document}