答案1
\mathbf
我调用的版本\overstarbf
不考虑斜体倾斜,并将参数设置为\mathbf
。另一个宏考虑了斜体设置参数的\overstar
倾斜(此处取为)。.2
\documentclass{article}
\usepackage{stackengine,scalerel}
\newcommand\overstarbf[1]{\ThisStyle{\ensurestackMath{%
\stackengine{0pt}{\SavedStyle\mathbf{#1}}{\smash{\SavedStyle*}}{O}{c}{F}{T}{S}}}}
\newcommand\overstar[1]{\ThisStyle{\ensurestackMath{%
\setbox0=\hbox{$\SavedStyle#1$}%
\stackengine{0pt}{\copy0}{\kern.2\ht0\smash{\SavedStyle*}}{O}{c}{F}{T}{S}}}}
\begin{document}
\Shortstack[l]{
$\overstarbf{M}^{\mathrm{f}}$
$\scriptstyle\overstarbf{M}^{\mathrm{f}}$
$\scriptscriptstyle\overstarbf{M}^{\mathrm{f}}$}
vs.\@
\Shortstack[r]{
$\mathbf{M}^{\mathrm{f}}$
$\scriptstyle\mathbf{M}^{\mathrm{f}}$
$\scriptscriptstyle\mathbf{M}^{\mathrm{f}}$}
\quad
\Shortstack[l]{
$\overstar{M}^2\overstar{x}$
$\scriptstyle\overstar{M}^2\overstar{x}$
$\scriptscriptstyle\overstar{M}^2\overstar{x}$}
\end{document}
补充(手写体星号重叠)
我意识到我需要修改我的scalerel
包,以使当前的数学样式不仅可访问(我通过 进行操作\SavedStyle
),而且使相对于当前样式的脚本形式也可访问也很有用。
我在这里将其作为\SavedSubStyle
,在\makeatletter
和之间\makeatother
,这也需要对的定义进行一些小的添加\ThisStyle
。我最终会将其直接合并到包中。
\documentclass{article}
\usepackage{stackengine,scalerel}
\makeatletter
\def\SavedSubStyle{\csname @mstyle\s@switch\endcsname}
\renewcommand\ThisStyle[1]{%
\ifmmode%
\def\@mmode{T}\mathchoice%
{\edef\m@switch{D}\edef\s@switch{S}\LMex=1ex\relax\LMpt=1pt\relax#1}%
{\edef\m@switch{T}\edef\s@switch{S}\LMex=1ex\relax\LMpt=1pt\relax#1}%
{\edef\m@switch{S}\edef\s@switch{s}\LMex=\scriptstyleScaleFactor ex\relax%
\LMpt=\scriptstyleScaleFactor pt\relax#1}%
{\edef\m@switch{s}\edef\s@switch{s}\LMex=\scriptscriptstyleScaleFactor ex\relax%
\LMpt=\scriptscriptstyleScaleFactor pt\relax#1}%
\else%
\def\@mmode{F}%
\edef\m@switch{T}\edef\s@switch{S}\LMex=1ex\relax\LMpt=1pt\relax#1%
\fi%
}
%
\makeatother
\newcommand\overstarbf[1]{\ThisStyle{\ensurestackMath{%
\stackengine{0pt}{\SavedStyle\mathbf{#1}}{\smash{\SavedSubStyle*}}{O}{c}{F}{T}{S}}}}
\newcommand\overstar[1]{\ThisStyle{\ensurestackMath{%
\setbox0=\hbox{$\SavedStyle#1$}%
\stackengine{0pt}{\copy0}{\kern.2\ht0\smash{\SavedSubStyle*}}{O}{c}{F}{T}{S}}}}
\begin{document}
\Shortstack[l]{
$\overstarbf{M}^{\mathrm{f}}$
$\scriptstyle\overstarbf{M}^{\mathrm{f}}$
$\scriptscriptstyle\overstarbf{M}^{\mathrm{f}}$}
vs.\@
\Shortstack[r]{
$\mathbf{M}^{\mathrm{f}}$
$\scriptstyle\mathbf{M}^{\mathrm{f}}$
$\scriptscriptstyle\mathbf{M}^{\mathrm{f}}$}
\quad
\Shortstack[l]{
$\overstar{M}^2\overstar{x}$
$\scriptstyle\overstar{M}^2\overstar{x}$
$\scriptscriptstyle\overstar{M}^2\overstar{x}$}
\end{document}