LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: Err

求问:如何配置portage里的texlive-xetex中文?[已解决,内有texlive-xetex安装配置相关讨

[复制链接]
发表于 2008-10-27 18:52:39 | 显示全部楼层
Post by acevery;1900098
那建议你用TeXLive的livecd

.....  发现貌似你没有明白我的意思 .....
使用 texlive 的 livecd 就不能使用texlive本身的更新管理器进行管理了,说白了,livecd是一种免安装的方式,我在这里说的是采用网络安装(下载一个1M左右的压缩包联网安装在本机上的texlive系统),在livecd下,由于CD镜像本身是不可写的,因此更新,升级,删除都会很不方便,或者说只有等上游发布新的texlive livecd,再或者只能去网站上下在一些宏包安装在本地的texmf配置目录里面,当然这个是很麻烦的。而如果采用网络安装好的texlive系统,会有一个texlive独有的包管理软件,这个软件能够做到在宏包的粒度上进行升级,举例说,如果在CTAN的镜像上有beamer的新版出来了,可以完全通过一条命令将本机安装的beamer宏包升级到最新,对于为数众多的latex宏包都可以如此更新,这在发行版中的打包中,目前看来是不可想像的。类比一点说,我所建议的texlive的这种方式可以比喻成一个linux发行,它的包管理工具就可以类比成该linux发行版的包管理系统,比过debian的apt,gentoo的emerge,目前基本上也完全有了这样的功能。也就是说,如果texlive出了2009,可以完全不用重新安装,而采用升级的方式升级到texlive2009,和发行版自己的打包相比也具有差不多的功能了,并且提供更细的升级控制。
比如你用LaTeX而想用TTF生成自己的中文字体的时候。

目前我是采用xetex,使用ttf基本没有问题,我相信这里你可能是说CJK相应的中文会有问题,不得不说采用CJK实在是很古老很费事的方法了,我个人已经很久没有用CJK以及自己生成需要的字体了。同时我谨慎怀疑这个为什么会和系统库有联系?就我所知,字体生成是可以独立在tex系统之外的一个过程。一个人生成的字体给其他人用也完全没有问题。
其实,两种方式都不错,用gentoo中TeXLive,东西是自己机子上编译的,运行的速度快些;用TeXLive的CD,安装方便。
自己选择喜欢的就OK了。

见上面第一处的说明,我并不推荐liveCD的方式,且不说一个liveCD的大小,下载几乎是会让人抓狂的事情。用gentoo发行版打包的好处就是在于可以更方便的使用系统的其他依赖tex系统的软件包,当然即使自己安装了texlive在gentoo下也是很好解决的。至于说到运行速度,我保留意见,并觉得意义不大。

突然发现,我们跑题了。。 说了这么多,我只是觉得可能看了这些,大家会有一个更多的选择,不过确实,选择是困难的,选择自己喜欢并习惯的方式就可以了。
回复 支持 反对

使用道具 举报

发表于 2008-10-27 18:59:02 | 显示全部楼层
嗯,至少我也了解到了不少新的东西
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-27 21:22:21 | 显示全部楼层
Post by acevery;1899644
这样,你可以试试换一个字体看看,应该是字体的问题,如果别的字体OK的话,可以考虑去提个bug
用其它字体果然不会,只有WenQuanYi Zen Hei会,看来的确是个Bug.
回复 支持 反对

使用道具 举报

发表于 2008-10-27 21:24:02 | 显示全部楼层
文泉黑体是默认有内嵌点阵的,因此这个问题可能是遇到了内嵌的点阵。 不一定是bug
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-27 21:24:49 | 显示全部楼层

遇到zhspacing的问题

$xelatex foo.tex
…………
(/usr/share/texmf/tex/xetex/zhspacing/usefulmacros.sty))
kpathsea: Running mktextfm SimSun
/usr/share/texmf/web2c/mktexnam: Could not map source abbreviation  for SimSun.
/usr/share/texmf/web2c/mktexnam: Need to update ?
mktextfm: Running mf-nowin -progname=mf \mode:=ljfour; mag:=1; nonstopmode; input SimSun
This is METAFONT, Version 2.718281 (Web2C 7.5.7)


kpathsea: Running mktexmf SimSun
! I can't find file `SimSun'.
<*> ...:=ljfour; mag:=1; nonstopmode; input SimSun
                                                  
Please type another input file name
! Emergency stop.
<*> ...:=ljfour; mag:=1; nonstopmode; input SimSun
                                                  
