我知道如何从LaTeX生成PDF。是否有一种方法可以从我之前创建的PDF中提取LaTeX代码?如果有人给我发送了一个PDF,我喜欢其中的格式。我能从中提取LaTeX吗?
我知道如何从LaTeX生成PDF。是否有一种方法可以从我之前创建的PDF中提取LaTeX代码?如果有人给我发送了一个PDF,我喜欢其中的格式。我能从中提取LaTeX吗?
LaTeX无法一对一转换为PDF。就您的第一个问题而言,我认为这种转换在技术上可能是可行的,但我不认为已经存在能够实现此功能的应用程序。与汇编语言可以反编译回高级语言类似,可能也有一种方法可以做到这样。然而,PDF文件允许包含各种各样的数据- AutoCAD图纸、JPEG图形、字体文件、表单、数字签名等。而LaTeX无法理解这些内容。因此,对于第二个问题的答案是否定的-没有一种方法可以从任何PDF文档中提取相应的LaTeX代码。
有一种工具可以像OCR一样读取PDF文件,并尝试重新创建Latex代码。这个工具几乎完美,被称为"Infty Reader",可以在此处找到。由于Latex相当可扩展,我认为它不会完全正确地获取所有格式。
只有将文档源代码嵌入PDF文件中才可能实现,具体操作可参考attachfile软件包。
简短版:不行。
详细版:这很像反编译:技术上是可以的,但需要大量的猜测和启发式算法。
我不熟悉PDF内部结构,但它很可能直接设置字体/大小/位置,而不像LaTeX那样定义格式并应用于标题等。
可以使用pdftohtml和gnuhtml2latex将PDF转换为HTML,将HTML转换为TEX。
实际上,您需要分两步进行PDF到LaTeX的转换。结果仍然像“用汉堡做牛肉”,但是与一些清理脚本结合使用,结果可能相当不错。
GlobalBlindSpot的博客文章“Linux中简单的PDF到LaTeX转换”提供了一个示例Bash脚本,可将.pdf文件转换为.tex文件,再将其转换为.pdf文件。
从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解析库。
它可能与texmacs一起使用,该软件包括pdf文件的导入功能。