本文的主要内容有:
- 添加书签和超链接
- 添加元数据和版权信息
- 插入评论
- 合并pdf表格
- 产生可填写的表单
最初,LaTeX以设备独立文件(DVI)格式生成输出。这仍然受到支持,但是,今天存在更新的页面描述语言,例如PostScript(PS)和最流行的可移植文档格式(PDF)。PDF文件格式可以将文字、字型、格式、颜色及独立于设备和分辨率的图形图像等封装在一个文件中。该格式文件还可以包含超文本链接、声音和动态影像等电子信息,支持特长文件,集成度和安全可靠性都较高。在LaTeX中,我们可以利用这些特性来生成可读性更好,更为“酷炫”的文档。
添加书签和超链接
起初,LaTeX被用来在纸上生产高质量的印刷品。由于输出与设备无关,因此可以在屏幕,平板电脑和智能手机上查看结果。通过电子出版,我们可以开始使用一些非常方便的功能。 其中最重要的是,PDF中的超链接允许我们在文档中轻松导航。在本文中,我们介绍如何在PDF中生成超链接。
为了生成书签和超链接,我们需要使用宏包hyperref
。
1 | \documentclass{book} |
编辑元数据
PDF标准包含隐藏描述性数据的字段,例如作者姓名和文档标题。这对于归档目的很有用。互联网搜索引擎也会检查元数据信息。接下来,本文将介绍如何编辑PDF的元数据。
我们仍旧需要使用hyperref
宏包。在你的导言区输入以下内容:
1 | \hypersetup{pdfinfo = { |
如果你需要添加版权信息,还需要使用宏包hyperxmp
:
1 | \hypersetup{ |
通常LaTeX会自动设置某些元数据,例如生成PDF的XeTeX编译器版本。您可以使用\hypersetup
命令覆盖它并设置自己的数据。由于我们使用逗号分隔选项,如果值包含逗号,则需要通过将值括在花括号中来保护值,例如示例中的关键字。
Adobe Systems,Inc.支持用于嵌入元数据的可扩展元数据平台(XMP)。此方法采用可扩展标记语言(XML)格式的属性以嵌入文档中。 hyperxmp
宏包处理hyperref
宏包密钥并添加更多密钥。因此,我们甚至不需要处理XML。
有关所有选项的完整说明,请参阅hyperxmp
手册。你也可以通过在命令提示符中键入texdoc hyperxmp
命令来打开它。
添加评论
如果您参与协同工作,您可能需要在文档中添加注释或注释,以便与您的共同作者共享其他信息,这些信息将从最终版本中删除。PDF标准支持评论,LaTeX也是如此。
为了添加评论,我们需要使用pdfcomment
宏包。
pdfcomment
宏包依赖于以下宏包:hyperref (v6.76a [2007/04/09])
, zref (v1.8 [2007/04/22])
, xkeyval
, etoolbox
, luatex85
, ifpdf
, iflatex
, ifthen
, calc
, marginnote
, datetime2
, refcount
, soulpos
。
你需要在导言区添加如下命令:
1 | \usepackage[author={Alexander Qi},icon=Note,open=true]{pdfcomment} |
你可以使用中括号中的参数来调整评论的样式,pdfcomment
有如下参数:
final
: PDF注释不会排版,也不会影响换行。如果要禁用单个PDF注释,请使用本地选项禁用。draft
: 默认选项,它将包设置为草稿模式,PDF注释将被排版。dvipdfmx
: 如果要使用程序dvipdfmx创建文档,则必须使用dvipdfmx选项。程序会自动识别其他引擎。version
:pdfcomment.sty
的v2.0版引入了一个错误修正,可以在注释命令之前删除不需要的空格。这也可能会改变hoffset等选项的参考点。如果要保留旧文档的旧行为,只需使用version = 1
。否则,默认使用version = 2
。subjec
t: 您可以使用此选项来定义PDF弹出注释的主题。author
: 您可以使用此选项来定义PDF弹出注释的作者。opacity
: 您可以使用选项不透明度来定义PDF注释的不透明度,其值介于0(透明)和1(不透明)之间。如果要打印具有透明度的PDF弹出注释,则必须使用选项open = true
。icon
: 您可以使用选项图标来定义用于PDF文本注释的图形。PDF标准将以下图标定义为必需的: 此外,Adobe Reader和其他一些PDF查看器也支持以下图标:color
: 您可以使用选项颜色以{0.34 0.56 0.12}
(RGB)的形式定义PDF注释的颜色。如果您使用附加软件包xcolor,则可以使用预定义的颜色名称以及可用的可选颜色名称。此外,您可以使用命令\definecolor
来定义自己的命名颜色。具体请查看示例example
。它显示了定义颜色的不同可能性。根据定义,PDF规范允许四个不同颜色空间具有不同数量的颜色值。
# | color space |
---|---|
0 | transparency |
1 | grey scale |
3 | RGB |
4 | CMYK |
此外还有近20个参数,具体的请参阅其文档。
接下来介绍几种pdfcomment
提供的评论命令。
1 | \pdfcomment[<options>]<comments> |
其中\pdfcomment
命令仅仅是在页面的某一个位置创建一个图标,并在鼠标单击后显示评论。
\pdfmargincomment
命令则可以让评论出现在书页边的空白处,虽然更占空间但是可读性非常强。
\pdfmarkupcomment
则可以显示一段被高亮(或者下划线、虚线、删除线)的<markup text>
,并在光标移动到上面是显示评论。若需要调整样式,需要调整参数markup
。
1 | markup=Highlight |
您可以使用命令\pdftooltip
提示注释任何对象,前提是可以将这个对象设置为一个框来测量其大小。因此,您可以顺利地使用带有文字或化学符号的工具提示。当然,它也适用于方程式
您可以使用环境pdfsidelinecomment
以在边距中以两行的形式对页面的完整部分进行注释。
合并PDF文件
组合两个LaTeX文档的源代码有时会非常困难,特别当它们基于不同的类时。但是,组合他们的PDF输出非常简单。
我们需要使用pdfpages
宏包。
1 | \documentclass{article} |
pdfpages
包主要用于将LaTeX文档中的PDF文件完全或部分包含在内。pages = -
选项表示所有页面。我们可以指定更复杂的页面范围,例如pages = {3-6}
,或者pages = {1,3-6,9}
。
产生可填写的表单
PDF文件可以是交互式的。用户可以在打印整个文档之前填写表单。使用LaTeX,您可以生成此类表单。接下来将介绍如何创建一个这样的表单。
我们将再次使用hyperref
包。我们的目标是为调查生成小纸张,作为可填写的PDF表格。黄色背景将它与其他论文区分开来。排版将是横向的。
1 | \documentclass[a6paper,landscape,parskip=half]{scrartcl} |
\TextField[options]{label}
:这个命令给出了一个可填写的文本框。
\CheckBox[options]{label}
:这个命令会打印一个可以选中或取消选中的框。
\ChoiceMenu[options]{label}{list of choices}
:这个命令会生成一个下拉菜单,我们可以在其中选择列表的元素。
其中通过以下代码还加入了一个按钮:
1 | \PushButton[onclick={app.alert(text)}]{label} |
此命令打印一个带有标签文本的按钮。如果单击它,它将通过JavaScript打开一个弹出窗口,显示文本。
您也可以使用其他JavaScript命令。例如,让用户在弹出窗口中输入文本:
1 | \PushButton[width=1cm, onclick = |
甚至可以插入整个程序,以使用和评估输入。您还可以将JavaScript代码绑定到其他操作,例如onmouseover
和onselect
。所有这些使用方法都列在hyperref
文档中。