Transcript written on mfput.log.
grep: SimSun.log: No such file or directory
mktextfm: `mf-nowin -progname=mf \mode:=ljfour; mag:=1; nonstopmode; input SimSun' failed to make SimSun.tfm.
kpathsea: Appending font creation commands to missfont.log.

! Font \zf@basefont=SimSun at 10.0pt not loadable: Metric (TFM) file or install
ed font not found.
\zf@fontspec ...ntname \zf@suffix " at \f@size pt
                                                  \unless \ifzf@icu \zf@set@...
l.568 ...family\zhfont[BoldFont=SimHei]{SimSun}}{}
                                                  
? x
No pages of output.
Transcript written on e1.log.

zhspacing似乎硬要用宋体,但是我不愿意装宋体……
acevery,如之奈何?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-27 21:29:23 | 显示全部楼层
Post by smallzhan;1900176
文泉黑体是默认有内嵌点阵的,因此这个问题可能是遇到了内嵌的点阵。 谈不上是bug
嗯,多谢提醒。
也请看看那个zhspacing的问题呵,谢谢!
回复 支持 反对

使用道具 举报

发表于 2008-10-27 23:00:19 | 显示全部楼层
Post by Err;1900177

zhspacing似乎硬要用宋体,但是我不愿意装宋体……
acevery,如之奈何?


这个只需要把zhspacing宏包中的字体做相应的替换即可。
具体如下:
比如zhspacing默认中文的roman用的是SimSun,而你要用FZShuSong。
那么用下面的几个sed命令即可,首先看看替换对不对:

  1. sed  's/SimSun/FZShuSong/g' /usr/share/texmf/tex/xetex/zhspacing/*.sty |  grep "FZShuSong"
复制代码

正确的话,替换之:

  1. sed  's/SimSun/FZShuSong/g' /usr/share/texmf/tex/xetex/zhspacing/*.sty
复制代码


另外你想替换的字体还有SimHei, FangSong, KaiTi_GB2312等,参照上面SimSun的例子把各个sty文件中的字体名字替换掉即可
回复 支持 反对

使用道具 举报

发表于 2008-10-27 23:06:57 | 显示全部楼层
Post by Err;1900177
$xelatex foo.tex
…………
(/usr/share/texmf/tex/xetex/zhspacing/usefulmacros.sty))
kpathsea: Running mktextfm SimSun
/usr/share/texmf/web2c/mktexnam: Could not map source abbreviation  for SimSun.
/usr/share/texmf/web2c/mktexnam: Need to update ?
mktextfm: Running mf-nowin -progname=mf \mode:=ljfour; mag:=1; nonstopmode; input SimSun
This is METAFONT, Version 2.718281 (Web2C 7.5.7)


kpathsea: Running mktexmf SimSun
! I can't find file `SimSun'.
<*> ...:=ljfour; mag:=1; nonstopmode; input SimSun
                                                  
Please type another input file name
! Emergency stop.
<*> ...:=ljfour; mag:=1; nonstopmode; input SimSun
                                                  
Transcript written on mfput.log.
grep: SimSun.log: No such file or directory
mktextfm: `mf-nowin -progname=mf \mode:=ljfour; mag:=1; nonstopmode; input SimSun' failed to make SimSun.tfm.
kpathsea: Appending font creation commands to missfont.log.

! Font \zf@basefont=SimSun at 10.0pt not loadable: Metric (TFM) file or install
ed font not found.
\zf@fontspec ...ntname \zf@suffix " at \f@size pt
                                                  \unless \ifzf@icu \zf@set@...
l.568 ...family\zhfont[BoldFont=SimHei]{SimSun}}{}
                                                  
? x
No pages of output.
Transcript written on e1.log.

zhspacing似乎硬要用宋体,但是我不愿意装宋体……
acevery,如之奈何?


去看看zhspacing主页上的那个zhs-man 的那个pdf把,说得很详细。
回复 支持 反对

使用道具 举报

发表于 2008-10-27 23:28:59 | 显示全部楼层
Post by smallzhan;1900229
去看看zhspacing主页上的那个zhs-man 的那个pdf把,说得很详细。


这个pdf emerge zhspacing的时候有装了,在/usr/share/doc/zhspacing-080102/zhs-man071211.pdf
回复 支持 反对

使用道具 举报

发表于 2008-10-28 00:00:59 | 显示全部楼层
Post by acevery;1900223
这个只需要把zhspacing宏包中的字体做相应的替换即可。
具体如下:
比如zhspacing默认中文的roman用的是SimSun,而你要用FZShuSong。
那么用下面的几个sed命令即可,首先看看替换对不对:

  1. sed  's/SimSun/FZShuSong/g' /usr/share/texmf/tex/xetex/zhspacing/*.sty |  grep "FZShuSong"
复制代码

正确的话,替换之:

  1. sed  's/SimSun/FZShuSong/g' /usr/share/texmf/tex/xetex/zhspacing/*.sty
复制代码


另外你想替换的字体还有SimHei, FangSong, KaiTi_GB2312等,参照上面SimSun的例子把各个sty文件中的字体名字替换掉即可


建议acevery在ebuild中作相应的处理,使用类似 wqy 之类的字体会比较合适(依赖关系上加上字体。)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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