在编译文档时使用 TeX Live Update 实用程序是否安全?

在编译文档时使用 TeX Live Update 实用程序是否安全?

我刚刚启动了 TeX Live Update 实用程序,发现服务器上有相当多的软件包已更新。我继续更新所有过时的软件包,但这需要一段时间。

继续处理我的 LaTeX 文档并继续编译是否安全(就数据丢失和文件损坏而言)?还是我应该停下来等待更新完成?

我在 OS X 10.8.5 上安装 TeXLive-2013 发行版。

答案1

与其他海报相反,您可以覆盖或修改 OS X 上的打开的文件(据我所知,就像在任何 UNIX 上一样),因此更新将会成功。

我看到的唯一潜在问题是小竞争条件,例如,您使用的样式文件已解压并移动到位,但其他相关文件尚未到位或字体映射尚未更新。这可能会导致编译文档失败或输出奇怪。

答案2

我将等待更新完成。

  1. 您在文档中使用的软件包可能存在错误修复。因此使用旧软件包可能会导致已解决的错误。
  2. 当您在更新文档时构建文档时,LaTeX 可能会读取这些包。这也会停止构建过程,因为您无法同时读取和写入同一个文件。

答案3

你问了两个不同的问题,把它们区分开来很重要。两者之间有很大的区别

  1. 更新时编辑您的文档;
  2. 在更新的同时编译您的文档。

绝对可以安全地保存在职的更新期间,您的文档可能会出现问题。编译在更新过程中检查它们。我避免这样做,因为它很容易变得混乱。(如果编译失败,我可能不得不停下来清除损坏的辅助文件,这将需要我再次编译,重新运行辅助程序,例如或,biber然后makeglossaries再次编译。没有什么可怕的,但可能会很烦人。)

唯一的问题是編輯如果您将编辑器配置为连续重新编译,则在更新过程中会发生这种情况。在这种情况下,单纯的编辑也会被编译。

确实,正如 Keks Dose 的回答指出的那样,即使编辑您的文档也可能会因为出现错误而造成混乱,因为可能需要一些时间才能确定是您的编辑还是更新导致了问题。

但是,采取预防措施非常简单。将文档置于版本控制之下有很多好处,包括能够轻松、毫不费力地将源文件恢复到已知良好的状态。但是,如果您不想使用版本控制,只需在更新之前保存一份文档副本,以便在遇到问题时可以测试该版本的编译。

答案4

处理文档时请勿更新(至少如果您不是专业的 LaTeX 用户)

几年前,我们遇到过这样的情况:一个软件包(libertine)的无心更新删除了对 pdftex 的支持。早上,我在处理一个大型文档时愉快地运行了 texlive 更新,突然间,编译变得不可能了!

自然,我翻遍了我的文档寻找错误,但自然无果。

所以:在运行 texlive 更新时请勿编辑您的文档。如果出现错误,您有两个可能的来源:更新和您的工作。由于检查错误来源需要花费大量时间,因此自几年前发生那起事件以来,我不再同时编写和更新。


可能有一个解决方法——参见下面 cfr 的评论:例如及时备份——,但通常当我的文件无法编译时我并不那么冷静。我现在就想要它!并开始搜索保存的文件和当前文件之间的差异(新软件包?更改的选项?进行差异分析?哎呀,这个备份有多旧?)——所有这些都比简单地将更新推迟到午休时间需要更多的时间和精力。

相关内容