如何放置几个数学符号合二为一并使其作为单个数学符号工作?应该不受字体大小和缩放的影响。
例如我想要这个奇怪的符号:
我将其定义为:\newcommand{\upDisCov}{\ensuremath{\uparrow\kern-3.5pt\scalebox{.86}{$|$}\kern-8.2pt\raisebox{-2pt}{$\smallsmile$}}}
。(我知道我不应该使用\kern
)。
符号在下标中或字体大小改变(从 12 变为 10)时会变得混乱。我可以使用 \mbox 来保持其在上标中的形式,但它不会缩放。
梅威瑟:
\documentclass[12pt,a4paper]{article}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\newcommand{\upDisCov}{\ensuremath{\uparrow\kern-.5em\scalebox{.86}{$|$}\kern-.2em\raisebox{-.2em}{$\smallsmile$}}}
\begin{document}
\upDisCov
$A^{\upDisCov}$
$A^{\mbox{\upDisCov}}$
\end{document}
答案1
有以下可能性:
\documentclass[12pt,a4paper]{article}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\DeclareRobustCommand{\upDisCov}{%
\mathord{\vphantom{\uparrow}\text{%
\ooalign{%
$\uparrow$\kern-0.05em\raisebox{0.07ex}{\scalebox{0.88}{$|$}}\cr
\kern0.02em\raisebox{-0.2em}{$\smallsmile$}\cr
}%
}}%
}
\begin{document}
$\upDisCov$
$A^{\upDisCov}$
\end{document}
答案2
\documentclass[10pt]{article}
\usepackage{scalerel,stackengine}
\newcommand\foo{\mathbin{\ThisStyle{\ensurestackMath{\stackengine{0pt}{%
\stackengine{-.85\LMex}{\SavedStyle\uparrow}{\SavedStyle\scaleto{\smile}{0.75\LMex}}{U}{l}%
{F}{F}{S}}{\SavedStyle\stretchrel*{\vert}{\uparrow}\kern0.25\LMex}{O}{r}{F}{F}{L}}}}}
\begin{document}
$A\foo B\quad A^{\foo}$\par
$\scriptstyle A\foo B$\par
$\scriptscriptstyle A\foo B$
\end{document}
在 10pt 处:
...12pt 处