Next Previous Contents

2. LDP 和 SGML 背景资料

2.1 LDP

Linux 文档计划 (LDP) 是用来提供给新用户以快速取得某个详细主题相关信息。它并不仅仅包含一系列关於管理、网络、编程等的书籍,而是包容了大量的由使用过的人书写的关於某个个别主题的解决方法。如果你想查找关於打印的资料,你可以查阅 Printing HOWTO。如果你想查找关於网络的资料,你可以查阅 Ethernet HOWTO,等等。

刚开始,许多这些文档是文本或 HTML 格式。随著时间的推移,必须找出一个管理这些文档的好方法。一种能让你从 Web 网页上阅读、从光盘的文本文件阅读,甚至从你的个人数字助理上阅读的方法。答案已经有了,就是 SGML。

2.2 SGML

Standard Generalized Markup Language (SGML) 是一种基於记号文本的语言。在这方面,它类似於 Tex 或者 groff 或者 HTML。 SGML 的强大之在於它不象 WYSIWYG (所见即所得)那样,你不需要定义象颜色、字体等格式,你只需定义元素(段落、章节、编号列表)而 让最终处理程序来处理象位置、颜色、字体等烦心的事情。HTML 也是这麽做的,实际上它是 SGML 的一个子集。

SGML 包含两部分。首先是一个称为 DTD (或称为文档类型定义 Document Type Definition) 的结构。 DTD 定义每一个元素之间的关系。The LinuxDoc DTD, used to create this document, is an example of this. DTD 为每一个使用 DTD 创建的文档一个通用的视觉和感觉效果。其次是内容(content),就是将要由 SGML 处理器处理并被用户阅读的部分。本段落就是内容,但也可以包含图像、表格、编号列表等等。内容被标记(tag)包围用来分开不同的元素。

随著时间的推移,LinuxDoc DTD 将被 DocBook DTD 所取代,为其它的 SGML 文档提供一个统一的视觉和感觉效果。 如果实现了这一步,我们将通过本 HOWTO 或者邮件列表为你升级。 LinuxDoc 和 DocBook 之间最大的不同在於 DocBook 分配标记给不同类型的内容(就象命令、文件名、地址目录等等),而 LinuxDoc 分配标记基於文本将要显示的方式(比如你可以分配强调或打字)

为什麽用 SGML 取代 HTML 或其它格式?

SGML 提供的不仅仅是格式。你可以自动建立索引、内容表以及文档中的链接或者是大纲。sgmltools 包也可以让你输出 LaTeX 、 info 、 text 、 HTML 和 RTF。从这些基本格式,你可以创建其它格式文档(DOC、PostScript等等)。SGML 不会象 HTML 那样冗长。我不认为你很快会在 SGML 中看到闪亮的标记。这有助於编码不仅仅易於处理,而且易於书写。象 LyX (我至今使用的所见即所得编辑器)这样的软件可以帮助你书写 TeX格式文档并输出成 SGML 格式,然後你就可以从 SGML 生成任何你需要的格式。

最後,SGML 更注重元素的工作性能而不是元素的显示。这是一个显著的特性,有助你更快地书写,因为你不必关心段落的位置、字体大小等等。

2.3 工具

在本章节,我将介绍一些用来创建你自已的 LDP 文档的工具。我将先简单介绍,然後详细说明,包括如何安装它们。如果你使用其它的一些工具来书写 LDP,请告诉我,我会在这里为它们做广告的。

sgmltools

必备

sgmltools 包包含用来处理 SGML 成以上所说格式的 SGML 工具。它也包含创建 LDP 文档所需的 LinuxDoc DTD。如果只创建 SGML 文档,这些已经足够了。如果你想处理成比如 TeX 格式,你还需要一些工具包。sgmltools 包在你的 linux 发行版本中可以找到,或者到 http://www.sgmltools.org/ 下载。

TeX

可选

TeX (rhymes with blech!) 是一种可供广泛选择的标记语言,甚至包括那些数学世界中的人们。 我还记得许多微积分考试是由 TeX 写成的。它也是至今仍在使用的最早的标记语言之一。 TeX 实际上和 SGML 具备许多同样的概念。TeX 处理它的文件成 DVI (设备无关)从而可能处理成其它格式。 不幸的是,DVI不能容易地转换成打印语言(PostScript、PCL)以外的其它格式,很难生成 HTML。 TeX 在多数 Linux 发行版本中都已安装或被提供。

LyX

可选

LyX 程序是一个图形化所见即所得软件,提供非常必需的易用图形应用与 SGML 处理器之间的联系。LyX是用於书写 TeX 文档,实现了许多 TeX 规则。举个例子,当章节被自动编号,你无法轻易地插入空格。这被 TeX 设计成禁止。而 SGML 通常忽略同样的空格。LyX能够读入 LinuxDoc DTD 并且提供文档模板以帮助你用习惯的方式创建你的 LDP 文档,而不需要象 vi 那样要记住许多标记。 LyX 可以在 http://www.lyx.org/ 找到。

在 KDE 中有一个使用 Qt 库的 LyX。 你可以从以下地址得到更多信息: http://www.devel.lyx.org/~ettrich/klyx.html。 如果你使用 KLyX 来写 SGML ,请通过 邮件 告诉我你的使用经验。


Next Previous Contents