\mbox & \makebox (LaTeX2e unofficial reference manual (November 2018))

Next: \fbox & \framebox, Up: Boxes [Contents][Index]

### 20.1 `\mbox` & `\makebox`

Synopsis, one of:

    \mbox{text}
    \makebox{text}
    \makebox[width]{text}
    \makebox[width][position]{text}

Create a box, a container for material. The text is typeset in LR mode (see Modes) so it is not broken into lines. The `\mbox` command is robust, while `\makebox` is fragile (see \protect).

Because `text` is not broken into lines, you can use `\mbox` to prevent hyphenation. In this example, LaTeX will not hyphenate the table name, ‘`T-4`’.

    See Table~\mbox{T-4}

The first two command versions, `\mbox` and `\makebox`, are roughly equivalent. They create a box just wide enough to contain the text. (They are like plain TeX’s `\hbox`.)

In the third version the optional argument width specifies the width of the box. Note that the space occupied by the text need not equal the width of the box. For one thing, text can be too small; this creates a full-line box

    \makebox[\linewidth]{Chapter Exam}

with ‘`Chapter Exam`’ centered. But text can also be too wide for width. See the example below of zero-width boxes.

In the width argument you can use the following lengths that refer to the dimension of the box that LaTeX gets on typesetting text: `\depth`, `\height`, `\width`, `\totalheight` (this is the box’s height plus its depth). For example, to make a box with the text stretched to double the natural size you can say this.

    \makebox[2\width]{Get a stretcher}

For the fourth command version the optional argument position gives position of the text within the box. It may take the following values:

`c`

  The text is centered (default).

`l`

  The text is flush left.

`r`

  Flush right.

`s`

  Stretch the interword space in text across the entire width. The text must contain stretchable space for this to work. For instance, this could head a press release: `\noindent\makebox[\textwidth][s]{\large\hfil IMMEDIATE\hfil RELEASE\hfil}`

A common use of `\makebox` is to make zero-width text boxes. This puts the value of the quiz questions to the left of those questions.

    \newcommand{\pts}[1]{\makebox[0em][r]{#1 points\hspace*{1em}}}
    \pts{10}What is the air-speed velocity of an unladen swallow?

    \pts{90}An African or European swallow?

The right edge of the output ‘`10 points` ’ (note the ending space) will be just before the ‘`What`’ (note the space after ‘`points`’). You can use `\makebox` similarly when making graphics, such as in `TikZ` or `Asymptote`, where you put the edge of the text at a known location, regardless of the length of that text.

For boxes with frames see \fbox & \framebox. For colors see Colored boxes.

There is a related version of `\makebox` that is used within the `picture` environment, where the length is given in terms of `\unitlength` (see \makebox (picture)).

If you put a double-backslash into text then LaTeX will not give you a new line; for instance `\makebox{abc def \\ ghi}` outputs ‘`abc defghi`’ while `\makebox{abc def \par ghi}` outputs ‘`abc def ghi`’, but neither go to a second line. To get multiple lines see \parbox and minipage.

Unofficial LaTeX2e reference manual