23

In LaTeX, the ex unit represents the height of a lowercase 'x' in the current font.

Is there a length in LaTeX that represents the height of a capital 'X'?

1 Answer 1

32

The information about 1ex is stored in the font; it is usually the height of a lowercase ‘x’, but it need not be necessarily.

You can access the height of an uppercase ‘X’ by

\fontcharht\font`X

A way for expressing lengths in this ‘unit of measure’ is

\newcommand{\eX}{\dimexpr\fontcharht\font`X\relax}

so you can say something like

\vspace{1.2\eX}

or

\setlength{\mylen}{2\eX}

where \mylen has been allocated with \newlength.

14
  • Somehow off-topic comment-question (;-)): Which commands do define 1ex to be (most times) the height of an x and which do deviate from them, and why?
    – user31729
    Commented Jun 20, 2014 at 13:46
  • 1
    @ChristianHupfer See Johan's answer Q:4239
    – percusse
    Commented Jun 20, 2014 at 13:47
  • 5
    @ChristianHupfer No command defines 1ex; it's information stored in the font, it's the font designer's responsibility fixing it.
    – egreg
    Commented Jun 20, 2014 at 13:48
  • 4
    @ChristianHupfer When a font is loaded, TeX builds an internal array where the \fontdimen parameters defined in the font are stored. A font need have at least seven \fontdimen parameters, but may have more (math symbol fonts need 22, math extension fonts need 13). The x-height is \fontdimen5; when TeX scans 1ex or 2.5ex, it looks at the internal array for the fifth value; you could also say 2.5\fontdimen5\font and achieve the same result.
    – egreg
    Commented Jun 20, 2014 at 13:55
  • 3
    The \fontcharht is the case of the eTeX extension. It isn't icluded in standard TeX. The \dimexpr is the same case.
    – wipet
    Commented Jun 23, 2014 at 20:15

You must log in to answer this question.

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