Linux 版 (精华区)

发信人: clx (楚留香), 信区: Unix
标  题: SGML-Tools 使用说明中译版(04)
发信站: 紫 丁 香 (Sat Jun 27 17:21:14 1998), 转信

SGML-Tools 使用说明中译版 : 使用 SGML-Tools 撰写文件
Previous: 安装
Next: SGML-Tools 使用说明中译版 


3. 使用 SGML-Tools 撰写文件

使用 SGML-Tools DTD 撰写文件的过程大部分是非常容易的,而且
有点类似 LaTeX. 然而,仍然有些限制要注意.这一节我将介绍
SGML 文件的撰写. SGML 文件□例(及写作指引)请参阅 example.sgml
档案,你可以拿来当作自己文件的□本. 在此我将讨论 SGML 的各
项功能,但是以原始文件作为□例不是很有可读性. 因此,印出 
example.sgml 的原始码(编排後的输出),如此你就有真实的参考□
例。

3.1. 基本概念

仔细看□例文件的原始文件,你会注意到里面有许多以角括号(< 及
>)标示的「标签(tags)」. 标签单纯地指出某组成元素的起始,这
里所谓的组成元素是一节,一段,一句斜体的文句,列表中的一个
项目,以及诸如此类的结构. 使用标签就像使用 LaTeX 指令如 
\item 或是 \section{...} 等一般.

举个简单的例子,要产生这一段 粗体文字,我在原始码中键入 

     举个简单的例子,要产生这一段 <bf>粗体文字</bf>, ...

<bf> 是这段粗体文字的开头,而 </bf> 是结尾. 你也可以使用这个
简略形式: 

     举个简单的例子,要产生这一段 <bf/粗体文字/, ...

就是用斜线将粗体文字包住.(当然,如果被包含的文字含有线,你
就必须使用长的形式, 例如 Unix 的档案名称.)

关於特殊字元还有其它得要注意的问题 (这就是为什麽如果你仔细
观察原始文件就会注意到这些看起来很怪异 "&" 表示式;我将简短
地说明这些符号).

在某些情况下,特定的组成元素之结尾标签是可选用的. 例如,你
在某一节的开始使用 <sect> 这个标签,然而,该节的结尾标签 (可
以出现在该节主体本身结束的地方,而不只是该节的名称後面!) 是
可选用的而当你在同一个层次开始另外一节的时候也就暗示著该节
的结束. 一般来说你不需要担心这些细节;只要跟著使用在 
example.sgml 指引里的□例就可以了。

3.2. 特殊字元

很明显的,角括号它们本身就是 SGML 原始文件里的特殊字元.另
外还有其它该注意的字元. 例如,假设你想键入由角括号所涵盖的
表示式,像这样: <foo>. 为了表示左边的角括号,你必须使用 &lt;
这个组成元素, 这是一个会展开成左括号字元的「巨集」.因此,
我在原始文件中键入 

     angle brackets around it, as so: <tt>&lt;foo></tt>.

一般来说,以结合字元(&)作为开始表示这是一个特殊的巨集. 例
如,产生 % 符号的 &percnt; 产生 | 的 &verbar; 等等. 对於所有
的「特殊字元」都有结合巨集可以表示它们.

