ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

LaTex中文字体加粗的问题

2019-08-08 12:02:02  阅读:528  来源: 互联网

标签:LaTex 中文字体 粗体 加粗 rm 字体 setCJKmainfont


1. 字体加粗原理。

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

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

那么没有定义的字体,在加粗时,其实是软件做了简单地描边,效果肯定没有单独定义的好。

2. LaTex字体概念

  • LaTex字体有三个维度:

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

(这个其实很少)

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

font series 加粗

  • 以上很难满足对多种字体的选择需要,尤其是针对中文,我们的做法是分两步,一是选三种较常用的字体,设为上面的三种字体族:

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

这样就可以使用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=,但是我并没有遇到这个的应用场合。

标签:LaTex,中文字体,粗体,加粗,rm,字体,setCJKmainfont
来源: https://www.cnblogs.com/arsh/p/11320240.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有