ETD 指南/学生/从 LaTeX
一般来说,从 LaTeX 文档生成 PDF 文档有几种可能性。
"Postscript 和 PDF 中最令人困惑的问题之一是处理不同类型的字体。生成 PDF 的应用程序可以通过三种方式处理字体:首先它可以获取整个字体并将其嵌入到文件中;其次它可以制作一个子集;第三,它可以简单地嵌入一些关于字体的摘要信息(例如其名称、度量、编码、类型 - 无衬线、符号等 - 以及关于其设计的线索),并依靠显示应用程序来显示一些合理的东西。对于要在网上发布的文档,最后一种策略是首选,因为它会创建最小的文件。显示应用程序可以通过多种方式再次工作。它可以尝试在本地系统上查找命名的字体;它可以简单地尽可能智能地替换字体;或者它可以使用 Multiple Master 字体来模仿原始字体的外观。"(来自 Goosens;Rahtz:LaTeX 网页伴侣,第 29 页)
dvips 的默认安装使用编码为 300dpi(每英寸点数)位图的固定分辨率字体(.pk 字体)。对于打印来说,这是不明显的;但是,生成的 PDF 文件在缩放到当今的屏幕分辨率(通常为 72dpi)时几乎不可读。这些字体作为 Type 3 字体嵌入到 Postscript 输出中。Acrobat Distiller 无法处理这些字体,因为没有可用的字体描述符。它将它们嵌入到 PDF 文件中并以非常糟糕的方式渲染它们,尽管打印这些文档不会有太大的区别,如果原始分辨率足够高。
因此,有必要为 dvips 程序安装 Postscript Type 1 字体(True Type)。许多常用的字体已转换为 Type 1 字体,例如:所有 Computer Modern 系列字体,所有来自美国数学学会的字体,St. Mary's Road 符号字体,RSFS 脚本字体,TIPA 音标字体和 XY-pic 字体。
Type 1 Computer Modern 字体由弗吉尼亚理工大学提供,并且是本指南的一部分(cmps.tgz / cmps.tar.gz)。这些文件大约 5 MB。要安装这些字体,您必须……
在标准 LINUX 系统上,它们已经安装
1. 将 gz 存档下的所有文件复制到 pfb 目录中,dvips 在其中查找字体,例如 /usr/local/teTex/texmf/fonts。
2. 在目录中,例如 /usr/local/teTex/texmf/dvips/misc 中有一个文件 psfonts.map。请将 cmfonts.map、cyrfonts.map、eufonts.map 和 lafonts.map 文件的内容添加到该文件中。它们与 cmps.tgz 存档一起提供。
3. config.ps 文件通常用于定义分辨率。这无关紧要,因为 dvips 现在使用可伸缩字体而不是位图 pk 字体。
4. 存档中的 afm 和 pfm 目录不被 dvips 使用。
要获得使用 Postscript 字体并且可以转换为 PDF 的 ps 文件,您必须运行以下命令序列
1. latex mydissertation.tex。
2. 如果使用 bibtex,则 bibtex mydissertation.aux。
3. latex mydissertation.tex。
4. dvips -P cmz mydissertation.dvi:这会生成一个可以在打印机上打印或转换为 PDF 的文件 dissertation.ps。
5. 如果系统上安装了 Acrobat Distiller,则“distill mydissertation.ps”会生成一个 PDF 文件:mydissertation.pdf。
生成一个可读的 WWW-readable PDF 只是 PDF 生产的第一部分。生成利用 PDF 的超文本功能并将链接和交叉引用添加到 PDF 文件的 PDF 文件更为复杂。
您可以使用 Windows/Macintosh 下的 Adobe Exchange 软件将链接等添加到已生成的 PDF 文件中,或者您可以使用 Hyperref 包直接从 LaTeX 中生成这些功能。该包由 Sebastian Rahtz 开发,并使用了 Hypertex 项目的结果。
该包扩展了 LaTeX 交叉引用命令(TOC、参考文献等)的功能,以生成驱动程序可以将其转换为超文本链接的 \special 命令。它还为 LaTeX 定义了新命令。
为了使用 hyperref,可以在 LaTeX 文件中使用全局选项
\documentclass[dvips]{article}
\usepackage{hyperref}
为了生成 PDF 信息,可以插入标题和作者信息,这些信息随后在 PDF 文件中显示如下
在 LaTeX 中
\documentclass[dvips]{article}
\usepackage[
pdfauthor={Susanne Dobratz},
pdftitle={ Test of the pdftex Package },
pdfcreator={pdftex},
pdfsubject={electronic publishing in LaTeX},
pdfkeywords={keyword1,keyword2}
]{hyperref}
这在 PDF 中看起来像这样
%PDF-1.2
%âãÏÓ
1 0 obj
<<
/CreationDate (D:191010522170228)
/Keywords (keyword1,keyword2)
/Creator (pdftex)
/Title (Test of the pdftex Package)
/Producer (dvips + Distiller)
/Author (Susanne Dobratz)
/Subject (electronic publishing in LaTeX)
>>
通常的 \label 和 \autoref 命令用于生成超链接。因此,\autoref 命令在 LaTeX 中替换了通常的 \ref 命令。因此,如果应用了 \label,则以下文档结构会自动引用。如果使用了 LaTeX 命令 \tableofcontents,这也将自动生成 Adobe-PDF 书签和指向章节、部分等的超链接。
在 LaTeX 文件中,有一些额外的用户宏可用于生成超链接
\href{url}{text} | 文本用作指向 url 的超链接。此 URL 必须是完整的 URL(例如 http://www.cybertheses.org) |
\hyperbaseurl{url} | 建立一个基本 URL,将其附加到其他指定的 URL,以便更容易地编写 PDF 文档。 |
\hyperimage{image url} | 插入由 image url 引用的图像。 |
\hyperdef{category} {name}{text} |
标记文档的目标区域(文本)并赋予其名称 category.name |
\hyperref{url}{category} {name}{text} |
文本被制成指向 url#category.name 的链接 |
\hyperref[label]{text} | 文本成为指向使用 \label 命令建立的点的链接点(使用符号名称 label)。 |
甚至可以使用 Acrobat 特定的命令,例如菜单选项进行导航等,例如 Sebastian Rahtz 的示例
\usepackage{fancyhdr}
\pagestyle{fancy}
\cfoot{\NavigationBar}
\newcommand{\Navigationbar}{%
\Acrobatmenu{PrevPage}{previous}~
\Acrobatmenu{NextPage}{next}~
\Acrobatmenu{FirstPage}{first}~
\Acrobatmenu{LastPage}{last}~
\Acrobatmenu{GoBack}{back}~
\Acrobatmenu{Quit}{quit}%}
有关更多信息和帮助,我们推荐 Goosens/Rahtz 的著作:LaTeX 网页伴侣。
使用 LaTeX 宏添加的 \special 命令必须由 DVI 驱动程序或查看器解释才能生成 PDF 链接。
以下 DVI 驱动程序受 hyperref 包支持
- hypertex
- dvips - 将 \special 命令写入适合 dvips 的 Postscript
- dvipsone - 将 \special 命令写入适合 dvipsone 的 Postscript
- pdftex - 为 pdftex 编写命令,并直接生成 PDF
- dvipdfm - 将 \special 命令写入用于 Mark Wicks 的 DVI 到 PDF 驱动程序 dvipdfm
- dviwindo - 将 \special 命令写入用于 Y&Y 的 Windows 预览器。它将它们解释为预览器内的跳转
- vtex - 编写 \special 命令,这些命令被解释为 MicroPress 的 HTML 和 PDF 生成 TeX 变体的超文本跳转
PDFTex 是 Tex 的一个变体,它直接生成 PDF 输出。通常,Latex 或 Tex 系统会生成 DVI 输出。PDFTex 也可以生成 DVI 输出。
您可以使用 pdfTex 而不是 LaTex,使用宏包(如 context 或 hyperref 或其他)来编写实际文档。
"当生成 DVI 输出(也可以使用 pdfTex 以及任何其他 Tex 生成)时,部分工作会委托给 DVI 后处理器,要么通过直接向该程序提供命令,要么通过 \specials。由于 pdfTex 直接生成最终格式,因此它必须自己完成所有事情,从处理颜色、图形、超链接支持、字体包含,到页面排版和页面操作。直接的结果是,当使用高级宏包时,用于处理这些功能的宏必须正确设置。
目前所有主流宏包都以某种方式提供 pdfTex 支持。当使用这样的包时,以适当的方式打开此支持是有意义的,否则不能确定是否设置正确。"(来自 pdfTex 用户手册 http://www.tug.org/applications/pdftex/pdftexman.pdf)。
以下主要宏包支持 pdfTex:对于 LaTeX 用户,Sebastian Rahtz 的 hyperref 包标准 LaTeX 图形和颜色包具有 pdfTex 选项Hans Hagen 的 ConTeXt 宏包对 pdfTex 提供了扩展支持
文献和来源:http://www.tug.org/applications/pdftex/ Michael Goosens; Sebastian Rahtz:LaTeX 网页伴侣,Addison-Wesley,1999:ISBN 0-201- 43311-7
下一节:准备转换为 SGML/XML