假装包已经加载

假装包已经加载

我试图在同一个类中使用imakeidx和包。由于依赖于包并提供与 regexpatch 相同的命令(相同的名称,改进的实现),这会导致错误(重新定义命令)。有没有办法假装我加载了包,这样里面就不会加载任何东西?(因为我之前加载过,所以一切都应该没问题)。regexpatchimakeidxxpatchxpatchxpatchrequireimakeidxregexpatch

虽然我上面有一个具体的例子,但我对防止语句加载包的一般答案很感兴趣require,对我的特殊情况的解决方法是一个奖励(我想要么我做错了什么,要么包作者会看一看)。

答案1

可以使用David的建议,但etoolbox无论如何都必须加载:

\ProvidesFile{xpatch.sty}
\usepackage{etoolbox}
\usepackage{imakeidx}
\usepackage{regexpatch}

应该做。

答案2

egreg 回答了具体问题,但避免包加载的一般问题如评论中所述:

\documentclass{article}

\ProvidesFile{longtable.sty}

\usepackage{longtable}

\typeout{longtable is: \meaning\longtable}

\stop

生产

longtable is: undefined

显示包尚未加载,尽管\usepackage

相关内容