Как добавить необязательные аргументы в пакет, который я пишу?

Как добавить необязательные аргументы в пакет, который я пишу?

Я хочу создать пакет, который может опционально набирать строки с двойным интервалом. Что-то вроде этого:

\ProvidePackage{mypackage}
% actual functional codes

Тогда я могу использовать пакет следующим образом:

\usepackage[doublespc=yes]{mypackage}

Так что вся строка будет набрана двойным интервалом. Если я опущу этот необязательный аргумент в преамбуле, то вся строка будет набрана одинарным интервалом.

решение1

Вот базовая реализация, следуя руководствуLaTeX 2e для разработчиков классов и пакетов(раздел4.3 Декларация опций, стр. 18):

введите описание изображения здесь

\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}

Пакет mypackage.styобъявляет опцию doublespace, которая задает условие \@doublespacetrue. Если это установлено в true, он \RequiresPackage{setspace}и задает \doublespacing.

Связанный контент