\DeclareOption
¶Synopsis:
\DeclareOption{option}{code} \DeclareOption*{option}{code}
Define an option a user can include in their \documentclass
command. For example, a class smcmemo
could have an option
logo
allowing users to put the institutional logo on the first
page. The document would start with
\documentclass[logo]{smcmemo}
. To enable this, the class file
must contain \DeclareOption{logo}{code}
(and later,
\ProcessOptions
).
If you request an option that has not been declared, by default this
will produce a warning like Unused global option(s):
[badoption].
This can be changed by using
\DeclareOption*{code}
, which executes code for
any unknown option.
For example, many classes extend an existing class, using code such as
\LoadClass{article}
(see \LoadClass). In this case, it
makes sense to pass any otherwise-unknown options to the underlying
class, like this:
\DeclareOption*{% \PassOptionsToClass{\CurrentOption}{article}% }
As another example, our class smcmemo
might allow users to keep
lists of memo recipients in external files, so the user could invoke
\documentclass[math]{smcmemo}
and it will read the file
math.memo
. This code inputs the file if it exists, while if it
doesn’t, the option is passed to the article
class:
\DeclareOption*{\InputIfFileExists{\CurrentOption.memo} {}{% \PassOptionsToClass{\CurrentOption}{article}}}