MacTex 2022 问题

MacTex 2022 问题

我有两台 MacBookAir,一台旧的安装了 MacTex-2018,一台新的安装了 Mac Tex 2021。MacTex 在两种情况下都运行良好。

我的旧笔记本电脑坏了,我买了一台新的 MacAir,并安装了 MacTex2022。结果一片混乱。我在使用 MacTex 的任何前身时都没有遇到过这些问题,而且我已经使用这个软件超过 15 年了。

问题太多,无法全部列出,但这里有一个示例。

2022 版本在使用 gsm-l 包(由美国数学协会为作者创建)处理文件时出现问题。它显然找不到这个包。我不知道应该把这个包放在哪里。使用 < 2022 版本时,我不需要做任何特殊的事情。如果我将选项 gsm-l 更改为世界科学 .cls 选项,一切正常。

我使用 pb-diagram、pb-lams、lamsarrow 软件包来生成图表。它们在我的一些文件上有效。但大多数文件上无效。我有 lams 字体,像往常一样将它们放在 Library 目录中,但这没有帮助,因为有时 MacTex 找不到它们。在其他情况下,我没有遇到这些问题。

graphicx 和 epstopf 软件包也运行不稳定。也就是说,它们在某些文件上可以工作,但在其他一些文件上似乎无法找到 .eps 文件。我的文本中包含了 jpg 和 png 文件。这里也有同样的问题。在某些文件上可以工作,但在其他文件上却无法工作。

使用早期版本的 Mac Tex 时我没有遇到任何上述问题。我在云端(Dropbox)工作,因此我没有更改包含我正在处理的 tex 文件的目录的结构。

诚然,我的电脑技能有限,但多年来我已经在大约十几台 Mac 上安装了 MacTex,一切都运行正常。我严格遵循安装说明,现在我的笔记本电脑中有一个“野兽”,其行为没有表现出任何明显的规律。

我目前使用的是 Monterrey 12.3.1,我的另一台笔记本电脑上的 MacTex 2021 也在这个操作系统上运行良好。

我没什么主意,如果您能提供任何建议,我将不胜感激。谢谢!

更新谜团越来越深。在沮丧之余,我安装了 MikTex for Mac,并做了以下实验。

我使用 TexShop/MacTex 运行了一个 Tex 文件,遇到了各种问题。该过程以“致命错误消息”结束。然后我使用 miktex-texwork 处理了同一个 TeX 文件。一切顺利。我再次尝试使用 TexShop 处理该文件。它运行良好。没有更多问题。

对其他 TeX 文件也做了同样的想法,也观察到了同样的事情。只有在我先使用 miktex 处理 Tex 文件后,TexShop 才能正常工作。

在这里包含日志文件似乎毫无意义。文件之间的错误类型太多,难以辨别模式。我有自己的 TeX 模板,所以它们都有相同的前言。

最后更新这是关于 Dropbox 的。从蒙特雷升级开始,Dropbox 无法正常工作。如果您尝试在云端工作,这也会影响 MacTex2022 的行为。早期版本的 MacTex 似乎不受此影响。

答案1

根据评论,我设法重建了这里的基本问题,该问题与 Monterey(OS 12)以来的 MacOS 变化以及 Dropbox 和 OneDrive 等应用程序有关。

从 MacOS 12 开始,基于云的文件存储方式发生了变化。Dropbox 和 OneDrive(可能还有其他云同步解决方案)现在默认为“按需文件”模式,这意味着未主动使用的文件将保留在服务器上,并且仅在打开时下载。实际上,这意味着尽管文件在 Finder 中显示为一种存根,但它们没有实际内容。Dropbox 和 OneDrive 已经意识到了这个问题,但尚未成功解决。希望他们能解决这个问题,这样下面给出的解决方案就不再需要了。

(旧)本地文件的问题

当您尝试编译需要“仅限云”文件之一的文件时,该文件不会被标记为丢失(因为它确实存在),但它实际上不会加载任何内容。[感谢 Phelype Oleinik 对如何加载包的讨论]。

这将在下列情况下导致错误(可能不是详尽的列表):

  • .aux编译期间应读取的现有文件
  • 插入到主文档中的文件\input\include
  • 本地(源文档文件夹)类或包

如果这些文件中有任何一个是“仅限云”的,则它们包含的代码将不存在,并且它们定义的任何宏都将导致“未定义的控制序列错误”。此类错误可能会非常具有误导性,因为您会认为文件都在那里,尤其是在以前编译时没有错误的现有文档上。

texmfDropbox 文件夹问题

如果您将本地texmf文件夹链接到 Dropbox 文件夹,则可能会出现进一步的问题,如下所述:

如果您确实有此设置,那么许多本地安装的包和类将具有“仅限云”状态,因此如果您尝试加载它们就会出现错误。

解决方案

根据具体情况,您可以采用具体或一般的方式解决问题。

单独的文件夹解决方案

对于.aux文件,在重新编译旧文档之前将其删除就足够了。

对于本地\input\included文件或本地到源文件夹包或类,只需先在编辑器中打开这些文件即可下载它们,然后它们将再次可用。

通用解决方案

对于texmf链接到 Dropbox 的文件夹,上述解决方案不切实际。在这种情况下,更好的长期解决方案是确保将链接的 Dropbox 文件夹设置为“使文件可离线使用”。这将阻止“仅限云”状态应用于该文件夹。由于状态递归应用于所有包含的文件和文件夹,因此您只需为顶级文件夹设置该状态。为此,右键单击(或按住 Control 键单击)文件夹的 Finder 图标,将出现一组 Dropbox 菜单项。选择“使文件可离线使用”项。

当然,此解决方案适用于任何单个文件夹,而且由于.tex文件通常不大,因此将其用于包含.tex文件的文件夹可能没问题。但在实践中,我认为大多数情况下都没有必要,因为单个文件夹解决方案就足够了。

还有一个全局 Dropbox 设置可以关闭“按需文件”,但这似乎不是一个最佳解决方案,因为“按需文件”通常是一种有用的空间节省功能。

相关内容