前文讲了LaTeX技巧326:希腊字母的加粗问题仅仅是解决方案,而如下这篇文章详述了数学模式加粗的问题,值得看看。

在 LaTeX 有 \mathbf{} 来让字体变粗体。但这是在数学模式才能使用这个指令,要小心的是,他并不是数学粗体,而是数学式里头的『一般文字』的粗体,许多朋友误会他是数学粗体了。

数学式子里头的字母有一定的规范,他通常是使用数学斜体来表示。例如,底下的数学式子:

LaTeX 代码:$f(x,y) = 3(x+y)y / (2xy-7)$

上面一行的才是正确的排版,下面一行的并不符合数学式子的排版规范,英文字母的部份没有使用数学斜体。

那么我们现在来使用\mathbf{} 让他变成粗体显示:

LaTeX 代码:$\mathbf{f(x,y) = 3(x+y)y / (2xy-7)}$

好了,他是变成粗体了,但这里会发现,数学斜体不见了,变成是正常的字体,而且运算符号并没有变粗体。

这是怎么一回事呢?我们先来看看 \mathbf{} 的定义:

\DeclareRobustCommand\bfseries

{\not@math@alphabet\bfseries\mathbf

\fontseries\bfdefault\selectfont}

原来 \mathbf 会将数学模式取消再来取用字型,当然,此时就是一般的正常字体,而不是数学斜体了,而且也不会取用到数学模式该有的符号。

那么怎么办呢?这至少有两种解决的方式,一个是使用 bm package 的 \bm 指令,一个是使用amsmath package 的 \boldmath指令。

...

\usepackage{amsmath,bm}

...

$\bm{f(x,y) = 3(x+y)y / (2xy-7)}$

\boldmath

$f(x,y) = 3(x+y)y / (2xy-7)$

\unboldmath

...

这样表现出来将会是:

这才是正确的。以上要详细比较,请 click 图档放大观察,或自行写个简单的 LaTeX 码测试一下就知道了。其他还有\mathsf{}、\mathtt{}、\mathit{}等,他们都是为了在数学模式来表现正常字体而用的,并不是真正的数学式子用字,别被他前头 math 字样给骗了!

选自:http://blog.bs2.to/post/EdwardLee/4203

点赞(1)

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部