是否有任何程序可以尝试预处理简单的 LaTeX?

是否有任何程序可以尝试预处理简单的 LaTeX?

我发现自己处在一个尴尬的境地,尽管这似乎并不罕见,但我被命令以 Word 格式编写文档,或者至少以 Word 格式结束文档。

我的 LaTeX 源文件中除了标题页外没有任何花哨的东西,我并不特别在意。不过,我确实充分利用了 LaTeX 的逻辑标记功能,使用该包使用诸如\servername#1\ipaddress#1和首字母缩略词之类的东西acro

我没有不想导出的图表standalone,也不需要花哨的minipage操作 --- 只需直接使用 LaTeX。Pandoc 似乎是我最好的选择,但它完全跳过/删除了文档中的自定义命令(\servername, 中的内容acro)。如果不是这种情况,这将是一个不错的解决方案。

是否存在一个预处理器,它会尝试将宏定义扩展为适当的“基本调用”?(我指的是类似的东西\def\servername#1{\texttt{#1}})。例如,

\documentclass{article}
\newcommand{\servername}[1]{\texttt{#1}}
\begin{document}
Hi!  My server is \servername{localhost}.
\end{document}

转换为

\documentclass{article}
\begin{document}
Hi!  My server is \texttt{localhost}.
\end{document}

答案1

我有一个“概念证明”给你。它需要做相当多的工作才能使用。

背景:我使用 LaTeX 编写如下内容实验室帖子。那里的数学处理是简化的 LaTeX 语法,但不允许\newcommand(或类似)。虽然这非常明智,但写了\mathbb{R}二十次之后,你开始渴望能够写\newcommand\R{\mathbb{R}}。所以我一直在研究一个 LaTeX 包,它将专门编写的 LaTeX 文档转换为 nLab 底层软件可以理解的内容。

现在,对于您的情况来说,重要的部分是数学处理是一种简化的 LaTeX 语法。这意味着,如果我写下“\mathbb{R}然后”,我希望它完全按原样通过。但是,如果我输入“\newcommand\R{\mathbb{R}}然后”,我希望\R将其扩展为\mathbb{R},然后让其通过。因此,我有一个通用系统,可以声明哪些宏“通过”。

使其适应您的情况仅仅意味着提供 pandoc 理解的宏列表(及其参数,以及环境工作)。

代码目前在 github 上我刚刚添加了概念验证pandoc模块和您的示例pandoc_test.tex。毫不奇怪,pdflatex pandoc_test.tex生成了一个包含所需输出的 ​​PDF(然后可以通过转换为文本pdftotext)。

然而,将 pandoc 理解的所有宏添加到列表中需要一些工作。

相关内容