自定义类包中未使用的全局选项

自定义类包中未使用的全局选项

我看过这些页面未使用的全局选项:[language=english]自定义类中未使用的全局选项但我仍然收到未使用的全局选项错误,我并不完全理解为什么。(我没有看到任何其他错误,所以如果这是重复的,请原谅)。这是 MWE(MWE 之后的附加信息):

文件:mypkg.cls

\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{mypkg}
\RequirePackage{xkeyval}

% setup class
\def\tcg@cls@name{notes}
\def\tcg@cls@document{article}
\DeclareOption{article}{
    \def\tcg@cls@name{article}
    \def\tcg@cls@document{amsart}
}

\DeclareOptionX{classname}[notes]{%
    \def\tcg@cls@name{#1}
}

% Pass extra options
\DeclareOptionX*{
    \PassOptionsToClass{\CurrentOption}{\tcg@cls@document}
}
\DeclareOption*{
    \PassOptionsToClass{\CurrentOption}{\tcg@cls@document}
}
\ProcessOptions\relax
\ProcessOptionsX\relax
\LoadClass{\tcg@cls@document}

文件:article.tex

\documentclass[article]{mypkg}
\begin{document}                                                     
Nothing
\end{document}

我收到的错误是:

LaTeX Warning: Unused global option(s): [article].

附加信息:基本上,我想做的是创建一个具有多个潜在选项的包。(在 MWE 中,我只有两个选项,但在我的文件中,我至少有 20 个不同的选项。从技术上讲,MWE 不是 MWE,因为如果我删除该X选项,我会得到同样的错误,但我想指出的是,我需要X选择。)问题是我想要全部选项也会传递给我正在加载的类。这样做的原因是我希望用户能够自动使用任何“标准”类选项,但我不想为每个选项声明一个选项并手动传递它。

本质上我需要一些方法来传递仅有的已加载类的一些选项,其中“一些”是指:

  1. 我还没有处理过这个选项。
  2. 我确实处理过这个选项,但无论如何我还是想传递下去。

对于上面的第二个选项,我并不担心,因为我知道我可以单独使用\PassOptionsToClass这些选项,但上面的第一个情况我不知道该怎么做,因为它看起来像是\DeclareOption*版本X传递all选项而不是尚未处理的选项。有办法吗?

或者,我也可以只隐藏错误消息,但我不确定该怎么做。每次我尝试隐藏消息时,都没有任何变化。

相关内容