2007年5月28日星期一

中国大陆的网络监控,无语了

趁放假回国一趟,发现 wordpress.com 连不上了。于是在 blogspot 上开了另外一个空间,刚发了两篇帖子又连不上了... 后来在网上搜了一圈,对 GFW 真是 *景仰* 不已... 最终用了个 proxy 解决了。

现在决定还是将 blog 定在 wordpress 吧。主要是那里看得顺眼一点,发帖子舒服一点,latex 也集成得好一点。

附 proxy 的脚本:

function FindProxyForURL(url,host){
if(dnsDomainIs(host, ".blogspot.com")){
return "PROXY 72.14.219.190:80";
}
if(dnsDomainIs(host, ".wordpress.com")){
return "PROXY 72.232.101.41:80";
}
}

我在 wordpress 的家:http://chenfuture.wordpress.com/
我在 blogspot 的家:http://chenfuture.blogspot.com/

这里应该不会再更新的了。或许会作其他用途。

2007年5月27日星期日

让 LaTeX 用上徐静蕾体


早在这字体出来的时候就想给 LaTeX 装上,玩玩新鲜。最近还是太忙了。直接入主题吧。

系统:teTeX(带 CJK),未额外安装中文字体。
TEXMFMAIN 在 /usr/share/texmf,
LOCALTEXMF 在 /usr/local/share/texmf。
这些可以在 /etc/texmf/texmf.cnf 里面看到/设置。

大体步骤(适用于安装任何 TrueType 的中文字体)

  1. 获得字体(ttf格式)

  2. 用 gbkfonts 将 ttf 字体转换成 TeX 能认识的字体

  3. 修改字体的配置文件,让 dvips,dvipdfm 和 pdftex 等程序能顺利地用上新的字体

  4. 更新文件数据库


获得 TrueType 字体


得到徐静蕾体的字体文件 xjlFont.fon(至于怎么弄到,我就不教人干坏事了)。然后用 FontForge 将它导出成 ttf 格式:FZJLJW--GB1-0.ttf。

造出 TeX 认识的字


用前辈写的 gbkfonts 程序将 ttf 字体转换成 TeX 认识的字体。可以不用 gbkfonts,自己一步一步造字。网上到处都是造字的教程。不过既然有现成的程序,何必操心呢?字体取名为 xjl。(实际上 gbkfonts 加了个前缀,叫 gbkxjl。)gbkfonts 对新造出来的字用 gbk 编码。

jchen@peach:~/additional-fonts$ gbkfonts FZJLJW--GB1-0.ttf xjl

造字后产生很多新的目录和文件。将它们拷贝到 $LOCALTEXMF。同时将原本的 ttf 字体拷到 $LOCALTEXMF/fonts/truetype。dvips 和 dvipdfm 不需要这个文件,但 pdftex 需要。

jchen@peach:~/additional-fonts$ sudo cp -R * /usr/local/share/texmf
jchen@peach:/usr/local/share/texmf$ sudo mkdir fonts/truetype
jchen@peach:/usr/local/share/texmf$ sudo mv FZJLJW--GB1-0.ttf fonts/truetype

修改字体配置文件


dvips:创建 dvips 目录,将现成的 config.ps 文件拷过来,增加一行调用 cjk.map 的指令。

jchen@peach:/usr/local/share/texmf$ sudo mkdir dvips dvips/config
jchen@peach:/usr/local/share/texmf$ sudo cp /usr/share/texmf-tetex/dvips/config/config.ps dvips/config/
jchen@peach:/usr/local/share/texmf$ echo "p +cjk.map" | sudo tee -a dvips/config/config.ps

dvipdfm:创建 dvipdfm 目录,将现成的 config 文件拷过来,增加调用 cid-x.map 和 gbkxjl.map 的指令。

jchen@peach:/usr/local/share/texmf$ sudo mkdir dvipdfm dvipdfm/config
jchen@peach:/usr/local/share/texmf$ sudo cp /usr/share/texmf-tetex/dvipdfm/config/config dvipdfm/config/
jchen@peach:/usr/local/share/texmf$ echo "f cid-x.map" | sudo tee -a dvipdfm/config/config
jchen@peach:/usr/local/share/texmf$ echo "f gbkxjl.map" | sudo tee -a dvipdfm/config/config

pdftex:创建 pdftex 目录,将现成的 pdftex.cfg 文件拷过来,增加调用 gbkxjl.map 的指令。

jchen@peach:/usr/local/share/texmf$ sudo mkdir pdftex pdftex/config
jchen@peach:/usr/local/share/texmf$ sudo cp /usr/share/texmf-tetex/pdftex/config/pdftex.cfg pdftex/config/
jchen@peach:/usr/local/share/texmf$ echo "map +gbkxjl.map" | sudo tee -a pdftex/config/pdftex.cfg

在 texmf.cnf 文件的 “TTFONTS =“ 和 “TTF2TFMINPUTS =“ 两行添加 ttf 字体文件的路径:

TTFONTS = .;$TEXMF/fonts/truetype//;$TEXMFLOCAL/fonts/truetype//
TTF2TFMINPUTS = .;$TEXMF/ttf2pk//;$TEXMFLOCAL/fonts/truetype//

重新产生 map:

jchen@peach:/usr/local/share/texmf$ updmap

更新 TeX 的文件数据库


jchen@peach:/usr/local/share/texmf$ sudo mktexlsr .
jchen@peach:/usr/local/share/texmf$ sudo mktexlsr

测试


写一个简单的 tex 文件,保存时采用 gbk 编码。


\documentclass{article}
\usepackage{CJK}
\renewcommand{\normalsize}{\fontsize{20.74}{24.88}\selectfont}

\begin{document}
\begin{CJK*}{GBK}{xjl}\CJKindent

古之学者必有师。师者,所以传道受业解惑也。
人非生而知之者,孰能无惑?惑而不从师,其为
惑也,终不解矣。生乎吾前,其闻道也固先乎吾
,吾从而师之;生乎吾後,其闻道也亦先乎吾,
吾从而师之。吾师道也,夫庸知其年之先後生於
吾乎?是故无贵无贱,无长无少,道之所存,师
之所存也。

\end{CJK*}
\end{document}


对 latex,dvips,ps2pdf,dvipdfm,pdflatex 逐一测试。最终效果如图。

Hello World!

发现中国大陆连 wordpress.com 比较困难,所以还是将 blog 安家在这里吧 :p