![排版语言和标记语言有什么区别](https://linux22.com/image/298429/%E6%8E%92%E7%89%88%E8%AF%AD%E8%A8%80%E5%92%8C%E6%A0%87%E8%AE%B0%E8%AF%AD%E8%A8%80%E6%9C%89%E4%BB%80%E4%B9%88%E5%8C%BA%E5%88%AB.png)
我记得,我读过一篇技术期刊上的文章,作者提醒读者注意很多让人困惑的事情排版语言和标记语言。
我如何才能确定一种语言是排版语言还是标记语言?
据我所知,TeX 是一种排版语言,而 LaTeX 是在 TeX 之上实现的标记语言。这样说对吗?
答案1
据我所知,TeX 是一种排版语言,而 LaTeX 是在 TeX 之上实现的标记语言。这样说对吗?
是的,这既准确,又简洁。
排版语言提供了将输入流转换为表面输出内容的工具。这些工具包括
- 访问字体,以及选择和/或切换字体的命令
- 命令沿表面向各个方向移动
- 将输入流分成行或段落,并将结果分成页面的机制
- 以更有效的方式应用“基本”命令
作为最后一点的一个例子,tex 中一个非常有价值的功能是分组概念。我使用过的其他排版软件中没有这个功能。例如,在这样一个系统中,有一个命令将上标提升到适当的高度,还有一个“反向”命令将其后退相同的距离。(它并不总是将其放回到原始基线的位置。)另一方面,tex 在新组开始时存储原始值,应用该组的本地值,然后忘记本地值并恢复保存的值。
另一方面,标记系统根据材料的功能或结构来识别材料,而不是根据材料在表面上的外观来识别材料。因此,有“标题”、“作者”、“章节”、“节”、“定理”等标识符,这些标识符在处理时转换为使用适当的排版命令。只要使用通用的词汇和语法,这种结构标记就可以轻松切换输出格式。Latex 和 XML 是标记系统的两个例子。如果没有“后端”支持,它们都无法使用。在 Latex 中,这种支持是不可或缺的,而 XML 则需要单独的工具;然而,在这两种情况下,识别的都是结构元素,而不是最终的外观,因此称为“标记”。
答案2
@barbara beeton - 这篇文章非常有趣,我完全同意,实际上我想将以下内容添加为评论,但它太长了,因此将其写为答案。我喜欢“排版语言”这个术语,即使我在维基百科中找不到它的定义。因此,我想出了以下关系类比:
(数字)排版和手稿 vs 样式表语言和标记语言:根据(数字)排版、手稿、样式表语言和标记语言的定义,样式表语言是一种数字排版形式,旨在使用标记语言编写的标记手稿文档在显示时清晰易读且具有吸引力。样式表语言功能:“语法”、“选择器”、“属性”、“值和单位”、“值传播机制”和“格式化模型”包含排版所需的所有正式信息:字体、点大小、行长、行距、字母间距和字母对之间的空格。