From 36f6715604625a3e362534859befd7f94e2f4414 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 5 Mar 2009 16:52:20 +0000 Subject: rm splitindex, requires compilation git-svn-id: svn://tug.org/texlive/trunk@12317 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/splitindex/README | 37 - Master/texmf-dist/doc/latex/splitindex/install.sh | 178 --- Master/texmf-dist/doc/latex/splitindex/install.txt | 131 -- .../texmf-dist/doc/latex/splitindex/manifest.txt | 63 - .../texmf-dist/doc/latex/splitindex/splitidx.pdf | Bin 253639 -> 0 bytes .../doc/latex/splitindex/splitindex-Linux-i386 | Bin 9924 -> 0 bytes .../doc/latex/splitindex/splitindex-OpenBSD-i386 | Bin 16384 -> 0 bytes .../texmf-dist/doc/latex/splitindex/splitindex.1 | 64 - .../doc/latex/splitindex/splitindex.class | Bin 9303 -> 0 bytes .../texmf-dist/doc/latex/splitindex/splitindex.exe | Bin 18944 -> 0 bytes .../doc/latex/splitindex/splitindex.java | 415 ------ .../texmf-dist/doc/latex/splitindex/splitindex.pl | 186 --- .../source/latex/splitindex/splitidx.dtx | 1505 -------------------- .../source/latex/splitindex/splitidx.ins | 93 -- .../source/latex/splitindex/splitindex.c | 576 -------- .../texmf-dist/tex/latex/splitindex/splitidx.sty | 322 ----- .../texmf-dist/tex/latex/splitindex/splitindex.tex | 163 --- Master/tlpkg/bin/tlpkg-ctan-check | 2 +- Master/tlpkg/bin/tlprm | 4 +- Master/tlpkg/libexec/ctan2tds | 1 + Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc | 1 - Master/tlpkg/tlpsrc/splitindex.tlpsrc | 2 - 22 files changed, 4 insertions(+), 3739 deletions(-) delete mode 100644 Master/texmf-dist/doc/latex/splitindex/README delete mode 100644 Master/texmf-dist/doc/latex/splitindex/install.sh delete mode 100644 Master/texmf-dist/doc/latex/splitindex/install.txt delete mode 100644 Master/texmf-dist/doc/latex/splitindex/manifest.txt delete mode 100644 Master/texmf-dist/doc/latex/splitindex/splitidx.pdf delete mode 100644 Master/texmf-dist/doc/latex/splitindex/splitindex-Linux-i386 delete mode 100644 Master/texmf-dist/doc/latex/splitindex/splitindex-OpenBSD-i386 delete mode 100644 Master/texmf-dist/doc/latex/splitindex/splitindex.1 delete mode 100644 Master/texmf-dist/doc/latex/splitindex/splitindex.class delete mode 100644 Master/texmf-dist/doc/latex/splitindex/splitindex.exe delete mode 100644 Master/texmf-dist/doc/latex/splitindex/splitindex.java delete mode 100644 Master/texmf-dist/doc/latex/splitindex/splitindex.pl delete mode 100644 Master/texmf-dist/source/latex/splitindex/splitidx.dtx delete mode 100644 Master/texmf-dist/source/latex/splitindex/splitidx.ins delete mode 100644 Master/texmf-dist/source/latex/splitindex/splitindex.c delete mode 100644 Master/texmf-dist/tex/latex/splitindex/splitidx.sty delete mode 100644 Master/texmf-dist/tex/latex/splitindex/splitindex.tex delete mode 100644 Master/tlpkg/tlpsrc/splitindex.tlpsrc diff --git a/Master/texmf-dist/doc/latex/splitindex/README b/Master/texmf-dist/doc/latex/splitindex/README deleted file mode 100644 index a722029a27d..00000000000 --- a/Master/texmf-dist/doc/latex/splitindex/README +++ /dev/null @@ -1,37 +0,0 @@ -Welcome to SplitIndex, the TeX index splitter. SplitIndex creates -multiple index files from one raw index. See manifest.txt if you want -to know the files SplitIndex exists of. - -There are a lot of alternatives in using SplitIndex, because I wanted -solutions at every platform. Not all of the programs are distributed -in binary form. But splitindex.tex will work at every platform. And you -need only TeX (even not LaTeX) to run it. - -Currently I support binaries for the following platforms: - - Linux ELF i386, OpenBSD 3.0 i386, CygWIN Windows 32 Bit i386 - -If you need support, you can write me a mail. Use - - To: splitindex - Subject: SPLITINDEX: - -And replace by a short (at least 60 chars) description -of your problem. - - -See file install.txt for a description how to install this -distribution and how to get the manual, which describes how to use -SplitIndex. - -LEGALESE: This package is freely distributable software; you can - redistribute it and/or modify it under the conditions of the - LaTeX Project Public License, either version 1.2 of this - license or (at your option) any later version. - The latest version of this license is in - http://www.latex-project.org/lppl.txt and version 1.2 or - later is part of all distributions of LaTeX version - 1999/12/01 or later. - - -Enjoy, Markus. diff --git a/Master/texmf-dist/doc/latex/splitindex/install.sh b/Master/texmf-dist/doc/latex/splitindex/install.sh deleted file mode 100644 index c27b4796ca2..00000000000 --- a/Master/texmf-dist/doc/latex/splitindex/install.sh +++ /dev/null @@ -1,178 +0,0 @@ -#!/bin/sh - -while [ $# -gt 0 ]; do - case $1 in - --prefix) - if [ $# -lt 2 ]; then - echo "$0: argument expected after --prefix" >&2 - exit 1 - else - prefix=$2 - shift 2 - fi - ;; - --prefix=*) - prefix=${1#--prefix=} - shift 1 - ;; - --bindir) - if [ $# -lt 2 ]; then - echo "$0: argument expected after --bindir" >&2 - exit 1 - else - bindir=$2 - shift 2 - fi - ;; - --bindir=*) - bindir=${1#--bindir=} - shift 1 - ;; - --mandir) - if [ $# -lt 2 ]; then - echo "$0: argument expected after --mandir" >&2 - exit 1 - else - mandir=$2 - shift 2 - fi - ;; - --mandir=*) - mandir=${1#--mandir=} - shift 1 - ;; - --texmf) - if [ $# -lt 2 ]; then - echo "$0: argument expected after --texmf" >&2 - exit 1 - else - texmf=$2 - shift 2 - fi - ;; - --texmf=*) - texmf=${1#--texmf=} - shift 1 - ;; - --version|-v) - echo "install.sh v0.1" - echo "Copyright (c) Markus Kohm 2002" - exit 0 - ;; - --help|-h) - echo "Usage: install.sh [OPTIONS]" - echo - echo "Installs SplitIndex for all unix like environments." - echo - echo "OPTIONS:" - echo "--prefix= install binaries at /bin and manuals at /man" - echo " (default: /usr/local)" - echo "--bindir= install binaries at " - echo "--mandir= install manuals at " - echo "--texmf= install packages and TeX programs at /tex/latex/misc," - echo " documentation (dvi and pdf) at /doc/latex/splitidx and" - echo " sources at /source/latex/splitidx" - echo " (default: \$TEXMFLOCAL if you are root and \$HOMETEXMF if" - echo " you are not root)" - exit 0 - ;; - --dist) - mkdir splitidx - cp -a splitindex splitindex-Linux-i386 - cp -a splitindex.tex splitindex.pl splitindex.c splitindex.java \ - splitindex.class splitindex.exe splitidx.dtx splitidx.ins \ - splitindex-Linux-i386 splitindex-OpenBSD-i386 \ - splitindex.1 install.txt manifest.txt install.sh \ - README splitidx - tar jcvf splitidx-`date -I`.tar.bz2 splitidx - cd splitidx - ./install.sh --prefix ../chroot --texmf ../chroot/texmf - cd .. - rm -r splitidx - find chroot | sed 's/chroot\//+-/g;s/[a-z0-9]*\//-/g' - exit 0 - ;; - *) - echo "unkown option \`$1'" >&2 - echo "Try \`./install.sh --help' for more information." >&2 - exit 1; - ;; - esac -done - -case `uname -s -m` in - OpenBSD*i?86*) - cp -pf splitindex-OpenBSD-i386 splitindex - splitindex=splitindex - ;; - Linux*i?86*) - cp -pf splitindex-Linux-i386 splitindex - splitindex=splitindex - ;; - CYGWIN*i?86*) - splitindex=splitindex.exe - ;; - *) - if ! ./splitindex -V; then - echo 'Os '`uname -s -m`' not supported!' - echo 'Trying to compile the source:' - gcc -O3 -Wall -o splitindex splitindex.c || \ - gcc -O3 -Wall -DNO_LONGOPT -o splitindex splitindex.c || \ - echo 'You have to compile splitindex.c by your own!' - fi - if ./splitindex -V; then - splitindex=splitindex - fi - ;; -esac - -if [ -z "$prefix" ]; then - prefix=/usr/local -fi -if [ -z "$bindir" ]; then - bindir=$prefix/bin -fi -if [ -z "$mandir" ]; then - mandir=$prefix/man -fi -if [ -z "$texmf" ]; then - if [ "r$USER" = "rroot" ]; then - texmf=`kpsexpand '$TEXMFLOCAL'` - else - texmf=`kpsexpand '$HOMETEXMF'` - fi - if [ -z "$texmf" ]; then - echo "kpsexpand '$TEXMFLOCAL' or kpsexpand '$HOMETEXMF' failed!" >&2 - echo "You have to use option --texmf=." >&2 - echo "This error is fatal!" >&2 - exit 1 - fi -fi - -latex splitidx.ins - -latex splitidx.dtx -latex splitidx.dtx -mkindex splitidx -latex splitidx.dtx - -pdflatex splitidx.dtx -pdflatex splitidx.dtx -mkindex splitidx -pdflatex splitidx.dtx - -install -v -m 755 -d $bindir -install -v -m 755 -d $mandir/man1 -install -v -m 755 -d $texmf/tex/latex/misc -install -v -m 755 -d $texmf/source/latex/splitidx -install -v -m 755 -d $texmf/doc/latex/splitidx -install -v -m 755 $splitindex splitindex.pl $bindir -install -v -m 644 splitindex.class $bindir -install -v -m 644 splitindex.1 $mandir/man1 -install -v -m 644 splitindex.tex splitidx.sty $texmf/tex/latex/misc -install -v -m 644 splitidx.dvi splitidx.pdf $texmf/doc/latex/splitidx - -install -v README splitindex.c splitindex.java splitindex.exe \ - splitindex-Linux-i386 splitindex-OpenBSD-i386 \ - splitidx.dtx manifest.txt install.txt install.sh \ - $texmf/source/latex/splitidx diff --git a/Master/texmf-dist/doc/latex/splitindex/install.txt b/Master/texmf-dist/doc/latex/splitindex/install.txt deleted file mode 100644 index b3277c4d803..00000000000 --- a/Master/texmf-dist/doc/latex/splitindex/install.txt +++ /dev/null @@ -1,131 +0,0 @@ - SplitIndex Installation Guide - - 2003/01/15 - - -INTRODUCTION -============ - -If you know how to install LaTeX packages and how to install binary -programs, just do it. If you don't know, read the following. If you -are using Linux-i386 or OpenBSD-i386 or another Unix like environment -with installed Gnu fileutils and installed Gnu-C-Compiler, you may try -install.sh for installation. See - - ./install.sh --help - -for more information. If you don't have GCC, Linux-i386 or -OpenBSD-i386 you may also use install.sh, but you have to compile -and link splitindex.c before. See the splitidx manual for this. - -But you may also try the following step by step installation: - - -HOW TO GENERATE THE splitidx PACKAGE -==================================== - -1st) process splitidx.ins with TeX or LaTeX, e.g. using the following -input at a command shell (e.g. bash or command.com): - - latex splitidx.ins - -Maybe you'll be asked, if you want to overwrite existing files. Answer -this question with yes. - -2nd) have a look where your LaTeX Distribution searchs for -files. With teTeX you can ask kpathsea for this, e.g. using a unix -shell: - - kpsexpand \$TEXMFLOCAL - -to use the local texmf tree or: - - kpsexpand \$HOMETEXMF - -to use your private texmf tree. Following uses "TEXMF" to be a synonym -for the texmf tree you want to use. - -3rd) create folder TEXMF/tex/latex/misc (at Windows: -TEXMF\tex\latex\misc), if it doesn't exist. Copy splitidx.sty to this -folder. - -4th) call the program, which is used to update the filename data -base, e.g. texhash or mktexlsr if you are using teTeX/TeX Live. - - -HOW TO INSTALL THE BINARIES -=========================== - -5th) Rename the suitable binary (e.g. splitindex-Linux-i386, if you're -using Linux-i386) to splitindex or compile splitindex.c to generate -a binary named splitindex. - -6th) copy splitindex.java to the binary search path of SUN JAVA -1.4.1. - -7th) copy splitindex.pl and splitindex or splitindex.exe somewhere to -your binary search path (ask environment variable PATH). - -8th) copy the manual page splitindex.1 to your manual seach path. - -9th) copy splitindex.tex to the same location you've copied -splitidx.sty to and do 4th step again. - - -HOW TO GENERATE THE MANUAL -========================== - -10th) process splitidx.dtx with LaTeX to generate the user manual of -splitidx and SplitIndex, e.g. using the following input at a command -shell: - - latex splitidx.dtx - latex splitidx.dtx - mkindex splitidx - latex splitidx.dtx - -or (if you do not have the mkindex script): - - latex splitidx.dtx - latex splitidx.dtx - makeindex -s gind.ist splitidx - makeindex -s gglo.ist -o splitidx.gls splitidx.glo - latex splitidx.dtx - -You may print the resulting splitidx.dvi. If you prefere PDF files, -use pdflatex instead of latex. - -11th) read the manual you produced at 10th step. - - -HOW TO TEST YOUR INSTALLATION -============================= - -Use the following LaTeX source to test the installation. See -splitidx.dvi or splitidx.pdf to see how to do this. - -\documentclass{article} % We use \Class{article} class ... -\usepackage{splitidx} % ... and the \Package{splitidx} package -\makeindex % And we want index generation -\usepackage{hyperref} -% We define 4 indices: -\newindex[General Index]{idx} % Name and shortcut of the 1st index -\newindex[Index of Animals]{ani} % ... 2nd index -\newindex[Index of Fruits]{fru} % ... 3rd index -\newindex[Index of Vegetables]{veg} % ... \dots\ 4th index - -\begin{document} -Apples\sindex[fru]{apple} % an entry to fru index -and oranges\sindex[fru]{orange} % an entry to fru index -are fruits\sindex{fruits}. % an implicite entry to idx index -Tomatos\sindex[veg]{tomato} % an entry to veg index -are vegetables\index{vegetables}. % an implicite entry to idx index -Cats\sindex[ani]{cat} % an entry to ani index -are animals\sindex[idx]{animals}. % an explicite entry to idx index - -\twocolumn[% - \section*{Indices}% - \markboth{Indices}{Indices}% -] -\printsubindex* % print all indices -\end{document} diff --git a/Master/texmf-dist/doc/latex/splitindex/manifest.txt b/Master/texmf-dist/doc/latex/splitindex/manifest.txt deleted file mode 100644 index 89dc68ddd16..00000000000 --- a/Master/texmf-dist/doc/latex/splitindex/manifest.txt +++ /dev/null @@ -1,63 +0,0 @@ -% -% The following files form the SplitIndex Dsitribution 2002/01/05 -% -% -% CONTENTS OF THE SplitIndex DISTRIBUTION -% ======================================= -% -% Documentation: -% -------------- -% -% manifest.txt -- This file. -% install.txt -- How to install SplitIndex (overview). -% splitindex.1 -- The unix manual page of all SplitIndex -% programs. -% -% -% LaTeX files: -% ------------ -% -% splitidx.dtx -- The source of the splitidx package and of the -% manual. -% splitidx.ins -- The installation script for the splitidx -% package. -% -% -% Program sources: -% ---------------- -% -% splitindex.pl -- The source of the reference implementation of -% the SplitIndex program. -% splitindex.java -- The source of the SUN JAVA 1.4.1 implementation -% of the SplitIndex program. -% splitindex.c -- The source of the C implementation of the -% SplitIndex program. -% splitindex.tex -- The source of the TeX implementation of the -% SplitIndex program. -% -% -% Programs (binaries): -% -------------------- -% -% splitindex.pl -- Perl is an interpreter, so this is the source -% and the program itself (but not binary) -% splitindex.class -- The SUN JAVA 1.4.1 bitcode of the SplitIndex -% program. -% splitindex-Linux-i386 -% -- The Linux-i386-ELF binary of the SplitIndex -% program. -% splitindex-OpenBSD-i386 -% -- The OpenBSD-i386 binary of the SplitIndex -% program. -% splitindex.exe -- The CygWin-i386 (Win32) binary the SplitIndex -% program. -% -% -% Installation programs: -% ---------------------- -% -% install.sh -- See `install.txt' for more information about -% this. -% -% ==================================================================== -% diff --git a/Master/texmf-dist/doc/latex/splitindex/splitidx.pdf b/Master/texmf-dist/doc/latex/splitindex/splitidx.pdf deleted file mode 100644 index 92a248ef686..00000000000 Binary files a/Master/texmf-dist/doc/latex/splitindex/splitidx.pdf and /dev/null differ diff --git a/Master/texmf-dist/doc/latex/splitindex/splitindex-Linux-i386 b/Master/texmf-dist/doc/latex/splitindex/splitindex-Linux-i386 deleted file mode 100644 index 42566f25083..00000000000 Binary files a/Master/texmf-dist/doc/latex/splitindex/splitindex-Linux-i386 and /dev/null differ diff --git a/Master/texmf-dist/doc/latex/splitindex/splitindex-OpenBSD-i386 b/Master/texmf-dist/doc/latex/splitindex/splitindex-OpenBSD-i386 deleted file mode 100644 index 17e865dd061..00000000000 Binary files a/Master/texmf-dist/doc/latex/splitindex/splitindex-OpenBSD-i386 and /dev/null differ diff --git a/Master/texmf-dist/doc/latex/splitindex/splitindex.1 b/Master/texmf-dist/doc/latex/splitindex/splitindex.1 deleted file mode 100644 index 98188409f60..00000000000 --- a/Master/texmf-dist/doc/latex/splitindex/splitindex.1 +++ /dev/null @@ -1,64 +0,0 @@ -.TH SPLITINDEX "1" "November 2002" "splitindex 0.2a" "User Commands" -.SH NAME -splitindex \- manual page for splitindex 0.2a -.SH SYNOPSIS -.B splitindex.pl -[\fIOPTION\fR]... \fIRAWINDEXFILE \fR[\fIMAKEINDEXOPTION\fR]... -.PP -.B splitindex -[\fIOPTION\fR]... \fIRAWINDEXFILE \fR[\fIMAKEINDEXOPTION\fR]... -.PP -.B java splitindex -[\fIOPTION\fR]... \fIRAWINDEXFILE \fR[\fIMAKEINDEXOPTION\fR]... -.PP -.B tex splitindex -.SH DESCRIPTION -splitindex 0.2a -Copyright (c) 2002 Markus Kohm -.PP -Split a single raw index file into multiple raw index files. -.PP -Example: splitindex.pl foo.idx. -.SH OPTIONS -.TP -\fB\-h\fR, \fB\-\-help\fR -show this help and terminate -.TP -\fB\-m\fR, \fB\-\-makeindex\fR PROGNAME -call PROGNAME instead of default `makeindex'. -.TP -\fB\-i\fR, \fB\-\-identify\fR EXPRESSION -use regular EXPRESSION to match entries -(see also option \fB\-\-resultis\fR and \fB\-\-suffixis\fR). -Default is `^(\e\eindexentry)\e[([^]]*)\e](.*)$'. -.TP -\fB\-r\fR, \fB\-\-resultis\fR PATTERN -create line to be written from PATTERN after matching -lines (see also option \fB\-\-identify\fR). -Default is `$1$3'. -.TP -\fB\-s\fR, \fB\-\-suffixis\fR PATTERN -create suffix to be used from PATTERN after matching -lines (see also option \fB\-\-identify\fR). -Default is `-$2'. -.TP -\fB\-v\fR, \fB\-\-verbose\fR -be more verbose -(can be used multiple to increase verbosity) -.TP -\fB\-\-version\fR -show version and terminate -.SH COPYRIGHT -Copyright \(co 2002 Markus Kohm -.SH "SEE ALSO" -The full documentation for -.B splitindex -is maintained as a LaTeX manual. If the -.B texdoc -and -.B splitindex -programs are properly installed at your site, the command -.IP -.B texdoc splitidx -.PP -should give you access to the complete manual. diff --git a/Master/texmf-dist/doc/latex/splitindex/splitindex.class b/Master/texmf-dist/doc/latex/splitindex/splitindex.class deleted file mode 100644 index 288ad25d588..00000000000 Binary files a/Master/texmf-dist/doc/latex/splitindex/splitindex.class and /dev/null differ diff --git a/Master/texmf-dist/doc/latex/splitindex/splitindex.exe b/Master/texmf-dist/doc/latex/splitindex/splitindex.exe deleted file mode 100644 index 08aa74d1291..00000000000 Binary files a/Master/texmf-dist/doc/latex/splitindex/splitindex.exe and /dev/null differ diff --git a/Master/texmf-dist/doc/latex/splitindex/splitindex.java b/Master/texmf-dist/doc/latex/splitindex/splitindex.java deleted file mode 100644 index 9b52f9f7fdf..00000000000 --- a/Master/texmf-dist/doc/latex/splitindex/splitindex.java +++ /dev/null @@ -1,415 +0,0 @@ -/* - * splitindex.java - * Copyright (c) Markus Kohm, 2002 - * - * $Id: splitindex.java,v 1.2 2003/01/05 15:05:46 mjk Exp $ - * - * This file is part of the SplitIndex package - * - * This file can be redistributed and/or modified under the conditions - * of the LaTeX Project Public License, either version 1.2 of this - * license or (at your option) any later version. - * The latest version of this license is in - * http://www.latex-project.org/lppl.txt - * and version 1.2 or later is part of all distributions of LaTeX - * version 1999/12/01 or later. - * - * You are not allowed to redistribute this file without all the - * other files of the SplitIndex package - */ - -/* - I know, I should never write an application in a single static class - like I do here. But I wanted the program at earch language to be one - file. -*/ - -import java.util.*; -import java.util.regex.*; -import java.io.*; - -public final class splitindex { - private static ArrayList MakeIndexArgs = new ArrayList(); -// private static String Identify = "^(.*)\\\\UseIndex *\\{([^\\}]*)\\}(.*)$"; - private static String Identify = "^(\\\\indexentry)\\[([^\\]]*)\\](.*)$"; - private static String ResultIs = "$1$3"; - private static String SuffixIs = "-$2"; - private static int Verbose = 0; - private static String IDX = null; - private static String Jobname = null; - private static HashMap IDXwriters = new HashMap(); - - private static void ShowHelp() { - String nl = System.getProperty( "line.separator" ); - ShowVersion(); - System.out.println(); - ShowUsage(); - System.out.println( - "Split a single raw index file into multiple raw index files." +nl+ - "Example: java splitindex foo.idx." +nl+ - nl+ - "Options:" +nl+ - " -h, --help " + - "\tshow this help and terminate" +nl+ - " -m, --makeindex PROGNAME" +nl+ - "\t\t\tcall PROGNAME instead of default `makeindex'." +nl+ - " -i, --identify EXPRESSION" +nl+ - "\t\t\tuse regular EXPRESSION to match entries" +nl+ - "\t\t\t(see also option --resultis and --suffixis)." +nl+ - "\t\t\tDefault is \'" + Identify + "\'." +nl+ - " -r, --resultis PATTERN" +nl+ - "\t\t\tcreate line to be written from PATTERN after matching" +nl+ - "\t\t\tlines (see also option --identify)." +nl+ - "\t\t\tDefault is \'" + ResultIs + "\'." +nl+ - " -s, --suffixis PATTERN" +nl+ - "\t\t\tcreate suffix to be used from PATTERN after matching" +nl+ - "\t\t\tlines (see also option --identify)." +nl+ - "\t\t\tDefault is \'" + SuffixIs +"\'." +nl+ - " -v, --verbose " + - "\tbe more verbose" +nl+ - "\t\t\t(can be used multiple to increase verbosity)" +nl+ - " --version " + - "\tshow version and terminate" - ); - System.exit( 0 ); - } - - private static void ShowVersion() { - System.out.println( "splitindex.pl 0.1" ); - System.out.println( "Copyright (c) 2002 Markus Kohm " ); - } - - private static void ShowUsage( PrintStream out ) { - out.println( "Usage: java splitindex [OPTION]... RAWINDEXFILE [MAKEINDEXOPTION]..." ); - } - - private static void ShowUsage() { - ShowUsage( System.out ); - } - - private static void UsageError( String msg ) { - System.err.println( msg ); - System.err.println( "Try `java splitindex --help' for more information." ); - System.exit( 1 ); - } - - private static void ScanArguments(String[] args) { - String MakeIndex = "makeindex"; - for (int i = 0; i < args.length; i++) { - if ( args[i].charAt(0) == '-' ) { - // Option - if ( args[i].charAt(1) == '-' ) { - // Long Option - if ( args[i].substring(2).equals( "help" ) ) { - ShowHelp(); - System.exit(0); - } else if ( args[i].substring(2).equals( "version" ) ) { - ShowVersion(); - System.exit(0); - } else if ( args[i].substring(2).equals( "verbose" ) ) { - Verbose++; - } else if ( args[i].substring(2).equals( "makeindex" ) ) { - if ( ++i >= args.length ) { - UsageError( "Option makeindex requires an argument" ); - } - MakeIndex = args[i]; - } else if ( ( args[i].length() >= 11 ) && - ( args[i].substring(2,11).equals( "makeindex=" ) ) ) { - MakeIndex = args[i].substring(12); - } else if ( args[i].substring(2).equals( "identify" ) ) { - if ( ++i >= args.length ) { - UsageError( "Option identify requires an argument" ); - } - Identify = args[i]; - } else if ( ( args[i].length() >= 10 ) && - ( args[i].substring(2,10).equals( "identify=" ) ) ) { - Identify = args[i].substring(11); - } else if ( args[i].substring(2).equals( "resultis" ) ) { - if ( ++i >= args.length ) { - UsageError( "Option resultis requires an argument" ); - } - ResultIs = args[i]; - } else if ( ( args[i].length() >= 10 ) && - ( args[i].substring(2,10).equals( "resultis=" ) ) ) { - ResultIs = args[i].substring(11); - } else if ( args[i].substring(2).equals( "suffixis" ) ) { - if ( ++i >= args.length ) { - UsageError( "Option suffixis requires an argument" ); - } - SuffixIs = args[i]; - } else if ( ( args[i].length() >= 10 ) && - ( args[i].substring(2,10).equals( "suffixis=" ) ) ) { - SuffixIs = args[i].substring(11); - } else if ( args[i].equals( "--" ) ) { - while ( ++i < args.length ) { - MakeIndexArgs.add( args[i] ); - } - } else { - UsageError( "Unknown option " + args[i].substring(2) ); - } - } else { - // Short Option - for ( int n = 1; n < args[i].length(); ) { - switch( args[i].charAt(n++) ) { - case 'h': - ShowHelp(); - System.exit(0); - case 'm': - if ( n >= args[i].length() ) { - if ( ++i >= args.length ) { - UsageError( "Option makeindex requires an argument" ); - } else { - MakeIndex = args[i]; - n = args[i].length(); - } - } else { - MakeIndex = args[i].substring( n ); - n = args[i].length(); - } - break; - case 'i': - if ( n >= args[i].length() ) { - if ( ++i >= args.length ) { - UsageError( "Option identify requires an argument" ); - } else { - Identify = args[i]; - n = args[i].length(); - } - } else { - Identify = args[i].substring( n ); - n = args[i].length(); - } - break; - case 'r': - if ( n >= args[i].length() ) { - if ( ++i >= args.length ) { - UsageError( "Option resultis requires an argument" ); - } else { - ResultIs = args[i]; - n = args[i].length(); - } - } else { - ResultIs = args[i].substring( n ); - n = args[i].length(); - } - break; - case 's': - if ( n >= args[i].length() ) { - if ( ++i >= args.length ) { - UsageError( "Option suffixis requires an argument" ); - } else { - SuffixIs = args[i]; - n = args[i].length(); - } - } else { - SuffixIs = args[i].substring( n ); - n = args[i].length(); - } - break; - case 'v': - Verbose++; - break; - } - } - } - } else { - MakeIndexArgs.add( args[i] ); - } - } - - // Args --> IDX + Stringarray - if ( MakeIndexArgs.isEmpty() ) { - UsageError( "missing raw index file" ); - } else { - IDX = (String)MakeIndexArgs.get(0); - MakeIndexArgs.remove(0); - MakeIndexArgs.add( 0, MakeIndex ); - } - - if ( IDX.endsWith( ".idx" ) ) { - Jobname = IDX.substring( 0, IDX.length() - 4 ); - } else { - Jobname = IDX; - } - } - - public static void main(String[] args) { - ScanArguments(args); - - if ( Verbose > 0 ) { - ShowVersion(); - System.out.println(); - if ( Verbose > 9 ) { - System.out.println( "Identify: \"" + Identify + "\"" ); - System.out.println( "ResultIs: \"" + ResultIs + "\"" ); - System.out.println( "SuffixIs: \"" + SuffixIs + "\"" ); - System.out.println( "IDX: \"" + IDX + "\"" ); - System.out.println( "Jobname: \"" + Jobname + "\"" ); - System.out.print( "MakeIndex:" ); - for ( int i = 0; i < MakeIndexArgs.size(); i++ ) - System.out.print( " \"" + (String)MakeIndexArgs.get(i) + "\"" ); - System.out.println(); - } - } - - ProcessIDXFile(); - } - - private static void ProcessIDXFile() { - File fIDX = new File( IDX ); - LineNumberReader rIDX = null; - boolean error = false; - if ( !fIDX.canRead() ) { - if ( IDX.equals( Jobname ) ) { - IDX = IDX.concat( ".idx" ); - fIDX = new File( IDX ); - if ( !fIDX.canRead() ) { - System.err.println( "Can read neither file " + Jobname + - " nor file " + IDX ); - System.exit( 1 ); - } - } else { - System.err.println( "Can't read file " + Jobname ); - System.exit( 1 ); - } - } - - try { - FileReader reader = new FileReader( fIDX ); - rIDX = new LineNumberReader( reader ); - } catch ( FileNotFoundException ex ) { - System.err.println( ex.getMessage() ); - System.exit( 1 ); - } - - try { - Pattern search = Pattern.compile( Identify ); - while ( rIDX.ready() ) { - String line = rIDX.readLine(); - Matcher match = search.matcher( line ); - String suffix, result; - - try { - if ( match.find() ) { - suffix = match.replaceFirst( SuffixIs ); - result = match.replaceFirst( ResultIs ); - } else { - result = line; - suffix = SuffixIs.replaceFirst( "\\$\\d", "idx" ); - } - WriteToIndex( Jobname + suffix + ".idx", result ); - } catch ( Exception ex ) { - System.err.println( ex.getMessage() ); - error = true; - break; - } - } - - if ( ! CloseAllIndex() ) - error = true; - else if ( ! CallAllMakeIndex() ) - error = true; - } catch ( IOException ex ) { - System.err.println( ex.getMessage() ); - } - - try { - rIDX.close(); - } catch ( IOException ex ) { - System.err.println( ex.getMessage() ); - System.exit( 1 ); - } - - if ( error ) - System.exit( 1 ); - - } - - static void WriteToIndex( String Name, String line ) - throws FileNotFoundException, SecurityException { - PrintWriter fOut; - if ( ( fOut = (PrintWriter)IDXwriters.get( Name ) ) == null ) { - if ( Verbose > 1 ) { - System.out.println( "New index file " + Name ); - } - fOut = new PrintWriter( new FileOutputStream( Name ) ); - IDXwriters.put( Name, fOut ); - } - fOut.println( line ); - } - - static boolean CloseAllIndex() { - Iterator all = IDXwriters.entrySet().iterator(); - boolean retVal = true; - while ( all.hasNext() ) { - Map.Entry entry = (Map.Entry)all.next(); - PrintWriter writer = (PrintWriter)entry.getValue(); - if ( Verbose > 1 ) { - System.out.println( "Close " + entry.getKey() ); - } - writer.close(); - if ( writer.checkError() ) { - System.err.println( "Error writing " + entry.getKey() ); - retVal = false; - } - } - return retVal; - } - - static boolean CallAllMakeIndex() { - Iterator all = IDXwriters.entrySet().iterator(); - boolean retVal = true; - ArrayList processes = new ArrayList(); - while ( all.hasNext() ) { - Map.Entry entry = (Map.Entry)all.next(); - String name = (String)entry.getKey(); - try { - MakeIndexArgs.add(name); - String Args[] = new String[MakeIndexArgs.size()]; - Args = (String[])MakeIndexArgs.toArray( Args ); - MakeIndexArgs.remove(MakeIndexArgs.size()-1); - if ( Verbose > 1 ) { - System.out.print( "MakeIndex:" ); - for ( int i = 0; i < Args.length; i++ ) - System.out.print( " \"" + Args[i] + "\"" ); - System.out.println(); - } - processes.add(Runtime.getRuntime().exec( Args )); - } catch ( Exception ex ) { - System.err.println( ex.getMessage() ); - retVal = false; - } - } - - for ( int i = 0; i < processes.size(); i++ ) { - Process p = (Process)processes.get( i ); - InputStream out = p.getInputStream(); - byte[] buffer = new byte[1024]; - for ( boolean oncemore = true; oncemore; ) { - oncemore = false; - try { - while ( out.available() > 0 ) { - out.read( buffer ); - System.out.print( new String(buffer) ); - } - for ( out = p.getErrorStream(); - out.available() > 0; ) { - out.read( buffer ); - System.err.print( new String( buffer ) ); - } - } catch ( Exception ex ) { - System.err.println( ex.getMessage() ); - retVal = false; - } - try { - if ( p.exitValue() != 0 ) - retVal = false; - } catch ( IllegalThreadStateException ex ) { - oncemore = true; - } - } - } - - return retVal; - } -} diff --git a/Master/texmf-dist/doc/latex/splitindex/splitindex.pl b/Master/texmf-dist/doc/latex/splitindex/splitindex.pl deleted file mode 100644 index 378fb25e68c..00000000000 --- a/Master/texmf-dist/doc/latex/splitindex/splitindex.pl +++ /dev/null @@ -1,186 +0,0 @@ -#! /usr/bin/perl -w -eval 'exec perl -S $0 ${1+"$@"}' - if 0; #$running_under_some_shell - -# ====================================================================== -# splitindex.pl -# Copyright (c) Markus Kohm, 2002 -# -# $Id: splitindex.pl,v 1.5 2002/11/05 10:54:27 mjk Exp $ -# -# This file is part of the SplitIndex package -# -# This file can be redistributed and/or modified under the conditions -# of the LaTeX Project Public License, either version 1.2 of this -# license or (at your option) any later version. -# The latest version of this license is in -# http://www.latex-project.org/lppl.txt -# and version 1.2 or later is part of all distributions of LaTeX -# version 1999/12/01 or later. -# -# You are not allowed to redistribute this file without all the -# other files of the SplitIndex package -# ====================================================================== - -use strict; -use Getopt::Long; - -my $makeindex = "makeindex"; -# my $identify = "^(.*)\\\\UseIndex *\\{([^\\}]*)\\}(.*)\$"; -my $identify = "^(\\\\indexentry)\\[([^]]*)\\](.*)\$"; -my $suffixis = "-\$2"; -my $lineis = "\$1\$3"; -my $verbose = 0; # option verbose with default value -my $result = GetOptions( - 'help' => sub { help() }, - 'makeindex=s' => \$makeindex, - 'identify=s' => \$identify, - 'resultis=s' => \$lineis, - 'suffixis=s' => \$suffixis, - 'verbose|v+' => \$verbose, - 'version' => sub { version(); exit 0; } - ); - -usage("missing raw index file") if ( $#ARGV < 0 ); - -my $indexinput = shift; -my $jobname = ( $indexinput =~ /^(.*)\.idx$/ ) ? $1 : $indexinput; - -my %idxfile; -my %linesatidxfile; - -version() if ($verbose > 0); - -if ( !( open (IDX,"<$indexinput") ) ) { - if ( $indexinput ne "$jobname.idx" ) { - open (IDX,"<$jobname.idx") || - die "Cannot read raw index file $indexinput nor $jobname.idx"; - $indexinput = "$jobname.idx"; - } else { - die "Cannot read raw index file $indexinput"; - } -} - -while () { - my $line; - my $suffix; - if ( /$identify/ ) { - my $eval = "\$line = \"$lineis\n\""; - eval $eval; - $eval = "\$suffix = \"$suffixis\""; - eval $eval; - } else { - $line = $_; - $suffix = ""; - $suffix .= "$1" if ( $suffixis =~ /^(.*)\$/ ); - $suffix .= "idx"; - $suffix .= "$1" if ( $suffixis =~ /\$[123456789](.*)$/ ); - } - while ( $suffix =~ /(^[^,]+)(.*)$/ ) { - $suffix = $2; - writetoidx ($1,$line); - } -} - -closeallind(); - -close(IDX); - -generateallind(@ARGV); - -exit 0; - -sub generateallind { - my $name; - my $file; - - if ( $makeindex ne "" ) { - while (($name,$file) = each %idxfile) { - system( "$makeindex @ARGV $jobname$name.idx" ); - } - } -} - -sub closeallind { - my $name; - my $file; - my $lines; - while (($name,$file) = each %idxfile) { - print "Close $jobname$name.idx\n" - if ( $verbose > 1 ); - close( $file ); - $idxfile{$name}=0; - } - if ( $verbose > 0 ) { - print "\n"; - while (($name,$lines) = each %linesatidxfile) { - print "$jobname$name.idx with $lines lines\n"; - } - } -} - -sub writetoidx { - my $suffix = $_[0]; - my $line = $_[1]; - my $file = $idxfile{$suffix}; - if ( ! $file ) { - open ( $file, ">$jobname$suffix.idx" ) || - die "Cannot write to file $jobname$suffix.idx"; - $idxfile{$suffix} = $file; - $linesatidxfile{$suffix} = 0; - print( "New index file $jobname$suffix.idx\n" ) - if ( $verbose > 1 ); - } - print ($file $line); - $linesatidxfile{$suffix}++; -} - -sub help { - version(); - print "\n"; - usage(); - print - "Split a single raw index file into multiple raw index files.\n". - "Example: splitindex.pl foo.idx.\n". - "\n". - "Options:\n" . - " -h, --help " . - "\tshow this help and terminate\n" . - " -m, --makeindex PROGNAME\n" . - "\t\t\tcall PROGNAME instead of default \`makeindex\'.\n" . - " -i, --identify EXPRESSION\n" . - "\t\t\tuse regular EXPRESSION to match entries\n". - "\t\t\t(see also option --resultis and --suffixis).\n". - "\t\t\tDefault is \'$identify\'.\n". - " -r, --resultis PATTERN\n" . - "\t\t\tcreate line to be written from PATTERN after matching\n". - "\t\t\tlines (see also option --identify).\n". - "\t\t\tDefault is \'$lineis\'.\n". - " -s, --suffixis PATTERN\n" . - "\t\t\tcreate suffix to be used from PATTERN after matching\n". - "\t\t\tlines (see also option --identify).\n". - "\t\t\tDefault is \'$suffixis\'.\n". - " -v, --verbose " . - "\tbe more verbose\n". - "\t\t\t(can be used multiple to increase verbosity)\n" . - " --version " . - "\tshow version and terminate\n"; - exit 0; -} - -sub version { - print "splitindex.pl 0.1\n" . - "Copyright (c) 2002 Markus Kohm \\n"; -} - -sub usage { - my $text = "Usage: splitindex.pl [OPTION]... RAWINDEXFILE [MAKEINDEXOPTION]...\n"; - if ( $#_ >= 0 ) { - print STDERR @_; - print STDERR "\n$text"; - print STDERR "Try \`splitindex.pl --help\' for more information.\n"; - exit 1; - } else { - print $text; - } -} diff --git a/Master/texmf-dist/source/latex/splitindex/splitidx.dtx b/Master/texmf-dist/source/latex/splitindex/splitidx.dtx deleted file mode 100644 index 6b279faace6..00000000000 --- a/Master/texmf-dist/source/latex/splitindex/splitidx.dtx +++ /dev/null @@ -1,1505 +0,0 @@ -% \CheckSum{555} -% \iffalse -% ====================================================================== -% splitindex.dtx -% Copyright (c) Markus Kohm, 2002-2006 -% -% $Id: splitidx.dtx,v 1.17 2006/07/29 07:00:46 mjk Exp $ -% -% This file is part of the `SplitIndex bundle'. -% --------------------------------------------- -% -% This file can be redistributed and/or modified under the conditions -% of the LaTeX Project Public License, either version 1.3a of this -% license or (at your option) any later version. -% The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3a or later is part of all distributions of LaTeX -% version 2005/12/01 or later. -% -% This work has status 'maintained'. -% Maintainer is Markus Kohm . -% -% You are not allowed to redistribute this file without all the -% other files of the `SplitIndex bundle'. The list of all files -% belonging to the `SplitIndex bundle' is given in the file -% `manifest.txt'. -% ====================================================================== -% -%<*dtx> -% \fi -\ProvidesFile{splitidx.dtx}[% -% \iffalse -% -%\ProvidesFile{splitidx.drv}[% -%\ProvidesPackage{splitidx}[% -% \fi - 2006/07/30 v1.0 multiple indices for LaTeX] -% \iffalse -%<*driver> -\documentclass{ltxdoc} -\usepackage{color,alltt} -\newcommand*{\Prompt}{{\color{green}\textbf{\$}}} -\newcommand*{\Package}{}\let\Package\textsf -\newcommand*{\Class}{}\let\Class\textsf -\newcommand*{\Program}{}\let\Program\textsf -\newcommand*{\File}{}\let\File\texttt -\newcommand*{\Cmdline}{}\let\Cmdline\texttt -\providecommand*{\url}{\texttt} -\CodelineIndex -\RecordChanges -\EnableCrossrefs -\GetFileInfo{splitidx.dtx} -\title{Creating More Than One Index Using \Package{splitidx} And - \Program{SplitIndex}\thanks{This file is version \fileversion{} of file - \File{\filename}. Nevertheless it should be stable.}} -\author{Markus Kohm\thanks{Markus Kohm \textless komascript\textcircled{\tiny at}gmx.info\textgreater}} -\date{\filedate} -\begin{document} -\maketitle -\begin{abstract} - With \Package{makeidx} there's a standard package at \LaTeX{} to create - one index to each document. But some times more than one index is - needed. There are different packages with different solutions and different - problems to achieve multiple indices. Here is one more. -\end{abstract} -\tableofcontents -\DocInput{splitidx.dtx} -\end{document} -% -% \fi -% -% \DoNotIndex{\DeclareOption,\AtEndOfPackage,\renewcommand,\g@addto@macro} -% \DoNotIndex{\renewcommand,\ProcessOptions,\relax,\newcommand,\emph} -% \DoNotIndex{\providecommand,\@bsphack,\@esphack,\@sanitize,\typeout} -% \DoNotIndex{\begingroup,\endgroup,\jobname,\ifx,\else,\fi,\expandafter} -% \DoNotIndex{\csname,\endcsname,\protected@write,\AtBeginDocument} -% \DoNotIndex{\ifHy@hyperindex,\@indexfile,\thepage,\Hy@temp@A} -% \DoNotIndex{\HyInd@ParenLeft,\HyInd@ParenRight,\string,\@ifstar,\@input@} -% \DoNotIndex{\@ifnextchar,\edef,\let,\@empty,\@for,\@tempa,\xdef,\def} -% \DoNotIndex{\catcode,\lowercase,\do,\@ifundefined,\PackageError} -% \DoNotIndex{\MessageBreak,\gdef,\@namedef,\setcounter,\@gobble.\-,\\} -% \DoNotIndex{\@onlypreamble,\@tempb,\@wrindex,\immediate,\newif,\newwrite} -% \DoNotIndex{\openout,\@gobble} -% -% \section{Introduction} -% -% First of all you have to know how index generation normally would be -% done. Read \cite{makeindex} and e.g. \cite{makeindexmanual} if you -% don't. -% -% Generally you load a package e.g. \Package{makeidx}, put \cs{index} commands -% into your document, which are written as \cs{indexentry} commands to the raw -% index file ``\File{\cs{jobname}.idx}''. Then you call an \emph{index -% processor} like \Program{MakeIndex} or \Program{xindy}, which generates a -% sorted index file ``\File{\cs{jobname}.ind}''. This will be included with a -% command like \cs{printindex} at the end of your document. -% -% Most packages, which allows more than one index, open more than one raw -% index file. Each of these files costs a write file handle. \TeX{} has only -% 16 of these. \LaTeX{} itself needs some of these for e.g. \File{.aux}, -% \File{.toc}, \File{.lot}, \File{.lof} and maybe other more or less temporary -% files depends on what you are doing. With package option \texttt{split} -% package \Package{splitidx} works like those packages. -% -% Without option \texttt{split} the \Package{splitidx} package needs only one -% raw index file like \Package{makeidx} would. This one raw index files -% contains all the index entries for all the indices you defined. But to do so -% \Package{splitidx} and the index processor need help. Before calling the -% index processor the one raw index file has to be splitted into multiple raw -% index files. Each of these contains the index entries of one index. This -% splitting can be done with the \Program{splitindex} program. -% -% There is not only one \Program{SplitIndex} program, there are -% \Program{SplitIndex} programs in different programming languages: -% \begin{description} -% \item[\Program{splitindex.pl}] This is written in perl. You need a perl -% interpreter to run it. If you are a Unix user, you have a perl interpreter -% and you can call \Program{splitindex.pl} like you would call a binary -% program or a shell script from your shell. This is the reference -% implementation. I prefers to use this\,---\,because it was the first, the -% easiest and the shortest to be written. -% \item[\Program{splitindex.jar}] This is written using Sun Java 1.4.1. You -% can find the source at \File{splitindex.java}. I wrote it, because Java is -% everywhere and may be installed everywhere and a lot of people are able to -% understand Java source files. But if you don't have Sun Java 1.4 the start -% of this program will result in errors\,---\,e.g. -% \begin{quote} -% \texttt{Exception in thread "main" java.util.zip.ZipException: No such -% file or directory} -% \end{quote} -% if you try to start it with Sun Java 1.3. -% \item[\Program{splitindex-Linux-i386}] This is a Linux-i386-ELF binary from -% the C source file \File{splitindex.c}. It will be renamed to -% \Program{splitindex} during installation, if you are using Linux-i386. At -% section~\ref{C} you find a introduction in how to compile -% \File{splitindex.c} yourself e.g. if you are using Linux-PPC. I wrote the -% C source, because a lot of people like to have a binary and most software -% authors understand C and some people want fast binaries instead of slow -% Java bit code\,---\,even, if the Java program is fast enough. -% \item[\Program{splitindex-OpenBSD-i386}] This is a OpenBSD-i386 binary from -% the C source file \File{splitindex.c}. It will be renamed to -% \Program{splitindex} during installation, if you are using -% OpenBSD-i386. It is almost the same like -% \Program{splitindex-Linux-i386}\,---\,but it doesn't understand long -% option names. -% \item[\Program{splitindex.exe}] This is a CygWin binary from the C source -% file \File{splitindex.c}. A CygWin binary is a Windows (Win32) binary -% using the CygWin DLL. At section~\ref{C} you find a introduction in how to -% use a CygWin binary without installing a whole CygWin -% environment\,---\,nevertheless it is nice to have a almost complete -% CygWin. -% \item[\Program{splitindex.tex}] This is a \TeX{} version of the -% program. Yes, you are right: it is a program written in \TeX{}. It has not -% the whole functionality of the other programs (see section~\ref{TeX}), but -% it is system independent and you don't need to install a other program -% like perl or Sun Java 1.4. It is not impossible to fix all the -% disadvantages of this program\,---\,but it isn't easy and much more work -% than all the other program. -% \end{description} -% Without the \TeX{} version of \Program{splitindex} all of these programs are -% also able to call the index processor after creating the raw index files. -% -% And where is the lisp, the smalltalk, the prolog, the \dots{} version of -% \Program{splitindex}? Hey, four languages are enough for me! If you need one -% more, write it! -% -% -% \section{Using the \Package{splitidx} package} -% \label{package} -% -% -% \subsection{Generating a raw index} -% -% You may use \Package{splitidx} as a drop-in-replacement for -% \Package{makeidx}. If you do so, you just have to replace: -% \begin{verbatim} -% \usepackage{makeidx} -% \end{verbatim}\vspace{-\baselineskip} -% by -% \begin{verbatim} -% \usepackage{splitidx} -% \end{verbatim}\vspace{-\baselineskip} -% -% \DescribeMacro{\makeindex} -% To activate index generation you may use \cs{makeindex}, which is declared -% by the \LaTeX{} kernel. -% You may also load the package with option -% \texttt{makeindex}: -% \begin{verbatim} -% \usepackage[makeindex]{splitidx} -% \end{verbatim}\vspace{-\baselineskip} -% which is almost the same like: -% \begin{verbatim} -% \usepackage{splitidx}\makeindex -% \end{verbatim}\vspace{-\baselineskip} -% -% \DescribeMacro{\index} -% After loading the package you may use command \cs{index}. You can find the -% description of the argument and features of this command at -% \cite{makeindex}. The \Program{splitindex} programs (see -% section~\ref{program}) put all index entries, which are produced with -% \cs{index} to the index with shortcut ``\texttt{idx}''. -% -% \DescribeMacro{\sindex} -% The \Package{splitidx} package also defines the command \cs{sindex} with the -% syntax: -% \begin{quote} -% \cs{sindex}\oarg{shortcut}\marg{index-entry} -% \end{quote} -% to be used to put an index -% entry into the index with the optional given shortcut. If you omit optional -% \meta{shortcut} the shortcut ``\texttt{idx}'' will be used. -% If you use \cs{sindex} you need to split the raw index file into several raw -% index files, before generating the index with an index processor like -% \Program{MakeIndex}. See section~\ref{program} for more information about -% splitting the raw index file. -% -% The shortcut is used not only to distinguish between the different -% indices. It is also used as part of the name of the raw index file generated -% by a \Program{splitindex} program (see section~\ref{program}) and the -% corresponding index file generated by an index processor like -% \Program{MakeIndex} (see \cite{makeindexmanual}). So you should not use -% characters or symbols at \meta{shortcut} which are not allowed at -% filenames. At file systems, which are not case sensitive, you should not mix -% upper and lower case letters. Best would be, if you'll use only lower case -% letters. -% -% Under some unfortunate circumstances you may be forced to put all your index -% entries back to one index. The easiest way to do this without changing all -% \cs{sindex} commands into \cs{index} commands is the package option -% \texttt{allatone}. If you load the package with: -% \begin{verbatim} -% \usepackage[allatone]{splitidx} -% \end{verbatim}\vspace{-\baselineskip} -% or -% \begin{verbatim} -% \usepackage[allatone,makeindex]{splitidx} -% \end{verbatim}\vspace{-\baselineskip} -% \cs{sindex}\oarg{shortcut}\marg{indexentry} will result in -% \cs{index}\marg{indexentry}. -% -% If you like, you may also declare that \cs{index} should be the same -% like command \cs{sindex}. In this case, you may use package -% option \texttt{useindex}, e.g.: -% \begin{verbatim} -% \usepackage[useindex]{splitidx} -% \end{verbatim}\vspace{-\baselineskip} -% This may be usefull using packages like \textsf{jurabib} that expects -% \cs{index} to be the index command. -% -% \emph{Note: Currently only one of the options \texttt{allatone} and -% \texttt{useindex} can be used at same time. If you are using both -% \texttt{useindex} will be disabled! This may result in many error -% messages!} -% -% -% \subsection{Printing an index} -% -% \DescribeMacro{\newindex} -% If you want to generate more than one index without shortcut, you should -% declare this using \cs{newindex} with syntax: -% \begin{quote} -% \cs{newindex}\oarg{index name}\marg{shortcut}. -% \end{quote} -% The mandatory argument \meta{shortcut} is used to distinguish the different -% indices. See description of \cs{sindex} for more information about this. The -% optional argument \meta{index name} is the name of the index. This is also -% the default heading of this index used from \cs{printindex} and -% \cs{printsubindex}. If you omit \meta{index name} the shortcut will be used -% as index name. -% -% Some people do not like to call an extra program like -% \Program{splitindex}. For those the package option \texttt{split} has been -% implemented. With this option \Package{splitidx} opens a new file for each -% index, which is declared using \cs{newindex}. If you are using this option, -% you have to declare all indices you want to use at the preamble of your -% document. This also uses the default \File{idx} file for index entries to -% index with shortcut \texttt{idx}. The number of index files, you can open is -% limited, if you are using this option. This is because of the limitation of -% output streams \TeX{} provides. With this option not only \cs{newindex} may -% result in an error but also \cs{tableofcontents}, \cs{listoffigures}, -% \cs{listoftables} and each other command, which allocates an output stream. -% -% Some people do not like to write \cs{sindex[foo]}\marg{entry}. They want to -% write \cs{foo}\marg{entry}. For those of you the package option -% `\texttt{idxcommands}' has been implemented. This defines a command with the -% name of the \meta{shortcut} for each declared index. If you are using this -% option, you'll get an error, if a shortcut is the name of an already defined -% command. And if you are using this option, the characters of the shortcuts -% must be letters. -% -% \DescribeMacro{\newprotectedindex} -% Using standard index package \textsf{makeidx} the \LaTeX{} kernel command -% \cs{index} may expand the argument of \cs{index}. The kernel uses -% \cs{@santize} to avoid this in some cases. But this fails, if the argument -% was already read e.g. by another macro. So if you define a macro, that reads -% an argument, does something with the argument and write it to the index this -% may expand the argument. Try following: -% \begin{verbatim} -% \documentclass{article} -% \usepackage{ngerman} -% \usepackage{makeidx}\makeindex -% \newcommand*{\Test}[1]{#1\index{#1}} -% \begin{document} -% \Test{"Anderung} -% "Anderung\index{"Anderung} -% \end{document} -% \end{verbatim}\vspace{-\baselineskip} -% This will result in two entries at the \texttt{.idx} file: -% \begin{verbatim} -% \indexentry{\active@dq \dq@prtct{A}nderung}{1} -% \indexentry{"Anderung}{1} -% \end{verbatim}\vspace{-\baselineskip} -% The first one is something expanded that is not wanted. Package -% \textsf{splitindx} behaves same by default. But if you are using -% \cs{newprotectedindex} to define a new index, it uses a trick so avoid -% expansion. If all indices should behave like this, you may simply use -% package option \texttt{protected}. -% \begin{verbatim} -% \documentclass{article} -% \usepackage{ngerman} -% \usepackage[protected,useindex,makeindex]{makeidx} -% \newcommand*{\Test}[1]{#1\index{#1}} -% \begin{document} -% \Test{"Anderung} -% "Anderung\index{"Anderung} -% \end{document} -% \end{verbatim}\vspace{-\baselineskip} -% Will result in two entries at the \texttt{.idx} file: -% \begin{verbatim} -% \indexentry{"Anderung}{1} -% \indexentry{"Anderung}{1} -% \end{verbatim}\vspace{-\baselineskip} -% If you want to know more about the trick, see command -% \cs{@onelevel@sanitize} at the \LaTeX{} kernel documentation, -% \texttt{source2e}. -% -% -% \DescribeMacro{\printindex} -% \changes{v0.2a}{2003/01/05}{fix of documentation bug} -% The \cs{printindex} command is used to print one index or all indices, which -% are declared using \cs{newindex}. How it behaves depends on the syntax you -% are using. -% -% With syntax -% \begin{quote} -% \cs{printindex}\oarg{shortcut}\oarg{index name} -% \end{quote} -% the index file with the optional shortcut will be loaded and titled with -% optional given index name. If \meta{index name} is omitted the default index -% name declared with \cs{newindex} will be used. -% -% If the both optional arguments, \meta{shortcut} and \meta{index name}, are -% omitted and you are using simply -% \begin{quote} -% \cs{printindex} -% \end{quote} -% it behaves like \cs{printindex} from package \Package{makeidx}. You should -% not use this, if you are using \cs{sindex} with optional argument. -% -% You may also print all indices, which were declared using \cs{newindex}. Use -% syntax: -% \begin{quote} -% \cs{printindex*} -% \end{quote} -% to do so. The indices will be printed in the order you declared them using -% \cs{newindex}. -% -% \cs{printindex} uses the default index output of the class and the -% index processor you are using. Most this will be \texttt{theindex} -% environment, but it needn't. But \cs{printindex} will fail to set the name -% of the index if \cs{indexname} isn't use to print the name of the -% index. This would be a failure of the class not of the \Package{splitidx} -% package. I don't know any class with this failure. -% -% -% \DescribeMacro{\printsubindex} -% The \cs{printsubindex} command behaves like \cs{printindex} with same syntax -% but it does some redefinitions before printing the index, to: -% \begin{itemize} -% \item use \cs{section} instead of \cs{chapter} level at classes, which have -% \cs{chapter} and \cs{subsection} instead of \cs{section} level at classes, -% which haven't \cs{chapter}, -% \item deactivate \cs{onecolumn}, \cs{twocolumn} and \cs{clearpage}, -% \cs{cleardoublepage} to start a new page at each index, -% \item change the mark mechanism not to use \cs{markboth} but \cs{markright} -% for setting up the running headline. -% \end{itemize} -% Using this you can print multiple indices at one chapter, if you are using a -% class with \cs{chapter}, or at one section, if you are using a class without -% \cs{chapter}. -% -% -% \DescribeMacro{\setindexpreamble} -% If you are using a KOMA-Script class, you'll know this command. Package -% \Package{splitidx} redefines this command to syntax: -% \begin{quote} -% \cs{setindexpreamble}\oarg{shortcut}\marg{preamble} -% \end{quote} -% So you can define a preamble for each index. Note: Package -% \Package{splitidx} doesn't print the preamble itself. But it lets -% \cs{index@preamble} to be the preamble of the index with the actual -% shortcut, before printing an index using \cs{printindex} or -% \cs{printsubindex}. -% -% -% \DescribeMacro{\useindexpreamble} -% If you are defining your own index environment or if you extend -% \texttt{theindex} environment using e.g. \cs{extendtheindex}, you may use -% \cs{useindexpreamble} with syntax: -% \begin{quote} -% \cs{useindexpreamble}\oarg{additional commands} -% \end{quote} -% to print the preamble of the actual index, which was set using -% \cs{setindexpreamble}. This is not related to the KOMA-Script classes, it -% can also be used e.g. with the standard classes. The commands from optional -% argument \meta{additional commands} are only used, if the preamble is -% defined and not empty. -% -% -% \DescribeMacro{\indexshortcut} -% The macro \cs{indexshortcut} is only defined at \cs{printindex} and -% \cs{printsubindex}. It expands to the shortcut of the actual index. So you -% may use it at your own index environment or extending the \texttt{theindex} -% environment using e.g. \cs{extendtheindex}. -% -% -% \DescribeMacro{\extendtheindex} -% Most classes define the environment \texttt{theindex} to be used for -% printing the index. Using \cs{extendtheindex} with syntax -% \begin{quote} -% \cs{extendtheindex}\marg{before begin}\marg{after begin}^^A -% \marg{before end}\mbox{\marg{after end}} -% \end{quote} -% you may extend this command. The commands from \meta{before begin} are used -% at \cs{begin\{theindex\}} just after starting the group but before starting -% the index. The commands from \meta{after begin} are used after -% \cs{begin\{theindex\}}. The commands from \meta{before end} are used before -% \cs{end\{theindex\}}. The commands from \meta{after end} are used at -% \cs{end\{theindex\}} just after ending the index but just before ending the -% group. -% -% -% \subsection{Examples} -% \label{examples} -% -% Let's see how you may get more than one index. The text of the example is -% silly, so don't think about the text, think about the usage of -% \Package{splitidx}. -% -% \begin{flushleft}\ttfamily -% \cs{documentclass}\{article\} \percentchar \textit{ We use \Class{article} -% class \dots}\\ -% \cs{usepackage}\{splitidx\} \percentchar \textit{ \dots\ and the -% \Package{splitidx} package}\\ -% \cs{makeindex} \percentchar \textit{ And we want index generation}\\ -% ~\\ -% \percentchar \textit{ We define 4 indices:}\\ -% \cs{newindex}[General Index]\{idx\} \percentchar \textit{ Name and shortcut -% of the 1st index}\\ -% \cs{newindex}[Index of Animals]\{ani\} \percentchar \textit{ \dots\ 2nd -% index}\\ -% \cs{newindex}[Index of Fruits]\{fru\} \percentchar \textit{ \dots\ 3rd -% index}\\ -% \cs{newindex}[Index of Vegetables]\{veg\} \percentchar \textit{ \dots\ 4th -% index}\\ -% ~\\ -% \cs{begin}\{document\}\\ -% Apples\cs{sindex}[fru]\{apple\} \percentchar \textit{ an entry to -% }fru\texttt{ index}\\ -% and oranges\cs{sindex}[fru]\{orange\} \percentchar \textit{ an entry to -% }fru\texttt{ index}\\ -% are fruits\cs{sindex}\{fruits\}.\ \percentchar \textit{ an implicit entry -% to }idx\textit{ index}\\ -% Tomatoes\cs{sindex}[veg]\{tomato\} \percentchar \textit{ an entry to -% }veg\textit{ index}\\ -% are\\ -% vegetables\cs{index}\{vegetables\}.\ \percentchar \textit{ an implicit -% entry to }idx\textit{ index}\\ -% Cats\cs{sindex}[ani]\{cat\} \percentchar \textit{ an entry to -% }ani\textit{ index}\\ -% are animals\cs{sindex}[idx]\{animals\}.\ \percentchar \textit{ an explicite -% entry to }idx\textit{ index}\\ -% ~\\ -% \cs{printindex*} \percentchar \textit{ print all indices}\\ -% \cs{end}\{document\} -% \end{flushleft} -% After processing the file above with \LaTeX{} you'll get a raw index file -% with following contents: -% \begin{verbatim} -% \indexentry[fru]{apple}{1} -% \indexentry[fru]{orange}{1} -% \indexentry{fruits}{1} -% \indexentry[veg]{tomato}{1} -% \indexentry{vegetables}{1} -% \indexentry[ani]{cat}{1} -% \indexentry[idx]{animals}{1} -% \end{verbatim}\vspace{-\baselineskip} -% Section~\ref{program} shows, how you can process this raw index file to get -% several raw index files and several index files. You will get four index -% files. Each of it will be input with the single \cs{printindex*} command at -% the example above. Each will produce a single section starting on an new -% page with one column section headings ``General Index'', ``Index of -% Animals'', ``Index of Fruits'' and ``Index of Vegetables''. Each index is -% printed in twocolumn mode. -% -% Maybe you would like to have all indices being subsections at one -% section. You can do this, if you replace the \cs{printindex*} command at the -% example above by the following: -% \begin{flushleft}\ttfamily -% \cs{twocolumn}[\percentchar\textit{ set the title onecolumn}\\ -% \ \cs{section*}\{Indices\} \percentchar\textit{ the section with the -% indices}\percentchar\\ -% \ \cs{markboth}\{Indices\}\{Indices\} \percentchar\textit{ setting up the -% running headline }\percentchar\\ -% ]\percentchar\textit{ but the indices twocolumn}\\ -% \cs{printsubindex*} \percentchar\textit{ print all indices} -% \end{flushleft} -% Note that I've used \cs{printsubindex*} instead of \cs{printindex*} at this -% modification. You don't need to setup the running headline, if you are using -% page style \texttt{plain}, which is default at \Class{article} class. But if -% you're using page style \texttt{headings} you should do this, if you are -% using \cs{section*}. If you are using a KOMA-Script class, you can use -% \cs{addsec} or \cs{addsec*} instead of \cs{section*} to not need manual -% updating of the running headline. -% -% Maybe you want the general index to be the section, while the other indices -% should be subsections of the general index. Maybe you'll try to replace the -% above by the following: -% \begin{flushleft}\ttfamily -% \percentchar\textit{\#\#\#\#\# This will not do the thing you wanted! -% \#\#\#\#\#}\\ -% \cs{printindex}[idx] \percentchar\textit{ print index }idx\textit{ as -% section}\\ -% \cs{printsubindex}[ani] \percentchar\textit{ print index }ani\textit{ as -% subsection}\\ -% \cs{printsubindex}[fru] \percentchar\textit{ print index }fru\textit{ as -% subsection}\\ -% \cs{printsubindex}[veg] \percentchar\textit{ print index }veg\textit{ as -% subsection}\\ -% \end{flushleft} -% But this will result in a twocolumn section with general index \texttt{idx} -% and three onecolumn subsections with the other indices and a page break -% after the general index. Why? At the end of \texttt{theindex} environment of -% \cs{printindex} the onecolumn mode, which was valid before \cs{printindex} -% will be restored. If twocolumn mode was valid before \cs{printindex} a -% \cs{clearpage} command will be included at the end of \texttt{theindex}. -% So what's the solution? Remembering the \cs{extendtheindex} command you can -% write: -% \begin{flushleft}\ttfamily -% \cs{begingroup} \percentchar\textit{ hold following extension local to this -% group}\\ -% \ \cs{extendtheindex}\percentchar \textit{ some changes of -% }theindex\textit{ environment}\\ -% \ \ \{\}\percentchar\textit{ no change before beginning}\\ -% \ \ \{\}\percentchar\textit{ no change after beginning}\\ -% \ \ \{\cs{let}\cs{onecolumn}\cs{relax} \percentchar\textit{ deactivate -% \cs{onecolumn} before ending}\\ -% \ \ \ \cs{let}\cs{clearpage}\cs{relax} \percentchar\textit{ deactivate -% \cs{clearpage} before ending}\\ -% \ \ \}\percentchar \textit{ changes before ending}\\ -% \ \ \{\}\percentchar\textit{ no change after ending}\\ -% \ \cs{printindex}[idx] \percentchar\textit{ print index }idx\textit{ as -% section}\\ -% \cs{endgroup} \percentchar\textit{ end group with extended }theindex\textit{ -% environment}\\ -% \cs{printsubindex}[ani] \percentchar\textit{ print index }ani\textit{ as -% subsection}\\ -% \cs{printsubindex}[fru] \percentchar\textit{ print index }fru\textit{ as -% subsection}\\ -% \cs{printsubindex}[veg] \percentchar\textit{ print index }veg\textit{ as -% subsection}\\ -% \cs{onecolumn} \percentchar\textit{ finish the indices} -% \end{flushleft} -% With this extension the whole index will be set twocolumn with no page break -% before the first subsection. But you have to switch back to onecolumn mode -% manually at the end of the indices. -% -% The example above may be modified, if you want a onecolumn index: -% \begin{flushleft}\ttfamily -% \cs{begingroup} \percentchar\textit{ hold following extension local to this -% group}\\ -% \ \cs{makeatletter} \percentchar\textit{ allow }@\textit{ at macro names}\\ -% \ \cs{extendtheindex}\percentchar \textit{ some changes of -% }theindex\textit{ environment}\\ -% \ \ \{\cs{let}\cs{twocolumn}\cs{@firstoptofone} \percentchar\textit{ -% deactivate \cs{twocolumn}}\\ -% \ \ \ \cs{let}\cs{onecolumn}\cs{@firstoptofone} \percentchar\textit{ -% deactivate \cs{twocolumn}}\\ -% \ \ \ \cs{let}\cs{clearpage}\cs{relax} \percentchar\textit{ deactivate -% \cs{clearpage}}\\ -% \ \ \}\percentchar \textit{ changes before beginning}\\ -% \ \ \{\}\percentchar\textit{ no change after beginning}\\ -% \ \ \{\}\percentchar\textit{ no change before ending}\\ -% \ \ \{\}\percentchar\textit{ no change after ending}\\ -% \ \cs{makeatother} \percentchar\textit{ deactivate \cs{makeatletter}}\\ -% \ \cs{printindex} \percentchar\textit{ print index}\\ -% \cs{endgroup} \percentchar\textit{ end group with extended }theindex\textit{ -% environment} -% \end{flushleft} -% This not only works with splitted index. You may use this also with one -% single index. -% -% I hope, that these examples were useful to understand, how to use -% \Package{splitidx}. Next section will show you, how to generate the indices -% from a single raw index. -% -% -% \section{Splitting the index} -% \label{program} -% -% At most you'll call one of the \Program{splitindex} programs with one -% parameter, the name of the raw index file, to split the raw index file into -% several raw index files and call the index processor -% \Program{MakeIndex}. Some of you will also set options to use another index -% processor e.g. \Program{xindy} or to set some options of the index processor -% e.g. ``\Cmdline{-g}'' to use German sorting with \Program{MakeIndex}. Only -% few of you will also change the parsing of the raw index file and the -% generation if the filenames and contents of the several new raw index files. -% -% The names of the options and the syntax of the Arguments is same at all of -% the programs except \Program{splitindex.tex} (see section~\ref{TeX}): -% \begin{description}\setlength{\labelsep}{1em} -% \item[\texttt{--help}] -% \item[{\makebox[1.2em][l]{\texttt{-h}}}]\vspace{-2\itemsep} -% Show information about usage, options and arguments and terminate without -% processing a index file. -% \item[\texttt{--makeindex} \meta{program name}]~ -% \item[\texttt{-m} \meta{program name}]\vspace{-2\itemsep} -% Call \meta{program name} -% instead of \Program{makeindex} to process each generated raw index -% file. You may set this variable to an empty value. How this may be done -% depends on the shell, which you are using. Using bash you may achieve an -% empty value e.g. using \texttt{""} or \texttt{''}. An empty value means: -% Don't call an index processor. -% \item[\texttt{--identify} \meta{regular expression}]~ -% \item[\texttt{-i} \meta{regular expression}]\vspace{-2\itemsep} -% Uses \meta{regular -% expression} to identify the index short cut and the contents of the -% raw index file with this shortcut. The default value is: -% ``\verb|^(\\indexentry)\[([^]]*)\](.*)$|''. This means: -% \begin{description} -% \item[{\makebox[1em][l]{\texttt{\textasciicircum}}}] -% Search from beginning of the line. -% \item[\texttt{(\string\\indexentry)}]~\par -% Search for ``\verb|\indexentry|'' and -% set group 1 to this. -% \item[{\makebox[1em][l]{\texttt{\string\[}}}] -% Search for ``\verb|[|'' and ignore it. -% \item[\texttt{([\textasciicircum]]*)}]~\par -% Search for any character which is not ``]'' and set group 2 to this. -% \item[{\makebox[1em][l]{\texttt{\string\]}}}] -% Search for ``\verb|]|'' and ignore it. -% \item[\texttt{(.*)\$}]~\par -% Search for all characters till end of line and set group 3 to these. -% \end{description} -% The \meta{regular expression} is POSIX~1003.2 compatible. -% \item[\texttt{--resultis} \meta{pattern}]~ -% \item[\texttt{-r} \meta{pattern}]\vspace{-2\itemsep} -% Set the lines, which are written to the -% generated raw index files after identification (see option -% \texttt{--identify}) to \meta{pattern}. Each \texttt{\$}\meta{digit} at -% \meta{pattern} will be replaced by the corresponding group, e.g. \verb|$1| -% will be replaced by the first group (see \texttt{--identify}). The default -% is: ``\verb|$1$3|'', which means: contents of group 1 and group 3. -% -% If the \meta{regular expression} of option \texttt{--identify} doesn't -% match a line at the raw index file the line itself will be written. -% \item[\texttt{--suffixis} \meta{pattern}]~ -% \item[\texttt{-s} \meta{pattern}]\vspace{-2\itemsep} -% Set the suffix of the names of the generated raw index files after -% identification (see option \texttt{--identify}) to \meta{pattern}. Each -% \texttt{\$}\meta{digit} at \meta{pattern} will be replaced by the -% corresponding group, e.g. \verb|$1| will be replaced by the first group -% (see \texttt{--identify}). The default is: ``\verb|-$2|'', which means: -% character `\texttt{-}' followed by contents of group 2. -% -% If the \meta{regular expression} of option \texttt{--ifentify} doesn't -% match a line at the raw index file, all groups will be set to -% ``\texttt{idx}''. -% \item[\texttt{--verbose}] -% \item[{\makebox[1.2em][l]{\texttt{-v}}}]\vspace{-2\itemsep} -% Increase verbosity by one. More verbose means: tell the user more about, -% what the program is doing. -% \item[\texttt{--version}] -% \item[{\makebox[1.2em][l]{\texttt{-V}}}]\vspace{-2\itemsep} -% Show information about program version and terminate without processing a -% index file. -% \end{description} -% The OpenBSD binary \Program{splitindex-OpenBSD-i386} doesn't understand the -% long option names (\texttt{--makeindex}, \texttt{--identify} \dots). But you -% can use the alternative short option names (\texttt{-m}, \texttt{-i} \dots). -% -% The first no-option-argument at the command line is the name if the raw -% index file, which has to be processed. All arguments, which follow the -% argument ``\texttt{--}'' are interpreted as no-optional-arguments. All but -% the first no-option-arguments will be passed to the index processor. -% -% You will find some examples at the following subsections. -% -% -% \subsection{Using \Program{splitindex.pl}} -% \label{perl} -% -% This is the reference implementation. Let's use an example to demonstrate, -% how it works. If you have following \LaTeX{} file ``\File{allabout.tex}'': -% \begin{verbatim} -% \documentclass{article} -% \usepackage[makeindex]{splitidx} -% \begin{document} -% Apples\sindex[fru]{apple} and oranges\sindex[fru]{orange} are -% fruits\sindex{fruits}. -% Tomatos\sindex[veg]{tomato} are vegetables\sindex{vegetables}. -% Cats\sindex[ani]{cat} are animals\sindex[idx]{animals}. -% \end{document} -% \end{verbatim}\vspace{-\baselineskip} -% this generates a file ``File{allabout.idx}'': -% \begin{verbatim} -% \indexentry[fru]{apple}{1} -% \indexentry[fru]{orange}{1} -% \indexentry{fruits}{1} -% \indexentry[veg]{tomato}{1} -% \indexentry{vegetables}{1} -% \indexentry[ani]{cat}{1} -% \indexentry[idx]{animals}{1} -% \end{verbatim}\vspace{-\baselineskip} -% -% This file can't be processed by a index processor like -% \Program{MakeIndex}. If you want so split these raw index file into several -% and run the default index processor, you do the following call (the -% \Prompt{} is a symbol for the shell prompt): -% \begin{quote} -% \Prompt{}\verb|splitindex.pl allabout.idx| -% \end{quote} -% You may omit the extension ``\File{.idx}'': -% \begin{quote} -% \Prompt{}\verb|splitindex.pl allabout| -% \end{quote} -% Both commands will result in a file \File{allabout-fru.idx}: -% \begin{verbatim} -% \indexentry[fru]{apple}{1} -% \indexentry[fru]{orange}{1} -% \end{verbatim}\vspace{-\baselineskip} -% a file \File{allabout-idx.idx} -% \begin{verbatim} -% \indexentry{fruits}{1} -% \indexentry{vegetables}{1} -% \indexentry{animals} -% \end{verbatim}\vspace{-\baselineskip} -% a file \File{allabout-veg.idx}: -% \begin{verbatim} -% \indexentry[veg]{tomato}{1} -% \end{verbatim}\vspace{-\baselineskip} -% and a file \File{allabout-ani.idx}: -% \begin{verbatim} -% \indexentry[ani]{cat}{1} -% \end{verbatim}\vspace{-\baselineskip} -% After generation of these files, it calls the default index processor using -% the command lines: -% \begin{verbatim} -% makeindex allabout-fru.idx -% makeindex allabout-idx.odx -% makeindex allabout-veg.idx -% makeindex allabout-ani.idx -% \end{verbatim}\vspace{-\baselineskip} -% These calls create the raw index files \File{allabout-fru.ind}, -% \File{allabout-idx.ind}, \File{allabout-veg.ind} and -% \File{allabout-ani.ind}, which can be loaded to the document using -% e.g. \cs{printindex} from package \Package{splitidx}. -% -% If you don't want \Program{splitindex} to call any index processor, use -% \begin{quote} -% \Prompt{}\verb|splitindex.pl -m "" allabout| -% \end{quote} -% instead of the shell command above. -% -% You may achieve the same files like above using (it's one input line not two -% like shown here): -% \begin{quote}\raggedright -% \Prompt{}\verb|splitindex.pl -i '^\\indexentry\[([^]]*)\](.*)$'| -% \verb|-s '-$1'| \verb|-r '\\indexentry$2' allabout| -% \end{quote} -% -% If you want \Program{splitindex} to call \Program{makeindex} with additional -% options ``\verb|-s foo.ist|'' to use the MakeIndex style file -% \File{foo.ist}, you can do this call: -% \begin{quote} -% \Prompt{}\verb|splitindex.pl allabout -- -s foo.ist| -% \end{quote} -% As you see ``\verb|--|'' is used to tell \Program{splitindex} to not -% interprete ``\verb|-s foo.ist|'' as option ``\verb|--suffixis foo.ist|''. -% All \Program{splitindex} options must be put before ``\verb|--|'' but you -% can put the raw file argument ``\verb|allabout|'' after that: -% \begin{quote} -% \Prompt{}\verb|splitindex.pl -- allabout -s foo.ist| -% \end{quote} -% -% If you want so use index processor \Program{xindy} instead of default index -% processor \Program{MakeIndex} you can do this call: -% \begin{quote} -% \Prompt{}\verb|splitindex.pl -m xindy allabout| -% \end{quote} -% If this is not at the standard \texttt{PATH} you may set the whole path: -% \begin{quote} -% \Prompt{}\verb|splitindex.pl -m /home/me/bin/xindy allabout| -% \end{quote} -% With most perl implementations perl module \verb|Getopt::Long| allows to -% put options after no-option-arguments. So you may also write: -% \begin{quote} -% \Prompt{}\verb|splitindex.pl allabout -m /home/me/bin/xindy| -% \end{quote} -% with the same result. -% -% -% \subsection{Using \Program{splitindex.jar}} -% \label{Java} -% -% This should also be portable. If you are not using Sun Java 1.4.1 you may -% try to recompile this using the shell command: -% \begin{quote} -% \Prompt{}\verb|javac splitindex.java| -% \end{quote} -% This should result in a new \File{splitindex.class}. But it will fail -% e.g. with Sun Java 1.3, because regular expressions are needed, which are -% not available at Sun Java 1.3. -% -% The call of \Program{splitindex.class} is almost the same like shown at -% section~\ref{perl} for \Program{splitindex.pl}, but you have to replace -% ``\verb|splitindex.pl|'' by ``\verb|java splitindex|''. So the last example -% from section~\ref{perl} becomes: -% \begin{quote} -% \Prompt{}\verb|java splitindex allabout -m /home/me/bin/xindy| -% \end{quote} -% -% -% \subsection{Using \Program{splitindex} or \Program{splitindex.exe}} -% \label{C} -% -% The Linux program \Program{splitindex} was compiled using glibc, so it works -% same like \Program{splitindex.pl} and you may use not only: -% \begin{quote} -% \Prompt{}\verb|splitindex -m /home/me/bin/xindy allabout| -% \end{quote} -% but also: -% \begin{quote} -% \Prompt{}\verb|splitindex allabout -m /home/me/bin/xindy| -% \end{quote} -% -% But the CygWin program \Program{splitindex.exe} was compiled using a -% CygWin library. Because of this all options must be put before the first -% no-option-argument. So you have to use: -% \begin{quote} -% \Prompt{}\verb|splitindex.exe -m /home/me/bin/xindy allabout| -% \end{quote} -% At: -% \begin{quote} -% \Prompt{}\verb|splitindex.exe allabout -m /home/me/bin/xindy| -% \end{quote} -% the arguments ``\verb|-m /home/me/bin/xindy|'' will be passed to the default -% index processor \Program{MakeIndex}! -% -% You need the CygWin-DLL \File{cygwin1.dll} to run -% \Program{splitindex.exe}. If you haven't already installed it, you may -% download the DLL from \url{http://cygwin.com/snapshots}. You need -% \Program{bzip2}, which can be found at \url{http://source.redhat.com/bzip2}, -% to decompress it. You may use \url{http://cygwin.com/setup.exe} to download -% and install a minimal CygWin environment alternatively. -% -% The Linux-i386-ELF binary \Program{splitindex} was compiled and linked -% using: -% \begin{quote}\raggedright -% \Prompt{}\verb|gcc -O3 -Wall -osplitindex splitindex.c|\\ -% \Prompt{}\verb|strip splitindex|\\ -% \end{quote} -% The \Program{gcc} was: -% \begin{verbatim} -% gcc (GCC) 3.2 -% Copyright (C) 2002 Free Software Foundation, Inc. -% \end{verbatim}\vspace{-\baselineskip} -% The used \Program{glibc} is version 2.1. -% -% If you compile another binary e.g. for BSD, please contact me, so we may put -% the new binary into the distribution or can build another binary -% distribution. -% -% -% \subsection{Using \Program{splitindex.tex}} -% \label{TeX} -% -% The \TeX{} or \LaTeX{} program \Program{splitindex.tex} doesn't know any -% options or arguments. It number of files, which can be generated, is limited -% to to number of \TeX's free write handles. If there are other lines than -% ``\verb|\indexentry|''-lines at the raw index file, running -% \Program{splitindex.tex} will result in an error. -% -% You may use \Program{splitindex.tex} interactive: -% \begin{quote} -% \Prompt{}\verb|tex splitindex| -% \end{quote} -% or -% \begin{quote} -% \Prompt{}\verb|latex splitindex| -% \end{quote} -% If you do so, you will be asked for the name of the raw index file. You have -% to omit the extension ``\File{.idx}'' answering that question. -% -% You may also use the \Program{splitindex.tex} not interactive e.g. if you -% are working with a batch. To do so you have to define macro \cs{IDX} to the -% name of the raw index file without extension ``\texttt{.idx}''. So the first -% example of section~\ref{perl} would become: -% \begin{quote} -% \Prompt{}\verb|tex \def\IDX{allabout}\input splitindex| -% \end{quote} -% You may also use \LaTeX{} instead of \TeX: -% \begin{quote} -% \Prompt{}\verb|latex \def\IDX{allabout}\input splitindex| -% \end{quote} -% -% The current version of \Program{splitindex.tex} doesn't call any index -% processor. But maybe in future a version will be able to do so. -% -% \StopEventually{^^A -% \begin{thebibliography}{99} -% \bibitem{makeindex} \textsc{Leslie Lamport}: \textit{MakeIndex: An Index -% Processor For \LaTeX}, 17 February 1987 -% \bibitem{makeindexmanual} \textsc{Pehong Chen}, \textsc{Rick P. C. Rodgers}: -% \textit{MAKEINDEX(1L)}, Manual page, 10 December 1991 -% \end{thebibliography} -% \PrintIndex\PrintChanges} -% -% -% \section{Combining Indices} -% -% Now you should know, how to use package \Package{splitidx} and the -% \Program{SplitIndex} programs to split the index. But what about combining -% two or more indices to one, e.g. you don't want vegetables and fruits in the -% same index? Try this: -% \begin{flushleft}\ttfamily -% \cs{documentclass}\{article\} \percentchar \textit{ We use \Class{article} -% class \dots}\\ -% \cs{usepackage}\{splitidx\} \percentchar \textit{ \dots\ and the -% \Package{splitidx} package}\\ -% \cs{makeindex} \percentchar \textit{ And we want index generation}\\ -% ~\\ -% \percentchar \textit{ We define 4 indices:}\\ -% \cs{newindex}[General Index]\{idx\} \percentchar \textit{ Name and shortcut -% of the 1st index}\\ -% \cs{newindex}[Index of Animals]\{ani\} \percentchar \textit{ \dots\ 2nd -% index}\\ -% \cs{newindex}[Index of Fruits And Vegetables]\{fru\} \percentchar -% \textit{ \dots\ 3rd -% index}\\ -% ~\\ -% \cs{begin}\{document\}\\ -% Apples\cs{sindex}[fru]\{apple\} \percentchar \textit{ an entry to -% }fru\texttt{ index}\\ -% and oranges\cs{sindex}[fru]\{orange\} \percentchar \textit{ an entry to -% }fru\texttt{ index}\\ -% are fruits\cs{sindex}\{fruits\}.\ \percentchar \textit{ an implicit entry -% to }idx\textit{ index}\\ -% Tomatoes\cs{sindex}[veg]\{tomato\} \percentchar \textit{ an entry to -% }veg\textit{ index}\\ -% are\\ -% vegetables\cs{index}\{vegetables\}.\ \percentchar \textit{ an implicit -% entry to }idx\textit{ index}\\ -% Cats\cs{sindex}[ani]\{cat\} \percentchar \textit{ an entry to -% }ani\textit{ index}\\ -% are animals\cs{sindex}[idx]\{animals\}.\ \percentchar \textit{ an explicite -% entry to }idx\textit{ index}\\ -% ~\\ -% \cs{printindex*} \percentchar \textit{ print all indices}\\ -% \cs{end}\{document\} -% \end{flushleft} -% And do the following call after splitting the index using -% \Program{SplitIndex}: -% \begin{quote}\raggedright -% \Prompt{}\verb|makeindex allabout-veg.idx allabout-fru.idx|\\ -% \end{quote} -% Alternatively you can concatenate \File{allabout-fru.idx} to -% \File{allabout-veg.idx} before running the index processor on -% \File{allabout-veg.idx}. -% -% -% -% \section{Implementation of \Package{splitidx}} -% -% \begin{macrocode} -%<*package> -% \end{macrocode} -% -% \subsection{Options} -% -% The first option is used to activate index generation. -% \begin{macrocode} -\DeclareOption{makeindex}{\AtEndOfPackage{\makeindex}} -% \end{macrocode} -% -% \changes{v0.9}{2006/05/07}{new option \texttt{useindex}} -% With option \texttt{useindex} the original command \cs{index} behaves like -% \cs{sindex}. -% \begin{macrocode} -\DeclareOption{useindex}{% - \def\@se@nd@xc@d@{\let\index\sindex}% - \AtEndOfPackage{\@se@nd@xc@d@}% -} -\let\@se@nd@xc@d@\relax -% \end{macrocode} -% -% There is also an option to make \cs{sindex} ignores the optional argument and -% behaves like \cs{index}. -% \begin{macrocode} -\DeclareOption{allatone}{% - \ifx\@se@nd@xc@d@\relax\else - \PackageInfo{splitidx}{option `allatone' overwrites option `useindex'}% - \let\@se@nd@xc@d@\relax - \fi - \AtEndOfPackage{% - \renewcommand*{\sindex}[1][]{\index}% - \g@addto@macro\makeindex{\renewcommand*{\sindex}[1][]{\index}}% - }% -} -% \end{macrocode} -% -% \changes{v0.9}{2006/05/07}{new option \texttt{protected}} -% Do not expand index arguments. -% \begin{macrocode} -\newif\if@verbindex\@verbindexfalse -\DeclareOption{protected}{\@verbindextrue} -% \end{macrocode} -% -% \changes{v0.2}{2002/11/15}{new option \texttt{idxcommands}} -% With option \texttt{idxcommands} every \cs{newindex} also defines a new index -% command. -% \begin{macrocode} -\newif\if@newidxcmd\@newidxcmdfalse -\DeclareOption{idxcommands}{\@newidxcmdtrue} -% \end{macrocode} -% -% \changes{v0.2}{2002/11/15}{new option \texttt{split}} -% With option \texttt{split} each index uses its own index file. -% \begin{macrocode} -\newif\if@splitidx\@splitidxfalse -\DeclareOption{split}{\@splitidxtrue} -% \end{macrocode} -% -% Processing the options -% \begin{macrocode} -\ProcessOptions\relax -% \end{macrocode} -% -% -% \subsection{Setting an Index Entry} -% -% \begin{macro}{\see} -% \begin{macro}{\seealso} -% \begin{macro}{\seename} -% \begin{macro}{\alsoname} -% These are four standard macros, which are also defined at -% \Package{makeidx}. Hey, these definitions are stolen from \Package{makeidx}! -% No, no, I'm not a bad guy, read ``\File{legal.txt}'', which comes with -% \Package{makeidx}. -% \begin{macrocode} -\newcommand*\see[2]{\emph{\seename} #1} -\providecommand*\seealso[2]{\emph{\alsoname} #1} -\providecommand\seename{see} -\providecommand*\alsoname{see also} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\sindex} -% \begin{macro}{\@wrsindex} -% \changes{v0.9}{2006/03/07}{optionally do not expand the index argument} -% \begin{macro}{\@@wrsindex} -% This works similar to original \cs{index} but uses a splitted index. So it -% allows an optional argument. -% \begin{macrocode} -\newcommand*{\sindex}[2][]{% -} -\g@addto@macro\makeindex{% - \renewcommand*{\sindex}{% - \@bsphack\begingroup - \@sanitize - \@wrsindex - }% - \typeout{Using splitted index at \jobname.idx}% - \@se@nd@xc@d@ -} -% \end{macrocode} -% At the following \cs{@@wrsindex} is used as a hook. If it is defines, it is -% used to write out the index entry. This hook may be used from -% e.g. \Package{hyperref} to add \verb|hyperpage| to the font selection of the -% page number. This only works with \verb+encap |+. -% \changes{v1.0}{2006/07/30}{one level expansion of \cs{\@tempa} for -% hyperref hook} -% \begin{macrocode} -\newcommand*{\@wrsindex}[2][]{% - \ifx\relax#1\relax - \if@splitidx - \@wrsindex[idx]{#2}% - \else - \def\@tempa{#2}% - \if@verbindex\@onelevel@sanitize\@tempa\fi - \@wrindex{\@tempa}% - \fi - \else - \def\@tempa{#2}% - \csname index@#1@hook\endcsname - \expandafter\ifx\csname @@wrsindex\endcsname\relax - \@@@wrsindex{#1}{{\@tempa}{\thepage}}% - \else - \def\@tempb{\@@wrsindex{#1}}% - \expandafter\@tempb\@tempa||\\% - \fi - \endgroup - \@esphack - \fi -} -\newcommand*{\@@@wrsindex}[2]{% - \begingroup - \if@splitidx - \expandafter\ifx\csname @indexfile@#1\endcsname\relax - \PackageError{splitidx}{% - Index entry for not existing index% - }{% - You've tried to set an index to index `#1', without - defining\MessageBreak - that index before using \string\newindex.\MessageBreak - This is only allowed, if you are not using package option - `split'.% - }% - \else - \expandafter\protected@write\csname @indexfile@#1\endcsname{}{% - \string\indexentry#2% - }% - \fi - \else - \protected@write\@indexfile{}{% - \string\indexentry[#1]#2% - }% - \fi - \endgroup -} -% \end{macrocode} -% If \Package{hyperref} was loaded at \cs{begin\{document\}} and -% \Package{hyperref}-option \texttt{hyperindex} isn't disabled, and the hook -% is not used, define it: -% \begin{macrocode} -\AtBeginDocument{% - \begingroup\expandafter\expandafter\expandafter\endgroup - \expandafter\ifx\csname ifHy@hyperindex\endcsname\relax - \else - \csname ifHy@hyperindex\endcsname - \expandafter\ifx\csname @@wrsindex\endcsname\relax - \def\@@wrsindex#1#2|#3|#4\\{% - \ifx\\#3\\% - \@@@wrsindex{#1}{{#2|hyperpage}{\thepage}}% - \else - \def\Hy@temp@A{#3}% - \ifx\Hy@temp@A\HyInd@ParenLeft - \@@@wrsindex{#1}{{#2|#3hyperpage}{\thepage}}% - \else - \ifx\Hy@temp@A\HyInd@ParenRight - \@@@wrsindex{#1}{{#2|#3hyperpage}{\thepage}}% - \else - \@@@wrsindex{#1}{{#2|#3}{\thepage}}% - \fi - \fi - \fi - }% - \fi - \csname fi\endcsname - \fi -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% -% -% \subsection{Printing One Or More Indices} -% -% \begin{macro}{\printindex} -% \begin{macro}{\printindex*} -% This is used to print an index in the normal way. In most cases this uses -% |theindex| environment, but it need not. -% \begin{macrocode} -\newcommand*{\printindex}{% -% \end{macrocode} -% The command may be called in the star version, which prints all defined -% indices. This is same as \cs{printindices}. -% \begin{macrocode} - \@ifstar {% - \begingroup - \let\printindex@@endhook=\printindex@endhook - \let\printindex@endhook=\relax - \printindices% - \csname printindex@@endhook\endcsname - \endgroup - }{% -% \end{macrocode} -% It may also be called with optional arguments to print one of the indices: -% \begin{macrocode} - \@ifnextchar [\@printindex%] brace check comment -% \end{macrocode} -% Or it is called without any parameter and so it is same as at -% \Package{makeidx} package: -% \begin{macrocode} - {% - \@input@{\jobname.ind}% - \csname printindex@endhook\endcsname - }% - }% -} -% \end{macrocode} -% \begin{macro}{\@printindex} -% This is used to print one of the indices. The optional (here obligatory) -% argument is the shortcut of the index. -% \begin{macrocode} -\newcommand*{\@printindex}{} -\def\@printindex[#1]{% -% \end{macrocode} -% There can be one more optional argument, which is the title of the index. If -% not, the default title \cs{index@\meta{shortcut}@name} is used. -% \begin{macrocode} - \@ifnextchar [% - {\@@printindex[{#1}]}% - {\@@printindex[{#1}][\csname index@#1@name\endcsname]}% -} -% \end{macrocode} -% \begin{macro}{\@@pintindex} -% \changes{v0.2}{2002/11/15}{with option \texttt{split} general index has no -% suffix} -% We use the default environment to print one of the indices, but we redefine -% \cs{indexname} to the title of the wanted index, \cs{indexshortcut} to the -% shortcut of the wanted index and \cs{index@preamble} to the preamble of the -% wanted index. We do this in a group so it is local. -% \begin{macrocode} -\newcommand*{\@@printindex}{} -\def\@@printindex[#1][#2]{% - \begingroup - \edef\indexshortcut{#1}% - \def\indexname{#2}% - \let\index@preamble\relax - \expandafter\let\expandafter\index@preamble - \csname index@\indexshortcut @preamble\endcsname - \if@splitidx - \def\@tempa{idx}\def\@tempb{#1}% - \ifx\@tempa\@tempb\let\@indexsuffix\@gobble\fi - \fi - \@input@{\jobname\@indexsuffix{#1}.ind}% - \endgroup - \csname printindex@endhook\endcsname -} -% \end{macrocode} -% \begin{macro}{\@indexsuffix} -% This generated the suffix from the shortcut. You may redefine this -% function, if you need. I`m using a trick here, to define the macro with -% proper catcodes but not to define it global. You may also use -% \cs{@firstofone} instead of \cs{lowercase}. -% \begin{macrocode} -\begingroup -\catcode`\-12 -\lowercase{\endgroup - \newcommand*{\@indexsuffix}[1]{-#1}% -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\printindices} -% This is used to print all defined indices in the order of their definition -% and with their default titles. If the list is empty, is behaves like -% \cs{printindex} without star and optional arguments. -% \begin{macrocode} -\newcommand*{\printindices}{% - \ifx\@indices\@empty - \printindex - \else - \begingroup - \@for\@tempa:=\@indices\do{% - \expandafter\printindex\expandafter[\@tempa]% - }% - \endgroup - \fi -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\newindex} -% \changes{v0.2}{2002/11/15}{optional definition of index-shortcut-command} -% \changes{v0.2}{2002/11/15}{optional opening a new index file} -% The definition of a new index has an obligatory argument, the shortcut for -% this index, and an optional argument, the name of this index. If you omit -% the optional argument the shortcut is used for the default name if the -% index. The definition will be done global! -% \begin{macrocode} -\newcommand*{\newindex}[2][\relax]{% - \@ifundefined{index@#2@name}{% - \if@verbindex - \expandafter\gdef\csname index@#2@hook\endcsname{% - \@onelevel@sanitize\@tempa - }% - \else - \expandafter\gdef\csname index@#2@hook\endcsname{}% - \fi - \ifx\@indices\@empty - \xdef\@indices{#2}% - \else - \xdef\@indices{\@indices,#2}% - \fi - \ifx \relax#1 - \expandafter\xdef\csname index@#2@name\endcsname{#2}% - \else - \expandafter\xdef\csname index@#2@name\endcsname{#1}% - \fi - \if@newidxcmd - \expandafter\newcommand\expandafter*\csname #2\endcsname{}% - \expandafter\gdef\csname #2\endcsname{% - \sindex[#2]% - }% - \fi - \if@splitidx - \def\@tempa{#2}\def\@tempb{idx}% - \ifx\@tempa\@tempb - \global\let\@indexfile@idx=\@indexfile - \else - \expandafter\newwrite\csname @indexfile@#2\endcsname - \expandafter\immediate\expandafter\openout - \csname @indexfile@#2\endcsname=\jobname-#2.idx - \fi - \fi - }{% -% \end{macrocode} -% If the index is already defined, an error occurs: -% \begin{macrocode} - \PackageError{splitidx}{% - index `#2' already defined% - }{% - You have already defined an index with shortcut `#2'.\MessageBreak - You can't define a new index with the same shortcut. If you'll continue - \MessageBreak - The new definition will be ignored.% - }% - }% -} -\if@splitidx - \@onlypreamble\newindex -\fi -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\newprotectedindex} -% \changes{v0.9}{2006/07/03}{new command} -% Same like \cs{newindex} but always define an index with protected arguments. -% \begin{macrocode} -\newcommand*{\newprotectedindex}[2][\relax]{% - \begingroup\@verbindextrue\newindex[{#1}]{#2}\endgroup -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\@indices} -% This macro stores a list of the index shortcuts. This is needed by -% e.g. \cs{printindices} and build by \cs{newindex}. -% \begin{macrocode} -\newcommand*{\@indices}{} -\gdef\@indices{} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\extendtheindex} -% Extend \verb|theindex| by some macros called before starting the index, -% after starting the index, before stopping the index and after stopping the -% index. This may be used to change index behaviour. One additional change is -% done, which may be useful: before the index \cs{index@preamble} is set to -% \cs{index@\meta{shortcut}@preamble}. -% \begin{macrocode} -\newcommand{\extendtheindex}[4]{% - \begingroup\expandafter\expandafter\expandafter\endgroup - \expandafter\ifx\csname splitindex@theindex\endcsname\relax - \let\splitindex@theindex=\theindex - \let\endsplitindex@theindex=\endtheindex - \fi - \renewcommand*{\theindex}{% - #1\splitindex@theindex #2% - }% - \renewcommand*{\endtheindex}{% - #3\endsplitindex@theindex #4% - }% -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\setindexpreamble} -% Set one of the splitted index preambles or the original one. -% \begin{macrocode} -\newcommand{\splitindex@setip}{} -\let\splitindex@setip\setindexpreamble -\let\setindexpreamble\relax -\newcommand{\setindexpreamble}[2][]{% - \ifx \relax#1\relax - \begingroup\expandafter\expandafter\expandafter\endgroup - \expandafter\ifx\csname splitindex@setip\endcsname\relax - \@namedef{index@preamble}{#2}% - \else - \splitindex@setip{#2}% - \fi - \else - \@namedef{index@#1@preamble}{#2}% - \fi -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\useindexpreamble} -% Use the index preamble and optional add additional information after it, if -% it exists and if it is not empty: -% \begin{macrocode} -\newcommand{\useindexpreamble}[1][]{% - \begingroup\expandafter\expandafter\expandafter\endgroup - \expandafter\ifx\csname index@preamble\endcsname\relax\else - \ifx\index@preamble\@empty\else - \index@preamble #1% - \fi - \fi -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\printsubindex} -% \begin{macro}{\printsubindex*} -% Works like \cs{printindex} but changes some macros before to level down the -% headings at the index generation. -% \begin{macrocode} -\newcommand*{\printsubindex}{% - \begingroup - \begingroup\expandafter\expandafter\expandafter\endgroup - \expandafter\ifx\csname chapter\endcsname\relax - \let\section\subsection - \begingroup\expandafter\expandafter\expandafter\endgroup - \expandafter\ifx\csname addsec\endcsname\relax\else - \def\addsec{\setcounter{secnumdepth}{0}\subsection}% - \fi - \else - \let\chapter\section - \def\@makeschapterhead{\section*} - \let\@makechapterhead\section - \begingroup\expandafter\expandafter\expandafter\endgroup - \expandafter\ifx\csname addchap\endcsname\relax\else - \let\addchap\addsec - \fi - \fi -% \end{macrocode} -% Also, \cs{onecolumn} and \cs{twocolumn} and even \cs{clearpage} must be -% disabled. The macros \cs{onecolumn} and \cs{twocolumn} cannot be let -% \cs{relax} because the have an optional argument which must be used. -% \begin{macrocode} - \let\onecolumn\@firstoptofone - \let\twocolumn\@firstoptofone - \let\clearpage\relax - \let\cleardoublepage\relax -% \end{macrocode} -% And the mark mechanism must also use one down: -% \begin{macrocode} - \def\markboth{\expandafter\markright\@gobble}% - \ifx\@mkboth\@gobble\else\let\@mkboth\markboth\fi -% \end{macrocode} -% And the page style shouldn't change too: -% \begin{macrocode} - \let\thispagestyle\@gobble -% \end{macrocode} -% Now, using \cs{printindex} enables all of it's features: -% \begin{macrocode} - \let\printindex@endhook=\endgroup - \printindex -} -% \end{macrocode} -% \begin{macro}{\@firstoptofone} -% Read the optional argument and do it. -% \begin{macrocode} -\providecommand{\@firstoptofone}[1][]{#1} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% -% \begin{macrocode} -% -% \end{macrocode} -% -% \Finale -% -\endinput -% -% end of file `splitindex.dtx' -%%% Local Variables: -%%% mode: doctex -%%% TeX-master: t -%%% End: diff --git a/Master/texmf-dist/source/latex/splitindex/splitidx.ins b/Master/texmf-dist/source/latex/splitindex/splitidx.ins deleted file mode 100644 index a46c36533e2..00000000000 --- a/Master/texmf-dist/source/latex/splitindex/splitidx.ins +++ /dev/null @@ -1,93 +0,0 @@ -%% -%% splitindex.ins -%% Copyright (c) Markus Kohm, 2002 -%% -%% $Id: splitidx.ins,v 1.2 2006/03/07 10:41:51 mjk Exp $ -%% -%% This file is part of the `SplitIndex bundle'. -%% --------------------------------------------- -%% -%% This file can be redistributed and/or modified under the conditions -%% of the LaTeX Project Public License, either version 1.3a of this -%% license or (at your option) any later version. -%% The latest version of this license is in -%% http://www.latex-project.org/lppl.txt -%% and version 1.3a or later is part of all distributions of LaTeX -%% version 2005/12/01 or later. -%% -%% This work has status 'maintained'. -%% Maintainer is Markus Kohm . -%% -%% In particular, NO PERMISSION is granted to modify the contents of this -%% file since it contains the legal notices that are placed in the files -%% it generates. -%% -%% You are not allowed to redistribute this file without all the -%% other files of the `SplitIndex bundle'. The list of all files -%% belonging to the `SplitIndex bundle' is given in the file -%% `manifest.txt'. -%% -%% This file will generate fast loadable files and documentation -%% driver files from the doc files in this package when run through -%% LaTeX or TeX. -%% -%% -%% --------------- start of docstrip commands ------------------ -%% - -\input docstrip - -\preamble - -This is a generated file. - -Copyright (c) Markus Kohm, 2002 - -This file was generated from file(s) of the `SplitIndex bundle'. ----------------------------------------------------------------- - -It may be distributed and/or modified under the conditions of -the LaTeX Project Public License, either version 1.3a of this -license or (at your option) any later version. -The latest version of this license is in - http://www.latex-project.org/lppl.txt -and version 1.3a or later is part of all distributions of LaTeX -version 2005/12/01 or later. - -This work has status 'maintained'. -Maintainer is Markus Kohm . - -This file may only be distributed together with a copy of the -`SplitIndex bundle'. You may however distribute the `SpitIndex -bundle' without such generated files. - -The list of all files belonging to the `SplitIndex bundle' is -given in the file `manifest.txt'. - -\endpreamble - -\keepsilent -\usedir{tex/latex/misc} - -\generate{\file{splitidx.sty}{\from{splitidx.dtx}{package}}} - -\Msg{*************************************************************} -\Msg{*} -\Msg{* To finish the installation you have to move `splitidx.sty'} -\Msg{* files into a directory searched by TeX.} -\Msg{* Using a TDS compatible TeX distribution, this would be e.g.} -\Msg{* tex/latex/misc of your main or your local or your private} -\Msg{* texmf path. If you don't know these paths, have a look} -\Msg{* at your `texmf.cnf' or try:} -\Msg{* \space\space kpsexpand \string\$TEXMFMAIN} -\Msg{* \space\space kpsexpand \string\$TEXMFLOCAL} -\Msg{* \space\space kpsexpand \string\$HOMETEXMF} -\Msg{* You may also use another folder at your TEXINPUTS path.} -\Msg{*} -\Msg{* To produce the documentation run splitidx.dtx files} -\Msg{* through LaTeX.} -\Msg{*} -\Msg{* Happy TeXing} -\Msg{************************************************************} - -\endbatchfile diff --git a/Master/texmf-dist/source/latex/splitindex/splitindex.c b/Master/texmf-dist/source/latex/splitindex/splitindex.c deleted file mode 100644 index 41a092af734..00000000000 --- a/Master/texmf-dist/source/latex/splitindex/splitindex.c +++ /dev/null @@ -1,576 +0,0 @@ -/* - * splitindex.c - * Copyright (c) Markus Kohm, 2002 - * - * $Id: splitindex.c,v 1.6 2003/01/05 10:50:07 mjk Exp $ - * - * This file is part of the SplitIndex package - * - * This file can be redistributed and/or modified under the conditions - * of the LaTeX Project Public License, either version 1.2 of this - * license or (at your option) any later version. - * The latest version of this license is in - * http://www.latex-project.org/lppl.txt - * and version 1.2 or later is part of all distributions of LaTeX - * version 1999/12/01 or later. - * - * You are not allowed to redistribute this file without all the - * other files of the SplitIndex package - */ - -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -enum { - OPT_HELP = 'h', OPT_MAKEINDEX = 'm', OPT_IDENTIFY = 'i', - OPT_RESULTIS = 'r', OPT_VERBOSE = 'v', OPT_SUFFIXIS = 's', - OPT_VERSION = 'V' -}; - -#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined (NO_LONGOPT) - -#define HAS_LONGOPT 0 -#define HAPAR "" - -#else /* defined(__OpenBSD__) || defined(__FreeBSD__) || defined(NO_LONGOPT) */ - -#define HAS_LONGOPT 1 -#define HAPAR "\n\t\t" - -#include - -static const struct option long_options[] = { - { "help", 0, NULL, OPT_HELP }, - { "makeindex", 1, NULL, OPT_MAKEINDEX }, - { "identify", 1, NULL, OPT_IDENTIFY }, - { "resultis", 1, NULL, OPT_RESULTIS }, - { "suffixis", 1, NULL, OPT_SUFFIXIS }, - { "verbose", 0, NULL, OPT_VERBOSE }, - { "version", 0, NULL, OPT_VERSION }, - { NULL, 0, NULL, 0 }, -}; - -#endif - -static const char short_options[] = { - OPT_HELP, - OPT_MAKEINDEX, ':', - OPT_IDENTIFY, ':', - OPT_RESULTIS, ':', - OPT_SUFFIXIS, ':', - OPT_VERBOSE, - OPT_VERSION, -}; - -int Verbose = 0; - -char *MakeIndex = "makeindex"; -char *Identify = "^(\\\\indexentry)\\[([^]]*)\\](.*)$"; -char *ResultIs = "$1$3"; -char *SuffixIs = "-$2"; -char *IDX = NULL; -char *Jobname = NULL; -char * const * MakeIndexArgs = NULL; -char *prgname = "splitindex"; -int MakeIndexArgc = 0; - -static void show_version( void ) { - printf( "splitindex 0.2a\n" - "Copyright (c) 2002 Markus Kohm \n" ); -} - -static void show_usage( FILE *out ) { - fputs( "Usage: splitindex [OPTION]... RAWINDEXFILE [MAKEINDEXOPTION]...\n", - out ); -} - -static void usage_error( const char *format, ... ) { - if ( format != NULL ) { - va_list ap; - va_start( ap, format ); - vfprintf( stderr, format, ap ); - va_end( ap ); - } - fputs( "Try `splitindex " -#if HAS_LONGOPT - "--help" -#else - "-h" -#endif - "' for more information.\n", stderr ); - exit( 1 ); -} - -static void show_help( void ) { - show_version(); - printf( "\n" ); - show_usage( stdout ); - printf( - "Split a single raw index file into multiple raw index files.\n" - "Example: splitindex.pl foo.idx.\n" - "\n" - "Options:\n" - " -h" -#if HAS_LONGOPT - ", --help " -#else - " " -#endif - "\tshow this help and terminate\n" - " -m" -#if HAS_LONGOPT - ", --makeindex" -#endif - " PROGNAME " HAPAR - "\tcall PROGNAME instead of default `%s'.\n", - MakeIndex - ); - printf( - " -i" -#if HAS_LONGOPT - ", --identify" -#endif - " EXPRESSION " HAPAR - "\tuse regular EXPRESSION to match entries\n" - "\t\t\t(see also option --resultis and --suffixis).\n" - "\t\t\tDefault is `%s'.\n", - Identify - ); - printf( - " -r" -#if HAS_LONGOPT - ", --resultis" -#endif - " PATTERN " HAPAR - "\tcreate line to be written from PATTERN after matching\n" - "\t\t\tlines (see also option --identify).\n" - "\t\t\tDefault is `%s'.\n", - ResultIs - ); - printf( - " -s" -#if HAS_LONGOPT - ", --suffixis" -#endif - " PATTERN " HAPAR - "\tcreate suffix to be used from PATTERN after matching\n" - "\t\t\tlines (see also option --identify).\n" - "\t\t\tDefault is `%s'.\n", - SuffixIs - ); - printf( - " -v" -#if HAS_LONGOPT - ", --verbose " -#else - " " -#endif - "\tbe more verbose\n" - "\t\t\t(can be used multiple to increase verbosity)\n" - " -V" -#if HAS_LONGOPT - ", --version " -#else - " " -#endif - "\tshow version and terminate\n" - ); - exit(0); -} - -static void ScanArguments( int argc, char * const argv[] ) { - int retVal; - char *hs; - if ( argc > 0 ) - prgname = argv[0]; -#if HAS_LONGOPT - while ( ( retVal = getopt_long( argc, argv, short_options, - long_options, NULL ) ) != - 1 ) { -#else - while ( ( retVal = getopt( argc, argv, short_options ) ) != - 1 ) { -#endif - switch( retVal ) { - case OPT_HELP: - show_help(); - break; /* should never be reached */ - case OPT_VERSION: - show_version(); - exit( 0 ); - break; /* should never be reached */ - case OPT_MAKEINDEX: - MakeIndex = optarg; - break; - case OPT_IDENTIFY: - Identify = optarg; - break; - case OPT_RESULTIS: - ResultIs = optarg; - break; - case OPT_SUFFIXIS: - SuffixIs = optarg; - break; - case OPT_VERBOSE: - Verbose++; - break; - case ':': - case '?': - usage_error( NULL ); - break; /* should never be reached */ - } - } - if ( optind < argc ) { - IDX = argv[optind++]; - MakeIndexArgc = argc - optind; - MakeIndexArgs = argv + optind; - } else { - usage_error( "missing raw index file\n" ); - return; /* should never be reached */ - } - - if ( ( Jobname = strdup( IDX ) ) == NULL ) { - perror( prgname ); - exit( errno ); - } - - if ( ( ( hs = strrchr( Jobname, '.' ) ) != NULL ) - && !strcmp( hs, ".idx" ) ) - *hs = 0; -} - -static char *regsub( const char *string, const char *replace, - int nmatch, regmatch_t pmatch[] ) { - int pass; - int size, n; - const char *hs; - char c; - char *retVal = NULL; - char *ts; - - /* Two times parsing to get size and replace */ - for ( pass = size = 0; pass < 2; pass++ ) { - ts = retVal; - for ( hs = replace; *hs; hs++ ) { - switch( *hs ) { - case '$': - if ( isdigit( hs[1] ) ) { - n = *++hs - '0'; - if ( ( pmatch[n].rm_so >= 0 ) - && ( pmatch[n].rm_so < pmatch[n].rm_eo ) ) { - /* maybe group n is not empty */ - if ( pass ) { - strncpy( ts, - string + pmatch[n].rm_so, - pmatch[n].rm_eo - pmatch[n].rm_so ); - ts += pmatch[n].rm_eo - pmatch[n].rm_so; - } else { - size += pmatch[n].rm_eo - pmatch[n].rm_so; - } - } - } else { - if ( pass ) { - *ts++ = '$'; - } else { - size++; - } - } - break; - case '\\': - switch( c = *++hs ) { - case 0: c = '\\'; hs--; break; - case 'b': c = '\b'; break; - case 'f': c = '\f'; break; - case 'n': c = '\n'; break; - case 'r': c = '\r'; break; - case 't': c = '\t'; break; - } - if ( pass ) { - *ts++ = c; - } else { - size++; - } - break; - default: - if ( pass ) { - *ts++ = *hs; - } else { - size++; - } - break; - } - } - if ( pass ) { - *ts = '\0'; - } else { - if ( ( retVal = malloc( size + 1 ) ) == NULL ) { - perror( prgname ); - exit( 1 ); - } - } - } - - return retVal; -} - -static struct list { - struct list *next; - char *name; - FILE *file; -} *IDXfiles = NULL; - -static FILE *findsuffix( const char *name ) { - struct list *run; - for ( run = IDXfiles; - run != NULL; - run = run->next ) { - const char *suffix = strchr( run->name, '\0' ); - suffix -= 4; /* .idx */ - suffix -= strlen( name ); - if ( ( suffix >= run->name ) - && !strncmp( suffix, name, strlen( name ) ) ) { - return run->file; - } - } - return NULL; -} - -static struct list *addentry( char *name, FILE *file ) { - struct list *newentry = malloc( sizeof( struct list ) ); - if ( !newentry ) { - perror( prgname ); - exit( 1 ); - } - newentry->name = name; - newentry->file = file; - if ( IDXfiles == NULL ) { - newentry->next = NULL; - } else { - newentry->next = IDXfiles; - } - IDXfiles = newentry; - return IDXfiles; -} - -static FILE *newentry( const char *suffix ) { - char *name; - FILE *file; - - if ( ( name = malloc( strlen( Jobname ) + strlen( suffix ) + 5 ) ) == NULL ) { - perror( prgname ); - exit( 1 ); - } - - strcpy( name, Jobname ); - strcat( name, suffix ); - strcat( name, ".idx" ); - - if ( ( file = fopen( name, "w" ) ) == NULL ) { - perror( name ); - exit( errno ); - } - - if ( Verbose > 1 ) - printf( "New index file %s\n", name ); - addentry( name, file ); - return file; -} - -static void CloseAllIDX( void ) { - struct list *run; - for ( run = IDXfiles; run != NULL; run = run->next ) - if ( fclose( run->file ) ) { - perror( run->name ); - exit( 1 ); - } -} - -static void CallMakeIndex( void ) { - char **argv; - int idx; - struct list *run, *next; - - if ( ( argv = calloc( MakeIndexArgc + 3, sizeof( char * ) ) ) == NULL ) { - perror( prgname ); - exit( 0 ); - } - - for ( idx = 0; idx < MakeIndexArgc; idx++ ) - argv[idx+1] = MakeIndexArgs[idx]; - - idx++; - argv[0] = MakeIndex; - - for ( run = IDXfiles; run != NULL; run = next ) { - pid_t fret; - int status; - argv[idx] = run->name; - - if ( ( fret = fork() ) == 0 ) { - /* This is the child */ - if ( Verbose > 1 ) { - int i; - for ( i = 0; argv[i] != NULL; i++ ) - printf( "\"%s\" ", argv[i] ); - printf( "\n" ); - } - if ( execvp( MakeIndex, argv ) ) { - perror( MakeIndex ); - exit( 1 ); - } - } else if ( fret == -1 ) { - perror( prgname ); - exit( 1 ); - } else { - /* Parent */ - waitpid( fret, &status, 0 ); - if ( ! WIFEXITED( status ) ) { - fprintf( stderr, "%s terminated abnormally!\n", MakeIndex ); - exit( 1 ); - } - } - - free( (void *)run->name ); - next = run->next; - free( run ); - } - - -} - -static void ProcessIDXFile( void ) { - FILE *fIDX; - char *line; - regex_t preg; - int retVal; - int buffersize = 2050; - regmatch_t pmatch[10]; - - if ( ( line = malloc( buffersize ) ) == NULL ) { - perror( prgname ); - exit( errno ); - } - - if ( ( retVal = regcomp( &preg, Identify, REG_EXTENDED ) ) != 0 ) { - regerror( retVal, &preg, line, buffersize ); - fprintf( stderr, "Error at identify: %s\n", line ); - free( line ); - exit( 1 ); - } - - if ( ( fIDX = fopen( IDX, "r" ) ) == NULL ) { - if ( !strcmp ( IDX, Jobname ) ) { - if ( ( IDX = malloc( strlen( Jobname + 5 ) ) ) == NULL ) { - perror( prgname ); - regfree( &preg ); - free( line ); - exit( errno ); - } - strcpy( IDX, Jobname ); - strcat( IDX, ".idx" ); - if ( ( fIDX = fopen( IDX, "r" ) ) == NULL ) { - fprintf( stderr, - "Can read neither file %s nor file %s\n", - Jobname, IDX ); - regfree( &preg ); - free( line ); - exit( 1 ); - } - } else { - fprintf( stderr, - "Can't red file %s\n", IDX ); - regfree( &preg ); - free( line ); - exit( 1 ); - } - } - - while ( fgets( line, buffersize, fIDX ) != NULL ) { - char *hs; - char *result, *suffix; - FILE *f; - while ( ( ( hs = strchr( line, '\n' ) ) == NULL ) - && ! feof( fIDX ) ) { - if ( ( line = realloc( line, 2 * buffersize ) ) == NULL ) { - perror( prgname ); - exit( errno ); - } - if ( fgets( line + buffersize - 1, buffersize + 1, fIDX ) == NULL ) - break; - buffersize *= 2; - } - if ( ferror( fIDX ) ) - break; - if ( ( hs = strchr( line, '\n' ) ) != NULL ) // remove newline - *hs = 0; - if ( ( retVal = regexec( &preg, line, 10, pmatch, 0 ) ) == 0 ) { - result = regsub( line, ResultIs, 10, pmatch ); - suffix = regsub( line, SuffixIs, 10, pmatch ); - } else { - int i; - result = strdup( line ); - for ( i = 0; i < 10; i++ ) { - pmatch[i].rm_so = 0; - pmatch[i].rm_eo = 3; - } - suffix = regsub( "idx", SuffixIs, 10, pmatch ); - } - if ( !result || !suffix ) { - perror( prgname ); - exit ( 1 ); - } - - if ( ( f = findsuffix( suffix ) ) == NULL ) - f = newentry( suffix ); - fprintf( f, "%s\n", result ); - - free( suffix ); - free( result ); - } - - regfree( &preg ); - free( line ); - if ( ferror( fIDX ) ) { - perror( IDX ); - fclose( fIDX ); - exit( errno ); - } - fclose( fIDX ); - - CloseAllIDX(); - - CallMakeIndex(); -} - -int main( int argc, char * const argv[] ) { - int retVal = 0; - - ScanArguments( argc, argv ); - - if ( Verbose > 0 ) { - show_version(); - if ( Verbose > 9 ) { - int i; - printf( "Identify: \"%s\"\n", Identify ); - printf( "ResultIs: \"%s\"\n", ResultIs ); - printf( "SuffixIs: \"%s\"\n", SuffixIs ); - printf( "IDX: \"%s\"\n", IDX ); - printf( "Jobname: \"%s\"\n", Jobname ); - printf( "MakeIndex: \"%s\"", MakeIndex ); - for ( i = 0; i < MakeIndexArgc; i++ ) - printf( " \"%s\"", MakeIndexArgs[i] ); - printf( "\n" ); - } - } - - ProcessIDXFile(); - - return retVal; -} diff --git a/Master/texmf-dist/tex/latex/splitindex/splitidx.sty b/Master/texmf-dist/tex/latex/splitindex/splitidx.sty deleted file mode 100644 index 3b06c1b3e3f..00000000000 --- a/Master/texmf-dist/tex/latex/splitindex/splitidx.sty +++ /dev/null @@ -1,322 +0,0 @@ -%% -%% This is file `splitidx.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% splitidx.dtx (with options: `package') -%% -%% This is a generated file. -%% -%% Copyright (c) Markus Kohm, 2002 -%% -%% This file was generated from file(s) of the `SplitIndex bundle'. -%% ---------------------------------------------------------------- -%% -%% It may be distributed and/or modified under the conditions of -%% the LaTeX Project Public License, either version 1.3a of this -%% license or (at your option) any later version. -%% The latest version of this license is in -%% http://www.latex-project.org/lppl.txt -%% and version 1.3a or later is part of all distributions of LaTeX -%% version 2005/12/01 or later. -%% -%% This work has status 'maintained'. -%% Maintainer is Markus Kohm . -%% -%% This file may only be distributed together with a copy of the -%% `SplitIndex bundle'. You may however distribute the `SpitIndex -%% bundle' without such generated files. -%% -%% The list of all files belonging to the `SplitIndex bundle' is -%% given in the file `manifest.txt'. -%% -\ProvidesPackage{splitidx}[% - 2006/07/30 v1.0 multiple indices for LaTeX] -\DeclareOption{makeindex}{\AtEndOfPackage{\makeindex}} -\DeclareOption{useindex}{% - \def\@se@nd@xc@d@{\let\index\sindex}% - \AtEndOfPackage{\@se@nd@xc@d@}% -} -\let\@se@nd@xc@d@\relax -\DeclareOption{allatone}{% - \ifx\@se@nd@xc@d@\relax\else - \PackageInfo{splitidx}{option `allatone' overwrites option `useindex'}% - \let\@se@nd@xc@d@\relax - \fi - \AtEndOfPackage{% - \renewcommand*{\sindex}[1][]{\index}% - \g@addto@macro\makeindex{\renewcommand*{\sindex}[1][]{\index}}% - }% -} -\newif\if@verbindex\@verbindexfalse -\DeclareOption{protected}{\@verbindextrue} -\newif\if@newidxcmd\@newidxcmdfalse -\DeclareOption{idxcommands}{\@newidxcmdtrue} -\newif\if@splitidx\@splitidxfalse -\DeclareOption{split}{\@splitidxtrue} -\ProcessOptions\relax -\newcommand*\see[2]{\emph{\seename} #1} -\providecommand*\seealso[2]{\emph{\alsoname} #1} -\providecommand\seename{see} -\providecommand*\alsoname{see also} -\newcommand*{\sindex}[2][]{% -} -\g@addto@macro\makeindex{% - \renewcommand*{\sindex}{% - \@bsphack\begingroup - \@sanitize - \@wrsindex - }% - \typeout{Using splitted index at \jobname.idx}% - \@se@nd@xc@d@ -} -\newcommand*{\@wrsindex}[2][]{% - \ifx\relax#1\relax - \if@splitidx - \@wrsindex[idx]{#2}% - \else - \def\@tempa{#2}% - \if@verbindex\@onelevel@sanitize\@tempa\fi - \@wrindex{\@tempa}% - \fi - \else - \def\@tempa{#2}% - \csname index@#1@hook\endcsname - \expandafter\ifx\csname @@wrsindex\endcsname\relax - \@@@wrsindex{#1}{{\@tempa}{\thepage}}% - \else - \def\@tempb{\@@wrsindex{#1}}% - \expandafter\@tempb\@tempa||\\% - \fi - \endgroup - \@esphack - \fi -} -\newcommand*{\@@@wrsindex}[2]{% - \begingroup - \if@splitidx - \expandafter\ifx\csname @indexfile@#1\endcsname\relax - \PackageError{splitidx}{% - Index entry for not existing index% - }{% - You've tried to set an index to index `#1', without - defining\MessageBreak - that index before using \string\newindex.\MessageBreak - This is only allowed, if you are not using package option - `split'.% - }% - \else - \expandafter\protected@write\csname @indexfile@#1\endcsname{}{% - \string\indexentry#2% - }% - \fi - \else - \protected@write\@indexfile{}{% - \string\indexentry[#1]#2% - }% - \fi - \endgroup -} -\AtBeginDocument{% - \begingroup\expandafter\expandafter\expandafter\endgroup - \expandafter\ifx\csname ifHy@hyperindex\endcsname\relax - \else - \csname ifHy@hyperindex\endcsname - \expandafter\ifx\csname @@wrsindex\endcsname\relax - \def\@@wrsindex#1#2|#3|#4\\{% - \ifx\\#3\\% - \@@@wrsindex{#1}{{#2|hyperpage}{\thepage}}% - \else - \def\Hy@temp@A{#3}% - \ifx\Hy@temp@A\HyInd@ParenLeft - \@@@wrsindex{#1}{{#2|#3hyperpage}{\thepage}}% - \else - \ifx\Hy@temp@A\HyInd@ParenRight - \@@@wrsindex{#1}{{#2|#3hyperpage}{\thepage}}% - \else - \@@@wrsindex{#1}{{#2|#3}{\thepage}}% - \fi - \fi - \fi - }% - \fi - \csname fi\endcsname - \fi -} -\newcommand*{\printindex}{% - \@ifstar {% - \begingroup - \let\printindex@@endhook=\printindex@endhook - \let\printindex@endhook=\relax - \printindices% - \csname printindex@@endhook\endcsname - \endgroup - }{% - \@ifnextchar [\@printindex%] brace check comment - {% - \@input@{\jobname.ind}% - \csname printindex@endhook\endcsname - }% - }% -} -\newcommand*{\@printindex}{} -\def\@printindex[#1]{% - \@ifnextchar [% - {\@@printindex[{#1}]}% - {\@@printindex[{#1}][\csname index@#1@name\endcsname]}% -} -\newcommand*{\@@printindex}{} -\def\@@printindex[#1][#2]{% - \begingroup - \edef\indexshortcut{#1}% - \def\indexname{#2}% - \let\index@preamble\relax - \expandafter\let\expandafter\index@preamble - \csname index@\indexshortcut @preamble\endcsname - \if@splitidx - \def\@tempa{idx}\def\@tempb{#1}% - \ifx\@tempa\@tempb\let\@indexsuffix\@gobble\fi - \fi - \@input@{\jobname\@indexsuffix{#1}.ind}% - \endgroup - \csname printindex@endhook\endcsname -} -\begingroup -\catcode`\-12 -\lowercase{\endgroup - \newcommand*{\@indexsuffix}[1]{-#1}% -} -\newcommand*{\printindices}{% - \ifx\@indices\@empty - \printindex - \else - \begingroup - \@for\@tempa:=\@indices\do{% - \expandafter\printindex\expandafter[\@tempa]% - }% - \endgroup - \fi -} -\newcommand*{\newindex}[2][\relax]{% - \@ifundefined{index@#2@name}{% - \if@verbindex - \expandafter\gdef\csname index@#2@hook\endcsname{% - \@onelevel@sanitize\@tempa - }% - \else - \expandafter\gdef\csname index@#2@hook\endcsname{}% - \fi - \ifx\@indices\@empty - \xdef\@indices{#2}% - \else - \xdef\@indices{\@indices,#2}% - \fi - \ifx \relax#1 - \expandafter\xdef\csname index@#2@name\endcsname{#2}% - \else - \expandafter\xdef\csname index@#2@name\endcsname{#1}% - \fi - \if@newidxcmd - \expandafter\newcommand\expandafter*\csname #2\endcsname{}% - \expandafter\gdef\csname #2\endcsname{% - \sindex[#2]% - }% - \fi - \if@splitidx - \def\@tempa{#2}\def\@tempb{idx}% - \ifx\@tempa\@tempb - \global\let\@indexfile@idx=\@indexfile - \else - \expandafter\newwrite\csname @indexfile@#2\endcsname - \expandafter\immediate\expandafter\openout - \csname @indexfile@#2\endcsname=\jobname-#2.idx - \fi - \fi - }{% - \PackageError{splitidx}{% - index `#2' already defined% - }{% - You have already defined an index with shortcut `#2'.\MessageBreak - You can't define a new index with the same shortcut. If you'll continue - \MessageBreak - The new definition will be ignored.% - }% - }% -} -\if@splitidx - \@onlypreamble\newindex -\fi -\newcommand*{\newprotectedindex}[2][\relax]{% - \begingroup\@verbindextrue\newindex[{#1}]{#2}\endgroup -} -\newcommand*{\@indices}{} -\gdef\@indices{} -\newcommand{\extendtheindex}[4]{% - \begingroup\expandafter\expandafter\expandafter\endgroup - \expandafter\ifx\csname splitindex@theindex\endcsname\relax - \let\splitindex@theindex=\theindex - \let\endsplitindex@theindex=\endtheindex - \fi - \renewcommand*{\theindex}{% - #1\splitindex@theindex #2% - }% - \renewcommand*{\endtheindex}{% - #3\endsplitindex@theindex #4% - }% -} -\newcommand{\splitindex@setip}{} -\let\splitindex@setip\setindexpreamble -\let\setindexpreamble\relax -\newcommand{\setindexpreamble}[2][]{% - \ifx \relax#1\relax - \begingroup\expandafter\expandafter\expandafter\endgroup - \expandafter\ifx\csname splitindex@setip\endcsname\relax - \@namedef{index@preamble}{#2}% - \else - \splitindex@setip{#2}% - \fi - \else - \@namedef{index@#1@preamble}{#2}% - \fi -} -\newcommand{\useindexpreamble}[1][]{% - \begingroup\expandafter\expandafter\expandafter\endgroup - \expandafter\ifx\csname index@preamble\endcsname\relax\else - \ifx\index@preamble\@empty\else - \index@preamble #1% - \fi - \fi -} -\newcommand*{\printsubindex}{% - \begingroup - \begingroup\expandafter\expandafter\expandafter\endgroup - \expandafter\ifx\csname chapter\endcsname\relax - \let\section\subsection - \begingroup\expandafter\expandafter\expandafter\endgroup - \expandafter\ifx\csname addsec\endcsname\relax\else - \def\addsec{\setcounter{secnumdepth}{0}\subsection}% - \fi - \else - \let\chapter\section - \def\@makeschapterhead{\section*} - \let\@makechapterhead\section - \begingroup\expandafter\expandafter\expandafter\endgroup - \expandafter\ifx\csname addchap\endcsname\relax\else - \let\addchap\addsec - \fi - \fi - \let\onecolumn\@firstoptofone - \let\twocolumn\@firstoptofone - \let\clearpage\relax - \let\cleardoublepage\relax - \def\markboth{\expandafter\markright\@gobble}% - \ifx\@mkboth\@gobble\else\let\@mkboth\markboth\fi - \let\thispagestyle\@gobble - \let\printindex@endhook=\endgroup - \printindex -} -\providecommand{\@firstoptofone}[1][]{#1} -\endinput -%% -%% End of file `splitidx.sty'. diff --git a/Master/texmf-dist/tex/latex/splitindex/splitindex.tex b/Master/texmf-dist/tex/latex/splitindex/splitindex.tex deleted file mode 100644 index c0aea07b097..00000000000 --- a/Master/texmf-dist/tex/latex/splitindex/splitindex.tex +++ /dev/null @@ -1,163 +0,0 @@ -% ====================================================================== -% splitindex.tex -% Copyright (c) Markus Kohm, 2002 -% -% $Id: splitindex.tex,v 1.2 2002/11/03 16:17:41 mjk Exp $ -% -% This file is part of the SplitIndex package -% -% This file can be redistributed and/or modified under the conditions -% of the LaTeX Project Public License, either version 1.2 of this -% license or (at your option) any later version. -% The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.2 or later is part of all distributions of LaTeX -% version 1999/12/01 or later. -% -% You are not allowed to redistribute this file without all the -% other files of the SplitIndex package -% ====================================================================== - -% Set newlinechar -\newlinechar`\^^J - -% Tell program information -\message{splitindex.tex 0.1^^J% - Copyright (c) 2002 Markus Kohm ^^J^^J} - -% Change \catcode of At to be a letter -\catcode`\@11\relax - -% New end processing command (one of these should do the job) -\def\endprocessing{% - \csname @@end\endcsname - \csname end\endcsname - \csname endinput\endcsname -} - -% Check out, if we are using LaTeX or plainTeX: -\let\@earlyend\relax -\def\@tempa{LaTeX2e} -\expandafter\ifx\csname fmtname\endcsname\@tempa -\else - \def\@tempa{plain} - \expandafter\ifx\csname fmtname\endcsname\@tempa - \def\newwrite{\alloc@7\write\chardef\sixt@@n}% not longer \outer - \chardef\@inputcheck=0\relax - \else - \message{Unkown format \csname fmtname\endcsname^^J - You have to use plainTeX or LaTeX2e to run - splitindex.tex!^^J} - \let\@earlyend\endprocessing - \fi -\fi -\@earlyend - -% Is \idx defined to the name of the raw index file? -\expandafter\ifx\csname idx\endcsname\relax -% no it isn't - \message{Enter the name of the idx file to be processed: }% - \advance\endlinechar\@M - \read\m@ne to\idx - \advance\endlinechar-\@M -\fi - -% Sorry to late for log file -\def\setjobname#1.idx#2\\{\def\jobname{#1}} -\expandafter\setjobname\idx.idx\\ - -\let\@earlyend\relax -\openin\@inputcheck\idx % -\ifeof\@inputcheck - \ifx\jobname\idx - \openin\@inputcheck\jobname.idx % - \ifeof\@inputcheck - \message{Error: Neither file `\idx' nor file `\jobname.idx' found!^^J}% - \let\@earlyend\endprocessing - \else - \xdef\idx{\jobname.idx}% - \fi - \else - \message{Error: File `\idx' not found!^^J}% - \let\@earlyend\endprocessing - \fi -\fi -\@earlyend - -\message{Read from file: \idx^^J% - Write to files: \jobname-*.idx^^J} - -% We are ready to do the processing - -% First we have to do the tricky splitting of the input line. -% We do not allow lines which don't start with \indexentry. -% We do not support other index file definitions but with an -% optional argument of \indexentry. -% We need some catcode changes to read and split the line. So -% we do this part of the processing at a group. -\newtoks\verbatim@line -\begingroup -\catcode`\^^M\active - -\begingroup -\catcode`\|=0 -\catcode`\\=12 -|gdef|splitidxline\indexentry#1{% - |if #1[% - |expandafter|@splitidxline% - |else% - |expandafter |@splitidxline |expandafter i|expandafter d% - |expandafter x|expandafter ]|expandafter#1% - |fi% -} -|endgroup - -\gdef\@splitidxline#1]#2^^M{% - \idxwrite{#1}{\string\indexentry#2}% -} - -\gdef\processidxline{%\message{\the\verbatim@line}% - \expandafter\splitidxline\verbatim@line^^M -} -\endgroup - -% Now, we can do the main job: writing to the index files -\def\idxwrite#1#2{% - \expandafter\ifx\csname write@#1\endcsname\relax - % We need a new file - \message{New index file: \jobname-#1.idx^^J}% - \expandafter\newwrite\csname write@#1\endcsname - \immediate\openout\csname write@#1\endcsname \jobname-#1.idx % - % FixMe: Don't close by end TeX run but use \closeout - \fi - \immediate\write\csname write@#1\endcsname{#2}% -} - -% Read the file verbatim and process the lines -\newif\ifnoteof -\newtoks\par@tok\par@tok{\par} -\def\@makeother#1{\catcode`#112\relax} -\def\processidxfile{ - \immediate\openin\@inputcheck \idx % - \noteoftrue - \loop - \ifeof\@inputcheck \noteoffalse\fi - \ifnoteof - \begingroup - \let\do\@makeother\dospecials - \immediate\read\@inputcheck to \verbatim@line - \if\par@tok\verbatim@line\else - \processidxline - \fi - \endgroup - \repeat -} - -\processidxfile - -% Trick to end processing in TeX and LaTeX -\endprocessing -%%% Local Variables: -%%% mode: tex -%%% TeX-master: t -%%% End: diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check index 9e6e91ebca0..e7407e62c2e 100755 --- a/Master/tlpkg/bin/tlpkg-ctan-check +++ b/Master/tlpkg/bin/tlpkg-ctan-check @@ -205,7 +205,7 @@ my @WorkingTLP = qw( sidecap sides siggraph silence simplecv simplewick siunitx skak skaknew slantsc slideshow smalltableof smartref smflatex snapshot songbook sort-by-letters soul spanish-mx sparklines spie - splines splitbib splitindex spotcolor sprite srcltx sseq + splines splitbib spotcolor sprite srcltx sseq ssqquote stack stage statex2 staves stdclsdv stdpage stellenbosch stex stringstrings struktex sttools stubs subdepth subeqn subeqnarray diff --git a/Master/tlpkg/bin/tlprm b/Master/tlpkg/bin/tlprm index d137cdaacd3..997fb3b8d6a 100755 --- a/Master/tlpkg/bin/tlprm +++ b/Master/tlpkg/bin/tlprm @@ -72,8 +72,8 @@ sub main unlink ($commit_file); `printf "$removals" >$commit_file`; - print "if license in Catalogue is still free, " - . "tell Robin.Fairbairns@cl.cam.ac.uk.\n"; + print "if license in Catalogue is free, and package isn't, " + . "tell Robin.Fairbairns\@cl.cam.ac.uk.\n"; my $tsrc = "$Master/tlpkg/tlpsrc"; my @lines = `grep -l 'depend.* $f\$' $tsrc/collection-* $tsrc/scheme-*`; diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds index 55c6eb746e4..e7c1300a3a1 100755 --- a/Master/tlpkg/libexec/ctan2tds +++ b/Master/tlpkg/libexec/ctan2tds @@ -451,6 +451,7 @@ chdir $startdir || die "chdir($startdir) failed: $!"; # back to raw 'skak', "&MAKEflatten", 'slidenotes', "die 'skipping, nonfree'", 'songs', "die 'skipping, requires binary'", + 'splitindex', "die 'skipping, requires binary'", 'staves', "&MAKEflatten", 'stellenbosch',"&MAKEcopy", 'stex', "&MAKEflatten", diff --git a/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc b/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc index 9145dd73418..d1641973b12 100644 --- a/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc +++ b/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc @@ -477,7 +477,6 @@ depend smflatex depend snapshot depend soul depend sparklines -depend splitindex depend spotcolor depend sprite depend srcltx diff --git a/Master/tlpkg/tlpsrc/splitindex.tlpsrc b/Master/tlpkg/tlpsrc/splitindex.tlpsrc deleted file mode 100644 index 933e0630bfc..00000000000 --- a/Master/tlpkg/tlpsrc/splitindex.tlpsrc +++ /dev/null @@ -1,2 +0,0 @@ -name splitindex -category Package -- cgit v1.2.3