![使 像一个宏一样运行](https://linux22.com/image/456126/%E4%BD%BF%20%20%E5%83%8F%E4%B8%80%E4%B8%AA%E5%AE%8F%E4%B8%80%E6%A0%B7%E8%BF%90%E8%A1%8C.png)
我用来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}