为什么 (La)TeX 的布局模型不能像 CSS 的布局模型一样简单?

为什么 (La)TeX 的布局模型不能像 CSS 的布局模型一样简单?

我觉得 CSS 的布局模型比 (La)TeX 的布局模型简单。Knuth 开发 TeX 时,提出 CSS 模型的想法是一件“困难”的事情?或者说 CSS 布局模型不适合应用于 (La)TeX。

答案1

如果您阅读过 Håkon Wium Lie 的博士论文,您会发现 CSS 的许多概念都是基于 TeX 和 LateX。威廉·李和所有其他 CSS 贡献者都提出了一种将 HTML 内容与表示分离的系统。网络上的众多论坛和教程间接证明了 CSS 模型也不是最好的。您可能会发现它更容易,因为您已经习惯了它。此外,CSS 不提供任何编程手段。这必须通过 JavaScript 来完成。它也无法帮助进行数学等。

当 Knuth 发明 TeX 时,还没有计算机科学,没有网络,没有 html 和 CSS。我个人的观点恰恰相反。如果 html 被标记为 LaTeX,生活会更轻松,网络看起来会更好等等。如果有一个方面我同意你的观点,那就是缺乏概念<div></div>和将部分向左或向右浮动的能力。这可以使用 TeX 来实现,但不那么容易。有一个 XML 版本的 LaTeX 称为,tralics也许你可以看看它看起来会是什么样子!

编辑

网络上有超过 5000 亿个 pdf 文档,而最好的当前创建 pdf 的方法是使用 TeX->pdf 引擎之一。

答案2

请注意,CSS 布局模型并不简单,因为它包含水平和垂直拼接框的概念,这很棘手 (1) 。CSS 表面上的简单性在于如何通过样式表将参数传递给布局引擎;相比之下,Tex 使用一种众所周知的难以掌握的编程语言将这些参数与布局域模型中的对象相关联。

此外,Tex 有一个得到普遍认可的参考实现;CSS 版本一和二是在浏览器大战 (2) 激烈时期推出的,这使得使用 CSS2 盒子模型制作某种文档变得容易,但要确保使用 Tex 的良好阅读体验就困难得多。

另一个重要的、不断发展的基于 Tex 的排版平台,上下文 NG,实际上允许按照样式表的思路进行规范,使用其\...setup命令及其对命名设置的支持:在某种程度上,这更为复杂,这在很小程度上是由于与 Knuth 的宏语言的历史联系,而更大程度上是由于支持更为复杂的布局需求。我似乎记得在 Context 世界中,直接从简化的 CSS 样式表进行布局方面已经做了大量工作;如果能提供该技术当前状态的链接,我们将不胜感激。

为什么是关于思想的:指导 CSS 设计的编程语言、文档呈现和抽象的思想是在 Tex 之后出现的。Context 和 Latex 都旨在减少布局问题与内容的耦合。这是一项持续不断的努力。

(1):我再多说一下比较复杂性我的回答CSS 和 Latex 盒子模型之间有什么区别?在 Stack Overflow

(2):阅读妮可·亨宁 (Nicole Henning) 的图书馆实录从麻省理工学院 (MIT) 推动内部使用网络标准的努力来看,浏览器之战已成定局。现在,有了 CSS 版本 3,不再有占主导地位的浏览器;相反,HTML5 和 CSS3 网络标准代表着一种和平条约。

答案3

更糟糕的是,与 CSS 不同,LaTeX 不适用于无人值守的排版

因此,我现在求助于使用 PrinceXML 自动进行 CSS 排版适用于长度超过一封信且非商业或学术内容的任何内容。我的网站上的 PDF 打印件以这种方式生成,无需任何用户干预。

如果你仔细想想,就会发现 HTML+CSS 正是为此而设计的:在不可预测尺寸的屏幕上进行无人值守的排版。印刷页面只是另一种媒体视口。

Prince XML随着越来越多的专业文档书用户使用 XSL-FO 进行自动 CSS 排版。Prince XML 是一个商业产品。如果它追求牙线商业策略,其采用率可能会大幅上升。

打印-css.rocks,可以按照无人值守 CSS 分页媒体排版的最新发展

除此之外,ConteXt 更接近 CSS 思维比 LaTeX 更佳。

相关内容