HOWTO HOWTO
作者: Mark F. Komarinski [1]markk@cgipc.com
译者: 苏江文 [2]softsprite@yeah.net
v0.13, 19 September 1999 翻译日期: 09 Feb 1998
_________________________________________________________________
成为一个新的 LDP 作者,掌握 LDP 使用的工具、思路和约定。
_________________________________________________________________
1. 概述
* 1.1 历史
* 1.2 新版本
* 1.3 版权和商标
* 1.4 感谢
2. LDP 和 SGML 背景资料
* 2.1 LDP
* 2.2 SGML
* 2.3 工具
3. 让我们开始
* 3.1 写给新作者
* 3.2 邮件列表
* 3.3 下载并安装工具
* 3.4 手工书写 SGML
* 3.5 使用其它工具书写 SGML
* 3.6 CVS 基础
* 3.7 发布你的文档
4. 风格指南
5. 关於 LDP 的常见问题
* 5.1 我想为 LDP 出一份力,我该如何去作?
* 5.2 我想出版 LDP 文档。LDP 的文档许可是怎样规定的?
* 5.3 我在一个 LDP 文档中找到一个错误。我能修正它吗?
_________________________________________________________________
1. 概述
1.1 历史
本文是1999年8月26日 Mark F. Komarinski [3]markk@cgipc.com 在花费了两天
找寻工具的代价後开始写作的。如果任何一个 LDP 作者能从中得到帮助,我就达
到我的愿望了。
1.2 新版本
本文的最新版本可以在我的主页 [4]http://www.cgipc.com/~markk 找到 SGML
源文件。 其它不同格式的版本可以在 LDP 主页 [5]http://www.linuxdoc.org/
找到。
版本历史
v0.25, 20 September 1999
* 修复了一些断开的链接
* 为新作者增加章节
* 从最初发行版本增加一些杂项修改
* 增加版权说明取代以前的 URL 链接
v0.12, 2 September 1999
* 完成大多数章节
* 讨论列表的综合修改
v0.10, 27 August 1999
* Got up to section 3.4 written
* Added to the outline some
* Changed location of LDP mailing list to lists.debian.org from
thepuffingroup.com.
v0.01, 27 August 27 1999
* 初步完成,上传主页,简单大纲写作
* Take some of what I wrote with a grain of salt. Some things need
to be verified.
1.3 版权和商标
(c) 1999 Mark F. Komarinski
本指南可以被全部或部分复制,不需要付费,必须接受以下限制:
* The copyright notice above and this permission notice must be
preserved complete on all complete or partial copies
* Any translation or derived work must be approved by the author in
writing before distribution.
* If you distribute this work in part, instructions for obtaining
the complete version of this manual must be included, and a means
for obtaining a complete version provided.
* Small portions may be reproduced as illustrations for reviews or
quotes in other works without this permission notice if proper
citation is given.
Exceptions to these rules may be granted for academic purposes: Write
to the author and ask. These restrictions are here to protect us as
authors, not to restrict you as learners and educators. All source
code in this document is placed under the GNU General Public License,
available via anonymous FTP from [6]the GNU archive site.
1.4 感谢
感谢所有在我写作过程中给予我帮助的人,包括 Deb Richardson 和 Daniel
Barlow 以及 LDP 讨论列表上的其它人。
部分章节我取自 HOWTO Index 和 sgmltools 文档。在本文的其它部分有指明到
何处取得 sgmltools 和 LDP。
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
发行版本中可以找到,或者到 [7]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 可
以在 [8]http://www.lyx.org/ 找到。
在 KDE 中有一个使用 Qt 库的 LyX。 你可以从以下地址得到更多信息:
[9]http://www.devel.lyx.org/~ettrich/klyx.html。 如果你使用 KLyX 来写
SGML ,请通过 [10]邮件 告诉我你的使用经验。
3. 让我们开始
本章节显示如何获取关於如何书写你自己的 LDP 文档的信息。获取并安装工具,
与 LDP 联系,从那里向所有 Linux 用户发布你所掌握的知识。
3.1 写给新作者
如果你刚刚了解 LDP 并且想要选择一个没人维护的 HOWTO 或者想写一个新的
HOWTO 或者 mini-HOWTO 文档,请联系 [11]linux-howto@metalab.unc.edu 。
这将让 HOWTO 协调人掌握谁在维护哪篇文档。同时要注意所有的 HOWTO 都使用
SGML 格式(当前使用 LinuxDoc DTD)。mini-HOWTO 使用 SGML 或者 HTML 格式,
但只有 SGML 格式将被包含进 HOWTO 的打印版本中。
3.2 邮件列表
有一些邮件列表可以订阅以让你了解 LDP 目前工作情况。首先是
[12]ldp-discuss@lists.linuxdoc.org,这是 LDP 的主要讨论组。如果要订阅,
发送主题为 "subscribe" 的邮件到
[13]ldp-discuss-request@lists.linuxdoc.org。退订则发送主题为
"unsubscribe" 的邮件到 [14]ldp-discuss-request@lists.linuxdoc.org。
3.3 下载并安装工具
sgmltools
从 [15]http://www.sgmltools.org/下载 sgmltools 包,或者直接从你的
Linux 发行版本中取得。从 sgmltools.org 取得的软件是源码格式,因此你必须
在你的机器上编译这些源码。从你的 Linux 发行版本中取得的预建立好的包更容
易些,你可以不用编译而直接开始编辑工作。(特别是如果你不是一个程序员)
RedHat 中包含 sgmltools。 如果没有,你可以从 ftp.redhat.com 或者其它镜
像站点下载。
如果你使用 Debian,在标准发行版本中也包含 sgmltools 。如果你没有已安装
的包,你可以使用 apt-get 命令下载并安装:
_________________________________________________________________
# apt-get install sgml-tools
_________________________________________________________________
要了解更多关於 Debian 包的信息,你可以查阅
[16]http://www.debian.org/Packages/stable/text/sgml-tools.html
如果从源码编译,所有你需要做的是:
# tar -zxvf sgmltools-x.x.x.tar.gz
# cd sgmltools-x.x.x
# ./configure
# make
# make install
替换 sgmltools-x.x.x 成你当前 sgmltools 的版本号。支持 LinuxDoc 的当前
版本号是 1.0.9。支持 DocBook 的当前版本号是 2.0.2。两者在以上所述站点中
都可以找到。
一旦工具安装好後,你就可以使用很多命令了。
sgmlcheck file.sgml- 检查给定文档的句法。
sgml2html file.sgml- 转换 SGML 文件成 HTML。 创建一个名为 file.html 的
文件包含内容表,然後创建一系列名为 file-x.html 的文件,这里 x 是章节号
。
sgml2rtf file.sgml- 转换 SGML 文件成 Rich Text Format (RTF)。创建两个文
件,第一个是 file.rtf 包含 TOC,以及 file-0.rtf 包含所有的章节。
sgml2txt file.sgml- 转换 SGML 文件成 ASCII 文本。所有内容放在 file.txt
中。
sgml2info file.sgml- Blah SGML blah INFO, 能被 info 命令使用。所有的输
出传送到 file.info。
sgml2latex file.sgml- Blah SGML blah TeX.
sgml2lyx file.sgml- SGML yadda LyX graphical editor. This is great if
you have pre-generated SGML files and want to convert them for use in
LyX.
3.4 手工书写 SGML
非常象 HTML,你可以手工书写 SGML , 只要你掌握了所有需要使用的标记代码本
章节将讲述尽可能多的这些代码,并为每一个提供例子。开始的最好的地方就是
本文的源码,可以从这里看看: [17]Introduction. 因为 SGML 的处理方式依赖
於文件格式的不同而不同,我将尽可能说明在文件写作中应该知道的事情。
出发
现在开始写作了,首先用你喜爱的编辑器创建一个新文件,文件的开头如下:
这将定义 SGML 处理输出文件时使用的文档类型(我们这个例子使用 LinuxDoc)。
这个标记本身不产生任何输出。
接下来你需要把你其余的内容包含在标记
标记指明一个新行的开始。SGML 会忽 略 TAB、空格、空行。当 SGML 检查到
标记时,它开始一个新行。放置
标记结束该段落。 增强文本 你偶而会需要让一些文本明显不同於其它文本。可能是重要代码或者命令列表。 强调文本可以使用 和 标记。斜体字可以使用 和 标记 。 列表 在 SGML 中有两种形式的列表。第一种是列举列表,从1开始为每一个列表项编号 。 1. This is the first entry in the enumerated list. 2. This is the second. 3. Third. 以上的代码如下: