![使用 Springer Nature 模板时,数学模式中分号后出现不寻常的额外空格](https://linux22.com/image/457120/%E4%BD%BF%E7%94%A8%20Springer%20Nature%20%E6%A8%A1%E6%9D%BF%E6%97%B6%EF%BC%8C%E6%95%B0%E5%AD%A6%E6%A8%A1%E5%BC%8F%E4%B8%AD%E5%88%86%E5%8F%B7%E5%90%8E%E5%87%BA%E7%8E%B0%E4%B8%8D%E5%AF%BB%E5%B8%B8%E7%9A%84%E9%A2%9D%E5%A4%96%E7%A9%BA%E6%A0%BC.png)
由于我不明白的原因,Springer Nature LaTeX 创作模板(可通过背页以及Springer Nature 网站) 会导致在数学模式下分号后插入额外的空格。
例如,以下 MWE 产生:
\documentclass[sn-mathphys,pdflatex]{sn-jnl}
\begin{document}
\begin{equation}
(x,y)\quad (x;y)
\end{equation}
\end{document}
而将第一行替换为\documentclass{article}
可得到预期的间距:
是否可以在不直接更改 sn-jnl.cls 文件的情况下覆盖文档中的此行为?具体来说,是否可以采用比例如将;
文档中的每个实例替换为{;}
或更优雅的方式来执行此操作/!/!;
?
编辑:正如 @egreg 在他的回答中指出的那样,可以通过禁用包的加载来避免分号后的空格program
。 但是,在使用证明环境时,这种方法会以某种方式导致错误(当允许加载包时不会出现错误program
):
第二次编辑:从下面@egreg的评论来看,通过将以下内容放在前面可以给出令人满意的解决方案\begin{document}
:
\makeatletter
\disable@package@load{program}{} %prevent program package from loading
\makeatother
\documentclass[sn-mathphys,pdflatex]{sn-jnl}
\AtBeginDocument{\renewcommand\qedsymbol{\ensuremath{\opensquare}}} %fix class bug with proof environment
答案1
该类sn-jnl
毫无理由地加载了进行愚蠢设置的包program
,并导致了该类出现很多问题。
具体来说,该包将分号定义为数学活动,以在数学模式下生成标准分号作为标点符号,后跟一个粗空格。
您可以禁用加载该包program
。
\makeatletter
\disable@package@load{program}{}
\makeatother
\documentclass[sn-mathphys,pdflatex]{sn-jnl}
\begin{document}
\begin{equation}
(x,y)\quad (x;y)
\end{equation}
\end{document}
向 Springer 投诉他们至少应该提供一个不加载的选项program
。