面向秘书的 LaTeX

作者:Jacek Artymiak

生活是不公平的,不是吗?您学会了如何使用 Microsoft Word 或 Corel WordPerfect,却发现自己从事的工作要求您必须使用 LaTeX。这是什么东西?它可以用于任何实际用途吗,例如写信、备忘录、报告、发送传真或打印价目表?当您开始使用它时,这些是首先出现在脑海中的一些问题。幸运的是,使用 LaTeX,排版一本充满数学公式的 1000 页的书籍,与准备一封简短的信件或价目表一样容易。我们将在下面讨论这些实际的办公室应用。

不是文字处理器

关于 LaTeX 最常见的误解可能是将其视为某种文本编辑器或文字处理器。它既不是这些工具。让我解释一下。当您在 Microsoft Windows 或 Macintosh 上启动 Word 或 WordPerfect 时,它会打开一个窗口,显示按钮、菜单和一个空白区域,您键入的内容会立即显示在屏幕上,并且可以随意编辑。为了显示或打印文档,文字处理器使用某种“引擎”,根据您选择的字体和样式,将简单的击键转换为美观的类型。LaTeX 可以被认为是这样一种引擎,它在一端读取纯文本文件,并将其转换为专业的文档,并以其自己的格式 DVI 保存在另一端。

尽管 LaTeX 只是一个 纯粹的 排版系统(它不是像 Microsoft Publisher、Adobe PageMaker 或 QuarkXPress 这样的可视化 DTP 软件包),并且您处理的文档必须使用纯文本编辑器创建,但在 LaTeX 中生成的文档质量通常远优于 Word 自身的努力。但是,由于需要手动向文本添加控制命令,学习在前一种系统中排版文档可能比在后一种系统中排版文档更难,有些人会觉得这令人困惑。您可能会认为这是一个不必要的负担,但您应该记住,实际上,所有文字处理器和文本编辑器都会向您键入的文本添加控制命令——只是它们不会让我们看到。

键入您的第一封信

学习 LaTeX 的最佳方法是通过示例,因此请登录您的系统(如果您不知道 登录 是什么意思,请尝试一些 Linux 入门书籍)并键入以下命令

emacs businessletter.latex

文件扩展名是可选的,可以是您喜欢的任何名称,尽管使用 .latex 或 .tex 是一个好习惯,因为它使文档更容易查找。

按下 ENTER(或 RETURN)键后,您应该看到 Emacs 的全部功能——两个工具栏和一个等待填充文本的空白区域。\ 字符标记 LaTeX 命令的开始,因此请记住也将其放入,并且不要对 Emacs 窗口最右列不时出现的 \ 感到困惑——它在那里是为了向您显示特定文本行比窗口宽度长并且已被换行。让我们键入清单 1 中显示的行。

清单 1

要保存您刚刚键入的内容,请按 CTRL-XS 键。您应该在窗口底部看到一条消息,显示 Wrote .../businessletter.latex,以告知您您的文档刚刚已保存。如果您不小心按错了键,并且 Emacs 开始抱怨并向您发出哔哔声,则按 CTRL-G 几乎总是可以让您摆脱困境。

基本 LaTeX 命令

如您所见,示例信件中散布着许多奇怪的命令和花括号。除了使文档的可读性降低之外,它们还告诉 LaTeX 如何格式化它。不幸的是,您至少需要学习其中的一些。在您阅读以下段落时,请参考清单 1,了解每个命令在实践中是如何使用的。

首先是强制性的 \documentclass[...]{...} 命令,它不像看起来那么可怕,它只是一种晦涩的方式来告诉 LaTeX 您要打印的文档类型。它可以是以下之一:articlebookletterreportslides。无论您选择哪一个,都将相应的单词放在花括号之间。

方括号括起来的是更具体的选项,用于设置纸张尺寸(可用尺寸包括 a4papera5paperb5paperletterpaperlegalpaperexecutivepaper)。

可以放在那里的其他信息包括页面方向(landscape,对于打印演示幻灯片或 portrait 很有用)、主要字体大小(例如,10pt12pt 等)和许多其他选项。

\frenchspacing 命令解决了一些与设置句点和缩写词(如 Ms.)后的下一个单词之间或句子末尾的空格量有关的排版问题。我建议您始终将其放在文件的开头,也许就在 \documentclass[...]{...} 命令之后。纯粹主义者肯定会抱怨这个建议,但是使用 \frenchspacing 会自动使文档看起来更好,而无需您担心它是如何发生的。但是,如果您想“政治正确”,请始终在以句点结尾的缩写词和下一个字母、数字或单词之间放置一个 ~,例如,Ms.~Green 而不是只键入 Ms. Green

