墘青

LaTeX, Gaussian, ORCA and More...


  • 首页

  • 关于

  • 归档

  • 搜索

充分利用PDF格式

发表于 2019-08-11 更新于 2019-08-12 分类于 LaTeX

本文的主要内容有:

  • 添加书签和超链接
  • 添加元数据和版权信息
  • 插入评论
  • 合并pdf表格
  • 产生可填写的表单

最初,LaTeX以设备独立文件(DVI)格式生成输出。这仍然受到支持,但是,今天存在更新的页面描述语言,例如PostScript(PS)和最流行的可移植文档格式(PDF)。PDF文件格式可以将文字、字型、格式、颜色及独立于设备和分辨率的图形图像等封装在一个文件中。该格式文件还可以包含超文本链接、声音和动态影像等电子信息,支持特长文件,集成度和安全可靠性都较高。在LaTeX中,我们可以利用这些特性来生成可读性更好,更为“酷炫”的文档。

添加书签和超链接

起初,LaTeX被用来在纸上生产高质量的印刷品。由于输出与设备无关,因此可以在屏幕,平板电脑和智能手机上查看结果。通过电子出版,我们可以开始使用一些非常方便的功能。 其中最重要的是,PDF中的超链接允许我们在文档中轻松导航。在本文中,我们介绍如何在PDF中生成超链接。

为了生成书签和超链接,我们需要使用宏包hyperref。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
\documentclass{book}
\usepackage{hyperref}
\usepackage{blindtext}
\title{The use of \textsf{hyperref}}
\author{Alexander Qi}
\date{2019/8/11}
\begin{document}
\maketitle
\frontmatter
\chapter{Foreword}
\blindtext
\tableofcontents
\mainmatter
\chapter{Beginning}
\blindtext
\section{What is Blindtext?}
With this package you can create dummy text. Use \verb|\blindtext| to get some text and \verb|\Blindtext| to get a long text. With \verb|\blinddocument| (or \verb|\Blinddocument|) you get complete dummy documents.
\section{Try it!}
\Blindtext
\backmatter
\chapter{Postscript}
\blindtext[2]
\end{document}

编辑元数据

PDF标准包含隐藏描述性数据的字段,例如作者姓名和文档标题。这对于归档目的很有用。互联网搜索引擎也会检查元数据信息。接下来,本文将介绍如何编辑PDF的元数据。

我们仍旧需要使用hyperref宏包。在你的导言区输入以下内容:

1
2
3
4
5
6
7
8
9
\hypersetup{pdfinfo = {
Author = Alexander Qi,
Title = Adding metadata,
Subject = Final version,
Keywords = {metadata, hyperref, copyright},
Producer = XeTeX 3.14159265-2.6-0.99999,
Creator = TeXstudio,
Version = 2.16.12,
Comment = Follow me on wechat: graphicx}}

如果你需要添加版权信息,还需要使用宏包hyperxmp:

