LaTex中文字体加粗的问题

1. 字体加粗原理。windows

打开c/windows/fonts目录,以图标形式查看,咱们能够发现有的图标是一张纸的样子,有的图标是几张纸叠着的样子。双击几张纸样子的图标,好比Arial,发现里面有不少个文件,有的文件名带黑体,说明对于Arial,字体文件单独区分了常规体和粗体。字体

我浏览了一下,发现英文大多数都单独定义了粗体,斜体,可是中文字体只有不多的会单独定义,只有雅黑和等线。spa

那么没有定义的字体,在加粗时,实际上是软件作了简单地描边,效果确定没有单独定义的好。code

2. LaTex字体概念class

  • LaTex字体有三个维度:

font family 字体族:分为rm罗马,sf无衬线,tt打字机三种。默认是rm。原理

(这个其实不多)软件

font shape 形状:如直立,倾斜。command

font series 加粗方法

  • 以上很难知足对多种字体的选择须要,尤为是针对中文,咱们的作法是分两步,一是选三种较经常使用的字体,设为上面的三种字体族:

        \setCJKmainfont{SimSun} %对应rm罗马
        \setCJKsansfont{SimHei}%对应sf无衬线
        \setCJKmonofont{FangSong}%对应tt打字机im

这样就可使用rmfamily, sffamily这样已有的命令来指定字体;

二是本身设定新的字体族:

\setCJKfamilyfont{yh}{Microsoft YaHei}

而后要自定义命令:
\newcommand{\yh}{\CJKfamily{yh}}

(英文字体的设定方法略)

2. LaTex加粗命令

textbf和bfseries是同样的加粗命令,只是使用方式不一样。

对于单独定义了粗体的字体,这个命令不管对中文仍是英文都是有效的。

对于没有单独定义粗体的字体,咱们只说中文:

  • 若是没有使用setCJKmainfont或setCJKfamilyfont,那么对默认字体(不使用\songti这些命令)使用加粗命令时,获得的是黑体,由于默认的中文字体族是rm,其正常字体是宋体,粗体是黑体。其实并非咱们想要的加粗效果,由于这个已经改变字体了。
  • 若是使用setCJKmainfont,能够加上AutoFakeBold这个参数,来实现加粗效果,不然是没有加粗效果的:

\setCJKmainfont{SimSun}[AutoFakeBold,ItalicFont=KaiTi]

还有一种方式,能够直接指定加粗的字体,就是设置BoldFont=,可是我并无遇到能够应用的场合。

相关文章
相关标签/搜索