使用 ConTeXt 裁剪既有 PDF 文档页面
上一集 [1] 介绍了使用 ConTeXt 调整既有 PDF 文档的元数据,所用的方法是将既有 PDF 文档的全部页面作为 ConTeXt 生成的 PDF 文档的插图。本集也利用了类似的方案来实现既有 PDF 文档的页面裁剪。
使用 ConTeXt 修改既有 PDF 文档的元数据
昨天将 GNOME 升级到了 3.2,因此体验到了一些新功能,例如 gnome-documents 这个工具可用来整理我收集的电子文档 [1],但是在我使用这个工具的时候发现了一个问题,有一部分 PDF 文档的元数据(Metadata)非常不堪。
ConTeXt MkIV 的 Pinpoint 模块增加了备注命令
在 ConTeXt Mkiv 的 Pinpoint 模块中为“Pinpoint 的演讲者模式”增加了 \pincomment 命令,见:https://github.com/liyanrui/pinpoint/commit/75296a7bb4f280e85a84fdc32add46cf064c587b
ConTeXt 内嵌文本的逐步显示
在 [1] 中讲述了基于 Buffer 的 ConTeXt 逐步显示效果的实现方案。这种方案因为依赖 Buffer 的逐级继承,所以只能满足尾部内容追加式的逐步显示需求,而无法实现内嵌文本逐步显示效果。
所谓内嵌文本的逐步显示,可以通过一个简单的示例获得直观认识。假设一份 PDF 文档,它的第一页内容如下图所示:
第二页内容如下图所示:
这两页内容在 PDF 浏览器中全屏切换时,便可以产生内嵌文本的逐步显示效果。
本文采用文本透明颜色与非透明颜色的切换实现上述内嵌文本的逐步显示。这样虽然很笨拙,但是好在几乎所有的 PDF 阅读器都支持这一方案。
使用 ConTeXt 的 buffer 制作逐步显示效果
用过 LaTeX Beamer 宏包的同学应当知道 Beamer 在制作步骤列表时,可将一块完整的内容分布于多个演示文档页面,以实现演示过程中逐步显示的效果。
ConTeXt 也有一些模块可以实现逐步显示效果,例如 Raw Steps 模块 [1],还有 Hans Hagen 基于 PDF 的 JavaScript 实现的 s-pre-60.mkiv 和 s-pre-61.tex [2]。前者与后者的详细的功能比较见 [3],简而言之,前者与 LaTeX Beamer 相似,通过静态页面的切换实现内容的逐步显示;后者是通过 PDF 内嵌的 JavaScript 程序控制页面元素的显示与隐藏。虽然后者可以充分利用 PDF 的性能,但现在也许只有 Adobe Reader 可以很好的支持 PDF 中嵌入 Javascript,作为 Linux 环境中的 Evince 用户,我对后者伤不起啊,因此我投前者一票。但是很不幸,Raw Steps 年久失修,现在基本上废掉了,其作者也不知所踪,而我现在还不具备修复它的能力。不过 Raw Steps 的原理很简单,它主要是利用 ConTeXt 的 buffer 功能实现的。
ConTeXt MkIV 的 pinpoint 模块
心怀文档 [1] 散发的余热,这两天折腾了一下 ConTeXt 与 Pinpoint 的结合,成果便是 pinpoint 模块,并在 github 上建立了一个项目:https://github.com/liyanrui/pinpoint
ConTeXt 与 Pinpoint 的结合效果如以下视频所示。
[1] http://garfileo.is-programmer.com/2011/6/20/using-pinpoint-with-tex-for-presentation.27455.html
ConTeXt 模块参数的获取
本文讲述了 ConTeXt 模块参数的传入与获取方法。
抄录(Verbatim)
对于程序猿而言,如果使用 ConTeXt 进行文档排版,那么它提供的 type 和 typing 机制在程序代码抄录(程序代码排版)方面较为出色。
页面布局控制
声明:可转载,可修改,也可以不注明作者和出处。
本篇介绍如何使用 ConTeXt 产生我们所期望的页面布局。
前面还有一系列文章:
第一篇:序幕有点长
第二篇:这就是 ConTeXt Minimals
第三篇:不仅仅是为了中文
第四篇:那年挖的坑,今年开始填
第五篇:ConTeXt 文稿的物理结构
第六篇:ConTeXt 文稿的逻辑结构
ConTeXt 文稿的逻辑结构
声明:可转载,可修改,也可以不注明作者和出处。
阅读本篇之前,需要你确认是否已对上一篇文章所讲的“ConTeXt 文稿的物理结构” 有所了解。ConTeXt 文稿的物理结构表示的是 ConTeXt 文稿的自身结构,而本文所讲述的 ConTeXt 文稿的逻辑结构表示的是所排版文档的结构,例如文档的标题和段落。ConTeXt 文稿的逻辑结构可被 ConTeXt 文稿的物理结构中的任何一种结构所包含。