如何将宽条置于宽表达式之上?

如何将宽条置于宽表达式之上?

我需要在以下表达式上加一个宽线

<x , y>

使用命令\bar{<x , y>}只会在表达式上放置一个小横线符号。我需要横线符号覆盖整个表达式。我该怎么做?

答案1

您可以使用 Hendrik Vogt 的宏 widebar或使用\widebar来自的命令mathabx(此处\varwidebar出于测试目的而重命名)。

在下面的代码中,我定义了我认为是内积的内容,使用\DeclarePaired Delimiterfrom mathtools(无需加载amsmath),您会发现这三个解决方案之间没有太大区别。当必须考虑数学字体的斜体角度时,就会出现显着差异:

\documentclass[12pt, a4paper]{article}
\usepackage{mathtools}%
\usepackage{xparse, etoolbox}

\DeclarePairedDelimiterX{\innerp}[1]{\langle}{\rangle}{\innpargs{#1}}
\NewDocumentCommand{\innpargs}{>{\SplitArgument{1}{,}}m}
{\innpargsaux#1}
\NewDocumentCommand{\innpargsaux}{mm}
{\ifblank{#1}%
{\ifblank{#2}{~{,}~}{{\, · \,}{,}{\mkern2mu#2}}}%
{{#1\,}{,}\ifblank{#2}{\, · \,}{\mkern2mu#2}}%
}%
\usepackage{widebar}

\DeclareFontFamily{U}{mathx}{\hyphenchar\font45}
\DeclareFontShape{U}{mathx}{m}{n}{
      <5> <6> <7> <8> <9> <10>
      <10.95> <12> <14.4> <17.28> <20.74> <24.88>
      mathx10
      }{}
\DeclareSymbolFont{mathx}{U}{mathx}{m}{n}
\DeclareFontSubstitution{U}{mathx}{m}{n}
\DeclareMathAccent{\varwidebar}{0}{mathx}{"73}

\begin{document}

  \[ \begin{array}{c@{\qquad}c@{\qquad}c}
  \texttt{\textbackslash overline} & \texttt{\textbackslash widebar} & \texttt{\textbackslash varwidebar}\\[2ex]
  \overline{\innerp{x, y}} & \widebar{\innerp{x, y}} & \varwidebar{\innerp{x, y}} \\[1.5ex]
  \overline{A\cdot\mkern-2mu B} & \widebar{A\cdot\mkern-2mu B} & \varwidebar{A\cdot\mkern-2.5mu B}
  \end{array} \]%

\end{document}

enter image description here

相关内容