LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 5432|回复: 11

TeX/LaTeX 中文解决方案!(slackware)

[复制链接]
发表于 2005-10-15 21:31:01 | 显示全部楼层 |阅读模式
终于把SlackWare下TeX/LaTeX的CJK问题解决了,下面是简要的步骤:
一、安装SlackWare自带的slackware/t/tetex-3.0-i486-1.tgz(the version from slackware-current)
1.首先安装:

  1. #installpkg tetex-3.0-i486-1.tgz
  2. ......
复制代码

会生成两个目录:
/usr/share/texmf---$TEXMFMAIN
/usr/share/texmf-var---$VARTEXMF
自己创建一个目录:

  1. #mkdir -p /usr/share/texmf-local
复制代码

作为$TEXMFLOCAL
这样就是完整的TDS(TeX Directory Structure),关于TeXLive的TDS可以参考王垠写的TDS目录结构
另外,这里有一份详细的英文TDS介绍
最后修改PATH,添加/usr/share/texmf/bin

  1. #echo "export PATH=$PATH:/usr/share/texmf/bin">>~/.bashrc
  2. #. ~/.bashrc
复制代码


2.配置字体和CJK宏包
配置字体
下载gbkfonts(生成字体程序),这个是
Post by 王垠

基于 energy 大哥(obase@163.net) 的源程序改进的一个用来从 TTF 汉字字体生成 TeX 使用的汉字 Type1 字体的转换软件,同时还可以生成很多 TeX 系统程序需要的配置文件。

# Windows 版本 0.1 下载,
# Linux 版本 0.3 下载. 有人使用很老的 glibc 可能会出现版本不兼容的问题,如果你不想自己编译,可以下载一个静态连接的版本,直接解开就可以运行。
# Solaris 版本 0.2 下载.

事实上下载Linux 版本 0.3后,解压缩,里面有个可执行文件gbkfonts就可以直接在slackware下用了,如果你嫌麻烦就直接下载这个版本,然后解压缩,提取里面的gbkfonts就够了。
找到你需要的TTF字体,比如在你的Windows下的c:\WINDOWS\Fonts\下的.ttf,下面是些常用的例子:

  1. fzstk.ttf
  2. shuang.ttf
  3. simkai.ttf
  4. simyou.ttf
  5. sthupo.ttf
  6. stxinwei.ttf
  7. fzytk.ttf
  8. simfang.ttf
  9. simli.ttf
  10. stcaiyun.ttf
  11. stxihei.ttf
  12. stzhongs.ttf
  13. heimi.ttf
  14. simhei.ttf
  15. simsun.ttf
  16. stfangso.ttf
  17. stxingka.ttf
  18. *
复制代码

为了不让我们工作的环境出现混乱的局面,我们必须养成一个良好的习惯,具体操作的步骤参考如下:

  1. #cd
  2. #mkdir ttf2type1
  3. #cd ttf2type1
  4. #cp 字体 .
  5. #mkdir fontsgenerate
  6. #cd fontsgenerate
  7. #vim run
  8. ......写一个脚本,自动运行,内容如下
  9. #cat run
  10. gbkfonts ../simhei.ttf simhei
  11. gbkfonts ../simyou.ttf simyou
  12. gbkfonts ../stfangso.ttf stfangso
  13. gbkfonts ../stliti.ttf stliti
  14. gbkfonts ../stxingka.ttf stxingka
  15. gbkfonts ../fzstk.ttf fzstk
  16. gbkfonts ../simli.ttf simli
  17. gbkfonts ../stcaiyun.ttf stcaiyun
  18. gbkfonts ../sthupo.ttf sthupo
  19. gbkfonts ../stsong.ttf stsong
  20. gbkfonts ../stxinwei.ttf stxinwei
  21. gbkfonts ../fzytk.ttf fzytk
  22. gbkfonts ../simsun.ttf simsun
  23. #chmod +x run
  24. #./run
  25. ......
复制代码

这样造字工作就做好了,上面后面的名字可以随便写,但是要记清楚了,后面我们在应用的时候会用到的啊!

安装CJK宏包
先给出网址以免找不到,最直接到CTAN网站找,那里可以TeX的大本营……
http://www.ctan.org/tex-archive/
http://cjk.ffii.org/
下载最新版的CJKcjk-current.tar.gz,这个是一个德国人写的,不知道为什么亚洲的字体却要德国人来写?看下面来自WikiPedia的介绍:
Post by WikiPedia at China

