summaryrefslogtreecommitdiff
path: root/Build/source/utils/xindy/doc/style-tutorial-1.html
blob: 890b1ecd8b9dedea7060626d8fb643936995569d (plain)
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
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
 <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
 <TITLE>XINDY Style File Tutorial: About xindy</TITLE>
 <LINK HREF="style-tutorial-2.html" REL=next>

 <LINK HREF="style-tutorial.html#toc1" REL=contents>
</HEAD>
<BODY>
<A HREF="style-tutorial-2.html">Next</A>
Previous
<A HREF="style-tutorial.html#toc1">Contents</A>
<HR>
<H2><A NAME="s1">1. About <SF>xindy</SF></A></H2>

<P><SF>xindy</SF> means fle<B>x</B>ible <B>ind</B>exing s<B>y</B>stem. It is an
indexing system that can be used to generate book-like indexes for
arbitrary document preparation systems. This term includes systems
such as TeX [1] and LaTeX [2], the Nroff-family
or SGML-based systems (e.g. HTML) that process some kind of text and
generate indexing information. It is not fixed to any specific system,
but can be configured for a wide variety of purposes.
<P>Authors sometimes wish to include an index into their document, but
very often their document preparation systems aren't able to produce
indexes on their own, or the capabilities of the built-in indexers are
insufficient and produce ugly looking results. More often they use
separate specialized tools for this purpose, sometimes called
<EM>index processors</EM>.
<P>In comparison to other index processors <SF>xindy</SF> has several
powerful features that make it an ideal framework for describing and
generating complex indexes. Its most interesting features are
<P>
<DL>
<P>
<DT><B>Internationality</B><DD><P><SF>xindy</SF> can be configured to process indexes
for many languages with different letter sets and different sorting
rules. For example, many roman languages such as Italian, French,
Portuguese or Spanish contain accentuated letters such as &Agrave;,
&Aacute;, &ntilde;. Other languages from northern Europe have letters
like &Auml;, &Oslash;, &aelig; or &szlig; which often can't even be
processed by many index processors let alone sorting them correctly
into an index. The <SF>xindy</SF> system can be configured to process
these alphabets by defining <EM>sort</EM> and <EM>merge rules</EM> that allow
expressing language specific rules. One example of such a rule would
be
<P>
<BLOCKQUOTE><CODE>
<PRE>
(sort-rule "ä" "ae")
</PRE>
</CODE></BLOCKQUOTE>
<P>defining that a word containing the umlaut-a will be sorted as if it
contained the letters <CODE>ae</CODE> instead. This is one form of how the
umlaut-a ("ä") is sorted into german indexes. With an appropriate set
of rules on can express the complete rules of a specific language.
<P>
<DT><B>User Definable Location Types</B><DD><P>Locations are the entities an
index entry points to. Often used locations are <EM>page numbers</EM>,
<EM>section numbers</EM>, etc. <SF>xindy</SF> allows to define new kinds of
types to be composed of basic entities like arabic numbers, roman
numerals, letters, etc. which can be used to describe new index types.
Examples of these entities can be books that have a page numbering
scheme that starts from 1 for each new chapter resulting in page
numbers of the form <EM>1-13, 2-15, 2-20</EM>, etc. This type of locations
can often be found in computer manuals. A more complex structure is
represented by the locations <EM>Psalm 46, 1-8</EM> and <EM>Genesis 1,
31</EM>. Even the structure of bible verses can be described allowing
<SF>xindy</SF> to correctly sort and process indexes for documents with a
completely different structure.
<P>
<DT><B>Highly Configurable Markup</B><DD><P>Since a index processor is only one
component in a document preparation system it ought to fit smoothly
into the complete environment. Many text processing systems use the
concept of <EM>environments</EM> that can be used to describe the markup
of the text entities. Our approach is based on this concept which has
proved to be expressive enough for most applications. As an example
one can view systems such as TeX, SGML and its instance HTML, GNU
Info, RTF and the Nroff-familiy of document formatters. The markup of
an index can be defined for all of these systems in a very comfortable
though extremly powerful way.
<P>
</DL>
<P>
<P>
<P>
<HR>
<A HREF="style-tutorial-2.html">Next</A>
Previous
<A HREF="style-tutorial.html#toc1">Contents</A>
</BODY>
</HTML>