📄 sgml-guide.txt
字号:
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. 序文 在文件的「序文」中你设立像是标题以及文件型态(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. 章节与段落 在序文之後,你就可以准备进入文件本身.有下列的分节指令可以使用: * 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> 标签;只要在分节指令後面的第一个 段落开始处加就行. 文件结尾 在文件结束的地方,你必须使用这个标签: </article> 以告诉解析程式你已经完成 article 这个组成元素(涵盖整份文件). 3.5 交互参考 现在我们要进入系统的其它功能.交互参考很容易.例如,如果你想要制作某一 节的交互参考,你得像这样标示该节: <sect1>简介<label id="sec-intro"> 接著你就可以在文件中的某个地方式用这个表示式参照该节: 请参考<ref id="sec-intro" name="简介">一节的介绍. 这将会以 sec-intro 标记的节号替换掉这个 ref 标签. 对於 groff 以及 HTML 转换 name 这个参数是必须的. SGML-Tools 使用的 groff 巨集设定目前 并未支援交互参考,而且它常常以名称取代数字参照某一节. 例如,本节是 [15]交互参考. 在全球资讯网上使用的通用资源定位器,即 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 套件 [16]ftp://sunsite.unc.edu/pub/Linux/utils/text/sgml-tools-0.99.0.tar.g z. 一个有用的变形是 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 使用者指引可以从这里取得 [17]ftp://ftp.cs.cornell.edu/pub/mdw/SGML. QWERTZ (以及 SGML-Tools) 还支援像是数学公式,表格,图形等许多特性. 如果你想用 SGML 写一般的文件,我建议你用原来的 QWERTZ DTD 而不要用修改过的 linuxdoc DTD, 因为这是我特别用来写 Linux HOWTOs 及其它类似文件用的 . 2. Tom Gordon 的 QWERTZ tools 可在此找到: [18]ftp://ftp.gmd.de/GMD/sgml. 3. 更多关於 SGML 的资讯可以在下面这些网页找到: + [19]SGML and the Web + [20]SGML Web Page + [21]Yahoo's SGML Page 4. James Clark 的 sgmls 解析器,及後来的 nsgmls 还有其它工具可在这找到 : [22]ftp://ftp.jclark.com 以及 [23]James Clark's WWW Page. 5. emacs psgml 可在此找到: [24]ftp://ftp.lysator.liu.se/pub/sgml.这 个工具提供许多 SGML 的功能. 6. 你可以寄电子邮件到 [25]majordomo@via.ecp.fr 以参与 SGML-Tools mailing list,内容写 subscribe sgml-tools. Mailing list 的地址是 [26]sgml-tools@via.ecp.fr. 7. 关於 LyX 的更多资讯可以在此找到: [27]LyX WWW Page. LyX 是一个给 LaTeX 用的高阶文字处理器前端. 具半所见即所得界面,会自动产生许多 LaTeX 的样式及格局. 可以增快 LaTeX 的学习而且使复杂的格局变简单且 直接.References 1. http://www.phys.ntu.edu.tw/~cwhuang/pub/ 2. mailto:cwhuang@phys.ntu.edu.tw 3. mailto:thomas.gordon@gmd.de 4. mailto:jjc@jclark.com 5. ftp://sunsite.unc.edu/pub/Linux/utils/text/sgml-tools-0.99.0.tar.gz 6. http://www.xs4all.nl/~cg/sgmltools/ 7. ftp://prep.ai.mit.edu/pub/gnu 8. ftp://sunsite.unc.edu/pub/Linux/utils/text 9. ftp://sunsite.unc.edu/ 10. ftp://prep.ai.mit.edu/pub/gnu 11. ftp://prep.ai.mit.edu/pub/gnu 12. ftp://sunsite.unc.edu/pub/Linux/utils/text 13. ftp://sunsite.unc.edu/pub/Linux/system/Manual-pagers 14. ftp://ftp.via.ecp.fr/ 15. file://localhost/tmp/bg5sgmltools.26682/SGML-Guide.txt.html#cross-ref 16. ftp://sunsite.unc.edu/pub/Linux/utils/text/sgml-tools-0.99.0.tar.gz 17. ftp://ftp.cs.cornell.edu/pub/mdw/SGML 18. ftp://ftp.gmd.de/GMD/sgml 19. http://www.w3.org/hypertext/WWW/MarkUp/SGML/ 20. http://www.sil.org/sgml/sgml.html 21. http://www.yahoo.com/Computers_and_Internet/Information_and_Documentation/Data_Formats/SGML/ 22. ftp://ftp.jclark.com/ 23. http://www.jclark.com/ 24. ftp://ftp.lysator.liu.se/pub/sgml 25. mailto:majordomo@via.ecp.fr 26. mailto:sgml-tools@via.ecp.fr 27. http://wsiserv.informatik.uni-tuebingen.de/~ettrich/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -