我认为更新这些转换器将有助于 TeX 保持其作为文档处理语言的相关性。在过去的几年中,Web 开发确实突飞猛进。CSS3 为 Web 上的丰富排版以及使用 TeX 算法的连字提供了大量支持。还有许多用于排版和数学的 API 和工具。Web 正在赶上排版;它永远不会与 PDF 相同,但值得更新这些工具以更好地将 LaTeX 转换为 Web 文档。
网页有很多优点
- 加载速度比 PDF 更快
- 适用于各种设备和浏览器(无需 PDF 阅读器),包括移动设备
- 通过使用MathJax API,您可以获得高质量的数学表达式排版,并可以缩放和轻松导出 LaTeX 和 MathML
- 通过将数学表达式嵌入/弹出/链接到 WolframAlpha,方程式保留其语义编码,并且表达式/文档变得具有交互性
- 您可以链接到文档内部和外部的特定部分(您可以转换 TeX 标签来支持此功能)
- Tikz 和 metapost 图片可以转换为 SVG,从而可以添加美观且可缩放的图表和插图
- 工具提示、替代标签、悬停图标、动画等可能有助于提高可用性/可访问性
我是 TeX 和 StackExchange 的新手,没有编程能力开发这样的项目,但也许有人对这样的项目感兴趣。Eitan Gurari 的软件无人问津,需要有人来承担继续开展此类项目的挑战。
(标签 TtH 可能也属于这里,但我无法添加它。它是一个将 TeX 转换为 html 的单 C 文件程序)
编辑:根据目前的回复,我只想澄清我的问题。TeX 用于漂亮打印。我还没有看到一个转换后的 TeX->HTML 看起来不错的示例,数学通常会转换为丑陋的 HTML 或图像。可能可以捆绑资源以获取工具的输出并对其进行样式化,但我希望至少看到一个有吸引力的示例——或者更好的是——一个转换器实际上可以漂亮地打印网页,类似于 LaTeX 对 DVI/PDF 所做的那样。
答案1
你列表中的许多事项已经实现:
tex4ht
可以用 mathml 生成 xhtmltex4ht
可以从 tikz/pgf 图形生成 SVG 图形- METAPOST 已经可以输出 SVG
- 该包负责链接您的文档的各个部分
hyperref
,适用于 pdf 和 html/xhtml。
连接到 Wolfram|Alpha 肯定不是“网络标准”,而且可能很困难,因为 TeX 中的数学大多以“表示”而不是语义的方式描述。另一方面,应该可以使用该hyperref
包为每个单独的方程式执行此操作。我真的没有看到任何自动执行此操作的方法。
我知道可以在 PDF 文档中制作工具提示并包含动画,但我不确定转换为 HTML 时如何工作。
答案2
好问题——我真的不知道为什么不行。我真的一点都不喜欢 MathJax:它会干扰页面加载,而且比用 TeX 渲染的精心构造和对齐的 PNG 图像差很多(至少在屏幕上)。
最近,我通过 CSS 使用 Latin Modern 字体来制作程序列表,获得了非常积极的体验@font-face
。当常规文本与高分辨率 PNG 图像交错时(对于过于复杂而无法转换为纯文本的公式),效果是天衣无缝的。
我使用 Ghostscript 渲染 PNG 图像,使用 4 位抗锯齿技术,以 16 倍实际尺寸显示,然后重新采样为 4 倍实际尺寸,然后将图像的高度和宽度指定为 4 倍版本的 25%,使其在默认尺寸下在屏幕上完美显示像素,因为 Web 浏览器会自动将 4 倍版本缩小到 1 倍。打印时,图像的屏幕分辨率为 4 倍,即大约 400 dpi。
然后,PNG 图像将嵌入 HTML 文档本身,而不是作为外部嵌入资源进行链接。这使得页面加载速度极快,加载页面时不会出现跳动。例如,以下<img>
标签表示\sqrt{\pi}
嵌入的大小为 88 × 64 像素,但显示的大小为 22 × 16 像素。现代浏览器会自动缩放文本,使其在任何尺寸下看起来都很漂亮。
<img
width=22
height=16
style="vertical-align:-23.6%;"
title="\sqrt{\pi}"
src="data:image/png;base64,
iVBORw0KGgoAAAANSUhEUgAAAFgAAABACAAAAAC7e+8eAAADoUlEQVRYhbWYTUgbQRTH/4mp0UrVBjHW
fhukam2Lih/FVqmFisWCRWmR9lAR0YMIPRSRHooELyJF6EEoIhRBBBFEKIIXQQgUSkAQCgFBEAQPgrAg
5CBsZ/Yr2dnNOEOyc/G9lzc/Z2fy3vw3UOVG7CaERhiS4LAYVxr8C8gPi4wOSfAtYFUsUw68DlQIpsqB
q4CfXoC3gZBorhS4DpjzAvwHKBZOlgE3AlEvwPtAkXi2BLgdmPQCnACCF16Au4AJca44+MiHK+degHuB
IQmuMPjEjzzFC/Ag8EGGKwpW8uA/8QI8BLyV4gqCzwPwHXkBHgdeyXHFwBdB4MAL8CTQIckVAxcB/xzB
o7HqCvcbunJcEBwFWh3BYR9HVShi4GLgLxNKPuSpFb/YiueBx2ysnsctXhADlwE7TOgdWVX3Ku0dCsJ6
KI5HtpTLwYvAAyZEhFbTsW7+QJ9ufMNHSXAl8NseOQ2mGlIHlnSjE4uu4NlnSXcuUVX3mdBLdFl2EEb3
D2HfBay0AJ/dwfeBdXtkDyHr7tswtzgJ5tk1N1aCTFf7FnCDCcXr45bdbTa9NRQ6wVH9u/7dDVwDZu/s
I4hl3RhhZSjU8+coKadgN4G6C5RxuCuAcTRNuMeAEyG0K0vakjedMxuAeQ64FZWGVYpaBtzun9biZNQ5
JsaBEg5X8aFft8jZNTPgY+2bPq0teY+d+RSY4YCnYG7xJtDGgPU/tJUDL5iJiUtkYLm1xTNAoyuYnCoZ
PuYi7gS+crhE4JtbPOioexN85qdke7kf+lDAk4FtwHvD7En9DwasvqbggK2ue/ky8IR8/dcM+4lj0yzw
gXZ8U+kT/XwZOEz2znygajLX/nCpCm+m4GtpH5GmO8LhqoXAXdOOOMogBd7Rlrxg+Wd5CPBk4CzJHjad
WuKMZgDTt0PgtuV+Ys+SGfR1PWY6rcSJZALrdb1teEoA/lMOd4PkFljeAJ1qS0/votfpp+a9SVRVP2/B
5GUyTcXQfcGXTGC9rhOanQzyZeAeTU39ELBPXVt/Swfrda2rP6KqengLJqVma+1XbefDgNVRTW2cGomH
PDB99llm6nJGsF7X9B2G7Eonj6uqc302jjoxELP59ivwDQXnX2iqyikDpYYdrNf1tDrnaK9ZgtUWCi4l
IsEhA7ME72pLJjvSkCXXIbEihmLczTV4RefWZMt1isKQBt7KPThKuVVZc11kbAEcMjA34DHgTvZcF7AS
qdjJAfg/gMLtzD7H7dsAAAAASUVORK5CYII="/>
下面是另一个不同文本大小的示例。 是\sqrt{a^2+b^2}
图像;其余的是文本。在我看来,无法区分嵌入的高分辨率图像和文本(当然,除了间距线索之外;TeX 的字距调整要好得多)。这些是从 HTML 文档中截取的实际大小的屏幕截图:
尺寸 -2
尺寸 -1
正常尺寸
尺寸 +1
尺寸 +3
尺寸 +6
无论如何,事情能让网页看起来很棒——图像当然不必丑陋或加载缓慢。我不知道为什么嵌入式高分辨率图像现在还不常见。
秘诀是 (1) 进行大量的过采样,然后 (2) 在下采样后使渲染的文本变暗(为此我使用了 0.3 的伽马调整因子)。
我真的希望维基百科能这样做。由于使用了低分辨率图像,维基百科上的数学公式在字体放大或打印页面时看起来像素化: