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

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

例:
我已经在这里看到了这个(至less一次)完成的地方,作者有几乎所有的PDF版本和一个与PDF版本相匹配的ASCII版本 ,包括边距,间距和项目符号点。

我意识到由于ASCII格式的限制,这种types的转换不可能是准确的,但是根据我迄今为止发现的内容,似乎可能有非常接近的近似值。 这样做的过程是什么?

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

Opendetex可用于Windows和Linux(也可以在Mac上编译)。 它可以从http://code.google.com/p/opendetex/downloads/list下载;

用法: http : //code.google.com/p/opendetex/wiki/Usage

将其解压到您select的任何目录。 假设你把它提取到你的下载目录。

创build任何名称的另一个目录(这是可选的,但build议)。 假设目录名是“my_paper”。 把你的文件放在“my_paper”目录下。 假设你的论文名称是project.tex。

导航到path

  cd ~/Downloads/opendetex 

运行命令

  detex my_paper/project.tex > out.txt 

通用forms

  detex -n full_path_to_tex_file.tex > output_text_file.txt 

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

TeX转ASCII

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

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

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

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

如果您正在使用pdflatex ,那么您可能不希望乱用您的软件包选项来切换到latex来生成DVI。

相反,拿你的PDF文件,并转换。 这适用于我的简历/简历使用曲线包:

 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将包括所有特殊字符,如子弹,emdashes和希腊字母。 它还包括一些字母组​​合如“fi”和“fl”的连字符。 你可能不喜欢那样。 所以,使用-e 1来代替。 使用-U选项告诉它打印出未知字符的unicode值,以便您可以轻松find并replace它们。

命令的第二部分查找用于指定项目符号(?)的string[U + 2022],并用星号(*)replace。

第三部分把所有额外的空白字符都扔进去,使文本在alignment的时候保持空格(缩进)。

运行这些命令后,你应该明智地在.txt文件中searchstring[U +以确保没有不能映射到ASCII的Unicode字符被留下并修复它们。

当我需要从我的TEX文件中获取索引和search的纯文本时,我发现LaTeX2RTF是一个很好的解决scheme – 它有一个用于Windows的安装程序和GUI ,并且生成了一个我可以打开的50页论文的RTF文件在Word中。

最适合我的解决scheme如下。 假设你有存储在${BASENAME}的latex文档名称(没有扩展名),你应用这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

我试过LyX,它运行得很好。 唯一的细微差别是,如果你有一个包含其他TeX文件的TeX文件,你将需要单独导出它们,除非我失去了一些东西。

你可以导入到lyx并使用lyx的导出到文本function。

如果你不使用lyx,但是如果你已经拥有它,这种方法非常快速和简单。 对我来说好的结果,虽然公平我的文件是非常简单的。 不知道如何更复杂的文件转换。

Emacs的命令iso-iso2texiso-tex2iso工作得很好,除了不会像\OE这样的单个命令转换为Œ

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请按照这个官方文档