I have some documents using a same custom package. That "header" package loads by default the package fullpage. But I would like to write a new LaTeX document, using the same header, but without loading fullpage, and I don't want to change old files.

Is there a way to add an "if false" condition about options? I mean. I have currently:


But that implies to change all of my old documents to add the fullpage option to my package. I want however to make something like:

if-not-nofullpage {%

And in my new document:


Or perhaps a way to "unload" a previously loaded package:

\usepackage{fullpage} % inconditionally

\DeclareOption{nofullpage} {%

How can I do that? (if plain TeX macros are used in your answers, please, with little explanations).

2 Answers 2


You have to load fullpage after \ProcessOptions, first of all.

Here's the scheme:


\ExecuteOptions{fullpage} % default is fullpage



Then a document calling either




will load fullpage; a document calling



Thus you won't have to change your old document, but new ones will be able to avoid loading of fullpage.

  • Thanks egreg. What is the difference between \RequirePackage and \usepackage? I've read they are synonyms, but, really synonyms? Why two commands with same meaning?
    – ABu
    Commented Sep 26, 2013 at 18:08
  • 1
    @Peregring-lk In packages or classes \RequirePackage should be used. It's mostly a tradition, but having two separate command names can be used by the LaTeX developers for adding functionality to one of the commands without changing the meaning of the other.
    – egreg
    Commented Sep 26, 2013 at 18:19
  • Your solution works perfect. Elegant, direct and short. Thank you very much.
    – ABu
    Commented Sep 26, 2013 at 18:27
  • 1
    +1 - I took the liberty of taking your example and modifying it to use kvoptions Commented Nov 20, 2015 at 7:52

You can also use kvoptions:


\DeclareBoolOption[true]{fullpage}       % automatically creates \ifmypackage@fullpage
\DeclareComplementaryOption{nofullpage}{fullpage}  % automatically inverses the former


(based on egreg's example

See also the question on Mutually exclusive options in packages

  • Thanks for linking to "Mutually exclusive..." question. It worked like a charm there, the answer provided by "Martin Scharrer"! Commented Aug 9, 2022 at 17:28

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .