diff --git a/glossary.perl b/glossary.perl
deleted file mode 100644
index 97f87503bf3899515cdf56522a8d6232be66e7e1..0000000000000000000000000000000000000000
--- a/glossary.perl
+++ /dev/null
@@ -1,1055 +0,0 @@
-	# File        : glossary.perl
-# Author      : Nicola Talbot
-# Date        : 5 December 2005
-# Version     : 1.03
-# Description : LaTeX2HTML implementation of glossary package.
-
-package main;
-
-# These are the only package options implemented.
-
-sub do_glossary_style_altlist{
-}
-
-sub do_glossary_style_hyper{
-}
-
-sub do_glossary_style_hyper_true{
-}
-
-sub do_glossary_style_hyperacronym{
-}
-
-sub do_glossary_style_hyperacronym_true{
-}
-
-sub do_glossary_toc{
-}
-
-sub do_glossary_toc_true{
-}
-
-$acronymtype = 'glossary';
-
-sub do_glossary_acronym{
-   &do_glossary_acronym_true
-}
-
-sub do_glossary_acronym_true{
-   $gls_mark{'acronym'} = "<tex2html_acronym_mark>";
-   $gls_file_mark{'acronym'} = "<tex2html_acronym_file_mark>";
-   $gls_title{'acronym'} = "\\acronymname";
-   $delimN{'acronym'} = ", ";
-   $glodelim{'acronym'} = " ";
-   $glsnumformat{'acronym'} = "textrm";
-   $acronymtype = 'acronym';
-}
-
-sub do_glossary_acronym_false{
-   $acronymtype = 'glossary';
-}
-
-sub do_cmd_acronymname{
-   join('', 'List of Acronyms', $_[0]);
-}
-
-# modify set_depth_levels so that glossary is added
-
-$gls_mark{'glossary'} = "<tex2html_gls_mark>";
-$gls_file_mark{'glossary'} = "<tex2html_gls_file_mark>";
-$gls_title{'glossary'} = "Glossary";
-$delimN{'glossary'} = ", ";
-$glodelim{'glossary'} = " ";
-$glsnumformat{'glossary'} = "textrm";
-
-sub replace_glossary_markers{
-   foreach $type (keys %gls_mark)
-   {
-      if (defined &add_gls_hook)
-        {&add_gls_hook if (/$gls_mark{$type}/);}
-      else
-        {&add_gls($type) if (/$gls_mark{$type}/);}
-
-      s/$gls_file_mark{$type}/$glsfile{$type}/g;
-   }
-}
-
-# there must be a better way of doing this
-# other than copying the orginal code and adding to it.
-sub replace_general_markers {
-    if (defined &replace_infopage_hook) {&replace_infopage_hook if (/$info_page_mark/);}
-    else { &replace_infopage if (/$info_page_mark/); }
-    if (defined &add_idx_hook) {&add_idx_hook if (/$idx_mark/);}
-    else {&add_idx if (/$idx_mark/);}
-    &replace_glossary_markers;
-
-    if ($segment_figure_captions) {
-s/$lof_mark/$segment_figure_captions/o
-    } else { s/$lof_mark/$figure_captions/o }
-    if ($segment_table_captions) {
-s/$lot_mark/$segment_table_captions/o
-    } else { s/$lot_mark/$table_captions/o }
-    &replace_morelinks();
-    if (defined &replace_citations_hook) {&replace_citations_hook if /$bbl_mark/;}
-    else {&replace_bbl_marks if /$bbl_mark/;}
-    if (defined &add_toc_hook) {&add_toc_hook if (/$toc_mark/);}
-    else {&add_toc if (/$toc_mark/);}
-    if (defined &add_childs_hook) {&add_childs_hook if (/$childlinks_on_mark/);}
-    else {&add_childlinks if (/$childlinks_on_mark/);}
-    &remove_child_marks;
-
-    if (defined &replace_cross_references_hook) {&replace_cross_references_hook;}
-    else {&replace_cross_ref_marks if /$cross_ref_mark||$cross_ref_visible_mark/;}
-    if (defined &replace_external_references_hook) {&replace_external_references_hook;}
-    else {&replace_external_ref_marks if /$external_ref_mark/;}
-    if (defined &replace_cite_references_hook) {&replace_cite_references_hook;}
-    else { &replace_cite_marks if /$cite_mark/; }
-    if (defined &replace_user_references) {
-  &replace_user_references if /$user_ref_mark/; }
-
-}
-
-sub add_gls{
-    local($sidx_style, $eidx_style) =('<STRONG>','</STRONG>');
-    if ($INDEX_STYLES) {
-if ($INDEX_STYLES =~/,/) {
-local(@styles) = split(/\s*,\s*/,$INDEX_STYLES);
-    $sidx_style = join('','<', join('><',@styles) ,'>');
-    $eidx_style = join('','</', join('></',reverse(@styles)) ,'>');
-} else {
-    $sidx_style = join('','<', $INDEX_STYLES,'>');
-    $eidx_style = join('','</', $INDEX_STYLES,'>');
-}
-    }
-    &add_real_gls
-}
-
-sub gloskeysort{
-   local($x, $y) = ($a, $b);
-   $x=~s/^(.*)###(\d+)$/\l\1/;
-   local($x_id) = $2;
-   $y=~s/^(.*)###(\d+)$/\l\1/;
-   local($y_id) = $2;
-
-   local($n) = ($x cmp $y);
-
-   if ($n == 0)
-   {
-      $n = ($x_id <=> $y_id);
-   }
-
-   $n;
-}
-
-sub add_real_gls{
-    local($type) = @_;
-    print "\nDoing the $type ...";
-    local($key, $str, @keys, $glossary, $level, $count,
-  @previous, @current, $id, $linktext, $delimN);
-
-    @keys = keys %{$glossary{$type}};
-
-    @keys = sort gloskeysort @keys;
-
-    $level = 0;
-
-    $delimN = $delimN{$type};
-
-    foreach $key (@keys) {
-        $current = $key;
-$str = $current;
-$str =~ s/\#\#\#\d+$//o; # Remove the unique id's
-        #$linktext = $cross_ref_visible_mark;
-        $id = ++$global{'max_id'};
-        $linktext = "\\$glossary_format{$type}{$key}${OP}$id${CP}$glossary_linktext{$type}{$key}${OP}$id${CP}";
-        $linktext = &translate_commands($linktext);
-$glossary .=
-    # If it's the same string don't start a new line
-    (&index_key_eq($current, $previous) ?
-               $delimN
-               . $glossary{$type}{$key}
-               . $linktext
-               . "</A>\n"
-            : "<DT>"
-                   . $glossary_name{$type}{$key}
-                   . "<DD>". $glossary_desc{$type}{$key}
-                   . $glodelim{$type} . $glossary{$type}{$key}
-     . $linktext. "</A>\n");
-$previous = $current;
-    }
-    $glossary = '<DD>'.$glossary unless ($glossary =~ /^\s*<D(T|D)>/);
-
-    $glossary =~ s/(<A [^>]*>)(<D(T|D)>)/$2$1/g;
-
-    $str = &translate_commands("\\glossarypostamble");
-    s/$gls_mark{$type}/$preglossary\n<DL COMPACT>\n$glossary<\/DL>$str\n/s;
-}
-
-sub set_depth_levels {
-    # Sets $outermost_level
-    local($level);
-    # scan the document body, not the preamble, for use of sectioning commands
-    my ($contents) = $_;
-    if ($contents =~ /\\begin\s*((?:$O|$OP)\d+(?:$C|$CP))document\1|\\startdocument/s) {
-$contents = $';
-    }
-    foreach $level ("part", "chapter", "section", "subsection",
-    "subsubsection", "paragraph") {
-last if (($outermost_level) = $contents =~ /\\($level)$delimiter_rx/);
-last if (($outermost_level) = $contents =~ /\\endsegment\s*\[\s*($level)\s*\]/s);
-if ($contents =~ /\\segment\s*($O\d+$C)[^<]+\1\s*($O\d+$C)\s*($level)\s*\2/s)
-{ $outermost_level = $3; last };
-    }
-    $level = ($outermost_level ? $section_commands{$outermost_level} :
-      do {$outermost_level = 'section'; 3;});
-
-    if ($REL_DEPTH && $MAX_SPLIT_DEPTH) {
-$MAX_SPLIT_DEPTH = $level + $MAX_SPLIT_DEPTH;
-    } elsif (!($MAX_SPLIT_DEPTH)) { $MAX_SPLIT_DEPTH = 1 };
-
-    %unnumbered_section_commands = (
-          'tableofcontents', $level
-, 'listoffigures', $level
-, 'listoftables', $level
-, 'bibliography', $level
-, 'textohtmlindex', $level
-, 'textohtmlglossary', $level
-        , %unnumbered_section_commands
-        );
-
-    %section_commands = (
-  %unnumbered_section_commands
-        , %section_commands
-        );
-}
-
-sub add_bbl_and_idx_dummy_commands {
-    local($id) = $global{'max_id'};
-
-    s/([\\]begin\s*$O\d+$C\s*thebibliography)/$bbl_cnt++; $1/eg;
-    ## if ($bbl_cnt == 1) {
-s/([\\]begin\s*$O\d+$C\s*thebibliography)/$id++; "\\bibliography$O$id$C$O$id$C $1"/geo;
-    #}
-    $global{'max_id'} = $id;
-    s/([\\]begin\s*$O\d+$C\s*theindex)/\\textohtmlindex $1/o;
-    s/[\\]printindex/\\textohtmlindex /o;
-    &add_gls_dummy_commands;
-    &lib_add_bbl_and_idx_dummy_commands() if defined(&lib_add_bbl_and_idx_dummy_commands);
-}
-
-# this gets called before do_cmd_newglossarytype
-# so currently only substitutes \\printglossary and \\printacronym
-sub add_gls_dummy_commands{
-   #foreach $type (keys %gls_mark)
-   #{
-   #   #$id = ++$global{'max_id'};
-   #   s/[\\]print$type/\\textohtmlglossary[$type]/sg;
-   #}
-
-   s/[\\]printglossary/\\textohtmlglossary/sg;
-   s/[\\]printacronym/\\textohtmlglossary[$acronymtype]/sg;
-}
-
-# This is modified from do_cmd_textohtmlindex
-
-sub do_cmd_textohtmlglossary{
-   local($_) = @_;
-
-   local($type);
-
-   $_[0]=~s/^\s*\[([^]]*)\]//;
-   $type = $1;
-   if ($type eq '') {$type = 'glossary';}
-
-   unless (defined $gls_mark{$type})
-   {
-      &write_warnings("glossary type '$type' not implemented");
-   }
-
-   if (eval "(defined \&do_cmd_${type}name) ||\$new_command{\"${type}name\"}")
-   {
-      local($br_id)=++$global{'max_id'};
-      $TITLE = &translate_environments("$O$br_id$C\\${type}name$O$br_id$C");
-   }
-   else
-   { $TITLE = $gls_title{$type} }
-   $toc_sec_title = $TITLE;
-   $glsfile{$type} = $CURRENT_FILE;
-   if (%glossary_labels) { &make_glossary_labels(); }
-   if (($SHORT_INDEX) && (%glossary_segment))
-   { &make_preglossary(); }
-   else
-   { $preglossary = &translate_commands("\\glossarypreamble"); }
-   local $idx_head = $section_headings{'textohtmlindex'};
-   local($heading) = join(''
-        , &make_section_heading($TITLE, $idx_head)
-        , $gls_mark{$type} );
-   local($pre,$post) = &minimize_open_tags($heading);
-   join('',"<BR>\n" , $pre, $_[0]);
-}
-
-sub make_glossary_labels {
-    local($key, @keys);
-    @keys = keys %glossary_labels;
-    foreach $key (@keys) {
-        if (($ref_files{$key}) && !($ref_files{$key} eq "$glsfile{'glossary'}")) {
-            local($tmp) = $ref_files{$key};
-            &write_warnings("\nmultiple label $key , target in $glsfile{'glossary'} masks $tmp ");
-        }
-        $ref_files{$key} .= $glsfile{'glossary'};
-    }
-}
-
-sub make_preglossary{ &make_real_preglossary }
-sub make_real_preglossary{
-    local($key, @keys, $head, $body);
-    $head = "<HR>\n<H4>Legend:</H4>\n<DL COMPACT>";
-    @keys = keys %glossary_segment;
-    foreach $key (@keys) {
-        local($tmp) = "segment$key";
-        $tmp = $ref_files{$tmp};
-        $body .= "\n<DT>$key<DD>".&make_named_href('',$tmp,$glossary_segment{$key});
-    }
-    $preglossary = join('', $head, $body, "\n</DL>") if ($body);
-}
-
-sub do_cmd_glossary { &do_real_glossary(@_) }
-sub do_real_glossary {
-    local($_) = @_;
-    local($br_id, $str);
-    local($type) = "glossary";
-    local($anchor);
-
-    if (s/^\S*$OP(\d+)${CP}type=(.+)$OP\1$CP//)
-    {
-       $type = $2;
-    }
-
-    local($idx_option,$pat) = &get_next_optional_argument;
-
-    $str = &missing_braces unless (
-(s/$next_pair_pr_rx/($br_id, $str) = ($1, $2);''/eo)
-||(s/$next_pair_rx/($br_id, $str) = ($1, $2);''/eo));
-
-    # the maths gets processed before being passed
-    # to do_cmd_glossary.  How can I do this
-    # substitution before it gets converted to an image?
-    $str=~s/\"\"/\"/gs;
-    $str=~s/\"\|/\|/gs;
-    $str=~s/\"@/@/gs;
-    $str=~s/\"!/!/gs;
-
-    $str=~s/;SPMquot;;SPMquot;/;SPMquot;/gs;
-    $str=~s/;SPMquot;\|/\|/gs;
-    $str=~s/;SPMquot;\@/\@/gs;
-    $str=~s/;SPMquot;!/!/gs;
-
-    $anchor = &make_glossary_entry($br_id,$str,$anchor_invisible_mark,$type);
-
-    join('', $anchor, $_);
-}
-
-sub make_glossary_entry { &make_real_glossary_entry(@_) }
-sub make_real_glossary_entry {
-    local($br_id,$str,$text,$type) = @_;
-    local($this_file) = $CURRENT_FILE;
-    $TITLE = $saved_title if (($saved_title)&&(!($TITLE)||($TITLE eq $default_title)));
-    #extract name, sort, description and format data from $str
-    local($name,$sort,$description,$format);
-
-    unless (($str=~/name\s*=\s*${OP}(\d+)${CP}(.+)${OP}\1${CP}\s*,?/s && ($name=$2)) ||
-        ($str=~/name\s*=\s*([^,]+)\s*,?/s && ($name=$1)))
-    {
-       &write_warnings("can't determine name key from $str");
-    }
-
-    unless (($str=~/sort\s*=\s*${OP}(\d+)${CP}(.+)${OP}\1${CP}\s*,?/s && ($sort=$2)) ||
-        ($str=~/sort\s*=\s*([^,]+)\s*,?/s && ($sort=$1)))
-    {
-       $sort = $name;
-    }
-
-    unless (($str=~/description\s*=\s*${OP}(\d+)${CP}(.+)${OP}\1${CP}\s*,?/s && ($description=$2)) ||
-        ($str=~/description\s*=\s*([^,]+)\s*,?/s && ($description=$1)))
-    {
-       &write_warnings("can't determine description key from $str");
-    }
-
-    unless (($str=~/format\s*=\s*${OP}(\d+)${CP}(.+)${OP}\1${CP}\s*,?/s && ($format=$2)) ||
-        ($str=~/format\s*=\s*([^,]+)\s*,?/s && ($format=$1)))
-    {
-       $format = "glsnumformat[$type]";
-    }
-
-    # Save the reference
-    $str = "$sort$description###" . ++$global{'max_id'}; # Make unique
-    # concatenate multiple spaces into a single space
-    # otherwise keys won't sort properly
-    $str=~s/\s+/ /gs;
-    $glossary{$type}{$str} .= &make_half_href($this_file."#$br_id");
-    $glossary_name{$type}{$str} = $name;
-    $glossary_format{$type}{$str} = $format;
-    $glossary_desc{$type}{$str} = $description;
-    $glossary_linktext{$type}{$str} = $TITLE;
-    "<A HREF=$gls_file_mark{$type}#tex2html$href_name NAME=\"$br_id\">$text<\/A>";
-}
-
-sub do_cmd_xglossary{
-  local($_) = @_;
-  local($entry,$text);
-  local($type) = "glossary";
-
-  if (s/^$OP(\d+)${CP}type=(.+)$OP\1$CP//)
-  {
-     $type = $2;
-  }
-
-  $entry = &missing_braces unless
-            s/$next_pair_pr_rx/$entry=$2;''/eo;
-
-  $text = &missing_braces unless
-            s/$next_pair_pr_rx/$text=$2;''/eo;
-
-  $entry=~s/\"\"/\"/gs;
-  $entry=~s/\"\|/\|/gs;
-  $entry=~s/\"\@/\@/gs;
-  $entry=~s/\"!/!/gs;
-
-  $entry=~s/;SPMquot;;SPMquot;/;SPMquot;/gs;
-  $entry=~s/;SPMquot;\|/\|/gs;
-  $entry=~s/;SPMquot;\@/\@/gs;
-  $entry=~s/;SPMquot;!/!/gs;
-
-  $br_id = ++$global{'max_id'};
-  join('', &make_glossary_entry($br_id,$entry,$text,$type),
-       $_);
-}
-
-sub do_cmd_newglossarytype{
-   local($type,$out,$in);
-   $type = &missing_braces unless
-           ($_[0]=~s/$next_pair_pr_rx//o&&($type=$2));
-   $out = &missing_braces unless
-           ($_[0]=~s/$next_pair_pr_rx//o&&($out=$2));
-   $in = &missing_braces unless
-           ($_[0]=~s/$next_pair_pr_rx//o&&($in=$2));
-
-   &make_newglossarytype($type);
-
-   $_[0];
-}
-
-sub make_newglossarytype{
-   local($type) = @_;
-
-   eval ("sub do_cmd_make$type\{\}");
-
-   $gls_mark{$type} = "<tex2html_${type}_mark>";
-   $gls_file_mark{$type} = "<tex2html_${type}_file_mark>";
-   $gls_title{$type} = "\\glossaryname";
-
-   local($tmp) = 'sub do_cmd_' . $type. '{';
-   $tmp .= 'local($id) = ++$global{\'max_id\'};';
-   $tmp .= '"\\\\glossary$OP$id${CP}type=' . $type . '$OP$id$CP".$_[0];';
-   $tmp .= '}';
-
-   eval($tmp);
-
-   $tmp = 'sub do_cmd_x' . $type. '{';
-   $tmp .= 'local($id) = ++$global{\'max_id\'};';
-   $tmp .= '"\\\\xglossary$OP$id${CP}type=' . $type . '$OP$id$CP".$_[0];';
-   $tmp .= '}';
-
-   eval($tmp);
-
-   $tmp = 'sub do_cmd_print' . $type. '{';
-   #$tmp .= 'local($id)=++$global{\'max_id\'};';
-   $tmp .= '"\\\\textohtmlglossary[' . $type
-        . ']" . $_[0]';
-   $tmp .= '}';
-
-   eval($tmp);
-
-   $delimN{$type} = ", ";
-   $glodelim{$type} = "";
-   $glsnumformat{$type} = "";
-
-}
-
-sub do_cmd_gloshort{
-  local($_) = @_;
-  join('', "<tex2html_GLOSHORT_mark>", $_);
-}
-
-sub do_cmd_glolong{
-  local($_) = @_;
-  join('', "<tex2html_GLOLONG_mark>", $_);
-}
-
-$acronymnamefmt = "<tex2html_GLOLONG_mark> (<tex2html_GLOSHORT_mark>)";
-
-sub do_cmd_setacronymnamefmt{
-   local($_) = @_;
-
-   $acronymnamefmt = &missing_braces unless
-             s/$next_pair_pr_rx/$acronymnamefmt=$2;''/eo;
-
-   $_;
-}
-
-sub do_cmd_acronymfont{
-   local($_) = @_;
-   local($text) = &missing_braces unless
-                  s/$next_pair_pr_rx/$text=$2;''/eo;
-
-   $text . $_;
-}
-
- %acronym = ();
-
-sub do_cmd_newacronym{
-   local($_) = @_;
-   local($cmdname,$pat,$abbrv,$long,$glsentry,$name);
-
-   ($cmdname,$pat) = &get_next_optional_argument;
-
-   $abbrv = &missing_braces unless
-        (s/$next_pair_pr_rx/$abbrv=$2;''/eo);
-   $long = &missing_braces unless
-        (s/$next_pair_pr_rx/$long=$2;''/eo);
-   $glsentry = &missing_braces unless
-        (s/$next_pair_pr_rx/$glsentry=$2;''/eo);
-
-   if ($cmdname eq '')
-   {
-      $cmdname = $abbrv;
-   }
-
-   local($id);
-   $id = ++$global{'max_id'};
-   local($fmtedabbrv) = &translate_commands("\\acronymfont$OP$id$CP$abbrv$OP$id$CP");
-
-   unless ($glsentry=~/name=/)
-   {
-      $name = $acronymnamefmt;
-      $name=~s/<tex2html_GLOSHORT_mark>/$fmtedabbrv/egs;
-      $name=~s/<tex2html_GLOLONG_mark>/$long/egs;
-      $id = ++$global{'max_id'};
-      $glsentry .= ",name=$OP$id$CP$name$OP$id$CP";
-   }
-
-   $global{"${cmdname}first"} = 1;
-   $acronym{$cmdname}{'abbrv'} = $abbrv;
-   $acronym{$cmdname}{'long'} = $long;
-   $acronym{$cmdname}{'entry'} = $glsentry;
-
-   local($tmp);
-
-   unless ($cmdname=~/[^a-zA-Z]/)
-   {
-      $tmp = 'sub do_cmd_' . $cmdname . '{';
-      $tmp .= 'local($_)=@_;';
-      $tmp .= 'local($id)=++$global{\'max_id\'};';
-      $tmp .= 'local($str);';
-      $tmp .= '$str="${OP}$id${CP}'
-            . $cmdname
-            . '${OP}$id${CP}";';
-      $tmp .= '&do_cmd_useacronym($str . $_[0])';
-      $tmp .= '}';
-
-      eval($tmp);
-
-      $tmp = 'sub do_cmd_' . $cmdname . 'star{';
-      $tmp .= 'local($_)=@_;';
-      $tmp .= 'local($id)=++$global{\'max_id\'};';
-      $tmp .= 'local($str);';
-      $tmp .= '$str="${OP}$id${CP}'
-            . $cmdname
-            . '${OP}$id${CP}";';
-      $tmp .= '&do_cmd_useacronymstar($str . $_[0])';
-      $tmp .= '}';
-
-      eval($tmp);
-
-      $tmp = 'sub do_cmd_' . $cmdname . 'long{';
-      $tmp .= 'local($_)=@_;';
-      $tmp .= 'join("", \'' . $long . '\', $_[0])';
-      $tmp .= '}';
-
-      eval($tmp);
-
-      $tmp = 'sub do_cmd_' . $cmdname . 'short{';
-      $tmp .= 'local($_)=@_;';
-      $tmp .= 'join("", \'' . $fmtedabbrv . '\', $_[0])';
-      $tmp .= '}';
-
-      eval($tmp);
-   }
-
-   $_;
-}
-
-sub do_cmd_acrsh{
-   local($_) = @_;
-   local($cmdname,$text,$id);
-
-   $cmdname = &missing_braces unless
-                (s/$next_pair_pr_rx/$id=$1;$cmdname=$2;''/eo);
-
-   $text = &translate_commands("\\${cmdname}short");
-
-   $text . $_;
-}
-
-sub do_cmd_acrshstar{
-   local($_) = @_;
-   local($cmdname,$text,$id);
-
-   $cmdname = &missing_braces unless
-                (s/$next_pair_pr_rx/$id=$1;$cmdname=$2;''/eo);
-
-   $text = &translate_commands("\\${cmdname}short");
-
-   $text=~s/(<.*>)?(\w)/\1\u\2/;
-
-   $text . $_;
-}
-
-sub do_cmd_acrln{
-   local($_) = @_;
-   local($cmdname,$text,$id);
-
-   $cmdname = &missing_braces unless
-                (s/$next_pair_pr_rx/$id=$1;$cmdname=$2;''/eo);
-
-   $text = &translate_commands("\\${cmdname}long");
-
-   $text . $_;
-}
-
-sub do_cmd_acrlnstar{
-   local($_) = @_;
-   local($cmdname,$text,$id);
-
-   $cmdname = &missing_braces unless
-                (s/$next_pair_pr_rx/$id=$1;$cmdname=$2;''/eo);
-
-   $text = &translate_commands("\\${cmdname}long");
-
-   $text=~s/(\w)/\u\1/;
-
-   $text . $_;
-}
-
-sub do_cmd_useacronym{
-   local($_)=@_;
-   local($str,$abbrv,$long,$entry,$id);
-
-   local($optarg,$pat)=&get_next_optional_argument;
-
-   $cmdname = &missing_braces unless
-                (s/$next_pair_pr_rx/$cmdname=$2;''/eo);
-
-   if (defined %{$acronym{$cmdname}})
-   {
-      $abbrv = $acronym{$cmdname}{'abbrv'};
-      $long = $acronym{$cmdname}{'long'};
-      $entry = $acronym{$cmdname}{'entry'};
-      $id = ++$global{'max_id'};
-      $abbrv = "\\acronymfont$OP$id$CP$abbrv$OP$id$CP";
-
-      $id = ++$global{'max_id'};
-      $str = "\\xglossary${OP}$id${CP}type="
-        . $acronymtype. "${OP}$id${CP}";
-      $id = ++$global{'max_id'};
-      $str .= "${OP}$id${CP}"
-        . $entry . "${OP}$id${CP}";
-      $id = ++$global{'max_id'};
-      $str .= "${OP}$id${CP}";
-      $str .= ($global{"${cmdname}first"} ? "$long$optarg ($abbrv)" : "$abbrv$optarg");
-      $str .= "${OP}$id${CP}";
-
-      $global{"${cmdname}first"} = 0;
-   }
-   else
-   {
-      &write_warnings("acronym '$cmdname' not defined");
-   }
-
-   $str . $_
-}
-
-sub do_cmd_useacronymstar{
-   local($_)=@_;
-   local($str,$abbrv,$long,$entry,$id);
-   local($optarg,$pat)=&get_next_optional_argument;
-
-   $cmdname = &missing_braces unless
-               (s/$next_pair_pr_rx/$cmdname=$2;''/eo);
-
-   if (defined %{$acronym{$cmdname}})
-   {
-      $abbrv = $acronym{$cmdname}{'abbrv'};
-      $long = $acronym{$cmdname}{'long'};
-      $entry = $acronym{$cmdname}{'entry'};
-
-      if ($global{"${cmdname}first"})
-      {
-         $long=~s/^([^a-zA-Z]*)([a-zA-Z])/\1\u\2/;
-      }
-      else
-      {
-         $abbrv=~s/^([^a-zA-Z]*)([a-zA-Z])/\1\u\2/;
-      }
-
-      $id = ++$global{'max_id'};
-      $abbrv = "\\acronymfont$OP$id$CP$abbrv$OP$id$CP";
-
-      $name = ($global{"${cmdname}first"} ? "$long$optarg ($abbrv)" : "$abbrv$optarg");
-
-      $id = ++$global{'max_id'};
-      $str = "\\xglossary${OP}$id${CP}type="
-        . $acronymtype . "${OP}$id${CP}";
-      $id = ++$global{'max_id'};
-      $str .= "${OP}$id${CP}"
-        . $entry . "${OP}$id${CP}";
-      $id = ++$global{'max_id'};
-      $str .= "${OP}$id${CP}";
-      $str .= $name;
-      $str .= "${OP}$id${CP}";
-
-      $global{"${cmdname}first"} = 0;
-   }
-   else
-   {
-      &write_warnings("acronym '$cmdname' not defined");
-   }
-
-   $str . $_
-}
-
-sub do_cmd_ifacronymfirstuse{
-   local($_) = @_;
-   local($acronym,$truebit,$falsebit,$str);
-
-   $acronym = &missing_braces unless ($_[0]=~s/$next_pair_pr_rx//o&&($acronym=$2));
-   $truebit = &missing_braces unless ($_[0]=~s/$next_pair_pr_rx//o&&($truebit=$2));
-   $falsebit = &missing_braces unless ($_[0]=~s/$next_pair_pr_rx//o&&($falsebit=$2));
-
-   $str = ($global{"${acronym}true"} ? $truebit : $falsebit);
-
-   $str . $_[0];
-}
-
-sub do_cmd_resetacronym{
-   local($_) = @_;
-   local($cmdname);
-
-   $cmdname = &missing_braces unless
-               (s/$next_pair_pr_rx/$cmdname=$2;''/eo);
-
-   if (defined %{$acronym{$cmdname}})
-   {
-      $global{"${cmdname}first"} = 1;
-   }
-   else
-   {
-      &write_warnings("acronym '$cmdname' not defined");
-   }
-
-   $_;
-}
-
-sub do_cmd_resetallacronyms{
-   local($_) = @_;
-
-   foreach $key (keys %acronym)
-   {
-      $global{"${key}first"} = 1;
-   }
-
-   $_;
-}
-
-sub do_cmd_unsetacronym{
-   local($_) = @_;
-   local($cmdname);
-
-   $cmdname = &missing_braces unless
-               (s/$next_pair_pr_rx/$cmdname=$2;''/eo);
-
-   if (defined %{$acronym{$cmdname}})
-   {
-      $global{"${cmdname}first"} = 0;
-   }
-   else
-   {
-      &write_warnings("acronym '$cmdname' not defined");
-   }
-
-   $_;
-}
-
-sub do_cmd_unsetallacronyms{
-   local($_) = @_;
-
-   foreach $key (keys %acronym)
-   {
-      $global{"${key}first"} = 0;
-   }
-
-   $_;
-}
-
- %savedglosentry = ();
-
-# This command is deprecated
-sub do_cmd_saveglosentry{
-   local($_) = @_;
-   local($name,$desc,$type,$pat);
-
-   ($type,$pat) = &get_next_optional_argument;
-
-   $name = &missing_braces unless
-             s/$next_pair_pr_rx/$name=$2;''/eo;
-   $desc = &missing_braces unless
-             s/$next_pair_pr_rx/$desc=$2;''/eo;
-
-   $savedglosentry{$name}{'entry'} = "name=$name,description=$desc";
-   $savedglosentry{$name}{'type'} = $type;
-
-   $_;
-}
-
-sub do_cmd_storeglosentry{
-   local($_) = @_;
-   local($type,$pat,$entry,$label);
-
-   ($type,$pat) = &get_next_optional_argument;
-
-   if ($type eq '')
-   {
-      $type = 'glossary';
-   }
-
-   $label = &missing_braces unless
-              s/$next_pair_pr_rx/$label=$2;''/eo;
-
-   $entry = &missing_braces unless
-              s/$next_pair_pr_rx/$entry=$2;''/eo;
-
-   $savedglosentry{$label}{'entry'} = $entry;
-   $savedglosentry{$label}{'type'} = $type;
-
-   $_;
-}
-
-sub do_cmd_useglosentry{
-   local($_) = @_;
-   local($optarg,$pat,$name,$str,$id);
-   ($optarg,$pat) = &get_next_optional_argument;
-
-   $name = &missing_braces unless
-             (s/$next_pair_pr_rx/$name=$2;''/eo);
-
-   if (defined $savedglosentry{$name}{type})
-   {
-      $id = ++$global{'max_id'};
-      $str = "\\$savedglosentry{$name}{type}${OP}$id${CP}$savedglosentry{$name}{entry}";
-
-      unless ($optarg eq "")
-      {
-         $str .= ",$optarg";
-      }
-
-      $str .= "${OP}$id${CP}";
-   }
-   else
-   {
-      &write_warnings("glossary entry '$name' undefined");
-      $str = '';
-   }
-
-   $str . $_;
-}
-
-sub do_cmd_useGlosentry{
-   local($_) = @_;
-   local($optarg,$pat,$name,$str,$id);
-   ($optarg,$pat) = &get_next_optional_argument;
-
-   $name = &missing_braces unless
-             (s/$next_pair_pr_rx/$name=$2;''/eo);
-
-   if (defined $savedglosentry{$name}{type})
-   {
-      $id = ++$global{'max_id'};
-      $str = "\\x$savedglosentry{$name}{type}${OP}$id${CP}$savedglosentry{$name}{entry}";
-
-      unless ($optarg eq "")
-      {
-         $str .= ",$optarg";
-      }
-
-      $str .= "${OP}$id${CP}";
-   }
-   else
-   {
-      &write_warnings("glossary entry '$name' undefined");
-      $str = '';
-   }
-
-   $str . $_;
-}
-
-sub do_cmd_gls{
-   local($_) = @_;
-   local($optarg,$pat,$label,$str,$id,$name);
-   ($optarg,$pat) = &get_next_optional_argument;
-
-   $label = &missing_braces unless
-             (s/$next_pair_pr_rx/$label=$2;''/eo);
-
-   if (defined $savedglosentry{$label}{type})
-   {
-      $str = $savedglosentry{$label}{'entry'};
-
-      if ($str=~/name=[ ]*${OP}(\d+)${CP}(.*)${OP}\1${CP}/s)
-      {
-         $name = $2;
-      }
-      elsif (($str=~/name=[ ]*([^,]+),/m)
-          || ($str=~/name=[ ]*([^,]+)\Z(?!\n)/m))
-      {
-         $name = $1;
-      }
-
-      $id = ++$global{'max_id'};
-      $str = "\\x$savedglosentry{$label}{type}${OP}$id${CP}$savedglosentry{$label}{entry}";
-
-      unless ($optarg eq "")
-      {
-         $str .= ",$optarg";
-      }
-
-      $str .= "${OP}$id${CP}";
-      $id = ++$global{'max_id'};
-      $str .= "${OP}$id${CP}$name${OP}$id${CP}";
-   }
-   else
-   {
-      &write_warnings("glossary entry '$label' undefined");
-      $str = '';
-   }
-
-   $str . $_;
-}
-
-sub do_cmd_glossarypreamble{
-   local($_) = @_;
-   $_[0];
-}
-
-sub do_cmd_glossarypostamble{
-   local($_) = @_;
-   $_[0];
-}
-
-sub do_cmd_glsnumformat{
-   local($_) = @_;
-   local($type,$pat) = &get_next_optional_argument;
-
-   if ($type eq '')
-   {
-      $type = 'glossary';
-   }
-
-   local($cmd) = '';
-   unless ($glsnumformat{$type} eq '')
-   {
-      $cmd = "\\$glsnumformat{$type}";
-   }
-
-   $cmd . $_;
-}
-
-sub do_cmd_setglossary{
-   local($_) = @_;
-   local($str,$type,$format,$delimN,$glodelim);
-   $str = &missing_braces unless ($_[0]=~s/$next_pair_pr_rx//o&&($str=$2));
-
-   unless (($str=~/type=([^,]+),|$/&&($type=$1)) ||
-    ($str=~/type=${OP}(\d+)${CP}(.*)${OP}\1${CP}/&&($type=$2)))
-   {
-      $type = 'glossary';
-   }
-
-   if ($str=~/glsnumformat=[ ]*${OP}(\d+)${CP}(.*)${OP}\1${CP}/s)
-   {
-      $format = $2;
-   }
-   elsif (($str=~/glsnumformat=[ ]*([^,]+),/m)
-       || ($str=~/glsnumformat=[ ]*([^,]+)\Z(?!\n)/m))
-   {
-      $format = $1;
-   }
-
-   if ($format ne '')
-   {
-      $glsnumformat{$type} = $format;
-
-      if ($format eq 'ignore')
-      {
-         $delimN{$type} = '';
-      }
-   }
-
-   if (($str=~/delimN=([^,]+),|$/&&($delimN=$1)) ||
-    ($str=~/delimN=${OP}(\d+)${CP}(.*)${OP}\1${CP}/&&($delimN=$2)))
-   {
-      $delimN{$type} = $delimN;
-   }
-
-   if (($str=~/glodelim=([^,]+),|$/&&($glodelim=$1)) ||
-    ($str=~/glodelim=${OP}(\d+)${CP}(.*)${OP}\1${CP}/&&($glodelim=$2)))
-   {
-      $glodelim{$type} = $glodelim;
-   }
-
-   $_[0];
-}
-
-sub do_cmd_ignore{
-   local($_) = @_;
-   local($str);
-   $str = &missing_braces unless ($_[0]=~s/$next_pair_pr_rx//o&&($str=$2));
-
-   $_[0];
-}
-
-sub do_cmd_hyperit{
-   join('', "\\textit ", $_[0]);
-}
-
-sub do_cmd_hyperrm{
-   join('', "\\textrm ", $_[0]);
-}
-
-sub do_cmd_hypertt{
-   join('', "\\texttt ", $_[0]);
-}
-
-sub do_cmd_hypersf{
-   join('', "\\textsf ", $_[0]);
-}
-
-sub do_cmd_hyperbf{
-   join('', "\\textbf ", $_[0]);
-}
-
-&ignore_commands( <<_IGNORED_CMDS_ );
-makeglossary
-makeacronym
-_IGNORED_CMDS_
-
-1;
diff --git a/makeglossaries b/makeglossaries
deleted file mode 100644
index fcb3dfef0314db08e8ecdeccd49049d47b0836d1..0000000000000000000000000000000000000000
--- a/makeglossaries
+++ /dev/null
@@ -1,874 +0,0 @@
-#!/usr/bin/env perl
-
-# File    : makeglossaries
-# Author  : Nicola Talbot
-# Version : 1.9 (2010/06/14)
-# Description: simple Perl script that calls makeindex or xindy.
-# Intended for use with "glossaries.sty" (saves having to remember
-# all the various switches)
-
-# This file is distributed as part of the glossaries LaTeX package.
-# Copyright 2007 Nicola L.C. Talbot
-# This work may be distributed and/or modified under the
-# conditions of the LaTeX Project Public License, either version 1.3
-# of this license or any later version.
-# The latest version of this license is in
-#   http://www.latex-project.org/lppl.txt
-# and version 1.3 or later is part of all distributions of LaTeX
-# version 2005/12/01 or later.
-#
-# This work has the LPPL maintenance status `maintained'.
-#
-# The Current Maintainer of this work is Nicola Talbot.
-
-# This work consists of the files glossaries.dtx and glossaries.ins 
-# and the derived files glossaries.sty, mfirstuc.sty,
-# glossary-hypernav.sty, glossary-list.sty, glossary-long.sty,
-# glossary-super.sty, glossaries.perl.
-# Also makeglossaries and makeglossaries.
-
-my $version="2.0 (2010-06-30)";
-
-# History:
-# v2.0 (2010-06-30) :
-#   * Made file handle local in &scan_aux
-# v1.9 (2010-06-14) :
-#   * Check for \@input
-# v1.8 (2009-11-03) :
-#   * Create an empty output file if the input file is empty
-#     without calling xindy/makeindex
-# v1.7 (2009-09-23) :
-#   * Issue warning rather than error when empty/non existant file 
-#     checks fail
-# v1.6 (2009-05-24) :
-#   * main glossary no longer automatically added
-#     (only added if information in aux file)
-#   * if file extension is specified, check added to ensure it
-#     corresponds to a known glossary extension.
-#   * added file existance test and file empty test
-# v1.5 (2008-12-26) :
-#   * added support for xindy
-#   * picks up ordering information from aux file
-# v1.4 (2008-05-10) :
-#   * added support for filenames with spaces.
-# v1.3 (2008-03-08) :
-#   * changed first line from /usr/bin/perl -w to /usr/bin/env perl
-#     (Thanks to Karl Berry for suggesting this.)
-# v1.2 (2008-03-02) :
-#   * added support for --help and --version
-#   * improved error handling
-# v1.1 (2008-02-13) :
-#   * added -w and strict
-#   * added check to ensure .tex file not passed to makeglossaries
-#
-# v1.0 (2007-05-10) : Initial release.
-
-use Getopt::Std;
-use strict;
-use vars qw($opt_q $opt_t $opt_o $opt_s $opt_p $opt_g $opt_c $opt_r
-   $opt_l $opt_i $opt_L $opt_n $opt_C);
-
-
-$Getopt::Std::STANDARD_HELP_VERSION = 1;
-
-# v1.5 added -L <lang> for xindy (but language can be specified in 
-# .tex file)
-# v1.5 added -n (print the command that would be issued but
-# don't actually run the command)
-getopts('s:o:t:p:L:C:ilqrcgn');
-
-unless ($#ARGV == 0)
-{
-   die "makeglossaries: Need exactly one file argument.\nUse `makeglossaries --help' for help.\n";
-}
-
-# define known extensions
-
-# v1.6: removed adding main glossary here as there's no guarantee
-# that it's been used. If it has been used, the information will
-# be picked up later in the aux file
-my %exttype = (
-#   main => {in=>'glo', out=>'gls', 'log'=>'glg'},
- );
-
-# v1.5 define require languages for xindy
-
-my %language = ();
-my %codepage = ();
-
-my $ext = '';
-my $name = $ARGV[0];
-
-# modified this to make sure users don't try passing the
-# tex file:
-if (length($ARGV[0]) > 3 and substr($ARGV[0],-4,1) eq ".")
-{
-  $name = substr($ARGV[0],0,length($ARGV[0])-4);
-
-  $ext = substr($ARGV[0],-3,3);
-
-  if (lc($ext) eq 'tex')
-  {
-     die("Don't pass the tex file to makeglossaries:\n"
-        ."either omit the extension to make all the glossaries, "
-        ."or specify one of the glossary files, e.g. $name.glo, to "
-        ."make just that glossary.\n")
-  }
-}
-
-my $istfile = "";
-
-# should letter ordering be used? (v1.5 added)
-
-my $letterordering = defined($opt_l);
-
-# check aux file for other glossary types
-# and for ist file name
-
-&scan_aux($name);
-
-# has the style file been specified?
-unless ($istfile)
-{
-   die "No \\\@istfilename found in '$name.aux'.\n",
-       "Did your LaTeX run fail?\n",
-       "Did your LaTeX run produce any output?\n",
-       "Did you remember to use \\makeglossaries?\n";
-}
-
-# v1.5 save the general xindy switches
-
-my $xdyopts = '';
-
-unless ($opt_L eq "")
-{
-  $xdyopts .= " -L $opt_L";
-}
-
-# save all the general makeindex switches
-
-my $mkidxopts = '';
-
-if ($opt_i)
-{
-   $mkidxopts .= " -i";
-}
-
-if ($letterordering)
-{
-   $mkidxopts .= " -l";
-   $xdyopts .= " -M ord/letorder";
-}
-
-if ($opt_q)
-{
-   $mkidxopts .= " -q";
-   $xdyopts .= " -q";
-}
-
-if ($opt_r)
-{
-   $mkidxopts .= " -r";
-}
-
-if ($opt_c)
-{
-   $mkidxopts .= " -c";
-}
-
-if ($opt_g)
-{
-   $mkidxopts .= " -g";
-}
-
-unless ($opt_p eq "")
-{
-   $mkidxopts .= " -p $opt_p";
-}
-
-unless ($opt_s eq "")
-{
-   $istfile = $opt_s;
-}
-
-# Use xindy if style file ends with .xdy otherwise use makeindex
-
-my $usexindy = $istfile=~m/\.xdy\Z/;
-
-if ($ext ne '')
-{
-   # an extension has been specified, so only process
-   # the specified file
-
-   # v1.6 %thistype is no longer given a default value
-   my %thistype;
-
-   my $thislang = "";
-   my $thiscodepage = "";
-
-   foreach my $type (keys %exttype)
-   {
-      if ($exttype{$type}{'in'} eq $ext)
-      {
-         %thistype = %{$exttype{$type}};
-
-         $thislang = $language{$type};
-
-         $thiscodepage = $codepage{$type};
-
-         last;
-      }
-   }
-
-   # v1.6 If %thistype hasn't been defined, then the given
-   # extension doesn't correspond to any known glossary type
-
-   unless (defined %thistype)
-   {
-      die "The file extension '$ext' doesn't correspond to any\n",
-          "known glossary extension. Try running makeglossaries\n",
-          "without an extension, e.g. makeglossaries \"$name\".\n";
-   }
-
-   my $outfile;
-
-   if ($opt_o eq "")
-   {
-      $outfile = "$name.$thistype{out}";
-   }
-   else
-   {
-      $outfile = $opt_o;
-   }
-
-   my $transcript;
-
-   if ($opt_t eq "")
-   {
-      $transcript = "$name.$thistype{'log'}";
-   }
-   else
-   {
-      $transcript = $opt_t;
-   }
-
-   if ($usexindy)
-   {
-      &xindy("$name.$ext", $outfile, $transcript,$istfile,
-        $thislang, $thiscodepage, $xdyopts, $opt_q, $opt_n);
-   }
-   else
-   {
-      &makeindex("$name.$ext",$outfile,$transcript,$istfile,
-                 $mkidxopts,$opt_q, $opt_n);
-   }
-}
-else
-{
-   # no file extension specified so process all glossary types
-
-   foreach my $type (keys %exttype)
-   {
-      my %thistype = %{$exttype{$type}};
-
-      my $inputfile = "$name.$thistype{in}";
-
-      my $outfile;
-
-      if ($opt_o eq "")
-      {
-         $outfile = "$name.$thistype{out}";
-      }
-      else
-      {
-         $outfile = $opt_o;
-      }
-
-      # v1.7 print warnings to STDOUT instead of STDERR
-
-      # v1.6 added file existance test
-      unless (-e $inputfile)
-      {
-         print "Warning: File '$inputfile' doesn't exist.\n",
-             "*** Skipping glossary '$type'. ***\n";
-         next;
-      }
-
-      unless (-r $inputfile)
-      {
-         print "Warning: No read access for '$inputfile' $!\n",
-             "*** Skipping glossary '$type'. ***\n";
-         next;
-      }
-
-      # v1.6 added file empty test
-      if (-z $inputfile)
-      {
-         print "Warning: File '$inputfile' is empty.\n",
-             "Have you used any entries defined in glossary '$type'?\n";
-
-         # create an empty output file and move on to the next glossary
-
-         if (open OFD, ">$outfile")
-         {
-            print OFD "\\null\n";
-            close OFD;
-         }
-         else
-         {
-            print STDERR "Unable to create '$outfile' $!\n";
-         }
-
-         next;
-      }
-
-      my $transcript;
-
-      if ($opt_t eq "")
-      {
-         $transcript = "$name.$thistype{'log'}";
-      }
-      else
-      {
-        $transcript = $opt_t;
-      }
-
-      if ($usexindy)
-      {
-         &xindy($inputfile,$outfile,$transcript,$istfile,
-                $language{$type},$codepage{$type},
-                $xdyopts,$opt_q,$opt_n);
-      }
-      else
-      {
-         &makeindex($inputfile,$outfile,$transcript,
-                    $istfile,$mkidxopts,$opt_q,$opt_n);
-      }
-   }
-}
-
-sub scan_aux{
-  my $name = shift;
-
-  # v2.0 added
-  local(*AUXFILE);
-
-  if (open AUXFILE, "$name.aux")
-  {
-     while (<AUXFILE>)
-     {
-        # v1.9 added
-        if (m/\\\@input{(.+)\.aux}/)
-        {
-           &scan_aux($1);
-        }
-
-        if (m/\\\@newglossary\s*\{(.*)\}{(.*)}{(.*)}{(.*)}/)
-        {
-           $exttype{$1}{'log'} = $2;
-           $exttype{$1}{'out'} = $3;
-           $exttype{$1}{'in'}  = $4;
-
-           unless ($opt_q)
-           {
-              print "added glossary type '$1' ($2,$3,$4)\n";
-           }
-        }
-
-        if (m/\\\@istfilename\s*{([^}]*)}/)
-        {
-           $istfile = $1;
-
-           # check if double quotes were added to \jobname
-           $istfile=~s/^"(.*)"\.ist$/$1.ist/;
-        }
-
-        # v1.5 added
-        if (m/\\\@xdylanguage\s*{([^}]+)}{([^}]*)}/)
-        {
-           $language{$1} = $2;
-        }
-
-        # v1.5 added
-        if (m/\\\@gls\@codepage\s*{([^}]+)}{([^}]*)}/)
-        {
-           $codepage{$1} = $2;
-        }
-
-        # v1.5 added
-        # Allow -l switch to override specification in aux file
-        unless (defined($opt_l))
-        {
-           if (m/\\\@glsorder\s*{([^}]+)}/)
-           {
-              my $ordering = $1;
-
-              if ($ordering eq "word")
-              {
-                 $letterordering = 0;
-              }
-              elsif ($ordering eq "letter")
-              {
-                 $letterordering = 1;
-              }
-              else
-              {
-                 print STDERR
-                   "Unknown ordering '$letterordering'\n",
-                   "Assuming word ordering\n";
-                 $letterordering = 0;
-              }
-           }
-        }
-     }
-
-     close AUXFILE;
-  }
-  else
-  {
-     print STDERR "Unable to open $name.aux: $!\n";
-  }
-}
-
-sub makeindex{
-   my($in,$out,$trans,$ist,$rest,$quiet,$dontexec) = @_;
-   my($name,$cmdstr,$buffer,$n,$i,$j);
-   my(@stuff,@item);
-
-   $cmdstr = "$rest -s \"$ist\" -t \"$trans\" -o \"$out\" \"$in\"";
-
-   unless ($quiet)
-   {
-      print "makeindex $cmdstr\n";
-   }
-
-   unless ($dontexec)
-   {
-      open STATUS, "makeindex $cmdstr 2>&1 |"
-         or die "Can't fork: $!\n";
-
-      my $status = '';
-
-      while (<STATUS>)
-      {
-         $status .= $_;
-      }
-
-      close STATUS;
-
-      if ($?)
-      {
-         my $errno = $?;
-
-         if (open LOGFILE, ">>$trans")
-         {
-            print LOGFILE "\n$status";
-            close LOGFILE;
-         }
-         else
-         {
-            print STDERR "Unable to open '$trans' $!\n";
-         }
-
-         die "Call to makeindex failed (errno=$errno):\n", $status;
-      }
-
-      print $status;
-   }
-}
-
-sub xindy{
-   my($in,$out,$trans,$ist,$language,$codepage,$rest,$quiet,
-     $dontexec) = @_;
-   my($cmdstr, $langparam, $main);
-   my($module);
-
-   $module = $ist;
-   $module=~s/\.xdy\Z//;
-
-   # map babel names to xindy names
-   if ($language eq "frenchb")
-   {
-      $language = "french";
-   }
-   elsif ($language=~/^n?germanb?$/)
-   {
-      $language = "german";
-   }
-   elsif ($language eq "magyar")
-   {
-      $language = "hungarian";
-   }
-   elsif ($language eq "lsorbian")
-   {
-      $language = "lower-sorbian";
-   }
-   elsif ($language eq "norsk")
-   {
-      $language = "norwegian";
-   }
-   elsif ($language eq "portuges")
-   {
-      $language = "portuguese";
-   }
-   elsif ($language eq "russianb")
-   {
-      $language = "russian";
-   }
-   elsif ($language eq "slovene")
-   {
-      $language = "slovenian";
-   }
-   elsif ($language eq "ukraineb")
-   {
-      $language = "ukrainian";
-   }
-   elsif ($language eq "usorbian")
-   {
-      $language = "upper-sorbian";
-   }
-
-   if ($language)
-   {
-     $langparam = "-L $language";
-   }
-   else
-   {
-     $langparam = "";
-   }
-
-   # most languages work with xindy's default codepage, but
-   # some don't, so if the codepage isn't specific, check
-   # the known cases that will generate an error
-   # and supply a default. (For all other cases, it's up to the 
-   # user to supply a codepage.)
-
-   if ($codepage eq '')
-   {
-      if ($language eq 'dutch')
-      {
-         $codepage = "ij-as-ij";
-      }
-      elsif ($language eq 'german')
-      {
-         $codepage = "din";
-      }
-      elsif ($language eq 'gypsy')
-      {
-         $codepage = "northrussian";
-      }
-      elsif ($language eq 'hausa')
-      {
-         $codepage = "utf";
-      }
-      elsif ($language eq 'klingon')
-      {
-         $codepage = "utf";
-      }
-      elsif ($language eq 'latin')
-      {
-         $codepage = "utf";
-      }
-      elsif ($language eq 'mongolian')
-      {
-         $codepage = "cyrillic";
-      }
-      elsif ($language eq 'slovak')
-      {
-         $codepage = "small";
-      }
-      elsif ($language eq 'spanish')
-      {
-         $codepage = "modern";
-      }
-      elsif ($language eq 'vietnamese')
-      {
-         $codepage = "utf";
-      }
-   }
-
-   my $codepageparam = "";
-
-   if ($codepage)
-   {
-      $codepageparam = "-C $codepage";
-   }
-
-   $main = join(' ',
-      "-I xindy",
-      "-M \"$module\"",
-      "-t \"$trans\"",
-      "-o \"$out\"",
-      "\"$in\"");
-
-   $cmdstr = join(' ', $rest, $langparam, $codepageparam, $main);
-
-   unless ($quiet)
-   {
-      print "xindy $cmdstr\n";
-   }
-
-   unless ($dontexec)
-   {
-      open STATUS, "xindy $cmdstr 2>&1 |" or die "Can't fork: $!\n";
-
-      my $status = '';
-      my $warnings = "";
-      my $retry ="";
-
-      while (<STATUS>)
-      {
-         $status .= $_;
-
-         $warnings .= $_ if /WARNING:/;
-      }
-
-      close STATUS;
-
-      if ($status=~/Cannot locate xindy module for language ([^\s]+) in codepage ([^\s]+)/)
-      {
-         $cmdstr = join(' ', $rest, $langparam, $main);
-
-         unless ($quiet)
-         {
-            my $message = "$&\nRetrying using default codepage.\n";
-
-            print STDERR $message;
-
-            $retry .= $message;
-
-            print "xindy $cmdstr\n";
-         }
-
-         open STATUS, "xindy $cmdstr 2>&1 |" 
-           or die "Can't fork: $!\n";
-
-         $status = '';
-
-         while (<STATUS>)
-         {
-            $status .= $_;
-         }
-
-         close STATUS;
-      }
-
-      if ($status=~/Cannot locate xindy module for language ([^\s]+)/
-       and $1 ne 'general')
-      {
-         $cmdstr = join(' ', $rest, "-L general", $main);
-
-         unless ($quiet)
-         {
-            my $message = "$&\nRetrying with -L general\n";
-
-            print STDERR $message;
-            $retry .= $message;
-
-            print "xindy $cmdstr\n";
-         }
-
-         open STATUS, "xindy $cmdstr 2>&1 |" 
-           or die "Can't fork: $!\n";
-
-         $status = '';
-
-         while (<STATUS>)
-         {
-            $status .= $_;
-         }
-
-         close STATUS;
-      }
-
-      if ($?)
-      {
-         my $errno = $?;
-
-         if (open LOGFILE, ">>$trans")
-         {
-            print LOGFILE "\n$status";
-            close LOGFILE;
-         }
-         else
-         {
-            print STDERR "Unable to open '$trans' $!\n";
-         }
-
-         if ($language)
-         {
-            die "Call to xindy failed (errno=$errno):\n", $status;
-         }
-         else
-         {
-            # If the language hasn't been set, then it may be
-            # because the document doesn't contain
-            # \printglossaries/\printglossary or it may be
-            # because the user has a customized style file that
-            # contains the language settings.
-
-            die "Call to xindy failed (errno=$errno):\n", $status,
-             "\n\nNo language detected.",
-             "\nHave you remembered to use \\printglossary\n",
-             "or \\printglossaries in your document?\n\n";
-         }
-      }
-
-      print $status;
-
-      if (open LOGFILE, ">>$trans")
-      {
-         print LOGFILE "\n$warnings";
-
-         if ($retry)
-         {
-            print LOGFILE "\nmakeglossaries messages:\n\n", $retry;
-         }
-
-         close LOGFILE;
-      }
-      else
-      {
-         print STDERR "Unable to open '$trans' $!\n";
-      }
-
-   }
-}
-
-sub HELP_MESSAGE{
-   print "\nSyntax : makeglossaries [options] <filename>\n\n";
-   print "For use with the glossaries package to pass relevant\n";
-   print "files to makeindex or xindy\n\n";
-   print "<filename>\tBase name of glossary file(s). This should\n";
-   print "\t\tbe the name of your main LaTeX document without any\n";
-   print "\t\textension.\n";
-   print "\n General Options:\n";
-   print "-o <gls>\tUse <gls> as the output file.\n";
-   print "-q\t\tQuiet mode\n";
-   print "-s <sty>\tEmploy <sty> as the style file\n";
-   print "-t <log>\tEmploy <log> as the transcript file\n";
-
-   print "\n Xindy Options:\n";
-   print "-L <language>\tUse <language>.\n";
-
-   print "\n Makeindex Options:\n";
-   print "-c\t\tCompress intermediate blanks\n";
-   print "-g\t\tEmploy German word ordering\n";
-   print "-l\t\tLetter ordering\n";   
-   print "-p <num>\tSet the starting page number to be <num>\n";
-   print "-r\t\tDisable implicit page range formation\n";
-   print "\nSee makeindex documentation for further details on these ";
-   print "options\n";
-}
-
-sub VERSION_MESSAGE{
-   print "Makeglossaries Version $version\n";
-   print "Copyright (C) 2007 Nicola L C Talbot\n";
-   print "This material is subject to the LaTeX Project Public License.\n";
-}
-
-1;
-
-=head1 NAME
-
-makeglossaries  - Calls makeindex/xindy for LaTeX documents using glossaries package
-
-=head1 SYNOPSIS
-
-B<makeglossaries> [B<-o> I<file>] [B<-q>] [B<-s> I<file>]
-[B<-t> I<file>] [B<-L> I<language>] [B<-c>] [B<-g>] [B<-l>]
-[B<-p> I<num>] [B<-r>] [B<--version>] [B<--help>] I<filename>
-
-=head1 DESCRIPTION
-
-B<makeglossaries> is designed for use with LaTeX documents that
-use the glossaries package. The mandatory argument I<filename> should
-be the name of the LaTeX document without the .tex extension. 
-B<makeglossaries> will read the auxiliary file to determine whether
-B<makeindex> or B<xindy> should be called. All the information
-required to be passed to the relevant indexing application should
-also be contained in the auxiliary file, but may be overridden by
-the option arguments to B<makeglossaries>.
-
-=head1 OPTIONS
-
-=over 4
-
-=item B<-q>
-
-Quiet mode. Reduces chatter to standard output.
-
-=item B<-o> I<file>
-
-Use I<file> as the output file. (Only suitable for documents 
-containing a single glossary, otherwise each glossary will be
-overridden.)
-
-=item B<-s> I<file>
-
-Use I<file> as the style file. Note that if you use this option,
-you need to know whether B<makeindex> or B<xindy> will be called, as
-they have different style files.
-
-=item B<-t> I<file>
-
-Use I<file> as the transcript file.
-
-=item B<-L> I<language>
-
-This option only has an effect if B<xindy> is called. Sets the
-language. See B<xindy> documentation for further details.
-
-=item B<-c>
-
-Compress intermediate blanks (B<makeindex> only).
-
-=item B<-g>
-
-Employ German word ordering (B<makeindex> only).
-
-=item B<-l>
-
-Letter ordering (B<makeindex> only).
-
-=item B<-p> I<num>
-
-Sets the starting page number to be I<num> (B<makeindex> only).
-
-=item B<-r>
-
-Disable implicit page range formation (B<makeindex> only).
-
-=item B<--version>
-
-Prints version number and exits.
-
-=item B<--help>
-
-Prints help message and exits.
-
-=back
-
-=head1 REQUIRES
-
-Perl, Getopt::Std, and makeindex or xindy (depending on glossaries
-package options).
-
-=head1 LICENSE
-
-This is free software distributed under the LaTeX Project Public 
-License. There is NO WARRANTY.
-See L<http://www.latex-project.org/lppl.txt> for details.
-
-=head1 AUTHOR
-
-Nicola L. C. Talbot,
-L<http://theoval.cmp.uea.ac.uk/~nlct/>
-
-=head1 RECOMMENDED READING
-
-The glossaries manual:
-
-	texdoc glossaries
-
-=cut