我正在使用 Jekyll 创建一个博客,并在 Github Pages 上托管。我有一堆 LaTeX 文档,我想将其作为博客文章上传,但它们包含大量格式,我必须进入并编辑这些格式才能与 KramDown 兼容。例如,如果我在 LaTeX 中有\newline
或\textit
,我必须手动将它们更改为KramDown 中的\\\
和\*text\*
。我看到 KramDown 有一个内置转换器,可以将标记格式化为 Latex PDF 输出,但是否有任何工具可以执行相反的操作?
答案1
由于jekyll
大多数其他静态网站生成器都支持HTML
带有前置内容的文件YAML
,因此我认为将 LaTeX 转换为HTML
并修改为所需格式是更好的方法。例如,tex4ht
可以配置为YAML
直接生成前置内容,我们可以使用make4ht
库创建辅助脚本,该脚本会将HTML
、CSS
和 图像文件复制到正确的位置。该项目名为jekyll4ht。
其用途如下:
创建以下结构
pathtoblog
jekyllsite
_posts
img
css
texfiles
.jekyll4ht
firstpost
firstpost.tex
您生成的文件将被复制到jekyllsite
,必须在.jekyll4ht
配置文件中配置。它的最小内容应该是:
base="pathtoblog/jekyllsite/"
然后您可以在texfiles
目录中创建文档,并使用
jekyll4ht -m publish filename.tex
完成后。请注意,这不会重建您的站点,必须使用jekyll serve
from手动完成jekyllsite
。
答案2
@michal.h21 提供了一种合理的方法,不需要从 tex 转换为 markdown。如果您确实想将 tex 文件转换为 markdown/kramdown,潘多克可以做到这一点。例如:
pandoc source.tex -o source.md
需要注意以下几点:
- Markdown 不支持 LaTeX 提供的所有格式,因此你可能会在转换过程中丢失一些内容
- Kramdown 是 Markdown 的超集。pandoc 支持 PHP-extra 扩展,但可能还有其他不支持的东西。
一些评论者表示这种转换很愚蠢。但是,如果你的网站混合了 LaTeX 和 Markdown 排版的文章,那么生成的博客文章可能会不一致。也就是说,通过 tex4ht 生成的博客文章的格式可能与 Markdown 生成的不同。根据文章数量和 LaTeX 源文件中的格式程度,它可能最简单的处理方法是将所有内容简化为 markdown 格式。(或者您可能更喜欢另一种方式,将所有 markdown 转换为 LaTeX)。