翻译Sage文档的准备工作
打算翻译一下Sage的文档。Sage的文档完全是用reStructuredTEXT写成的,由Sphinx管理,对应的翻译就行了,但是为了与原文档保持相同的风格,还是折腾了好久。这里记录一下。
环境是:Ubuntu+Sage 4.2.1+CTeXLive 2008。以翻译Sage Tutorial为例,需要做以下准备工作。(下面用$SAGE代替sage的主目录)
- 转到$SAGE/devel/sage-main/doc/目录;
- 在common目录中的builder.py文件中,找到
LANGUAGES = ['en', 'fr']
修改为:
LANGUAGES = ['en', 'fr', 'zh']
- 新建zh子目录,并将en子目录下的tutorial目录复制到刚才新建的zh目录中 (如果是翻译其他文档,复制相应的目录);
- 修改zh目录下的conf.py文件:
- 在
import sys, os
这一行后 添加 两行:
reload(sys) sys.setdefaultencoding('utf8') - 在conf.py文件最后添加:
latex_preamble='\usepackage{ctex}'latex_premble+='\usepackage{ctex}\n\punctstyle{CCT}'
- 在
- 修改$SAGE/local/lib/python2.6/site-packages/Sphinx-0.6.3-py2.6.egg/sphinx/texinputs/Makefile文件,将其中的“pdflatex”全部替换为“xelatex”(共有5处);
- 将$SAGE/local/lib/python2.6/site-packages/Sphinx-0.6.3-py2.6.egg/sphinx/writers/latex.py中的“\\usepackage[utf8]{inputenc}”中的“utf8”修改为“latin1”,即“\\usepackage[latin1]{inputenc}”。
如果上述操作正常的话,就可以开始翻译了。将zh/tutorial下的所有.rst 文件翻译为中文后,即可进行编译。编译的方法如下:
- 转到$SAGE目录;
- 查看所有文档列表:
./sage -docbuild -D
此时应该可以看到“zh/tutorial”选项;
- 编译:
./sage -docbuild zh/tutorial html ./sage -docbuild zh/tutorial pdf
编译结果会在编译信息最后一行提示。
2010年6月21日更新:
以上是基于Sage 4.3所做的修改,今天下载了4.4.3,情况有些变化:
- 以上的第4、6步完全不需要了,因为相关的配置转移到其他文件中去了
- 修改$SAGE/devel/sage-main/doc/common/conf.py文件中两个地方:
-
latex_elements['inputenc'] = ‘\\usepackage[utf8x]{inputenc}’
改为
latex_elements['inputenc'] = ‘\\usepackage[latin1]{inputenc}’ - latex_elements['preamble']那一行下面再添加一行:
latex_elements['preamble'] += ‘\usepackage{ctex}\n\punctstyle{CCT}\n’
-
latex_elements['inputenc'] = ‘\\usepackage[utf8x]{inputenc}’