14. 如何生成值得打印的内容。

这里我们进入了一个真正的软件难题。基本上,Linux 可以运行多种类型的二进制文件,成功程度各不相同:Linux/x86, Linux/Alpha, Linux/Sparc, Linux/foo, iBCS, Win16/Win32s (使用 dosemu,以及未来可能使用 Wine), Mac/68k (使用 Executor), 和 Java。我将只讨论原生 GNU/Linux 和常见的 Un*x 软件。

14.1. 标记语言

大多数标记语言更适合大型或重复性项目,在这些项目中,您希望计算机控制文本的布局以使内容统一。

nroff

这是 Unix 原始版本上最早的标记语言之一。Man 手册是以 *roff 宏格式化的最常见示例;许多人对其赞不绝口,但至少对我而言,nroff 的语法比需要的更晦涩 (参见 图 12),并且可能不是新作品的理想选择。但是,值得了解的是,您可以使用 groff 将 man 手册直接排版成 postscript。大多数 man 命令会使用 man -t foo | lpr 为您执行此操作。

图 12. roff 输入示例

.B man
is the system's manual pager. Each
.I page
argument given to 
.B man
is normally the name of a program, utility or function. 
The 
.I manual page 
associated with each of these arguments is then found and
displayed. A 
.IR section ,
if provided, will direct
.B man
to look 
only in that
.I section
of the manual.
TeX

TeX 和宏包 LaTeX 是 Un*x 系统上最广泛使用的标记语言之一,尽管 TeX 并非起源于 Unix,并且可以在各种系统上运行。技术著作经常用 LaTeX 编写,因为它大大简化了布局问题,并且仍然是少数几个能够完整且良好地支持数学的文本处理系统之一。TeX 的输出格式是dvi,并使用 dvipsdvilj 转换为 PostScript 或 Hewlett Packard 的 PCL。如果您希望安装 TeX 或 LaTeX,请安装整个 teTeX 软件包组;它包含所有内容。最近的 TeX 安装包括 pdfTeX 和 pdfLaTeX,它们直接生成 Adobe PDF 文件。可以使用命令在 PDF 文件中创建超链接和导航功能。

图 13. LaTeX 输入示例

\subsubsection{NAT}

Each real server is assigned a different IP address, and the NA
implements address translation for all inbound and outbound
packets.

  \begin{description}
  \item[Advantage] Implementation simplicity, especially if we
already implement other NAT capabilities.

  \item[Disadvantage] Return traffic from the server goes through
address translation, which may incur a speed penalty.  This
probably isn't too bad if we design for it from the
beginning.

  \item[Disadvantage] NAT breaks the end-to-end semantics of normal
internet traffic.  Protocols like ftp, H.323, etc would
require special support involving snooping and in-stream
rewriting, or complete protocol proxying; neither is likely
to be practical.
  \end{description}
SGML

至少有一个免费的 SGML 解析器可用于 Un*x 系统;它构成了 Linuxdoc-SGML 自主文档系统的基础。它也可以支持其他 DTD,最著名的是 DocBook。本文档是用 DocBook-DTD SGML 编写的;有关示例,请参见 图 14

图 14. DocBook SGML 示例

<varlistentry>
<term>SGML</term>
<listitem>
<para>
There is at least one free SGML parser available for Un*x 
systems; it forms the basis of Linuxdoc-SGML's homegrown 
document system.  It can support other DTD's, as well, most
notably DocBook.  This document is written in DocBook-DTD 
SGML.
</para>
</listitem>
</varlistentry>

14.2. WYSIWYG 字处理软件

WYSIWYG 字处理软件种类繁多。有几个完整的办公套件可用,包括一个供个人免费使用的套件 (StarOffice)。

StarOffice

这个功能齐全的办公套件具有您期望的所有功能,包括 Microsoft Office 文件格式 (包括 Word 文档) 的导入和导出。有一个 mini-HOWTO 描述了如何获取和安装它。它生成 PostScript,因此应该可以与 GNU/Linux 上可以使用的任何打印机一起使用。

WordPerfect

Corel 发行了 WordPerfect 8 的基本版本,供 GNU/Linux 免费使用,并销售各种 Word Perfect Office 2000 软件包 (其中包括 WordPerfect, Corel Draw 和 Quattro Pro Versions 9)。 Linux WordPerfect Fonts and Printers 页面提供了有关配置 WordPerfect 以与 Ghostscript 或其内置打印机驱动程序 (如果您的打印机驱动程序未包含在发行版中,则显然与 DOS WordPerfect 驱动程序相同) 一起使用的信息。

Applix

Applix 是 Applix 公司销售的跨平台 (例如,各种 Unix, Windows 和其他平台) 办公套件。当它是唯一的选择时,Red Hat 和 SuSE 自己销售它;现在销售已恢复到 Applix。这是唯一的原生 Unix 风格的应用程序套件;它可能更符合 Unix 的做事方式。

AbiWord

AbiWord 是几个 GPL WYSIWYG 字处理项目之一;这个项目已经产生了一个非常好的基于 XML 格式的字处理器。它能够导入 Word 文件。AbiWord 仍然是一个正在进行中的项目,尽管它现在对于小型任务很有用。

图 15. AbiWord

LyX

LyX 是 LaTeX 的一个前端,看起来很有前景。有关更多信息,请参见 LyX Homepage。有一个 KDE 风格的 LyX 版本,称为 Klyx;LyX 的作者和 KDE 的发起人是同一个人。

图 16. LyX

Maxwell

Maxwell 是一个基于 MS RTF 格式的简单字处理器,最初是商业产品,但现在根据 GPL 分发。

其他供应商可以随时给我发消息,提供你们的产品。