通常,你不需要使用结合巨集表示某特殊字元,然而,在某些情况
下这是必须的。最常用的是: 

     Use &amp; for the ampersand (&), 
     Use &lt; for a left bracket (<), 
     Use &gt; for a right bracket (>), 
     Use &lt;/ for a left bracket with a slash (</) 
     Use &dollar; for a dollar sign ($), 
     Use &num; for a hash (#), 
     Use &percnt; for a percent (%), 
     Use &tilde; for a tilde (~), 
     Use `` and '' for quotes, or use &ldquo; for ``, &rdquo;
     for ''. 

完整的特殊字元列表可以查看其中一个替换档. 通常 LaTeX 最会
抱怨特殊字元,所以查阅 $SGMLTOOLSLIB/rep/latex/general 会是个好的
开始. $SGMLTOOLSLIB 定义在 SGML 转换程序的最前面.

3.3. Verbatim 与 Code 环境

当我们正讨论特殊字元这个主题时,我也必须提到「verbatim 环
境」, 用来在输出中含入不加变动的文字(空白字元以及缩排,和
诸如此类). verb 这个组成元素就是做此用途的.它看起来就像这
样: 

     <verb>
      Some literal text to include as example output.
     </verb>

verb 环境不允许你在其内容中使用任何东西. 特别地,在 verb 环
境中你必须: 

     使用 &amp; 代表 & 
     使用 &lt;/ 代表 </ 
     不要在 verb 环境中使用 \end{verbatim}, 因为这是 LaTeX 用来
     结束 verbatim 环境的. (未来应该可能完全的隐藏底层的文字
     编排,但目前的解析器还不支援.) 

code 环境非常类似 verb 环境,除了在文字周围加入分隔线 


这是 code 环境的例子.



你应该在任何 verb 环境的周围使用 tscreen 环境,像这样: 

     <tscreen><verb>
     这是一段例句.
     </verb></tscreen>

tscreen 是一个环境单纯地缩排并设定预设字型为 tt. 这使得□例
要论在 LaTeX 以及纯文字的版本中看起来好多了. 你可以使用 
tscreen 而不加 verb,不过,如果你在□例中使用任何的特殊字元那
麽你就需要它们两个. tscreen 与特殊字元无关.□例请参阅 
example.sgml.

quote 环境类似 tscreen,除了不将预设字型设为 tt.所以,你可以
使用 quote 於与电脑无关的引用,如: 

     <quote>
     Here is some text to be indented, as in a quote.
     </quote>

这会产生: 

     Here is some text to be indented, as in a quote. 

3.4. 文件内容概观

在我们深入研究细节之前,我要开始介绍 linuxdoc DTD 定义的文
件概观.文件如何设立的□例请仔细观看 example.sgml.

3.4.1. 序文

在文件的「序文」中你设立像是标题以及文件型态(style)的东西.
Linux HOWTO 文件看起来应该像: 

     <!doctype linuxdoc system>

     <article>

     <title>Linux Foo HOWTO
     <author>阿伟, <tt/cwhuang@phys.ntu.edu.tw/
     <date>v1.0, 14 August 1997
     <abstract>
     这份文件说明了如何使用 <tt/foo/ 这个工具.
     </abstract>

     <toc>

这些组成项目可以酌予增减但须按此顺序.第一行告诉 SGML 解析
程式使用 linuxdoc DTD. <article> 这个标签规定文件使用
「article」此种文件型态. (原先的 QWERTZ DTD 还定义 
「report」以及「book」等型态;我并没有修改它们以在
SGML-Tools 中使用).

title, author, 以及 date 这些标签的意义应该是很明显的, 在 date
标签中包含文件的版本编号以及最後修改时间.

abstract 标签设定文件顶端在内容之前印出的文字. 如果你不想含
入内容列表(toc 标签),那麽你可能不需要 abstract.

3.4.2. 章节与段落

在序文之後,你就可以准备进入文件本身.有下列的分节指令可以
使用: 

     sect: 最顶层的章节 (也就是 1, 2, 等等) 
     sect1: 第二层的次章节 (也就是 1.1, 1.2, 等等) 
     sect2: 第三层的小章节 
     sect3: 第四层的小小节 
     sect4: 第五层的小小小节 

它们相当於 LaTeX 中对应的 section, subsection 等等.

在 sect (或 sect, sect 等等) 标签之後跟著是该节的名称. 例如,
在文件的顶端,序文之後的是此标签: 

     <sect>简介

而在此节开始的地方(段落),有个标签是: 

     <sect2>段落

在一节的标签之後,你开始文件的主体.然而,你必须以一个 <p>
标签开始,像这样: 

     <sect>简介
     <p>
     这是一份 SGML-Tools 文件处理的使用者指引....

这是告诉解析程式你已完成一节的标题并且准备好开始本文主体.
其後,新的段落是以空白行开始(就如同 TeX).例如, 

     这是第一段的结尾.

     而我们从这里开始新的一段.

没有什麽理由要在每个段落的前面使用 <p> 标签;只要在分节指令
後面的第一个段落开始处加就行.

3.4.3. 文件结尾

在文件结束的地方,你必须使用这个标签: 

     </article>

以告诉解析程式你已经完成 article 这个组成元素(涵盖整份文件).

3.5. 交互参考

现在我们要进入系统的其它功能.交互参考很容易.例如,如果你
想要制作某一节的交互参考,你得像这样标示该节: 

     <sect1>简介<label id="sec-intro">

接著你就可以在文件中的某个地方式用这个表示式参照该节: 

     请参考<ref id="sec-intro" name="简介">一节的介绍.

这将会以 sec-intro 标记的节号替换掉这个 ref 标签. 对於 groff
以及 HTML 转换 name 这个参数是必须的. SGML-Tools 使用的
groff 巨集设定目前并未支援交互参考,而且它常常以名称取代数
字参照某一节.

例如,本节是 交互参考.

在全球资讯网上使用的通用资源定位器,即 URL 也有组成元素 
url. 这个元素应该用来参照其它文件,FTP 上的档案等等.例如:

     你可从此取得 Linux HOWTO 文件
     <url url="http://sunsite.unc.edu/mdw/HOWTO/" 
        name="The Linux HOWTO INDEX">.

url 这个参数指定这个 URL 本身.连结会自动加入到 HTML 文件
中. 可选用的 name 参数指定应该加上连结的文字(HTML 转换)或是
为 URL 描述命名(LaTeX 或 groff).如果没有给 name 参数,会使
用这个 URL 本身.

例如,你可以从这里取得 SGML-Tools 套件
ftp://sunsite.unc.edu/pub/Linux/utils/text/sgml-tools-0.99.0.tar.gz.

一个有用的变形是 htmlurl,除了 HTML 文件在其它每种文件中这个
URL 部份将不会出现. 它用在像是个人的电子邮件位址;你可以写

     <htmlurl url="mailto:esr@snark.thyrsus.com"
           name="esr@snark.thyrsus.com">

而在纯文字输出中获得「esr@snark.thyrsus.com」 而不是重复的
「esr@snark.thyrsus.com <mailto:esr@snark.thyrsus.com>」 但
是在 HTML 文件中仍然保有适当的 URL 部份.

3.6. 字型

基本上,SGML-Tools 支援与 LaTeX 相同的字型. 注意,无论如
何,纯文字的转换(经由 groff)不理会有关字型的资讯. 所以,你
可以尽可能的使用多种字型,这对 LaTeX 的转换会有好处. 但是
在纯文字的版本中不要指望能用字型点出重点.

特别是,前面描述过的 tt 这个标签可以用来获致宽度固定的「打字
机」字型, 这应该用在所有的电子邮递位址,机器名称,档案名称
等等. 例如: 

     Here is some <tt>typewriter text</tt> to be included in the document.

相当於: 

     Here is some <tt/typewriter text/ to be included in the document.

记得如果被包含的文字不含有斜线你可以使用简略形式.

其它的字型有 粗体字 用的 bf 以及 斜体字 用的 em. 另外还支援
数种字型,但是我不建议你使用它们,因为它们会被转换成像 HTML
不支援的字型. 粗体,打字机体,以及斜体应该能满足你的需要.

3.7. 列表

此系统支援数种不同的列表.它们是: 

     itemize 像这样的告示列表 
     enum 数字列表 
     descrip 描述列表 

在 itemize 或是 enum 里的项目必须以 item 标签加以标示. 在 
descrip 里的项目必须以 tag 标示. 例如, 

     <itemize>
     <item>这是一个项目.
     <item>这是第二个项目.
     </itemize>

看起来像是这样: 

     这是一个项目. 
     这是第二个项目. 

在 enum 中 

     <enum>
     <item>这是第一个项目.
     <item>这是第二个项目.
     </enum>

你应看得出来,列表可以是巢状的.细节请参阅□例文件.

descrip 列表稍有不同,而且有点难看,但是在某些情况下你可能会
想使用它: 

     <descrip>
     <tag/Gnats./ Annoying little bugs that fly into your cooling fan.
     <tag/Gnus./ Annoying little bugs that run on your CPU.
     </descrip>

最後看起来像: 

Gnats.

     Annoying little bugs that fly into your cooling fan.

Gnus.

     Annoying little bugs that run on your CPU.

3.8. 更进一步的资讯

  1.QWERTZ 使用者指引可以从这里取得 
     ftp://ftp.cs.cornell.edu/pub/mdw/SGML. QWERTZ (以及 SGML-Tools)
     还支援像是数学公式,表格,图形等许多特性. 如果你想用
     SGML 写一般的文件,我建议你用原来的 QWERTZ DTD 而不要用
     修改过的 linuxdoc DTD, 因为这是我特别用来写 Linux
     HOWTOs 及其它类似文件用的. 
  2.Tom Gordon 的 QWERTZ tools 可在此找到: 
     ftp://ftp.gmd.de/GMD/sgml. 
  3.更多关於 SGML 的资讯可以在下面这些网页找到: 
          SGML and the Web 
          SGML Web Page 
          Yahoo's SGML Page 
  4.James Clark 的 sgmls 解析器,及後来的 nsgmls 还有其它工具
     可在这找到: ftp://ftp.jclark.com 以及 James Clark's WWW Page. 
  5.emacs psgml 可在此找到: ftp://ftp.lysator.liu.se/pub/sgml.这个
     工具提供许多 SGML 的功能. 
  6.你可以寄电子邮件到 majordomo@via.ecp.fr 以参与 SGML-Tools
     mailing list,内容写 subscribe sgml-tools. Mailing list 的
     地址是 sgml-tools@via.ecp.fr. 
  7.关於 LyX 的更多资讯可以在此找到: LyX WWW Page. LyX 是一个
     给 LaTeX 用的高阶文字处理器前端. 具半所见即所得界面,
     会自动产生许多 LaTeX 的样式及格局. 可以增快 LaTeX 的学
     习而且使复杂的格局变简单且直接. 


SGML-Tools 使用说明中译版 : 使用 SGML-Tools 撰写文件
Previous: 安装
Next: SGML-Tools 使用说明中译版 

--
※ 来源:.紫 丁 香 bbs.hit.edu.cn.[FROM: 202.118.244.16]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.696毫秒