“帽子”环境

“帽子”环境

对于我的量子物理课,我需要证明一些带有运算符的交换关系,但是\hat{A}每次我想写一个运算符时,很快就会变得乏味。

所以我想知道是否存在或者我是否可以创建一个环境,自动将帽子添加到环境中的字母中。或者也许是一种已经包含帽子的字体。

基本上,我想写这样的东西

\documentclass[12pt]{article}

\begin{document}
\[
    \begin{hat}
        [A,B]=AB-BA
    \end{hat}
\]
\end{document}

当我编译时,结果和这个一样

\documentclass[12pt]{article}

\begin{document}
\[
    [\hat{A},\hat{B}]=\hat{A}\hat{B}-\hat{B}\hat{A}
\]
\end{document} 

提前感谢您的回答

答案1

这是一个基于 LuaLaTeX 的解决方案。它设置了一个 LaTeX 宏(不是环境),名为\Hats,将其参数传递给 Lua,以便使用 Lua 的强大string.gsub功能进行进一步处理。具体来说,的任务是将指令中 的参数中string.gsub的每个大写字符(Lua 的“魔法字符”与任何大写字母匹配)都括起来。如果您希望小写字母和大写字母都“带帽子”,只需更改为。%u\Hats\hat%u%a

在此处输入图片描述

% !TEX TS-program = lualatex
\documentclass{article}
\usepackage{luacode} % for "\luaexec" macro
\newcommand\Hats[1]{\luaexec{%
   tex.sprint (( string.gsub ( "#1" , "\%u", "\\hat{\%0}" )) )}}

\begin{document}
\[
\Hats{[A,B]=AB-BA}
\]
\end{document}

相关内容