将PDF恢复为LaTeX

26

我知道如何从LaTeX生成PDF。是否有一种方法可以从我之前创建的PDF中提取LaTeX代码?如果有人给我发送了一个PDF,我喜欢其中的格式。我能从中提取LaTeX吗?


2
http://tex.stackexchange.com/questions/8503/how-to-convert-pdf-to-latex - Mauricio Scheffer
9个回答

17

LaTeX无法一对一转换为PDF。就您的第一个问题而言,我认为这种转换在技术上可能是可行的,但我不认为已经存在能够实现此功能的应用程序。与汇编语言可以反编译回高级语言类似,可能也有一种方法可以做到这样。然而,PDF文件允许包含各种各样的数据- AutoCAD图纸、JPEG图形、字体文件、表单、数字签名等。而LaTeX无法理解这些内容。因此,对于第二个问题的答案是否定的-没有一种方法可以从任何PDF文档中提取相应的LaTeX代码。


8

有一种工具可以像OCR一样读取PDF文件,并尝试重新创建Latex代码。这个工具几乎完美,被称为"Infty Reader",可以在此处找到。由于Latex相当可扩展,我认为它不会完全正确地获取所有格式。


5
InftyReader 只适用于 MS Windows。 - Tom Hale

7

只有将文档源代码嵌入PDF文件中才可能实现,具体操作可参考attachfile软件包。


或者,您可以使用带有标记的PDF添加提示元数据。 - Charles Stewart
是的,没错,但我不知道有没有现成的方法可以通过这种方式将LaTeX源代码转换为PDF。有什么建议吗? - Will Robertson
1
抱歉,直到最近才看到你的问题。Ross Moore展示了pdftex的添加功能,允许生成将数学标记与生成它们的Tex代码一起标记的PDF。这离一个完整的答案还有很长的路要走,但我认为它表明这是可能的。关于这个问题我想说的还有更多,不适合在评论中说 - 我只想说这可能会成为一个很好的MSc论文主题。 - Charles Stewart

5

简短版:不行。

详细版:这很像反编译:技术上是可以的,但需要大量的猜测和启发式算法。

我不熟悉PDF内部结构,但它很可能直接设置字体/大小/位置,而不像LaTeX那样定义格式并应用于标题等。


3

可以使用pdftohtml和gnuhtml2latex将PDF转换为HTML,将HTML转换为TEX。

实际上,您需要分两步进行PDF到LaTeX的转换。结果仍然像“用汉堡做牛肉”,但是与一些清理脚本结合使用,结果可能相当不错。

GlobalBlindSpot的博客文章“Linux中简单的PDF到LaTeX转换”提供了一个示例Bash脚本,可将.pdf文件转换为.tex文件,再将其转换为.pdf文件。


2
Inkscape可以导入PDF并保存为“带有PSTricks宏的LaTeX”,这实际上是通过将PostScript嵌入到LaTeX源代码中来完成的。这样做比较麻烦,而且生成的LaTeX源代码必须经过预处理才能再次输出为PDF。
无论如何,即使使用某种假想的PDF到LaTeX编译器,你最多只能得到每个字符或单词的位置和大小分别指定的东西,这与你想要的相反,我猜你想要的是分母是分数的一半,而不是在水平线下面的某个数字。

1

从pdf文件中进行数据挖掘(由于其复杂的格式),最好的方法是使用Adobe Illustrator打开它们。 然后将pdf文件转换为svg文件,并使用一个svg解析库编写一些巧妙的代码。

一个高效的svg解析库是batik

(对于Linux来说,将pdf转换为svg相当复杂: calcmaster.net/personal_projects/pdf2svg/)

附注 我已经尝试了很多次寻找解决方案来回答你问题的第二部分, 但我在书籍中发现,如"Visualizing Data, Ben Fry, O’Reilly",pdf特别是Adobe pdf太复杂难以解析,所以最好使用一个svg解析库。


用户在Linux上寻求解决方案... - TJ Ellis

1
请看我在相关问题上的回答 (怎么将DVI转换为tex?)
补充一下 - 字符无需按阅读顺序排列(我发现某些PDF文件中部分文字是倒序排列的,并且依赖于坐标)。这很难重建,因为它取决于字体度量。这可能使用令人震惊的ASCII86协议。

-1

它可能与texmacs一起使用,该软件包括pdf文件的导入功能。


TeXmacs是一款被抛弃的软件,从未尝试解决这个问题。 - Charles Stewart
还是,我已经做完了。 - Aif
告诉我更多!几年前,我认为Texmacs是一种过度设计的方法来解决一个不需要革命的问题。我猜你有不同的看法? - Charles Stewart

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接