我有一个.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
,有些则不行。