选项未通过 \LoadClass 命令传递类文件

选项未通过 \LoadClass 命令传递类文件

以下代码运行良好并给出预期的输出。

\documentclass[fontsize=14pt,twoside,a4paper]{book}
\usepackage[T1]{fontenc}
\usepackage[none]{hyphenat}
\usepackage{scrextend}
\usepackage{wordlike}
\usepackage{blindtext,setspace}
\geometry{hmargin=2.54cm,vmargin=2.54cm}
\setstretch{1.09}
\begin{document}
\noindent\blindtext[9]
\end{document}

我想将其转换为类文件。以下是基于上述代码的类文件。

\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{myclass}
\LoadClass[fontsize=14pt,twoside,a4paper]{book}
\RequirePackage[T1]{fontenc}
\RequirePackage[none]{hyphenat}
\RequirePackage{scrextend}
\RequirePackage{wordlike}
\RequirePackage{blindtext,setspace}
\geometry{hmargin=2.54cm,vmargin=2.54cm}
\setstretch{1.09} 

当我编译文件中的代码my.tex(如下所示)时,它会被编译。

\documentclass{myclass}
\begin{document}
\noindent\blindtext[9]
\end{document}

但是选项fontsize=14pt和其他选项可能都没有传递。所以问题是\LoacClass似乎没有将选项传递给 tex 文件。如何解决这个问题?我还发现,如果我使用\documentclass[fontsize=14pt,twoside,a4paper]{myclass},问题就解决了。但我想使用myclass指定的选项加载。可以吗?

答案1

在“直接”使用代码的情况下,该选项fontsize=14bp不会被类识别book,但由于您将其作为全局选项(的可选参数\documentclass)提供,因此它可供您加载的所有包使用。它被认可scrextend,因此得到应用。

相反,当你创建一个类时,该选项fontsize=14pt不再位于全局列表中,而是现在纯粹传递给book,但无法识别,因此发出警告。您需要在此处将选项传递给实际需要它的包,因此

\RequirePackage[fontsize=14pt]{scrextend}

相关内容