From 2d9f37d2aa1e4710a1deda96410f36e1a9b8a8b5 Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Thu, 12 Jan 2006 23:56:26 +0000
Subject: gloss

git-svn-id: svn://tug.org/texlive/trunk@955 c570f23f-e606-0410-a88d-b1316a301751
---
 Master/texmf-dist/tex/latex/gloss/gloss.sty | 347 ++++++++++++++++++++++++++++
 1 file changed, 347 insertions(+)
 create mode 100644 Master/texmf-dist/tex/latex/gloss/gloss.sty

(limited to 'Master/texmf-dist/tex/latex/gloss/gloss.sty')

diff --git a/Master/texmf-dist/tex/latex/gloss/gloss.sty b/Master/texmf-dist/tex/latex/gloss/gloss.sty
new file mode 100644
index 00000000000..b9687767c02
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/gloss/gloss.sty
@@ -0,0 +1,347 @@
+% +--------------------------------------------------+
+% | Typeset gloss.tex to get the documentation.      |
+% +--------------------------------------------------+
+%
+% (c) 1998 Jose Luis Diaz, 1999-2002 Jose Luis Diaz and Javier Bezos.
+% All Rights Reserved.
+%
+% This file is part of the gloss distribution release 1.5.2
+% -----------------------------------------------------------
+%
+% This file can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt; either
+% version 1 of the License, or any later version.
+
+\def\fileversion{1.5.2}
+\def\filedate{2002/07/26}
+
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+\ProvidesPackage{gloss}[\filedate\space\fileversion\space Gloss package]
+
+\edef\gls@a{\catcode`\string:=\the\catcode`:\relax}
+\catcode`:=12
+
+\providecommand\glossname{Glossary}
+\newcommand\glosspage[1]{, p.\nobreakspace#1.}
+\newcommand\xglosspage{\glosspage}
+
+\DeclareOption{refpages}{%
+  \def\endglossitem{%
+    \@ifundefined{gls@thispage}%
+      {.}%
+      {\glosspage\gls@thispage}%
+    \par}%
+  \@namedef{endglossitem*}{%
+    \@ifundefined{gls@thispage}%
+      {}%
+      {\xglosspage\gls@thispage}%
+    \par}}
+
+% Declaring new glossaries
+% ~~~~~~~~~~~~~~~~~~~~~~~~
+
+% 1:label 2:ext 3:title 4:bibstyle
+
+\newcommand\newgloss[4]{%
+  \if@filesw
+    \expandafter\newwrite\csname glsf@#1\endcsname
+    \immediate\openout\csname glsf@#1\endcsname\jobname#2.aux %
+    \PackageInfo{gloss}{Writing gloss file \jobname#2.aux}%
+    \immediate\write\csname glsf@#1\endcsname{\string\bibstyle{#4}}%
+  \fi
+  \@namedef{glst@#1}{\def\gls@title{#3}}%
+  \@namedef{glso@#1}{\edef\gls@base{\jobname#2}\edef\gls@name{#1}}}
+
+\newcommand\makegloss{%
+  \newgloss{default}{.gls}{\glossname}{glsplain}}
+
+\def\glso@default{\PackageError{gloss}{Missing default glossary}%
+  {You missed either \string\makegloss or a \string\newgloss
+   with a `default' label}}
+
+% Two .aux related commands
+% ~~~~~~~~~~~~~~~~~~~~~~~~
+% In both of them, #1 includes (already expanded) \gls@name ::
+
+\def\gls@cite{%
+  \begingroup
+    \catcode`:=12
+    \gls@cite@i}
+\def\gls@cite@i#1#2#3#4{%
+  \endgroup
+  \global\@namedef{gls@#1}{{#2}{#3}{#4}}}
+
+\def\gls@page{%
+  \begingroup
+    \catcode`:=12
+    \gls@page@i}
+\def\gls@page@i#1#2{%
+  \endgroup
+  \global\@namedef{glsp@#1}{#2}}
+
+% The \gloss command
+% ~~~~~~~~~~~~~~~~~~
+% The command:
+
+\newcommand\gloss{\protect\gls@gloss@i}
+
+\def\gls@gloss@i{%
+  \@bsphack
+  \begingroup
+    \catcode`\ =9
+    \@ifnextchar[{\gls@gloss@ii}{\gls@gloss@ii[]}}
+
+\def\gls@gloss@ii[#1]{%
+    \endgroup
+  \gls@gloss@iii{#1}}
+
+\def\gls@gloss@iii#1#2{%
+  \begingroup
+    \def\gls@a{\def\gls@a{,\penalty\@m\ }}%
+    \glso@default
+    \glso@word
+    \@for\gls@b:=#1\do{%
+      \@ifundefined{glso@\gls@b}%
+         {\PackageError{gloss}{Unknown option}%
+            {You have used an unknown option in \string\gloss}}%
+         {\csname glso@\gls@b\endcsname}}%
+    \@for\gls@b:=#2\do
+      {\gls@a %%% 2001/08/29 Missing
+       \edef\gls@b{\expandafter\@firstofone\gls@b\@empty}%
+       \ifgls@cite  %%% 2001/12/20 a few lines rewritten
+         \@ifundefined{glspp@\gls@name::\gls@b}{\gls@refpagetrue}{}%
+       \fi
+       \ifgls@refpage
+         \protected@write\@auxout{}%
+           {\string\gls@page{\gls@name::\gls@b}{\noexpand\thepage}}%
+         \global\@namedef{glspp@\gls@name::\gls@b}{}%
+       \fi
+       \if@filesw
+         \immediate\write\csname glsf@\gls@name\endcsname
+            {\string\citation{\gls@b}}%
+       \fi
+       \@ifundefined{gls@\gls@name::\gls@b}%
+         {\ifgls@cite
+            {\reset@font\bfseries[\gls@unlabel{#2}??]}%
+          \fi
+          \G@refundefinedtrue
+          \PackageWarning{gloss}%
+            {Term `\gls@b' on page \thepage\space 
+                not defined in glossary `\gls@name'}}%
+         {\ifgls@cite
+          {\edef\@pdfborder{\glosslinkborder}%
+           \edef\@linkcolor{\glosslinkcolor}%
+           \edef\@linkbordercolor{\glosslinkbordercolor}%
+           \gls@hyperlink{\gls@name::\gls@b}{%
+             \expandafter\expandafter\expandafter
+               \gls@printtext\csname gls@\gls@name::\gls@b\endcsname}}%
+          \fi}}%
+  \expandafter
+  \endgroup  %2002/07/25 wrong tempswa replaced by gls@cite
+  \ifgls@cite\else\expandafter\@esphack\fi}
+
+\def\gls@unlabel#1{%
+  \expandafter\expandafter\expandafter
+  \@gobble\expandafter\string\csname #1\endcsname}
+
+\AtBeginDocument{%
+  \@ifpackageloaded{hyperref}%
+    {\let\gls@hyperlink\hyperlink
+     \let\gls@raisedlink\Hy@raisedlink}%
+    {\let\gls@hyperlink\@secondoftwo
+     \let\gls@raisedlink\@gobble
+     \let\glosslinkborder\relax
+     \let\glosslinkcolor\relax
+     \let\glosslinkbordercolor\relax}}
+
+\def\glosslinkborder{\@pdfborder}%
+\def\glosslinkcolor{\@linkcolor}%
+\def\glosslinkbordercolor{\@linkbordercolor}
+
+% Options:
+
+\newif\ifgls@cite
+\gls@citetrue
+\def\glso@nocite{%
+  \gls@citefalse
+  \let\gls@a\@empty}
+
+\newif\ifgls@refpage % false by default
+\def\glso@refpage{\gls@refpagetrue}
+
+\newcommand\setglosstext[2]{%
+  \@namedef{gls@prtext@#1}##1##2##3{{\def\gls@short{##3}#2}}%
+  \@namedef{glso@#1}{%
+    \def\gls@printtext{\csname gls@prtext@#1\endcsname}}}
+
+\setglosstext{short}{\ifglossshort*{#3}{}}
+\setglosstext{word}{#1}
+\setglosstext{Word}{#2}
+\setglosstext{long}{#1\ifglossshort*{ (#3)}{}}
+\setglosstext{Long}{#2\ifglossshort*{ (#3)}{}}
+
+\def\ifglossshort{%
+  \@ifstar
+    {\ifx\gls@short\@empty
+       \PackageError{gloss}{Empty short}%
+          {You cannot print a short form of a term lacking it}%
+       {\reset@font\bfseries[??]}%
+       \expandafter\@secondoftwo
+     \else
+       \expandafter\@firstoftwo
+     \fi}%
+    {\ifx\gls@short\@empty
+       \expandafter\@secondoftwo
+     \else
+       \expandafter\@firstoftwo
+     \fi}}
+
+% \newcommand\maingloss[2][word]{\textit{\gloss[refpage,#1]{#2}}}
+
+\newcommand\Gloss[1]{\gloss[Word]{#1}}
+\newcommand\onlygloss[1]{\gloss[nocite]{#1}}
+
+% Printing the gloss
+% ~~~~~~~~~~~~~~~~~~
+% The whole list:
+
+\@ifundefined{chapter}
+  {\def\gls@section{%
+     \section*{\gls@title}%
+     \@mkboth{\MakeUppercase\gls@title}{\MakeUppercase\gls@title}%
+     \addcontentsline{toc}{section}{\gls@title}}}%
+  {\def\gls@section{%
+     \chapter*{\gls@title}%
+     \@mkboth{\MakeUppercase\gls@title}{\MakeUppercase\gls@title}%
+     \addcontentsline{toc}{chapter}{\gls@title}}}
+
+\newcommand\printgloss[2][default]{%
+  \if@filesw
+    \csname glso@#1\endcsname
+    \immediate\write\csname glsf@\gls@name\endcsname
+       {\string\bibdata{#2}}%
+  \fi
+  \csname glst@#1\endcsname
+  \InputIfFileExists{\gls@base.bbl}%
+    {}%
+    {\typeout{No file \gls@base.bbl}}}
+
+\newenvironment{thegloss}
+  {\gls@section
+   \def\+##1+{}%
+   \@beginparpenalty\@M}%  
+  {\stopglosslist}
+
+% Headings:
+
+\newcommand\setglossgroup[1]{\@namedef{gls@group@#1}}
+\newcommand\glossgroup[1]{%
+  \expandafter\glossheading\csname gls@group@#1\endcsname}
+
+\newcommand\glossheading[1]{%
+  \stopglosslist
+  \subsection*{#1}}
+
+% The list itself:
+
+\newlength{\glosshang}
+\setlength{\glosshang}{2cm}
+
+\newenvironment{glosslist}
+  {\begin{list}{\relax}{%
+        \def\makelabel##1{##1\hfil}%
+        \setlength{\labelsep}{1em}%
+        \setlength{\labelwidth}{\glosshang}%
+        \addtolength{\labelwidth}{-\labelsep}%
+        \setlength{\itemindent}{0em}%
+        \setlength{\leftmargin}{\glosshang}}}
+  {\end{list}}
+
+% The gloss items:
+
+% 1:key  2:term  3:text  4:shorthand 
+
+\newcommand\stopglosslist{}
+
+\newif\ifgls@list
+
+\newenvironment{glossitem}[4]%
+  {\ifgls@list
+     \expandafter\let\expandafter\gls@thispage  % relax if undefined
+             \csname glsp@\gls@name::#1\endcsname
+     \item[%
+       \gls@raisedlink{\hyper@anchorstart{\gls@name::#1}\hyper@anchorend}%
+       \gls@label{#2}{#3}{#4}]%
+     \begingroup
+       \let\protect\noexpand
+       \immediate\write\@auxout{%
+         \string\gls@cite{\gls@name::#1}{#2}{#3}{#4}}%
+     \endgroup
+   \else
+     \xdef\gls@a{\noexpand\begin{\@currenvir}}%
+     \endgroup
+     \begin{glosslist}%
+     \gls@listtrue
+     \def\stopglosslist{\end{glosslist}}%
+     \gls@a{#1}{#2}{#3}{#4}%
+   \fi
+   \ignorespaces}
+  {.\@@par}
+
+\expandafter\let\csname glossitem*\endcsname\glossitem
+\expandafter\let\csname endglossitem*\endcsname\@@par
+
+\newcommand\setglosslabel[1]{%
+   \def\gls@label##1##2##3{\def\gls@short{##3}#1}}
+
+\setglosslabel{\sffamily\bfseries#1\ifglossshort{ (#3)}{}}
+
+% Language support
+
+\DeclareOption{basque}{%
+  \def\glossname{Glosategi}%
+  \def\glosspage#1{, orri \nobreakspace#1.}}%*********
+\DeclareOption{brazilian}{%
+  \def\glossname{Gloss\'ario}%
+  \def\glosspage#1{, p\'ag.\nobreakspace#1.}}
+\DeclareOption{catalan}{%
+  \def\glossname{Glossari}%
+  \def\glosspage#1{, p\`ag.\nobreakspace#1.}}
+\DeclareOption{danish}{%
+  \def\glossname{Ordliste}%
+  \def\glosspage#1{, s.\nobreakspace#1.}}
+\DeclareOption{dutch}{%
+  \def\glossname{Verklarende woordenlijst}%
+  \def\glosspage#1{, p.\nobreakspace#1.}}
+\DeclareOption{french}{%
+  \def\glossname{Glossaire}%
+  \def\glosspage#1{, p.\nobreakspace#1.}}
+\DeclareOption{german}{%
+  \def\glossname{Glossar}%
+  \def\glosspage#1{, S.\nobreakspace#1.}}
+\DeclareOption{italian}{%
+  \def\glossname{Glossario}%
+  \def\glosspage#1{, pag.\nobreakspace#1.}}
+\DeclareOption{polish}{%
+  \def\glossname{S\l owniczek}%
+  \def\glosspage#1{, str.\nobreakspace#1.}}%
+\DeclareOption{portuguese}{%
+  \def\glossname{Gloss\'ario}%
+  \def\glosspage#1{, p\'ag.\nobreakspace#1.}}
+\DeclareOption{russian}{%
+  \def\glossname{%
+     {\cyr\CYRG\cyrl\cyro\cyrs\cyrs\cyra\cyrr\cyri\cyrishrt}}%
+  \def\glosspage#1{, {\cyr\cyrs.}\nobreakspace#1.}}
+\DeclareOption{spanish}{%
+  \def\glossname{Glosario}%
+  \def\glosspage#1{, p\'ag.\nobreakspace#1.}}
+\DeclareOption{swedish}{%
+  \def\glossname{Ordlista}%
+  \def\glosspage#1{, s.\nobreakspace#1.}}%*******
+
+\ProcessOptions*
+
+\gls@a  % restores the colon catcode
+
+\endinput
-- 
cgit v1.2.3

