是否存在 LaTeX 到 Kramdown 的转换器?

是否存在 LaTeX 到 Kramdown 的转换器?

我正在使用 Jekyll 创建一个博客,并在 Github Pages 上托管。我有一堆 LaTeX 文档,我想将其作为博客文章上传,但它们包含大量格式,我必须进入并编辑这些格式才能与 KramDown 兼容。例如,如果我在 LaTeX 中有\newline\textit,我必须手动将它们更改为KramDown 中的\\\\*text\*。我看到 KramDown 有一个内置转换器,可以将标记格式化为 Latex PDF 输出,但是否有任何工具可以执行相反的操作?

答案1

由于jekyll大多数其他静态网站生成器都支持HTML带有前置内容的文件YAML,因此我认为将 LaTeX 转换为HTML并修改为所需格式是更好的方法。例如,tex4ht可以配置为YAML直接生成前置内容,我们可以使用make4ht库创建辅助脚本,该脚本会将HTMLCSS和 图像文件复制到正确的位置。该项目名为jekyll4ht

其用途如下:

创建以下结构

pathtoblog
  jekyllsite
     _posts
     img
     css
  texfiles
     .jekyll4ht
     firstpost
       firstpost.tex

您生成的文件将被复制到jekyllsite,必须在.jekyll4ht配置文件中配置。它的最小内容应该是:

base="pathtoblog/jekyllsite/"

然后您可以在texfiles目录中创建文档,并使用

jekyll4ht -m publish filename.tex

完成后。请注意,这不会重建您的站点,必须使用jekyll servefrom手动完成jekyllsite

答案2

@michal.h21 提供了一种合理的方法,不需要从 tex 转换为 markdown。如果您确实想将 tex 文件转换为 markdown/kramdown,潘多克可以做到这一点。例如:

pandoc source.tex -o source.md

需要注意以下几点:

  1. Markdown 不支持 LaTeX 提供的所有格式,因此你可能会在转换过程中丢失一些内容
  2. Kramdown 是 Markdown 的超集。pandoc 支持 PHP-extra 扩展,但可能还有其他不支持的东西。

一些评论者表示这种转换很愚蠢。但是,如果你的网站混合了 LaTeX 和 Markdown 排版的文章,那么生成的博客文章可能会不一致。也就是说,通过 tex4ht 生成的博客文章的格式可能与 Markdown 生成的不同。根据文章数量和 LaTeX 源文件中的格式程度,它可能最简单的处理方法是将所有内容简化为 markdown 格式。(或者您可能更喜欢另一种方式,将所有 markdown 转换为 LaTeX)。

相关内容