TeX 与 Pinpoint 的结合

TeX 是用来排版科技文献的,也可以做科技方面的演示文档,例如 ConTeXt 以及 LaTeX 环境中的 Beamer 都具备这方面的能力,即生成 PDF 文件,通过  PDF 阅读器提供的全屏以及简单的演示画面切换等功能进行演示。可能 PDF 阅读器提供的演示画面切换效果不尽人意,而 impressive [1]可以弥补这一缺陷。这种制作演示文档的方式虽然可以胜任一般的科技内容的报告,但是仍然存在一些不足,例如无法实时调整演示内容,难以嵌入视频等。

最近在 linuxtoy 上看到有关 Pinpoint 的介绍 [2]。这个软件以前是 clutter 项目中的一个玩具 [3],最近迁移到了 gnome 的软件仓库。不严肃的说,Pinpoint 是一款制作及放映演示文档的工具。事实上,Pinpoint 的工作方式和 HTML 浏览器、TeX 类似,它自定义了一种标记语言——姑且称之为 Pin 标记,并负责将含有Pin 标记的源文档“翻译”为演示画面。我制作了一份 Pinpoint 演示过程的视频 [4] 可供观摩。

虽然 Pinpoint 的功能比较简单(确切的说应该是简陋),但是它有以下不俗之处:

  • 首先它的全部功能都不庸俗,因为是面向 geek 的,不是面向大众的。我不敢说是面向 hacker 的,因为月光博客正在喷黑和被黑 ing。
  • 可实时修改源文档,修改结果会在演示过程中实时刷新。这意味着我们可以一边做演示,一边做调整。
  • 可将视频文件作为演示画面的背景并播放。

也就是说 Pinpoint 所具有的一些功能恰好是 TeX 演示文档制作方式中所缺乏的。如果能够实现二者的结合,也许可以改善 TeX 演示文档一贯的呆板风格。本文讲述实现二者结合的一种方案。

继续阅读

TeX 的宏 / 第二集

TeX 宏的参数可被构造为可选的。例如对于宏 \xx,假设它接受一个参数,所谓可选参数,是指 \xx[#1]{...}\xx{...} 这两种宏调用方式都成立。当然,要实现这一目的,需要一些技巧,其中最关键的是掌握 \futurelet 的用法。

继续阅读

TeX 的宏 \ 第一集

以 ‘\’ 为开头的 TeX 命令被称为“控制序列”。如果一个控制序列仅由字母组成,将其称为“控制字”。如果一个控制序列由非字母构成,将其称为“控制符”。对于 TeX 用户使用 \def 定义的新的控制序列,将其称为“宏”。

继续阅读