Just to add that amsmath also has a mechanism for dealing with the similar problem of ‘multi-pass processing'
that happens when \mathchoice is used.
Of course, the most general solution, for the future, would be to move to:
Full separation of ‘text input’ (data, pure character strings) from ‘tags’
(non-typesetting process directions, typesetting hints, etc), so that
Only the Text gets Typeset — Always ** The OTTA Principle.
> From: Heiko Oberdiek <[log in to unmask]>
>To: [log in to unmask]
>Sent: Sunday, 8 January 2012, 11:46
>Subject: Re: trial typesetting support
>On Sun, Jan 08, 2012 at 11:07:30AM +0000, David Carlisle wrote:
>> On 08/01/2012 10:32, Frank Mittelbach wrote:
>> >I just had a look into the following question on TeX.sx:
>> >Anybody some good ideas how to address topic this in a general fashion?
>> Not really, but tabularx has to play this game a lot
>Another player is amsmath. It needs to know the width of the
>equations in order to know where to put the equation number
>(e.g. below the equation if there is no place in the same line).
>The measuring is done in macro \gmeasure@, it sets the switch
>\ifmeasuring@ to true.
>A more general mechanism would be nice, then a package
>can disable some stuff (e.g. writing to .aux files) in
>trial runs without knowing and supporting all the packages
>that uses trials.
>Elements of that feature could be:
>* A trial switch or something like that.
> If the trial switch is available and turned on, then the
> macros can automatically disable some stuff not needed in the
>* A possibility to record undo steps in a hook that is called
> after the trial. A group resets the state for local assignments.
> But that does not work for global settings of counters. Or
> if a acronym macro expands the acronym in the first use und
> uses the short form in later uses. After the trial the acronym
> should be reset to the state before the trial.
>Also there might be differnt purposes of the trial that might
>require different steps for suppressing or undoing:
>* Measurement (amsmath, ...)
> Heiko Oberdiek