CJK

让LaTeX支持中文的另一种方法是使用CJK宏包,由德国人Werner Lemberg编写。这个宏包不仅仅支持繁简体中文、日文、朝鲜文等东亚语言,而且它也是一个多种语言支持包,另外还支持几十种其他不同的语言。

在对中文支持的改进过程中王磊也做出了很大的贡献。

解压缩:

  1. #tar xvfz cjk-current.tar.gz
  2. ......
复制代码


复制工作
下面是对上面所做工作的最后处理,把上面得到的目录和文件复制到相应的位置:

  1. #mv ~/ttf2type1/fontsgenerate/* /usr/share/texmf-local/
  2. #mv ~/cjk-current/texinput/* /usr/share/texmf-local/tex/latex/CJK/
  3. #cd /usr/share/texmf-local
  4. 让dvips支持中文
  5. #echo "p +/usr/share/texmf-local/cjk.map" >> /usr/share/texmf/dvips/config/config.ps
  6. #cp cid-x.map dvipdfm/config/
  7. #cp pdftex.cfg pdftex/config/
  8. #/usr/share/texmf/bin/mktexlsr
复制代码

最后修改/usr/share/texmf/web2c/texmf.cnf,找到下面两行进行修改:
原文:

  1. ... ...
  2. % Device-independent font metric files.
  3. VFFONTS = .;$TEXMF/fonts/vf//
  4. TFMFONTS = .;{$TEXMF/fonts,$VARTEXFONTS}/tfm//
  5. ... ...
  6. % PostScript Type 1 outline fonts.
  7. T1FONTS = .;$TEXMF/fonts/type1//
  8. % PostScript AFM metric files.
  9. AFMFONTS = .;$TEXMF/fonts/afm//
  10. % TrueType outline fonts.
  11. TTFONTS = .;$TEXMF/fonts/truetype//
  12. ... ...
复制代码

改为:

  1. ... ...
  2. % Device-independent font metric files.
  3. VFFONTS = .;$TEXMF/fonts/vf//
  4. TFMFONTS = .;{$TEXMF/fonts,$VARTEXFONTS}/tfm//;/usr/share/texmf-local/fonts/tfm//
  5. ... ...
  6. % PostScript Type 1 outline fonts.
  7. T1FONTS = .;$TEXMF/fonts/type1//;/usr/share/texmf-local/fonts/type1//
  8. % PostScript AFM metric files.
  9. AFMFONTS = .;$TEXMF/fonts/afm//;/usr/share/texmf-local/fonts/afm//
  10. % TrueType outline fonts.
  11. TTFONTS = .;$TEXMF/fonts/truetype//;/usr/share/texmf-local/fonts/type1//
  12. ... ...
复制代码


经过上面的步骤后基本上中文已经可以用了,至于dvips,dvipdf,dvipdfm等使用中文字体可以参考王垠的中文TeX系统安装说明

配置完后latex,dvi,ps,pdf (命令分别为latex,xdvi,dvips,dvipdfm)都可以使用中文字体了,就可以自己制作pdf了。^_^

下面我会写一个脚本,只需要运行脚本就可以配置好所有的……

二、对于安装TeXLive来说,可以参考这篇文档

这里有一份详细的CJK英文文档(.doc).

原文来自
http://linux.chinaunix.net/doc/office/2005-01-20/856.shtml

CJK的运行环境
CJK定义了两个环境,它们是:
(A)CJK*环境。

  1. \begin{CJK*}[字模编码]{编码}{字体族}
  2. ............
  3. \end{CJK*}
复制代码

(B)CJK环境。

  1. \begin{CJK}[字模编码]{编码}{字体族}
  2. ............
  3. \end{CJK}
复制代码

两个环境的区别是:CJK*环境将忽略汉字之间的空格以及换行,只考虑象'\空格'那样受保护的空白。而CJK环境与之相反。根据我们汉字习惯,应该使用CJK*环境。

CJK使用方法
使用CJK的标准方法:

  1. \documentclass{article}
  2. \usepackage{CJK}
  3. \begin{CJK*}{GBK}{song}
  4. %导言部分含有中文
  5. \end{CJK*}
  6. \begin{document}
  7. \begin{CJK*}{GBK}{song}
  8. %正文部分含有中文
  9. \newpage
  10. \end{CJK*}
  11. \end{document}
复制代码


