15

If I write $\bar{X}$ or $\overline{X}$ the bar (or the rule) over X is smaller or longer than the width of X. Is there any way to adjust the width?

Thank you in advance.

MWE

\documentclass{article}
\usepackage{amsmath,amsfonts,mathtools}

\begin{document}

$\bar{X}$ $\overline{X}$

\end{document}
1

2 Answers 2

19

The slanting makes the correct length of the bar a little more complicate. The following example measures the width of an upright X and uses this for the length of the bar. The solution also works for different math styles:

\documentclass{article}
\usepackage{amsmath,amsfonts,mathtools}

\makeatletter
\newcommand*{\Xbar}{}%
\DeclareRobustCommand*{\Xbar}{%
  \mathpalette\@Xbar{}%
}
\newcommand*{\@Xbar}[2]{%
  % #1: math style
  % #2: unused (empty)
  \sbox0{$#1\mathrm{X}\m@th$}%
  \sbox2{$#1X\m@th$}%
  \rlap{%
    \hbox to\wd2{%
      \hfill
      $\overline{%
        \vrule width 0pt height\ht0 %
        \kern\wd0 %
      }$%
    }%
  }%
  \copy2 %
}
\makeatother

\begin{document}

$\bar{X}$ $\overline{X}$

$\Xbar\scriptstyle\Xbar\scriptscriptstyle\Xbar$

\end{document}

Result

8
  • Just a question if I put \Xbar in chapter or section I get an error :
    – Aviroum
    Commented Jun 27, 2016 at 21:58
  • Missing number, treated as zero. ... }\copy 2 }_{n_2}$}{18}{subsection.1.12.4} in tableofcontents
    – Aviroum
    Commented Jun 27, 2016 at 21:58
  • 1
    @Haouam The macro was not robust and \protect was needed in front of \Xbar. The updated answer now uses \DeclareRobustCommand and \Xbar should work without an additional \protect. Commented Jun 28, 2016 at 19:16
  • Thank you , I have not noticed the update, It works fine !
    – Aviroum
    Commented Jun 29, 2016 at 0:38
  • I was trying to reproduce the format in my statistics textbook, and this looks like it exactly (the \Xbar in the bottom left). Thank you!
    – user132925
    Commented Apr 29, 2018 at 2:22
4

I need a bit shorter overlines for variables in boolean algebra to make clear that variables are separately inverted. I defined the following command:

\newcommand{\olsi}[1]{\,\overline{\!{#1}}} % overline short italic

It is special designed for variables that are typeset in italic, so it is not only above but rather above right. So upright characters need a different definition:

\newcommand{\ols}[1]{\mskip.5\thinmuskip\overline{\mskip-.5\thinmuskip {#1} \mskip-.5\thinmuskip}\mskip.5\thinmuskip} % overline short

Example:

$ \olsi{x+y} = \olsi{x}\olsi{y} $

is rendered as:

example of short overlines

I hope that helps.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .