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

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

我正在处理一个 latex 文档(使用 pdflatex、cygwin、acrobat reader),我厌倦了制作-关闭-打开过程。

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

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

如何高效制作/编辑.texWin7 上如何创建文件?我更愿意坚持使用 makefile 和文本编辑器,而不是使用 Windows Latex 构建环境。

答案1

苏门答腊PDF可以在您当前的工作流程中使用。它不会锁定文件。它还可以支持synctex,实现编辑器和PDF文档的同步。

答案2

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

答案3

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

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

我的脚本xpdf-f似乎运行良好,但是xpdf一旦完成观看 PDF,您就必须关闭这两者,然后关闭脚本(通过 Strg+C)。

#!/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

答案4

TeX 的两个主要发行版都包含原生的编辑器查看器组合,它自然不会锁定文件以阻止其进行自己的编辑。

当你运行 Windows 时,tl-tray-menu.exe你会看到编辑器选项在此处输入图片描述
MiKTeX 中包含一个类似的编辑器,带有 PDFsync-hroneised TeXworks Viewer 在此处输入图片描述

如果你只是给 TeXworks.exe 一个 PDF 文件,它将首先打开该文件,并且仅根据反向搜索的要求打开编辑器

相关内容