24.9 Commands for Common Names

Here we define common names that are used throughout the documentation.

Before we are listing the names, we define an auxiliary command xnamedef, which enables us to define the common names in a compact way. In fact, if xnamedef is used in the following forms

\xnamedef{COMMAND}{URL}  
\xnamedef{COMMAND}[RHXTERM]{URL}

it defines a new command xCOMMAND. The RHXTERM argument (including the brackets) is optional and set to

COMMAND@\xnamdefstyle{COMMAND}

if it is not explicitly given. This argument is directly handed over to the defineterm and useterm commands of the rhxterm package.

The first usage of a xCOMMAND produces a footnote with a link to the URL (given as the last argument to xnamedef). Every other use of the command just links to its first usage, i. e., to the footnote. In any case the RHXTERM argument of xnamedef is printed in the text at the place where xCOMMAND appears.

Note that the RHXTERM argument can contain an @ sign. The appearance of RHXTERM is controlled by defineterm and useterm. For the rhxterm LATEX package it does not matter whether the @ sign is of category code 11 (letter) or 12 (other).

See also the redefinition of \@@xnamedef in allprose.4ht.nw, since we need no footnote in case of HTML output. The following intermediate definition of \@xnamedef is necessary for being able to redefine the semantics of xnamedef.

233names 119+   (118 192)  119  234
\def\xnamedefstyle{\textsc}
\def\xnamedef#1{\@ifnextchar[%
  {\@xnamedef{#1}}%
  {\@xnamedef{#1}[#1@\xnamedefstyle{#1}]}}
\def\@xnamedef#1[#2]#3{%
  \expandafter\def\csname x#1\endcsname{\@@xnamedef{#1}{#2}{#3}}}
\def\@@xnamedef#1#2#3{%
  \@ifundefined{!x#1}{%
    \defineterm{#2}%
    \footnote{\href{#3}{\useterm{#2}: \url{#3}}}%
    \expandafter\gdef\csname !x#1\endcsname{}%
  }{\useterm{#2}}}

Defines:
xnamedef, used in chunks 119, 234, and 362.

The command xnamedef is used for the definition of the following LATEX commands xaldoc, xAldor, xAldorDoc, xaldordoc, xaldormode, xAxiom, xALLPROSE, xrhxterm, xLibAldor, xLibALgebra, xEmacs, xXEmacs, xxEmacs, xPerl, xGMP. xGNU, xNoweb, xTeXivHT, xmmmode, xAUCTeX xframed xsrcltx xprevielatex xAldorUnit, xExtIO where the name of the command corresponds to the first argument given to xnamedef.

234names 119+   (118 192)  233
\xnamedef{aldoc}{http://www.inf.ethz.ch/~mannhart}%aldoc package
\xnamedef{Aldor}{http://www.aldor.org}
\xnamedef{AldorDoc}{http://www.aldor.org}%Yannis’ AldorDoc program
\xnamedef{aldordoc}{http://www.hemmecke.de/aldor}%aldordoc package
\xnamedef{aldormode}[aldormode@\xnamedefstyle{aldor-mode}]%
         {http://www.hemmecke.de/aldor}%aldor.el.nw
\xnamedef{Axiom}{http://www.axiom-developer.org}
\xnamedef{ALLPROSE}{http://www.hemmecke.de/aldor}
\xnamedef{rhxterm}{http://www.hemmecke.de/aldor}%rhxterm package

\let\xLibAldor\xAldor
\xnamedef{LibAlgebra}[Algebra@\xnamedefstyle{Algebra}]{http://www.aldor.org}

\xnamedef{Emacs}{http://www.gnu.org}
\xnamedef{XEmacs}{http://www.xemacs.org}

\xnamedef{Perl}{http://www.perl.org}
\xnamedef{GMP}{http://www.swox.com/gmp}%GNU multiprecision
\xnamedef{GNU}{http://www.gnu.org}
\xnamedef{Noweb}{http://www.eecs.harvard.edu/~nr/noweb}
\xnamedef{TeXivHT}[TeX4ht@\xnamedefstyle{\protect\TeX4ht}]%
         {http://www.cse.ohio-state.edu/~gurari/TeX4ht}
\xnamedef{mmmode}[mmmode@\xnamedefstyle{mmm-mode}]%
         {http://mmm-mode.sourceforge.net}
\xnamedef{AUCTeX}{http://www.gnu.org/software/auctex}
\xnamedef{framed}%
         {http://www.ctan.org/tex-archive/macros/latex/contrib/misc/framed.sty}
\xnamedef{srcltx}%
         {http://www.ctan.org/tex-archive/help/Catalogue/entries/srcltx.html}
\xnamedef{previewlatex}[previewlatex@\xnamedefstyle{preview-latex}]%
         {http://www.gnu.org/software/auctex}

\newcommand{\WWWAistleitner}{http://www.risc.uni-linz.ac.at/software/aldor}
\xnamedef{AldorUnit}{\WWWAistleitner/aldorunit}
\xnamedef{ExtIO}{\WWWAistleitner/extio}

Uses html 375, noweb 200, and xnamedef 233.