Changed \begin{code} and \end{code} into \bcode and \ecode.
Small lay-out improvements.
diff --git a/Doc/lib.tex b/Doc/lib.tex
index f126c8f..406a734 100644
--- a/Doc/lib.tex
+++ b/Doc/lib.tex
@@ -1,9 +1,12 @@
% Format this file with latex.
-\documentstyle[palatino,11pt,myformat]{article}
-%\documentstyle[11pt,myformat]{article}
+%\documentstyle[palatino,11pt,myformat]{article}
+\documentstyle[11pt,myformat]{article}
-\sloppy
+% A command to force the text after an item to start on a new line
+\newcommand{\itembreak}{
+ \mbox{}\\*[0mm]
+}
\title{\bf
Python Library Reference \\
@@ -244,7 +247,7 @@
\end{description}
A small example using a dictionary:
-\begin{code}\begin{verbatim}
+\bcode\begin{verbatim}
>>> tel = {}
>>> tel['jack'] = 4098
>>> tel['sape'] = 4139
@@ -262,7 +265,7 @@
>>> tel.has_key('guido')
1
>>>
-\end{verbatim}\end{code}
+\end{verbatim}\ecode
\subsubsection{Other Built-in Types}
The interpreter supports several other kinds of objects.
@@ -405,30 +408,30 @@
With a module object as argument, it returns the sorted list of names in
that module's global symbol table.
For example:
-\begin{code}\begin{verbatim}
+\bcode\begin{verbatim}
>>> import sys
>>> dir()
['sys']
>>> dir(sys)
['argv', 'exit', 'modules', 'path', 'stderr', 'stdin', 'stdout']
>>>
-\end{verbatim}\end{code}
+\end{verbatim}\ecode
\item[{\tt divmod(a, b)}]
%.br
Takes two integers as arguments and returns a pair of integers
consisting of their quotient and remainder.
For
-\begin{code}\begin{verbatim}
+\bcode\begin{verbatim}
q, r = divmod(a, b)
-\end{verbatim}\end{code}
+\end{verbatim}\ecode
the invariants are:
-\begin{code}\begin{verbatim}
+\bcode\begin{verbatim}
a = q*b + r
abs(r) < abs(b)
r has the same sign as b
-\end{verbatim}\end{code}
+\end{verbatim}\ecode
For example:
-\begin{code}\begin{verbatim}
+\bcode\begin{verbatim}
>>> divmod(100, 7)
(14, 2)
>>> divmod(-100, 7)
@@ -438,7 +441,7 @@
>>> divmod(-100, -7)
(14, -2)
>>>
-\end{verbatim}\end{code}
+\end{verbatim}\ecode
\item[{\tt eval(s)}]
Takes a string as argument and parses and evaluates it as a {\Python}
expression.
@@ -446,12 +449,12 @@
tables.
Syntax errors are reported as exceptions.
For example:
-\begin{code}\begin{verbatim}
+\bcode\begin{verbatim}
>>> x = 1
>>> eval('x+1')
2
>>>
-\end{verbatim}\end{code}
+\end{verbatim}\ecode
\item[{\tt exec(s)}]
Takes a string as argument and parses and evaluates it as a sequence of
{\Python} statements.
@@ -460,13 +463,13 @@
tables.
Syntax errors are reported as exceptions.
For example:
-\begin{code}\begin{verbatim}
+\bcode\begin{verbatim}
>>> x = 1
>>> exec('x = x+1\n')
>>> x
2
>>>
-\end{verbatim}\end{code}
+\end{verbatim}\ecode
\item[{\tt float(x)}]
Converts a number to floating point.
The argument may be an integer or floating point number.
@@ -511,7 +514,7 @@
work as expected, but don't specify a zero step.
The resulting list may be empty.
For example:
-\begin{code}\begin{verbatim}
+\bcode\begin{verbatim}
>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(1, 1+10)
@@ -527,7 +530,7 @@
>>> range(1, 0)
[]
>>>
-\end{verbatim}\end{code}
+\end{verbatim}\ecode
\item[{\tt raw\_input(s)}]
%.br
The argument is optional; if present, it is written to standard output
@@ -536,12 +539,12 @@
(stripping a trailing newline), and returns that.
EOF is reported as an exception.
For example:
-\begin{code}\begin{verbatim}
+\bcode\begin{verbatim}
>>> raw_input('Type anything: ')
Type anything: Teenage Mutant Ninja Turtles
'Teenage Mutant Ninja Turtles'
>>>
-\end{verbatim}\end{code}
+\end{verbatim}\ecode
\item[{\tt type(x)}]
Returns the type of an object.
Types are objects themselves:
@@ -954,9 +957,10 @@
\item[{\tt textwidth(str)}]
%.br
Return the width in bits of the string when drawn in the current font.
-\subsubsection{Window Object Methods}
\end{description}
+\subsubsection{Window Object Methods}
+
Window objects are created by
{\tt stdwin.open()}.
There is no explicit function to close a window; windows are closed when
@@ -971,8 +975,10 @@
\item[{\tt gettitle()}]
Returns the window's title string.
\item[{\tt getdocsize()}]
+\begin{sloppypar}
Returns a pair of integers giving the size of the document as set by
{\tt setdocsize()}.
+\end{sloppypar}
\item[{\tt getorigin()}]
Returns a pair of integers giving the origin of the window with respect
to the document.
@@ -985,6 +991,7 @@
\item[{\tt scroll(rect,~point)}]
Scrolls the given rectangle by the vector given by the point.
\item[{\tt setwincursor(name)}]
+\begin{sloppypar}
Sets the window cursor to a cursor of the given name.
It raises the
{\tt Runtime\-Error}
@@ -998,6 +1005,7 @@
{\tt 'plus'}.
On X11, there are many more (see
{\tt <X11/cursorfont.h>}).
+\end{sloppypar}
\item[{\tt setdocsize(point)}]
Sets the size of the drawing document.
\item[{\tt setorigin(point)}]
@@ -1233,11 +1241,11 @@
and
{\em a2c}(U).
For example:
-\begin{code}\begin{verbatim}
+\bcode\begin{verbatim}
>>> amoeba.name_lookup('/profile/cap')
aa:1c:95:52:6a:fa/14(ff)/8e:ba:5b:8:11:1a
>>>
-\end{verbatim}\end{code}
+\end{verbatim}\ecode
The following methods are defined for capability objects.
\begin{description}
\item[{\tt dir\_list()}]
@@ -1254,6 +1262,7 @@
Returns the size of a bullet file.
\item[{\tt dir\_append(), dir\_delete(), dir\_lookup(), dir\_replace()}]
%.br
+\itembreak
Like the corresponding
{\tt name\_*}
functions, but with a path relative to the capability.
@@ -1318,10 +1327,12 @@
\item[{\tt start\_playing(chunk)}, {\tt wait\_playing()},
{\tt stop\_playing()}, {\tt poll\_playing()}]
%.br
+\begin{sloppypar}
Similar but for output.
{\tt stop\_playing()}
returns a lower bound for the number of bytes actually played (not very
accurate).
+\end{sloppypar}
\end{description}
The following operations do not affect the audio device but are
@@ -1347,10 +1358,12 @@
a list containing the numeric values of the samples.
\item[{\tt num2chr(list)}]
%.br
+\begin{sloppypar}
Converts a list as returned by
{\tt chr2num()}
back to a buffer acceptable by
{\tt write()}.
+\end{sloppypar}
\end{description}
\subsection{Built-in Module {\tt gl}}
@@ -1382,22 +1395,24 @@
All arrays are represented by one-dimensional {\Python} lists.
In most cases, tuples are also allowed.
\item
+\begin{sloppypar}
All string and character arguments are represented by {\Python} strings,
-e.g.,
+for instance,
{\tt winopen('Hi~There!')}
and
{\tt rotate(900,~'z')}.
+\end{sloppypar}
\item
All (short, long, unsigned) integer arguments or return values that are
only used to specify the length of an array argument are omitted.
For example, the C call
-\begin{code}\begin{verbatim}
+\bcode\begin{verbatim}
lmdef(deftype, index, np, props)
-\end{verbatim}\end{code}
+\end{verbatim}\ecode
is translated to {\Python} as
-\begin{code}\begin{verbatim}
+\bcode\begin{verbatim}
lmdef(deftype, index, props)
-\end{verbatim}\end{code}
+\end{verbatim}\ecode
\item
Output arguments are omitted from the argument list; they are
transmitted as function return values instead.
@@ -1406,13 +1421,13 @@
because of the previous rule) and an output argument, the return value
comes first in the tuple.
Examples: the C call
-\begin{code}\begin{verbatim}
+\bcode\begin{verbatim}
getmcolor(i, &red, &green, &blue)
-\end{verbatim}\end{code}
+\end{verbatim}\ecode
is translated to {\Python} as
-\begin{code}\begin{verbatim}
+\bcode\begin{verbatim}
red, green, blue = getmcolor(i)
-\end{verbatim}\end{code}
+\end{verbatim}\ecode
\end{itemize}
The following functions are non-standard or have special argument
@@ -1454,6 +1469,7 @@
but the pairs have the point first and the normal second.
\item[{\tt nurbssurface(s\_k[], t\_k[], ctl[][], s\_ord, t\_ord, type)}]
%.br
+\itembreak
Defines a nurbs surface.
The dimensions of
{\tt ctl[][]}
@@ -1486,7 +1502,7 @@
\end{description}
Here is a tiny but complete example GL program in {\Python}:
-\begin{code}\begin{verbatim}
+\bcode\begin{verbatim}
import gl, GL, time
def main():
@@ -1508,15 +1524,14 @@
time.sleep(5)
main()
-\end{verbatim}\end{code}
+\end{verbatim}\ecode
\subsection{Built-in Module {\tt pnl}}
This module provides access to the
{\em Panel Library}
-built by NASA Ames (write to
-{\tt panel-request@nas.nasa.gov}
-to get it).
+built by NASA Ames (to get it, send e-mail to
+{\tt panel-request@nas.nasa.gov}).
All access to it should be done through the standard module
{\tt panel},
which transparantly exports most functions from
@@ -1775,7 +1790,7 @@
The options occur in the list in the same order in which they were
found, thus allowing multiple occurrences.
Example:
-\begin{code}\begin{verbatim}
+\bcode\begin{verbatim}
>>> import getopt, string
>>> args = string.split('-a -b -cfoo -d bar a1 a2')
>>> args
@@ -1786,7 +1801,7 @@
>>> args
['a1', 'a2']
>>>
-\end{verbatim}\end{code}
+\end{verbatim}\ecode
The exception
{\tt getopt.error = 'getopt error'}
is raised when an unrecognized option is found in the argument list or
@@ -1836,10 +1851,10 @@
and selection types ({\tt WS\_PRIMARY} etc.).
Read the file for details.
Suggested usage is
-\begin{code}\begin{verbatim}
+\bcode\begin{verbatim}
>>> from stdwinevents import *
>>>
-\end{verbatim}\end{code}
+\end{verbatim}\ecode
\subsection{Standard Module {\tt rect}}
@@ -1848,9 +1863,9 @@
{\tt stdwin}:
a pair of points, where a point is a pair of integers.
For example, the rectangle
-\begin{code}\begin{verbatim}
+\bcode\begin{verbatim}
(10, 20), (90, 80)
-\end{verbatim}\end{code}
+\end{verbatim}\ecode
is a rectangle whose left, top, right and bottom edges are 10, 20, 90
and 80, respectively.
Note that the positive vertical axis points down (as in
@@ -1868,7 +1883,7 @@
%.br
The rectangle returned when some operations return an empty result.
This makes it possible to quickly check whether a result is empty:
-\begin{code}\begin{verbatim}
+\bcode\begin{verbatim}
>>> import rect
>>> r1 = (10, 20), (90, 80)
>>> r2 = (0, 0), (10, 20)
@@ -1876,7 +1891,7 @@
>>> if r3 is rect.empty: print 'Empty intersection'
Empty intersection
>>>
-\end{verbatim}\end{code}
+\end{verbatim}\ecode
\item[{\tt is\_empty(r)}]
%.br
Returns true if the given rectangle is empty.
diff --git a/Doc/lib/lib.tex b/Doc/lib/lib.tex
index f126c8f..406a734 100644
--- a/Doc/lib/lib.tex
+++ b/Doc/lib/lib.tex
@@ -1,9 +1,12 @@
% Format this file with latex.
-\documentstyle[palatino,11pt,myformat]{article}
-%\documentstyle[11pt,myformat]{article}
+%\documentstyle[palatino,11pt,myformat]{article}
+\documentstyle[11pt,myformat]{article}
-\sloppy
+% A command to force the text after an item to start on a new line
+\newcommand{\itembreak}{
+ \mbox{}\\*[0mm]
+}
\title{\bf
Python Library Reference \\
@@ -244,7 +247,7 @@
\end{description}
A small example using a dictionary:
-\begin{code}\begin{verbatim}
+\bcode\begin{verbatim}
>>> tel = {}
>>> tel['jack'] = 4098
>>> tel['sape'] = 4139
@@ -262,7 +265,7 @@
>>> tel.has_key('guido')
1
>>>
-\end{verbatim}\end{code}
+\end{verbatim}\ecode
\subsubsection{Other Built-in Types}
The interpreter supports several other kinds of objects.
@@ -405,30 +408,30 @@
With a module object as argument, it returns the sorted list of names in
that module's global symbol table.
For example:
-\begin{code}\begin{verbatim}
+\bcode\begin{verbatim}
>>> import sys
>>> dir()
['sys']
>>> dir(sys)
['argv', 'exit', 'modules', 'path', 'stderr', 'stdin', 'stdout']
>>>
-\end{verbatim}\end{code}
+\end{verbatim}\ecode
\item[{\tt divmod(a, b)}]
%.br
Takes two integers as arguments and returns a pair of integers
consisting of their quotient and remainder.
For
-\begin{code}\begin{verbatim}
+\bcode\begin{verbatim}
q, r = divmod(a, b)
-\end{verbatim}\end{code}
+\end{verbatim}\ecode
the invariants are:
-\begin{code}\begin{verbatim}
+\bcode\begin{verbatim}
a = q*b + r
abs(r) < abs(b)
r has the same sign as b
-\end{verbatim}\end{code}
+\end{verbatim}\ecode
For example:
-\begin{code}\begin{verbatim}
+\bcode\begin{verbatim}
>>> divmod(100, 7)
(14, 2)
>>> divmod(-100, 7)
@@ -438,7 +441,7 @@
>>> divmod(-100, -7)
(14, -2)
>>>
-\end{verbatim}\end{code}
+\end{verbatim}\ecode
\item[{\tt eval(s)}]
Takes a string as argument and parses and evaluates it as a {\Python}
expression.
@@ -446,12 +449,12 @@
tables.
Syntax errors are reported as exceptions.
For example:
-\begin{code}\begin{verbatim}
+\bcode\begin{verbatim}
>>> x = 1
>>> eval('x+1')
2
>>>
-\end{verbatim}\end{code}
+\end{verbatim}\ecode
\item[{\tt exec(s)}]
Takes a string as argument and parses and evaluates it as a sequence of
{\Python} statements.
@@ -460,13 +463,13 @@
tables.
Syntax errors are reported as exceptions.
For example:
-\begin{code}\begin{verbatim}
+\bcode\begin{verbatim}
>>> x = 1
>>> exec('x = x+1\n')
>>> x
2
>>>
-\end{verbatim}\end{code}
+\end{verbatim}\ecode
\item[{\tt float(x)}]
Converts a number to floating point.
The argument may be an integer or floating point number.
@@ -511,7 +514,7 @@
work as expected, but don't specify a zero step.
The resulting list may be empty.
For example:
-\begin{code}\begin{verbatim}
+\bcode\begin{verbatim}
>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(1, 1+10)
@@ -527,7 +530,7 @@
>>> range(1, 0)
[]
>>>
-\end{verbatim}\end{code}
+\end{verbatim}\ecode
\item[{\tt raw\_input(s)}]
%.br
The argument is optional; if present, it is written to standard output
@@ -536,12 +539,12 @@
(stripping a trailing newline), and returns that.
EOF is reported as an exception.
For example:
-\begin{code}\begin{verbatim}
+\bcode\begin{verbatim}
>>> raw_input('Type anything: ')
Type anything: Teenage Mutant Ninja Turtles
'Teenage Mutant Ninja Turtles'
>>>
-\end{verbatim}\end{code}
+\end{verbatim}\ecode
\item[{\tt type(x)}]
Returns the type of an object.
Types are objects themselves:
@@ -954,9 +957,10 @@
\item[{\tt textwidth(str)}]
%.br
Return the width in bits of the string when drawn in the current font.
-\subsubsection{Window Object Methods}
\end{description}
+\subsubsection{Window Object Methods}
+
Window objects are created by
{\tt stdwin.open()}.
There is no explicit function to close a window; windows are closed when
@@ -971,8 +975,10 @@
\item[{\tt gettitle()}]
Returns the window's title string.
\item[{\tt getdocsize()}]
+\begin{sloppypar}
Returns a pair of integers giving the size of the document as set by
{\tt setdocsize()}.
+\end{sloppypar}
\item[{\tt getorigin()}]
Returns a pair of integers giving the origin of the window with respect
to the document.
@@ -985,6 +991,7 @@
\item[{\tt scroll(rect,~point)}]
Scrolls the given rectangle by the vector given by the point.
\item[{\tt setwincursor(name)}]
+\begin{sloppypar}
Sets the window cursor to a cursor of the given name.
It raises the
{\tt Runtime\-Error}
@@ -998,6 +1005,7 @@
{\tt 'plus'}.
On X11, there are many more (see
{\tt <X11/cursorfont.h>}).
+\end{sloppypar}
\item[{\tt setdocsize(point)}]
Sets the size of the drawing document.
\item[{\tt setorigin(point)}]
@@ -1233,11 +1241,11 @@
and
{\em a2c}(U).
For example:
-\begin{code}\begin{verbatim}
+\bcode\begin{verbatim}
>>> amoeba.name_lookup('/profile/cap')
aa:1c:95:52:6a:fa/14(ff)/8e:ba:5b:8:11:1a
>>>
-\end{verbatim}\end{code}
+\end{verbatim}\ecode
The following methods are defined for capability objects.
\begin{description}
\item[{\tt dir\_list()}]
@@ -1254,6 +1262,7 @@
Returns the size of a bullet file.
\item[{\tt dir\_append(), dir\_delete(), dir\_lookup(), dir\_replace()}]
%.br
+\itembreak
Like the corresponding
{\tt name\_*}
functions, but with a path relative to the capability.
@@ -1318,10 +1327,12 @@
\item[{\tt start\_playing(chunk)}, {\tt wait\_playing()},
{\tt stop\_playing()}, {\tt poll\_playing()}]
%.br
+\begin{sloppypar}
Similar but for output.
{\tt stop\_playing()}
returns a lower bound for the number of bytes actually played (not very
accurate).
+\end{sloppypar}
\end{description}
The following operations do not affect the audio device but are
@@ -1347,10 +1358,12 @@
a list containing the numeric values of the samples.
\item[{\tt num2chr(list)}]
%.br
+\begin{sloppypar}
Converts a list as returned by
{\tt chr2num()}
back to a buffer acceptable by
{\tt write()}.
+\end{sloppypar}
\end{description}
\subsection{Built-in Module {\tt gl}}
@@ -1382,22 +1395,24 @@
All arrays are represented by one-dimensional {\Python} lists.
In most cases, tuples are also allowed.
\item
+\begin{sloppypar}
All string and character arguments are represented by {\Python} strings,
-e.g.,
+for instance,
{\tt winopen('Hi~There!')}
and
{\tt rotate(900,~'z')}.
+\end{sloppypar}
\item
All (short, long, unsigned) integer arguments or return values that are
only used to specify the length of an array argument are omitted.
For example, the C call
-\begin{code}\begin{verbatim}
+\bcode\begin{verbatim}
lmdef(deftype, index, np, props)
-\end{verbatim}\end{code}
+\end{verbatim}\ecode
is translated to {\Python} as
-\begin{code}\begin{verbatim}
+\bcode\begin{verbatim}
lmdef(deftype, index, props)
-\end{verbatim}\end{code}
+\end{verbatim}\ecode
\item
Output arguments are omitted from the argument list; they are
transmitted as function return values instead.
@@ -1406,13 +1421,13 @@
because of the previous rule) and an output argument, the return value
comes first in the tuple.
Examples: the C call
-\begin{code}\begin{verbatim}
+\bcode\begin{verbatim}
getmcolor(i, &red, &green, &blue)
-\end{verbatim}\end{code}
+\end{verbatim}\ecode
is translated to {\Python} as
-\begin{code}\begin{verbatim}
+\bcode\begin{verbatim}
red, green, blue = getmcolor(i)
-\end{verbatim}\end{code}
+\end{verbatim}\ecode
\end{itemize}
The following functions are non-standard or have special argument
@@ -1454,6 +1469,7 @@
but the pairs have the point first and the normal second.
\item[{\tt nurbssurface(s\_k[], t\_k[], ctl[][], s\_ord, t\_ord, type)}]
%.br
+\itembreak
Defines a nurbs surface.
The dimensions of
{\tt ctl[][]}
@@ -1486,7 +1502,7 @@
\end{description}
Here is a tiny but complete example GL program in {\Python}:
-\begin{code}\begin{verbatim}
+\bcode\begin{verbatim}
import gl, GL, time
def main():
@@ -1508,15 +1524,14 @@
time.sleep(5)
main()
-\end{verbatim}\end{code}
+\end{verbatim}\ecode
\subsection{Built-in Module {\tt pnl}}
This module provides access to the
{\em Panel Library}
-built by NASA Ames (write to
-{\tt panel-request@nas.nasa.gov}
-to get it).
+built by NASA Ames (to get it, send e-mail to
+{\tt panel-request@nas.nasa.gov}).
All access to it should be done through the standard module
{\tt panel},
which transparantly exports most functions from
@@ -1775,7 +1790,7 @@
The options occur in the list in the same order in which they were
found, thus allowing multiple occurrences.
Example:
-\begin{code}\begin{verbatim}
+\bcode\begin{verbatim}
>>> import getopt, string
>>> args = string.split('-a -b -cfoo -d bar a1 a2')
>>> args
@@ -1786,7 +1801,7 @@
>>> args
['a1', 'a2']
>>>
-\end{verbatim}\end{code}
+\end{verbatim}\ecode
The exception
{\tt getopt.error = 'getopt error'}
is raised when an unrecognized option is found in the argument list or
@@ -1836,10 +1851,10 @@
and selection types ({\tt WS\_PRIMARY} etc.).
Read the file for details.
Suggested usage is
-\begin{code}\begin{verbatim}
+\bcode\begin{verbatim}
>>> from stdwinevents import *
>>>
-\end{verbatim}\end{code}
+\end{verbatim}\ecode
\subsection{Standard Module {\tt rect}}
@@ -1848,9 +1863,9 @@
{\tt stdwin}:
a pair of points, where a point is a pair of integers.
For example, the rectangle
-\begin{code}\begin{verbatim}
+\bcode\begin{verbatim}
(10, 20), (90, 80)
-\end{verbatim}\end{code}
+\end{verbatim}\ecode
is a rectangle whose left, top, right and bottom edges are 10, 20, 90
and 80, respectively.
Note that the positive vertical axis points down (as in
@@ -1868,7 +1883,7 @@
%.br
The rectangle returned when some operations return an empty result.
This makes it possible to quickly check whether a result is empty:
-\begin{code}\begin{verbatim}
+\bcode\begin{verbatim}
>>> import rect
>>> r1 = (10, 20), (90, 80)
>>> r2 = (0, 0), (10, 20)
@@ -1876,7 +1891,7 @@
>>> if r3 is rect.empty: print 'Empty intersection'
Empty intersection
>>>
-\end{verbatim}\end{code}
+\end{verbatim}\ecode
\item[{\tt is\_empty(r)}]
%.br
Returns true if the given rectangle is empty.