如何将 LaTeX 转换为纯文本(ASCII) ?

场景:
我有一个文件,我创建使用 LaTeX (我的简历在这种情况下) ,它正确地编译在 pdflatex和输出正是我想要的。现在我需要将同一个文档转换为普通的旧 ASCII。

例如:
我见过这样做(至少一次) 给你,其中作者有一个 PDF 版本和一个 ASCII 版本,匹配的 PDF 版本在几乎所有方面,包括边距,间距和项目符号点。

我意识到由于 ASCII 格式的限制,这种类型的转换不能精确,但是基于我目前所发现的,一个非常接近的近似似乎是可能的。这样做的过程是什么?

70383 次浏览

CatDVI 可以将 DVI 转换为文本并尝试保留格式。

你可以试试这里提出的一些方案:

TeX 呼叫 ASCII

我通常的策略是使用 超级乳胶把它变成一个网页,然后处理和粘贴从一个网络浏览器。我发现这样的格式最好。

然后我通常必须通过和手动修复一些线包装..。

另一种选择是使用 乳胶从 LaTeX 源创建网页,然后使用 链接转换为纯文本。我用了命令行

links -dump -no-numbering -no-references input.html > output.txt

在过去,给了一个相当不错的结果。当然,这将与渲染的 HTML 视图相匹配,而不是与原始 PDF 视图相匹配,因此可能并不完全符合您的需要。

您可以导入 lyx 并使用 lyx 的导出到文本特性。

如果你不使用 lyx 有点傻,但如果你已经有了,非常快速和简单的解决方案。对我来说是个好结果,虽然公平地说,我的文件很简单。不知道更复杂的文件是如何转换的。

试试这里的步骤: http://zanedp.livejournal.com/201222.html

下面是将我的 LaTeX 文件转换为纯文本的序列:

$ latex file.tex
$ catdvi -e 1 -U file.dvi | sed -re "s/\[U\+2022\]/*/g" | sed -re "s/([^^[:space:]])\s+/\1 /g" > file.txt

Catdvi 的-e 1选项告诉它输出 ASCII。如果使用0而不是1,它将输出 Unicode。Unicode 将包含所有特殊字符,如子弹、符号和希腊字母。它还包括一些连字符组合,如“ fi”和“ fl.”你可能不喜欢。所以,改用 -e1。使用 -U 选项告诉它打印未知字符的 unicode 值,以便您可以轻松地找到并替换它们。

命令的第二部分找到用于指定项目符号(•)的字符串[ U + 2022] ,并用星号(*)替换它们。

第三部分消耗掉 catdvi 中所有额外的空格,使文本完全对齐,同时保留行首的空格(缩进)。

运行这些命令之后,最好在。用于字符串[ U + 的 txt 文件,以确保没有无法映射到 ASCII 的 Unicode 字符留下并修复它们。

我试过莱克斯,效果很好。唯一的细微差别是,如果您有一个包含其他 TeX 文件的 TeX 文件,您将需要分别导出它们,除非我遗漏了什么。

当我需要从我的 TEX 文件索引和搜索纯文本,我发现 LaTeX2RTF 是一个很好的解决方案-它有一个 用于窗口的安装程序和 GUI,它产生了我的50页论文的 RTF 文件,我可以在 Word 中打开。

对我来说最有效的解决方案如下。假设您将乳胶文档名(不带扩展名)存储在 ${BASENAME}中,那么应用以下3个步骤:

htlatex ${BASENAME}.tex

iconv -f iso-8859-1 -t utf-8 ${BASENAME}.html > ${BASENAME}-utf8.html

html2markdown ${BASENAME}-utf8.html > ${BASENAME}.txt

显然,您需要安装 tex4htpython-html2text

Opendetex 可用于 Windows 和 Linux (也可在 Mac 上编译)。你可以从网上下载这个 https://github.com/pkubowicz/opendetex

用法:

detex project

打开 project.tex,使用 include 或 Include-only 命令,将结果文本输出到标准输出。

detex -n project > out.txt

打开 project.tex,不遵循 include 或 include 命令, 将结果文本输出到 out.txt

detex --help

帮了大忙

将其解压缩到您选择的任何目录中。 假设您将其解压缩到了下载目录。

在该目录中创建任意名称的另一个目录(这是可选的,但建议这样做)。假设目录名为“ my _ paper”。把你的论文放在“ my _ paper”目录中。假设你的论文名是 project.tex。

找到那条路

    cd ~/Downloads/opendetex

运行命令

    detex my_paper/project.tex  > out.txt

通用表格

    detex -n full_path_to_tex_file.tex > output_text_file.txt

您也可以尝试 潘多克,它可以转换乳胶到许多其他格式。我建议阅读它的文档,因为可能有一些棘手的情况,您需要传递一些参数来处理。

Emacs 的命令 iso-iso2texiso-tex2iso工作得非常好,除了它不能将单个命令(如 \OE)转换为 Œ

Pdf 文本可以保持布局

如果您正在使用 pdflatex,那么您可能不希望在切换到 latex以生成 DVI 的软件包选项上浪费时间。

取而代之的是,把你的 pdf 文件转换成这个格式,这对我的简历/简历是有效的:

pdftotext  -layout MyResume.pdf

请注意 -layout标志。

Pandoc 允许您将文件从一种格式转换为另一种格式 使用以下 pandoc 命令:

pandoc -s /path/to/foobar.tex -o foobar.txt

如果你想让你的线在某一列中断,使用 --column标志。使用 --columns 10000作为非中断线。

你可以把 -o foobar.txt转换成 许多其他格式,就像减价(。海事处处长)等。如果您不指定 -o foobar.txt,pandoc 将打印您可以在任何在线工具中呈现的 html。

按照 这份官方文件安装 pandoc