Debian GNU/Linux 中文配置,以及 LaTeX 和 CTeX 跨平台通用

3 篇文章 0 订阅
1 篇文章 0 订阅

首先:本文转载自http://blog.sina.com.cn/s/blog_a179ec880101565d.html,在此对其贡献者夏志军表示感谢


1,概说
从2008年5月到现在,使用Linux也有好几年了。
从易用的Ubuntu到简洁的Debian,也已经转换过来了。
从最初到处寻找帮助手册去不知所以然地解决问题,到今天大概知道所以然。
所以应该写点东西,总结自己的被帮助,也提供一些帮助给后来者。

2,安装
Debian GNU/Linux 的安装没有多大的难处,学习若干基础知识,
参照安装手册和相关教程,便可以顺利地完成。
难处在于:如何中文化,以及如何跨平台通用化,尤其和Windows平台通用化。

3,英文环境中文化
在安装的时候直接默认英文安装环境即可,
待安装完成之后,打开Synaptic Package Manager,输入关键词chinese,
从Package的名称和对它的Description可以大概看出是否需要安装它,
选中之后,点击Apply即可完成中文化安装。
备注:a, gs-cjk-resource需要选中,它和LaTeX密切相关;
b, ibus-pinyin需要选中,它是输入法;
c, cmap-* 之类的需要选中,它和LaTeX密切相关;
d, 在选中的过程中注意“GB”、“GBK”、“zh”之类的关键字眼,它和中文明显相关。

4,LaTeX安装
在Synaptic Package manager 中输入关键词latex,
勾选相关组件,点击Apply完成安装。
对于可疑组件,不妨勾选安装,大不了之后对其卸载即可。

*,打断一下
完成这些安装之后,Debian GNU/Linux 的中文化就算完成了:
在完全英文环境中,正常地使用中文了。
其他语言环境的安装类似如上步骤。

存在的问题是:Linux 的字体没有Windows好看,如何添加Windows字库?
原因在于几乎所有的商业平台都在Windows平台下工作,微软已经完成它的习惯培养。
或许Windows的字体真的很好看,或许只是我们适应了它。
GNU/Linux 原则上不容许非自由软件加入其中,Windows字体原则上我们需要购买。
如何抉择?是自由一点呢,还是遵守商业的知识产权保护?
还好我们是自由的,可以自由地决定。
我采用了实用的方法,注意,不是实用主义,而只是实用。

