包含文本或其他符号的上划线

包含文本或其他符号的上划线

是否可以在数学模式下创建一条中间有包含符号的间隙的上划线?

我想要实现的是这样的: 例子

答案1

像这样吗?

\documentclass{article}
\usepackage{amsmath}

\newcommand{\joverline}[2]{%
  \mathord{% make sure we're in math mode
    \vbox{\offinterlineskip
      \halign{##\cr
        \hrulefill$\,\scriptscriptstyle#1\,$\hrulefill\cr
        \noalign{\kern.3ex}
        $#2$\cr
      }%
    }%
  }%
}

\begin{document}

$\joverline{n}{(Q,\emptyset)}$

\end{document}

在此处输入图片描述

如果您计划在下标/上标中也使用此构造,则可能还需要更多内容。

上标按照规则垂直居中的版本:

\documentclass{article}
\usepackage{amsmath}

\newcommand{\chrulefill}{%
  \leaders\hrule height \dimexpr\fontdimen22\scriptscriptfont2+0.2pt\relax
                 depth -\dimexpr\fontdimen22\scriptscriptfont2-0.2pt\relax
          \hfill}

\newcommand{\joverline}[2]{%
  \mathord{% make sure we're in math mode
    \vbox{\offinterlineskip
      \halign{##\cr
        \chrulefill$\,\scriptscriptstyle#1\,$\chrulefill\cr
        \noalign{\kern.2ex}
        $#2$\cr
      }%
    }%
  }%
}

\begin{document}
$\joverline{n}{(Q,\emptyset)}$
\end{document}

您可以通过修改;来改变规则和主体部分之间的间距\kern.2ex,随意调整。

在此处输入图片描述

答案2

当前设置的重叠间隙为 2pt,可以进行更改以适应。

\documentclass{article}
\usepackage{stackengine}
\usepackage{calc}
\newcommand\overlineset[2]{%
  \stackengine{2pt}{$#1$}{\makebox[\widthof{$#1$}]{%
      $\scriptscriptstyle\hrulefill\,#2\,\hrulefill$}}{O}{c}{F}{T}{S}%
}
\begin{document}
\(\overlineset{(Q,\emptyset)}{n}\)
\end{document}

在此处输入图片描述

相关内容