[OS X TeX] Missing $ inserted in a "variations" environment
Jonathan Kew
jonathan at jfkew.plus.com
Sun Mar 15 18:39:47 CET 2009
On 15 Mar 2009, at 14:09, <ewan.Delanoy at math.unicaen.fr> <ewan.Delanoy at math.unicaen.fr
> wrote:
> Hello all,
>
>
> I've just encountered the following problem with TeXShop :
You're having a problem with LaTeX, not with TeXShop. It would be
useful to learn something about the distinction.
>
> 1) Compilation stops with the error message "Missing $ inserted".
> 2) If I insist and press "Enter" twice in the console, it eventually
> compiles completely
> and produces a fine output.
Not quite. Look at the first minus-infinity at the bottom; it'll have
a hyphen instead of a minus sign.
>
> 3) By trial and error, I see that what causes this behaviour is a
> "variations" array
> (from the variations package) in the middle of my text.
> 3) The line number displayed in the error message, l.259, is not very
> illuminating
> because the source text is as follows
This is presumably because none of the content of the {variations}
environment actually gets processed until the end reached.
>
> \noindent \makebox[\textwidth][c]{
> \begin{variations}
> x & \mI & & \alpha& & & 1 & & \beta& & & 2 & & \pI & \\
> \filet
> f'(x) & \bg & + & \bb& & + & \z & -& \bb & & - &\z& + & &\bd \\
> \filet
> \m{f(x)} & \bg \mI & \c \h{\pI} & \bb& \mI & \c & \h{-1} & \d \mI
> & \bb
> & \h{\pI}& \d &\frac{3}{2}& \c
> & \h{\pI} & \bd \\
> \end{variations}
> }<- Line 259 is here
>
> Can anyone help me on this ?
One way to locate the problem more precisely, if you don't notice the
incorrect minus sign at first, is to type "i XXXX" in response to the
error message instead of just hitting Enter. You'll see the inserted
XXXX in your output and this may help you spot where things are going
wrong.
It seems that {variations} is automatically putting each "cell" of the
table it creates into math mode, probably using an \halign template.
But the \bg command, besides creating an extra rule on the left, also
cancels the alignment template for the current entry (\show\bg
indicates that its expansion begins with \omit). So where you have
"....& \bg \mI &...." the automatic math mode does not apply, and
hence you get an error when you try to use the infinity symbol.
You can remove the error by adding $...$ around \mI in this case, but
(a) it seems ugly to have to do this, when other cells are
automatically in math mode; and (b) this results in extra space
between the symbol and the following arrow. So it's not really very
satisfactory.
It looks like what you should really do is split off the border you're
creating with \bg into a separate column of the table, as the
{variations} environment doesn't know how to combine this nicely with
math-mode content. Thus:
\noindent \makebox[\textwidth][c]{
\begin{variations}
x & & \mI & & \alpha& & & 1 & & \beta& & & 2 & & \pI & \\
\filet
f'(x) & \bg & & + & \bb& & + & \z & -& \bb & & - &\z& + & &\bd \\
\filet
\m{f(x)} & \bg & \mI & \c \h{\pI} & \bb& \mI & \c & \h{-1} & \d \mI &
\bb
& \h{\pI}& \d &\frac{3}{2}& \c
& \h{\pI} & \bd \\
\end{variations}
}
HTH, JK
More information about the macostex-archives
mailing list