1% LaTeX style file 2% Name: texhelp.sty 3% Author: Julian Smart 4% 5% Purpose 6% ------- 7% Style file to enable the simultaneous preparation of printed LaTeX and on-line 8% hypertext manuals. 9% Use in conjunction with Tex2RTF (see Tex2RTF documentation). 10% 11% Note that if a non-ASCII character starts a newline and there should be a space 12% between the last word on the previous line and the first word on this line, 13% you need to use \rtfsp to generate a space in Windows Help. \rtfsp is ignored 14% in all other formats. 15% 16% Julian Smart 17% Artificial Intelligence Applications Institute 18% 19% 20% ============== C++/CLIPS Documentation Facilities ============== 21% 22% Each class definition should be typeset with e.g. 23% 24% \section{\class{Name}: Parent} 25% 26% followed by a description of the class. 27% Each member should follow: 28% 29% \membersection{wxName::Member} 30% 31% with a description of what this member does. 32% Then, one (or more if overloaded) member (function) in detail: 33% 34% \func{return type}{name}{args} 35% or 36% \member{type}{name} 37% 38% where args is a list of \param{type}{name}, ... 39 40% Function, e.g. 41% e.g. to typeset 42% 43% void DoIt(char *string); 44% 45% write: 46% 47% \func{void}{DoIt}{\param{char *}{string}} 48% 49 50\newcommand{\func}[3]{\hangafter=1\noindent\hangindent=10mm 51{{\it #1} {\bf #2}\index{#2}}(#3)} 52 53% For function/type definition where the name is a pointer, 54% e.g. to typeset 55% 56% typedef void (*wxFunction)(wxObject&) 57% 58% write: 59% 60% \pfunc{typedef void}{wxFunction}{param{wxObject&}} 61 62\newcommand{\pfunc}[3]{\hangafter=1\noindent\hangindent=10mm 63{{\it #1} ({\bf *#2})\index{#2}}(#3)} 64 65% Use an ordinary \section command for class name definitions. 66 67% This is used for a member, such as wxBitmap: GetDepth 68\newcommand{\membersection}[1]{\subsection*{#1}\index{#1}} 69 70% CLIPS function 71\newcommand{\clipsfunc}[3]{\hangafter=1\noindent\hangindent=10mm 72{{\bf #1} ({\bf #2}\index{#2}}#3)} 73 74\newcommand{\clipssection}[1]{\chapter{#1}} 75 76% This is used for a CLIPS function name 77\newcommand{\functionsection}[1]{\subsection*{#1}} 78 79% Member: a type and a name 80\newcommand{\member}[2]{{\bf #1 \it #2}} 81 82% C++ Parameter: a type and a name (no intervening space) 83\newcommand{\param}[2]{{\it #1}{\bf #2}} 84 85% C++ argument in the documentation text 86\newcommand{\arg}[1]{{\it #1}} 87 88% true and false keywords: 89\newcommand{\true}{{\tt true}} 90\newcommand{\false}{{\tt false}} 91 92% CLIPS Parameter: a type and a name (one intervening space) 93\newcommand{\cparam}[2]{{\bf #1} {\it #2}} 94 95% Class: puts in index 96\newcommand{\class}[1]{#1\index{#1}} 97 98%\newcommand{\docparam}[2]{\parskip=0pt {\it #1}\par\parskip=10pt\begin{indented}{1cm}{#2}\end{indented}} 99 100% Void type 101\newcommand{\void}{{\it void}} 102 103% Typeset destructor 104\newcommand{\destruct}[1]{{$\sim$}#1} 105 106% Typeset insert/extract operators 107\newcommand{\cinsert}{$<<$} 108\newcommand{\cextract}{$>>$} 109 110% pythonnote: A note about the wxpython interface. 111%\newcommand{\pythonnote}[1]{{\bf wxPython note: }#1} 112\newcommand{\pythonnote}[1]{{}} 113\newcommand{\perlnote}[1]{{}} 114 115% =================== Hypertext facilities =================== 116% 117% To insert hyperlinks (or references, in Latex), \label the sections 118% or membersections \label{ref-label} immediately after the section, on the same line, 119% and use \helpref{text-to-show}{ref-label} to make a reference. 120% 121 122% Type text with section reference 123\newcommand{\helpref}[2]{{\it #1} (p.\ \pageref{#2}) } 124 125% Type text with URL in verbatim mode 126\newcommand{\urlref}[2]{#1 (\verb$#2$)} 127 128% Don't typeset section number in LaTeX 129\newcommand{\helprefn}[2]{{\it #1}} 130 131% Like helpref, but popup text in WinHelp instead of hyperlinked 132\newcommand{\popref}[2]{{\it #1}} 133 134% Like footnote, but popup text. 135\newcommand{\footnotepopup}[2]{{\it #1}\footnote{#2}} 136 137% =================== On-line help specific macros =================== 138% 139 140% Global document font size/family, help only. 141\newcommand{\helpfontsize}[1]{} 142\newcommand{\helpfontfamily}[1]{} 143 144% Ignore in all on-line help 145\newcommand{\helpignore}[1]{#1} 146% Only print in all on-line help 147\newcommand{\helponly}[1]{} 148 149% Ignore in LaTeX 150\newcommand{\latexignore}[1]{} 151% Only print in LaTeX 152\newcommand{\latexonly}[1]{#1} 153 154% Ignore in linear RTF 155\newcommand{\rtfignore}[1]{#1} 156% Only print in linear RTF 157\newcommand{\rtfonly}[1]{} 158 159% Ignore in WinHelp RTF 160\newcommand{\winhelpignore}[1]{#1} 161% Only print in WinHelp RTF 162\newcommand{\winhelponly}[1]{} 163 164% Ignore in wxHelp 165\newcommand{\xlpignore}[1]{#1} 166% Only print in wxHelp 167\newcommand{\xlponly}[1]{} 168 169% Ignore in HTML 170\newcommand{\htmlignore}[1]{#1} 171% Only print in HTML 172\newcommand{\htmlonly}[1]{} 173 174% Input a file only for help system (binder thickness is not a limitation 175% in help systems!) 176\newcommand{\helpinput}[1]{} 177 178\newcommand{\rtfsp}{ } % Force a space in RTF, ignore in Latex 179 180% =================== Miscellaneous macros =================== 181% 182% Headings consistent with generated ones 183\newcommand{\myheading}[1]{\vspace*{25pt} 184\begin{flushleft} 185{\LARGE \bf #1} 186\end{flushleft} 187\vskip 20pt 188} 189 190% Heading with entry in contents page. 191\newcommand{\chapterheading}[1]{\myheading{#1} 192\addcontentsline{toc}{chapter}{#1}} 193 194\newcommand{\sectionheading}[1]{\myheading{#1} 195\addcontentsline{toc}{section}{#1}} 196 197% Glossary environment 198\newenvironment{helpglossary}{\newpage\chapterheading{Glossary}\begin{description}}{\end{description}} 199 200% Glossary entry 201\newcommand{\gloss}[1]{\item[#1]\index{#1}} 202 203% Image: EPS in Latex, BMP or MF (whatever's available) in RTF. Requires psbox. 204\newcommand{\image}[2]{\psboxto(#1){#2}} 205 206% Image, left aligned (HTML) 207\newcommand{\imager}[2]{\psboxto(#1){#2}} 208 209% Image, right aligned (HTML) 210\newcommand{\imagel}[2]{\psboxto(#1){#2}} 211 212% Imagemap: principally for HTML only. In Latex, 213% acts like \image. 214\newcommand{\imagemap}[3]{\psboxto(#1){#2}} 215 216% Headers and footers 217% \setheader{EvenPageLeft}{EvenPageCentre}{EvenPageRight} 218% {OddPageLeft}{OddPageCentre}{OddPageRight} 219\newcommand{\setheader}[6]{ 220\lhead[\fancyplain{}{#1}]{\fancyplain{}{#4}} 221\chead[\fancyplain{}{#2}]{\fancyplain{}{#5}} 222\rhead[\fancyplain{}{#3}]{\fancyplain{}{#6}} 223} 224 225% \setfooter{EvenPageLeft}{EvenPageCentre}{EvenPageRight} 226% {OddPageLeft}{OddPageCentre}{OddPageRight} 227\newcommand{\setfooter}[6]{ 228\lfoot[\fancyplain{#1}{#1}]{\fancyplain{#4}{#4}} 229\cfoot[\fancyplain{#2}{#2}]{\fancyplain{#5}{#5}} 230\rfoot[\fancyplain{#3}{#3}]{\fancyplain{#6}{#6}} 231} 232 233% Needed for telling RTF where margin paragraph should go 234% in mirrored margins mode. 235\newcommand{\marginpareven}[1]{\hspace*{0pt}\marginpar{#1}} 236\newcommand{\marginparodd}[1]{\hspace*{0pt}\marginpar{#1}} 237 238% Environment for two-column table popular in WinHelp and manuals. 239\newcommand{\twocolwidtha}[1]{\def\twocolwidthaval{#1}} 240\newcommand{\twocolwidthb}[1]{\def\twocolwidthbval{#1}} 241\newcommand{\twocolspacing}[1]{\def\twocolspacingval{#1}} 242 243\twocolwidtha{3cm} 244\twocolwidthb{8.5cm} 245\twocolspacing{2} 246 247\newcommand{\twocolitem}[2]{#1 & #2\\} 248\newcommand{\twocolitemruled}[2]{#1 & #2\\\hline} 249 250\newenvironment{twocollist}{\renewcommand{\arraystretch}{\twocolspacingval}\begin{tabular}{lp{\twocolwidthbval}}}% 251{\end{tabular}\renewcommand{\arraystretch}{1}} 252 253% Specifying table rows for RTF compatibility 254\newcommand{\row}[1]{#1\\} 255 256% Use for the last ruled row for correct RTF generation. 257\newcommand{\ruledrow}[1]{#1\\\hline} 258 259% Indentation environment. Arg1 is left margin size 260\newenvironment{indented}[1]{\begin{list}{}{\leftmargin=#1}\item[]}% 261{\end{list}} 262 263% Framed box of text, normal formatting. 264\newcommand{\normalbox}[1]{\fbox{\vbox{#1}}} 265% Double-framed box of text. 266\newcommand{\normalboxd}[1]{\fbox{\fbox{\vbox{#1}}}} 267 268% WITHDRAWN -- can't do in RTF, easily. 269% Framed box of text, horizontally centred. Ragged right within box. 270% \newcommand{\centeredbox}[2]{\begin{center}\fbox{\parbox{#1}{\raggedright#2}}\end{center}} 271% Double-framed box of text, horizontally centred. Ragged right within box. 272% \newcommand{\centeredboxd}[2]{\begin{center}\fbox{\fbox{\parbox{#1}{\raggedright#2}}}\end{center}} 273 274% toocomplex environment: simply prints the argument in LaTeX, 275% comes out verbatim in all generated formats. 276\newenvironment{toocomplex}{}{} 277 278% Colour: dummy commands since LaTeX doesn't support colour. 279% \definecolour{name}{red}{blue}{green} 280% \fcol{name}{text} ; Foreground 281% \bcol{name}{text} ; Background 282\newcommand{\definecolour}[4]{} 283\newcommand{\definecolor}[4]{} 284\newcommand{\fcol}[2]{#2} 285\newcommand{\bcol}[2]{#2} 286\newcommand{\sethotspotcolour}[1]{} 287\newcommand{\sethotspotunderline}[1]{} 288\newcommand{\settransparency}[1]{} 289\newcommand{\backslashraw}[0]{} 290\newcommand{\lbraceraw}[0]{} 291\newcommand{\rbraceraw}[0]{} 292\newcommand{\registered}[0]{(r)} 293\newcommand{\background}[1]{} 294\newcommand{\textcolour}[1]{} 295\newcommand{\overview}[2]{See \helpref{#1}{#2}.} 296\newcommand{\docparam}[2]{{\it #1}\begin{list}{}{\leftmargin=1cm}\item[] 297#2% 298\end{list}} 299\newcommand{\wxheading}[1]{{\bf #1}} 300\newcommand{\const}[0]{{\bf const}} 301\newcommand{\constfunc}[3]{{\bf #1} {\bf #2}(#3) {\bf const}\index{#2}} 302\newcommand{\windowstyle}[1]{{\bf #1}\index{#1}} 303 304\addtolength{\textwidth}{1in} 305\addtolength{\oddsidemargin}{-0.5in} 306\addtolength{\topmargin}{-0.5in} 307\addtolength{\textheight}{1in} 308\sloppy 309 310