<!entity % sectpar " %par; | figure | tabular | table | %mathpar; | %thrm; | %litprog; "> <!entity % par " %list; | comment | lq | quote | tscreen " > <!entity % litprog " code | verb " >
此处描述的每个标签都构成一个段落。
出于显而易见的原因,段落通常是
异常情况以新行开始和结束。figure
和tabular
的行为将在那里解释。
否则你如何注意到这是一个段落呢?
有一些标签总是构成一个段落,并且有一种隐式形成段落的方式。段落有多种类型,因为并非每种类型的段落都允许出现在每个文档类别的每个位置。
不同类型的段落将在接下来的章节中解释。有关 %litprog;
的更多详细信息,请参阅 文学编程。
普通段落可以通过两种方式形成
<p>
标签用于开始一个新的段落。 如果你想在不显式关闭 sect
标签的情况下结束节标题,则此标签是强制性的。 在这种情况下,<p>
标签会自动关闭 <sect>
标签。
两个段落之间的空行隐式地开始一个新的段落。 请注意在 descriptive
列表内。 在那里,一个空的 <tag>
标签不会被空行分段。
<!entity % list " list | itemize | enum | descrip " >
<!element item o o ((%inline; | %sectpar;)*, p*) >
<!element list - - (item+)>
列表标签将被映射到一个没有项目符号、数字或任何其他内容的裸列表。
为了让你看到它,我放置一个小例子
<list> <item>A point <item>Another one <item>Last </list>
看起来会像(取决于映射)
<!element itemize - - (item+)>
项目符号列表标签将被映射到一个带有项目符号的列表,它通常用于项目顺序不重要的列表。
一个小例子
<itemize> <item>A point <item>Another one <item>Last </itemize>
看起来会像(取决于映射)
<!element enum - - (item+)>
编号列表标签将被映射到一个带有数字的列表。
一个小例子
<enum> <item>A point <item>Another one <item>Last </enum>
看起来会像(取决于映射)
<!element descrip - - (tag?, p+)+ >
描述列表标签将被映射到一个描述列表。 这里的概念与其他上述类型的列表略有不同。
在这里你放置一个 tag(这次标签的名称实际上就是字面上的 tag
),它将在后面描述。
一个小例子
<descrip> <tag/sgml/structured general markup language. <tag/html - hypertext markup language/ A sgml implementation. It contains some concepts about linking information together in a very convenient way. This made it to be so successful and to become the standard for documents published by the internet. <tag/internet/A worldwide connected internet (internet here as a technical term) </descrip>
看起来会像(取决于映射)
结构化通用标记语言。
sgml 的一个实现。 它包含一些以非常方便的方式将信息链接在一起的概念。 这使其如此成功并成为互联网发布的文档的标准。
全球连接的互联网(这里互联网作为一个技术术语)
<figure>
和 <table>
标签形成非常特殊的段落。 它们并不总是停留在正常的文本流中。 这两个标签都可以包含一个 loc
(location) 属性,该属性指示如何处理此特殊段落的流。
loc
属性的值是一个最多四个字母的字符串,其中每个字母声明图形或表格可能出现的位置,如表 表格位置 中所述。
h | 此处 | 与 SGML 文件中相同的位置 |
t | 顶部 | 在页面顶部 |
b | 底部 | 在页面底部 |
p | 页面 | 仅在单独的页面上显示图形和表格 |
loc 属性的默认值为 top
。
<!element table - - (tabular, caption?) >
正如你所看到的,一个表格由 <table>
标签本身组成,包括一个 <tabular>
标签和一个可选的 <caption>
标签。
<tabular>
标签也可以在没有 <table>
标签的情况下放置,因此它将在其自己的章节中详细描述(参见 表格标签)。
caption 也用于放置表格列表的条目(如果你声明了一个)(参见 表格列表标签)。
一个简短的例子将展示它是如何协同工作的。
<table loc="ht"> <tabular ca="lcr"> Look|this|table@ Isn't|it|nice@ 1.234|mixed|columns </tabular> <caption>A sample table </table>
看 | 这个 | 表格 |
不 | 是 | 很棒 |
1.234 | 混合 | 列 |
caption “一个示例表格” 将会是表格列表中的名称。
<!element figure - - ((eps | ph ), img*, caption?)>
<figure>
标签的用法与 <table>
标签等效。 你可以放置 <eps>
或 <ph>
标签来代替 <tabular>
标签。
<!attlist eps file cdata #required height cdata "5cm" angle cdata "0">
<eps>
标签旨在将 封装 postscript™ 格式的外部文件包含到文档中。<eps>
标签的属性是
file
属性需要一个以 .ps
后缀结尾的封装 postscript™ 文件的文件名。 强制性的 .ps
后缀不能被写入。
文件被缩放到的空间的高度。 如果你没有指定,则默认为 5 厘米。 注意数字和长度单位 (i
, cm
) 之间没有空格。
角度以普通度数 (0-360) 给出,并且随着数字的增加,文件会逆时针旋转。
一个例子
<figure loc="here"> <eps file="logo" height="4cm" angle="15"> <img src="logo.gif"> <caption>A included encapsulated postscript™ </figure>
img 标签被 LaTeX 映射忽略,对 html 很有用,因为大多数浏览器不知道 eps。
这里的 caption 将会进入 图形列表,如 图形列表标签 章节中所述。
<!attlist ph vspace cdata #required>
vspace
属性决定。 注意: vspace
属性的数字参数需要在数字后面直接跟一个单位。 不要在这里留空格(与 封装 Postscript™ 标签 中的 height
属性相同)。
<figure loc="ht"> <ph vspace="5cm"> <caption>A blank space. </figure>
结果为
此时你可能想要寻找你的剪刀和胶水。
<!element tabular - - (hline?, %tabrow, (rowsep, hline?, %tabrow)*, caption?) >
<tabular>
标签是单独编写的,则它被解释为自己的段落。 与 <table>
标签一起使用时,它将成为 <table>
标签的段落的一部分(参见 表格标签)。在 tabular
标签内,你有行和列来分隔文本。 你必须至少有一列和一行。
否则就没什么用处了。
<tabular>
标签有一个强制性的 ca
属性,用于 列对齐。 列对齐为每列按照从左到右的顺序包含一个字符。 你可以为每列放置的字符在表 列对齐方式 中描述。
char | 对齐方式 |
l | 左对齐 |
c | 居中对齐 |
r | 右对齐 |
理论上,你应该能够在 ca
属性中放置一个 | 来绘制一条水平线以分隔两列。 问题是:它不起作用。 解析器很好地接受了它,只有 LaTeX 输出会将 |
映射到 {$|$}
,这当然是用于四列的集合,并且所有四列的列对齐方式都无效。 我将尝试弄清楚该怎么做。
<tabular>
标签内的列由一个列分隔符 <colsep>
标签分隔。 字符 |
被翻译成 <colsep>
,所以你也可以放置它来代替
更少的打字,更多的乐趣。.
对于列有效的内容也对行有效。 你可以通过一个行分隔符 <rowsep>
标签来分隔它们。 字符 @
被翻译成 <rowsep>
。
可选地,你可以使用 <hline>
标签放置一条水平线。 注意这一点:SGML 工具会很好地解析它,无论你将它放在你想要在下面画线的行之前,还是放在你想要在上面画线的行之后。 但是,唯一可以在不导致解析器喊出“错误”的情况下编写它的位置是直接编写它,并且在行分隔符后面没有空格或换行符。
<tabular ca="lcr"> Look|this|table@<hline> Isn't|it|nice@ 1.234|mixed|columns@ </tabular>
在表 表格标签的示例表格 中显示结果
看 | 这个 | 表格 |
不 | 是 | 很棒 |
1.234 | 混合 | 列 |
在 LaTeX 映射中,如果你放置一个没有表格标签的表格标签,一切正常,只有在其他映射(例如 html)中它会被搞砸。
<!entity % mathpar " dm | eq " >
数学段落由显示公式或 <dm>
标签组成
不,抱歉,不是德国马克! ;-)或方程,由
<eq>
标签标记。 它们的工作方式非常相似。这两个标签都包含一个数学公式。 有关此处有效的标签,请参阅 数学公式。
由于 Netscape 和 Microsoft 都没有看到在他们的浏览器中添加数学映射的任何需求(如 w3c 要求和定义的那样),因此没有很好的映射方式,或者至少在 html 中显示数学内容的方式。 因此,如果你查看在线版本,请随意怀疑这个人在这里说什么废话。 也许你应该看一下 postscript 版本。
此标签将数学公式显示为一个段落。 该公式被映射为居中的单行
不能保证这一点。 你知道:映射是一种品味问题。.
<dm>(a+b)<sup/2/=a<sup/2/+2ab+b<sup/2/</dm>映射到
<dm>(a+b)<sup/2/=a<sup/2/+2ab+b<sup/2/</dm>映射到
<!entity % thrm " def | prop | lemma | coroll | proof | theorem " > <!element def - - (thtag?, p+) > <!element prop - - (thtag?, p+) > <!element lemma - - (thtag?, p+) > <!element coroll - - (thtag?, p+) > <!element proof - - (p+) > <!element theorem - - (thtag?, p+) >
thtag
。 对于所有其他类型,thtag
给出了定理段落的 tag。只需尝试使用适合你正在输入的内容含义的那个。
<thrm> <thtag>Alexander's thrm</thtag> Let <f><fi/G/</f> be a set of non-trivially achievable subgoals and μ an order on <f><fi/G/</f>. μ is abstractly indicative if and only if it is a linearization of <f><lim><op>μ</op><ll><fi/G/</ll><ul>*</ul></lim></f>. </theorem>
thrm
被替换为适当的标签。
也许一些懂数学的人会对我滥用类型感到震惊,但我很懒,所以我只是简单地复制了这些例子
定义 (def
)
设
的线性化
设
引理 (lemma
)
设
推论 (coroll
)
设
设
证明与上面相同,只是没有 thtag
设
这两个标签都来自一个段落,并且具有非常相似的行为。 在这些标签内部,大多数特殊字符不需要像 命名符号 章节中那样的命名形式。 例外是
标签结束符
与普通段落映射不同,空格和换行符将被字面映射(就像你在源代码中编写它们一样)。
同样(关于手动布局),映射的字体将是非比例字体。
请参阅 IIWW 和 IIWW
之间的区别。
再次,我既不是母语人士,也不太喜欢数学。 所以我只是放置了一些废话,这可能会给那些想使用本文档学习制定数学或物理理论的人带来头痛和白发。
欢迎随时发送更好的例子。
<!element code - - rcdata>
如果你想在文本中编写源代码示例,请使用代码标签。
一个代码示例
<code>
#include <stdio.h> int main() { printf("Hello world"); return 1; }
<!element verb - - rcdata>
对于除源代码之外的任何其他需要良好的旧式空格填充的内容(为此使用 代码标签),例如终端硬拷贝、ASCII 图形等,请使用原文标签。
一个原文示例
<verb>
///////// | * * | | | | | <---> | \_____/</verb>