## Wednesday, May 20, 2009

### Phantomas command

Recently I have found that there is a useful TeX command \phantom{Phantom Text} which behaves just like it would typeset its argument except that nothing is typeset and there is a blank space of the corresponding dimensions.

When I have been using it I imagined it would be sometimes even more useful to have a command which can put some other stuff in the reserved space instead of the phantom stuff.

Luckily, some smart guys have already written such a command.

Here is a modified version of their minimal example which illustrates nicely the use of this command:

\documentclass{article}\usepackage{calc} % for the \phantomas command% The following command is a better version of \phantom and requires the "calc" package% Credits: Jean-Côme Charpentier & Scott Pakin% Source: comp.text.tex, "Phantom-ish command"% usage: \phantomas[l]{phantom words which will be overwritten}{with these words}% the optional parameter [l] says that the words "with these words" will appear aligned left to the reserved space% another optional parameter is [r] for aligning the words right% if no optional parameter is given, the words will be centred in the reserved space\newcommand*\phantomas[3][c]{% \ifmmode \makebox[\widthof{$#2$}][#1]{$#3$}% \else \makebox[\widthof{#2}][#1]{#3}% \fi }\begin{document}A long entry another long entry and our last long entry\par \phantomas{A long entry}{centred} \phantomas[l]{another long entry}{on the left} \phantomas[r]{and our last long entry}{on the right} $\sin^2 x + \cos^2 x = 1$\par $\phantomas{\sin^2 x + \cos^2 x}{f(x)} = 1$\par $\phantomas[l]{\sin^2 x + \cos^2 x}{f(x)} = 1$\par $\phantomas[r]{\sin^2 x + \cos^2 x}{f(x)} = 1$ \end{document}