% @version $Header$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \NeedsTeXFormat{LaTeX2e} \def\CA@styledate{\CA@getcvsdate $Date$} \def\CA@styleversion{\CA@getcvsversion $Revision$} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \def\CA@getcvsdate $#1:#2/#3/#4 #5:#6:#7${#2/#3/#4} \def\CA@getcvsversion $#1:#2${#2} \IfFileExists{../interface.ccl} { \ProvidesPackage{../../../../doc/latex/cactus}[\CA@styledate \CA@styleversion] } { \IfFileExists{../FAQ} { \ProvidesPackage{../latex/cactus}[\CA@styledate \CA@styleversion] } { \ProvidesPackage{cactus}[\CA@styledate \CA@styleversion] } } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Check if we are under pdftex \newif\ifCA@pdf \ifx\pdfoutput\undefined \CA@pdffalse % we are not running PDFLaTeX \else \pdfoutput=1 % we are running PDFLaTeX \CA@pdftrue % Add the pdftex option to a subsequent load of graphicx \PassOptionsToPackage{pdftex}{graphicx} \fi % Load in other packages. \RequirePackage{graphicx} \RequirePackage{latexsym} \RequirePackage{amssymb} \RequirePackage{ifthen} \RequirePackage{calc} \parskip = 2 pt \oddsidemargin = 0 cm \textwidth = 16 cm \topmargin = -1 cm \textheight = 24 cm % macros \def\text#1{{\rm #1}} % MANPAGE like description setting for options, use as % \begin{Lentry} %\item[text] text \end{Lentry} \usepackage{ifthen,calc} \newcommand{\entrylabel}[1]{\mbox{\textsf{#1}}\hfil} \newenvironment{entry} {\begin{list}{} {\renewcommand{\makelabel}{\entrylabel} \setlength{\labelwidth}{90pt} \setlength{\leftmargin}{\labelwidth+\labelsep} } } {\end{list}} \newlength{\Mylen} \newcommand{\Lentrylabel}[1]{% \settowidth{\Mylen}{\textsf{#1}}% \ifthenelse{\lengthtest{\Mylen > \labelwidth}}% {\parbox[b]{\labelwidth} % term > labelwidth {\makebox[0pt][l]{\textsf{#1}}\\}} % {\textsf{#1}} % \hfil\relax} \newenvironment{Lentry} {\renewcommand{\entrylabel}{\Lentrylabel} \begin{entry}} {\end{entry}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Alternate environments/macros to define function descriptions % (can/should be used to replace CCTKFunc environment) % Jonathan Thornburg, 10 Nov 2001, revised 26 Mar 2002 & 3 Apr 2002 % % Usage: % \begin{FunctionDescription}{name} % \label{label} % Synopsis for this function (running text rules) % % \begin{SynopsisSection} % \begin{Synopsis}{C} % text of C function synopsis (running text rules) % \end{Synopsis} % \begin{Synopsis}{Fortran} % text of Fortran function synopsis (running text rules) % \end{Synopsis} % \end{SynopsisSection} % % \begin{ResultSection} % \begin{ResultNote} % optional note to go at the beginning of all results % (running text rules) % \end{ResultNote} % \begin{Result}{name or value (automatically in \tt font)} % desription of what the result means in general, % or of what this particular result value means (running text rules) % \end{Result} % \end{ResultSection} % % \begin{ParameterSection} % \begin{Parameter}{name (automatically in \tt font)} % desription of parameter (running text rules) % \end{Parameter} % \begin{Parameter}{name2 (automatically in \tt font)} % desription of another parameter (running text rules) % \end{Parameter} % \end{ParameterSection} % % \begin{Discussion} % (note that there is no "DiscussionSection" environment!) % discussion (running text rules) % % another paragraph of discussion (running text rules) % % yet another paragraph of discussion (running text rules) % \end{Discussion} % % \begin{SeeAlsoSection} % \begin{SeeAlso}{name (automatically in \tt font) % cross-references to other function of that name (running text rules) % \end{SeeAlso} % \begin{SeeAlso}{name2 (automatically in \tt font) % cross-references to another function (running text rules) % \end{SeeAlso} % \end{SeeAlsoSection} % % \begin{ErrorSection} % \begin{Error}{error\_code (automatically in \tt font)} % description of what this error code means (running text rules) % \end{Error} % \begin{Error}{error\_code2 (automatically in \tt font)} % description of what next error code means (running text rules) % \end{Error} % \end{ErrorSection} % % \begin{ExampleSection} % \begin{Example}{C} % example C code (running text rules) % \end{Example} % \begin{Example}{Fortran} % example Fortran code (running text rules) % \end{Example} % \end{ExampleSection} % % For arguments which are automatically in \tt font, \tt may be used % to switch back to normal Roman font (eg for a numerical value), and % $...$ may be used for math mode (eg ($\ge 0$) to mark a result % which is always non-negative). % % Each "running text rules" item is the body of a latex environment, % so it may include multiple lines or even paragraphs. Normally % underscore must be escaped (\_), but \verb|...| and/or % \begin{verbatim} % ... % \end{verbatim} % or similar constructs (which can't be used inside a macro argument) % may also be used (in which case _ { } \ etc need not be escaped). % % All the subsections are optional. % % Bugs: % - It would be nice if we could avoid having to escape underscore % within arguments. % - Error checking: if you have to ask, there isn't enough for you! :) % - There are no controls to prevent a page break falling between the % line "C" or "Fortran", and an immediately following example generated % by the Example subenvironment. In fact, LaTeX seems to like doing % this. :( % - It would be nice to have a "...continued" legend at the bottom of % all but the last page of a multi-page description. % - The running header giving the function name, only appears for the % first page of a multi-page description. % - In some ideal world, "See Also" would generate pdf hotlinks. % - The horizontal spacing is ugly in a ResultNote environment, and it's % really *really* ugly if the note spans multiple lines of text. :( % - There are often unwanted one-horizontal-space indentations at % the start of items; I don't know how to get rid of these. :( % \newenvironment{FunctionDescription}[1] { \newpage \noindent{\t #1} \vskip1mm \hrule \vskip3mm % % We define all the subenvironments inside the main one, so they won't % interfere with any conflicting global definitions. % \newenvironment{FunctionDescriptionEntry} {%%% \begin{list}%%% {}%%% {%%% \renewcommand{\makelabel}{\Lentrylabel}%%% \setlength{\topsep}{0ex}%%% \setlength{\partopsep}{0ex}%%% \setlength{\itemsep}{0ex}%%% \setlength{\labelwidth}{8em}%%% \setlength{\leftmargin}{\labelwidth+\labelsep}%%% \setlength{\itemindent}{0em}%%% \setlength{\listparindent}{0em}%%% }%%% }%%% {\end{list}}%%% \newenvironment{FunctionDescriptionWideEntry} {%%% \begin{list}%%% {}%%% {%%% \renewcommand{\makelabel}{\Lentrylabel}%%% \setlength{\topsep}{0ex}%%% \setlength{\partopsep}{0ex}%%% \setlength{\itemsep}{0ex}%%% \setlength{\labelwidth}{16em}%%% \setlength{\leftmargin}{\labelwidth+\labelsep}%%% \setlength{\itemindent}{0em}%%% \setlength{\listparindent}{0em}%%% }%%% }%%% {\end{list}}%%% % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \newenvironment{SynopsisSection} {%%% \par\noindent{\bf Synopsis} \begin{FunctionDescriptionEntry} }%%% {\end{FunctionDescriptionEntry}} \newenvironment{Synopsis}[1]{\item[\bf ##1]}{} % \newenvironment{ResultSection} {%%% \par\noindent{\bf Result} \begin{FunctionDescriptionEntry} }%%% {\end{FunctionDescriptionEntry}} \newenvironment{ResultNote}{\item[]\hskip-\leftmargin{}}{} \newenvironment{Result}[1]{\item[\tt ##1]}{} % \newenvironment{ParameterSection} {%%% \par\noindent{\bf Parameters} \begin{FunctionDescriptionEntry} }%%% {\end{FunctionDescriptionEntry}} \newenvironment{Parameter}[1]{\item[\tt ##1]}{} % \newenvironment{Discussion}%%% {%%% \par\noindent{\bf Discussion} \begin{FunctionDescriptionEntry} \item[] }%%% {\end{FunctionDescriptionEntry}} % \newenvironment{SeeAlsoSection} {%%% \par\noindent{\bf See Also} \begin{FunctionDescriptionWideEntry} }%%% {\end{FunctionDescriptionWideEntry}} \newenvironment{SeeAlso}[1]{\item[\tt ##1]}{} % \newenvironment{ErrorSection} {%%% \par\noindent{\bf Errors} \begin{FunctionDescriptionWideEntry} }%%% {\end{FunctionDescriptionWideEntry}} \newenvironment{Error}[1]{\item[\tt ##1]}{} % \newenvironment{ExampleSection} {%%% \par\noindent{\bf Examples} \begin{FunctionDescriptionEntry} }%%% {\end{FunctionDescriptionEntry}} \newenvironment{Example}[1]{\item[\bf ##1]}{} % }%%% % end of \begin{FunctionDescription} expansion {%%% }%%% % \end{FunctionDescription} expansion is empty \endinput %% %% End of cactus.sty