Compilazione condizionale con il pacchetto optional

È possibile usare un solo sorgente per produrre diversi tipi di documento, indicando di volta in volta quale parte di codice includere, mediante l'uso del pacchetto optional. Innanzi tutto bisogna caricarlo nel preambolo:

\usepackage{optional}

Nel codice sorgente si suddivide il testo all'interno di istruzioni \opt:

\opt{nomeopzione}{testo da stampare}

Ovviamente la forma di inserimento diretto del testo può essere usata solo per testi brevi, mentre per un documento più corposo (che ovviamente sarà stato suddiviso in più file) si potranno utilizzare le istruzioni \include o \input per inserire grosse parti di testo.

\opt{riservato}{\include{topsecret}}

\opt può inserire non solo testo ma anche comandi. Si possono ad esempio impostare due opzioni per produrre un documento senza immagini, utile per revisioni di bozza, e un altro con immagini per la versione finale:

\opt{noimg}{\usepackage[draft]{graphicx}}
\opt{img}{\usepackage{graphicx}}

Quando si lancia latex da linea di comando, la compilazione si interromperà con un prompt di comando chiedendo all'utente di digitare il nome delle opzioni da compilare, separate da virgola. Per evitare il prompt e compilare senza ulteriori interventi da parte dell'utente, ci sono due possibilità:

  1. si possono indicare le opzioni da compilare come argomento opzionale all'inclusione del pacchetto:

    \usepackage[img,riservato]{optional}
    
  2. oppure indicare le opzioni da compilare direttamente da linea di comando:

    latex "\def\UseOption{img,riservato}\input{main.tex}"