我制作了一个名为 byzantinemusic 的包(参见https://www.ctan.org/pkg/byzantinemusic) 可以使用此包使用前言中的命令以现代拜占庭符号编写音乐
\usepackage{byzantinemusic}
。我已经设计了一个新的 .sty,其名称byzantinemusicextended.sty
将包扩展到古老的拜占庭音乐符号。我想为我的包提供“古老”选项,以便:如果使用, \usepackage[archaic]{byzantinemusic}
则将使用 byzantinemusicextended.sty,否则(即没有选项)将使用旧的byzantinemusic.sty
。如何做到这一点?
答案1
以下是一个例子
\ProvidesPackage{mytest}
\newif\ifmyoption
% false by default
\DeclareOption{test}{\myoptiontrue}
\ProcessOptions\relax
\ifmyoption
\RequirePackage{amsmath}
\expandafter\endinput
\fi
\newcommand\test{test}
因此\test
仅在没有选项的情况下定义test
。使用它的 MWE
\documentclass[a4paper]{article}
\usepackage{mytest}
%\usepackage[test]{mytest}
\begin{document}
dsf
\test
\end{document}
因此,如果test
给定,amsmath
则加载并且\test
未定义。如果没有,test
amsmath
则不加载并且\test
已定义。
我记得的想法empheq.sty
使用了类似的技巧