书籍/文章类别之间的定制包

书籍/文章类别之间的定制包

我编写了一个小包,用于排版一本书。现在,我想将其重新用于较小的文档。该包使用tcolorbox并定义了一个框,如下所示:

\newtcblisting[auto counter,
               number within=chapter,
               crefname={Lis.}{Lis.},
               ...

在编写较短的文档时,我唯一需要更改的就是删除该行number within=chapter

我不确定如何实现这一点。最好的方法是什么:

  • 使用if以某种方式测试计数器是否chapter已定义?
  • 使用if以某种方式测试文档类(例如,bookvs article)?
  • 向包中添加一个选项并测试它以包含/排除number within

我开发软件包的经验很少,我欢迎任何有关这个问题的帮助。

提前致谢。

答案1

您可以按名称检查文档类别,但更常见的是检查\chapter

\@ifundefined{chapter}
  {no chapter version}
   {chapter version}

相关内容