3个版本

0.1.2 2022年10月26日
0.1.1 2022年10月23日
0.1.0 2022年10月23日

#1702 in 文本处理

GPL-3.0 许可证

92KB
2.5K SLoC

latex-to-html

latex-to-html将LaTeX的子集转换为HTML。它将公式渲染为矢量图形,使其看起来与PDF中的完全一样。
示例

特性

因为latex-to-html使用pdflatex渲染数学公式,所以它支持与LaTeX相同的数学公式。内联数学必须由$ ... $限定,显示数学必须具有以下形式

\begin{equation}
  \label{....}
  ...
\end{equation}

其中标签是可选的。在数学环境之外,仅支持TeX/LaTeX的子集

  • \title{...}
  • \section{...}
  • \subsection{...}
  • \begin{itemize}\item...\item...\end{itemize}
  • \begin{enumerate}\item...\item...\end{enumerate}
  • 一些硬编码的定理环境(通常使用\newtheorem声明)
    • 定理
    • 命题
    • 定义
    • 引理
    • 备注
    • 推论
    • 示例
  • \begin{证明} ...\end{证明}
  • \label{...}\ref{...}\eqref{...}
  • \emph{...}\textbf{...}\textit{...}

此外,还提供对\bibliography的基本支持。

LaTeX-to-html忽略包含以下注释的行之后的行

% LATEX_TO_HTML_IGNORE

这对于一个TeX文件也被直接与pdflatex一起使用来生成PDF文件的情况很有用。

例如,latex-to-html不支持enumitem包。如果要将其包含在生成的PDF输出中,可以按以下方式包含该包

% LATEX_TO_HTML_IGNORE
\usepackage{enumitem}

在PDF输出中的编号列表外观(但不是网页)可以按照以下方式更改

\begin{enumerate}
  % LATEX_TO_HTML_IGNORE
  [label={(\roman*)}]
  \item
    ...
  \item
    ...
\end{enumerate}

安装

请首先确保安装所有依赖项。latex-to-html依赖于cargo、pdflatex、pdfcrop和pdf2svg。在Debian或Ubuntu上,可以使用以下方式安装这些依赖项

sudo apt install cargo texlive texlive-extra-utils pdf2svg

要将latex-to-html下载并安装到~/.cargo/bin,请运行以下命令

cargo install latex-to-html

您现在可以向您的PATH变量添加$HOME/.cargo/bin,或者在执行latex-to-html时指定完整路径:~/.cargo/bin/latex-to-html

用法

假设您有一个doc.tex和一个doc.bib文件,请运行以下命令

latex-to-html doc.tex doc.bib out/

第一次运行可能需要一些时间,但后续运行将会更快。要查看生成的文档,请在浏览器中打开out/index.html

依赖项

~7.5MB
~137K SLoC