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.

233⟨names 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.

234⟨names 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.