如何检查哪个命令被用来加载.sty 文件?

如何检查哪个命令被用来加载.sty 文件?

我有一个.sty文件可以使用命令\usepackage(在 LaTeX 中)或命令\input(在 LaTeX 或 Plain TeX 中)加载。

有什么方法.sty可以在文件中检查使用了哪个命令来加载该文件?

答案1

由于 TeX 是一种宏扩展语言,因此您无法知道宏的“上下文”是什么:根本没有上下文。此外,\input(或\@@input) 可以在 LaTeX 中使用。您可以做的是检查格式或某些标记宏。例如,在expl3-generic.sty我们检查\fmtname

\def\tempa{LaTeX2e}
\ifx\fmtname\tempa
  % LaTeX
\else
  % Not LaTeX
\fi

一种常见的方法是检查是否存在类似\documentclass

\ifx\documentclass\undefined
  % Not LaTeX
\else
  % LaTeX
\fi

尽管在加载诸如 之类的内容时也会如此miniltx。因此,这取决于您需要了解的内容。有些软件包可以miniltx,有些则不行。

相关内容