LaTex中文字体学习笔记

参考:LaTeX入门系列之字体族字体

  do not dive into designspa

  不停试验代码,研究了一天字体,感受仍是不得其门,却是这句话点醒了我。code

  考虑到拓展性,本打算直接使用xeCJK宏包,因此ctex不少特性无法用有些惋惜。关于字体的完善,ctex调用xeCJK,xeCJK调用fontspec,实践中也会常常直接调用fontspec进行设置。
  xeCJK宏包在中文排版上须要一些特殊设置进行缩进,导言区须要添加知足中行首行缩进的需求。blog

\usepackage{indentfirst}%设置缩进
\setlength{\parindent}{2em} %也可在正文中非全局设置

  1 粗体textbf与斜体textit仅对自己字体包含这两项属性的字体起做用,而中文字体仅有少数字体有加粗选项,例如宋体,xeCJK加粗仍为宋体,可是textit已经设置为楷体了;ctex宏包则将加粗设置为黑体,textit一样设置为楷体。
  另外,ctex又在win下预配置了四种字体族:宋体,黑体,仿宋,楷体。ip

\documentclass{article}
\usepackage[heading=true]{ctex}%添加heading=true,使用中文版式
\begin{document}
我是宋体 Default,\textbf{我是黑体 Bold}\textit{我是楷体 Italian}
%多空一行
{\songti 我是宋体 Default},{\heiti 我是黑体 Bold},{\kaishu 我是楷体 Italian},{\fangsong 我是仿宋}
\end{document}

  如上述代码,将这两种实现方式放在一块儿进行对比,显示效果如图
001yjf4pzy7uri0TWdleb
  此外,xeCJK有伪斜体与伪粗体开关,在调用时可指定打开。文档

\usepackage[AutoFakeBold=true, AutoFakeSlant=true]{xeCJK}

  等效命令:bfseries,itshapeget

  2 另一种方式是使用 fontspec 宏包设置字体。若是在ctex宏包中也需使用自定义字体,可添加命令参数。it

\usepackage[UTF8, heading = true, fontset = none]{ctex}

\setmainfont{字体名} %设置默认字体,如需中文需使用支持中文的字体
\setCJKmainfont{字体名}%设置 CJK 默认字体
%从新定义新的字体族命令:
\newfontfamily<命令>[可选参数]{字体名}%ctex宏包中已定义相关字体
\newCJKfontfamily<命令>[可选参数]{字体名}

  形如 \newfontfamily\song{SimSun} %正文中可以使用\song指定字体入门

  可是在导言区引入定义会致使,xeCJK关于文档结构各级标题的字体设置所有丢失-_-|||
  查阅xeCJK文档可知,\newCJKfontfamily\setCJKfamilyfont\CJKfamily 的合并,然而在导言区使用\setCJKfamilyfont依然形成全局字体改变;又,如使用\newfontfamily,则正文中使用命令仅对英文起做用,中文字体不作改变。
  所以结合文献以\newcommand从新定义命令,在正文局部须要改变时调用字体命令,且以{}限制范围。class

\newcommand{\yahei}{\setCJKfamilyfont{yahei}{Microsoft YaHei} \CJKfamily{yahei}}

  若是使用ctex宏包,有些字体已经定义,就不须要重复定义了,也能够直接在导言区使用newCJKfontfamily,搞不懂了。。。

  3 字号设置以及本地化
  参考 https://www.jianshu.com/p/b17...

\newcommand{\chuhao}{\fontsize{42pt}{\baselineskip}\selectfont}  %字号设置,不肯定xeCJK宏包定义

  另有命令 \fontspec{PMingLiU}\selectfont,还没有搞懂。。。字体设置就告一段落吧

相关文章
相关标签/搜索