使用数学重音符号/变音符号作为独立符号

使用数学重音符号/变音符号作为独立符号

假设我对集合 X 进行运算,我想用 、 或 之类的符号来表示它,$X^\prime$只是$X^\bullet$符号$X^\circ$不同。我发现数学模式中可用的一些变音符号(见这里) 在“独立”使用时是一个不错的选择,例如$X \: \tilde{}$或。这可能不是这些字符的预期用途,但在我看来,结果看起来非常好(肯定比或$X \: \hat{}$好得多)。$X^\sim$$X^\wedge$

然而,这样做不可避免地会遇到问题。其中一个问题很容易解决:应该在独立变音符号前插入一点额外的空格,以使其看起来美观(像这样的小空格似乎可以\:解决问题)。但是,如果变音符号前面有下标,我希望它表现得像上标,所以它开始多于下标,而不是下标之后。以下 MWE 说明了这一点:

\documentclass[margin=2mm]{standalone}
\usepackage{amsmath}

\newcommand{\myhat}{\ensuremath{\:\hat{}}}
\newcommand{\mytilde}{\ensuremath{\:\tilde{}}}
\newcommand{\mybreve}{\ensuremath{\:\breve{}}}
\newcommand{\mycheck}{\ensuremath{\:\check{}}}

\begin{document}
\renewcommand{\arraystretch}{1.3}
\begin{tabular}{|c|c|c|c|}
    \hline
    command & no subscript & short subscript &  long subscript \\
    \hline
    hat     & $X\myhat$    & $X_1\myhat$     &  $X_{\omega(k)}\myhat$   \\
    tilde   & $X\mytilde$  & $X_1\mytilde$   &  $X_{\omega(k)}\mytilde$ \\
    breve   & $X\mybreve$  & $X_1\mybreve$   &  $X_{\omega(k)}\mybreve$ \\
    check   & $X\mycheck$  & $X_1\mycheck$   &  $X_{\omega(k)}\mycheck$ \\
    \hline
\end{tabular}
\end{document}

数学重音符号作为独立符号

我的问题是:如何才能使这些“独立”变音符号的行为更像上标,而不必每次出现时都手动添加负水平空间?或者,是否可以用不同的方式生成相同的符号,以便可以简单地将它们用作$X^\standalonetilde$$X^\standalonehat$$X^\standalonebreve$$X^\standalonecheck$

答案1

虽然效率不高,但似乎有效。

\documentclass{article}
\usepackage{amsmath}

\makeatletter
\newcommand\makesymbolaccent[2]{%
  \expandafter\expandafter\expandafter\let
  \expandafter\expandafter\expandafter\@tempa\expandafter\@secondoftwo#2%
  \edef#1{{\mkern-1mu\noexpand\symbolaccent{\mathchar"\expandafter\@gobblethree\@tempa}}}%
}
\newcommand{\symbolaccent}[1]{\mathpalette\symbol@accent{#1}}
\newcommand{\symbol@accent}[2]{%
  \sbox\z@{$\m@th\demote@style{#1}#2$}%
  \sbox\tw@{$\m@th\demote@style{#1}{}^{\demote@style{#1}#2}$}%
  \raisebox{\dimexpr\ht\z@-\ht\tw@}[\height][0pt]{\copy\z@}%
}
\newcommand\demote@style[1]{%
  \ifx#1\scriptstyle\textstyle\else\scriptstyle\fi
}
\makeatother

\makesymbolaccent{\ehat}{\hat}
\makesymbolaccent{\etilde}{\tilde}
\makesymbolaccent{\ebreve}{\breve}
\makesymbolaccent{\echeck}{\check}

\begin{document}

\begin{tabular}{|c|c|c|c|}
    \hline
    command & no subscript & short subscript &  long subscript \\
    \hline
    hat     & $X^\ehat$    & $X_1^\ehat$     &  $X_{\omega(k)}^\ehat$   \\
    tilde   & $X^\etilde$  & $X_1^\etilde$   &  $X_{\omega(k)}^\etilde$ \\
    breve   & $X^\ebreve$  & $X_1^\ebreve$   &  $X_{\omega(k)}^\ebreve$ \\
    check   & $X^\echeck$  & $X_1^\echeck$   &  $X_{\omega(k)}^\echeck$ \\
    \hline
\end{tabular}

\end{document}

在此处输入图片描述

相关内容