我正在使用 Jekyll 建立一個部落格並在 Github Pages 上託管。我有一堆 LaTeX 文檔,我想將它們作為部落格文章上傳,但它們包含大量格式,我必須對其進行編輯才能與 KramDown 相容。例如,如果我在 LaTeX 中有\newline
或\textit
,我必須手動將它們更改為KramDown 中的\\\
和\*text\*
。我看到 KramDown 有一個內建轉換器,可以將標記格式化為 Latex PDF 輸出,但是有沒有現有的工具可以做相反的事情?
答案1
由於jekyll
大多數其他靜態網站產生器都支援HTML
frontmatter 的文件,因此對我來說,將 LaTeX 轉換為並將其修改為所需的形式YAML
似乎是更好的方法。HTML
例如,tex4ht
可以配置為YAML
直接產生 frontmatter,並且我們可以使用make4ht
庫來建立幫助程式腳本,該腳本會將 和 映像檔複製HTML
到CSS
正確的位置。該項目名為傑基爾4ht。
它可以如下使用:
建立以下結構
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 額外擴展,但可能還有其他擴充不支援。
一些評論者表示這種轉換是愚蠢的。但是,如果您的網站混合使用 LaTeX 和 Markdown 排版的文章,則產生的部落格文章可能會不一致。也就是說,透過 tex4ht 產生的格式可能與 Markdown 產生的格式不同。根據文章的數量以及 LaTeX 原始檔中的格式化程度,可能最簡單的解決方法就是將所有內容都簡化為 Markdown 格式。 (或者您可能更喜歡採取另一種方式,將所有 Markdown 轉換為 LaTeX)。