Размещение символа над отношением без изменения расположения верхних индексов

Размещение символа над отношением без изменения расположения верхних индексов

Мне бы хотелось разместить символ над отношением, не меняя местонахождение надстрочного индекса.

\documentclass{article}
\usepackage{mathtools}
\usepackage{amssymb}
\usepackage{accents}

\newcommand{\rel}{\rhd}
\newcommand{\symb}{\text{I}}

\newcommand{\testmyrel}[1]{%
  \begin{center}%
  \begin{minipage}{\linewidth/2}%
    \noindent Text text text\\%
    $\text{T} #1^* \text{U}$\\%
    $\text{T} \rel^* \text{U}$\\%
  \end{minipage}%
  \end{center}%
}%

\begin{document}
    
My goal is to place a symbol (e.g. $\symb$) over a rel (e.g. $\rel$) that can be used in text without overlapping with text above, and handles superscripts as if it did not have a symbol:
\begin{center}%
    \begin{minipage}{\linewidth/2}%
        \noindent Text text text\\%
        $\text{T} \mathrel{\overset{\symb}{\rel}\vphantom{\rel}^*} \text{U}$\\%
        $\text{T} \rel^* \text{U}$\\%
    \end{minipage}%
\end{center}%

However, I do not want the superscript to be an argument of the command, which rules out the code above.

\begin{itemize}

\item Using overset makes the star too high:%
    \testmyrel{%
        \mathrel{%
            \overset{%
                \symb%
            }{%
                \mathord{\rel}%
            }%
        }%
    }%
%
\item Smashing the rel makes it go over the text:%
    \testmyrel{%
        \mathrel{%
            \smash{
                \overset{\symb}{\mathord{\rel}}%
            }%
        }%
    }%
%
\item Smashing the symbol makes it go over the text:%
\testmyrel{%
    \mathrel{%
        \overset{%
            \smash{\symb}%
        }{%
            \mathord{\rel}%
        }%
    }%
}%
%
\item Adding a vphantom inside mathrel leads to the star being too high:%
    \testmyrel{%
        \mathrel{%
            \overset{\symb}{\mathord{\rel}}%
            \vphantom{\symb}%
        }%
    }%
%
\item Adding a vphantom after mathrel leads to the star being misplaced to the right:%
\testmyrel{%
    \mathrel{%
        \overset{\symb}{\mathord{\rel}}%
    }%
    \vphantom{\symb}%
}%

\item Accentset without mathrel does not have the spacing due to mathrel:
\testmyrel{%
    \accentset{\symb}{\mathord{\rel}}%
}%

\item Accentset with mathrel puts the star too high:
\testmyrel{%
    \mathrel{\accentset{\symb}{\mathord{\rel}}}%
}%
\end{itemize}

\end{document}

решение1

Не используйте \textдля набора текста прямым шрифтом в математике, обычно это не работает; используйте \mathrm.

Также \rhdявляетсянетсимвол отношения, но сделать его таковым несложно.

\documentclass{article}
\usepackage{amsmath,amssymb,accents}

% \rhd is not a relation symbol
\mathchardef\rel=\numexpr\rhd+"1000

\newcommand{\overrel}[2]{%
  \mathrel{\accentset{#1}{#2}}%
  \mathrel{\vphantom{#2}}%
}

\begin{document}

\begin{center}
Text text text\\
$T \overrel{\mathrm{I}}{\rel}^* U$\\
$T \rel^* U$
\end{center}

\end{document}

введите описание изображения здесь

В качестве альтернативы можно использовать \overset:

\newcommand{\overrel}[2]{%
  \overset{#1}{#2}%
  \mathrel{\vphantom{#2}}%
}

введите описание изображения здесь

Хитрость в том, что TeX не добавляет пробелов и точек разрыва строки между последовательными атомами отношений. Поэтому мы можем добавлять подстрочные/надстрочные индексы к фантомному отношению.

Связанный контент