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

时间:2009-02-09 21:40:26

标签: latex ascii

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

示例:
我已经看到这一点(至少一次)here,其中作者的PDF versionASCII version几乎在所有方面与PDF版本相匹配,包括边距,间距和子弹点。

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

14 个答案:

答案 0 :(得分:43)

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

答案 1 :(得分:16)

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

答案 2 :(得分:14)

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

TeX to ASCII

答案 3 :(得分:9)

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

答案 4 :(得分:8)

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

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

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

答案 5 :(得分:5)

如果您使用的是pdflatex,您可能不想使用您的套餐选项来切换到latex以生成DVI。

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

pdftotext  -layout MyResume.pdf

请注意-layout标记。

答案 6 :(得分:3)

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

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

答案 7 :(得分: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将包括所有特殊字符,如项目符号,emdashes和希腊字母。它还包括一些字母组​​合的连字,如“fi”和“fl”。你可能不喜欢那样。所以,请改用-e 1。使用-U选项告诉它打印出未知字符的unicode值,以便您可以轻松找到并替换它们。

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

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

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

答案 8 :(得分:3)

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

答案 9 :(得分: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

答案 10 :(得分:2)

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

答案 11 :(得分:1)

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

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

如果您希望您的行在某列中断,请使用--column标记。使用--columns 10000表示非破坏行。

您可以将-o foobar.txt转换为a number of other formats,例如降价(.md)等。如果您未指定-o foobar.txt,pandoc将打印您可以在任何在线呈现的html工具。

要安装pandoc,请关注this official documentation

答案 12 :(得分:0)

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

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

答案 13 :(得分:0)

Emacs的命令iso-iso2texiso-tex2iso非常有效,但它不会将\OE等单个命令转换为Œ