我编写了一个小包,用于排版一本书。现在,我想将其重新用于较小的文档。该包使用tcolorbox
并定义了一个框,如下所示:
\newtcblisting[auto counter,
number within=chapter,
crefname={Lis.}{Lis.},
...
在编写较短的文档时,我唯一需要更改的就是删除该行number within=chapter
。
我不确定如何实现这一点。最好的方法是什么:
- 使用
if
以某种方式测试计数器是否chapter
已定义? - 使用
if
以某种方式测试文档类(例如,book
vsarticle
)? - 向包中添加一个选项并测试它以包含/排除
number within
?
我开发软件包的经验很少,我欢迎任何有关这个问题的帮助。
提前致谢。
答案1
您可以按名称检查文档类别,但更常见的是检查\chapter
\@ifundefined{chapter}
{no chapter version}
{chapter version}