我想$\Gamma$
在数学模式下使用反射符号作为上标。我使用\reflectbox
fromgraphicx
包为反射符号声明一个宏,它在正常大小(数学)模式下有效。
但是,当我尝试将宏用作上标时,反射的符号无法正确缩放。该怎么办?
\documentclass{article}
\usepackage{xparse}
\usepackage{graphicx}
\usepackage{mathtools}
\DeclareDocumentCommand{\GammaInv} { } { \reflectbox{$\Gamma$} }
\begin{document}
\begin{align*}
% regular letter superscript
L^{\Gamma} \\
% reflected letter superscript (does not scale down as expected)
L^{\GammaInv}
\end{align*}
\end{document}
答案1
你必须使用\mathpalette
:
\documentclass{article}
\usepackage{xparse}
\usepackage{graphicx}
\usepackage{mathtools}
\NewDocumentCommand{\GammaInv}{}{\mathpalette\doGammaInv\relax}
\makeatletter
\NewDocumentCommand{\doGammaInv}{mm}{%
\reflectbox{$\m@th#1\Gamma$}%
}
\makeatother
\begin{document}
\begin{align*}
% regular letter superscript
L^{\Gamma} \\
% reflected letter superscript (does not scale down as expected)
L^{\GammaInv}
\end{align*}
\end{document}
该\mathpalette
宏需要两个参数:第一个是辅助宏,它将接收数学样式选择作为第一个参数。第二个可用于变量输入,示例如下。