注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

蜻蜓点水 举重若轻

君子终日乾乾

 
 
 

日志

 
 

编译中文 Python 文档 (LaTeX2HTML)  

2008-09-25 14:31:53|  分类: 杂七杂八 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
随着 Eurasia 3.0.0 a5 的临近, 文档的跟进变得越来越重要。这趟, 我决定把 Eurasia3 文档做成标准的 Python 模块文档。做法很简单, 先把文档写成 LaTeX, 然后调用 Python/Doc/tools/mkhowto 脚本编译成 HTML 等文档。

直接用 LaTeX CJK 来编译中文文档很顺利, 但是 Python 的 mkhowto 脚本好像对 CJK 支持有些问题。我对调试没什么兴趣, 经过分析, 用一个转换脚本了事。步骤如下。

首先编写 LaTeX 文档, 但是在文档中不要申明使用 CJK 支持。

% 一个 tex 文件
\documentclass{man l}
\title{标题}
\author{作者}
\authoraddress{
    邮箱: \email{xxx@gmail.com} \\
    项目: \url{http://code.google.com/p/xxx/}
}
\date{2008}
\release{x.x.x} % release version
\makeindex
\begin{document}
...
\end{document}


诸如此类, 然后调用 mkhowto 脚本。

/PATH/TO/PYTHON/SOURCE/Doc/tools/mkhowto xxx.tex

这样 Python 的 HTML 文档就生成好了。不过文档里的中文是乱码。然后编写一个转换程序, 把乱码转成 UTF-8 中文。

#!/usr/bin/env python
import os, os.path
dirname = 'HTML文档目录'
for filename in os.listdir(dirname):
    if filename[-5:].lower() != '.html':
        contin

    fullname = os.path.join(dirname, filename)
    data = unicode(unicode(open(fullname).read(), 'utf-8').encode('iso8859-1'), 'utf-8').encode('utf-8')
    fd = open(fullname, 'w')
    fd.write(data)
    fd.close()

原理是先按 utf-8 编码把乱码文件 decode 成 unicode, 然后 encode 到 iso8859-1, 然后再用 utf-8 decode 到 unicode, 最后用 utf-8 输出。这样乱码文件就还原了。
  评论这张
 
阅读(1920)| 评论(4)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017