我正在使用 TextMaker (5.04) 或 Overleaf 在 LaTex 中准备手稿。这两个编译器创建的 pdf 输出相同,直到几天前我上传 Latex 2021 以使用最新版本的 siunitx。现在 Textmaker 创建的 pdf 有 43 页,而 overleaf (Tex Live 2020) 有 39 页。当我编译 overleaf (Tex Live 2019) 提供的 eLife 模板时也是如此;从 12 页,现在使用 TexMaker (Tex Live 2021) 有 15 页。 链接至 overleaf 上的生活模板 因此我无法使用 overleaf 进行编译,因为我无法处理 siunitx 的最新版本,并且 Textmaker 的输出在页面方面完全不正确。
我尝试在 \begin{document} 之后使用 \normalsize,但是没有作用。
第一页是来自 overleaf 的 eLife 模板的 pdf 输出(使用 Tex Live 2019 编译),第二页是来自 Tex Maker 的 pdf 输出(使用 Tex Live 2021 编译)第一页从 41 行缩短到 38 行
答案1
编辑:请参阅解决方案 2 了解真正的原因和解决方案。
在 2021 年发行版中,选项从一个类传递到另一个类(用于实现第一个类)似乎略有改变。
文档类elife.cls
使用文档类extarticle
来实现,但它使用传递选项的方法,该方法与此新发行版不兼容。因此选项9pt
无法正确传递给extarticle
,然后它使用默认的10pt
。
解决方案 1:
进行此更改可以elife.cls
解决此问题。
替换这些行
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{extarticle}}
\ExecuteOptions{}
\ProcessOptions\relax
\LoadClass{extarticle}
和
\ProcessOptions
\LoadClassWithOptions{extarticle}
笔记:这还将传递其他选项,例如lineno
,extarticle
这将导致extarticle
对未使用的全局选项的抱怨。这本身是无害的,但我认为这表明 的新代码有问题\PassOptionsToClass
。无论如何,将上述内容视为临时解决方案。
解决方案 2
这是更好的解决方案。我发现该babel
包现在破坏了选项处理。因此,所有选项处理都应在加载之前完成babel
,并且在加载之前执行此操作可能是最安全的。任何包裹。
life.cls
移动以 开头的代码片段
\newif\if@reqslineno
并结束于
\LoadClass{extarticle}
之后立马
\ProvidesClass{elife}[2021/03/18, v1.9]
即在加载任何包之前。