对于我的量子物理课,我需要证明一些带有运算符的交换关系,但是\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}