%% Intercept grammar typesetting and replace the vertical bar with the
%% maths-font version.
-\let\@@grammar\grammar
-\def\grammar{\def\textbar{\hbox{$|$}}\@@grammar}
+\let\@@syn@shorts\syn@shorts
+\def\syn@shorts{\def\textbar{\hbox{$|$}}\@@syn@shorts}
%% Collect super- and subscripts. (Note that underscores are active for the
%% most part.) When we're done, end maths mode if we entered it
%%%--------------------------------------------------------------------------
%%% Environment for setting programs.
+%% Save `\kill' so that `longtable' won't clobber it.
+\let\prog@@kill\kill
+
%% Main guts of `prog' and `nprog'.
-\def\@prog{\let\prog@@cr\@tabcr\let\@tabcr\@progcr\codeface\tabbing}
+\def\@prog{%
+ \let\prog@@cr\@tabcr%
+ \let\@tabcr\@progcr%
+ \let\kill\prog@@kill%
+ \codeface%
+ \tabbing%
+}
%% Newlines: called by `\\' within a `prog'.
%%
\begingroup%
\let\protect\@empty\def\@uscore{-\@gobble}%
\edef\temp@{\@desc@dispatch{desclabel}{#5}{#4}{#5}#6{#7}}%
- \hyperref[\temp@]{\code{#7}}#8%
- #1#2{\temp@}#3%
- \endgroup%
+ \edef\next@##1##2##3{\endgroup%
+ \noexpand\hyperref[\temp@]{##1}##2{\temp@}##3}%
+ \next@{\code{#7}}{#8#1#2}{#3}%
}
%% \descindex[MOD]{CAT}{...}...{LABEL}[SUFFIX]