接着 @fuxialexander 的帖子:
写了点AppleScript和Elisp,成功实现了PDF文档里精确到annotation的跳转。
更新:增加了Skim annotation到Org heading 的跳转, 依赖org-id,具体见Gist
我把第二个AppleScript用bettertouchtool设成3指Double Tap执行。这样在Skim里选中annotation,然后轻拍就可以跳到之前记过的org笔记了
[Integration between Org-ref and Skim.app]
虽然作为pdf阅读器,pdf-tools使用起来各种不便,但是它最强大的地方在于它位于 emacs 生态中,所以赋予它无限的可能性。
我现在最想要的功能是标注并提取图片。提取高亮已经已经可以办到了,参考这里 。我现在用 org-download 截图来记录图片到笔记中,但是这样做的缺点是无法记录图片的来源位置。如果能够像提取高亮一样提取图片及位置就太爽了,但是问题是 pdf-tools 的 server 是 C 写的,这个已经超出我的能力范围了。所以想请问各位大佬,这样的功能实现起来难吗?
我想到一个主意,就是高亮图标题,图标题上一般都有编号。这样提取高亮文字后如果识别是图标题的话,就插入对应编号的图片。
图片可以事先通过 bash 命令提取:
pdfimages -all yourdoc.pdf ./fig
这样会在当前文件夹内生成
fig-000.jpg
fig-001.jpg
fig-002.jpg
...
等图片文件。
这样如果提取的图标题是
Fig 1 . Blah Blah Blah
那么可以用 elisp 代码判断是图标题,进而插入对应的图片 fig-000.jpg
待解决的问题,
有些段落开头就是图编号(比如 Fig 1 shows
,如果这类文字被高亮,则可能会和图标题混淆,导致在不该插入图片的地方插入图片。
这个方法对于期刊论文一般没有问题,如果是学位论文,图标题一般带有章节编号,比如 Fig 2.1
,而提取的图片仍然按照顺序编号 ,这样就没法根据图标题中的编号找到对应的图片了。这个应该怎么解决呢?
有些 PDF 中可能会带有一些和正文无关的图片,比如 logo 什么的。用 pdfimages
命令会把这些多余的图片也提取出来,并导致序号不完全和图标题对照。因此对生成的图片文件还需要检查一下顺序是否正确,这个过程是无法自动的 。
pdfimages
命令只能提取 raster 图形,不能提取矢量图。