处理pdf实时更新的pdf查看器/未锁定文件


17

我正在处理乳胶文档(使用pdflatex,cygwin,acrobat阅读器),并且厌倦了make - close - open过程。

在osx上,Preview我没有这个问题,因为我可以编译.tex文件,而生成的pdf在查看器中打开(在构建过程后会更新)。

在Win7上,使用Acrobat Reader,我pdflatex(tex-live 2012)抱怨[...] can't write on file xxx.pdf.我猜读者锁定了pdf文件。

您如何在Win7上有效地产生/编辑.tex文件?我最好坚持使用Makefile和文本编辑器,而不是Windows Latex构建环境。


如果您愿意这样做,我想(现在无法检查)是xpdf通过cygwin这种方式进行的。但是,您需要前后翻页以更新显示的文件。
mpy

谢谢,对于初学者来说很好。但是,由于我知道如何在Mac上进行处理,因此很高兴有其他解决方案。
麦克

Answers:


16

SumatraPDF可以在当前的工作流程中使用。它不会在文件上加锁。它还支持编辑器和pdf文档之间的同步。


1
我想在一分钟前发布同一封邮件,但是我的回答少于10个就无法回答我自己的问题... :)无论如何,谢谢!
麦克

2

尽管已经有一个提供本机非阻塞Windows PDF阅读器的答案,但我还是按照这种cygwin/xpdf方法编写了一个小脚本。

它基于xpdf-remote选项,可以重新加载已经打开的文件。因此,我们只需要检测文件何时更改即可。由于inotifyWindows上没有本机,因此您需要安装inotify-win,这是一个C#程序。

我的脚本xpdf-f似乎运行良好,但是您必须关闭两个xpdf脚本,并且脚本(通过Strg + C)一旦看完PDF即可。

#!/bin/bash

if [[ "$1" = "" ]]; then
  echo Usage: $0 FILE
  exit 1
fi

if [[ ! -e "$1" ]]; then
  echo Error: File $1 does not exist.
  exit 2
fi

xpdf -remote filewatch "$1" &
XPDFPID=$!

while [[ -e /proc/$XPDFPID ]]; do
  inotifywait `dirname $1` | grep "MODIFY $1"
  [[ $? = 0 ]] && xpdf -remote filewatch -reload
done

1

截至2017年,Firefox / Chrome也可以完成这项工作。Firefox甚至在F5-刷新后保留当前页面。


2
您可以在答案中添加更多细节吗?说“ X可以完成工作”太含糊,无法提供帮助。感谢您的贡献。
我说莫妮卡(Monica)

1
Web浏览器通常应该可以工作。REST客户端的默认/正常/预期行为是加载URL的内容,然后关闭连接。
user560822'2
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.