blob: d6af5f056586903dc6a6253c4f1f500aa7a15fc7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
%
% 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{<BR/>}\Picture*{}\begin{syntdiag}\setlength{\sdmidskip}{.5em}\sffamily\sloppy}%
{\end{syntdiag}\EndPicture\HCode{<BR/>}}%
}{%
\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}
%
|