71

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

示例:我在 这里
看到过这种情况(至少一次),作者有一个PDF 版本和一个ASCII 版本,几乎在所有方面都与 PDF 版本匹配,包括边距、间距和项目符号。

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

4

14 回答 14

44

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

用法:

detex project

打开 project.tex,读取使用 \include 或 \includeonly 命令包含的所有文件,将结果文本输出到标准输出。

detex -n project > out.txt

打开 project.tex,不遵循 \include 或 \includeonly 命令,将结果文本输出到 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
于 2013-01-14T14:25:40.707 回答
17

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

于 2009-02-09T21:45:18.440 回答
14

您可以尝试这里提出的一些程序:

TeX 转 ASCII

于 2009-02-09T21:45:57.627 回答
9

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

于 2013-04-27T01:22:04.663 回答
9

pdftotext 可以保留布局

如果您正在使用pdflatex,您可能不想弄乱您的包选项以切换latex到生成 DVI。

相反,请获取您的 pdf 文件并进行转换。这适用于我使用 Curve 包制作的简历/简历:

pdftotext  -layout MyResume.pdf

注意-layout标志。

于 2015-03-09T13:41:48.490 回答
8

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

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

在过去,这给了一个相当不错的结果。这当然会匹配呈现的 HTML 的视图而不是原始 PDF,因此可能不完全是您想要的。

于 2009-02-09T23:44:47.670 回答
3

我通常的策略是使用hyperlatex将其转换为网页,然后从网络浏览器中处理和粘贴。我发现这提供了最好的格式。

然后我通常必须通过并手动修复一些换行...

于 2009-02-09T21:55:20.833 回答
3

试试这里的步骤: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”。你可能不喜欢那样。因此,请改用 -e 1 。使用 -U 选项告诉它打印出未知字符的 unicode 值,以便您可以轻松找到并替换它们。

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

第三部分吃掉了 catdvi 为使文本完全对齐而投入的所有额外空格,同时在行首保留空格(缩进)。

运行这些命令后,明智的做法是在 .txt 文件中搜索字符串 [U+,以确保没有留下无法映射到 ASCII 的 Unicode 字符并修复它们。

于 2010-01-20T19:24:33.137 回答
3

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

于 2012-02-12T16:08:34.557 回答
3

最适合我的解决方案如下。假设您存储了乳胶文档名称(不带扩展名),${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安装。

于 2012-10-29T16:46:53.370 回答
2

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

于 2011-07-11T02:28:28.720 回答
1

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

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

如果您希望您的行在某个列处中断,请使用--column标志。用于--columns 10000非断线。

您可以转换-o foobar.txt许多其他格式,例如 markdown (.md) 等。如果您不指定-o foobar.txt,pandoc 将打印您可以在任何在线工具中呈现的 html。

要安装 pandoc,请遵循此官方文档

于 2017-10-31T06:22:34.030 回答
0

您可以导入 lyx 并使用 lyx 的导出到文本功能。

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

于 2009-11-01T19:09:25.133 回答
0

Emacs 有命令iso-iso2tex并且iso-tex2iso工作得很好,除了它不会将单个命令转换\OEŒ.

于 2014-05-10T17:28:30.417 回答