转自http://blog.sciencenet.cn/blog-350278-700696.html
其他可以参考http://blog.sina.com.cn/s/blog_61f013b801010cdh.html
以及 http://huxuan.org/2012/07/14/chinese-font-problem-of-ctex-in-texlive-under-linux/
需要注意的是,升级系统后有可能会将ctex-xecjk-winfonts.def改成原来的内容,需要我们再次对其进行修改。
1. 更新字体缓存。sudo mkfontscale,sudo mkfontdir,sudo fc-cache -fsv,然后查看添加的字体是否更新,fc-list :lang=zh-cn | sort。
2. 查看并根据生成的 fonts 编辑 ctex-xecjk-winfonts.def,ctex-xecjk-adobefonts.def(adobe的设置与系统字体一致,可不改),sudo vi /usr/share/texlive/texmf-dist/tex/latex/ctex/fontset/ctex-xecjk-winfonts.def
改前ctex-xecjk-winfonts.def:
% ctex-xecjk-winfonts.def: Windows 的 xeCJK 字体设置,默认为六种中易字体
%vim:ft=tex
\setCJKmainfont[BoldFont={SimHei},ItalicFont={[simkai.ttf]}]
{SimSun}
\setCJKsansfont{SimHei}
\setCJKmonofont{[simfang.ttf]}
\setCJKfamilyfont{zhsong}{SimSun}
\setCJKfamilyfont{zhhei}{SimHei}
\setCJKfamilyfont{zhkai}{[simkai.ttf]}
\setCJKfamilyfont{zhfs}{[simfang.ttf]}
\newcommand*{/songti}{/CJKfamily{zhsong}} % 宋体
\newcommand*{/heiti}{/CJKfamily{zhhei}} % 黑体
\newcommand*{/kaishu}{/CJKfamily{zhkai}} % 楷书
\newcommand*{/fangsong}{/CJKfamily{zhfs}} % 仿宋
\newcommand*{/lishu}{/CJKfamily{zhli}} % 隶书
\newcommand*{/youyuan}{/CJKfamily{zhyou}} % 幼圆
\endinput
改后ctex-xecjk-winfonts.def:
% ctex-xecjk-winfonts.def: Windows 的 xeCJK 字体设置,默认为六种中易字体
% vim:ft=tex
\setCJKmainfont[BoldFont={SimHei},ItalicFont={KaiTi}] {SimSun}
\setCJKsansfont{SimHei}
\setCJKmonofont{FangSong}
\setCJKfamilyfont{zhsong}{SimSun}
\setCJKfamilyfont{zhhei}{SimHei}
\setCJKfamilyfont{zhkai}{KaiTi}
\setCJKfamilyfont{zhfs}{FangSong}
\setCJKfamilyfont{zhli}{LiSu}
\setCJKfamilyfont{zhyou}{YouYuan}
\newcommand*{\songti}{\CJKfamily{zhsong}} % 宋体
\newcommand*{\heiti}{\CJKfamily{zhhei}} % 黑体
\newcommand*{\kaishu}{\CJKfamily{zhkai}} % 楷书
\newcommand*{\fangsong}{\CJKfamily{zhfs}} % 仿宋
\newcommand*{\lishu}{\CJKfamily{zhli}} % 隶书
\newcommand*{\youyuan}{\CJKfamily{zhyou}} % 幼圆
\endinput
改后ctex-xecjk-adobefonts.def:(Adobe没有隶书和幼圆,须注释掉)
% ctex-xecjk-adobefonts.def: Adobe 的 xeCJK 字体设置,为 Adobe 的四套字体
% vim:ft=tex
\setCJKmainfont[BoldFont=Adobe Heiti Std,ItalicFont=Adobe Kaiti Std]
{Adobe Song Std}
\setCJKsansfont{Adobe Heiti Std}
\setCJKmonofont{Adobe Fangsong Std}
\setCJKfamilyfont{zhsong}{Adobe Song Std}
\setCJKfamilyfont{zhhei}{Adobe Heiti Std}
\setCJKfamilyfont{zhfs}{Adobe Fangsong Std}
\setCJKfamilyfont{zhkai}{Adobe Kaiti Std}
\newcommand*{\songti}{\CJKfamily{zhsong}} % 宋体
\newcommand*{\heiti}{\CJKfamily{zhhei}} % 黑体
\newcommand*{\kaishu}{\CJKfamily{zhkai}} % 楷书
\newcommand*{\fangsong}{\CJKfamily{zhfs}} % 仿宋
% \newcommand*{\lishu}{\CJKfamily{zhli}} % 隶书
%\newcommand*{\youyuan}{\CJKfamily{zhyou}} % 幼圆
\endinput
\end{document}
编译:xelatex exam1.tex
NOTE:用pdflatex不可以,中文情况下用xelatex。