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.