summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/glossaries/glossaries.perl
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/latex/glossaries/glossaries.perl')
-rw-r--r--Master/texmf-dist/doc/latex/glossaries/glossaries.perl1713
1 files changed, 0 insertions, 1713 deletions
diff --git a/Master/texmf-dist/doc/latex/glossaries/glossaries.perl b/Master/texmf-dist/doc/latex/glossaries/glossaries.perl
deleted file mode 100644
index 22ad50f784c..00000000000
--- a/Master/texmf-dist/doc/latex/glossaries/glossaries.perl
+++ /dev/null
@@ -1,1713 +0,0 @@
-# File : glossaries.perl
-# Author : Nicola L.C. Talbot
-# Date : 14th June 2007
-# Last Modified : 21st Aug 2007
-# Version : 1.02
-# Description : LaTeX2HTML (limited!) implementation of glossaries
-# package. Note that not all the glossaries.sty
-# macros have been implemented.
-
-# This is a LaTeX2HTML style implementing the glossaries package, and
-# is distributed as part of that 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 of (at your option) 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, glossary-hypernav.sty,
-# glossary-list.sty, glossary-long.sty, glossary-super.sty,
-# glossaries.perl. Also makeglossaries and makeglossaries.bat
-
-package main;
-
-# These are the only package options implemented.
-
-sub do_glossaries_style_altlist{
-}
-
-sub do_glossaries_toc{
-}
-
-sub do_glossaries_toc_true{
-}
-
-$GLSCURRENTFORMAT="textrm";
-
-sub do_cmd_glossaryname{
- "Glossary$_[0]"
-}
-
-$gls_mark{'main'} = "<tex2html_gls_main_mark>";
-$gls_file_mark{'main'} = "<tex2html_gls_main_file_mark>";
-$gls_title{'main'} = "\\glossaryname";
-$delimN{'main'} = ", ";
-$glsnumformat{'main'} = $GLSCURRENTFORMAT;
-@{$gls_entries{'main'}} = ();
-$gls_displayfirst{'main'} = "glsdisplayfirst";
-$gls_display{'main'} = "glsdisplay";
-
-
-$acronymtype = 'main';
-
-sub do_glossaries_acronym{
- &do_glossaries_acronym_true
-}
-
-sub do_glossaries_acronym_true{
- &make_newglossarytype("acronym", "\\acronymname");
- $acronymtype = 'acronym';
-}
-
-sub do_glossary_acronym_false{
- $acronymtype = 'main';
-}
-
-sub do_cmd_acronymname{
- join('', 'Acronyms', $_[0]);
-}
-
-sub do_cmd_acronymtype{
- join('', $acronymtype, $_[0]);
-}
-
-# modify set_depth_levels so that glossary is added
-
-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 glossary '$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);
-
- local($entry) = $glossary_entry{$type}{$key};
-
- $id = ++$global{'max_id'};
- local($name) = &translate_commands(
- "\\glsnamefont $OP$id$CP$glsentry{$entry}{name}$OP$id$CP");
-
- local($symbol) = ($glsentry{$entry}{'symbol'} ?
- " $glsentry{$entry}{symbol}" : '');
-
- $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>"
- . $name
- . "<DD>"
- . $glsentry{$entry}{'description'}
- . $symbol . '. '
- . $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
-, 'textohtmlglossaries', $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);
-}
-
-sub add_gls_dummy_commands{
- s/[\\]printglossary/\\textohtmlglossary/sg;
- s/[\\]printglossaries/\\textohtmlglossaries/sg;
-}
-
-sub get_firstkeyval{
- local($key,$_) = @_;
- local($value);
-
- s/\b$key\s*=$OP(\d+)$CP(.*)$OP\1$CP\s*(,|$)/$value=$2;','/es;
- undef($value) if $`=~/\b$key\s*=/;
-
- unless (defined($value))
- {
- s/(^|,)\s*$key\s*=\s*([^,]*)\s*(,|$)/,/s;
- $value=$2;
- }
-
- ($value,$_);
-}
-
-# need to get the value of the last key of a given name
-# in the event of multiple occurences.
-sub get_keyval{
- local($key,$_) = @_;
- local($value);
-
- while (/\b$key\s*=/)
- {
- ($value,$_) = &get_firstkeyval($key, $_);
- last unless defined($value);
- }
-
- ($value,$_);
-}
-
-# This is modified from do_cmd_textohtmlindex
-
-sub do_cmd_textohtmlglossary{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- local($type,$title,$toctitle,$style);
-
- ($type,$keyval) = &get_keyval('type', $keyval);
- ($title,$keyval) = &get_keyval('title', $keyval);
- ($toctitle,$keyval) = &get_keyval('toctitle', $keyval);
- ($style,$keyval) = &get_keyval('style', $keyval);
-
- &make_textohtmlglossary($type,$toctitle,$title,$style).$_;
-}
-
-sub make_textohtmlglossary{
- local($type,$toctitle,$title,$style) = @_;
-
- unless (defined($type)) {$type = 'main';}
-
- unless (defined $gls_mark{$type})
- {
- &write_warnings("glossary type '$type' not implemented");
- }
-
- unless (defined($title) and $title) {$title = $gls_title{$type};}
- unless (defined($toctitle) and $toctitle) {$toctitle = $title;}
-
- $toc_sec_title = $toctitle;
- $glsfile{$type} = $CURRENT_FILE;
-
- $TITLE=&translate_commands($toctitle);
-
- 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);
-}
-
-sub do_cmd_textohtmlglossaries{
- local($_) = @_;
-
- foreach $type (keys %gls_mark)
- {
- $id = ++$global{'max_id'};
- $_ = &make_textohtmlglossary($type,$gls_title{'main'}).$_;
- }
-
- $_;
-}
-
-sub make_glossary_labels {
- local($key, @keys);
- @keys = keys %glossary_labels;
- foreach $key (@keys) {
- if (($ref_files{$key}) && !($ref_files{$key} eq "$glsfile{'main'}")) {
- local($tmp) = $ref_files{$key};
- &write_warnings("\nmultiple label $key , target in $glsfile{'main'} masks $tmp ");
- }
- $ref_files{$key} .= $glsfile{'main'};
- }
-}
-
-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($type) = "main";
- local($anchor,$entry);
-
- local($type,$pat) = &get_next_optional_argument;
-
- $entry = &missing_braces unless
- (s/$next_pair_pr_rx//o&&($entry=$2));
-
- $anchor = &make_glossary_entry($entry,$anchor_invisible_mark,$type);
-
- join('', $anchor, $_);
-}
-
-sub make_glossary_entry { &make_real_glossary_entry(@_) }
-sub make_real_glossary_entry {
- local($entry,$text,$type) = @_;
- local($this_file) = $CURRENT_FILE;
- $TITLE = $saved_title if (($saved_title)&&(!($TITLE)||($TITLE eq $default_title)));
-
- local($sort) = $glsentry{$entry}{'sort'};
-
- # Save the reference
- local($str) = "$sort###" . ++$global{'max_id'}; # Make unique
- # concatenate multiple spaces into a single space
- # otherwise keys won't sort properly
- $str=~s/\s+/ /gs;
- local($br_id) = ++$global{'max_id'};
- $glossary{$type}{$str} .= &make_half_href($this_file."#$br_id");
- $glossary_format{$type}{$str} = $GLSCURRENTFORMAT;
- $glossary_entry{$type}{$str} = $entry;
- $glossary_linktext{$type}{$str} = $TITLE;
- "<A HREF=$gls_file_mark{$type}#tex2html$href_name NAME=\"$br_id\">$text<\/A>";
-}
-
-sub do_cmd_newglossary{
- local($_) = @_;
- local($type,$out,$in,$opt,$pat,$title);
-
- ($opt,$pat) = &get_next_optional_argument;
-
- $type = &missing_braces unless
- (s/$next_pair_pr_rx//o&&($type=$2));
- $in = &missing_braces unless
- (s/$next_pair_pr_rx//o&&($in=$2));
- $out = &missing_braces unless
- (s/$next_pair_pr_rx//o&&($out=$2));
- $title = &missing_braces unless
- (s/$next_pair_pr_rx//o&&($title=$2));
-
- ($opt,$pat) = &get_next_optional_argument;
-
- &make_newglossarytype($type, $title);
-
- $_;
-}
-
-sub make_newglossarytype{
- local($type, $title) = @_;
-
- $gls_mark{$type} = "<tex2html_gls_${type}_mark>";
- $gls_file_mark{$type} = "<tex2html_gls_${type}_file_mark>";
- $gls_title{$type} = $title;
- $delimN{$type} = ", ";
- $glsnumformat{$type} = $GLSCURRENTFORMAT;
- @{$gls_entries{$type}} = ();
- $gls_displayfirst{$type} = "glsdisplayfirst";
- $gls_display{$type} = "glsdisplay";
-}
-
-sub do_cmd_glsdisplay{
- local($_) = @_;
- local($text,$description,$symbol,$insert);
-
- $text = &missing_braces unless
- (s/$next_pair_pr_rx/$text=$2;''/eo);
-
- $description = &missing_braces unless
- (s/$next_pair_pr_rx/$description=$2;''/eo);
-
- $symbol = &missing_braces unless
- (s/$next_pair_pr_rx/$symbol=$2;''/eo);
-
- $insert = &missing_braces unless
- (s/$next_pair_pr_rx/$insert=$2;''/eo);
-
- "$text$insert" . $_;
-}
-
-sub do_cmd_glsdisplayfirst{
- local($_) = @_;
- local($text,$description,$symbol,$insert);
-
- $text = &missing_braces unless
- (s/$next_pair_pr_rx/$text=$2;''/eo);
-
- $description = &missing_braces unless
- (s/$next_pair_pr_rx/$description=$2;''/eo);
-
- $symbol = &missing_braces unless
- (s/$next_pair_pr_rx/$symbol=$2;''/eo);
-
- $insert = &missing_braces unless
- (s/$next_pair_pr_rx/$insert=$2;''/eo);
-
- "$text$insert" . $_;
-}
-
-sub gls_get_displayfirst{
- local($type) = @_;
- local($display)= $gls_displayfirst{$type};
-
- if (not defined($display))
- {
- &write_warnings("Glossary '$type' is not defined");
- $display='';
- }
- elsif ($display eq '')
- {
- &write_warnings("glsdisplayfirst not set for glossary '$type'");
- }
- else
- {
- $display = "\\$display ";
- }
-
- $display;
-}
-
-sub gls_get_display{
- local($type) = @_;
- local($display)= $gls_display{$type};
-
- if (not defined($display))
- {
- &write_warnings("Glossary '$type' is not defined");
- $display = '';
- }
- elsif ($display eq '')
- {
- &write_warnings("glsdisplay not set for glossary '$type'");
- }
- else
- {
- $display = "\\$display ";
- }
-
- $display;
-}
-
-sub do_cmd_glsnamefont{
- local($_) = @_;
- local($text);
-
- $text = &missing_braces unless
- (s/$next_pair_pr_rx/$text=$2;''/eo);
-
- "<B>$text</B>$_";
-}
-
-sub do_cmd_newacronym{
- local($_) = @_;
- local($label,$abbrev,$long,$opt);
-
- ($opt,$pat) = &get_next_optional_argument;
-
- $label = &missing_braces unless
- (s/$next_pair_pr_rx/$label=$2;''/eo);
- $abbrv = &missing_braces unless
- (s/$next_pair_pr_rx/$abbrv=$2;''/eo);
- $long = &missing_braces unless
- (s/$next_pair_pr_rx/$long=$2;''/eo);
-
- local($cmd) = "\\newglossaryentry";
- local($id);
- $id = ++$global{'max_id'};
- $cmd .= "$OP$id$CP$label$OP$id$CP";
- $id = ++$global{'max_id'};
- local($entry) = "type=$OP$id$CP\\acronymtype$OP$id$CP,";
- $id = ++$global{'max_id'};
- $entry .= "name=$OP$id$CP$abbrv$OP$id$CP,";
- $id = ++$global{'max_id'};
- $entry .= "description=$OP$id$CP$long$OP$id$CP,";
- $id = ++$global{'max_id'};
- $entry .= "text=$OP$id$CP$abbrv$OP$id$CP,";
- $id = ++$global{'max_id'};
- $entry .= "first=$OP$id$CP$long ($abbrv)$OP$id$CP,";
- $id = ++$global{'max_id'};
- $entry .= "plural=$OP$id$CP${abbrv}s$OP$id$CP,";
- $id = ++$global{'max_id'};
- $entry .= "firstplural=$OP$id$CP${long}s (${abbrv}s)$OP$id$CP";
-
- $id = ++$global{'max_id'};
- $cmd .= "$OP$id$CP$entry,$opt$OP$id$CP";
-
- &translate_commands($cmd).$_;
-}
-
-sub gls_entry_init{
- local($label, $type, $name, $desc) = @_;
-
- %{$glsentry{$label}} =
- ( type => $type,
- name => $name,
- 'sort' => $name,
- description => $description,
- text => $name,
- first => $name,
- plural => "${name}s",
- firstplural => "${name}s",
- symbol => '',
- flag => 0
- );
-}
-
-sub gls_get_type{
- local($label) = @_;
- local($type) = '';
-
- if (&gls_entry_defined($label))
- {
- $type = $glsentry{$label}{'type'};
- }
- else
- {
- &write_warnings("gls_get_type: glossary entry '$label' has not been defined");
- }
-
- $type;
-}
-
-sub gls_set_type{
- local($label, $type) = @_;
-
- if (&gls_entry_defined($label))
- {
- $glsentry{$label}{'type'} = $type;
- }
- else
- {
- &write_warnings("gls_set_type: glossary entry '$label' has not been defined");
- }
-}
-
-sub gls_get_name{
- local($label) = @_;
- local($name) = '';
-
- if (&gls_entry_defined($label))
- {
- $name = $glsentry{$label}{'name'};
- }
- else
- {
- &write_warnings("gls_get_name: glossary entry '$label' has not been defined");
- }
-
- $name;
-}
-
-sub gls_set_name{
- local($label, $name) = @_;
-
- if (&gls_entry_defined($label))
- {
- $glsentry{$label}{'name'} = $name;
- }
- else
- {
- &write_warnings("gls_set_name: glossary entry '$label' has not been defined");
- }
-}
-
-sub gls_get_description{
- local($label) = @_;
- local($description) = '';
-
- if (&gls_entry_defined($label))
- {
- $description = $glsentry{$label}{'description'};
- }
- else
- {
- &write_warnings("gls_get_description: glossary entry '$label' has not been defined");
- }
-
- $description;
-}
-
-sub gls_set_description{
- local($label, $description) = @_;
-
- if (&gls_entry_defined($label))
- {
- $glsentry{$label}{'description'} = $description;
- }
- else
- {
- &write_warnings("gls_set_description: glossary entry '$label' has not been defined");
- }
-}
-
-sub gls_get_symbol{
- local($label) = @_;
- local($symbol) = '';
-
- if (&gls_entry_defined($label))
- {
- $symbol = $glsentry{$label}{'symbol'};
- }
- else
- {
- &write_warnings("gls_get_symbol: glossary entry '$label' has not been defined");
- }
-
- $symbol;
-}
-
-sub gls_set_symbol{
- local($label, $symbol) = @_;
-
- if (&gls_entry_defined($label))
- {
- $glsentry{$label}{'symbol'} = $symbol;
- }
- else
- {
- &write_warnings("gls_set_symbol: glossary entry '$label' has not been defined");
- }
-}
-
-sub gls_get_sort{
- local($label) = @_;
- local($sort) = '';
-
- if (&gls_entry_defined($label))
- {
- $sort = $glsentry{$label}{'sort'};
- }
- else
- {
- &write_warnings("gls_get_sort: glossary entry '$label' has not been defined");
- }
-
- $sort;
-}
-
-sub gls_set_sort{
- local($label, $sort) = @_;
-
- if (&gls_entry_defined($label))
- {
- $glsentry{$label}{'sort'} = $sort;
- }
- else
- {
- &write_warnings("gls_set_sort: glossary entry '$label' has not been defined");
- }
-}
-
-sub gls_get_text{
- local($label) = @_;
- local($text) = '';
-
- if (&gls_entry_defined($label))
- {
- $text = $glsentry{$label}{'text'};
- }
- else
- {
- &write_warnings("gls_get_text: glossary entry '$label' has not been defined");
- }
-
- $text;
-}
-
-sub gls_set_text{
- local($label, $text) = @_;
-
- if (&gls_entry_defined($label))
- {
- $glsentry{$label}{'text'} = $text;
- }
- else
- {
- &write_warnings("gls_set_text: glossary entry '$label' has not been defined");
- }
-}
-
-sub gls_get_plural{
- local($label) = @_;
- local($plural) = '';
-
- if (&gls_entry_defined($label))
- {
- $plural = $glsentry{$label}{'plural'};
- }
- else
- {
- &write_warnings("gls_get_plural: glossary entry '$label' has not been defined");
- }
-
- $plural;
-}
-
-sub gls_set_plural{
- local($label, $plural) = @_;
-
- if (&gls_entry_defined($label))
- {
- $glsentry{$label}{'plural'} = $plural;
- }
- else
- {
- &write_warnings("gls_set_plural: glossary entry '$label' has not been defined");
- }
-}
-
-sub gls_get_firstplural{
- local($label) = @_;
- local($firstplural) = '';
-
- if (&gls_entry_defined($label))
- {
- $firstplural = $glsentry{$label}{'firstplural'};
- }
- else
- {
- &write_warnings("gls_get_firstplural: glossary entry '$label' has not been defined");
- }
-
- $firstplural;
-}
-
-sub gls_set_firstplural{
- local($label, $firstplural) = @_;
-
- if (&gls_entry_defined($label))
- {
- $glsentry{$label}{'firstplural'} = $firstplural;
- }
- else
- {
- &write_warnings("gls_set_firstplural: glossary entry '$label' has not been defined");
- }
-}
-
-sub gls_get_first{
- local($label) = @_;
- local($first) = '';
-
- if (&gls_entry_defined($label))
- {
- $first = $glsentry{$label}{'first'};
- }
- else
- {
- &write_warnings("gls_get_first: glossary entry '$label' has not been defined");
- }
-
- $first;
-}
-
-sub gls_set_first{
- local($label, $first) = @_;
-
- if (&gls_entry_defined($label))
- {
- $glsentry{$label}{'first'} = $first;
- }
- else
- {
- &write_warnings("gls_set_first: glossary entry '$label' has not been defined");
- }
-}
-
-sub gls_used{
- local($label) = @_;
- local($flag) = 0;
-
- if (&gls_entry_defined($label))
- {
- $flag = $glsentry{$label}{'flag'};
- }
- else
- {
- &write_warnings("gls_used: glossary entry '$label' has not been defined");
- }
-
- $flag;
-}
-
-sub gls_entry_defined{
- local($label) = @_;
-
- defined(%{$glsentry{$label}});
-}
-
-sub do_cmd_newglossaryentry{
- local($_) = @_;
- local($label,$name,$description,$symbol,$sort,$text,$first,
- $plural,$firstplural,$type,$keyval);
-
- $label = &missing_braces unless
- s/$next_pair_pr_rx/$label=$2;''/eo;
-
- $keyval = &missing_braces unless
- s/$next_pair_pr_rx/$keyval=$2;''/eo;
-
- ($name,$keyval) = &get_keyval('name', $keyval);
- ($description,$keyval) = &get_keyval('description', $keyval);
- ($symbol,$keyval) = &get_keyval('symbol', $keyval);
- ($sort,$keyval) = &get_keyval('sort', $keyval);
- ($text,$keyval) = &get_keyval('text', $keyval);
- ($first,$keyval) = &get_keyval('first', $keyval);
- ($firstplural,$keyval) = &get_keyval('firstplural', $keyval);
- ($plural,$keyval) = &get_keyval('plural', $keyval);
- ($type,$keyval) = &get_keyval('type', $keyval);
-
- if (defined($type))
- {
- $type = &translate_commands($type);
- }
- else
- {
- $type = 'main';
- }
-
- &gls_entry_init($label, $type, $name, $description);
-
- &gls_set_symbol($label, defined($symbol)?$symbol:'');
-
- $sort = "$name $description" unless (defined($sort) and $sort);
-
- &gls_set_sort($label, $sort);
-
- $text = $name unless (defined($text) and $text);
-
- &gls_set_text($label, $text);
-
- $first = $text unless (defined($first) and $first);
-
- &gls_set_first($label, $first);
-
- $plural = "${text}s" unless (defined($plural) and $plural);
-
- &gls_set_plural($label, $plural);
-
- $firstplural = "${first}s" unless (defined($firstplural) and $firstplural);
-
- &gls_set_firstplural($label, $firstplural);
-
- push @{$gls_entries{$type}}, $label;
-
- $_;
-}
-
-sub reset_entry{
- local($label) = @_;
-
- $glsentry{$label}{'flag'} = 0;
-}
-
-sub unset_entry{
- local($label) = @_;
-
- $glsentry{$label}{'flag'} = 1;
-}
-
-sub do_cmd_glsreset{
- local($_) = @_;
- local($label);
-
- $label = &missing_braces unless
- s/$next_pair_pr_rx/$label=$2;''/eo;
-
- &reset_entry($label);
-
- $_;
-}
-
-sub do_cmd_glsunset{
- local($_) = @_;
- local($label);
-
- $label = &missing_braces unless
- s/$next_pair_pr_rx/$label=$2;''/eo;
-
- &unset_entry($label);
-
- $_;
-}
-
-sub do_cmd_ifglsused{
- local($_) = @_;
- local($label,$true,$false);
-
- $label = &missing_braces unless
- s/$next_pair_pr_rx/$label=$2;''/eo;
-
- $true = &missing_braces unless
- s/$next_pair_pr_rx/$true=$2;''/eo;
-
- $false = &missing_braces unless
- s/$next_pair_pr_rx/$false=$2;''/eo;
-
- (&gls_used($label) ? $true : $false) . $_;
-}
-
-sub do_cmd_ifglsentryexists{
- local($_) = @_;
- local($label,$true,$false);
-
- $label = &missing_braces unless
- s/$next_pair_pr_rx/$label=$2;''/eo;
-
- $true = &missing_braces unless
- s/$next_pair_pr_rx/$true=$2;''/eo;
-
- $false = &missing_braces unless
- s/$next_pair_pr_rx/$false=$2;''/eo;
-
- (&gls_entry_defined($label) ? $true : $false) . $_;
-}
-
-sub gls_add_entry{
- local($type, $label, $format, $text) = @_;
-
- local($oldfmt) = $GLSCURRENTFORMAT;
-
- if (defined($format) and $format)
- {
- $GLSCURRENTFORMAT=$format;
- }
-
- $id = ++$global{'max_id'};
-
- local($str) = &make_real_glossary_entry($label,$text,$type);
- $GLSCURRENTFORMAT = $oldfmt;
-
- $str;
-}
-
-sub do_cmd_glsadd{
- local($_) = @_;
- local($optarg,$pat,$label,$str,$id,$type,$format);
- ($optarg,$pat) = &get_next_optional_argument;
-
- $label = &missing_braces unless
- (s/$next_pair_pr_rx/$label=$2;''/eo);
-
- $type = &gls_get_type($label);
-
- if (defined $type)
- {
- ($format,$optarg) = &get_keyval('format', $optarg);
- $format='' unless(defined($format));
-
- &gls_add_entry($type,$label,$format,"");
- }
- else
- {
- &write_warnings("gls_add: glossary entry '$label' undefined");
- $str = '';
- }
-
- $str . $_;
-}
-
-sub do_cmd_glsaddall{
- local($_) = @_;
- local($optarg,$pat) = &get_next_optional_argument;
-
- local($format,$types);
-
- ($type,$optarg) = &get_keyval('types', $optarg);
-
- ($format,$optarg) = &get_keyval('format', $optarg);
- $format='' unless(defined($format));
-
- local(@types) = keys(%gls_mark);
-
- if (defined($types))
- {
- @types = split /,/, $types;
- }
-
- foreach $type (@types)
- {
- # strip leasing and trailing spaces
- $type=~s/^\s*([^\s]+)\s*$/\1/;
-
- foreach $label (@{$gls_entries{$type}})
- {
- &gls_add_entry($type,$label,$format,"");
- }
- }
-
- $_;
-}
-
-sub do_cmd_glsresetall{
- local($_) = @_;
- local($types,$pat) = &get_next_optional_argument;
-
- local(@types) = keys(%gls_mark);
-
- if (defined($types) and $types)
- {
- @types = split /,/, $types;
- }
-
- foreach $type (@types)
- {
- # strip leasing and trailing spaces
- $type=~s/^\s*([^\s]+)\s*$/\1/;
-
- foreach $label (@{$gls_entries{$type}})
- {
- &reset_entry($label);
- }
- }
-
- $_;
-}
-
-sub do_cmd_glsunsetall{
- local($_) = @_;
- local($types,$pat) = &get_next_optional_argument;
-
- local(@types) = keys(%gls_mark);
-
- if (defined($types) and $types)
- {
- @types = split /,/, $types;
- }
-
- foreach $type (@types)
- {
- # strip leasing and trailing spaces
- $type=~s/^\s*([^\s]+)\s*$/\1/;
-
- foreach $label (@{$gls_entries{$type}})
- {
- &reset_entry($label);
- }
- }
-
- $_;
-}
-
-sub make_glslink{
- local($type,$label,$format,$text) = @_;
- local($str) = '';
-
- if (defined $type)
- {
- $str = &gls_add_entry($type,$label,$format,$text);
- }
- else
- {
- &write_warnings("glossary '$type' undefined");
- }
-
- $str;
-}
-
-sub do_cmd_glslink{
- local($_) = @_;
- local($optarg,$pat,$label,$text,$type,$format,$str);
-
- ($optarg,$pat) = &get_next_optional_argument;
-
- ($format,$optarg) = &get_keyval('format', $optarg);
-
- $label = &missing_braces unless
- (s/$next_pair_pr_rx/$label=$2;''/eo);
-
- $text = &missing_braces unless
- (s/$next_pair_pr_rx/$text=$2;''/eo);
-
- # v1.01 removed following lines (\glslink doesn't have
- # a final optional argument!
- #local ($space) = '';
- #if (/^\s+[^\[]/ or /^\s*\[.*\]\s/) {$space = ' ';}
- #($optarg,$pat) = &get_next_optional_argument;
-
- $type = &gls_get_type($label);
-
- #&make_glslink($type, $label, $format, $text).$space . $_;
- &make_glslink($type, $label, $format, $text) . $_;
-}
-
-sub do_cmd_glsentrydesc{
- local($_) = @_;
-
- $label = &missing_braces unless
- (s/$next_pair_pr_rx/$label=$2;''/eo);
-
- &gls_get_description($label).$_;
-}
-
-sub do_cmd_Glsentrydesc{
- local($_) = @_;
-
- $label = &missing_braces unless
- (s/$next_pair_pr_rx/$label=$2;''/eo);
-
- ucfirst(&gls_get_description($label)).$_;
-}
-
-sub do_cmd_glsentrytext{
- local($_) = @_;
-
- $label = &missing_braces unless
- (s/$next_pair_pr_rx/$label=$2;''/eo);
-
- &gls_get_text($label).$_;
-}
-
-sub do_cmd_Glsentrytext{
- local($_) = @_;
-
- $label = &missing_braces unless
- (s/$next_pair_pr_rx/$label=$2;''/eo);
-
- ucfirst(&gls_get_text($label)).$_;
-}
-
-sub do_cmd_glsentryname{
- local($_) = @_;
-
- $label = &missing_braces unless
- (s/$next_pair_pr_rx/$label=$2;''/eo);
-
- &gls_get_name($label).$_;
-}
-
-sub do_cmd_Glsentryname{
- local($_) = @_;
-
- $label = &missing_braces unless
- (s/$next_pair_pr_rx/$label=$2;''/eo);
-
- ucfirst(&gls_get_name($label)).$_;
-}
-
-sub do_cmd_glsentryfirst{
- local($_) = @_;
-
- $label = &missing_braces unless
- (s/$next_pair_pr_rx/$label=$2;''/eo);
-
- &gls_get_first($label).$_;
-}
-
-sub do_cmd_Glsentryfirst{
- local($_) = @_;
-
- $label = &missing_braces unless
- (s/$next_pair_pr_rx/$label=$2;''/eo);
-
- ucfirst(&gls_get_first($label)).$_;
-}
-
-sub do_cmd_glsentryplural{
- local($_) = @_;
-
- $label = &missing_braces unless
- (s/$next_pair_pr_rx/$label=$2;''/eo);
-
- &gls_get_plural($label).$_;
-}
-
-sub do_cmd_Glsentryplural{
- local($_) = @_;
-
- $label = &missing_braces unless
- (s/$next_pair_pr_rx/$label=$2;''/eo);
-
- ucfirst(&gls_get_plural($label)).$_;
-}
-
-sub do_cmd_glsentryfirstplural{
- local($_) = @_;
-
- $label = &missing_braces unless
- (s/$next_pair_pr_rx/$label=$2;''/eo);
-
- local($text)=$glsentry{$label}{'firstplural'};
-
- unless (defined($text))
- {
- &write_warnings("glossary entry '$label' has not been defined");
- $text = '';
- }
-
- "$text$_";
- &gls_get_firstplural($label).$_;
-}
-
-sub do_cmd_Glsentryfirstplural{
- local($_) = @_;
-
- $label = &missing_braces unless
- (s/$next_pair_pr_rx/$label=$2;''/eo);
-
- ucfirst(&gls_get_firstplural($label)).$_;
-}
-
-sub do_cmd_glsentrysymbol{
- local($_) = @_;
-
- $label = &missing_braces unless
- (s/$next_pair_pr_rx/$label=$2;''/eo);
-
- &gls_get_symbol($label).$_;
-}
-
-sub do_cmd_Glsentrysymbol{
- local($_) = @_;
-
- $label = &missing_braces unless
- (s/$next_pair_pr_rx/$label=$2;''/eo);
-
- ucfirst(&gls_get_symbol($label)).$_;
-}
-
-sub do_cmd_gls{
- local($_) = @_;
- local($optarg,$pat,$label,$text, $format, $insert);
-
- ($optarg,$pat) = &get_next_optional_argument;
-
- ($format,$optarg) = &get_keyval('format', $optarg);
-
- $label = &missing_braces unless
- (s/$next_pair_pr_rx/$label=$2;''/eo);
-
- local ($space) = '';
- if (/^\s+[^\[]/ or /^\s*\[.*\]\s/) {$space = ' ';}
-
- $insert = '';
- ($insert,$pat) = &get_next_optional_argument;
-
- local($display) = '';
-
- local($type) = &gls_get_type($label);
-
- if (&gls_used($label))
- {
- # entry has already been used
-
- $text = &gls_get_text($label);
- $display = &gls_get_display($type);
- }
- else
- {
- # entry hasn't been used
-
- $text = &gls_get_first($label);
- $display = &gls_get_displayfirst($type);
-
- &unset_entry($label);
- }
-
- local($args) = '';
-
- local($id) = ++$global{'max_id'};
- $args .= "$OP$id$CP$text$OP$id$CP";
-
- $id = ++$global{'max_id'};
- $args .= "$OP$id$CP$glsentry{$label}{description}$OP$id$CP";
-
- $id = ++$global{'max_id'};
- $args .= "$OP$id$CP$glsentry{$label}{symbol}$OP$id$CP";
-
- $id = ++$global{'max_id'};
- $args .= "$OP$id$CP$insert$OP$id$CP";
-
- local($link_text) = &translate_commands("$display$args");
-
- &make_glslink($type, $label, $format, $link_text) .$space . $_;
-}
-
-sub do_cmd_glspl{
- local($_) = @_;
- local($optarg,$pat,$label,$text, $format, $insert);
-
- ($optarg,$pat) = &get_next_optional_argument;
-
- ($format,$optarg) = &get_keyval('format', $optarg);
-
- $label = &missing_braces unless
- (s/$next_pair_pr_rx/$label=$2;''/eo);
-
- local ($space) = '';
- if (/^\s+[^\[]/ or /^\s*\[.*\]\s/) {$space = ' ';}
-
- $insert = '';
- ($insert,$pat) = &get_next_optional_argument;
-
- local($display) = '';
-
- local($type) = $glsentry{$label}{'type'};
-
- if (&gls_used($label))
- {
- # entry has already been used
-
- $text = &gls_get_plural($label);
- $display = &gls_get_display($type);;
- }
- else
- {
- # entry hasn't been used
-
- $text = &gls_get_firstplural($label);
- $display = &gls_get_displayfirst($type);
-
- &unset_entry($label);
- }
-
- local($args) = '';
-
- local($id) = ++$global{'max_id'};
- $args .= "$OP$id$CP$text$OP$id$CP";
-
- $id = ++$global{'max_id'};
- $args .= "$OP$id$CP$glsentry{$label}{description}$OP$id$CP";
-
- $id = ++$global{'max_id'};
- $args .= "$OP$id$CP$glsentry{$label}{symbol}$OP$id$CP";
-
- $id = ++$global{'max_id'};
- $args .= "$OP$id$CP$insert$OP$id$CP";
-
- local($link_text) = &translate_commands("$display$args");
-
- &make_glslink($type, $label, $format, $link_text) . $space . $_;
-}
-
-sub do_cmd_Gls{
- local($_) = @_;
- local($optarg,$pat,$label,$text, $format, $insert);
-
- ($optarg,$pat) = &get_next_optional_argument;
-
- ($format,$optarg) = &get_keyval('format', $optarg);
-
- $label = &missing_braces unless
- (s/$next_pair_pr_rx/$label=$2;''/eo);
-
- local ($space) = '';
- if (/^\s+[^\[]/ or /^\s*\[.*\]\s/) {$space = ' ';}
-
- $insert = '';
- ($insert,$pat) = &get_next_optional_argument;
-
- local($display) = '';
-
- local($type) = $glsentry{$label}{'type'};
-
- if (&gls_used($label))
- {
- # entry has already been used
-
- $text = &gls_get_text($label);
- $display = &gls_get_display($type);;
- }
- else
- {
- # entry hasn't been used
-
- $text = &gls_get_first($label);
- $display = &gls_get_displayfirst($type);
-
- &unset_entry($label);
- }
-
- local($args) = '';
-
- local($id) = ++$global{'max_id'};
- $args .= "$OP$id$CP$text$OP$id$CP";
-
- $id = ++$global{'max_id'};
- $args .= "$OP$id$CP$glsentry{$label}{description}$OP$id$CP";
-
- $id = ++$global{'max_id'};
- $args .= "$OP$id$CP$glsentry{$label}{symbol}$OP$id$CP";
-
- $id = ++$global{'max_id'};
- $args .= "$OP$id$CP$insert$OP$id$CP";
-
- local($link_text) = &translate_commands("$display$args");
-
- &make_glslink($type, $label, $format, ucfirst($link_text)). $space . $_;
-}
-
-sub do_cmd_Glspl{
- local($_) = @_;
- local($optarg,$pat,$label,$text, $format, $insert);
-
- ($optarg,$pat) = &get_next_optional_argument;
-
- ($format,$optarg) = &get_keyval('format', $optarg);
-
- $label = &missing_braces unless
- (s/$next_pair_pr_rx/$label=$2;''/eo);
-
- local ($space) = '';
- if (/^\s+[^\[]/ or /^\s*\[.*\]\s/) {$space = ' ';}
-
- $insert = '';
- ($insert,$pat) = &get_next_optional_argument;
-
- local($display) = '';
-
- local($type) = $glsentry{$label}{'type'};
-
- if (&gls_used($label))
- {
- # entry has already been used
-
- $text = &gls_get_plural($label);
- $display = &gls_get_display($type);;
- }
- else
- {
- # entry hasn't been used
-
- $text = &gls_get_firstplural($label);
- $display = &gls_get_displayfirst($type);
-
- &unset_entry($label);
- }
-
- local($args) = '';
-
- local($id) = ++$global{'max_id'};
- $args .= "$OP$id$CP$text$OP$id$CP";
-
- $id = ++$global{'max_id'};
- $args .= "$OP$id$CP$glsentry{$label}{description}$OP$id$CP";
-
- $id = ++$global{'max_id'};
- $args .= "$OP$id$CP$glsentry{$label}{symbol}$OP$id$CP";
-
- $id = ++$global{'max_id'};
- $args .= "$OP$id$CP$insert$OP$id$CP";
-
- local($link_text) = &translate_commands("$display$args");
-
- &make_glslink($type, $label, $format, ucfirst($link_text)).$space . $_;
-}
-
-sub do_cmd_GLS{
- local($_) = @_;
- local($optarg,$pat,$label,$text, $format, $insert);
-
- ($optarg,$pat) = &get_next_optional_argument;
-
- ($format,$optarg) = &get_keyval('format', $optarg);
-
- $label = &missing_braces unless
- (s/$next_pair_pr_rx/$label=$2;''/eo);
-
- local ($space) = '';
- if (/^\s+[^\[]/ or /^\s*\[.*\]\s/) {$space = ' ';}
-
- $insert = '';
- ($insert,$pat) = &get_next_optional_argument;
-
- local($display) = '';
-
- local($type) = $glsentry{$label}{'type'};
-
- if (&gls_used($label))
- {
- # entry has already been used
-
- $text = &gls_get_text($label);
- $display = &gls_get_display($type);;
- }
- else
- {
- # entry hasn't been used
-
- $text = &gls_get_first($label);
- $display = &gls_get_displayfirst($type);
-
- &unset_entry($label);
- }
-
- local($args) = '';
-
- local($id) = ++$global{'max_id'};
- $args .= "$OP$id$CP$text$OP$id$CP";
-
- $id = ++$global{'max_id'};
- $args .= "$OP$id$CP$glsentry{$label}{description}$OP$id$CP";
-
- $id = ++$global{'max_id'};
- $args .= "$OP$id$CP$glsentry{$label}{symbol}$OP$id$CP";
-
- $id = ++$global{'max_id'};
- $args .= "$OP$id$CP$insert$OP$id$CP";
-
- local($link_text) = &translate_commands("$display$args");
-
- &make_glslink($type, $label, $format, uc($link_text)).$space . $_;
-}
-
-sub do_cmd_GLSpl{
- local($_) = @_;
- local($optarg,$pat,$label,$text, $format, $insert);
-
- ($optarg,$pat) = &get_next_optional_argument;
-
- ($format,$optarg) = &get_keyval('format', $optarg);
-
- $label = &missing_braces unless
- (s/$next_pair_pr_rx/$label=$2;''/eo);
-
- local ($space) = '';
- if (/^\s+[^\[]/ or /^\s*\[.*\]\s/) {$space = ' ';}
-
- $insert = '';
- ($insert,$pat) = &get_next_optional_argument;
-
- local($display) = '';
-
- local($type) = $glsentry{$label}{'type'};
-
- if (&gls_used($label))
- {
- # entry has already been used
-
- $text = &gls_get_plural($label);
- $display = &gls_get_display($type);;
- }
- else
- {
- # entry hasn't been used
-
- $text = &gls_get_firstplural($label);
- $display = &gls_get_displayfirst($type);
-
- &unset_entry($label);
- }
-
- local($args) = '';
-
- local($id) = ++$global{'max_id'};
- $args .= "$OP$id$CP$text$OP$id$CP";
-
- $id = ++$global{'max_id'};
- $args .= "$OP$id$CP$glsentry{$label}{description}$OP$id$CP";
-
- $id = ++$global{'max_id'};
- $args .= "$OP$id$CP$glsentry{$label}{symbol}$OP$id$CP";
-
- $id = ++$global{'max_id'};
- $args .= "$OP$id$CP$insert$OP$id$CP";
-
- local($link_text) = &translate_commands("$display$args");
-
- &make_glslink($type, $label, $format, uc($link_text)).$space . $_;
-}
-
-sub do_cmd_glossarypreamble{
- local($_) = @_;
- $_[0];
-}
-
-sub do_cmd_glossarypostamble{
- local($_) = @_;
- $_[0];
-}
-
-sub do_cmd_glsnumformat{
- local($_) = @_;
-
- $_;
-}
-
-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
-makeglossaries
-_IGNORED_CMDS_
-
-1;