如果包尚未加载,如何发出警告

如果包尚未加载,如何发出警告

如果包尚未加载,是否可以发出警告?

如果可能的话,我希望解决方案不需要,\usepackage{ifthen}因为它无法发出缺少ifthen包的警告。

编辑:感谢 Martin 和 Joseph 的回复。我想澄清一下我的问题:是否可以在文档主体内进行此操作?

\AtBeginDocument\RequirePackage\@ifpackageloaded在前言中可用。ltxcmds软件包\ltx@ifpackageloaded在正文中可用,但随后ltxcmds需要 软件包才能使其工作。

我希望这种情况是,我正在使用xtable中的包生成表格,R并且当floating.environment='sidewaystable'使用参数时,rotating包是必需的。为了让用户轻松完成此操作,我想让他们简单地\input{<path_to_xtable>}。但是,如果rotating未加载包,pdflatex 会给出类似这样的错误消息

l.3 \begin{sidewaystable}
                         [ht]
?

我希望它发出更具信息性的警告,告知您rotating包裹丢失。这可能吗?

答案1

大多数情况下,您不会以这种方式进行测试,而只是需要那些您需要的包,但当然也有一些情况,加载顺序很尴尬,测试很有用。执行此操作的标准方法是在文档开头进行测试

\AtBeginDocument{%
  \@ifpackageloaded{OtherPackage}% Fill in name here
    {}% Nothing to say
    {%
      \PackageWarning{MyPackage}
         {You have not loaded the 'OtherPackage' package!}%
    }%
}

为了允许在文档主体中进行检查,通常的方法是定义一个条件

\newif\ifmy@check@OtherPackage@loaded
\AtBeginDocument{%
  \@ifpackageloaded{OtherPackage}% Fill in name here
    {\my@check@OtherPackage@loadedtrue}% Nothing to say
    {\my@check@OtherPackage@loadedfalse}%
}

然后使用该条件检查包是否可用。

相关内容