1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%A help.tex GAP documentation Frank Lbeck
%%
%A @(#)$Id: help.tex,v 4.19.2.1 2004/01/27 11:39:26 stefan Exp $
%%
%Y Copyright 1990-2001, Lehrstuhl D fuer Mathematik, RWTH Aachen, Germany
%%
%% Original version by Martin Schoenert.
%%
\Chapter{The Help System}
This chapter describes the {\GAP} help system. The help system lets you read
the documentation interactively.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Section{Invoking the Help}
The basic command to read {\GAP}'s documentation from within a {\GAP}
session is as follows.
\>`?[<book>:][?]<topic>'{getting help}
For an explanation and some examples see~"tut:Help".
Note that the first question mark must appear in the *first position* after
the `gap> ' prompt. The search strings <book> and <topic> are normalized in
a certain way (see the end of this section for details)
before the search starts. This makes the search case
insensitive and there can be arbitrary white space after the first question
mark.
%% Throw away? (FL)
%% The help command `?' displays the section with the name <section> on the
%% screen. For example `?Help' will display this section on the screen.
%% You should not type in the single quotes. They are only used in help
%% sections to delimit text that you should enter into {\GAP} or that {\GAP}
%% prints in response. When the whole section has been displayed the normal
%% {\GAP} prompt `gap>' is shown and normal {\GAP} interaction resumes.
When there are several manual sections that match the query a numbered list
of topics is displayed. These matches can be accessed with `?<number>'.
%% Section~"Reading Sections" tells you what actions you can perform
%% while you are reading a section. You tell {\GAP} to display this
%% section by entering `?Reading Sections', without quotes.
%% Section~"Format of Sections" describes the format of sections and the
%% conventions used,
There are some further specially handled commands which start with
a question mark. They are explained in section~"Browsing through the
Sections".
As default {\GAP} shows the help sections as text in the terminal (window),
page by page if the shown text does not fit on the screen. But there are
several other choices to read (other formats of) the documents: via a viewer
for `dvi'-files (produced by {\TeX}) or files in Acrobat's `pdf'-format or
via a Web-browser. This is explained in section~"Changing the Help Viewer".
%% lists the commands you use to flip
%% through sections, "Redisplaying a Section" describes how to read a
%% section again, "Abbreviating Section Names" tells you how to avoid typing
%% the long section names, and "Help Index" describes the index command.
*Details of the string normalization process*
Here now is precisely how the search strings <book> and <topic> are
normalized before a search
starts: backslashes and double or single quotes are removed, parentheses and
braces are substituted by blanks, non-ASCII characters are considered as
ISO-latin1 characters and the accented letters are substituted by their
non-accented counterpart. Finally white space is normalized.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Isn't all this practically self-explatory? Throw away? (FL)
%% \Section{Reading Sections}
%%
%% \index{help!scrolling}
%% If the section is longer than the size of your screen, {\GAP} stops after
%% displaying a full screen and displays
%%
%% \begintt
%% -- <space> for more, <q> to quit --
%% \endtt
%%
%% If you press <space> {\GAP} displays the next full screen of lines of the
%% section and then stops again.
%% This goes on until the whole section has been displayed,
%% at which point {\GAP} will return immediately to the main {\GAP} loop.
%% Pressing `f' has the same effect as <space>.
%%
%% You can also press `b' which will scroll back to the *previous* full screen
%% of lines of the section.
%% If you press `b' when {\GAP} is displaying the top of a section,
%% {\GAP} will ring the bell.
%%
%% You can also press `q' to quit and return immediately back to the main
%% {\GAP} loop without reading the rest of the section.
%%
%% The size of the screen is set using information obtained from the
%% operating system, if possible, or to $24$ lines if not.
%% If this does not produce the correct results for your system,
%% you may wish to set the number of lines with the `-y <rows>' option
%% (see~"Command Line Options") when you start {\GAP}.
%%
%%
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% This should not be documented as a (compulsory) format of the sections,
%% to allow other Help formats. Shouldn't a section showed by the help
%% have a format which doesn't need further long explanations? (FL)
%%%%%%%%% Throw this away ??? The essential information is contained
%%%%%%%%% in "Ref: Manual Conventions" (FL)
%% \Section{Format of Sections}
%%
%% \index{help!format}
%% This section describes the format of sections when they are displayed on
%% the screen and the special conventions used.
%% For general conventions about manual sections and the format of sections
%% in the printed manual, see~"Manual Conventions".
%%
%% As you can see, {\GAP} prints a header line
%% containing the name of the section on the left and the name of the
%% chapter on the right.
%%
%% (If this header line ends in `(not loaded)' the documentation belongs to a
%% package, which has not yet been loaded. See section~"Loading a GAP Package"
%% for further information.)
%%
%% \begintt
%% <text>
%% \endtt
%% Text enclosed in angle brackets is used for arguments in the descriptions
%% of functions and for other place holders. It means that you should not
%% actually enter this text into {\GAP} but replace it by appropriate
%% text depending on what you want to do. For example when we write that
%% you should enter `?<section>' to see the section with the name <section>,
%% <section> serves as a place holder, indicating that you can enter the
%% name of the section that you want to see at this place.
%%
%% \begintt
%% `text'
%% \endtt
%% Text enclosed in single quotes is used for names of variables and
%% functions and other text that you may actually enter into your computer
%% and see on your screen. The text enclosed in single quotes may contain
%% place holders enclosed in angle brackets as described above. For example
%% when the help text for `IsPrime' says that the form of the call is
%% `IsPrime( <n> )' this means that you should actually
%% enter the strings ``IsPrime('' and ``)'', without the quotes,
%% but replace the `<n>' with the number (or expression)
%% that you want to test.
%%
%% \begintt
%% "text"
%% \endtt
%% Text enclosed in double quotes is used for cross references to other
%% parts of the manual. So the text inside the double quotes is the name of
%% another section of the manual. This is used to direct you to other
%% sections that describe a topic or a function used in this section. So,
%% for example, "Browsing through the Sections" is a cross reference to the next
%% section.
%%
%% \begintt
%% > Oper( <arg1>, <arg2>[, <opt>] ) F
%% \endtt
%% starts a subsection on the command `Oper' that takes two arguments <arg1>
%% and <arg2> and an optional third argument <opt>.
%%
%% The letter `F' at the end
%% indicates that the command is a simple function.
%% The letters `A', `P', `O', `C', `R', and `V' indicate
%% ``Attribute'', ``Property'', ``Operation'', ``Category'', ``Representation''
%% (see Chapter~"Types of Objects"), or ``Variable'', respectively.
%%
%% `_' and `^'
%%
%% In mathematical formulas the underscore and the caret are used to denote
%% subscription and superscription. Ordinarily they apply only to the very
%% next character following, unless a whole expression enclosed in
%% parentheses follows. So, for example, `x_1^(i+1)' denotes the variable `x'
%% with subscript 1 raised to the power `i+1'.
%%
%% Longer examples are usually paragraphs of their own.
%% Everything on the lines with the prompts `gap>' and `>', except
%% the prompts themselves of course, is the input you have to type;
%% everything else is {\GAP}'s response.
%%
%% \begintt
%% gap> ?Format of Sections
%% Format of Sections ______________________________________ Environment
%%
%% This section describes the format of sections when they are displayed
%% on the screen and the special conventions used.
%% ...
%% \endtt
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Section{Browsing through the Sections}
%% The help sections are organized like a book into chapters. This should
%% not surprise you, since the same source is used both for the printed
%% manual and the online help. Just as you can flip through the pages of a
%% book there are special commands to browse through the help sections.
Help books for {\GAP} are organized in chapters, sections and subsections.
There are a few special commands starting with a question mark (in the first
position after the `gap> ' prompt) which allow browsing a book section or
chapter wise.
\>`?>'{browsing forward}
\>`?\<'{browsing backwards}
The two help commands `?\<' and `?>' allow to browse through a whole help
book. `?\<' displays the section preceding the previously shown section, and
`?>' takes you to the section following the previously shown one.
\>`?>>'{browsing forward one chapter}
\>`?\<\<'{browsing backwards one chapter}
`?\<\<' takes you back to the first section of the current chapter, which
gives an overview of the sections described in this chapter. If you are
already in this section `?\<\<' takes you to the first section of the
previous chapter. `?>>' takes you to the first section of the next chapter.
\>`?-'{browsing the previous section browsed}
\>`?+'{browsing the next section browsed}
{\GAP} remembers the last few sections that you have read. `?-' takes you to
the one that you have read before the current one, and displays it again.
Further applications of `?-' take you further back in this history. `?+'
reverses this process, i.e., it takes you back to the section that you have
read after the current one. It is important to note that `?-' and `?+' do
not alter the history like the other help commands.
\>`?books'{list of available books}
This command shows a list of books which are currently known to the help
system. For each book there is a short name which is used with the <book>
part of the basic help query and there is a long name which hopefully tells
you what this book is about.
A short name which ends in `(not loaded)' refers to a {\GAP} package
whose documentation is loaded but which needs a call of `LoadPackage'
(see "LoadPackage") before you can use the described functions.
\>`?[<book>:]sections'{table of sections for help books}
\>`?[<book>:][chapters]'{table of chapters for help books}
These commands show tables of content for all available, respectively the
matching books.
\>`?'{redisplay a help section}
\>`?\&'{redisplay with next help viewer}
These commands redisplay the last shown help section. In the form `?\&' the
next preferred help viewer is used for the display (provided one has chosen
several viewers), see~"SetHelpViewer" below.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Section{Changing the Help Viewer}
\index{document formats (text, dvi, ps, pdf, HTML)}
Books of the {\GAP} help system can be available in several formats.
Currently the following formats occur (not all of them may be available for
all books):
\beginitems
text &
This is used for display in the terminal window in which {\GAP} is
running. Complicated mathematical expressions may not be well readable in
this format.
dvi &
The standard output format of {\TeX}. Only useful if {\TeX} is installed
on your system. Can be used for printing a help book and onscreen reading.
Some books include hyperlink information in this format which can be
useful for onscreen reading.
ps &
Postscript format. Can be printed on most systems and also be used with an
onscreen viewer.
pdf &
Adobe's `pdf'-format. Can also be used for printing and onscreen reading
on most current systems (with freely available software). Some books have
hyperlink information included in this format.
HTML &
The format of Web-pages. Can be used with any Web-browser. There may be
hyperlink information available which allows a convenient browsing through
the book via cross-references. This format also has the problem that
complicated formulae may be not well readable since there is no syntax for
formulae in HTML. Some books use special symbol fonts for formulae and
need an appropriate Web-browser for correct display.
\enditems
Depending on your operating system and available additional software you can
use several of these formats with {\GAP}'s online help. This is configured
with the following command.
\>SetHelpViewer( <viewer1>, <viewer2>, ... )
This command takes an arbitrary number of arguments which must be strings
describing a viewer. The recognized viewer are explained below. A call with
no arguments shows the current setting.
The first given arguments are those with higher priority. So, if a help
section is available in the format needed by <viewer1>, this viewer is used.
If not, availability of the format for <viewer2> is checked and so on.
Recall that the command `?\&' displays the last seen section again but with
the next possible viewer in your list, see~"redisplay with next help
viewer".
The viewer `\"screen\"' (see below) is always silently appended since we
assume that each help book is available in text format.
If you want to change the default setting you will probably put a call of
`SetHelpViewer' into your `.gaprc' file (see~"The .gaprc File").
\beginitems
`\"screen\"' &
This is the default setting. The help is shown in text-format using the
`Pager' command explained in the next section~"Pager". (Hint: Some
formatting procedures assume that your terminal displays at least 80
characters per line, if this is not the case some sections may look very
bad. Furthermore the terminal (window) should use a fixed width font and
we suggest to take one with `ISO-8859-1' (also called `latin1') encoding.
`\"netscape\"' &
If a book is available in HTML-format this is shown using the (already
running) `netscape' Web-browser. Note, that for some books the browser
must be configured to use symbol fonts.
`\"lynx\"' &
If a book is available in HTML-format this is shown using the text based
`lynx' Web-browser inside the terminal running {\GAP}. Formulae which use
symbol fonts may be unreadable.
`\"internet config\"' &
(for Apple Macintosh with MacOS) If a book is available in HTML-format
this is shown in a Web browser. The web browser used is the program
set to handle the `file' protocol in the program `Internet Config' (System
7 and 8) resp. the `Internet' control panel (System 9 and System X).
For some browsers (e.g., Internet Explorer), you may have enter the
GAP command
`HELP_MAC_PROTOCOL := \"file:/\";'
for this to work correctly. If you wish to use the online html version of
the manual, you may use
`HELP_EXTERNAL_URL := \"http://www.gap-system.org/\";'. Note that
`HELP_EXTERNAL_URL := \"\";' switches back to the local html files.
It may be a good idea to put the relevant line in the `gap.rc'
file (see "The .gaprc file").
`\"xdvi\"' &
(on X-windows systems) If a book is available in dvi-format it is shown
with the onscreen viewer program `xdvi'. (Of course, `xdvi' and {\TeX}
must be installed on your system.) This program doesn't allow remote
commands, so usually for each shown topic a new `xdvi' is launched. You
can try to compile the program `GAPPATH/etc/xrmtcmd.c' and to put the
executable `xrmtcmd' into your `PATH'. Then this viewer tries to reuse one
running `xdvi' for each help book.
`\"xpdf\"' &
(on X-windows systems) If a book is available in pdf-format it is shown
with the onscreen viewer program `xpdf' (which must be installed on your
system). This is a nice program, once it is running it is reused by
{\GAP} for the next displays of help sections. (Hint: On many systems
`xpdf' shows a very bad display quality, this is due to a wrong or
missing font configuration. One needs to set certain X-resources; for
more details follow the `Problems' link at
\URL{http://www.foolabs.com/xpdf/}
`\"acroread\"' &
If a book is available in pdf-format it is shown with the onscreen viewer
program `acroread' (which must be available on your system). This program
doesn't allow remote commands or startup with a given page. Therefore the
page numbers you have to visit are just printed on the screen. When you
are looking at several sections of the same book, this viewer assumes that
the acroread window still exists. When you go to another book a new
acroread window is launched.
`\"less\"' or `"more"' &
This is the same as `\"screen\"' but additionally the `PAGER' and
`PAGER_OPTIONS' variables are set, see the next section~"The Pager
Command" for more details.
\enditems
Please, send ideas for further viewer commands to
\Mailto{support@gap-system.org}.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Section{The Pager Command}
{\GAP} contains a builtin pager which shows a text string which doesn't fit
on the screen page by page. Its functionality is very rudimentary and
self-explaining. This is because (at least under UNIX) there are powerful
external standard programs which do this job.
\>Pager( <lines> )
This function can be used to display a text on screen using a pager, i.e.,
the text is shown page by page.
There is a default builtin pager in GAP which has very limited capabilities
but should work on any system.
At least on a UNIX system one should use an external pager program like
`less' or `more'. {\GAP} assumes that this program has a command line option
`+nr' which starts the display of the text with line number `nr'.
Which pager is used can be controlled by setting the variable `PAGER'. The
default setting is `PAGER := \"builtin\";' which means that the internal
pager is used.
On UNIX systems you probably want to set `PAGER := "less";' or `PAGER :=
"more";', you can do this for example in your `.gaprc' file. In that case
you can also tell {\GAP} a list of standard options for the external pager.
These are specified as list of strings in the variable `PAGER_OPTIONS'.
Example:
\begintt
PAGER := "less";
PAGER_OPTIONS := ["-f", "-r", "-a", "-i", "-M", "-j2"];
\endtt
The argument <lines> can have one of the following forms:
\beginlist
\item{(1)} a string (i.e., lines are separated by newline characters)
\item{(2)} a list of strings (without newline characters)
which are interpreted as lines of the text to be shown
\item{(3)} a record with component `.lines' as in (1) or (2) and
optional further components
\endlist
In case~(3) currently the following additional components are used:
\beginitems
`.formatted' &
can be `false' or `true'. If set to `true' the builtin pager tries to show
the text exactly as it is given (avoiding {\GAP}s automatic line breaking)
`.start' &
must be a positive integer. This is interpreted as the number of the first
line shown by the pager (one may see the beginning of the text via back
scrolling).
\enditems
The `Pager' command is used by {\GAP}'s help system for displaying help
sections in text-format. But, of course, it may be used for other purposes
as well.
%notest
\beginexample
gap> s6 := SymmetricGroup(6);;
gap> words := ["This", "is", "a", "very", "stupid", "example"];;
gap> l := List(s6, p-> Permuted(words, p));;
gap> Pager(List(l, a-> JoinStringsWithSeparator(a," ")));;
\endexample
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% \Section{Changing the Way the Help Pages are Displayed}
%%
%% \index{HTML}
%% \index{netscape}\index{lynx}\index{internet config}
%% \index{less}\index{pager}
%%
%% If you have installed an html version of the manual you can
%% alternatively use an html browser to display the manual sections. The
%% command
%%
%% \>SetHelpViewer(<device>)
%%
%% will select a method described by the string <device> to display the help
%% pages online. Currently <device> can be `"screen"' for the default built-in
%% text browser, `"less"' (only under UNIX) to use `less' for paging,
%% `"netscape"' for the netscape HTML browser and `"lynx"' for the
%% lynx HTML browser. Both HTML browsers will only work under UNIX.
%%
%% On an Apple Macintosh you can use an HTML browser by calling `SetHelpViewer'
%% with the parameter `"Internet Config"'.
%% See section~"Features of GAP for MacOS" for details about this.
%%
%% If you want the HTML help to be the default, you should call this function
%% in your `.gaprc' file (see the sections on operating
%% system dependent features in chapter "Installing GAP").
%%
%% Note that you need to set up the `symbol' font properly in your web browser
%% to get a correct display of mathematical formulae (see section~"HTML Font
%% Setup").
%%
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% \Section{Redisplaying a Section}
%%
%% \index{help!redisplaying}
%%
%% \>`?'{browsing the same section again}
%%
%% The help command `?' followed by no section name redisplays the last help
%% section again. So if you reach the bottom of a long help section and have
%% already forgotten what was mentioned at the beginning, or, for example, the
%% examples do not seem to agree with your interpretation of the
%% explanations, use `?' to read the whole section again from the beginning.
%%
%% When `?' is used before any section has been read, {\GAP} displays a
%% `Welcome to GAP'.
%%
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% \Section{Abbreviating Section Names}
%%
%% \index{help!abbreviating}
%% Upper and lower case in <section> are not distinguished, so typing either
%% `?Abbreviating Section Names' or `?abbreviating section names' will show
%% the section you are currently reading.
%%
%% Each word in <section> may be abbreviated. So instead of typing
%% `?abbreviating section names' you may also type `?abb sec nam', or even `?a
%% s n'. You must not omit the spaces separating the words. For each word in
%% the section name you must give at least the first character. As another
%% example you may type `?el oper for int' instead of `?elementary operations
%% for integers', which is especially handy when you can not remember whether
%% it was `operations' or `operators'.
%%
%% If an abbreviation matches multiple section names a list of all these
%% section names is displayed.
%%
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% \Section{Help Index}
%%
%% \>`??<topic>'{list help topics}
%%
%% The operator `??' looks up <topic> in {\GAP}'s index and prints all the
%% index entries that contain the substring <topic>.
%% Then you can decide which section is the one you are actually interested
%% in and request this one.
%%
%% \begintt
%% gap> ??read
%% Help: several entries match this topic
%% [1] reference:read
%% [2] reference:reading sections
%% [3] reference:readlib
%% [4] reference:isreadablefile
%% [5] reference:read
%% ...
%% \endtt
%%
%% The first part of each line is a reference number. Then follows the
%% part of the manual which contains the section and finally the actual
%% name of the (sub)section. All names are converted to lower case.
%%
%% The order of the sections corresponds to their order in the
%% {\GAP} manual, so that related sections should be adjacent.
%%
%% You can then either refer to the desired subsection by its name or simply
%% use `?<nr>' to look at the topic with the reference number <nr>. So in the
%% above example `?3' would display the section on `ReadLib'.
%%
%% When referring to sections by their name you can usually omit the part
%% of the manual unless several parts contain the same section names.
%%
%% If there are several subsections which have exactly the same name, a number
%% in parentheses is added to the name to distinguish these.
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%E
%%
|