我正在尝试使用潘多克将一些数学繁重的 LaTeX 转换为 HTML。为了使 TeX 代码更易于读写,我将一些宏分解到.cls
同一目录中的文件中,并将其用作 TeX 文件的文档类。当我在 TeX 文件上运行 Pandoc 时,它会忽略该.cls
文件。.cls
如何在编译 TeX 文件时指示 Pandoc 使用特定文件?
梅威瑟:
类文件:
% eggs.cls
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{eggs}
\LoadClass{amsart}
\newcommand{\Z}{\mathbb Z}
\newcommand{\wo}{without}
TeX 文件:
% test.tex
\documentclass{eggs}
\title{Test}
\begin{document}
It is said that \wo{} $\Z$, there would be no ring theory.
\end{document}
该命令pdflatex test.tex
正常工作:\wo
和\Z
扩展为eggs.cls
。但是当我运行 时pandoc test.tex -s --mathjax -o test.html
,类文件未被解析:
更多细节:
- 我在 Ubuntu 18.04.2 上使用最新版本的 Pandoc 2.7.2。
- Pandoc 有几个用于指定元数据的标志。我尝试了
--metadata
旗帜(完整命令pandoc --metadata=documentclass:eggs.cls test.tex -s --mathjax -o test.html
),但没有任何改变。 - 我也尝试过
--variable
旗帜,而且它也没有帮助(正如预期的那样,因为这个标志用于 Pandoc 的写入阶段)。
谷歌搜索后发现这个问题一个旧的 Github 问题有同样的问题,但由于可能无解而被关闭,而且没有给出太多解释。
可行的解决方案:
- 如果我可以指定某些设置(配置文件、环境变量)来让 Pandoc 正确解析文件
.cls
,那就最好了。 - 或者,是否有某种方法可以将
.tex
和.cls
文件预处理为基于标准文档类的文件?(假设该文件基于标准文件,那.tex
就没问题了。)然后我可以将预处理后的文件提供给 Pandoc。.cls
不可行的解决方案:
tex4ht
我对使用或变体代替 Pandoc 的解决方案不感兴趣:由于某种原因,它不能很好地适用于我的项目。- 在这个 MWE 中,我当然可以手动将新命令移到文件的前言中
.tex
。但是,我有很多.tex
文件需要处理,手动执行此操作太耗时了。