自动识别 LaTeX 符号命令的依赖包

自动识别 LaTeX 符号命令的依赖包

给定像这样的命令\kreuz,是否可以创建一个应用程序,智能地识别并导入其依赖包wasysym,以便能够在网页上呈现它?

目的是让此类应用程序根据相应的命令呈现 CTAN 综合列表中的任何符号。

谢谢。

答案1

这种方法既简单又困难(在我看来,它带来的麻烦比它的价值还要多)。困难是因为用户必须费力地在样式文件中编目与每个符号相关的包。但简单是因为每个新符号只需要在文件中添加一行AddSymbol.sty,例如\def\AddSymbolVdash{\RequirePackage{amssymb}}

然后,在文档的序言中,除了 之外\usepackage{AddSymbol},还需要添加\AddSymbol{\Vdash}以便加载适当的包,在本例中为amssymb

在下面的 MWE 中,我实际上创建了模板作为环境AddSymbol.sty的一部分filecontents。如果符号尚未定义,它会进行错误检查。

\documentclass{article}
\usepackage{filecontents,etoolbox}

\begin{filecontents*}{AddSymbol.sty}
\ProvidesPackage{AddSymbol} [2016/04/13 V1.0]

\newcommand\AddSymbol[1]{%
  \ifcsname AddSymbol#1\endcsname%
    \csname AddSymbol#1\endcsname\else%
    \AtBeginDocument{Symbol: #1 unknown to AddSymbol\par}\fi%
}
\def\AddSymbolkreuz{\RequirePackage{wasysym}}
\def\AddSymbolLbag{\RequirePackage{stmaryrd}}
%
% CONTINUED LIST OF PACKAGES FOR EACH KNOWN SYMBOL
\endinput
\end{filecontents*}

\usepackage{AddSymbol}
\AddSymbol{kreuz}
\AddSymbol{foo}
\AddSymbol{Lbag}
\begin{document}
$ A \kreuz B \,\Lbag C$
\end{document}

在此处输入图片描述

相关内容