latexoptional-arguments

LaTeX Optional Arguments


How do you create a command with optional arguments in LaTeX? Something like:

\newcommand{\sec}[2][]{
    \section*{#1
        \ifsecondargument
            and #2
        \fi}
    }
}

Then, I can call it like

\sec{Hello}
%Output: Hello
\sec{Hello}{Hi}
%Output: Hello and Hi

Solution

  • Example from the guide:

    \newcommand{\example}[2][YYY]{Mandatory arg: #2;
                                     Optional arg: #1.}
    
    This defines \example to be a command with two arguments, 
    referred to as #1 and #2 in the {<definition>}--nothing new so far. 
    But by adding a second optional argument to this \newcommand 
    (the [YYY]) the first argument (#1) of the newly defined 
    command \example is made optional with its default value being YYY.
    
    Thus the usage of \example is either:
    
       \example{BBB}
    which prints:
    Mandatory arg: BBB; Optional arg: YYY.
    or:
       \example[XXX]{AAA}
    which prints:
    Mandatory arg: AAA; Optional arg: XXX.