TeX星图制作工具PP3

以前我一直用 Cartes du Ciel和 Sky Map 生成星图,很方便但谈不上美观,即使早就有了十几等的电子星表,在看到8.5等的纸版《世纪天图》时仍不免心动……前几天在天文博客一个站点上瞥见下面这幅双子座星图时,我终于恢复了对电子星图的信心。

PP3绘制的双子座

PP3是 Parvum Planetarium (拉丁语,意为“小型天图”)version 3 的缩写,作为TeX的扩展工具,它提供了一个简单的自动生成TeX 文件的途径,同时又保持了极大的定制自由度。但是,不要把它当作星图软件,它无法告诉你今晚10点天上会有些什么东西,它只是一个可以生成矢量星图的排版工具!其实何勃亮同学早在2005年就介绍过这个工具,不过他那时给的样图看起来与其他工具的效果差别并不大,我也就没有留意,现在看到的这一组被wiki采用的典雅风格,其实用的仍是当年的版本,关键是怎么用。

如果你确实有制作星图的热情,那么请往下看:

假设你已经装好了CTeX 或者 TeXLive,直接解压PP3至任意目录,复制examples目录下的模板文件 wiki.tex ,默认配置文件 wiki.pp3 和 任意星座脚本(下面以狮子座 leo.pp3 为例)到主目录,然后运行cmd,cd到pp3所在目录,执行pp3 leo.pp3 ,一切正常的话,这样就应该直接出PDF文件了;但如果要输出中文,还要改几个地方,首先要在模板文件wiki.tex中添加CJK宏包支持,添加如下代码:

\usepackage{CJK}
\AtBeginDocument{\begin{CJK*}{GB}{gbsn}}
\AtEndDocument{\end{CJK*}}

我这里使用系统默认的宋体,编译比较简单,不过字形就没有上面那副好看了;然后将PP3脚本文件中的各星座名称改为中文,若名称中含有空格需要在半角引号内引用,中文没有这个问题,为了方便编辑,我写了一个EmEditor的js宏,能自行替换这里的星座名,支持全名和缩写,点此下载;亮星名被作为全局设置保存在 wiki.pp3中,直接修改即可,重新运行pp3输出结果如下:

生成的PDF文件建议用Acrobat浏览,Foxit会将虚线都显示为实线,而其星点不够圆……接下来就是定制细节了,帮助文件写的很详细,我这里只介绍几个常用的设置
filename include wiki.pp3
调用wiki全局设置,如果存在重复定义,则以当前文件为准
line_style nebulae style,定义星云样式(可选dashed,dotted,默认solid)
color background red green blue,设置背景颜色,按红绿蓝顺序输入
switch milky_way on/off ,是否显示银河,wiki模板中显示为蓝色色块
set faintest_star_magnitude magnitude,设置最暗恒星星等
set box_height/box_weight,控制图像大小,单位为厘米
set fontsize size,定义正常字体大小,默认为10号
set constellation LEO,设置图中高亮星座,需用缩写
……
如果想制作中国古星图的话,可以仿照wiki.tex在一个全局文件中逐个指定亮星名,按Flamsteed 编号或Henry Draper编号调用均可,然后用filename constellation_lines filename 从相应文件中读取星座连线,再到脚本文件中输入星宿的名称与位置即可。技术上的内容就这么多,剩下的是艺术……

订阅评论
提醒

3 评论
最旧
最新 最多投票
内联反馈
查看所有评论
gerry
2008 年 3 月 27 日 16:48

如果不能自动生成pdf,编译顺序为latex->dvips->ps2pdf(gs)
另外,该软件目前只支持等距方位投影(equidistant azimuthal projection),两极会有形变。

程民权
2008 年 9 月 27 日 16:01

我叫程民权, 我现在急着用Latex2e来做一个英文的PPT,请问我该怎么做?
或你做过没有,能不能发给我一份让我学一下?
谢谢