&process_commands_in_tex
subroutine gives incorrect results.
This may occur when the command is ``order-sensitive'',
using information such as the value of a counter or a boolean expression
(or perhaps requiring a box to have been constructed and saved).
Try using the &process_commands_inline_in_tex
subroutine instead.
Commands declared this way are first ``wrapped'' within a dummy environment,
which ensures that they are later processed in correct order with other
environments and order-sensitive commands.
Other commands may need to be passed to LATEX, not to create an image
themselves, but to affect the way subsequent images are created.
For example a color command such as \color{red}
should set the
text-colour to `red' for all subsequent text and images. This must
be sent to LATEX so that it is processed at exactly the right time;
i.e. before the first image required to be `red' but following any
images that are not intended to be affected by this colour-change.
The subroutine process_commands_nowrap_in_tex
is designed
specifically to meet such requirements.
Commands can be order-sensitive without having to be passed to LATEX.
Indeed even if a Perl subroutine has been carefully written to process
the command, it may still give wrong results if it is order-sensitive,
depending on the values of counters, say.
To handle such cases there is the &process_commands_wrap_deferred
subroutine. This also ``wraps'' the command within a dummy environment,
but when that environment is processed the contents are not sent to LATEX,
as in the previous case. All of the standard LATEX commands to change,
set or read the values of counters are handled in this way.