不是过时的 LaTeX 到 HTML 转换器吗?

不是过时的 LaTeX 到 HTML 转换器吗?

我想将 LaTeX 转换为 HTML。很久以前(在我写论文的时候,2000 年!),我使用过 Hacha 和 Hevea... 但显然,它们不再维护,尤其是 Windows 版本。最近,Google 向我推荐了 tex4ht,但似乎该项目也处于停滞状态(该网站表示很快就会有图像管理的机会,但那是在 2014 年,从那时起就再也没有了),而且记录不全。

因此我的问题是:是否有最新的解决方案可以将 LaTeX 转换为与 Windows 兼容的 HTML?我需要的选项是:

  • 使用 CSS
  • 将文档剪切成多个文件
  • 允许使用图片进行导航(上一个、上一个、下一个)
  • 与Windows兼容

答案1

确实,主页tex4ht和文档似乎已经过时了,但项目本身仍然活跃,这一点可以从提交历史邮件列表。例如,我们最近添加了 MathJax 输出支持。

自从原作者去世后,CTAN 上的完整发行版也确实没有更新过,但更新直接进入 TeX 发行版,因此无需手动安装发行版,这将是一个相当复杂的过程。运行更新所需的一切都tex4ht包含在 TeX Live 中。

目前,我正在研究新文档,这应该比现在的状态有很大的改善。

关于您的问题,所有这些都应该可以通过 实现tex4ht。它为您的文档生成基本的 CSS,还允许在生成的 HTML 中包含自定义 CSS。它支持将文档拆分为章节、部分等单独的文件。当您使用 TL 时,它可以在 Windows 上运行,但 Miktex 也可以运行。

以下文件myconfig.cfg将按部分拆分文章:

\Preamble{xhtml,2}
\Configure{AddCss}{test.css}
\Css{body{background-color:green;}}
\Configure{crosslinks}{}{}{\includegraphics{next.png}}{\includegraphics{prev.png}}{}{}{}{\includegraphics{up.jpg}}
\begin{document}
\EndPreamble

2使用命令中使用的选项请求拆分\Preamble\Css命令可用于简单的 CSS 指令,而\Configure{AddCss}需要包含外部 CSS 文件。\Configure{crosslinks}需要图片作为上一页、下一页和首页的链接。

可以使用以下命令请求编译该文件:

make4ht -uc myconfig.cfg filename.tex

制作4小时是的构建系统tex4ht,它应该代替命令htlatex

答案2

潘多克是处理 LaTeX 领域的新手输入,并且开发非常活跃,每隔几周就会发布新版本。(它可以处理 LaTeX输出自成立以来)。适用于 Windows,而且也是最近的……

Pandoc 可以处理多种输入格式:

echo $(pandoc --list-input-formats)

    commonmark creole docbook docx epub gfm haddock html jats json latex \
    markdown markdown_github markdown_mmd markdown_phpextra markdown_strict \
    mediawiki muse native odt opml org rst t2t textile tikiwiki twiki vimwiki

它可以将每个输入转换为以下输出格式:

 echo $(pandoc --list-output-formats)

     asciidoc beamer commonmark context docbook docbook4 docbook5 docx \
     dokuwiki dzslides epub epub2 epub3 fb2 gfm haddock html html4 html5 icml \
     jats json latex man markdown markdown_github markdown_mmd \
     markdown_phpextra markdown_strict mediawiki ms muse native odt \
     opendocument opml org plain pptx revealjs rst rtf s5 slideous slidy tei \
     texinfo textile zimwiki

几乎可以针对每一种格式以适当的方式处理这些输出的详细样式:对于基于 HTML 的输出(包括 EPUB 或 Slidy、DZSlides、Slideous、Reveal.JS 和 S5 幻灯片),您可以应用 CSS,对于 ODT 或 DOCX,您可以使用reference.docxreference.odt从中克隆样式,对于 LaTeX,您可以自定义文档模板等。

Pandoc 的工作方式非常模块化:它首先用专门的读者组件,将其转换为自己的内部格式,native,然后依次转换native使用适当的Writer成分。

LaTeX 的阅读器组件是Text.Pandoc.Readers.LaTeX。下面是其最近(2019 年 11 月)发布的 v2.5 中的更新日志摘录,证明了其对相关组件的积极维护和开发:

文本.Pandoc.阅读器.LaTeX

清理了维度参数的处理。允许小数点、前空格。
不允许逐字参数等。
允许括号选项前有空格。允许
表格中 \ 后的可选参数。
改进 \tiny、\scriptsize 等的解析。解析为原始,但要知道这些字体更改命令不带参数。

不过,我无法评论 Pandocs 阅读对专门的 LaTeX 功能和环境的支持范围。这取决于您来决定和评估。也许,甚至很可能,tex4ht或者HaVeA仍然更好。但我相信您手头已经有一些 LaTeX 文档可以快速测试:

pandoc          \
  --from=latex  \
  --to=html     \
  --output=my.html

或者更短一些,但应用您自己选择的 CSS:

pandoc          \
  -f latex      \
  -t html       \
  --css=my.css  \
  --output=my.html

相关内容