场景: 我有一个文件,我创建使用 LaTeX (我的简历在这种情况下) ,它正确地编译在 pdflatex和输出正是我想要的。现在我需要将同一个文档转换为普通的旧 ASCII。
pdflatex
例如: 我见过这样做(至少一次) 给你,其中作者有一个 PDF 版本和一个 ASCII 版本,匹配的 PDF 版本在几乎所有方面,包括边距,间距和项目符号点。
我意识到由于 ASCII 格式的限制,这种类型的转换不能精确,但是基于我目前所发现的,一个非常接近的近似似乎是可能的。这样做的过程是什么?
CatDVI 可以将 DVI 转换为文本并尝试保留格式。
你可以试试这里提出的一些方案:
TeX 呼叫 ASCII
我通常的策略是使用 超级乳胶把它变成一个网页,然后处理和粘贴从一个网络浏览器。我发现这样的格式最好。
然后我通常必须通过和手动修复一些线包装..。
另一种选择是使用 乳胶从 LaTeX 源创建网页,然后使用 链接转换为纯文本。我用了命令行
links -dump -no-numbering -no-references input.html > output.txt
在过去,给了一个相当不错的结果。当然,这将与渲染的 HTML 视图相匹配,而不是与原始 PDF 视图相匹配,因此可能并不完全符合您的需要。
您可以导入 lyx 并使用 lyx 的导出到文本特性。
如果你不使用 lyx 有点傻,但如果你已经有了,非常快速和简单的解决方案。对我来说是个好结果,虽然公平地说,我的文件很简单。不知道更复杂的文件是如何转换的。
试试这里的步骤: 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.”你可能不喜欢。所以,改用 -e1。使用 -U 选项告诉它打印未知字符的 unicode 值,以便您可以轻松地找到并替换它们。
命令的第二部分找到用于指定项目符号(•)的字符串[ U + 2022] ,并用星号(*)替换它们。
第三部分消耗掉 catdvi 中所有额外的空格,使文本完全对齐,同时保留行首的空格(缩进)。
运行这些命令之后,最好在。用于字符串[ U + 的 txt 文件,以确保没有无法映射到 ASCII 的 Unicode 字符留下并修复它们。
我试过莱克斯,效果很好。唯一的细微差别是,如果您有一个包含其他 TeX 文件的 TeX 文件,您将需要分别导出它们,除非我遗漏了什么。
当我需要从我的 TEX 文件索引和搜索纯文本,我发现 LaTeX2RTF 是一个很好的解决方案-它有一个 用于窗口的安装程序和 GUI,它产生了我的50页论文的 RTF 文件,我可以在 Word 中打开。
对我来说最有效的解决方案如下。假设您将乳胶文档名(不带扩展名)存储在 ${BASENAME}中,那么应用以下3个步骤:
${BASENAME}
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。
tex4ht
python-html2text
Opendetex 可用于 Windows 和 Linux (也可在 Mac 上编译)。你可以从网上下载这个 https://github.com/pkubowicz/opendetex
用法:
detex project 打开 project.tex,使用 include 或 Include-only 命令,将结果文本输出到标准输出。 detex -n project > out.txt 打开 project.tex,不遵循 include 或 include 命令, 将结果文本输出到 out.txt detex --help 帮了大忙
detex project
打开 project.tex,使用 include 或 Include-only 命令,将结果文本输出到标准输出。
detex -n project > out.txt
打开 project.tex,不遵循 include 或 include 命令, 将结果文本输出到 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
您也可以尝试 潘多克,它可以转换乳胶到许多其他格式。我建议阅读它的文档,因为可能有一些棘手的情况,您需要传递一些参数来处理。
Emacs 的命令 iso-iso2tex和 iso-tex2iso工作得非常好,除了它不能将单个命令(如 \OE)转换为 Œ。
iso-iso2tex
iso-tex2iso
\OE
Œ
如果您正在使用 pdflatex,那么您可能不希望在切换到 latex以生成 DVI 的软件包选项上浪费时间。
latex
取而代之的是,把你的 pdf 文件转换成这个格式,这对我的简历/简历是有效的:
pdftotext -layout MyResume.pdf
请注意 -layout标志。
-layout
Pandoc 允许您将文件从一种格式转换为另一种格式 使用以下 pandoc 命令:
pandoc -s /path/to/foobar.tex -o foobar.txt
如果你想让你的线在某一列中断,使用 --column标志。使用 --columns 10000作为非中断线。
--column
--columns 10000
你可以把 -o foobar.txt转换成 许多其他格式,就像减价(。海事处处长)等。如果您不指定 -o foobar.txt,pandoc 将打印您可以在任何在线工具中呈现的 html。
-o foobar.txt
按照 这份官方文件安装 pandoc