国内的CJK讨论网站 http://www.linuxfans.org/nuke/mo ... =viewforum&f=25
http://www.chinatex.org/bbs/index.asp
http://bbs.ctex.org/cgi-bin/leoboard.cgi
这两个是国内最牛的TeX讨论区了,CCT作者张林波研究员经常在线。 [smile]
 楼主| 发表于 2005-10-15 21:31:42 | 显示全部楼层
关于在SlackWare下TeX CJK的配置和安装,我写了个脚本,放在
这里
欢迎大家测试!

下载后,只需要给执行权限
  1. #chmod +x CJK4slk.sh
复制代码

然后用root执行
  1. #./CJK4slk.sh
复制代码
就可以了,整个过程时间可能会比较长,但是我自己没有测试,如果有什么地方出错,请您在这里发贴或者联系我。
谢谢!

这是针对slackware的,别搞错了啊嘿嘿~

关于配置CJK,还可以参考这里:
http://www.hebl.name/zh/archives/category/soft/tex/page/2/
http://www.hebl.name/zh/archives/tetex30-cjk/
http://blog.codelphi.com/tingxx/archive/2005/09/10/78605.aspx
回复 支持 反对

使用道具 举报

发表于 2005-10-16 14:58:11 | 显示全部楼层
太棒了,收藏并学习之...
回复 支持 反对

使用道具 举报

发表于 2005-11-11 22:48:55 | 显示全部楼层
楼主可以把dvips,dvipdf,dvipdfm的详细配置也贴出来吗?王垠的中文TeX系统安装说明是Texlive 2004的,2004目录管理比较混乱,对于我们新手太难了。而且听说tetex 3.0使用了新的updmap机制,pdftex.cfg失效。所以非常恳切的请求楼主把dvips,dvipdf,dvipdfm的详细配置贴出来。
回复 支持 反对

使用道具 举报

发表于 2005-11-13 21:20:57 | 显示全部楼层
你们都换tetex三了...
我又换回去了
郁闷
回复 支持 反对

使用道具 举报

发表于 2005-12-9 00:35:47 | 显示全部楼层
攪了大半天還是不知錯在那裏,大大們有良方治理它嗎?
謝﹗

kpathsea: Running mktextfm bsmilp18
mktextfm: Running mf-nowin -progname=mf \mode:=ljfour; mag:=1; nonstopmode; input bsmilp18
This is METAFONT, Version 2.71828 (Web2C 7.5.4)

kpathsea: Running mktexmf bsmilp18
! I can't find file `bsmilp18'.
<*> ...ljfour; mag:=1; nonstopmode; input bsmilp18
                                                  
Please type another input file name
! Emergency stop.
<*> ...ljfour; mag:=1; nonstopmode; input bsmilp18                                                

Transcript written on mfput.log.grep: bsmilp18.log: No such file or directory

mktextfm: `mf-nowin -progname=mf \mode:=ljfour; mag:=1; nonstopmode; input bsmilp18' failed to make bsmilp18.tfm.
kpathsea: Appending font creation commands to missfont.log.
-----------------------------------
tsun@visio:~/test$ cat missfont.log
mktexpk --mfmode / --bdpi 600 --mag 0+500/600 --dpi 500 b5ka1242
mktexpk --mfmode / --bdpi 600 --mag 0+500/600 --dpi 500 b5ka1242
mktextfm bsmilp18
mktextfm bsmilp03
mktextfm bsmilp05
mktextfm bsmilp18
mktexpk --mfmode / --bdpi 600 --mag 0+500/600 --dpi 500 b5ka1242
mktextfm gbk74
mktextfm bsmilp18
mktextfm gbk74
mktextfm bsmilp18
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-12-10 08:31:28 | 显示全部楼层
是不是kpathsea的路径没弄好?
回复 支持 反对

使用道具 举报

发表于 2005-12-14 21:21:32 | 显示全部楼层
kpathsea不是和tetex一起打包嗎?
大大們救救我吧

字體不知道為甚麼找不到。
頭痛極了
回复 支持 反对

使用道具 举报

发表于 2005-12-15 11:56:27 | 显示全部楼层
看了半天,还不知道这个咚咚是管啥用的
回复 支持 反对

使用道具 举报

发表于 2005-12-21 18:37:19 | 显示全部楼层
我也发现我有这个问题,~

顶一下吧

Post by kaon
攪了大半天還是不知錯在那裏,大大們有良方治理它嗎?
謝﹗
回复 支持 反对

使用道具 举报

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

本版积分规则

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