#!/bin/sh # lowercase all lines without an @ symbol awk '$0 !~ /@/ {$0=tolower($0)} {print}' $1.idx >$1.idl # call makeindex to sort indexentries and produce an index # ... this *needs* manual.mst to be in place, otherwise we'll end # up with a LaTeX style index with \begin{index} .. \end{index} makeindex -l $1.idl # put hyphenation help into long commands echo "Hyphenating long index entries" echo '{a=index($0,"`");\ if (a==0) {print $0;}\ else {\ b=index($0,"'"'"'");\ if (b-a>40) {\ anf=substr($0,1,a);\ mid=substr($0,a+1,b-a-1);\ end=substr($0,b);\ b=length(mid);\ i=1;\ cap=1;\ mid2=substr(mid,1,i-1);\ while (i<=length(mid)) {\ c=substr(mid,i,1);\ if (c!=tolower(c)){\ if (cap==0) mid2 = mid2 "\\-";\ cap=1;\ }\ else cap=0;\ mid2=mid2 c;\ i=i+1;\ }\ print anf mid2 end;\ }\ else print $0;\ } }' >mh.awk cp $1.ind $1.idl awk -f mh.awk $1.idl >$1.ind # clean up rm $1.idl mh.awk