如果我使用 PDFLatex 编译 .tex 文档(即编译最终生成 .pdf),并且我在 Adobe Acrobat 中打开了同名的 pdf,则编译将抛出错误,要求为输出 .pdf 使用不同的名称。但是,如果我尝试在 Sumatra 中打开文档来完成相同的任务,则编译不会出现问题,并且 .pdf 会在 Sumatra 中刷新。
显然,这是关于两个不同程序的工作方式的问题。我假设由于某种原因,Sumatra 将文件的一个版本加载到内存中,然后关闭文件以允许 LaTeX 对其进行编辑,而 Acrobat 则保持文件打开。为什么会有这种差异?每种方法的优缺点是什么?大多数 .pdf 阅读器似乎可以像 Acrobat 一样处理 .pdf,但还有其他人可以像 Sumatra 一样处理吗?
答案1
这是一个非常古老的问题,但我有一个值得纳入的答案。
- 为什么 Sumatra 允许您在打开文件时对其进行编译?因为 Sumatra 会加载文件并处理已加载的文件版本,而不是锁定当前文件以防止冲突。对于 Sumatra 来说,这不是什么大问题,因为您无法在 Sumatra 中真正编辑文件,但如果不在您可编辑的文件中创建冲突,则可能是不可能的。
- 还有其他读者也有同样的行为吗?有!Okular 具有 Sumatra 的大部分功能和您可以添加评论和它适用于 Linux、Windows 和 Mac。一般来说,Okular 是一个惊人的FOSS 程序。