Skribe support indexes. One may accumulate all entries inside one
unique index or dispatch them amongst user declared indexes. Indexes
may be monolithic or split. They only differ in
the way they are rendered by the back-ends. For a split index a sectioning
based on the specific (e.g., "the first one") character of
index entries is deployed.
The function make-index
declares a new index.
For instance, the following Skribe expression declares an index named
*index1*:
Example:
(define *index1* (make-index "a new index"))
|
|
Ex. 22: Creation of a new index
This example produces no output but enables entries to be added to that
index. In general it is convenient to declare indexes before
the call to the document
function.
The function default-index
returns the default index
that pre-exists to all execution.
prototype |
(default-index) |
5.2 Adding entries to an index
|
The function index
adds a new entry into one existing
index and sets a mark in the text where the index will point to. It is
an error to add an entry into an index that is not already declared.
prototype |
(index [:ident] [:class "index" ] [:note] [:index] [:shape] [:url] name ) |
ident | html latex xml | The node identifier. |
class | html latex xml | The node class. |
index | | The name of the index whose index entry belongs to.
A value of #f means that the
default-index owns this entry. |
note | | An optional note added to the index entry. This note
will be displayed in the index printing. |
shape | | An optional shape to be used for rendering the entry. |
url | | An optional URL that is referenced in the index table
instead of the location of the index. |
name | The name of the entry. This must be a string. |
make-index default-index the-index |
The following expressions add entries to the index *index1*
:
Example:
[The identifier ,(code "Foo"),(index :index *index1* "Foo") is a usually
used as an example. When two identifiers have to used, frequently the
second choice is ,(code "Bar"),(index :index *index1* "Bar" :shape (it "Bar")).
When three are needed, some use ,(code "Baz")
,(index :index *index1* "Baz" :shape (it "Baz")).
This illustrates how to use identifier
,(index :index *index1* "Foo" :note "How to use Foo")
,(index :index *index1* "Foo" :note "How not to use Foo")
,(index :index *index1* "Fooz")
...]
|
|
Ex. 23: Adding entries to an index
The identifier
Foo
is a usually
used as an example. When two identifiers have to used, frequently the
second choice is
Bar
.
When three are needed, some use
Baz
.
This illustrates how to use identifier
...
There is no output associated with these expressions.
The function the-index
displays indexes in the produced
document.
prototype |
(the-index [:ident] [:class "the-index" ] [:split] [:char-offset 0 ] [:header-limit 50 ] [:column 1 ] index... ) |
ident | html latex xml | The node identifier. |
class | html latex xml | The node class. |
split | | If #t, character based sectioning is deployed.
Otherwise all the index entries are displayed one next to
the other. |
char-offset | | The character number to use when split is
required. This option may be useful when printing index whose
items share a common prefix. The
argument can be used to skip this prefix. |
header-limit | | The number of entries from which an index header
is introduced. |
column | | The number of columns of the index. |
index... | The indexes to be displayed. If index
is provided, the global index default-index
is printed. |
If the engine custom
index-page-ref
is true when a
index is rendered then, page reference framework is used instead of
a direct reference framework.
Example:
Ex. 24: Printing indexes
Produces:
See the Skribe global index for
a real life index example.