背景
我见过漂亮的手册,里面有命令和它们的功能描述。我有一个共享的序言(由多人编辑并用于多个文档),其中包含大量使用
- \新命令
- \DeclareRobust命令
- \DeclareDocumentCommand (
xparse
包) - \更新命令
- ETC。
以及多种环境
- \新环境
- \NewEnviron (
environ
包) - ETC。
最近,我问了一个问题:有没有办法可以遍历所有已定义的颜色而无需再次提及它们?
结果很棒!我想知道我是否可以用命令及其环境做类似的事情,尽管它们很复杂。我的所有命令和环境都有一个三个字母的前缀,例如 mbm(代表“由我制作”)。
目标
我将用它来创建一个左对齐的命令/环境的模板列表,后面跟着一个美观的空间,后面是该命令或环境的描述。
伪代码示例
\documentclass{article}
\usepackage{fontspec}
\usepackage{listings}
\usepackage{tikz}
\usepackage{pgffor}
% Commands
\newcommand\mbmA{elephants}
\newcommand\mbmB[1]{#1}
\newif\ifcolormodules
\DeclareRobustCommand{\mbmmodule}[1]{%
\textbf{\textit{{\ifcolormodules\color{green}\fi #1}}}%
}%
\newcommand{\dq}[1]{\char"201C{}#1\char"201D{}} % Exception to mbm prefix rule
\newcommand{\sq}[1]{\char"2018{}#1\char"2019{}} % Exception to mbm prefix rule
% Environments
\lstnewenvironment{mbmlstcode}{\lstset{basicstyle=\ttfamily\small,columns=fullflexible,keepspaces=true,basewidth=0.5em}}{}
\NewEnviron{mbmerrors}{%
\BODY
}
\begin{document}
\section{Commands}
\foreach \definedcommand in {defined commands} % pseudo-code
\begin{tikzpicture}
\node [minimum width=3cm, minimum height=1cm,text=red] {\string\definedcommand}; % pseudo-code
\end{tikzpicture}
\section{Environments}
\foreach \definedenvironment in {defined environment} % pseudo-code
\begin{tikzpicture}
\node [minimum width=3cm, minimum height=1cm,text=orange] {\string\definedenvironment}; % pseudo-code
\end{tikzpicture}
\end{document}