我想要一个“非星号”符号。我尝试使用cancel
包来实现这样的功能。
我目前最喜欢的是:
A^{\xcancel{\ast}}
但是取消符号向下移动了很远。我想将其限制在上标(但也许让它稍微向外移动一点)。有什么建议可以实现这一点吗?
答案1
在这里,我使用了\stackinset
,并从scalerel
包中保留了数学样式。
\documentclass{article}
\usepackage{stackengine,scalerel,verbatimbox}
\def\Times{\addvbuffer[-1pt]{$\times$}}
\newcommand\strike[1]{%
{\ThisStyle{\stackinset{c}{}{c}{}{$\SavedStyle#1$}{$\SavedStyle\times$}}}}
\begin{document}
\[A^\strike{\ast} \quad\strike{\ast} \quad
\scriptstyle\strike{\ast} \quad\scriptscriptstyle\strike{\ast}\]
\end{document}
并且以稍微复杂一点为代价,它可以扩展到它的论点:
\documentclass{article}
\usepackage{stackengine,scalerel,verbatimbox}
\def\Times{\addvbuffer[-1pt]{$\times$}}
\newcommand\strike[1]{%
{\ThisStyle{\stackinset{c}{}{c}{}{$\SavedStyle\scalerel*{\Times}{#1}$}{$\SavedStyle#1$}}}}
\begin{document}
\[\strike{A}\quad A^\strike{\ast} \quad\strike{\ast} \quad
\scriptstyle\strike{\ast} \quad\scriptscriptstyle\strike{\ast}\]
\[\strike{\int_0^B x\,dx}\]
\end{document}
...或者加入一些颜色
\newcommand\strike[1]{{\ThisStyle{%
\stackinset{c}{}{c}{}{\color{red}$\SavedStyle\scalerel*{\Times}{#1}$}{$\SavedStyle#1$}}}}
答案2
以下是使用的方法\ooalign
。
\documentclass{article}
\newcommand{\strike}[1]{%
\mathchoice
{{\ooalign{$#1$\cr\hidewidth$\times$\hidewidth}}}
{{\ooalign{$#1$\cr\hidewidth$\times$\hidewidth}}}
{{\ooalign{$\scriptstyle#1$\cr\hidewidth$\scriptstyle\times$\hidewidth}}}
{{\ooalign{$\scriptscriptstyle#1$\cr\hidewidth$\scriptscriptstyle\times$\hidewidth}}}%
}
\begin{document}
$A^{\strike{\ast}}\strike{\ast}$
\end{document}
有关 的精彩教程\ooalign
,请阅读 egreg 对这个问题。