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

如何将LaTeX转换为纯文本(ASCII)?,latex,ascii,Latex,Ascii,情景: 我有一份使用LaTeX创建的文档(本例中是我的简历),它在pdflatex中正确编译,并准确输出我想要的内容。现在我需要将相同的文档转换为普通的旧ASCII 例如: 我见过这样做(至少一次),作者有一个和一个在几乎所有方面都与PDF版本匹配的,包括边距、间距和要点 我意识到由于ASCII格式的限制,这种类型的转换不可能精确,但根据我目前的发现,非常接近的近似值似乎是可能的。执行此操作的过程是什么?可以将DVI转换为文本并尝试保留格式。您可以尝试此处建议的一些程序: 我通常的策略是将其转换

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

例如:
我见过这样做(至少一次),作者有一个和一个在几乎所有方面都与PDF版本匹配的,包括边距、间距和要点


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

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

您可以尝试此处建议的一些程序:


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

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

另一个选项是使用LaTeX源创建网页,然后使用转换为纯文本。我使用了命令行

链接-转储-无编号-无引用input.html>output.txt


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

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

如果你不使用lyx,但如果你已经有了它,那就有点傻了,非常简单快捷的解决方案。对我来说效果不错,不过公平地说,我的文件很简单。不确定如何转换更复杂的文件。

请尝试以下步骤:

以下是将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的-e1选项告诉它输出ASCII。如果使用0而不是1,它将输出Unicode。Unicode将包括所有特殊字符,如项目符号、破折号和希腊字母。它还包括一些字母组合的连字,如“fi”和“fl”。你可能不喜欢这样。因此,使用-e1代替。使用-U选项告诉它打印未知字符的unicode值,以便您可以轻松找到并替换它们

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

第三部分消耗掉catdvi为使文本完全对齐而添加的所有额外空格,同时保留行(缩进)开头的空格


运行这些命令后,您最好在.txt文件中搜索字符串[U+,以确保不会留下无法映射到ASCII的Unicode字符,并对其进行修复。

我尝试了LyX,效果非常好。唯一的细微差别是,如果您有一个包含其他TeX文件的TeX文件,则需要单独导出它们,除非我遗漏了一些内容。

当我需要获取纯文本fr时从我用于索引和搜索的TEX文件中,我发现LaTeX2RTF是一个很好的解决方案-它有一个,并且它生成了一个我50页论文的RTF文件,我可以用Word打开。

最适合我的解决方案是以下内容。假设您将latex文档名(不带扩展名)存储在
${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

适用于Windows和Linux(在Mac上也可以编译)。可以从

用法:

detex项目

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

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

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

Emacs有命令
iso-iso2tex
iso-tex2iso
,但它不转换像
\OE这样的单个命令de>to
Œ

pdftotext可以保留布局 如果您使用的是
pdflatex
,您可能不想乱弄您的软件包选项来切换到
latex
生成DVI

取而代之的是,将您的pdf文件转换为pdf文件。这适用于我用Curve软件包制作的简历:

pdftotext  -layout MyResume.pdf
注意
-layout
标志。

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

pandoc -s /path/to/foobar.tex -o foobar.txt
如果要在某一列处换行,请使用
--column
标志。对于不换行,请使用
--columns 10000

您可以将
-o foobar.txt
转换为类似的标记(.md)等。如果不指定
-o foobar.txt
,pandoc将打印可以在任何在线工具中呈现的html


要安装pandoc follow,我尝试了这个方法,但不幸的是,它不支持使用外部
cls
文件。我使用类文件来处理重复的格式化