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>. 为了表示左边的角括号,你必须使用 <
这个组成元素, 这是一个会展开成左括号字元的「巨集」.因此,
我在原始文件中键入
angle brackets around it, as so: <tt><foo></tt>.
一般来说,以结合字元(&)作为开始表示这是一个特殊的巨集. 例
如,产生 % 符号的 % 产生 | 的 | 等等. 对於所有
的「特殊字元」都有结合巨集可以表示它们.
通常,你不需要使用结合巨集表示某特殊字元,然而,在某些情况
下这是必须的。最常用的是:
Use & for the ampersand (&),
Use < for a left bracket (<),
Use > for a right bracket (>),
Use </ for a left bracket with a slash (</)
Use $ for a dollar sign ($),
Use # for a hash (#),
Use % for a percent (%),
Use ˜ for a tilde (~),
Use `` and '' for quotes, or use “ for ``, ”
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 环
境中你必须:
使用 & 代表 &
使用 </ 代表 </
不要在 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毫秒