设置这些选项后,您将需要使用 \address{...} 命令指定发件人的地址;每一行都应以 \\ 分隔——这种方法也用于许多其他命令。如果您使用官方公司信头,则可以省略此项。

LaTeX 会自动将当前日期放入信件中,但您可以使用 \date{...} 命令指定不同的日期。

签名文本应放入 \signature{...} 命令中。

要让程序知道您的信件从哪里开始,请使用 \begin{document}\begin{letter} 命令。紧随后者之后,在花括号中插入收件人的地址。然后,使用 \opening{...} 命令开始问候语,然后开始写您的信件。根据需要写多少写多少,用空行分隔每个段落(您需要按两次 ENTER 键)。

在信件末尾,使用 \closing{...} 命令,如果需要,添加 \cc{...} 表示“抄送给:”,\encl{...} 表示“随附物品:”,以及 \ps{...} 表示附言。

您应该使用以下命令结束信件文件:\end{letter}\end{document}。就这样。您可以按照上述说明保存它。

当您需要键入多封信件时,可以使用一个技巧来节省一些工作。可以在同一文件中开始另一封信件,只需将 \begin{letter}{...} 和上面提到的其他命令放在 \end{letter}\end{document} 命令之间即可。LaTeX 将自动使用您在文件开头指定的签名、日期和发件人地址(这就是为什么您必须将签名文本放在文件顶部的原因)。

将文本转换为排版

要启动 LaTeX,请在提示符下键入此命令

latex businessletter.latex

按下 ENTER 键后,LaTeX 将打印一些神秘的消息,其中两个最重要:Output written on businessletter.dvi...Transcript written on businessletter.log. 您的信件输出到 DVI(设备无关)文件,这是一种通用格式,您可以将其转换为传真、PostScript 或打印机文件。

如果出现问题,LaTeX 有时会在工作中途停止并向您寻求帮助。发生这种情况时,请记下找到错误的行号,然后不断点击 ENTER 键,直到看到“Transcript written on”消息或命令提示符。然后运行 xdvi,并在视觉上找到错误发生的位置后,返回 Emacs 并更正您的错误。通常它会是一个缺失的括号或拼写错误的命令。

预览文档

在打印文档之前,查找错误并检查文档外观的最佳方法是使用 xdvi 预览器。它仅在 X Window 系统中工作。要启动它,您可以从菜单中选择它,或者在终端窗口的命令行中键入 xdvi businessletter.dvi & 并按 ENTER 键。

使用 xdvi 很简单。窗口右侧的按钮非常容易理解,您可以按 PAGEUP/PAGEDOWN 键来前后翻页,或者使用向上/向下箭头键来上下滚动您正在查看的页面(滚动条的工作方式与 MS Windows 中相同,尽管使用双按钮鼠标,您将必须同时按下两个按钮才能使用它们)。按 Q 键退出 xdvi。

一些不可打破的规则

