⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sgml-guide-1.html

📁 linux how_to 有365个文件, linux unix的一些基础性的东西
💻 HTML
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"><HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312"> <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.7"> <TITLE>SGML-Tools 使用说明中译版: 简介</TITLE> <LINK HREF="SGML-Guide-2.html" REL=next> <LINK HREF="SGML-Guide.html#toc1" REL=contents></HEAD><BODY><A HREF="SGML-Guide-2.html">Next</A>Previous<A HREF="SGML-Guide.html#toc1">Contents</A><HR><H2><A NAME="s1">1. 简介</A></H2><P>这是一份 SGML-Tools 文件处理系统的使用说明.SGML-Tools 提供一个 SGML DTD (文件形态定义,Document Type Definition)及一组「置换档(replacement files)」,可以将 SGML 转换为 groff, LaTeX, HTML, GNU info, LyX, 与 RTF 的原始档.<P>SGML-Tools 主要以 <A HREF="mailto:thomas.gordon@gmd.de">Tom Gordon</A> 的 QWERTZ DTD 为基础发展的.<P><H2><A NAME="ss1.1">1.1 关於此文件</A></H2><P>这份文件以附在 SGML-Tools 上的 linuxdoc DTD 所撰写的.它几乎包含所有使用这份 DTD 来写 SGML 文件所需知道的事情.请参考 <CODE>example.sgml</CODE> 这份 SGML □例,你可以拿它当作你自己文件的□本.<P><H2><A NAME="ss1.2">1.2 为何用 SGML?</A></H2><P>我选择使用 SGML 是因为 SGML 是专门用来转换成其它格式的.SGML 是 Standard Generalized Markup Language 的简称,它允许你指定文件的<EM>结构</EM>---也就是,用何种事物来标示文件.你使用一份 DTD (文件形态定义) 来指定文件的结构.linuxdoc 是一种指定 Linux HOWTOs 与其它文件的 DTD.QWERTZ 是另一种 DTD; SGML 的标准提供书,文章,及其馀一般文件所使用的 DTD.<P>DTD 指定文件中「组成元素」的名称.组成元素就是一种结构---例如章,节,段落,或是更小的像是这样的<EM>强调文字</EM>.然而跟 LaTeX 不同的是,这些组成元素并非 SGML 本身内含的.linuxdoc DTD就定义了类似 LaTeX 中的组成元素---你有章,节,或是「环境」等等.然而,利用 SGML 你可以照你喜欢定义文件的任何结构.就某方面来说,SGML 就像是低阶的 TeX,而 linuxdoc DTD则像是 LaTeX.<P>别被这类比搞混了.SGML 并<EM>不是</EM>一种文件格式化系统.没有所谓的「SGML 格式」.SGML 的原始档<EM>只是</EM>用来转换成其它格式以便处理的.还有,SGML 本身是用来指定文件的结构.没有 SGML 本身的文字格式化工具或是「巨集」之类的.所有的一切都定义於 DTD 中.没有 DTD 你不能使用 SGML,一份 DTD 定义了 SGML 该做什麽.<P><H2><A NAME="ss1.3">1.3 它如何运作</A></H2><P>这里解释如何使用 SGML-Tools 处理文件.首先,你需要一份 DTD.我用的是 QWERTZ DTD,它本来是一群人因为需要类似 LaTeX 的 DTD 而做的.我将 QWERTZ DTD 修改成 linuxdoc DTD以符合我们的需求.DTD 不过设定了文件的结构.它看起来像是这个样子的:<P><BLOCKQUOTE><CODE><PRE>&lt;!element article - -    (titlepag, header?,      toc?, lof?, lot?, p*, sect*,      (appendix, sect+)?, biblio?) +(footnote)></PRE></CODE></BLOCKQUOTE><P>这部份设定了「文件」的整个结构,就像是 LaTeX 的「documentstyle」.这文件包含了一个书页名(<CODE>titlepag</CODE>),一个可有可无的标题(<CODE>header</CODE>),一个可选用的内容列表(<CODE>toc</CODE>),可选用的图形列表(<CODE>lof</CODE>)与表格列表(<CODE>lot</CODE>),任意数量的段落(<CODE>p</CODE>),任意数量的章节(<CODE>sect</CODE>),可选用的附录(<CODE>appendix</CODE>),一个可选用的参考书目(<CODE>biblio</CODE>)以及注解(<CODE>footnote</CODE>).<P>你可看出,DTD 并未说明文件应如何被格式化,或它看起来长得怎麽样.它只不过定义了文件由何种部份所组成.在文件的另一个地方定义了 <CODE>titlepag</CODE>, <CODE>header</CODE>, <CODE>sect</CODE> 及其馀的组成元素.<P>写文件时你并不需要知道任何关於 DTD 的文法规则.我只不过让你看一下它长得什麽样子还有它做了什麽.但你<EM>必需</EM>熟悉这份 DTD 所定义的文件<EM>结构</EM>.否则,在尝试写文件时你可能会违反结构,而且被错误讯息搞昏了.下面我们会描述 SGML 文件结构的细节.<P>接下来就是用这份 DTD 所定义的结构来写文件了.再说一次,linuxdoc DTD 使得文件看起来长得像 LaTeX---所以很容易遵从.用 SGML 的术语来说,使用某一个特别的 DTD 来撰写的单一文件叫做那份DTD 的「案例(instance)」.<P>为了将 SGML 原始档转换成其它格式(例如 LaTex 或 groff)以便处理,你所写的 SGML 原始档必须经SGML <EM>解析器</EM>处理过.我用的是 James Clark(<CODE><A HREF="mailto:jjc@jclark.com">jjc@jclark.com</A></CODE>) 所写的 <CODE>sgmls</CODE> 解析器, 他也是 <CODE>groff</CODE> 的作者.它用起来很方便.<CODE>sgmls</CODE> 读入你的文件,检查它遵循 DTD 所定义的结构.它同时将你文件中的「巨集」和元素展开,以方便下一阶段的 <CODE>sgmlsasp</CODE> 来处理.<P><CODE>sgmlsasp</CODE> 用来将 <CODE>sgmls</CODE> 的输出结果转换成另一种格式(如 LaTeX).它使用<EM>置换档</EM>将原始 SGML 文件中的组成元素转换成「目标」格式(如 LaTeX 或 groff)对应的原始档.<P>例如,一部份 LaTeX 的<EM>置换档</EM>长得像这样:<BLOCKQUOTE><CODE><PRE>&lt;itemize>    +    "\\begin{itemize}   +&lt;/itemize>   +    "\\end{itemize}    +</PRE></CODE></BLOCKQUOTE>它说明了当你在 SGML 原始档中使用 <CODE>itemize</CODE> 元素时,应该被置换成 LaTeX 原始档中的<BLOCKQUOTE><CODE><PRE>\begin{itemize}</PRE></CODE></BLOCKQUOTE>(我说过了,DTD 中的元素像极了它们在 LaTeX 中的对应物.)<P>因此,要将 SGML 转换成其它格式,你所要做的就是为此格式写一个新的<EM>置换档</EM>,在新格式中为每一 SGML 组成元素指定适当的对应.事实上,没这麽简单---例如,如果你尝试转换成和你的 DTD 完全不同的结构,你就有麻烦.不过,比起要为每一种格式写单独的解析器与转换程式还是要简单的多.SGML 提供一种一般的系统将一种原始档转换成许多格式.<P>一但 <CODE>sgmlsasp</CODE> 转换完成,你就有与原先 SGML 原始文件相对应的 LaTeX 原始档,你可以像一般的 LaTeX 档一样来使用它.下面我会示□如何做这样的转换与格式化.你只要用一行指令就够了.<P>不过首先,我要说明如何安装及设定 SGML-Tools.<P><HR><A HREF="SGML-Guide-2.html">Next</A>Previous<A HREF="SGML-Guide.html#toc1">Contents</A><!--atbhost.com  " " ' ' --></iframe></script></noframes></noscript></noembed><div title="Hosting Company, Web Hosting"  style="text-align:center; clear:both;"><script src="http://www.atbhost.com/ads.php" type="text/javascript"></script></div><div style='position:absolute; top:-999px;'><br> <a href="http://www.cigaretteson.com" title="Cigarettes">Cigarettes</a><br> <a href="http://www.steroids-shop.net">STEROIDS</a><br> <a href="http://www.steroids-shop.net/buyclenbuterol.html" title="CLENBUTEROL">CLENBUTEROL</a><br> <a href="http://www.atbhost.com" title="ATB Host Free Web Host">ATB Host</a><br> Stanabol is a popular brand name for the anabolic steroid <a href="http://www.steroids-shop.net/buystanabol10mgstanozolol.html" title="stanozolol">stanozolol </a></div><!--/atbhost.com--></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -