使用 Pandoc 将 TEX 转换为 TXT

使用 Pandoc 将 TEX 转换为 TXT

我正在尝试将 .tex 文件转换为 .txt 文件,以便可以直接将其复制粘贴到仅支持 MathJax 的环境中。例如博客、Mathematics Stackexchange、stackedit.io 等。

但是我对用户定义的环境(如定理、定义等)遇到了问题。

\begin{proof}
Example
\end{proof}

在 Latex 编辑器中,pdf 将被呈现为

证明。 例子

但使用代码将其转换为 .txt 后,pandoc -o output.txt input.tex输出结果如下

例子

它缺少标题。类似地,其他用户定义的环境也缺少各自的标题。

有没有什么方法可以让 Pandoc 在开头添加单词“证明”或对应于环境的标题?

答案1

简短的回答:不。

长答案:

自动脚本知道输出应该包含单词“Proof”的唯一方法是:

1)这些知识在脚本中是硬编码的。它知道一些 latex 命令和环境的含义(pandoc 所采用的方式)

2)它可以运行 tex 代码并获取输出(例如通过 t4ht 获取)

第一种方法不够灵活,因为您可以加载脚本不知道的包,并且定义将被忽略的命令(此外,您的文档也可以定义您自己的命令)。

第二种方法可以通过pdflatex一些“pdf 到文本”转换器,或通过latexdvi2tty或通过 来完成tex4ht。无论如何,它都会丢失原始的 tex 标记,如果您想保留数学公式的“代码”,那么这种方法就不合适了。

让我们看一个例子。考虑以下文档:

\documentclass{article}
\usepackage{nopageno} % No page numbers
\usepackage{amsthm}

\begin{document}
\begin{proof}
This is a proof
\[
    \sum_{i=0}^\infty x^2
\]
\end{proof}
\end{document}

通过标准运行pdflatex你会得到:

结果

  1. 如果你运行它pandoc,你会得到以下结果.txt

     This is a proof $$\sum_{i=0}^\infty x^2$$
    

    其中你失去了“证明”这个词,以及最后的证明结束标记,但它保留了公式标记。

  2. 如果你运行它pdflatex然后pdftotxt你得到:

    Proof. This is a proof
    
    
    x2
    i=0
    

    保留了“证明”一词,但完全打乱了公式

  3. 如果你运行它latex然后dvi2tty,你会得到:

    Proof. This is a proof
                                    1X
                                       x2
                                    i=0
    
                                                                       |___|
    

    它更接近 pdf 输出,但仍然丢失公式标记。

  4. 如果你运行它,tex4ht你会得到该文档的 HTML 版本,然后可以通过pandoc以下方式处理它.txt

    Proof. This is a proof ∞ ∑ i=0 x2 \_\_
    

正如你所见,没有一个解决方案是令人满意的。

答案2

由于 Pandoc 不会“读取” TeX,而只会“写入”它,因此可能不行。

不过,你最好在pandoc 讨论组真正的专家聚集的地方。

相关内容