diagram.tex 1.0 KB

1234567891011121314151617181920212223242526272829
  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. % Define mysyntdiag for my style of diagrams
  14. \newenvironment{mysyntdiag}%
  15. {\begin{syntdiag}\setlength{\sdmidskip}{.5em}\sffamily\sloppy}%
  16. {\end{syntdiag}}%
  17. % Finally, define a combination of the above two.
  18. \newenvironment{psyntax}[2]{\begin{diagram}{#1}{#2}\begin{mysyntdiag}}%
  19. {\end{mysyntdiag}\end{diagram}}
  20. % Redefine the styles used in the diagram.
  21. \latex{\renewcommand{\litleft}{\bfseries\ }
  22. \renewcommand{\ulitleft}{\bfseries\ }
  23. \renewcommand{\syntleft}{\ }
  24. \renewcommand{\litright}{\ \rule[.5ex]{.5em}{2\sdrulewidth}}
  25. \renewcommand{\ulitright}{\ \rule[.5ex]{.5em}{2\sdrulewidth}}
  26. \renewcommand{\syntright}{\ \rule[.5ex]{.5em}{2\sdrulewidth}}
  27. }
  28. % Finally, a referencing command.
  29. \newcommand{\seesy}[1]{see diagram}