# \hphantom behaving like \mbox, not like the counterpart of \vphantom

I have the following figure as part of a slideshow I'm writing with `beamer`. If it is relevant, I've used `pst-jtree` (which is essentially a bunch of macros over `pstricks`) to produce the tree branches.

The code that produces the right-hand node is:

`{multiline Sluicing Elicitation \cr \$\underbracket{\textrm{Protocol}}_{typology}\$ \endmultiline}`

Note how the underbracket typology only goes the width of Protocol, which is visually unpleasant. Ideally, I'd like it to be width of the upper line Sluicing Elicitation. The following figure is what I'm aiming at (I've produced this figure by adding an `mbox` to either side of `textrm{Protocol}` in the line above and then manually adjusting the width of both `mbox`es until it looked good; clearly a very inefficient method).

I've tried to do this with `hphantom{}`, which should be the horizontal counterpart of `vphantom{}` ---i.e., it produces a box of zero height and the width of whatever is inside the brackets, and doesn't disturb the actual text. But if I write this

`{multiline Sluicing Elicitation \cr \$\underbracket{\hphantom{Sluicing Elicitation}\textrm{Protocol}}_{typology}\$ \endmultiline}`

I get this

which is effectively the equivalent of adding an `mbox` with the width of Sluicing Elicitation. The question I have is: am I using `hphantom{}` in the wrong way? And if not (i.e., if it is producing the result it is meant to produce), how can I get the result I want?

Because I've been in SE long enough to know that someone will say this: I guess I can get the result I want by putting the multiline text in a `minipage` and then underbracketing the minipage itself, or whatever. I'm asking this question despite knowing that this type of solutions exist because I don't just want to get this particular result; I also want to understand why I'm not getting there with `hphantom`.

• With package `calc` you can do `\makebox[\widthof{Ellipsis Consortium}]{Protocol}` – egreg Mar 26 '15 at 13:29
• `\hphantom{#1}` does exactly what it should: adds as much horizontal space as is the width of `#1`. – yo' Mar 26 '15 at 13:42
• You are in horizontal mode so the `\hphantom` and the following text are side by side. You get something similar with `\vphantom` if you are in vertical mode. – Ulrike Fischer Mar 26 '15 at 13:45
• what you want to do is overlay "Protocol" centered on the width of the phantom box, not add the two widths. so @egreg`s suggestion is the best approach. and if you want the two underbrackets at the same depth, you should add a `\strut` after "Protocol", since it doesn't have a descender, whereas "Ellipsis" does. – barbara beeton Mar 26 '15 at 16:44

Add `\usepackage{calc}` to your document preamble and use
``````\makebox[\widthof{Ellipsis Consortium}]{Protocol}