X-Git-Url: https://git.distorted.org.uk/~mdw/sod/blobdiff_plain/276be7d77a07999e3098562fce077000dc6c1693..7d69686f71d01de4f8df65b2d417b6b4faaac5ec:/doc/sod.sty diff --git a/doc/sod.sty b/doc/sod.sty index 0e4216c..592ff5c 100644 --- a/doc/sod.sty +++ b/doc/sod.sty @@ -73,7 +73,8 @@ %% Diagram settings. \tikzset{ every picture/.style={>=stealth, thick}, - lit/.style={font=\sffamily} + lit/.style={font=\sffamily}, + dashed/.style={dash pattern=on 2.19pt off 2.19pt} } %% Metavariables are italics without decoration. @@ -106,8 +107,8 @@ %% 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 @@ -189,10 +190,14 @@ %%%-------------------------------------------------------------------------- %%% 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% + \let\kill\prog@@kill% \codeface% \tabbing% } @@ -301,7 +306,14 @@ \def\@descname@i[#1]#2{% \expandafter\let\expandafter\@tempa\csname cat!#2\endcsname% \expandafter\let\expandafter\@tempb\csname modcat/#1\endcsname% - \ifx\@tempa\relax\@tempb{#2}\else\@tempa\@tempb\fi} + \ifx\@tempa\relax\PackageError{sod}{unknown description category `#2'}% + {I don't know what `#2' means as a thing you might try to\MessageBreak + document. Maybe you mistyped it, or forgot to say\MessageBreak + `\protect\definedescribecategory' for it. For now I'm going\MessageBreak + just use the literal string `#2' and hope that doesn't look\MessageBreak + too terrible.}% + \@tempb{#2}% + \else\@tempa\@tempb\fi} %% Call a modifier method. \def\@mod@dispatch#1#2{\csname #1/#2\endcsname} @@ -578,9 +590,9 @@ \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]