可能重复:
条件“如果有包可用”
我正在使用一个包“mcode.sty”,它可以增强/着色列表输出;即使没有它,排版也可以完美运行。但是,我经常在这样的环境中排版,除了当前目录之外,我无法在 LaTeX 可以找到的任何地方包含包文件。我想\usepackage
在我的默认序言中包含该语句(我使用的是 LyX),但通常该文件不会在那里,并且 LaTeX 会因错误而退出,即使我当前项目中不需要该功能。实际上,我只想在 .sty 文件位于当前目录中或 LaTeX 路径中的某个位置时包含该包,如果找不到它,则不退出。类似\begin{ignore_errors} \usepackage{mcode} \end{ignore_errors}
。有办法吗?
答案1
如果您不需要该软件包,则不应包含它。也就是说,这可以满足您的要求。
\IfFileExists{foo.sty}{\usepackage{foo}}{}
如果您想要一个宏,那么您可以使用类似下面的内容。
\newcommand*\usepackageifpresent[2][]{%
\IfFileExists{#2.sty}{\usepackage[#1]{#2}}{}%
}
它支持可选参数,
\usepackageifpresent[margin=3in]{geometry}
例如。