Late last week, I developed a beamer presentation in WinEdt. I
compiled it in LaTeX, and it ran without a problem.
Then, I learned about MiKTeX 2.9. I updated from 2.7 to 2.9. Then,
when I ran LaTeX on the same exact presentation without any changes to
it at all, I got...
! undefined control sequence
when it hit the very first slide.
I suspected this had something to do with the interaction between
WinEdt 5 and MiKTeX 2.9. So, then I upgraded to WinEdt 6. Still, I
get the exact same issue. I even checked through the update wizard to
make sure all my packages were up to date, and everything seems to be.
Is there an obvious step that I missed? Do I need to make some simple
change to my configuration?
I would be happy to offer up any additional information that might be
useful.
Thank you so much for your help! a
What control sequence is undefined would be a good start :)
You should find it just below the line you quoted in the log file.
Best,
Paul
Good point. Here are the lines before and after...
("C:\Program Files\MiKTeX 2.9\tex\latex\amsfonts\umsb.fd")
! Undefined control sequence.
<argument> ...{\beamer@shorttitle }\Hy@xspace@end
\Hy@LinkMath
\Hy@SaveSpace...
l.143 \end{frame}
> ! Undefined control sequence.
> <argument> ...{\beamer@shorttitle }\Hy@xspace@end
Update hyperref >= 2011/04/09 6.82f.
The current version is 2011/04/17 6.82g.
--
Heiko Oberdiek
Wow, Heiko. I hope (and believe) that it really is that simple.
BUT...I'm not sure what you mean by that. Are you just saying that I
need to update the hyperref package? If so, can I just do that
through the update wizard in WinEdt? It's weird, because it told me I
was completely up to date. a
Then you have to wait until the update hits MiKTeX
(probably soon) or install hyperref manually.
Also the following dirty workaround might work:
\makeatletter
\def\Hy@xspace@end{}
\makeatother
\documentclass{beamer}
--
Heiko Oberdiek
For this kind of tricky tricks, I like
\expandafter\def\csname Hy@xspace@end\endcsname {}
But poeple prefer changing the catcodes - a difficult concept -
rather than using \csname ...\endcsname - a simple concept.
;-)
> \documentclass{beamer}
>
> Le 19/04/2011 00:10, Heiko Oberdiek a écrit :
> > Alan<asli...@hotmail.com> wrote:
> >
> > Also the following dirty workaround might work:
> >
> > \makeatletter
> > \def\Hy@xspace@end{}
> > \makeatother
>
> For this kind of tricky tricks, I like
>
> \expandafter\def\csname Hy@xspace@end\endcsname {}
or
\csname @namedef\endcsname{Hy@xspace@end}{}
or
\expandafter\let\csname Hy@xspace@end\expandafter\endcsname
\csname @empty\endcsname
I admit, the last one looks ugly.
\csname let\expandafter\endcsname
\csname Hy@xspace@end\expandafter\endcsname
\csname @empty\endcsname
is much nicer.
;-)
--
Heiko Oberdiek
Yes but not general enough...
\scantokens{\makeatletter\csname let\expandafter\endcsname
\csname Hy@xspace@end\expandafter\endcsname
\csname @empty\endcsname\makeatother}
is more secure !
> Le 19/04/2011 00:28, Heiko Oberdiek a écrit :
> >
> > I admit, the last one looks ugly.
> >
> > \csname let\expandafter\endcsname
> > \csname Hy@xspace@end\expandafter\endcsname
> > \csname @empty\endcsname
> >
> > is much nicer.
> >
> > ;-)
>
> Yes but not general enough...
>
> \scantokens[...]
Requires e-TeX ;-(
--
Heiko Oberdiek
Humm.. Right. But i don't even know how to disable the e-TeX
extensions...
One solution for the OP without e-TeX :
{\globaldefs1
\halign{ \let #\@empty \cr
\expandafter\noexpand\csname Hy@xspace@end\endcsname \cr}
}
;-)
> Le 19/04/2011 00:10, Heiko Oberdiek a écrit :
>> Alan<asli...@hotmail.com> wrote:
>>
>> Also the following dirty workaround might work:
>>
>> \makeatletter
>> \def\Hy@xspace@end{}
>> \makeatother
>
> For this kind of tricky tricks, I like
>
> \expandafter\def\csname Hy@xspace@end\endcsname {}
Or, in pure LaTeX:
\newenvironment*{Hy@xspace@end}{}{}
;-)
--
Change “LookInSig” to “tcalveu” to answer by mail.
Thank you all, very, very much. Ulrike's simple solution...
\makeatletter\def\Hy@xspace@end{}\makeatother
seems to be working splendidly. As soon as the update to hyperref
gets propagated, I will be sure to pick it up. Thank you again! a
>
>
The following also works, since \relax is not expandable:
\halign{\global\let#\@empty\cr
\expandafter\csname Hy@xspace@end\endcsname\cr}
>
>
Oops,
\halign{\global\let#\@empty\cr
\csname Hy@xspace@end\endcsname\cr}
But not if \Hy@xspace@end is already defined to be \@empty !
>
Yes!