使用 newcommand 和 CurrentOption 记住类选项

使用 newcommand 和 CurrentOption 记住类选项

我正在尝试创建一个类,但它需要记住它的参数

我正在使用该文件

\documentclass[x]{test}

\begin{document}
\end{document}

随着班级

\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{test}[2015/01/15 test class]

\DeclareOption*{
  \newcommand{\test}{y}
  \typeout{\test}
}

\ProcessOptions\relax

\typeout{\test}

\endinput

它输出

 y
 y

这很好但这不是我想要做的。

随着班级

\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{test}[2015/01/15 test class]

\DeclareOption*{
  \newcommand{\test}{\CurrentOption}
  \typeout{\test}
}

\ProcessOptions\relax

\typeout{\test}

\endinput

我明白了

x
<- empty line

它就像没有“取消引用”\CurrentOption并采用其字符串值,因此对于第二个\typeout\CurrentOption不再定义为任何东西,并且我得到一个空值:( 有人知道如何“取消引用”它吗?:)

答案1

您可以使用\let来获得\test的定义\CurrentOption而不是引用它:

\documentclass[jjj]{test}

\stop

与类

\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{test}[2015/01/15 test class]

\DeclareOption*{%
  \let\test\CurrentOption
  \typeout{\test}%
}

\ProcessOptions\relax

\typeout{\test}

\endinput

相关内容