给定像这样的命令\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}