我需要在以下表达式上加一个宽线
<x , y>
使用命令\bar{<x , y>}
只会在表达式上放置一个小横线符号。我需要横线符号覆盖整个表达式。我该怎么做?
答案1
您可以使用 Hendrik Vogt 的宏 widebar
或使用\widebar
来自的命令mathabx
(此处\varwidebar
出于测试目的而重命名)。
在下面的代码中,我定义了我认为是内积的内容,使用\DeclarePaired Delimiter
from 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}