场景:
我有一个使用 LaTeX 创建的文档(在这种情况下是我的简历),它正在pdflatex
正确编译并准确输出我想要的内容。现在我需要将相同的文档转换为普通的旧 ASCII。
示例:我在
这里
看到过这种情况(至少一次),作者有一个PDF 版本和一个ASCII 版本,几乎在所有方面都与 PDF 版本匹配,包括边距、间距和项目符号。
我意识到由于 ASCII 格式的限制,这种类型的转换不可能是精确的,但根据我目前发现的情况,一个非常接近的近似值似乎是可能的。这样做的过程是什么?
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
CatDVI可以将 DVI 转换为文本并尝试保留格式。
您可以尝试这里提出的一些程序:
您也可以尝试Pandoc,它可以将乳胶转换为许多其他格式。我建议阅读它的文档,因为可能有一些棘手的情况需要传递一些参数来处理。
如果您正在使用pdflatex
,您可能不想弄乱您的包选项以切换latex
到生成 DVI。
相反,请获取您的 pdf 文件并进行转换。这适用于我使用 Curve 包制作的简历/简历:
pdftotext -layout MyResume.pdf
注意-layout
标志。
我通常的策略是使用hyperlatex将其转换为网页,然后从网络浏览器中处理和粘贴。我发现这提供了最好的格式。
然后我通常必须通过并手动修复一些换行...
试试这里的步骤: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 字符并修复它们。
当我需要从我的 TEX 文件中获取纯文本进行索引和搜索时,我发现 LaTeX2RTF 是一个很好的解决方案 - 它有一个安装程序和适用于 windows 的 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
显然,您需要拥有tex4ht
并python-html2text
安装。
我试过 LyX,效果很好。唯一的细微差别是,如果您有一个包含其他 TeX 文件的 TeX 文件,则需要将它们全部单独导出,除非我遗漏了什么。
您可以导入 lyx 并使用 lyx 的导出到文本功能。
如果你不使用 lyx 有点傻,但如果你已经拥有它,那么非常快速和简单的解决方案。对我来说结果很好,虽然公平地说我的文件很简单。不确定如何转换更复杂的文件。
Emacs 有命令iso-iso2tex
并且iso-tex2iso
工作得很好,除了它不会将单个命令转换\OE
为Œ
.