CTEX社区

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7477|回复: 8

[求助中] ubuntu下使用ctexart的一个问题

[复制链接]
发表于 2010-6-18 23:48:28 | 显示全部楼层 |阅读模式
使用Texlive2009,所有自己添加的字体都在~/.fonts内,包括微软的宋体楷体等六套基本字体,使用如下测试无法通过
  1. \documentclass{ctexart}
  2. %\usepackage{fontspec}

  3. %\setCJKmainfont{SimSun}

  4. \begin{document}
  5. 小楼一夜听春雨
  6. \end{document}
复制代码
报告如下错误
  1. (/usr/local/texlive/2009/texmf-dist/tex/latex/ctex/fontset/ctex-xecjk-winfonts.
  2. defkpathsea: Invalid fontname `[simkai.ttf]/ICU', contains '['

  3. ! Font \@tempfontb=[simkai.ttf]/ICU at 10.0pt not loadable: Metric (TFM) file or installed font not found.
  4. \\zf@make@font@shapes ...f@suffix " at \f@size pt
  5.                                                   \edef \@tempb {\fontname \...
  6. l.5   {SimSun}
  7.               
  8. ! Cannot use \XeTeXOTcountfeatures with nullfont; not an OpenType Layout font.
  9. \zf@check@ot@feat ...OTcountfeatures \zf@basefont
  10.                                                   \c@zf@script \c@zf@languag...
  11. l.5   {SimSun}
  12.               
  13. ! Cannot use \XeTeXOTfeaturetag with nullfont; not an OpenType Layout font.
  14. \iterate ...ifnum \XeTeXOTfeaturetag \zf@basefont
  15.                                                   \c@zf@script \c@zf@languag...
复制代码
如果使用adobefonts可以通过,使用nofonts选项,自己设置为宋体,也可以通过,求解??
发表于 2010-6-19 00:39:36 | 显示全部楼层
用fc-list看一下那几个字体被list成了什么名字,不奇怪Windows的默认中文字体的命名规则不太统一。
发表于 2010-6-19 02:14:46 | 显示全部楼层
  1. sudo updmap-sys
复制代码
发表于 2010-6-19 11:39:30 | 显示全部楼层
3# leni


与此无关。
发表于 2010-6-19 11:40:03 | 显示全部楼层
1# 剑影若兰


winfonts 可不保证在 ubuntu 下面能用,不是么?
用 nofonts 自己设置就对了。
 楼主| 发表于 2010-6-19 21:13:28 | 显示全部楼层
5# milksea

额,貌似很有道理,字体名字的确没有问题,不过我还是想弄明白,毕竟这是默认选项,鄙人较懒。。
发表于 2010-6-19 23:14:15 | 显示全部楼层
原因是这样的(其实懒人就不必看了):

在字体定义文件 ctex-xecjk-winfonts.def 中,楷体和仿宋不是使用字体全名,而是使用字体文件名表示的。如楷书是:
\setCJKfamilyfont{zhkai}{[simkai.ttf]}
之所以这样是因为在 Windows XP 中楷书和仿宋是 GB_2313 字符集的,只有 6000 多个汉字,楷体字体全名是 KaiTi_GB2312;而在 Windows Vista 以后和版本则是 GBK 大字库的,有 20000 多个汉字,字体全名是 KaiTi。为了避免为微软的不同操作系统版本写不同的配置文件(这样更麻烦,而且 Windows 用户是大多数),就把它直接用没有变化过的字体文件名表示。

这个修改就是我做的。当然对于 Linux 用户可能有一些副作用。因为上面的字体名使用的是小写字母,而通常大家拷贝的字体是大写字母(这算是我的疏忽)。你知道 Windows 不区分文件名大小写,但 Linux 区分,所以当然 Linux 找不到 simsun.ttf 这个字体了。

我实在不建议 Linux 用户修改 ctex-xecjk-winfonts.def 文件。你可以使用 Windows 字体加上默认选项,但注意你安装的中文字体文件名要匹配。还有一个办法是写自己的配置文件,ctex 宏包有自己的 cfg 文件,在 .../texmf-dist/tex/latex/ctex/cfg/ctex.cfg 中,你可以在这个文件里面添加你自己的 local settings。
 楼主| 发表于 2010-6-22 19:50:58 | 显示全部楼层
7# milksea


我尝试修改winfonts.def,把相应的文件名都改成了字体名,结果编译倒是可以通过,但是实际上没有任何效果,字体全部是宋体,即便我设置成楷体,晕,放弃。你提到使用windows字体加默认选项,什么意思,使用nofonts,再自己设置字体吗?这样一来,标题,章节名中默认的字体不都不能使用了吗?求解。。
又及:修改cfg文件,貌似高级了一点,我一个新手是搞不定了,有无相应的文档可供参考?
 楼主| 发表于 2010-6-22 20:16:48 | 显示全部楼层
我又试了一下,貌似自己设置字体后,默认的格式还能用,窃喜中。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|CTEX ( 京ICP备05002817号 )

GMT+8, 2017-11-23 03:50 , Processed in 0.041154 second(s), 9 queries , Gzip On, XCache On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表