我时不时需要向某人比较一下 LaTeX 与 HTML,但很难给出一个简洁的答案来说明两者的用途,以及为什么不应该为了另一个的目的而滥用其中一个。
此外,差异还涵盖多个领域,例如目标媒介、布局与标记等等。
也许这是一个收集一些答案以供日后参考的好地方。
答案1
我假设您问的是 CSS 与 HTML 的结合,否则您无法真正将任何样式添加到 HTML 文档中。它们之间有很多不同之处 — 但不要忘记它们之间也有很多相似之处。
(La)TeX 对排版要求和媒体有非常好的了解。
- (La)TeX 将对齐文本、自动连字、提供适当的间距以及其他排版功能。(您可以使用 XeTeX 获得更多排版功能。)默认类的
article
文本宽度已针对可读性进行了优化。大多数浏览器没有此类功能,而使用 HTML/CSS 时您必须手动指定大小。 - (La)TeX 会对内容进行分页,您可以根据左/右页设置不同的页面样式,以用于物理出版目的。HTML 本身并不了解“页面布局”,即一张物理纸张。您可以使用 CSS 指定特定于打印的布局,但分页并不是一件容易的事。
(La)TeX 和 HTML 有不同的定位系统。
- 有些事情是相似的,比如区域中文本的布局,以及细粒度的位置调整,但使用 CSS 定位内容的主要方式之一是“浮动”它比 LaTeX 浮动更能控制定位。同时,
\hfill
除非使用表格,否则实际上没有 CSS 等效项。
层叠样式表是层叠的。
- 使用 CSS,您可以指定基于页面上元素层次结构的样式,而不是 LaTeX 的范围内联样式命令。元素会自动从其父元素继承大部分样式,但可以根据取决于多种因素。
HTML 文档是实时的并且响应迅速。
您无法滚动排版的 LaTeX 部分,也无法大量使用 JavaScript 来操作和实时更新页面上的元素。
CSS 有
@media
查询让您为不同的目标媒体(从屏幕和打印机到屏幕阅读器和 3D 眼镜 - 任何客户端使用的任何东西)提供不同的布局,以及不同的视口大小。HTML 通常是在浏览器中使用,因此利用以下特性是很常见的:
navigator
目的在 JavaScript 中,“访问过”链接样式等。如今,在移动设备上,您甚至可以访问加速度计或 GPS 等硬件传感器。
浏览器可以构建自己的功能!
- 对于如何使用 HTML 和 CSS(以及 JavaScript),唯一真正的权威是浏览器本身。许多浏览器都实现了独有的新功能,这些通常会导致规范更新并最终得到更广泛的采用。对于 LaTeX,可用的功能取决于您使用的 LaTeX 版本以及可用的软件包。