Решаемая задача: хочется нарисовать линию (для начала одну, затем две, пунктирные, с доп. знаками и т.п.) адаптивной длины на определённой высоте относительно окружающего текста с подписью под ней. Использоваться будет преимущественно в math mode.
Рассмотрим пример:
\newlength\exrulewidth
\newcommand{\Exx}[1]{%
\settowidth\exrulewidth{$#1$}%
\underset{#1}{\!\rule[0.9ex]{\exrulewidth}{0.5pt}\!}%
}
\[
x\Exx{x\Exx{x\Exx{x}x}x}x
\]
Получается такая картинка:
Всё хорошо, кроме одного. Видно, что линия ползёт вверх относительно «x» при уменьшении размера шрифта.
Почему так происходит, если положение по вертикали задаётся в ex, которые как раз таки ожидается, что берётся относительно размера текущего шрифта? И как это исправить?
P.S. пока писал пример обнаружил, что \small и прочие модификаторы размера не влияют на размер шрифта в math mode, но влияют на ex и, как следствие, на положении линии. Прошу подсказать решение первоначальной задачи, потому что не уверен, что правильно решаю первоначальную задачу.