%
% Here we determine the style of the syntax diagrams.
%
% Define a 'boxing' environment
\newenvironment{diagram}[2]%
{\begin{quote}\rule{0.5pt}{1ex}%
\rule[1ex]{\linewidth}{0.5pt}%
\rule{0.5pt}{1ex}\\%
\textbf{#1}\\}%
{\rule{0.5pt}{1ex}%
\rule{\linewidth}{0.5pt}%
\rule{0.5pt}{1ex}\end{quote}}
%\newenvironment{diagram}[2]{}{}
% Define mysyntdiag for my style of diagrams
\makeatletter
% Under Tex4HT, the diagrams are rendered as pictures.
\@ifpackageloaded{tex4ht}{%
\newenvironment{mysyntdiag}%
{\HCode{
}\Picture*{}\begin{syntdiag}\setlength{\sdmidskip}{.5em}\sffamily\sloppy}%
{\end{syntdiag}\EndPicture\HCode{
}}%
}{%
\newenvironment{mysyntdiag}%
{\begin{syntdiag}\setlength{\sdmidskip}{.5em}\sffamily\sloppy}%
{\end{syntdiag}}%
}%
\makeatother
% Finally, define a combination of the above two.
\newenvironment{psyntax}[2]{\begin{diagram}{#1}{#2}\begin{mysyntdiag}}%
{\end{mysyntdiag}\end{diagram}}
% Redefine the styles used in the diagram.
\latex{\renewcommand{\litleft}{\bfseries\ }
\renewcommand{\ulitleft}{\bfseries\ }
\renewcommand{\syntleft}{\ }
\renewcommand{\litright}{\ \rule[.5ex]{.5em}{2\sdrulewidth}}
\renewcommand{\ulitright}{\ \rule[.5ex]{.5em}{2\sdrulewidth}}
\renewcommand{\syntright}{\ \rule[.5ex]{.5em}{2\sdrulewidth}}
}
% Finally, a referencing command.
\newcommand{\seesy}[1]{see diagram}
%