summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/koma-script/source-doc/bin/genindex.pl
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/koma-script/source-doc/bin/genindex.pl')
-rwxr-xr-xmacros/latex/contrib/koma-script/source-doc/bin/genindex.pl204
1 files changed, 0 insertions, 204 deletions
diff --git a/macros/latex/contrib/koma-script/source-doc/bin/genindex.pl b/macros/latex/contrib/koma-script/source-doc/bin/genindex.pl
deleted file mode 100755
index 879d259e35..0000000000
--- a/macros/latex/contrib/koma-script/source-doc/bin/genindex.pl
+++ /dev/null
@@ -1,204 +0,0 @@
-#! /usr/bin/perl -w
-eval 'exec perl -S $0 ${1+"$@"}'
- if 0; #$running_under_some_shell
-
-# ======================================================================
-# genindex.pl
-# Copyright (c) Markus Kohm, 2002-2006
-#
-# This file is part of the LaTeX2e KOMA-Script bundle.
-#
-# This work may be distributed and/or modified under the conditions of
-# the LaTeX Project Public License, version 1.3c of the license.
-# The latest version of this license is in
-# http://www.latex-project.org/lppl.txt
-# and version 1.3c or later is part of all distributions of LaTeX
-# version 2005/12/01 or later and of this work.
-#
-# This work has the LPPL maintenance status "author-maintained".
-#
-# The Current Maintainer and author of this work is Markus Kohm.
-#
-# This work consists of all files listed in manifest.txt.
-# ----------------------------------------------------------------------
-# genindex.pl
-# Copyright (c) Markus Kohm, 2002-2006
-#
-# Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz,
-# Version 1.3c, verteilt und/oder veraendert werden.
-# Die neuste Version dieser Lizenz ist
-# http://www.latex-project.org/lppl.txt
-# und Version 1.3c ist Teil aller Verteilungen von LaTeX
-# Version 2005/12/01 oder spaeter und dieses Werks.
-#
-# Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
-# (allein durch den Autor verwaltet).
-#
-# Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm.
-#
-# Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien.
-# ======================================================================
-# This perl scripts splits the index of scrguide or scrguien into
-# several files, each with one index section.
-#
-# Usage: genindex.pl <ind-file>
-#
-# If <ind-file> has no extension ``.ind'', this extension will be added.
-# ----------------------------------------------------------------------
-# Dieses perl Script spaltet den Index des scrguide in mehrere getrennte
-# Dateien auf, von denen jede jeweils einen Index-Abschnitt enthält.
-#
-# Verwendung: genindex.pl <ind-Datei>
-#
-# Wenn die <ind-Datei> ohne Endung ".ind" angegeben wird, so wird diese
-# Endung automatisch angehängt.
-# ======================================================================
-
-use strict;
-use Fcntl;
-
-my $indexinput = $ARGV[0];
-my $indexbase;
-my $line;
-my $entry = "";
-my %indfile;
-
-$indexinput = "$indexinput.ind" if ( ! ( $indexinput =~ /^.*\.ind\z/ ) );
-$indexbase = $1 if $indexinput =~ /^(.*)\.ind/;
-
-print "Generate multiindex for $indexinput\n";
-
-# pass 1: search for and open destination index files
-open (IDX, "<$indexinput") ||
- die "Cannot open $indexinput for reading\n";
-print "Search for index:\n";
-while ( <IDX> ) {
- if ( /\\UseIndex *\{([^\}]*)\}/ ) {
- my $file;
- if ( !$indfile{"$1"} ) {
- print " Open new index $indexbase-$1.ind\n";
- open ( $file, ">$indexbase-$1.ind" ) ||
- die "Cannot open $indexbase-$1.ind for writing\n";
- $indfile{"$1"} = $file;
- }
- }
-}
-# we must have a general index
-if ( !$indfile{"gen"} ) {
- print " Open new index $indexbase-gen.ind\n" ;
- open ( $indfile{"gen"}, ">$indexbase-gen.ind" ) ||
- die "Cannot open $indexbase-gen.ind for writing\n";
-}
-
-# pass 2: copy to destination index files
-seek (IDX, 0, 0) ||
- die "Cannot rewind $indexinput\n";
-print "Copy entries:\n";
-# step 1: copy to every index file until first \indexsectione
-while ( defined( ( $line = <IDX> ) )
- && ( ! ( $line =~ /^( *\\indexsection *\{)/ ) ) ) {
- printtoallind( "$line" );
- $line = "";
-}
-# copy also \indexsection-line
-printtoallind( "$line" ) if ( $line );
-
-# step 2: read complete \indexsection, \indexspace, \item, \subitem or
-# \subsubitem and process it (= copy it to destination index files)
-while ( $line = <IDX> ) {
- if ( $line =~ /^ *((\\indexsection|\\end) *\{|\\indexspace)/ ) {
- processentry( "$entry" );
- $entry = "";
- printtoallind( "$line" );
- } elsif ( $line =~ /^ *\\(sub(sub)?)?item +/ ) {
- processentry( "$entry" );
- $entry = $line;
- } else {
- $entry = "$entry$line";
- }
-}
-
-close (IDX);
-closeallind ();
-
-# post optimization of all destination index files
-print "Optimize every index:\n";
-optimizeallind ();
-
-exit;
-
-# close all destination index files
-sub closeallind {
- my $name;
- my $file;
- while (($name,$file) = each %indfile) {
- print " Close $indexbase-$name.ind\n" ;
- close ($file);
- $indfile{"$name"}=0;
- }
-}
-
-# optimize all destination index files
-sub optimizeallind {
- my $name;
- my $file;
- while (($name,$file) = each %indfile) {
- print " $indexbase-$name.ind\n";
- optimizeind( "$name" );
- }
-}
-
-# print arg 1 to all destination index files
-sub printtoallind {
- my $line = shift;
- my $name;
- my $file;
- while (($name,$file) = each %indfile) {
- print ($file $line);
- }
-}
-
-# process an index entry (copy it to valid destination index files)
-sub processentry {
- my $line = shift;
- my $file = $indfile{"gen"};
- if ( $line =~ /\\UseIndex *\{([^\}]*)\} *(.*)/ ) {
- $file = $indfile{"$1"};
- print ($file $line);
- } else {
- print ($file $line);
- }
-}
-
-# optimize an index files (remove \indexsection without \item)
-sub optimizeind {
- my $idx = shift;
- my $interstuff = "";
- my $line;
-
- open (IN, "<$indexbase-$idx.ind" ) ||
- die "Cannot open $indexbase-$idx.ind for reading";
- open (OUT, ">$indexbase-$idx.new" ) ||
- die "Cannot open $indexbase-$idx.new for writing";
-
- while ( $line=<IN> ) {
- if ( $line =~ /^ *\\indexspace/ ) {
- $interstuff = "\n$line";
- } elsif ( ( $line =~ /^ *\\indexsection *\{/ ) ||
- ( $line =~ /^$/ ) ) {
- $interstuff = "$interstuff$line";
- } else {
- print (OUT $interstuff) if ( !( $interstuff =~ /^$/ )
- && !( $line =~ /^ *\\end\{theindex\}/ ) );
- $interstuff = "";
- print (OUT $line);
- }
- }
-
- close (OUT);
- close (IN);
- unlink "$indexbase-$idx.ind" ||
- die "Cannot delete $indexbase-$idx.ind";
- rename "$indexbase-$idx.new", "$indexbase-$idx.ind" ||
- die "Cannot rename $indexbase-$idx.new to §indexbase-$idx.ind";
-}