我不明白在编写子类时如何将选项传递给父类。我尝试了几种可能性,但从未得到齐平左对齐的方程式。
LoadClass
我确实理解和之间的区别,LoadClassWithOptions
但我认为这不是问题所在。未注释的行与我从文档 clsguide.pdf 中理解的内容相对应,但它不起作用。
\RequirePackage{filecontents}
% my class file
\begin{filecontents}{baz.cls}
\PassOptionsToClass{fleqn}{article}
\ProcessOptions\relax
%\LoadClass[fleqn]{article}
\LoadClass{article}
%\LoadClassWithOptions{article}
\RequirePackage{amsmath}
\end{filecontents}
\documentclass{baz}
%\documentclass[fleqn]{baz}
\usepackage{lipsum}
\begin{document}
\lipsum[1]
\begin{equation*}
e^{i\pi} + 1 = 0
\end{equation*}
\lipsum[2]
\end{document}
答案1
本例中的混淆来自于这样一个事实:实际上包amsmath
需要知道选项fleqn
。目前,您没有向传递任何选项amsmath
。一个可行的设置是:
baz.sty
:
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
\ProcessOptions\relax
\LoadClass[fleqn]{article}
\RequirePackage[fleqn]{amsmath}
tex 文件:
\documentclass[a4paper]{baz}
\usepackage{lipsum}
\begin{document}
\lipsum*[1]
\begin{equation*}
e^{i\pi} + 1 = 0
\end{equation*}
\lipsum[2]
\end{document}
在这里,您可以看到将附加选项传递给类,该类使用fleqn
option 额外加载。包也amsmath
使用 option 加载fleqn
。在这种情况下,包选项可能是不必要的,但这模仿了
\documentclass[fleqn]{article}
\usepackage{amsmath}