5,添加Windows字体
进入命令行模式,并切换成root用户。
进入字库目录,
cd /usr/share/fonts/truetype/
为Windows字体单独建立目录,名称自定,如,WinXP, WindowsFonts,
mkdir /usr/share/fonts/truetype/WinFonts
为保证其他用户可以访问这些字体,需要设置目录访问权限,
chmod 755 /usr/share/fonts/truetype/WinFonts
把所有的Windows字体拷入其中,进入WinFonts目录,修改文件权限,
cd /usr/share/fonts/truetype/WinFonts
chmod 644 /usr/share/fonts/truetype/WinFonts/*
更新系统数据库,使之能识别和采纳,
mkfontscale
mkfontdir
fc-cache -fv
到此,便可以使用Windows字体了,进OpenOffice.org-Writer看看就知道了。
备注:为了不引起混乱,命令行中文件和目录采用绝对路径。

6,LaTeX 使用Windows字体
将前次安装的字库目录,在texmf目录下建立软链接,以节省空间,
ln -s /usr/share/fonts/truetype/WinFonts/usr/share/texmf/fonts/truetype/WinFonts
猜测:理论上讲,不需要重新安装字库到texmf目录,
LaTeX 可以寻找到系统的字库目录,但是dvipdfmx 好像只在texmf目录中搜寻相关字体。

貌似LaTeX在生成pdf文件的时候,需要pk字体。原理暂时未知。
单独建立另外一个文件夹,以供gbkfonts去生成pk字体。
mkdir /usr/share/texmf/fonts/truetype/WinFonts-gbk
将Windows字库中以sim和SIM开头的六个字体拷入其中,将后缀统一改成.ttf,
后退至目录texmf
cd /usr/share/texmf
运行gbkfonts,生成pk字体,
gbkfonts /usr/share/texmf/fonts/truetype/WinFonts-gbk/simfang.ttffang
gbkfonts /usr/share/texmf/fonts/truetype/WinFonts-gbk/simhei.ttfhei
gbkfonts /usr/share/texmf/fonts/truetype/WinFonts-gbk/simkai.ttfkai
gbkfonts /usr/share/texmf/fonts/truetype/WinFonts-gbk/SIMLI.ttfli
gbkfonts /usr/share/texmf/fonts/truetype/WinFonts-gbk/SIMSUN.ttfsong
gbkfonts /usr/share/texmf/fonts/truetype/WinFonts-gbk/SIMYOU.ttfyou
备注:fang,hei,kai,li,song,you,分别对应 仿宋,黑体,楷书,隶书,宋体,幼园。
如何命名,依据习惯和通用而定,即LaTeX+CJK中如何调用,
如,这里采用fang,那么在LaTeX+CJK 中使用命令\fang{} 来调用仿宋字体,
若是采用fs,则需要使用命令\fs{}。其他类似。
待gbkfonts运行完成后,运行
texhash
更新tex数据库。
最后(理由暂时未知)
updmap-sys --enable Map cjk.map
即告完成。

备注:与texmf 等同的一个文件夹是 texmf-texlive,同样是tex的数据库。
区别暂时未知。
猜测:tex有很多分支,如autex,tetex,texlive,、、、,
texmf是总的数据库,各个分支必须访问。
为保险起见,以上对texmf的动作,对texmf-texlive重做一遍。

*,打断一下
到此为止,LaTeX的中文配置已经完成。
对一个以gbk编码的tex源文件,依次使用命令latex,bibtex,latex,latex,dvipdfmx,
便可以顺利生成pdf文档。
备注:bibtex自动生成的.bbl文件仍然还是utf8编码,打开重新以gbk编码保存即可。

问题是:如此生成的pdf,可以正常的打开和阅读,但是不能复制,复制会出现乱码。

7,pdf复制粘贴出现乱码的解决
locate cid
寻找到cid-x.map文件的位置,进入它所在的目录,并备份
cp cid-x.map cid-x.map
在cid-x.map中添加如下字段:

%% Microsoft Fonts
%% added by rui at 2007-07-18
%gbksong@UGBK@ UniGB-UTF16-H STSong-Light
gbkhei@UGBK@ UniGB-UCS2-H simhei
gbkkai@UGBK@ UniGB-UCS2-H simkai
gbksong@UGBK@ UniGB-UCS2-H simsun

utf8song@Unicode@ unicode simsun
utf8hei@Unicode@ unicode simhei
utf8kai@Unicode@ unicode simkai
utf8fs@Unicode@ unicode simfang
utf8li@Unicode@ unicode simli
utf8you@Unicode@ unicode simyou
utf8xinwei@Unicode@ unicode stxinwei
utf8zhongsong@Unicode@ unicode stzhongs
utf8caiyun@Unicode@ unicode stcaiyun
utf8fangsong@Unicode@ unicode stfangso
utf8xihei@Unicode@ unicode stxihei
utf8xingkai@Unicode@ unicode stxingka

utf8songsl@Unicode@ unicode simsun -s .167
utf8heisl@Unicode@ unicode simhei -s .167
utf8kaisl@Unicode@ unicode simkai -s .167
utf8fssl@Unicode@ unicode simfang -s .167
utf8lisl@Unicode@ unicode simli -s .167
utf8yousl@Unicode@ unicode simyou -s .167
utf8xinweisl@Unicode @ unicode stxinwei -s .167
utf8zhongsongsl@Unicode@ unicode stzhongs -s .167
utf8caiyunsl@Unicode@ unicode stcaiyun -s .167
utf8fangsongsl@Unicode@ unicode stfangso -s .167
utf8xiheisl@Unicode@ unicode stxihei -s .167
utf8xingkaisl@Unicode@ unicode stxingka -s .167

备注:cid-x.map存在于两个地方,
/usr/share/texmf/fonts/map/dvipdfm/cid-x.map
/usr/share/texmf-texlive/fonts/map/dvipdfmx/cid-x.map
重点是修改后一个,因为在生成pdf文档的时候,dvipdfmx替代了dvipdfm 。
原因未知。
另外,从添加的字段中可以看到仿宋用 fs 表示的,而我用的是 fang ,
这可能是我在运行命令的时候会出现错误提示的原因,我几乎不用仿宋字体,
所以暂时忽略,没有亲手去试验将gbkfonts命令中的fang改成fs,用以验证对错。

*,打断一下
至此,pdf可以复制,而且没有乱码了。
问题是:在latex运行中会提示缺宏包错误。

8,CTeX和LaTeX通用
在Windows平台下有CTeX,很多人使用它,
并在其下开发了适应中国自己的文字的一些排版命令。
在自己的目录下建立texmf目录,
将Windows下的CTeX 安装中的配置文件,拷入其中,运行texhash 即可。

*****************
至此,全部完成了。
CTeX 和 LaTeX 的源代码可以互换,不会出现异常;
各自生成的pdf ,查看和复制其中的文字,也正常了。

出现任何问题都得记住:GBK编码,Windows字体;然后再百度。
简要说来,就是GBK编码和UTF8编码的冲突,闭源字体和开源字体之间的冲突。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值