假设我对集合 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}