axiom-developer
[Top][All Lists]

## Re: [Axiom-developer] map instead of map! in src/doc/book.pamphlet

 From: Ralf Hemmecke Subject: Re: [Axiom-developer] map instead of map! in src/doc/book.pamphlet Date: Fri, 17 Nov 2006 18:40:18 +0100 User-agent: Thunderbird 1.5.0.8 (X11/20061025)



On 11/16/2006 11:47 PM, Vanuxem Grégory wrote:

Le jeudi 16 novembre 2006 à 23:04 +0100, Ralf Hemmecke a écrit :

On 11/16/2006 10:38 PM, Vanuxem Grégory wrote:

Hello,

A small typo in the Axiom book:

--- /home/greg/TDevel/cvs/axiom/src/doc/book.pamphlet
+++ src/doc/book.pamphlet
@@ -48550,7 +48548,7 @@
\returnType{Type: TwoDimensionalArray Integer}

To change the array destructively, use
-\spadfunFrom{map}{TwoDimensionalArray} instead of
\spadfunFrom{map}{TwoDimensionalArray}.  If you need to make a copy of

Beware I don't know what \spadfunFrom does.

I don't know either, but src/hyper/pages/util.ht says the stuff below...


Obviously, there are a lot of commands that look pretty much like LaTeX. But I guess, hypertex code is not really processed by THE TeX so what language is that actually? And any chance that there is a bit more documentation than that given in util.ht?

It seems that you didn't see that book.pamphlet is a LaTeX book (THE
Axiom book :-) (\spadfunFrom is a LaTeX macro here). I use \spadfunFrom
for Hyperdoc and I like it though it processes incorrectly function
ending with a number (no link are generated).


Ooops. I am really blind... :-( Thanks for telling me the obvious.

>>> Beware I don't know what \spadfunFrom does.

OK, then let's look at it.

% spadfunFrom records the function name and domain in the index

\newcommand{\spadfunFrom}[2]{{\bf #1}\index{#1 @\begingroup \string\it{} #1 \endgroup}\index{#2}}

From that one sees the intension. You write something like


prints "name" in the text and also puts two entries into the index. Namely "name" and "Type".


Now when I saw that you replaced "map" by "map!" I thought that must be wrong... But no, there are already other things in book.pamphlet that look like \spadfunFrom{concat!}{List}$(u,v)$. Oh, but then clearly the definition of \spadfunFrom is wrong. It does not consider the case that the exclamation mark is a special character for makeindex. Unfortunately, LaTeX, makeindex, bibtex are not totally compatible. The exclamation mark is used by makeindex to introduce subindices. So it must be escaped by " if it is part of the actual text.


Given that error, you will realize that the index in the Axiom-Book (at least in bookvol1.dvi) is wrong (or if you don't consider it wrong, it is at least ugly).


In order to show that at a small example and also to give a remedy for it I have created the file below where I check for ! (but only at the end of the word) and replace it by "!. In particular look what I did with the second \index entry and how that appears in the index.


Replace \iffalse by \iftrue and investigate the differences in the .dvi file.

Have fun!

Ralf

\documentclass{article}
\usepackage{makeidx}
\makeindex
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Replace \iffalse by \iftrue and call ...
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%\iftrue
\iffalse
\usepackage{hyperref}
\usepackage{color}

\makeatletter
\ifx\\#2\\%
\edef\rhx@@indexlabel{#1}%
\edef\rhx@@indextext{#1}%
\else
\edef\rhx@@indexlabel{#1"!}%
\edef\rhx@@indextext{#1"!}%
\fi
}
\index{\rhx@@indexlabel
\index{#2%
}

\makeatother

\else %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% spadfunFrom records the function name and domain in the index

\newcommand{\spadfunFrom}[2]{{\bf #1}\index{#1 @\begingroup \string\it{} #1 \endgroup}\index{#2}}

\fi
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{document}

While these operations are common, others such as
In addition the Exports section can contain symbols that represent
properties that can be tested. For example, the Category

The operation \spadfunFrom{concat!}{List}$(u,v)$ replaces the
last link of the list $u$ to point to some other list $v$.
Since $u$ refers to the original list, this change is seen by $u$.

To change the array destructively, use
\spadfunFrom{map!}{TwoDimensionalArray}.  If you need to make a copy of
\newpage

To change the array destructively, use
\spadfunFrom{map!}{TwoDimensionalArray}.  If you need to make a copy of

To change the array destructively, use
\spadfunFrom{map!}{OneDimensionalArray}.  If you need to make a copy of

\printindex

\end{document}