TeX/let

From Wikibooks, open books for an open world
< TeX
Jump to navigation Jump to search

Synopsis[edit | edit source]

\let<new-command>[[<spaces>]=]<original-command>

Description[edit | edit source]

\let allows you to copy the content of a command into a new command.

Unlike making a macro that calls the original command, \let allows you to subsequently modify the old command while still retaining its functionality under the new command. It is often used to change the behaviour of an existing command (but not replace it entirely). In such cases \renewcommand may fail, and \let may be required.

The equal sign (and the spaces before it) are not required, but may be useful in some special cases where the second argument is a space or a equal sign.

Examples[edit | edit source]

If one wanted to change the behaviour of a command \foo wherever it was called, such that \bar were executed first, the following may seem appropriate.

\renewcommand{\foo}{\bar\foo}

This, however, will create a recursive loop where calling \foo will repeatedly call itself until the computer's memory is exhausted.

In order to change the behaviour of \foo to include some other behaviour, the \let command is used:

\let\originalfoo\foo
\renewcommand{\foo}{\bar\originalfoo}

The first line copies the contents of the \foo command into the new command \originalfoo. The second line modifies the \foo command to execute \bar followed by the original contents of the \foo command (which are now stored in \originalfoo).