使 像一个宏一样运行

使  像一个宏一样运行

我用来jinja编写模板。这使我能够处理类似下面的文件。

\documentclass[a4paper, 12pt]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\newcommand\devtool[1]{\fbox{#1}}

\begin{document}

$f(x) = <:f:>$ .

\end{document}

为了在使用之前测试我的模板,我希望它能<:f:>像这样工作\devtool{f}

换句话说,我想激活<: ... :>类似于的序列\devtool{...}

答案1

标准程序是使<数学活跃起来并赋予它适当的定义:

  • :跟随,则查找:>并吸收其间的所有内容,并将其传递给\devtool
  • 否则,发出标准的“小于”符号。
\documentclass{article}
\usepackage{amsmath}

\newcommand\devtool[1]{\fbox{#1}}

\makeatletter
\newcommand{\devtool@}{\@ifnextchar:{\devtool@@}{\stdless}}
\mathchardef\stdless=\mathcode`<

\begingroup\lccode`~=`< \lowercase{\endgroup\let~}\devtool@

\def\devtool@@:#1:>{\devtool{#1}}

\AtBeginDocument{\mathcode`<="8000 }
\makeatother

\begin{document}

$f(x) = <:f:>$

$1<2$

\end{document}

在此处输入图片描述

相关内容