仅通过查看 xdvi 页面即可发现的最常见错误是 溢出框 和字体和样式的突然更改。当您忘记遵守以下 LaTeX 排版规则时,通常会发生这些错误

  • 每个段落必须用空行与另一个段落分隔(只需在段落末尾点击两次 ENTER 键)。

  • 无论您在单词之间放置多少空格,LaTeX 都将它们视为一个空格,并将根据其自身的排版规则对其进行格式化。(您可以更改此行为,如下面的“覆盖 LaTeX 规则”部分所述。)

  • 引号使用 `' 而不是 ",因此要排版 ''funny'',您需要键入 ''Funny'' 而不是 "funny"

  • 省略号 (...) 使用 \ldots 命令打印;因此,要排版 bye...,您应该键入 bye\ldots 而不是 bye...

  • LaTeX 命令应与实际文本分开。我们通过以下方式之一来实现这一点

在它开始的上方]

  • 再见,再见\ldots 我的爱(注意:\ 字符启动一个命令,因此不需要用空格分隔,另请参见下面的特殊字符列表)。

  • 再见,再见\ldots{ }我的爱。

  • LaTeX 将某些字符解释为特殊字符,要按字面意义打印它们,我们需要使用特殊命令代替。请参阅“特殊 LaTeX 字符”中的列表。

特殊 LaTeX 字符
  • 命令可以嵌套,即,您可以将一个或多个命令放在另一个命令的花括号内,例如,extsf{life is \emph{wonderful}!}

摆脱溢出框

LaTeX 非常擅长记录其工作,并将大量信息(包括错误消息)放入日志文件中。对于 businessletter.latex,它将被称为 businessletter.log。每个错误都在那里得到了尽可能好的描述,以及行号,这有助于快速找到文件中的正确位置。

尽管使用 xdvi 的视觉方法可能是初学者查找错误的最佳方法,但有一类错误需要不同的方法——著名的 溢出框。当 LaTeX 无法正确断开文本行或对单词进行连字符时,LaTeX 会生成该消息,这种情况在尝试打印长网页地址时经常发生。

查找这些消息的最快方法是使用 grep

grep Overfull businessletter.log | less

在 Xterm 窗口中发出上述命令后,您将看到一个空窗口(一件好事)或 LaTeX 放置了不祥之词的行列表。返回 Emacs,找到有问题的行,然后使用 xdvi 判断如何最好地修复您的文档。

覆盖 LaTeX 规则

LaTeX 非常擅长排版,但它仍然需要我们不时地提供帮助,尤其是在出现 溢出框 错误的情况下。帮助 LaTeX 通常意味着手动断开特定的文本行。别担心,这不会造成伤害;只需遵循下面给出的规则

  • 要更正错误的连字符,请在单词内放置 \-,在您认为应该连字符的位置,例如,lab\-yrinthlaby\-rinth

  • 要在单词之后或之前断开行,而不插入连字符,请使用 \linebreak[4] 命令。(在前面示例中的一行上尝试它,看看它是如何为您工作的。)命令之前的文本将设置为填充段落的整个宽度。

  • 要在不断开段落宽度的情况下断开行,请使用 \\

  • 要结束页面并开始新页面,请使用 \pagebreak[4]\newpage

  • 要将一部分文本放在一起(例如电话号码),请使用 \mbox{...} 命令;例如,\mbox{+0 (11) 123 456 789} 如果当前行容纳不下,则会移动到新行,但不会被分成两半。

将这些命令之一插入文本后,保存它,运行 LaTeX,查看它在 xdvi 中的外观,并使用 grep 找出是否仍然存在任何问题。重复此操作,直到您摆脱所有 溢出框

一些有用的格式化技巧

到目前为止,您已经阅读了关于格式化信件的内容,但是您可以使用 LaTeX 排版各种文档。例如,使用 \documentclass[...]{report} 会使 LaTeX 进入漂亮的报告格式化模式。可以使用 \documentclass[...]{book} 排版手册;使用 \documentclass[...]{article} 排版备忘录,使用 \documentclass[...]{slides} 排版演示幻灯片。

为了使这些文档看起来真正专业,还有一些其他命令,例如 \author{...}\title{...},以及在必要时,\date{...}。要生成标题页眉或标题页,请在最后一个命令后使用 \maketitle。您应该将这些命令放在 \begin{document} 之前。

在除信件以外的所有文档情况下,我们不需要 \address{...}\signature{...}\begin{letter}\opening{...}\closing{...}\cc{...}\encl{...}\ps{...}\end{letter} 命令。

要将长文本划分为部分、章节和章节,请使用 \part{...}\section{...}\chapter{...} 命令。

列表

清单 2

您可以使用 LaTeX 排版两种类型的列表:项目符号列表(参见清单 2)和编号列表(参见清单 3)。编号列表对于各种协议、合同、说明等尤其方便。

清单 3

字体和样式

以下是用于格式化文本的其他有用命令的列表

  • 斜体:将您要以斜体打印的文本用 \emph{...} 命令括起来,例如,I wish to \emph{emphasize} this!

  • 文本对齐方式——左对齐:右对齐:居中:\begin{center}...\end{center}

  • 打字机文本\texttt{...}

  • 无衬线字体:\textsf{...}

  • 字体大小:主文档字体大小 \normalsize{...},以及(按大小递减顺序)\small{...}\footnotesize{...}\scriptsize{...}\tiny{...},或(按大小递增顺序)\large{...}\Large{...}\LARGE{...}\huge{...}\Huge{...}

模板

任何 LaTeX 文件都可以使用以下命令转换为模板

chmod 444 businessletter.latex

这些权限将确保没有人(包括您)可以覆盖您创建的文件。任何人都可以打开它,但要保存更改,必须给它一个不同的名称。在 Emacs 中,您可以使用 CTRL-XW 来做到这一点。将所有模板放在单独的目录中也是一个好主意。

打印

在将 LaTeX 生成的文件发送到打印机或传真调制解调器之前,需要将它们转换为正确的格式。幸运的是,所有 Linux 发行版都附带一组转换实用程序,可以处理这项工作,而无需太多人工干预——您只需给它们一个文件名,它们就会完成剩下的工作

  • dvi2fax:将 DVI 文件转换为传真格式,从而可以通过传真调制解调器发送它们。

  • dvilj:将 DVI 文件转换为 Hewlett-Packard LaserJet 格式。即使您的打印机不是 HP 制造的,它也可能仍然可以理解或 模拟 LaserJet 命令。您所要做的就是将其切换到 HP LJ 仿真模式,这应该在打印机的手册中描述。有些打印机可以自动切换到该模式。

  • dvilj2p:DVI 到 Hewlett-Packard LaserJet 2p 格式转换器(类似于 dvilj)。

  • dvilj4:DVI 到 Hewlett-Packard LaserJet 4 格式转换器(类似于 dvilj)。

  • dvips:将 DVI 文件转换为 PostScript 格式,允许在 Adobe PostScript 兼容打印机上打印它们。

如果您要打印示例信件,请键入

dvilj businessletter.dvi
然后
lpr businessletter.lj
如果没有任何反应(您确实记得打开打印机了吗?),请键入 lpq 并查看您的文档名称是否在列表上;如果您收到“no entries”消息,则您的机器可能未正确设置为打印。在这种情况下,请向系统管理员或服务人员寻求帮助。有时打印机接收到文档,但在接收到每一页后,会等待您按下 PrintOn-line 按钮。这取决于打印机,但一个好的经验法则是,如果 Data 指示灯亮起或闪烁,并且 PrintOn-Line 指示灯熄灭或闪烁,则按下其中一个按钮将解决问题。

此外,在某些打印机上,您需要在末尾送入额外的页面——它将是空白的,您可以重复使用它。

在 Microsoft Word 和 LaTeX 之间转换文件

到目前为止,将 Microsoft Word 文件转换为 LaTeX 有点困难。有几种策略,但没有一种能让您完全满意。要将 Word 文件转换为 LaTeX,您可以

  • 将 MS Word 文件另存为 TEXT 或 ASCII 文件。您将丢失所有格式、图片、绘图、链接和嵌入式文档,但您至少可以获得 Emacs 和 LaTeX 可以读取的格式的文本。

  • 将 MS Word 文件另存为 RTF 文件,并使用 catdocword2x 命令将 DOC 文件转换为 LaTeX 文件。(键入 man catdocman word2x 以了解更多关于它们的使用和选项。如果 man 不起作用,请尝试 info。)您将丢失一些格式信息,但大部分格式信息将被保留,从而使您的工作轻松一些。

如果您需要将 LaTeX 文档转换为 DOC 文件,请尝试以下方法

  • 使用 delatex(或 detex)将 LaTeX 文件转换为纯文本 (ASCII) 文件

        delatex businessletter.latex >\
        businessletter.txt
  • 将输出与原始文件进行比较,并在必要时删除一些命令并添加缺少的文本。不幸的是,这些转换器尚不能按我们的需求工作。

  • 在 Word 中打开 TXT 文件;然后系统会询问您是否要从文本格式转换它。单击 ,根据需要应用格式,然后从 文件 菜单中选择 另存为... 项。在 另存为 对话框中,选择 Word 文档 选项,然后单击 保存

到目前为止,这些是在 MS Word 和 LaTeX 或任何其他文字处理器(如 Corel WordPerfect 或 Lotus AmiPro/WordPro)之间交换文件的最常见方法,即使其中一些可用于 Linux。地平线上有一些有趣的发展,但没有一种可以推荐在典型的办公室中使用。

这就是您开始在办公室中使用 LaTeX 所需的一切。当然,还有更多内容需要学习,我建议您使用 locate 'lshort2e.dvi' 命令,看看是否可以找到“不太简短的 LaTeX2e 介绍”。这是一本写得很好的 LaTeX 手册,其中包含许多有趣的示例。

本文中的所有示例都可以在 Internet 站点 www.wszechnica.safenet.pl/archiwum/lfors.htm 上找到。

如果您的系统上没有上述任何命令或程序,请要求管理员安装它们并授予您使用它们的必要权限。所有这些工具都应该可用于任何 Linux 发行版。

Jacek Artymiak 是一名顾问,专门帮助公司和个人将 Linux 用作桌面或个人系统,以进行常见的日常工作。他的其他职业包括作家、记者、网页设计师、计算机图形艺术家和程序员。欢迎读者通过电子邮件 artymiak@safenet.pl 发送他们的评论,或访问 http://www.wszechnica.safenet.pl/

加载 Disqus 评论