1
2
3
4
\hypersetup{
pdfcopyright = {Copyright (C) 2019 by Alexander Qi.
All rights reserved.},
pdflicenseurl = {https://github.com/Alexander-Qi}}

通常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。
  • subject: 您可以使用此选项来定义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
2
3
4
5
6
7
\pdfcomment[<options>]<comments>
\pdfmargincomment[<options>]<comments>
\pdfmarkupcomment[<options>]<markup text><comments>
\pdftooltip
\begin{pdfsidelinecomment}[<options>]
<comments>
\end{pdfsidelinecomment}

其中\pdfcomment命令仅仅是在页面的某一个位置创建一个图标,并在鼠标单击后显示评论。

\pdfmargincomment命令则可以让评论出现在书页边的空白处,虽然更占空间但是可读性非常强。

\pdfmarkupcomment则可以显示一段被高亮(或者下划线、虚线、删除线)的<markup text>,并在光标移动到上面是显示评论。若需要调整样式,需要调整参数markup。

1
2
3
4
markup=Highlight
markup=Underline
markup=Squiggly
markup=StrikeOut

您可以使用命令\pdftooltip提示注释任何对象,前提是可以将这个对象设置为一个框来测量其大小。因此,您可以顺利地使用带有文字或化学符号的工具提示。当然,它也适用于方程式

您可以使用环境pdfsidelinecomment以在边距中以两行的形式对页面的完整部分进行注释。

合并PDF文件

组合两个LaTeX文档的源代码有时会非常困难,特别当它们基于不同的类时。但是,组合他们的PDF输出非常简单。

我们需要使用pdfpages宏包。

1
2
3
4
5
6
\documentclass{article}
\usepackage{pdfpages}
\begin{document}
\includepdf[pages=-]{flyer}
\includepdf[pages=-]{form}
\end{document}

pdfpages包主要用于将LaTeX文档中的PDF文件完全或部分包含在内。pages = -选项表示所有页面。我们可以指定更复杂的页面范围,例如pages = {3-6},或者pages = {1,3-6,9}。

产生可填写的表单

PDF文件可以是交互式的。用户可以在打印整个文档之前填写表单。使用LaTeX,您可以生成此类表单。接下来将介绍如何创建一个这样的表单。

我们将再次使用hyperref包。我们的目标是为调查生成小纸张,作为可填写的PDF表格。黄色背景将它与其他论文区分开来。排版将是横向的。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
\documentclass[a6paper,landscape,parskip=half]{scrartcl}
\usepackage[margin=0.4cm]{geometry}
\usepackage{xcolor}
\pagecolor{yellow!30}
\pagestyle{empty}
\usepackage{hyperref}
\begin{document}
\begin{Form}
\begin{tabular}{|lr|}\hline
\textbf{Dear \TeX\ user, please help in our survey.} &
\PushButton[width=1cm, onclick =
{app.alert("You may use a pseudonym for the
name.")}]{Info}\\[0.5ex] \hline
& \\
\TextField[width=5cm]{Name:} &
\TextField[width=3cm]{Profession:} \\
& \\
\ChoiceMenu[radio, radiosymbol=6,
width=0.5cm]{Software:\quad}{\TeX\ Live, MiK\TeX}
&\ChoiceMenu[combo, width=3cm]{Editor:}%
{TeXworks,TeXstudio,TeXmaker,TeXshop,
WinEdt,Kile,Emacs,vi} \\
& \\
Membership in: \hfill\CheckBox[width=0.5cm]{TUG}\hfill
\CheckBox[width=0.5cm]{DANTE e.V.} &
\TextField[width=3cm]{Other:}\\ & \\ \hline
\end{tabular}
\par
\textbf{Notes:}
\par
\TextField[multiline, width=0.94\paperwidth,
height=10\baselineskip]{ }
\end{Form}
\end{document}

\TextField[options]{label}:这个命令给出了一个可填写的文本框。

\CheckBox[options]{label}:这个命令会打印一个可以选中或取消选中的框。

\ChoiceMenu[options]{label}{list of choices}:这个命令会生成一个下拉菜单,我们可以在其中选择列表的元素。

其中通过以下代码还加入了一个按钮:

1
\PushButton[onclick={app.alert(text)}]{label}

此命令打印一个带有标签文本的按钮。如果单击它,它将通过JavaScript打开一个弹出窗口,显示文本。

您也可以使用其他JavaScript命令。例如,让用户在弹出窗口中输入文本:

1
2
3
\PushButton[width=1cm, onclick =
{app.response("What was your original motivation
to start with LaTeX?")}]{Question}

甚至可以插入整个程序,以使用和评估输入。您还可以将JavaScript代码绑定到其他操作,例如onmouseover和onselect。所有这些使用方法都列在hyperref文档中。

任之 wechat
订阅公众号以获取最新内容!
关于LaTeX表格的高阶技巧
什么是Gaussian?
  • 文章目录
  • 站点概览
任之

任之

Personal blog featuring tutorials for LaTeX, Gaussian and ORCA in Chinese.
32 日志
4 分类
4 标签
GitHub E-Mail
  1. 1. 添加书签和超链接
  2. 2. 编辑元数据
  3. 3. 添加评论
  4. 4. 合并PDF文件
  5. 5. 产生可填写的表单
© 2020 任之
Alexander Qi 专属
|
闲言碎语