如何将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
显然,你需要安装tex4ht
和python-html2text
。
我试过LyX,它运行得很好。 唯一的细微差别是,如果你有一个包含其他TeX文件的TeX文件,你将需要单独导出它们,除非我失去了一些东西。
你可以导入到lyx并使用lyx的导出到文本function。
如果你不使用lyx,但是如果你已经拥有它,这种方法非常快速和简单。 对我来说好的结果,虽然公平我的文件是非常简单的。 不知道如何更复杂的文件转换。
Emacs的命令iso-iso2tex
和iso-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请按照这个官方文档