您尚未登录。

#1 2012-04-05 21:39:27

wych
论坛版主
注册时间: 2011-11-27
帖子: 103

解决ctex包在linux下找不到一些中文字体的问题

ctex是LaTeX的ctex发行包提供的一个中文友好的宏包,同时提供文档类,提交到CTAN,一般的发行版都有,很好用。但是在archlinux下texlive使用时,xelatex编译提示找不到SimKai等中文字体的错误。

一般来讲,这些字体,包括simsun、adobe系列的都是直接从windows里面拷贝过来的,安装方法是:

cp /path/to/msfonts/* /usr/share/fonts/msfonts
cd /usr/share/fonts/msfonts
mkfontscale
mkfontdir
fc-cache -f -v
fc-list
或者直接从系统设置->字体管理->添加 即可。

这样安装来的这些字体有些名字不变,比如simsun还是simsun,但是有的会改变,比如simkai变成了KaiTi,默认的ctex包里的设定是去找SIMKAI.TTF这个字体文件本身,但是这样还是找不到,所以解决方法是编辑ctex宏包中的设置,直接去找系统中的字体。
比如楷体,在系统中的名字是KaiTi,仿宋的名字是FangSong。
那么就要去修改ctex宏包中的字体设置:
文件路径:/usr/local/texlive/2011/texmf-dist/tex/latex/ctex/fontset/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
其他字体同理修改。
原文在此


Twitter@wych42

离线

#2 2012-04-06 07:14:25

reverland
root
注册时间: 2012-02-04
帖子: 356
个人网站

Re: 解决ctex包在linux下找不到一些中文字体的问题

嗯,adobe的字体就不用改。其实按ctex手册来不会有问题,可惜arch的texlive包貌似木有文档,一下精简了快两个G


>>>>>>>>>jekyll博客>>>>>>>>>>
<<<<<<<<<更残念的vimwiki<<<<<<<<<
本人vim控,偏偏喜欢lisp

离线

#3 2012-04-06 14:20:57

wych
论坛版主
注册时间: 2011-11-27
帖子: 103

Re: 解决ctex包在linux下找不到一些中文字体的问题

楷体按照手册来不能用


Twitter@wych42

离线

#4 2012-04-06 14:21:28

ffwalle
机器人
注册时间: 2011-12-03
帖子: 393

Re: 解决ctex包在linux下找不到一些中文字体的问题

楷体用gkai


just for fun :-)

离线

#5 2012-04-06 15:17:01

reverland
root
注册时间: 2012-02-04
帖子: 356
个人网站

Re: 解决ctex包在linux下找不到一些中文字体的问题

wych 说:

楷体按照手册来不能用

fclist |grep kai
看看你装的kaiti什么名字,比如我的是KaiTi_GB2312.然后
sudo vim /usr/share/texmf-dist/tex/latex/ctex/fontset/ctex-xecjk-winfonts.def
你懂的,把`[SIMKAI.TTF]`改成`KaiTi_GB2312`,仿宋的那个一样。


>>>>>>>>>jekyll博客>>>>>>>>>>
<<<<<<<<<更残念的vimwiki<<<<<<<<<
本人vim控,偏偏喜欢lisp

离线

页脚