diff options
Diffstat (limited to 'Master/texmf-dist/scripts/xindy/texindy.pl')
-rwxr-xr-x | Master/texmf-dist/scripts/xindy/texindy.pl | 87 |
1 files changed, 55 insertions, 32 deletions
diff --git a/Master/texmf-dist/scripts/xindy/texindy.pl b/Master/texmf-dist/scripts/xindy/texindy.pl index 7a62a9f241a..5cfba08d699 100755 --- a/Master/texmf-dist/scripts/xindy/texindy.pl +++ b/Master/texmf-dist/scripts/xindy/texindy.pl @@ -28,7 +28,7 @@ texindy - create sorted and tagged index from raw LaTeX index -L / --language -C / --codepage -M / --module (multiple times) - -I / --input-markup (supported: latex, omega) + -I / --input-markup (supported: latex, xelatex, omega) =head1 DESCRIPTION @@ -41,9 +41,6 @@ by xindy modules, with a convenient set already preloaded. Files with the raw index are passed as arguments. If no arguments are passed, the raw index will be read from standard input. -B<Do not use texindy with XeLaTeX or LuaLaTeX!> When you use these -LaTeX engines, you must use B<xindy -C utf8 -M texindy -M page-ranges> instead. - A good introductionary description of B<texindy> appears in the indexing chapter of the LaTeX Companion (2nd ed.) @@ -105,28 +102,46 @@ C<--debug> or C<--verbose>. The index is sorted according to the rules of language I<lang>. These rules are encoded in a xindy module created by I<make-rules>. -If no input encoding is specified via C<--codepage>, a xindy module -for that language is searched with a latin, a cp, an iso, or ascii -encoding, in that order. +If no input encoding is specified via C<--codepage> or enforced by +input markup, a xindy module for that language is searched with a +latin, a cp, an iso, ascii, or utf8 encoding, in that order. + +=item C<--codepage> I<enc> / B<-C> I<enc> + +There are two different situations and use cases for this option. -=item C<--codepage> I<enc> / B <-C> I<enc> +=over + +=item 1. -B<texindy>'s raw input is always assumed to be encoded in LaTeX -Internal Character Representation (LICR). I.e., non-ASCII characters -are encoded as command sequences. This option tells xindy the encoding -it shall use internally for sorting. +Input markup is C<latex> (the default). -Effectively, you need this option to specify the encoding of letter -group headings. +Then B<texindy>'s raw input is assumed to be encoded in LaTeX Internal +Character Representation (LICR). I.e., non-ASCII characters are +encoded as command sequences. This option tells xindy the encoding it +shall use for letter group headings. (Additionally it specifies the +encoding used internally for sorting -- but that doesn't matter for +the result.) -Encoding C<utf8> is only supported for Latin alphabets. But if you use -non-Latin alphabets, you probably use XeLaTeX or LuaLaTeX and then you -must not use B<texindy> anyhow. Then direct usage of B<xindy> is -appropriate. +Only LICR encodings for Latin script alphabets are supported; more +precisely characters that are in LaTeX latin1, latin2, and latin3 LICR +encodings. + +Even when you specify C<utf8> as codepage, only these characters will +be known. But if you use non-Latin alphabets, you probably use (or +should use) XeLaTeX or LuaLaTeX and then you have a different input +markup. -When C<omega> input markup is used, C<utf8> is always used as the sort -codepage and no inputenc module is loaded. Then this option is -ignored. +=item 2. + +Input markup is C<xelatex> or C<omega>. + +Then this option is ignored; codepage C<utf8> is enforced. + +B<texindy>'s raw input is assumed to be UTF-8 encoded, LICR is not +used. + +=back =item C<--module> I<module> / B<-M> I<module> @@ -137,17 +152,22 @@ can be changed with the environment variable C<XINDY_SEARCHPATH>. =item C<--input-markup> I<input> / B<-I> I<input> Specifies the input markup of the raw index. Supported values for -I<input> are C<latex> and C<omega>. +I<input> are C<latex>, C<xelatex>, and C<omega>. C<latex> input markup is the one that is emitted by default from the -LaTeX kernel, or by the C<index> macro package of David Jones. -^^-notation of single byte characters is supported. Usage of LaTeX's -I<inputenc> package is assumed as well. +LaTeX kernel, or by the C<index> macro package of David Jones, when +used with standard LaTeX or pdfLaTeX. ^^-notation of single byte +characters is supported. Usage of LaTeX's I<inputenc> package is +assumed as well, i.e., raw input is encoded in LICR. + +C<xelatex> input markup is like C<latex>, but without I<inputenc> +usage. Raw input is encoded in UTF-8. LuaLaTeX has the same input +markup, there's no special option value for it. C<omega> input markup is like C<latex> input markup, but with Omega's -^^-notation as encoding for non-ASCII characters. LaTeX I<inputenc> -encoding is not used then, and C<utf8> is enforced to be the codepage -for sorting. +^^-notation as encoding for non-ASCII characters. LICR encoding is not +used then, and C<utf8> is enforced to be the codepage for sorting and +for output of letter group headings. =back @@ -346,6 +366,8 @@ Joachim Schrod =head1 LEGALESE +Copyright (c) 2004-2014 by Joachim Schrod. + B<texindy> is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your @@ -553,15 +575,16 @@ sub parse_options() { unshift (@modules, ($letter_ordering ? 'letter-order' : 'word-order')); unshift (@modules, 'page-ranges') unless $no_ranges; - # Check that the input markup is known. omega markup implies + # Check that the input markup is known. xelatex and omega markup implies # codepage utf8 for sorting, but no inputenc. We set the codepage # to undef to prevent loading of the inputenc module. Setting it - # to utf8 for the sort encoding is done by the xindy script. - if ( $input_markup ne 'latex' && $input_markup ne 'omega' ) { + # to utf8 for sort encoding is done by the xindy script. + if ( $input_markup ne 'latex' && $input_markup ne 'xelatex' && + $input_markup ne 'omega' ) { print STDERR "Unsupported input markup $input_markup.\n"; usage(1); } - if ( $input_markup eq 'omega' ) { + if ( $input_markup eq 'xelatex' || $input_markup eq 'omega' ) { $codepage = undef; } |