參考: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}
如上述代碼,將這兩種實現方式放在一塊兒進行對比,顯示效果如圖
此外,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
,還沒有搞懂。。。字體設置就告一段落吧