[Tex/LaTex] Applying options to already loaded package

package-optionspackages

Is there a way to apply some options to a package which is loaded in the cls file I am using? For instance, suppose that the cls file loads graphicx, and I want to apply the option demo to it from my tex file.

Best Answer

If a package is loaded, the option setting code in the package is already processed and gone. Thus in general you cannot change package options later.

\PassOptionsToPackage

But you can specify options earlier, before loading the package. Apart from a global option (with side effects for other packages) \PassOptionsToPackage can be even used before \documentclass, e.g.:

\PassOptionsToPackage{demo}{graphicx}
\documentclass{article}
\usepackage{graphicx}

\begin{document}
\includegraphics{foobar}
\end{document}

Package interface for loading options

Sometimes a package or class allows the setting of a subset of options later. For example, package hyperref provides \hypersetup. Also some options of package graphicx (or rather for \includegraphics) can be set via:

\setkeys{Gin}{<options>}

However, the option demo is not supported this way.