目前,我可以通过键入以下内容在 Evince(比如说)中打开 PDF
$ evince document1.pdf
然后命令
$ evince document2.pdf
启动 Evince 的第二个实例并在该实例中打开新文档。这不是我想要的。相反,我希望能够向(正在运行的)实例发送信号,使其打开新文档在那种情况下。据我所知,这对于 Evince 或 XPDF 都是不可能的。
我需要使用 shell 命令(而不是“文件”->“打开”)来编写脚本。
有没有一款 PDF 软件可以让我做到这一点?
动机:TeXStudio 程序是一个 TeX 编译器,与 PDF 查看器捆绑在一起。当用户按下按钮时,TeX 源代码将被编译为 PDF,并且 PDF 文件将显示在单独的窗口中。如果此窗口已打开,程序将在现有窗口中显示 PDF 内容。我想在平铺窗口管理器中使用平铺 Vim 和 Evince 窗口来复制此功能,并使用链接两者的适当插件。
答案1
表明如果发生更改,则会重新加载 pdf 文件,因此您可以使用虚拟文件来覆盖要显示的 pdf 文件。
# preview dummy file, a blank pdf maybe.
cp blank.pdf dummy.pdf
evince dummy.pdf
# show document1.pdf
cp document1.pdf dummy.pdf
# later..., show document2.pdf
cp document2.pdf dummy.pdf
# restore the default file
cp blank.pdf dummy.pdf
答案2
您可以使用 qpdfview 在同一窗口但不同选项卡下打开文档:
$ qpdfview --unique --instance texview file.pdf
如果该实例不存在,则会生成带有该实例 ID 的新窗口,或者在现有实例的新选项卡中打开文件。
这里唯一的缺点是它不会关闭以前打开的文件。