diagram.tex 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. %
  2. % Here we determine the style of the syntax diagrams.
  3. %
  4. % Define a 'boxing' environment
  5. \newenvironment{diagram}[2]%
  6. {\begin{quote}\rule{0.5pt}{1ex}%
  7. \rule[1ex]{\linewidth}{0.5pt}%
  8. \rule{0.5pt}{1ex}\\[-0.5ex]%
  9. \textbf{#1}\\[-0.5ex]}%
  10. {\rule{0.5pt}{1ex}%
  11. \rule{\linewidth}{0.5pt}%
  12. \rule{0.5pt}{1ex}\end{quote}}
  13. %\newenvironment{diagram}[2]{}{}
  14. % Define mysyntdiag for my style of diagrams
  15. \makeatletter
  16. % Under Tex4HT, the diagrams are rendered as pictures.
  17. \@ifpackageloaded{tex4ht}{%
  18. \newenvironment{mysyntdiag}%
  19. {\HCode{<BR/>}\Picture*{}\begin{syntdiag}\setlength{\sdmidskip}{.5em}\sffamily\sloppy}%
  20. {\end{syntdiag}\EndPicture\HCode{<BR/>}}%
  21. }{%
  22. \newenvironment{mysyntdiag}%
  23. {\begin{syntdiag}\setlength{\sdmidskip}{.5em}\sffamily\sloppy}%
  24. {\end{syntdiag}}%
  25. }%
  26. \makeatother
  27. % Finally, define a combination of the above two.
  28. \newenvironment{psyntax}[2]{\begin{diagram}{#1}{#2}\begin{mysyntdiag}}%
  29. {\end{mysyntdiag}\end{diagram}}
  30. % Redefine the styles used in the diagram.
  31. \latex{\renewcommand{\litleft}{\bfseries\ }
  32. \renewcommand{\ulitleft}{\bfseries\ }
  33. \renewcommand{\syntleft}{\ }
  34. \renewcommand{\litright}{\ \rule[.5ex]{.5em}{2\sdrulewidth}}
  35. \renewcommand{\ulitright}{\ \rule[.5ex]{.5em}{2\sdrulewidth}}
  36. \renewcommand{\syntright}{\ \rule[.5ex]{.5em}{2\sdrulewidth}}
  37. }
  38. % Finally, a referencing command.
  39. \newcommand{\seesy}[1]{see diagram}
  40. %