“以向后兼容模式运行”是什么意思?我应该修复什么才能摆脱它?

“以向后兼容模式运行”是什么意思?我应该修复什么才能摆脱它?

我正在排版 Tex 文件,但是收到此警告:

! 软件包 pgfplots 警告:以向后兼容模式运行(不合适的刻度标签;缺少功能)。请考虑将 \pgfplotsset{compat=1.6} 写入您的前言中。

现在,我知道在序言中添加该行可以解决问题,但我的问题更多地集中在问题的“我为什么会得到这个”部分。

我应该在 Tex 文件中查找什么?通常我会得到“X 行有问题”的提示,但在这里,我迷路了。我不明白它在抱怨什么。

答案1

LaTeX 内核以及内核之外的许多软件包试图遵循的原则之一是,当文档在使用不同软件包版本的不同机器上重新编译时,即使相隔数十年,它们也应该看起来相同(甚至包括间距行为)。

pgfplots是一个定期更新的软件包,经常添加新功能和修复错误。这也意味着如果在启用这些新功能/错误修复的情况下重新编译某些旧文档,它们可能会看起来不同。因此,它pgfplots提供了一个功能,您必须明确请求要使用哪个版本的软件包(或者至少本质上是这样的,因为该软件包为旧版本提供了向后兼容模拟),以及要访问哪些新功能和错误修复。

这是一件“好事”,但它解释了您的警告 - 您没有使用所有可用的功能和错误修复。正如警告中提到的,一些修复包括更好地放置刻度标签。默认情况下不启用此功能,因为它显然会改变现有文档的显示方式。

手册第 2.2 节“升级备注”pgfplots对此进行了讨论。

为了完整起见,我提供了有关选择版本的信息:

  • 请求特定版本

    要请求特定版本,只需使用以下compat选项:

    \usepackage{pgfplots}
    \pgfplotsset{compat=1.7}
    
  • 前沿技术(不鼓励)

    您可能会乐于生活在“最前沿”,并始终使用其提供的最新错误修复等pgfplotspgfplots还允许您指定这一点,但鼓励您不是因为您的文档在某些时间更新包之前/之后的编译可能会有所不同,并且您可能没有明确意识到这些更改或导致这些更改的原因。

    因此,如果您选择newest带有

    \usepackage{pgfplots}
    \pgfplotsset{compat=newest}
    

    然后pgfplots仍然会发出一条消息(不是警告)来提醒你,但你可能会错过:

    Package pgfplots notification 'compat/show suggested version=true': document has been generated with the most recent feature set (\pgfplotsset{compat=1.7}).
    

    也可以禁用此通知:

    \usepackage{pgfplots}
    \pgfplotsset{compat=newest,compat/show suggested version=false}
    

    但请记住,pgfplots作者不鼓励这样做!再次,请参阅手册以获取官方信息。

相关内容