Como adicionar argumentos opcionais a um pacote que estou escrevendo?

Como adicionar argumentos opcionais a um pacote que estou escrevendo?

Quero construir um pacote que possa, opcionalmente, digitar linhas em espaço duplo. Algo assim:

\ProvidePackage{mypackage}
% actual functional codes

Então posso usar o pacote desta maneira:

\usepackage[doublespc=yes]{mypackage}

Para que todas as linhas sejam escritas em espaço duplo. Se eu omitir esse argumento opcional no preâmbulo, todas as linhas serão escritas em espaço único.

Responder1

Aqui está uma implementação básica, seguindo o guiaLaTeX 2e para criadores de classes e pacotes(seção4.3 Declaração de opção, pág. 18):

insira a descrição da imagem aqui

\documentclass{article}
\usepackage{filecontents}% http://ctan.org/pkg/filecontents

\begin{filecontents*}{mypackage.sty}
\ProvidesPackage{mypackage}
\newif\if@doublespace
\DeclareOption{doublespace}{\@doublespacetrue}
\ProcessOptions
\if@doublespace\RequirePackage{setspace}\doublespacing\fi
\endinput
\end{filecontents*}

\usepackage[doublespace]{mypackage}
\begin{document}
Here is some

text in two paragraphs.
\end{document}

O pacote mypackage.stydeclara uma opção doublespaceque define a condição \@doublespacetrue. Se isso for definido como verdadeiro, ele \RequiresPackage{setspace}e define \doublespacing.

informação relacionada