1texindy(1) xindy texindy(1)
2
3
4
6 texindy - create sorted and tagged index from raw LaTeX index
7
9 texindy [-V?h] [-qv] [-iglr] [-d magic] [-o outfile.ind] [-t log] \
10 [-L lang] [-C codepage] [-M module] [idx0 idx1 ...]
11
12 GNU-Style Long Options for Short Options:
13 -V / --version
14 -? / -h / --help
15 -q / --quiet
16 -v / --verbose
17 -i / --stdin
18 -g / --german
19 -l / --letter-ordering
20 -r / --no-ranges
21 -d / --debug (multiple times)
22 -o / --out-file
23 -t / --log-file
24 -L / --language
25 -C / --codepage
26 -M / --module (multiple times)
27 -I / --input-markup (supported: latex, xelatex, omega)
28
30 texindy is the LaTeX-specific command of xindy, the flexible indexing
31 system. It takes a raw index as input, and produces a merged, sorted
32 and tagged index. Merging, sorting, and tagging is controlled by xindy
33 modules, with a convenient set already preloaded.
34
35 Files with the raw index are passed as arguments. If no arguments are
36 passed, the raw index will be read from standard input.
37
38 A good introductionary description of texindy appears in the indexing
39 chapter of the LaTeX Companion (2nd ed.)
40
41 If you want to produce an index for LaTeX documents with special index
42 markup, the command xindy(1) is probably more of interest for you.
43
44 texindy is an approach to merge support for the make-rules framework,
45 own xindy modules (e.g., for special LaTeX commands in the index), and
46 a reasonable level of MakeIndex compatibility.
47
49 "--version" / -V
50 output version numbers of all relevant components and exit.
51
52 "--help" / -h / -?
53 output usage message with options explanation.
54
55 "--quiet" / -q
56 Don't output progress messages. Output only error messages.
57
58 "--verbose" / -v
59 Output verbose progress messages.
60
61 "--debug" magic / -d magic
62 Output debug messages, this option may be specified multiple times.
63 magic determines what is output:
64
65 magic remark
66 ------------------------------------------------------------
67 script internal progress messages of driver scripts
68 keep_tmpfiles don't discard temporary files
69 markup output markup trace, as explained in xindy manual
70 level=n log level, n is 0 (default), 1, 2, or 3
71
72 "--out-file" outfile.ind / -o outfile.ind
73 Output index to file outfile.ind. If this option is not passed, the
74 name of the output file is the base name of the first argument and
75 the file extension ind. If the raw index is read from standard
76 input, this option is mandatory.
77
78 "--log-file" log.ilg / -t log.ilg
79 Output log messages to file log.ilg. These log messages are
80 independent from the progress messages that you can influence with
81 "--debug" or "--verbose".
82
83 "--language" lang / -L lang
84 The index is sorted according to the rules of language lang. These
85 rules are encoded in a xindy module created by make-rules.
86
87 If no input encoding is specified via "--codepage" or enforced by
88 input markup, a xindy module for that language is searched with a
89 latin, a cp, an iso, ascii, or utf8 encoding, in that order.
90
91 "--codepage" enc / -C enc
92 There are two different situations and use cases for this option.
93
94 1. Input markup is "latex" (the default).
95
96 Then texindy's raw input is assumed to be encoded in LaTeX
97 Internal Character Representation (LICR). I.e., non-ASCII
98 characters are encoded as command sequences. This option tells
99 xindy the encoding it shall use for letter group headings.
100 (Additionally it specifies the encoding used internally for
101 sorting -- but that doesn't matter for the result.)
102
103 Only LICR encodings for Latin script alphabets are supported;
104 more precisely characters that are in LaTeX latin1, latin2, and
105 latin3 LICR encodings.
106
107 Even when you specify "utf8" as codepage, only these characters
108 will be known. But if you use non-Latin alphabets, you probably
109 use (or should use) XeLaTeX or LuaLaTeX and then you have a
110 different input markup.
111
112 2. Input markup is "xelatex" or "omega".
113
114 Then this option is ignored; codepage "utf8" is enforced.
115
116 texindy's raw input is assumed to be UTF-8 encoded, LICR is not
117 used.
118
119 "--module" module / -M module
120 Load the xindy module module.xdy. This option may be specified
121 multiple times. The modules are searched in the xindy search path
122 that can be changed with the environment variable
123 "XINDY_SEARCHPATH".
124
125 "--input-markup" input / -I input
126 Specifies the input markup of the raw index. Supported values for
127 input are "latex", "xelatex", and "omega".
128
129 "latex" input markup is the one that is emitted by default from the
130 LaTeX kernel, or by the "index" macro package of David Jones, when
131 used with standard LaTeX or pdfLaTeX. ^^-notation of single byte
132 characters is supported. Usage of LaTeX's inputenc package is
133 assumed as well, i.e., raw input is encoded in LICR.
134
135 "xelatex" input markup is like "latex", but without inputenc usage.
136 Raw input is encoded in UTF-8. LuaLaTeX has the same input markup,
137 there's no special option value for it.
138
139 "omega" input markup is like "latex" input markup, but with Omega's
140 ^^-notation as encoding for non-ASCII characters. LICR encoding is
141 not used then, and "utf8" is enforced to be the codepage for
142 sorting and for output of letter group headings.
143
145 The following languages are supported:
146
147 Latin scripts
148 albanian gypsy portuguese
149 croatian hausa romanian
150 czech hungarian russian-iso
151 danish icelandic slovak-small
152 english italian slovak-large
153 esperanto kurdish-bedirxan slovenian
154 estonian kurdish-turkish spanish-modern
155 finnish latin spanish-traditional
156 french latvian swedish
157 general lithuanian turkish
158 german-din lower-sorbian upper-sorbian
159 german-duden norwegian vietnamese
160 greek-iso polish
161
162 German recognizes two different sorting schemes to handle umlauts:
163 normally, "ae" is sorted like "ae", but in phone books or dictionaries,
164 it is sorted like "a". The first scheme is known as DIN order, the
165 second as Duden order.
166
167 "*-iso" language names assume that the raw index entries are in ISO
168 8859-9 encoding.
169
170 "gypsy" is a northern Russian dialect.
171
172 Cyrillic scripts
173 belarusian mongolian serbian
174 bulgarian russian ukrainian
175 macedonian
176
177 Other scripts
178 greek klingon
179
180 Available Codepages
181 This is not yet written. You can look them up in your xindy
182 distribution, in the modules/lang/language/ directory (where language
183 is your language). They are named variant-codepage-lang.xdy, where
184 variant- is most often empty (for german, it's "din5007" and "duden";
185 for spanish, it's "modern" and "traditional", etc.)
186
187 < Describe available codepages for each language >
188
189 < Describe relevance of codepages (as internal representation) for
190 LaTeX inputenc >
191
193 There is a set of texindy standard modules that help to process LaTeX
194 index files. Some of them are automatically loaded. Some of them are
195 loaded by default, this can be turned off with a texindy option. Others
196 may be specified as "--module" argument to achieve a specific effect.
197
198 xindy Module Category Description
199
200 Sorting
201 word-order Default A space comes before any letter in the
202 alphabet: ``index style'' is listed before
203 ``indexing''. Turn it off with option -l.
204 letter-order Add-on Spaces are ignored: ``index style''
205 is sorted after ``indexing''.
206 keep-blanks Add-on Leading and trailing white space (blanks
207 and tabs) are not ignored; intermediate
208 white space is not changed.
209 ignore-hyphen Add-on Hyphens are ignored:
210 ``ad-hoc'' is sorted as ``adhoc''.
211 ignore-punctuation Add-on All kinds of punctuation characters are
212 ignored: hyphens, periods, commas, slashes,
213 parentheses, and so on.
214 numeric-sort Auto Numbers are sorted numerically, not like
215 characters: ``V64'' appears before ``V128''.
216
217 Page Numbers
218 page-ranges Default Appearances on more than two consecutive
219 pages are listed as a range: ``1--4''.
220 Turn it off with option -r.
221 ff-ranges Add-on Uses implicit ``ff'' notation for ranges
222 of three pages, and explicit ranges
223 thereafter: 2f, 2ff, 2--6.
224 ff-ranges-only Add-on Uses only implicit ranges: 2f, 2ff.
225 book-order Add-on Sorts page numbers with common book numbering
226 scheme correctly -- Roman numerals first, then
227 Arabic numbers, then others: i, 1, A.
228
229 Markup and Layout
230 tex Auto Handles basic TeX conventions.
231 latex-loc-fmts Auto Provides LaTeX formatting commands
232 for page number encapsulation.
233 latex Auto Handles LaTeX conventions, both in raw
234 index entries and output markup; implies
235 tex.
236 makeindex Auto Emulates the default MakeIndex input syntax
237 and quoting behavior.
238 latin-lettergroups Auto Layout contains a single Latin letter
239 above each group of words starting with the
240 same letter.
241 german-sty Add-on Handles umlaut markup of babel's german
242 and ngerman options.
243
245 xindy does not claim to be completely compatible with MakeIndex, that
246 would prevent some of its enhancements. That said, we strive to deliver
247 as much compatibility as possible. The most important incompatibilities
248 are
249
250 • For raw index entries in LaTeX syntax, "\index{aaa|bbb}" is
251 interpreted differently. For MakeIndex "bbb" is markup that is
252 output as a LaTeX tag for this page number. For xindy, this is a
253 location attribute, an abstract identifier that will be later
254 associated with markup that should be output for that attribute.
255
256 For straight-forward usage, when "bbb" is "textbf" or similar, we
257 supply location attribute definitions that mimic MakeIndex's
258 behaviour.
259
260 For more complex usage, when "bbb" is not an identifier, no such
261 compatibility definitions exist and may also not been created with
262 current xindy. Such a situation is reported to exist for the
263 "memoir" LaTeX class.
264
265 Programmers who know Common Lisp and Lex and want to work on a
266 remedy should please contact the author.
267
268 • If you have an index rage and a location attribute, e.g.,
269 "\index{key\(attr}" starts the range, one needs (1) to specify that
270 attribute in the range closing entry as well (i.e., as
271 "\index{key\)attr}") and (2) one needs to declare the index
272 attribute in an xindy style file.
273
274 MakeIndex will output the markup "\attr{page1--page2}" for such a
275 construct. This is not possible to achieve in xindy, output will be
276 "\attrMarkup{page1}--\attrMarkup{page2}". (This is actually
277 considered a bug, but not a high priority one.)
278
279 The difference between MakeIndex page number tags and xindy
280 location attributes was already explained in the previous item.
281
282 • The MakeIndex compatibility definitions support only the default
283 raw index syntax and markup definition. It is not possible to
284 configure raw index parsing or use a MakeIndex style file to
285 describe output markup.
286
288 "TEXINDY_AUTO_MODULE"
289 This is the name of the xindy module that loads all auto-loaded
290 modules. The default is "texindy".
291
293 Joachim Schrod
294
296 Copyright (c) 2004-2014 by Joachim Schrod.
297
298 texindy is free software; you can redistribute it and/or modify it
299 under the terms of the GNU General Public License as published by the
300 Free Software Foundation; either version 2 of the License, or (at your
301 option) any later version.
302
303 This program is distributed in the hope that it will be useful, but
304 WITHOUT ANY WARRANTY; without even the implied warranty of
305 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
306 General Public License for more details.
307
308
309
310Release 2.5.1 2020-05-28 texindy(1)