为什么在自定义文档类中使用 \RequirePackage{xlop} 时,xlop 命令会产生水平混乱的输出?

为什么在自定义文档类中使用 \RequirePackage{xlop} 时,xlop 命令会产生水平混乱的输出?

测试.tex:

\documentclass{testclass}

\begin{document}

Some text.

\opadd{34}{45}

\end{document}

测试类.cls:

\ProvidesClass{testclass}

\RequirePackage{xlop} 

\LoadClass{article}

正在生产:

opadd 命令的输出显示数字拼凑在一起

而此版本的 test.tex 的使用\usepackage{xlop}产生了预期的结果。

\documentclass{article}

\usepackage{xlop}

\begin{document}

Some text.

\opadd{34}{45}

\end{document}

答案1

xlop包使用一个长度参数,该参数在包加载时\opcolumnwidth初始化为。2ex

如果您\RequirePackage{xlop}之前这样做\LoadClass{article},仍然没有活动字体,因此列宽设置为 0pt。

实际上,这种设置无论如何都不太好,因为即使改变加载顺序,列宽也会相对于标准article字体设置为 2ex,这可能不适合文档中使用的字体。

最好在开始文档时重置参数,因此在设置文档字体之后。

\ProvidesClass{testclass}

\LoadClass{article}

\RequirePackage{xlop}

\AtBeginDocument{%
  \opset{columnwidth=2ex,lineheight=\baselineskip}%
}

相关内容