diff options
author | William Joye <wjoye@cfa.harvard.edu> | 2016-11-02 19:16:17 (GMT) |
---|---|---|
committer | William Joye <wjoye@cfa.harvard.edu> | 2016-11-02 19:16:17 (GMT) |
commit | 293057bdd882685f8ddad66bf77196a5853b08da (patch) | |
tree | 22c02c3808f490432f5f785c8bb665438169662b /ast/sst.sty | |
parent | 87f20cbc44f8f6b53c00c37f89bc134a1f4cf29e (diff) | |
parent | d26ed8388f100a12996c0b92a98040ef2ba7fa8e (diff) | |
download | blt-293057bdd882685f8ddad66bf77196a5853b08da.zip blt-293057bdd882685f8ddad66bf77196a5853b08da.tar.gz blt-293057bdd882685f8ddad66bf77196a5853b08da.tar.bz2 |
Merge commit 'd26ed8388f100a12996c0b92a98040ef2ba7fa8e' as 'ast'
Diffstat (limited to 'ast/sst.sty')
-rw-r--r-- | ast/sst.sty | 234 |
1 files changed, 234 insertions, 0 deletions
diff --git a/ast/sst.sty b/ast/sst.sty new file mode 100644 index 0000000..55f98dc --- /dev/null +++ b/ast/sst.sty @@ -0,0 +1,234 @@ +\ProvidesPackage{sst} + +%%%% +% Packet for formatting latex code output from prolat +%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% .. Set up the sectioning and appearance for the sstroutine. + +\RequirePackage{titlesec} + +%... New subsection sstrefsection +\titleclass{\sstrefsection}{straight}[\subsection] +\newcounter{sstrefsection} +\renewcommand{\thesstrefsection}{\arabic{sstrefsection}} + +%... Formatting the title for sstrefsection +\titleformat{name=\sstrefsection}% +{\normalfont\Large\bfseries\centering}{}{0pt}{} +\titlespacing*{\sstrefsection}{0pt}{3.5ex plus 1ex minus .2ex}{2.3ex plus .2ex} + +%... Command to turn name and short description into single variable for title. +\newcommand{\sstsectitle}[2]{\strut \vphantom{#1}#1\newline \ignorespaces#2\strut} + +% .. Command to completely remove section from contents so it can be +% added in manually at the correct section. +\newcommand{\nocontentsline}[3]{} +\newcommand{\tocless}[2]{\bgroup\let\addcontentsline=\nocontentsline#1{#2}\egroup} +%% Add a toc entry which will be used in the main toc +\newcommand{\sstmaintocline}[2]{\addcontentsline{toc}{subsection}{\protect\numberline{}#1}} + +%% commands to temporarily stop sstroutines from writing anything into the main toc +\newcommand{\sstnomaintoc}{\renewcommand{\sstmaintocline}[2]{}} +%% Command to restart sstroutines appearing in the main html toc +%% (does nothing in pdf) +\newcommand{\sstmaintoc}{\renewcommand{\sstmaintocline}[2]{\addcontentsline{toc}{subsection}{\protect\numberline{}##1}}} + + + +%% .. command to format the sst title +\newcommand{\ssttitle}[2]{ + \tocless\sstrefsection{\centering\rule{\textwidth}{0.5mm}\\% + #1\\#2\\\rule{\textwidth}{0.5mm}} + \sstmaintocline{\RemoveSpaces{#1}}{#2} +} + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%... Basic SSTROUTINE command +\newcommand{\sstroutine}[3]{ + \clearpage + % Create the section. + \ssttitle{#1}{#2} + + % Set the first parameter as the label; need to remove spaces first. + \label{\RemoveSpaces{#1}} + + %.. change the mark on the left hand side to include the name of the chapter. + \markright{\textit{\RemoveSpaces{#1}}} + \iftwoside + \fancyhead[RE,LO]{\thepage\hspace{1cm}\rightmark} + \else + \lhead{\thepage\hspace{1cm}\rightmark} + \fi + + %.. Nest all the material within a description + \begin{description}[style=nextline] + #3 + \end{description} + + % End the page + \newpage +} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% .. Various sst macros that are used within an \sstroutine + +% .. diytopic -- basis for many of th commands. +\newcommand{\sstdiytopic}[2]{\item[#1:] +\begin{description}[style=nextline]\item[]\end{description} #2} + +\newcommand{\sstdescription}[1]{\item[Description:] #1 } + +\newcommand{\sstusage}[1]{\item[Usage:]{\raggedright \tt #1}} + +\newcommand{\sstparameters}[1]{\item[Parameters:] +\begin{description}[style=nextline]\item[] #1 \end{description}} + +\newcommand{\sstkeywords}[1]{\item[Keywords:] +\begin{description}[style=nextline]\item[] #1 \end{description}} + +\newcommand{\sstsubsection}[2]{\item[{#1}] #2} + +\newcommand{\sstnotes}[1]{\sstdiytopic{Notes}{#1}} + +\newcommand{\sstdiylist}[2]{\item[#1] #2} + +\newcommand{\sstimplementationstatus}[1]{\item[Implementation Status:] #1} + +\newcommand{\sstbugs}[1]{\item[Bugs:] #1} + +% Format a list of items while in paragraph mode. +\newcommand{\sstitemlist}[1]{ + \mbox{}%\vspace{-1\baselineskip} + \begin{itemize} + #1 + \end{itemize} +} + +\newcommand{\ssthitemlist}[1]{\mbox{}\begin{itemize}#1\end{itemize}} +\newcommand{\sstapplicability}[1]{\sstdiytopic{Applicability}{#1}} +\newcommand{\sstresparameters}[1]{\sstdiytopic{Results Parameters}{#1}} +\newcommand{\sstarguments}[1]{\sstdiytopic{Arguments}{#1}} +\newcommand{\sstinvocation}[1]{\sstdiytopic{Invocation}{{\tt #1}}} +\newcommand{\sstreturnedvalue}[1]{\sstdiytopic{Returned Value}{#1}} +\newcommand{\sstimplementation}[1]{\sstdiytopic{Implementation}{#1}} + + +\newcommand{\sstexamplesubsection}[2]{\sloppy +\item[{\texttt{\textcolor{MidnightBlue}{#1}}}] +#2 } + +% Set the font of the label of the sstexample items: +% (extra \\ spacing is required to not have weird effects. I think the +% important point is to explicitly force the label into vertical mode, +% so it doesn't try and continue the previous paragraph). +\newcommand{\sstexamplefont}[1]{\\#1\\\\} + +\newcommand{\sstexamples}[1]{ + \setlength{\parindent}{0mm} + \item[Examples:] + \begin{description}[style=unboxed,font=\sstexamplefont, + leftmargin=0pt,] + #1 + \end{description} +} + +% Define the format of an item. +\newcommand{\sstitem}{\item\mbox{}} + +% Format the attribute data type section. +\providecommand{\sstattributetype}[1]{}%\item[Type:]#1} + +% an environment for references (for the SST sstdiytopic command). +\newenvironment{refs}{\vspace{-4ex} % normally 3ex + \begin{list}{}{\setlength{\topsep}{0mm} + \setlength{\partopsep}{0mm} + \setlength{\itemsep}{0mm} + \setlength{\parsep}{0mm} + \setlength{\leftmargin}{1.5em} + \setlength{\itemindent}{-\leftmargin} + \setlength{\labelsep}{0mm} + \setlength{\labelwidth}{0mm}} + }{\end{list}} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% .. Additional SST-routine like commands. + + +% .. SST attribute command: similar to an sstroutine, but slightly +% different formatting and doesn't force a new page. See SUN/95 for +% example of usage. Also doesn't appear in the table of contents. + +\newcommand{\sstattribute}[3]{ + % Create the section. + \subsubsection*{\centering \rule{\textwidth}{0.5mm}\\\Large\ignorespaces#1 + \\#2\\\rule{\textwidth}{0.5mm}} + + % Set the first parameter as the label; need to remove spaces first. + \label{\RemoveSpaces{#1}} + + %.. change the mark on the left hand side to include the name of the section. + \markright{\textit{\RemoveSpaces{#1}}} + + \iftwoside + \fancyhead[RE,LO]{\thepage\hspace{1cm}\rightmark} + \else + \lhead{\thepage\hspace{1cm}\rightmark} + \fi + + %.. Nest all the material within a description + \begin{description}[style=nextline] + #3 + \end{description}% +} + + +%% SSTroutinenolabel should be same as regular sstroutine, but not +%% define a label (see sun209 -- this is because sun209 uses \textit +%% in some of its macro titles, so thesse cannot be automatically +%% changed to a label. The label must be manually created when +%% using these. +\newcommand{\sstroutinenolabel}[3]{ + \clearpage + % Create the section. + \ssttitle{#1}{#2} + + %.. change the mark on the left hand side to include the name of the chapter. + \markright{\textit{\RemoveSpaces{#1}}} + \iftwoside + \fancyhead[RE,LO]{\thepage\hspace{1cm}\rightmark} + \else + \lhead{\thepage\hspace{1cm}\rightmark} + \fi + + %.. Nest all the material within a description + \begin{description}[style=nextline] + #3 + \end{description} + + % End the page + \newpage +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% .. Miscellaneous + +%% Change the \wedge command to something that looks better. +\renewcommand{\wedge}{\mbox{\textasciicircum}} + + +%% command to prevent sstroutines from appearing in the extra html toc +%% called by \sstminitoc{Title of Toc} (does nothing in pdf) +\newcommand{\sstnoextratoc}{} +%% Command to restart sstroutines appearing in the extra html toc +%% called by \sstminitoc{Title of Toc} (does nothing in pdf) +\newcommand{\sstextratoc}{} + + +% Command that in html typesets a listing of all +% sstroutines/sstroutinenolables that occur before the next sectioning +% command. Does nothing in pdf at the moment. +\newcommand{\sstminitoc}[1]{} |