LaTex中文字体学习笔记

参考:LaTeX入门系列之字体族 do not dive into design 不停试验代码,研究了一天字体,感觉还是不得其门,倒是这句话点醒了我。 考虑到拓展性,本打算直接使用xeCJK宏包,所以ctex很多特性没法用有些可惜。关于字体的完善,ctex调用xeCJK,xeCJK调用fontspec,实践中也会经常直接调用fontspec进行设置。 xeCJK宏包在中文排版上需要一些特殊设置进行缩进,导言区需要添加满足中行首行缩进的需求。 \usepackage{indentfirst}%设置缩进\setlength{\parindent}{2em} %也可在正文中非全局设置 1 粗体textbf与斜体textit仅对本身字体包含这两项属性的字体起作用,而中文字体仅有少数字体有加粗选项,例如宋体,xeCJK加粗仍为宋体,但是textit已经设置为楷体了;ctex宏包则将加粗设置为黑体,textit同样设置为楷体。 另外,ctex又在win下预配置了四种字体族:宋体,黑体,仿宋,楷体。 \documentclass{article}\usepackage[heading=true]{ctex}%添加heading=true,使用中文版式\begin{document}我是宋体 Default,\textbf{我是黑体 Bold}\textit{我是楷体 Italian}%多空一行{\songti 我是宋体 Default},{\heiti 我是黑体 Bold},{\kaishu 我是楷体 Italian},{\fangsong 我是仿宋}\end{document} 如上述代码,将这两种实现方式放在一起进行对比,显示效果如图 此外,xeCJK有伪斜体与伪粗体开关,在调用时可指定打开。 \usepackage[AutoFakeBold=true, AutoFakeSlant=true]{xeCJK} 等效命令:bfseries,itshape 2 另外一种方式是使用 fontspec 宏包设置字体。如果在ctex宏包中也需使用自定义字体,可添加命令参数。 \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重新定义命令,在正文局部需要改变时调用字体命令,且以{}限制范围。 \newcommand{\yahei}{\setCJKfamilyfont{yahei}{Microsoft YaHei} \CJKfamily{yahei}} 如果使用ctex宏包,有些字体已经定义,就不需要重复定义了,也可以直接在导言区使用newCJKfontfamily,搞不懂了。。。 3 字号设置以及本地化 参考 https://www.jianshu.com/p/b17... ...

June 26, 2019 · 1 min · jiezi

LaTex几种中文实现方式记录

古早的CTex套装且不提了,目前主流的是使用宏包xeCJK和CTex,CTex又可以使用文档类{ctexart}。区别详见 http://www.360doc.com/content... 原始出处blogbus挂了,新浪博客也被私密了,结果只剩下360图书馆,真是讽刺。 如果不加其它排版参数使用默认,在缩进、换行以及目录上会有微妙不同。 使用ctexart文档类效果:\documentclass[UTF8]{ctexart} 使用Ctex宏包效果 \documentclass{article}\usepackage{CTex} %调用 CTex 宏包%如需实现上图效果,需要添加heading \usepackage[UTF8, heading = true]{ctex} 使用xeCJK效果 \documentclass{article}\usepackage{xeXJK} %调用 xeCJK 宏包 xeCJK即便加上行间距设置命令似乎也没有太大改观,或者我使用的命令还要调一调。 \XeTeXlinebreaklocale "zh" % Auto linebreak for chinese\XeTeXlinebreakskip = 0pt plus 1pt % Auto linebreak for chinese 不过试验了网上的代码但凡用到其它字体的总是报错,搞不明白,下次再看看各个宏包的说明文档解决字体吧,目前就凑合着宋体了。。。

June 26, 2019 · 1 min · jiezi