/usr/bin/impressive-gettransitions这个 python 写的程序很小,主文件就是那个 py,另有一个 impressive-gettransitions 是用于从 beamer 的 tex src 里面提取 info 生成我们需要的配置的。
/usr/share
/usr/share/impressive
/usr/share/impressive/impressive.py
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/impressive.1.gz
/usr/share/man/man1/impressive-gettransitions.1.gz
/usr/share/doc
/usr/share/doc/impressive
/usr/share/doc/impressive/demo.pdf
/usr/share/doc/impressive/impressive.html
/usr/share/doc/impressive/copyright
/usr/share/doc/impressive/demo.tex.gz
/usr/share/doc/impressive/changelog.Debian.gz
/usr/share/python-support
/usr/share/python-support/impressive.dirs
/usr/bin/impressive
说起来想法很简单,使用 PyOpenGL 使得在 python 中可以调用 OpenGL,PyGame 是 SDL 库(快速显示),PIL(Python Imaging Library)处理图片,Xpdf 或 GhostScript 渲染 PDF,pdftk 获取 PDF 元信息、xdg-utils 用于呼叫外部的程序(如 Email)以及 MPlayer 播放声音视频。
启动非常方便,直接 impressive ur.pdf 就可以了,这里先介绍特色:
- overview,按 tab,在回答问题的时候快速定位所需位置
- hightlight box,鼠标拖动,立即看到高亮区域,右键点击去掉
- spot light,轻按 enter,追光灯效果,+- 调整圈的大小
- 黑白屏,B/W
- L 返回浏览顺序的前一页(不是物理上的前一页)
- S 保存高亮框、快捷键到 info。
- T 显示 timer,R 重设 timer。
- Z 进入 200% 放大,可用鼠标邮件 panning。
- [] 调整 gamma,{} 调整 black level。
- Fn 和 Shift+Fn,用于跳转到某页、记住某页。
更多的操纵来自命令行参数,
- -a 指定自动翻页的时间间隔。
- -A 指定 render 时候的比例(对宽屏)。
- -b 不在后台 caching,而在一开始就处理完。
- -B hightbox 等 fade 的时间。
- -c 使用 caching 的方式,none 不进行,memory 在内存里,disk 使用一个临时文件,persistent 使用固定的文件。
- -C 指定 cursor。
- -d 指定一个 presentation 的长度(将显示一个 progress bar 在下面)。
- -D 指定 mouse 隐藏的 idle 时间。
- -f 全屏或者非全屏。
- -g 指定 render 出来的大小,如 800x600。
- -G 调整 Gamma 等。
- -i 开始的页面编号。
- -I 指定 info。
- -l 列出所有的 transition。
- -L 指定 OSD layout。
- -M 显示 timer 用 minite 做单位。
- -o 产生文件渲染输出的路径。
- -O 选择 overview 自动选择模式,off 关闭,first 选择第一页,last 选择最后。
- -p 指定起始和终止页。
- -r n 转动 n 个 90 度。
- -s 缩放图片。
- -S OSD 字体大小。
- -t or -T transition 时间,使用的类型。
- -u poll 使用的 pdf。
- -w 到尾页回头。
- -Z zoom 的时间。
- --cachefile 指定 cache 文件。
更加细腻的控制来自 .info 文件。主要分 PageProps 和一些全局的,稍微重要一点的就是指定 title(显示在 overview 里面)、transition(可以用更花的渐变)、transtime(单独设定渐变时间)、overview(是否显示在 overview)、skip(presentation 时跳过)、boxes(highlight box 的坐标)、timeout(设定停留时间)、comment(显示时的注释)、sound(音频文件)、video(视频文件)、progress(进度条显示否)、reset(是否重置 timer)、rotate 和通过一些事件(OnEnter、OnLeave、OnEnterOnce、OnLeaveOnce)和按键(key)触发 python 函数。