summaryrefslogtreecommitdiff
path: root/obsolete/macros/latex/contrib
diff options
context:
space:
mode:
Diffstat (limited to 'obsolete/macros/latex/contrib')
-rw-r--r--obsolete/macros/latex/contrib/babel-contrib/spanglish/README32
-rw-r--r--obsolete/macros/latex/contrib/babel-contrib/spanglish/spanglish.ldf268
-rw-r--r--obsolete/macros/latex/contrib/babel-contrib/spanglish/spanglish.sty55
-rw-r--r--obsolete/macros/latex/contrib/ltxindex/README15
-rw-r--r--obsolete/macros/latex/contrib/ltxindex/copying.txt340
-rw-r--r--obsolete/macros/latex/contrib/ltxindex/ltxindex.dtx499
-rw-r--r--obsolete/macros/latex/contrib/ltxindex/ltxindex.pdfbin0 -> 80113 bytes
-rw-r--r--obsolete/macros/latex/contrib/ltxindex/ltxindex.sty202
8 files changed, 1411 insertions, 0 deletions
diff --git a/obsolete/macros/latex/contrib/babel-contrib/spanglish/README b/obsolete/macros/latex/contrib/babel-contrib/spanglish/README
new file mode 100644
index 0000000000..65b38855de
--- /dev/null
+++ b/obsolete/macros/latex/contrib/babel-contrib/spanglish/README
@@ -0,0 +1,32 @@
+
+The \textsf{Spanglish} ``language'' is a compromise between the use of the
+Spanish language in writing and English mathematics.
+
+Thus, there are no Spanish mathematical features supported (no accented
+operators, no decimal comma), and there is (probably less than) minimal
+Spanish language support for text.
+There is a conscious effort to make this ``language'' upwards compatible with
+the ``standard'' Spanish language definition, so the shorthands implemented here
+are but a very narrow subset of the standard Spanish language:
+those strictly necessary to handle Spanish hyphenation properly,
+and a few extras to straighten the text a little in a Spanish layout and support
+plain ASCII input in LaTeX, like frenchspacing, indentfirst,
+symbolic footnotes, lowercase roman numerals,
+and a few shorthands to improve hyphenation.
+All other typographic decisions are left to other macro packages
+according to user's taste (or lack thereof).
+So, in a sense, this ``language'' is a very stripped down or ultra-sloppy
+version of the ``standard'' spanish.ldf, mainly as a fallback solution.
+
+There are two public attributes/modifiers enabled for this ``language'',
+asc and tn, designed to improve support of ASCII input;
+the former activates all shorthands necessary to input Spanish with plain ASCII
+characters: this modifier supersedes the need to call the activeacute option
+from Babel;
+while the latter supports the input of Spanish \~n with the tilde ~n.
+Both modifiers are provided for backwards compatibility, assuming that most
+Spanish users actually choose a suitable 8bit font and input encoding.
+
+Questions, comments? Drop me an email at jlrn77 at gmail dot com
+
+April 1, 2015.
diff --git a/obsolete/macros/latex/contrib/babel-contrib/spanglish/spanglish.ldf b/obsolete/macros/latex/contrib/babel-contrib/spanglish/spanglish.ldf
new file mode 100644
index 0000000000..0c7a7f0e23
--- /dev/null
+++ b/obsolete/macros/latex/contrib/babel-contrib/spanglish/spanglish.ldf
@@ -0,0 +1,268 @@
+%%
+%% This is file `spanglish.ldf',
+%% Copyright 2008-2015 Luis Rivera and any individual authors
+%% listed elsewhere in this file. All rights reserved.
+%%
+% The 'spanglish' dialect was originally adapted from the 'galician'
+% language (v1.2l 2005/03/30), by Manuel Carriba (mcarriba at eunetcom.net),
+% based on the original spanish.sty, written by Julio S\'anchez,
+% (jsanchez at gmv.es)
+% Additional code from spanish.ldf v4.2, by Javier Bezos L\'opez (JBL).
+%%
+%% This file may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2003/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% The Current Maintainer of this work is J. Luis Rivera N.
+%% jlrn77 at gmail dot com
+%%
+%% \changes{2010/12/28}{Release version, from 2007/01/26 code.}
+%5 \changes{2013/03/01}{Bug fixes.}
+%% \changes{2015/04/01}{Removed accented math operators and \bbl@activate patch.}
+%% \changes{2015/04/10}{Removed activeacute support and added ascii input modifiers.}
+%% \changes{2015/04/10}{Removed dependency on esindex: now you have to load it yourself.}
+%%
+\ProvidesLanguage{spanglish}
+ [2015/04/01 v0.3 Spanglish: Simpler Spanish support]
+\LdfInit{spanglish}\captionsspanglish
+% spanglish is a dialect of either Spanish or English
+\ifx\l@spanglish\@undefined
+ \ifx\l@spanish\@undefined
+ \@nopatterns{span[gl]ish}
+ \adddialect\l@spanglish0
+ \else
+ \adddialect\l@spanglish\l@spanish
+ \fi\fi
+%
+\addto\captionsspanglish{%
+ \def\prefacename{Prefacio}%
+ \def\refname{Referencias}%
+ \def\abstractname{Resumen}%
+ \def\bibname{Bibliograf\'{\i}a}%
+ \def\chaptername{Cap\'{\i}tulo}%
+ \def\appendixname{Ap\'endice}%
+ \def\contentsname{\'Indice}%
+ \def\listfigurename{\'Indice de Figuras}%
+ \def\listtablename{\'Indice de Cuadros}%
+ \def\indexname{\'Indice Alfab\'etico}%
+ \def\figurename{Figura}%
+ \def\tablename{Cuadro}%
+ \def\partname{Parte}%
+ \def\enclname{Anexo}%
+ \def\ccname{Copia a}%
+ \def\headtoname{A}%
+ \def\pagename{P\'agina}%
+ \def\seename{v\'ease}%
+ \def\alsoname{v\'ease tambi\'en}%
+ \def\proofname{Demostraci\'on}%
+ \def\glossaryname{Glosario}%
+}
+%
+\def\datespanglish{%
+ \def\today{\number\day\space de \ifcase\month\or
+ enero\or febrero\or marzo\or abril\or mayo\or junio\or
+ julio\or agosto\or septiembre\or octubre\or noviembre\or diciembre\fi
+ \space de \number\year}}
+\addto\extrasspanglish{\bbl@frenchspacing}
+\addto\noextrasspanglish{\bbl@nonfrenchspacing}
+%
+\newif\ifesmx@latex
+\@ifundefined{documentclass}
+ {\esmx@latexfalse}
+ {\esmx@latextrue}
+%
+\addto\extrasspanglish{\languageshorthands{spanglish}}
+\initiate@active@char{"}% Only doublequote is active by default
+\addto\extrasspanglish{%
+ \bbl@activate{"}}
+\addto\noextrasspanglish{%
+ \bbl@deactivate{"}}
+\addto\extrasspanglish{%
+ \babel@save\"%
+ \def\"{\protect\@umlaut}}
+\let\dieresis\"
+\def\@umlaut#1{\allowhyphens\dieresis{#1}\allowhyphens}
+% shorthands for hyphenation
+\declare@shorthand{spanglish}{"-}{\nobreak-\bbl@allowhyphens}
+\declare@shorthand{spanglish}{"|}{\discretionary{-}{}{\kern.03em}}
+\declare@shorthand{spanglish}{"r}% to hyphenate para"rrayos properly
+ {\bbl@allowhyphens\discretionary{\char\hyphenchar\font}%
+ {}{r}\bbl@allowhyphens}
+\declare@shorthand{spanglish}{"R}
+ {\bbl@allowhyphens\discretionary{\char\hyphenchar\font}%
+ {}{R}\bbl@allowhyphens}
+\ifesmx@latex% this guillemets hack, by jbl
+ \DeclareTextCommand{\guillemotleft}{OT1}{%
+ \ifmmode\ll
+ \else
+ \save@sf@q{\penalty\@M
+ \leavevmode\hbox{\usefont{U}{lasy}{m}{n}%
+ \char40 \kern-0.19em\char40 }}%
+ \fi}%
+ \DeclareTextCommand{\guillemotright}{OT1}{%
+ \ifmmode\gg
+ \else
+ \save@sf@q{\penalty\@M
+ \leavevmode\hbox{\usefont{U}{lasy}{m}{n}%
+ \char41 \kern-0.19em\char41 }}%
+ \fi}%
+% end jbl; jlrn's American double quotes
+\declare@shorthand{spanglish}{"`}{\textquotedblleft{}}
+\declare@shorthand{spanglish}{"'}{\textquotedblright{}}
+\fi % end quotedbldefs
+% three hacks by JBL to adjust height of ?`!`/ with all uppercase letters
+\declare@shorthand{spanglish}{"/}% first
+ {\setbox\z@\hbox{/}%
+ \dimen@\ht\z@
+ \advance\dimen@-1ex
+ \advance\dimen@\dp\z@
+ \dimen@.31\dimen@
+ \advance\dimen@-\dp\z@
+ \ifdim\dimen@>0pt
+ \kern.01em\lower\dimen@\box\z@\kern.03em
+ \else
+ \box\z@
+ \fi}
+\declare@shorthand{spanglish}{"?}% second
+ {\setbox\z@\hbox{?`}%
+ \leavevmode\raise\dp\z@\box\z@}
+\declare@shorthand{spanglish}{"!}% third
+ {\setbox\z@\hbox{!`}%
+ \leavevmode\raise\dp\z@\box\z@}
+\addto\extrasspanglish{% JS's discretionary hyphens
+ \babel@save{\-}%
+ \def\-{\bbl@allowhyphens\discretionary{-}{}{}\bbl@allowhyphens}}
+%%%
+%%% some code to support accented and spaced math operators was here. RIP.
+%%%
+% support for abbreviations
+\def\esmx@plain@esabrv#1{.$^{{\rm #1}}$}
+\def\esmx@ltx@esabrv#1{.\textsuperscript{#1}}
+\def\esmx@esabrv@r#1#2{\esabrv{#1#2}}% nice trick by JBL
+\ifesmx@latex
+ \let\esabrv\esmx@ltx@esabrv
+ \else
+ \let\esabrv\esmx@plain@esabrv
+\fi
+%% ascii shorthands, rearranged, without activeacute...
+\bbl@declare@ttribute{spanglish}{asc}{
+ \initiate@active@char{'}
+ \addto\extrasspanglish{\bbl@activate{'}}
+ \addto\noextrasspanglish{\bbl@deactivate{'}}
+ \babel@save\'%
+ \addto\extrasspanglish{\def\'{\protect\@acute}}
+ \let\textacute\'
+ \def\@acute##1{\allowhyphens\textacute{##1}\allowhyphens}
+ \declare@shorthand{spanglish}{'a}{\textormath{\@acute a}{^{\prime} a}}
+ \declare@shorthand{spanglish}{'e}{\textormath{\@acute e}{^{\prime} e}}
+ \declare@shorthand{spanglish}{'i}{\textormath{\@acute\i{}}{^{\prime}i}}
+ \declare@shorthand{spanglish}{'o}{\textormath{\@acute o}{^{\prime} o}}
+ \declare@shorthand{spanglish}{'u}{\textormath{\@acute u}{^{\prime} u}}
+ \declare@shorthand{spanglish}{'A}{\textormath{\@acute A}{^{\prime} A}}
+ \declare@shorthand{spanglish}{'E}{\textormath{\@acute E}{^{\prime} E}}
+ \declare@shorthand{spanglish}{'I}{\textormath{\@acute I}{^{\prime} I}}
+ \declare@shorthand{spanglish}{'O}{\textormath{\@acute O}{^{\prime} O}}
+ \declare@shorthand{spanglish}{'U}{\textormath{\@acute U}{^{\prime} U}}
+ \declare@shorthand{spanglish}{'n}{\textormath{\~n}{^{\prime} n}}
+ \declare@shorthand{spanglish}{'N}{\textormath{\~N}{^{\prime} N}}
+ \declare@shorthand{spanglish}{''}{\textormath{\textquotedblright}{\sp\bgroup\prim@s'}}
+ \declare@shorthand{spanglish}{"u}{\@umlaut{u}}
+ \declare@shorthand{spanglish}{"U}{\@umlaut{U}}
+ \declare@shorthand{spanglish}{"i}{\@umlaut{\i}}
+ \declare@shorthand{spanglish}{"I}{\@umlaut{I}}
+ \declare@shorthand{spanglish}{"a}{\esabrv{a}}
+ \declare@shorthand{spanglish}{"o}{\esabrv{o}}
+ \declare@shorthand{spanglish}{"e}{\protect\esmx@esabrv@r{e}}
+ \declare@shorthand{spanglish}{"A}{\esabrv{A}}
+ \declare@shorthand{spanglish}{"O}{\esabrv{O}}
+ \declare@shorthand{spanglish}{"E}{\protect\esmx@esabrv@r{E}}
+ \declare@shorthand{spanglish}{"<}{\guillemotleft{}}
+ \declare@shorthand{spanglish}{">}{\guillemotright{}}
+}
+%% tilden tildeN
+\bbl@declare@ttribute{spanglish}{nt}{
+ \initiate@active@char{~}
+ \addto\extrasspanglish{\bbl@activate{~}\def\~{\protect\@tilde}}
+ \addto\noextrasspanglish{\bbl@deactivate{~}}
+ \addto\extrasspanglish{\babel@save\~}
+ \let\texttilde\~
+ \let\@tilde\texttilde
+ \declare@shorthand{spanglish}{~n}{\textormath{\~n}{\@tilde n}}
+ \declare@shorthand{spanglish}{~N}{\textormath{\~N}{\@tilde N}}
+}
+% A crude hack to turn ES into US abbreviations.
+\bbl@declare@ttribute{spanglish}{usord}{
+\addto\extrasspanglish{% this code should state ordinal 1"o as 1o.
+ \def\esmx@usabrv##1{##1.}
+ \let\esabrv\esmx@usabrv
+ \def\esmx@esabrv@r##1##2{\esabrv{##1##2}}
+ }
+}
+% spanish layout
+\addto\extrasspanglish{%
+ \def\@alph#1%
+ {\ifcase#1\or a\or b\or c\or d\or e\or f\or g\or h\or i\or j\or
+ k\or l\or m\or n\or \~n\or o\or p\or q\or r\or s\or t\or u\or v\or
+ w\or x\or y\or z\else\@ctrerr\fi}%
+ \def\@Alph#1%
+ {\ifcase#1\or A\or B\or C\or D\or E\or F\or G\or H\or I\or J\or
+ K\or L\or M\or N\or \~N\or O\or P\or Q\or R\or S\or T\or U\or V\or
+ W\or X\or Y\or Z\else\@ctrerr\fi}
+ }
+% JBL's fix (lowercase small caps) for lowercase roman numbers and acronyms.
+\ifesmx@latex
+ \addto\textspanish{%
+ \babel@save\lsc
+ \def\lsc{\protect\esmx@lsc}}
+%
+ \def\esmx@lsc#1{%
+ \leavevmode
+ \hbox{\scshape\selectfont
+ \expandafter\ifx\csname\f@encoding/\f@family/\f@series
+ /n/\f@size\expandafter\endcsname
+ \csname\curr@fontshape/\f@size\endcsname
+ \csname S@\f@size\endcsname
+ \fontsize\sf@size\z@\selectfont
+ \PackageInfo{spanglish}{Replacing undefined sc font\MessageBreak
+ shape by faked small caps}%
+ \MakeUppercase{#1}%
+ \else
+ \MakeLowercase{#1}%
+ \fi}}
+%
+\DeclareTextCompositeCommand{\'}{OT1}{i}{\@tabacckludge'{\i}}
+%
+ \def\spanglishlayout{
+ \def\theenumii{\alph{enumii}}% fix the second level enumeration label
+ \def\labelenumii{\textit{\theenumii})}
+ \def\p@enumii{\textit{\theenumii}}
+ \def\theenumiii{\Roman{enumiii}}% fix the third level enumeration label
+ \def\labelenumiii{\theenumiii.}
+ \def\p@enumiii{\theenumiii}
+ \let\@afterindentfalse\@afterindenttrue% afterindent true
+ \@afterindenttrue%
+ \def\@fnsymbol##1%
+ {\ifcase##1\or*\or**\or***\or****\or
+ *****\or******\else\@ctrerr\fi}%
+ \def\@roman##1{\protect\esmx@roman{\number##1}}%
+ \def\esmx@roman##1{\protect\esmx@lsc{\romannumeral##1}}%
+ %\def\esromanindex##1##2{##1{\protect\esmx@lsc{##2}}}
+ }
+\AtEndOfPackage{%
+ %\RequirePackage{esindex}% now load it on your own!
+ \def\bbl@tempa{spanglish}%
+ \ifx\bbl@main@language\bbl@tempa%
+ \AtBeginDocument{\spanglishlayout}\fi%
+ }
+\fi
+%% A patch to fix a bug in \bbl@activate was here. RIP.
+\ldf@finish{spanglish}
+\endinput
+%%
+%% End of file `spanglish.ldf'. \ No newline at end of file
diff --git a/obsolete/macros/latex/contrib/babel-contrib/spanglish/spanglish.sty b/obsolete/macros/latex/contrib/babel-contrib/spanglish/spanglish.sty
new file mode 100644
index 0000000000..cfd269ff65
--- /dev/null
+++ b/obsolete/macros/latex/contrib/babel-contrib/spanglish/spanglish.sty
@@ -0,0 +1,55 @@
+%%
+%% This is file `spanglish.sty',
+%%
+%% Copyright 2008 Luis Rivera and any individual authors
+%% listed elsewhere in this file. All rights reserved.
+%%
+%% This file may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2003/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% The Current Maintainer of this work is Luis Rivera.
+%% jlrn7 at gmail dot com
+%%
+\ifx\LdfInit\undefined
+ \def\LdfInit{%
+ \chardef\atcatcode=\catcode`\@
+ \catcode`\@=11\relax
+ \input babel.def\relax
+ \catcode`\@=\atcatcode \let\atcatcode\relax
+ \LdfInit}
+\fi
+\ifx\PackageError\undefined
+ \def\ProvidesLanguage#1[#2 #3 #4]{%
+ \wlog{Language: #1 #4 #3 <#2>}}%
+\else
+ \def\bblstyerror{%
+ \PackageError{babel}%
+ {You have used an old interface to call babel\MessageBreak
+ You may expect compatibility problems wit other packages}%
+ {You could proceed but don't complain if you run into errors}%
+ \let\bblstyerror\@undefined
+ }
+ \ifx\ProvidesLanguage\undefined
+ \bblstyerror
+ \def\ProvidesLanguage{%
+ \chardef\atcatcode=\catcode`\@
+ \catcode`\@=11\relax
+ \input babel.def\relax
+ \catcode`\@=\atcatcode \let\atcatcode\relax
+ \ProvidesLanguage}
+ \else
+ \bblstyerror
+ \fi
+\fi
+\def\CurrentOption{spanglish}
+\input spanglish.ldf\relax
+\endinput
+%%
+%% End of file `spanglish.sty'. \ No newline at end of file
diff --git a/obsolete/macros/latex/contrib/ltxindex/README b/obsolete/macros/latex/contrib/ltxindex/README
new file mode 100644
index 0000000000..61df56b47f
--- /dev/null
+++ b/obsolete/macros/latex/contrib/ltxindex/README
@@ -0,0 +1,15 @@
+ltxindex is a simple package to make indices for LATEX documents with
+GNU's texindex. Though missing some important functionality, texindex
+is much simpler to use; and if you don't need anything fancy, such an
+index may be useful.
+
+This package only implements the standard indices used by texinfo, and
+only defines the concept index (cp) by default. You can't define custom
+indices (yet), and you must set up the fn, ky, pg, tp, and vr indices on
+your own. Read the manual for more information on usage, plans, and
+limitations.
+
+Good luck and happy TeXing,
+
+Luis.
+
diff --git a/obsolete/macros/latex/contrib/ltxindex/copying.txt b/obsolete/macros/latex/contrib/ltxindex/copying.txt
new file mode 100644
index 0000000000..60549be514
--- /dev/null
+++ b/obsolete/macros/latex/contrib/ltxindex/copying.txt
@@ -0,0 +1,340 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) 19yy <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) 19yy name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/obsolete/macros/latex/contrib/ltxindex/ltxindex.dtx b/obsolete/macros/latex/contrib/ltxindex/ltxindex.dtx
new file mode 100644
index 0000000000..b82a959c3c
--- /dev/null
+++ b/obsolete/macros/latex/contrib/ltxindex/ltxindex.dtx
@@ -0,0 +1,499 @@
+%\iffalse meta-comment
+% ltxindex.dtx generated using /usr/local/bin/makedtx version 0.9b (c) Nicola Talbot
+% Command line args:
+% -src "ltxindex\.sty=>ltxindex.sty"
+% -doc "README"
+% ltxindex
+% Created on 2006/11/26 15:10
+%
+% ltxindex.sty, a LaTeX package to typeset indices with GNU's Texindex
+% Copyright (C) 2004 by Richard Stallman, Robert J. Chassell,
+% Michael Clarkson, \& Luis Rivera.
+%
+% This program is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2, or (at your option)
+% any later version.
+%
+% This program is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with this program; if not, write to the Free Software
+% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+%
+% This work has the LPPL maintenance status "unmaintained".
+%
+%\fi
+%\iffalse
+%<*driver>
+\ProvidesFile{ltxindex.dtx}
+%</driver>
+%<ltxindex>\NeedsTeXFormat{LaTeX2e}[1995/06/01]
+%<ltxindex>\ProvidesPackage{ltxindex}
+ [2008/06/06 v0.1c ltxindex: LaTeX indexing, texindex style]
+%<*batchfile>
+\begingroup
+\input docstrip
+\keepsilent
+\usedir{tex/latex/contrib/ltxindex}
+\preamble
+
+ ltxindex.sty, a LaTeX package to typeset indices with GNU's Texindex
+ Copyright (C) 2004 by Richard Stallman, Robert J. Chassell,
+ Michael Clarkson, \& Luis Rivera.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ WARNING!!! This code is fairly experimental.
+
+\endpreamble
+
+\askforoverwritefalse
+
+\IfFileExists{ltxindex.sty}{}{%
+\generate{\file{ltxindex.sty}{\usepreamble\defaultpreamble
+\usepostamble\defaultpostamble\from{ltxindex.dtx}{ltxindex,package}}
+}}
+\endgroup
+%</batchfile>
+%\fi
+%
+%\iffalse
+%<*driver>
+\documentclass{ltxdoc}
+\newcommand{\texindex}{\texttt{texindex}}
+\newcommand{\ltxindex}{\textsf{ltxindex}}
+\OnlyDescription
+\begin{document}
+ \DocInput{ltxindex.dtx}
+\end{document}
+%</driver>
+%\fi
+%
+% \CheckSum{548}
+%
+% \changes{0.1}{2004/06/30}{First Release.}
+% \changes{0.1b}{2007/12/14}{Made a first dtx file.}
+% \changes{0.1c}{2008/06/06}{Single file release, nomulticol option, dropped support.}
+%
+% \GetFileInfo{ltxindex.dtx}
+%
+% \title{\ltxindex: Making \LaTeX\ indexes with GNU's \texindex%
+% \thanks{This file documents version~\fileversion, as of~\filedate.
+% This package has been orphaned: please adopt a package!}}
+% \author{Luis Rivera}
+% \date{June 6, 2008}
+% \maketitle
+%
+% \ltxindex\ is a simple package to make indices for \LaTeX\
+% documents with \texindex\ instead of |makeindex|.
+% Though missing some important functionality, \texindex\ seems much
+% simpler to use;
+% and if you don't need anything fancy, such an index may be useful.
+%
+% This package only implements the standard indices used by
+% texinfo, and only defines the concept index (cp) by default.
+% You can't define custom indices (yet), and you must set up the fn, ky, pg,
+% tp, and vr indices on your own.
+%
+% \section{Usage}
+%
+% Call this package in the preamble: |\usepackage{ltxindex}|
+%
+% The package implements the following commands,
+%
+% |\cpindex|\marg{concept} indexes \emph{concept}, without typesetting it in the
+% main text.
+%
+% |\cpsubindex|\marg{concept}\marg{subconcept} indexes \emph{subconcept} under
+% \emph{concept}, without typesetting it in the main text.
+%
+% |\indexcp|\marg{concept} typesets \emph{concept} and puts it in the |cp| index.
+%
+% |\subindex|\marg{subconcept}\marg{concept} typesets \emph{subconcept} in the main
+% document and puts it under \emph{concept} in the |cp| index.
+%
+% You may set up fnindex, kyindex, pgindex, tpindex, and vrindex with the
+% command |\newindex|\marg{??}, where |??| is either fn, ky, pg, tp, or vr.
+% This way, you enable commands |\??index|\marg{word}, which allows you to
+% index \emph{word} in the appropriate index.
+% Texinfo's shortcuts |\cindex|, |\findex|, |\kindex|, |\pindex|, |\tindex|, and
+% |\vindex|, are also available.
+%
+% |\synindex|\marg{foo}\marg{bar} subsumes index \emph{foo} under index \emph{bar}.
+%
+% |\syncodeindex|\marg{foo}\marg{bar} is similar, but typesets all entries for
+% index \emph{foo} in boldface.
+%
+% As in Texinfo, all these commands produce auxiliary files |<filename>.??|
+%
+% Once you're done with the main body of your document, you ask
+% \LaTeX\ to typeset the index with the command |\printindex|\marg{??}, wherever
+% you like. Make sure you precede it with some informative heading,
+% like |\section*{Concept Index}|. In short:
+%
+% \begin{description}
+% \item{Run} \LaTeX\ on filename to produce the |.aux| and |.??| files
+% \item{Run} \texindex\ on every unsorted index file (|<filename>.??|) you created
+% for your document (|<filename>.cp|, by default). \texindex\ will
+% create a sorted index file for your index file (|<filename>.cps|, by
+% default).
+% \item{ReRun} \LaTeX\ to incorporate the indices.
+% \item{ReRun} \texindex\ on every index file (to ensure right cross-references).
+% \item{ReRun} \LaTeX\ to put everything in order.
+% \end{description}
+%
+% You may avoid all this work in drafting and proofreading:
+% the package prints ``(Index is empty)'' or ``(Index is nonexistent)''
+% in the appropriate places if the indices are unsorted or
+% undefined.
+%
+% \section{Acknowledgements}
+%
+% As you may see by simple inspection of the code, I just ``borrowed''
+% the code from the old |latexinfo.sty|, available on CTAN, and patched
+% it up to run as a \LaTeX\ package.
+% Thus, all credits should go to Richard Stallman, Robert J. Chassell,
+% \& Michael Clarkson.
+%
+% \section{To Do's and Warnings}
+%
+% \begin{itemize}
+% \item Two column output is somewhat clumsy; you may have to edit the
+% |.??s| file manually to add |\columnbreak|'s in the appropriate places.
+% \item Devise a more general mechanism to create arbitrary indices.
+% \item Write some macros to modify the appearance of the index (by means
+% of some commands or package options).
+% \item PDF is not supported at all.
+% \item Documentation is wanting.
+% \end{itemize}
+%
+% There is something odd about the license of this package: it may
+% be fixed by adding an independent implementation of multicolumns.
+%
+% This package is distributed along the lines of the GNU General Public
+% License version 2.0, in compliance with the original license for
+% |latexinfo.sty|.
+%
+% There are additional conditions imposed on the use ---not the
+% distribution--- of the package, due to the usage of the \textsf{multicol}
+% package, by Frank Mittelbach.
+% Even though \textsf{multicol} is a required file for any \LaTeX\
+% installation, you are \emph{morally} required to pay a license fee if you
+% use it as a part of a proprietary or commercially distributed product
+% based on or using \textsf{multicol}. The \ltxindex\ package is distributed
+% `gratis', so as long as you distribute or use this package for a
+% non-commercial or non-proprietary end product (document or software),
+% you don't acquire this moral obligation.
+% Otherwise, you are morally required to pay that fee, because of the usage
+% of \textsf{multicol}.
+% See the file |multicol.dtx| for details.
+%
+% Confused? Well, just use the package option |nomulticol|.
+% The output will be ugly, but free from moral trouble.
+%
+%\StopEventually{}
+%
+%\section{The Code}
+%
+% This package may require the package \textsf{multicol} to typeset the index
+% in a two column environment. This should be the default behavior, save
+% the case documented above.
+% \begin{macrocode}
+%<*ltxindex>
+\RequirePackage{multicol}
+\newenvironment{ltxmulticols}{\begin{multicols}{2}}{\end{multicols}}
+\DeclareOption{nomulticol}{\renewenvironment{ltxmulticols}{}{}}
+% \end{macrocode}
+% Index generation facilities
+%
+% Define the texinfo user-accessible indexing commands for backwards
+% compatability.
+%
+% \begin{macrocode}
+\def\cindex{\cpindex}
+\def\pindex{\pgindex}
+\def\vindex{\vrindex}
+\def\tindex{\tpindex}
+\def\kindex{\kyindex}
+\def\findex{\fnindex}
+% \end{macrocode}
+%
+% |\newindex{foo}| defines an index named foo.
+% It automatically defines |\fooindex| such that
+% |\fooindex ...rest of line...| puts an entry in the index foo.
+% It also defines |\fooindfile| to be the number of the output channel for
+% the file that accumulates this index. The file's extension is foo.
+% The name of an index should be no more than 2 characters long
+% for the sake of vms.
+% \begin{macrocode}
+\def\newindex#1{\csname newindex#1\endcsname}
+% \end{macrocode}
+%
+% Yes I know this could be done shorter, but safer??
+%
+% \begin{macrocode}
+\def\newindexcp{\if@filesw \newwrite\@cpindexfile
+ \immediate\openout\@cpindexfile=\jobname.cp
+ \def\cpindex{\@bsphack\begingroup
+ \def\protect####1{\string####1\space}\@sanitize
+ \@wrindex\@cpindexfile}%
+ \def\cpsubindex{\@bsphack\begingroup
+ \def\protect####1{\string####1\space}\@sanitize
+ \@wrsubindex\@cpindexfile}%
+ \def\cpindexbold{\@bsphack\begingroup
+ \def\protect####1{\string####1\space}\@sanitize
+ \@wrindexbold\@cpindexfile}
+ \typeout{Writing concepts index file \jobname.cp }%
+ \fi}
+
+\def\cpindex{\@bsphack\begingroup \@sanitize\@index}
+\def\cpsubindex{\@bsphack\begingroup \@sanitize\@index}
+\def\cpindexbold{\@bsphack\begingroup \@sanitize\@index}
+
+\def\@wrindex#1#2{\let\thepage\relax
+ \xdef\@gtempa{\write#1{\string \entry{#2}{\thepage}{#2}}}\endgroup
+ \def\@tempa{}\def\thing{#2}\ifx\thing\@tempa\relax\else\@gtempa\fi
+ \if@nobreak \ifvmode\nobreak\fi\fi\@esphack}
+
+\def\@wrindexbold#1#2{\let\thepage\relax \let\bf\relax
+ \xdef\@gtempa{\write#1{\string \entry{#2}{\b{\thepage}}{#2}}}\endgroup
+ \def\@tempa{}\def\thing{#2}\ifx\thing\@tempa\relax\else\@gtempa\fi
+ \if@nobreak \ifvmode\nobreak\fi\fi\@esphack}
+
+\def\@wrsubindex#1#2#3{\let\thepage\relax
+ \xdef\@gtempa{\write#1{\string \entry{#2 #3}{\thepage}{#2}{#3}}}\endgroup%
+ \@gtempa
+ \if@nobreak \ifvmode\nobreak\fi\fi\@esphack}
+
+\def\@index#1{\endgroup\@esphack}
+
+\def\pgindex{\@bsphack\begingroup \@sanitize\@index}
+\def\newindexpg{\if@filesw \newwrite\@pgindexfile
+ \immediate\openout\@pgindexfile=\jobname.pg
+ \def\pgindex{\@bsphack\begingroup
+ \def\protect####1{\string####1\space}\@sanitize
+ \@wrindex\@pgindexfile}
+ \def\pgindexbold{\@bsphack\begingroup
+ \def\protect####1{\string####1\space}\@sanitize
+ \@wrindexbold\@pgindexfile}
+ \typeout{Writing index file \jobname.pg }\fi}
+
+\def\pgindex{\@bsphack\begingroup \@sanitize\@index}
+\def\pgindexbold{\@bsphack\begingroup \@sanitize\@index}
+
+\def\newindexvr{\if@filesw \newwrite\@vrindexfile
+ \immediate\openout\@vrindexfile=\jobname.vr
+ \def\vrindex{\@bsphack\begingroup
+ \def\protect####1{\string####1\space}\@sanitize
+ \@wrindex\@vrindexfile}
+ \def\vrindexbold{\@bsphack\begingroup
+ \def\protect####1{\string####1\space}\@sanitize
+ \@wrindexbold\@vrindexfile}
+ \typeout{Writing variable index file \jobname.vr }\fi}
+
+\def\vrindex{\@bsphack\begingroup \@sanitize\@index}
+\def\vrindexbold{\@bsphack\begingroup \@sanitize\@index}
+
+\def\newindextp{\if@filesw \newwrite\@tpindexfile
+ \immediate\openout\@tpindexfile=\jobname.tp
+ \def\tpindex{\@bsphack\begingroup
+ \def\protect####1{\string####1\space}\@sanitize
+ \@wrindex\@tpindexfile}
+ \def\tpindexbold{\@bsphack\begingroup
+ \def\protect####1{\string####1\space}\@sanitize
+ \@wrindexbold\@tpindexfile}
+ \typeout{Writing datatype index file \jobname.tp }\fi}
+
+\def\tpindex{\@bsphack\begingroup \@sanitize\@index}
+\def\tpindexbold{\@bsphack\begingroup \@sanitize\@index}
+
+\def\newindexky{\if@filesw
+ \newwrite\@kyindexfile
+ \immediate\openout\@kyindexfile=\jobname.ky
+ \def\kyindex{\@bsphack\begingroup
+ \def\protect####1{\string####1\space}\@sanitize
+ \@wrindex\@kyindexfile}\typeout{Writing key index file \jobname.ky}
+ \fi}
+
+\def\kyindex{\@bsphack\begingroup \@sanitize\@index}
+\def\kyindexbold{\@bsphack\begingroup \@sanitize\@index}
+
+\def\newindexfn{\if@filesw \newwrite\@fnindexfile
+ \immediate\openout\@fnindexfile=\jobname.fn
+ \def\fnindex{\@bsphack\begingroup
+ \def\protect####1{\string####1\space}\@sanitize
+ \@wrindex\@fnindexfile}
+ \def\fnindexbold{\@bsphack\begingroup
+ \def\protect####1{\string####1\space}\@sanitize
+ \@wrindexbold\@fnindexfile}
+ \typeout{Writing function index file \jobname.fn }\fi}
+
+\def\fnindex{\@bsphack\begingroup \@sanitize\@index}
+\def\fnindexbold{\@bsphack\begingroup \@sanitize\@index}
+% \end{macrocode}
+%
+% |\synindex{foo}{bar}| makes index foo feed into index bar.
+%
+% \begin{macrocode}
+\def\synindex#1#2{\expandafter\xdef \csname @#1index\endcsname{%
+ \noexpand\csname @#2index\endcsname}%
+\expandafter \chardef \csname @#1indexfile\endcsname=\csname @#2indexfile\endcsname}
+% \end{macrocode}
+%
+% |\syncodeindex{foo}{bar}| similar, but put all entries made for index foo
+% inside bold.
+%
+% \begin{macrocode}
+\def\syncodeindex#1#2{%
+\expandafter\let\expandafter\synindexfoo\expandafter=\csname#2indfile\endcsname
+\expandafter\let\csname#1indfile\endcsname=\synindexfoo
+\expandafter\xdef\csname#1index\endcsname{% % Define \xxxindex
+\csname#1boldindex\endcsname{#2}}%
+}
+% \end{macrocode}
+%
+% Define the macros used in formatting output of the sorted index material.
+% This is what you call to cause a particular index to get printed.
+% Write |\section*{Function Index}| to |\printindex{fn}|
+%
+% \begin{macrocode}
+\newskip\secondaryindent
+\secondaryindent=0.5cm
+% \end{macrocode}
+%
+% In case index foo is undefined, or sorted index |foo.??s| is empty...
+%
+% \begin{macrocode}
+\ifx\putwordIndexNonexistent\undefined
+ \gdef\putwordIndexNonexistent{(Index is nonexistent)}
+\fi
+\ifx\putwordIndexIsEmpty\undefined
+ \gdef\putwordIndexIsEmpty{(Index is empty)}
+\fi
+% \end{macrocode}
+%
+% The command |\printindex| typesets the index in the appropriate place.
+% This is the piece of code where the \textsf{multicol} package is used,
+% and some replacement is needed.
+%
+% \begin{macrocode}
+\def\printindex#1{
+\def\indexbackslash{\rawbackslashxx}
+\tolerance=9500 \advance\baselineskip -1pt
+\openin 1 \jobname.#1s
+\ifeof 1
+ \putwordIndexNonexistent
+ \else
+ \read 1 to \temp
+ \ifeof 1
+ \putwordIndexIsEmpty
+ \else
+ \begin{ltxmulticols}
+ \input \jobname.#1s
+ \end{ltxmulticols}
+ \fi
+\fi
+\closein 1
+}
+% \end{macrocode}
+%
+% These macros are used by the sorted index file itself.
+% Change them to control the appearance of the index.
+%
+% \begin{macrocode}
+\def\Dotsbox{\hbox to 1em{\hss.\hss}} % Used by index macros
+\def\pline{\hbox to\hsize}
+
+\def\initial#1{%
+{\bigbreak\pline{\large\bf#1\hfill}\kern 2pt\penalty3000}}
+
+\def\entry #1#2{
+{\parfillskip=0in \parskip=0in \parindent=0in \small
+\hangindent=1in \hangafter=1%
+\noindent\hbox{#1}\leaders\Dotsbox\hskip 0pt plus 1filll\relax #2\par
+}}
+
+\def\primary #1{\pline{\small#1\hfil}}
+
+\def\secondary #1#2{
+{\parfillskip=0in \parskip=0in \small
+\hangindent =1in \hangafter=1
+\noindent\hskip\secondaryindent\hbox{#1}\leaders\Dotsbox\hskip 0pt plus 1filll#2\par
+}}
+% \end{macrocode}
+%
+% Args are the skip and penalty (usually negative)
+%
+% \begin{macrocode}
+\def\dobreak#1#2{\par\ifdim\lastskip<#1\removelastskip\penalty#2\vskip#1\fi}
+% \end{macrocode}
+%
+% Now we set up the default concept index...
+%
+% \begin{macrocode}
+\newindex{cp}
+% \end{macrocode}
+%
+% ...and two useful macros to save typing time.
+%
+% \begin{macrocode}
+\newcommand{\indexcp}[1]{#1\cpindex{#1}}
+\newcommand{\subindexcp}[2]{#1\cpsubindex{#2}{#1}}
+% \end{macrocode}
+%
+% Finally, process options.
+%
+% \begin{macrocode}
+\ExecuteOptions{}
+\ProcessOptions
+%</ltxindex>
+% \end{macrocode}
+%
+% et voil\`a!
+%
+%\Finale
+%
+% \CharacterTable
+% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+% Digits \0\1\2\3\4\5\6\7\8\9
+% Exclamation \! Double quote \" Hash (number) \#
+% Dollar \$ Percent \% Ampersand \&
+% Acute accent \' Left paren \( Right paren \)
+% Asterisk \* Plus \+ Comma \,
+% Minus \- Point \. Solidus \/
+% Colon \: Semicolon \; Less than \<
+% Equals \= Greater than \> Question mark \?
+% Commercial at \@ Left bracket \[ Backslash \\
+% Right bracket \] Circumflex \^ Underscore \_
+% Grave accent \` Left brace \{ Vertical bar \|
+% Right brace \} Tilde \~}
+%
+% \typeout{**************************************************}
+% \typeout{*}
+% \typeout{* To finish the installation you have to move the}
+% \typeout{* following file into a directory searched by TeX:}
+% \typeout{*}
+% \typeout{* \space\space ltxindex.sty}
+% \typeout{*}
+% \typeout{* Documentation is in ltxindex.pdf or ltxindex.dvi}
+% \typeout{*}
+% \typeout{* Happy TeXing!}
+% \typeout{**************************************************}
+% \ No newline at end of file
diff --git a/obsolete/macros/latex/contrib/ltxindex/ltxindex.pdf b/obsolete/macros/latex/contrib/ltxindex/ltxindex.pdf
new file mode 100644
index 0000000000..1734c08649
--- /dev/null
+++ b/obsolete/macros/latex/contrib/ltxindex/ltxindex.pdf
Binary files differ
diff --git a/obsolete/macros/latex/contrib/ltxindex/ltxindex.sty b/obsolete/macros/latex/contrib/ltxindex/ltxindex.sty
new file mode 100644
index 0000000000..a8436e3403
--- /dev/null
+++ b/obsolete/macros/latex/contrib/ltxindex/ltxindex.sty
@@ -0,0 +1,202 @@
+%%
+%% This is file `ltxindex.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% ltxindex.dtx (with options: `ltxindex,package')
+%%
+%% ltxindex.sty, a LaTeX package to typeset indices with GNU's Texindex
+%% Copyright (C) 2004 by Richard Stallman, Robert J. Chassell,
+%% Michael Clarkson, \& Luis Rivera.
+%%
+%% This program is free software; you can redistribute it and/or modify
+%% it under the terms of the GNU General Public License as published by
+%% the Free Software Foundation; either version 2, or (at your option)
+%% any later version.
+%%
+%% This program is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%% GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public License
+%% along with this program; if not, write to the Free Software
+%% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+%%
+%% WARNING!!! This code is fairly experimental.
+%%
+\NeedsTeXFormat{LaTeX2e}[1995/06/01]
+\ProvidesPackage{ltxindex}
+ [2008/06/06 v0.1c ltxindex: LaTeX indexing, texindex style]
+\RequirePackage{multicol}
+\newenvironment{ltxmulticols}{\begin{multicols}{2}}{\end{multicols}}
+\DeclareOption{nomulticol}{\renewenvironment{ltxmulticols}{}{}}
+\def\cindex{\cpindex}
+\def\pindex{\pgindex}
+\def\vindex{\vrindex}
+\def\tindex{\tpindex}
+\def\kindex{\kyindex}
+\def\findex{\fnindex}
+\def\newindex#1{\csname newindex#1\endcsname}
+\def\newindexcp{\if@filesw \newwrite\@cpindexfile
+ \immediate\openout\@cpindexfile=\jobname.cp
+ \def\cpindex{\@bsphack\begingroup
+ \def\protect####1{\string####1\space}\@sanitize
+ \@wrindex\@cpindexfile}%
+ \def\cpsubindex{\@bsphack\begingroup
+ \def\protect####1{\string####1\space}\@sanitize
+ \@wrsubindex\@cpindexfile}%
+ \def\cpindexbold{\@bsphack\begingroup
+ \def\protect####1{\string####1\space}\@sanitize
+ \@wrindexbold\@cpindexfile}
+ \typeout{Writing concepts index file \jobname.cp }%
+ \fi}
+
+\def\cpindex{\@bsphack\begingroup \@sanitize\@index}
+\def\cpsubindex{\@bsphack\begingroup \@sanitize\@index}
+\def\cpindexbold{\@bsphack\begingroup \@sanitize\@index}
+
+\def\@wrindex#1#2{\let\thepage\relax
+ \xdef\@gtempa{\write#1{\string \entry{#2}{\thepage}{#2}}}\endgroup
+ \def\@tempa{}\def\thing{#2}\ifx\thing\@tempa\relax\else\@gtempa\fi
+ \if@nobreak \ifvmode\nobreak\fi\fi\@esphack}
+
+\def\@wrindexbold#1#2{\let\thepage\relax \let\bf\relax
+ \xdef\@gtempa{\write#1{\string \entry{#2}{\b{\thepage}}{#2}}}\endgroup
+ \def\@tempa{}\def\thing{#2}\ifx\thing\@tempa\relax\else\@gtempa\fi
+ \if@nobreak \ifvmode\nobreak\fi\fi\@esphack}
+
+\def\@wrsubindex#1#2#3{\let\thepage\relax
+\xdef\@gtempa{\write#1{\string \entry{#2 #3}{\thepage}{#2}{#3}}}\endgroup%
+\@gtempa
+ \if@nobreak \ifvmode\nobreak\fi\fi\@esphack}
+
+\def\@index#1{\endgroup\@esphack}
+
+\def\pgindex{\@bsphack\begingroup \@sanitize\@index}
+\def\newindexpg{\if@filesw \newwrite\@pgindexfile
+ \immediate\openout\@pgindexfile=\jobname.pg
+ \def\pgindex{\@bsphack\begingroup
+ \def\protect####1{\string####1\space}\@sanitize
+ \@wrindex\@pgindexfile}
+ \def\pgindexbold{\@bsphack\begingroup
+ \def\protect####1{\string####1\space}\@sanitize
+ \@wrindexbold\@pgindexfile}
+\typeout{Writing index file \jobname.pg }\fi}
+
+\def\pgindex{\@bsphack\begingroup \@sanitize\@index}
+\def\pgindexbold{\@bsphack\begingroup \@sanitize\@index}
+
+\def\newindexvr{\if@filesw \newwrite\@vrindexfile
+ \immediate\openout\@vrindexfile=\jobname.vr
+ \def\vrindex{\@bsphack\begingroup
+ \def\protect####1{\string####1\space}\@sanitize
+ \@wrindex\@vrindexfile}
+ \def\vrindexbold{\@bsphack\begingroup
+ \def\protect####1{\string####1\space}\@sanitize
+ \@wrindexbold\@vrindexfile}
+\typeout{Writing variable index file \jobname.vr }\fi}
+
+\def\vrindex{\@bsphack\begingroup \@sanitize\@index}
+\def\vrindexbold{\@bsphack\begingroup \@sanitize\@index}
+
+\def\newindextp{\if@filesw \newwrite\@tpindexfile
+ \immediate\openout\@tpindexfile=\jobname.tp
+ \def\tpindex{\@bsphack\begingroup
+ \def\protect####1{\string####1\space}\@sanitize
+ \@wrindex\@tpindexfile}
+ \def\tpindexbold{\@bsphack\begingroup
+ \def\protect####1{\string####1\space}\@sanitize
+ \@wrindexbold\@tpindexfile}
+\typeout{Writing datatype index file \jobname.tp }\fi}
+
+\def\tpindex{\@bsphack\begingroup \@sanitize\@index}
+\def\tpindexbold{\@bsphack\begingroup \@sanitize\@index}
+
+\def\newindexky{\if@filesw
+ \newwrite\@kyindexfile
+ \immediate\openout\@kyindexfile=\jobname.ky
+ \def\kyindex{\@bsphack\begingroup
+ \def\protect####1{\string####1\space}\@sanitize
+ \@wrindex\@kyindexfile}\typeout{Writing key index file \jobname.ky}
+ \fi}
+
+\def\kyindex{\@bsphack\begingroup \@sanitize\@index}
+\def\kyindexbold{\@bsphack\begingroup \@sanitize\@index}
+
+\def\newindexfn{\if@filesw \newwrite\@fnindexfile
+ \immediate\openout\@fnindexfile=\jobname.fn
+ \def\fnindex{\@bsphack\begingroup
+ \def\protect####1{\string####1\space}\@sanitize
+ \@wrindex\@fnindexfile}
+ \def\fnindexbold{\@bsphack\begingroup
+ \def\protect####1{\string####1\space}\@sanitize
+ \@wrindexbold\@fnindexfile}
+\typeout{Writing function index file \jobname.fn }\fi}
+
+\def\fnindex{\@bsphack\begingroup \@sanitize\@index}
+\def\fnindexbold{\@bsphack\begingroup \@sanitize\@index}
+\def\synindex#1#2{\expandafter\xdef \csname @#1index\endcsname{%
+\noexpand\csname @#2index\endcsname}%
+\expandafter \chardef \csname @#1indexfile\endcsname=\csname @#2indexfile\endcsname}
+\def\syncodeindex#1#2{%
+\expandafter\let\expandafter\synindexfoo\expandafter=\csname#2indfile\endcsname
+\expandafter\let\csname#1indfile\endcsname=\synindexfoo
+\expandafter\xdef\csname#1index\endcsname{% % Define \xxxindex
+\csname#1boldindex\endcsname{#2}}%
+}
+\newskip\secondaryindent
+\secondaryindent=0.5cm
+\ifx\putwordIndexNonexistent\undefined
+ \gdef\putwordIndexNonexistent{(Index is nonexistent)}
+\fi
+\ifx\putwordIndexIsEmpty\undefined
+ \gdef\putwordIndexIsEmpty{(Index is empty)}
+\fi
+\def\printindex#1{
+\def\indexbackslash{\rawbackslashxx}
+\tolerance=9500 \advance\baselineskip -1pt
+\openin 1 \jobname.#1s
+\ifeof 1
+ \putwordIndexNonexistent
+ \else
+ \read 1 to \temp
+ \ifeof 1
+ \putwordIndexIsEmpty
+ \else
+ \begin{ltxmulticols}
+ \input \jobname.#1s
+ \end{ltxmulticols}
+ \fi
+\fi
+\closein 1
+}
+\def\Dotsbox{\hbox to 1em{\hss.\hss}} % Used by index macros
+\def\pline{\hbox to\hsize}
+
+\def\initial#1{%
+{\bigbreak\pline{\large\bf#1\hfill}\kern 2pt\penalty3000}}
+
+\def\entry #1#2{
+{\parfillskip=0in \parskip=0in \parindent=0in \small
+\hangindent=1in \hangafter=1%
+\noindent\hbox{#1}\leaders\Dotsbox\hskip 0pt plus 1filll\relax #2\par
+}}
+
+\def\primary #1{\pline{\small#1\hfil}}
+
+\def\secondary #1#2{
+{\parfillskip=0in \parskip=0in \small
+\hangindent =1in \hangafter=1
+\noindent\hskip\secondaryindent\hbox{#1}\leaders\Dotsbox\hskip 0pt plus 1filll#2\par
+}}
+\def\dobreak#1#2{\par\ifdim\lastskip<#1\removelastskip\penalty#2\vskip#1\fi}
+\newindex{cp}
+\newcommand{\indexcp}[1]{#1\cpindex{#1}}
+\newcommand{\subindexcp}[2]{#1\cpsubindex{#2}{#1}}
+\ExecuteOptions{}
+\ProcessOptions
+\endinput
+%%
+%% End of file `ltxindex.sty'.