summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/bezos/tensind.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2010-10-15 22:30:05 +0000
committerKarl Berry <karl@freefriends.org>2010-10-15 22:30:05 +0000
commit997de50715b1ee678641cc9f12b4cba4cf964c90 (patch)
treecc54d7fda1df3d81e949050c69254658cc46b278 /Master/texmf-dist/tex/latex/bezos/tensind.sty
parentb70007a8daf8fc353a5ff23ca5cb6f3105cacfea (diff)
reinstate bezos
git-svn-id: svn://tug.org/texlive/trunk@20113 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/bezos/tensind.sty')
-rw-r--r--Master/texmf-dist/tex/latex/bezos/tensind.sty284
1 files changed, 284 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/bezos/tensind.sty b/Master/texmf-dist/tex/latex/bezos/tensind.sty
new file mode 100644
index 00000000000..2c9cc1bbc8e
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/bezos/tensind.sty
@@ -0,0 +1,284 @@
+% +--------------------------------------------------+
+% | Typeset titlesec.tex to get the documentation. |
+% +--------------------------------------------------+
+%
+% This file is copyrighted (c) 1998 by Javier Bezos.
+% All Rights Reserved.
+%
+% This program 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.
+%
+% Release
+% ~~~~~~~
+
+\ProvidesPackage{tensind}[1998/05/01 v1.0 Tensorial Indexes]
+
+\@tempcnta=\the\catcode`^
+\@tempcntb=\the\catcode`_
+\catcode`^=7\catcode`_=8
+
+\newdimen\tsi@dimen
+
+\newif\iftsi@sp
+\newif\iftsi@sb
+
+\newif\iftsi@e
+\newif\iftsi@b
+\newif\iftsi@l
+\newif\iftsi@r
+\newif\iftsi@o
+\newif\iftsi@c
+\newif\iftsi@s
+\newif\iftsi@nodot
+
+\def\tsi@thedots{}
+\def\tsi@theprimes{}
+\def\tsi@thesb{}
+\def\tsi@thesp{}
+\def\tsi@lastloc{x}
+\def\tsi@lastindex{}%
+\def\tsi@addindex{\tsi@addpr}
+
+\let\tsi@bl\relax
+\let\tsi@br\relax
+\let\tsi@bm\relax
+\let\tsi@tl\relax
+\let\tsi@tr\relax
+\let\tsi@tm\relax
+
+\let\tsi@choice\mathchoice
+
+\newif\iftsi@top
+\newif\iftsi@bot
+
+\let\tsi@gap\relax
+
+\def\tensorformat#1{\tsi@lfalse\tsi@rfalse\tsi@efalse
+ \tsi@bfalse\tsi@ofalse\tsi@cfalse\tsi@sfalse
+ \@tfor\tsi@a:=#1\do{\csname tsi@\tsi@a true\endcsname}}
+
+\tensorformat{}
+\def\indexdot{\cdot}
+
+\def\tsi@appendto#1#2{\protected@edef#2{#2#1}}
+
+\def\tensor{\catcode`_=8\catcode`^=7 %
+ \def\tsi@end{\end}\tsi@ifnextchar[{\tsi@otensor}{\tsi@xtensor}}
+
+\begingroup
+
+\catcode`?=13
+\gdef\tensordelimiter#1{\mathcode`#1="8000{\catcode`?=13\lccode`?=`#1
+ \lowercase{%
+ \gdef?{\begingroup\catcode`_=8 \catcode`^=7 %
+ \def\tsi@end{#1}\def?{\endtensor\endgroup}%
+ \@ifnextchar[{\tsi@otensor}{\tsi@xtensor}}}}}
+
+\endgroup
+
+\def\tsi@otensor[#1]{\tensorformat{#1}\tsi@xtensor}
+
+\gdef\tsi@xtensor#1{%
+ \def\tsi@nucl{#1}%
+ \futurelet\nxt\tsi@process}
+
+\def\tsi@process#1{%
+ \def\next{\futurelet\nxt\tsi@process}%
+ \def\tsi@theindex{#1}\def\tsi@a{_}%
+ \ifx\tsi@theindex\tsi@a
+ \if\tsi@lastloc x\let\tsi@first\@empty\fi
+ \if\tsi@lastloc b\else\tsi@switchsb\fi
+ \else
+ \def\tsi@a{^}%
+ \ifx\tsi@theindex\tsi@a
+ \if\tsi@lastloc p\else\tsi@switchsp\fi
+ \else
+ \ifx\tsi@theindex\tsi@end
+ \let\next\tsi@end
+ \else
+ \tsi@nodotfalse
+ \ifx\nxt\bgroup
+ \def\tsi@lastindex{}%
+ \else
+ \csname tsi@cmd\string#1\endcsname
+ \def\tsi@lastindex{#1}%
+ \fi
+ \tsi@addindex
+ \fi
+ \fi
+ \fi
+ \next}
+
+\def\tsi@switchsp{%
+ \let\tsi@addindex\tsi@addsp
+ \iftsi@top
+ \def\tsi@gap{\tsi@tm}%
+ \else
+ \def\tsi@gap{\tsi@tl}%
+ \fi
+ \tsi@appendto{\tsi@thedots}\tsi@thesp
+ \let\tsi@gap\relax
+ \def\tsi@thedots{}}
+
+\def\tsi@switchsb{%
+ \let\tsi@addindex\tsi@addsb
+ \iftsi@bot
+ \def\tsi@gap{\tsi@bm}%
+ \else
+ \def\tsi@gap{\tsi@bl}%
+ \fi
+ \tsi@appendto{\tsi@thedots}\tsi@thesb
+ \let\tsi@gap\relax
+ \def\tsi@thedots{}}
+
+\def\tsi@addpr{%
+ \tsi@appendto{\tsi@theindex}\tsi@theprimes}
+
+\def\tsi@addsp{%
+ \tsi@toptrue
+ \tsi@appendto{\tsi@theindex}\tsi@thesp
+ \iftsi@nodot
+ \tsi@appendto{\protect\tsi@phantom{\tsi@theindex}}\tsi@thedots
+ \else
+ \tsi@appendto{\tsi@gap{\tsi@theindex}}\tsi@thedots
+ \fi
+ \def\tsi@lastloc{p}}
+
+\def\tsi@addsb{%
+ \tsi@bottrue
+ \tsi@appendto{\tsi@theindex}\tsi@thesb
+ \iftsi@nodot
+ \tsi@appendto{\protect\tsi@phantom{\tsi@theindex}}\tsi@thedots
+ \else
+ \tsi@appendto{\tsi@gap{\tsi@theindex}}\tsi@thedots
+ \fi
+ \def\tsi@lastloc{b}}
+
+\def\tsi@dot#1{%
+ \setbox\z@\hbox{$\tsi@fam\m@th\tsi@index#1$}%
+ \hbox to\wd\z@{\hss$\tsi@fam\m@th\tsi@index\indexdot$\hss}}
+
+\newdimen\primes
+
+\def\endtensor{%
+ \if\tsi@lastloc p
+ \def\tsi@gap{\tsi@br}%
+ \tsi@appendto{\tsi@thedots}\tsi@thesb
+ \else
+ \def\tsi@gap{\tsi@tr}%
+ \tsi@appendto{\tsi@thedots}\tsi@thesp
+ \fi
+ \let\tsi@bl\tsi@phantom \let\tsi@br\tsi@phantom
+ \let\tsi@bm\tsi@phantom \let\tsi@tm\tsi@phantom
+ \def\tsi@tl##1{\tsi@phantom{##1}\global\advance\tsi@dimen\wd\z@}%
+ \iftsi@top
+ \let\tsi@tr\tsi@phantom
+ \else
+ \let\tsi@tr\tsi@tl
+ \fi
+ \iftsi@bot
+ \iftsi@l\let\tsi@bl\tsi@dot\let\tsi@bm\tsi@dot\fi
+ \iftsi@r\let\tsi@br\tsi@dot\let\tsi@bm\tsi@dot\fi
+ \else
+ \iftsi@e\let\tsi@br\tsi@dot\tsi@bottrue\fi
+ \fi
+ \iftsi@b\else
+ \iftsi@top
+ \iftsi@l\let\tsi@tl\tsi@dot\let\tsi@tm\tsi@dot\fi
+ \iftsi@r\let\tsi@tr\tsi@dot\let\tsi@tm\tsi@dot\fi
+ \else
+ \iftsi@e\let\tsi@tr\tsi@dot\tsi@toptrue\fi
+ \fi
+ \fi
+ \ifx\tsi@theprimes\@empty\else\tsi@toptrue\fi
+ \edef\tsi@fam{\fam\the\fam}%
+ \tsi@choice
+ {\tsi@endtensor\displaystyle\scriptstyle}%
+ {\tsi@endtensor\textstyle\scriptstyle}%
+ {\tsi@endtensor\scriptstyle\scriptscriptstyle}%
+ {\tsi@endtensor\scriptscriptstyle\scriptscriptstyle}}
+
+
+\def\tsi@endtensor#1#2{%
+ \let\tsi@text#1\let\tsi@index#2%
+ \setbox\z@ \hbox{$\tsi@fam\m@th#1\tsi@nucl_{x}$}%
+ \setbox\@ne\hbox{$\tsi@fam\m@th#1\tsi@nucl{}_{x}$}%
+ \tsi@dimen\wd\z@ \advance\tsi@dimen-\wd\@ne
+ \@tempdimb-\tsi@dimen
+ \setbox\z@ \hbox{$\kern\tsi@dimen\tsi@fam\m@th#2\tsi@thesp$}%
+ \setbox\@ne\hbox{$\tsi@fam\m@th#2\tsi@thesb$}%
+ \setbox\tw@\hbox{$\tsi@fam\m@th#2{\tsi@theprimes}$}%
+ \dp\z@\z@
+ \ifdim\tsi@dimen>\wd\tw@
+ \tsi@dimen\z@
+ \else
+ \advance\tsi@dimen-\wd\tw@
+ \fi
+ \wd\tw@\z@
+ \iftsi@s
+ \ifx\tsi@text\displaystyle
+ \tsi@otrue\tsi@cfalse
+ \else
+ \tsi@ofalse\tsi@ctrue
+ \fi
+ \fi
+ \let\tsi@a\@empty
+ \tsi@nucl
+ \iftsi@bot_{\kern-\tsi@dimen\copy\@ne}%
+ \iftsi@o\tsi@toptrue\else\iftsi@c\tsi@toptrue
+ \ifx\tsi@text\displaystyle\else
+ \def\tsi@a{\raise.1ex}%
+ \fi
+ \kern-\wd\@ne\kern\tsi@dimen
+ \kern\@tempdimb\kern-\scriptspace
+ \fi\fi
+ \fi
+ \iftsi@top^{\tsi@a\box\tw@\kern-\tsi@dimen\tsi@a\box\z@}\fi}
+
+\def\tsi@phantom#1{%
+ \setbox\tw@\null
+ \setbox\z@\hbox{$\tsi@fam\m@th\tsi@index#1$}%
+ \wd\tw@\wd\z@
+ \box\tw@}%
+
+\def\whenindex#1#2#3{%
+ \expandafter\def\csname tsi@cmd\expandafter\string#1\endcsname{%
+ \def\tsi@theindex{#2}#3}}
+
+\whenindex{'}{\prime}{}
+
+\def\spadjust#1#2{%
+ \def\tsi@a{#1}%
+ \ifx\tsi@a\tsi@lastindex
+ \iftsi@l\else
+ \iftsi@r\else
+ \ifx\tsi@addindex\tsi@addsp
+ \if\tsi@lastloc b%
+ \protected@edef\tsi@theindex{\mskip#2\thinmuskip\tsi@theindex}%
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi}
+
+\def\sbadjust#1#2{%
+ \def\tsi@a{#1}%
+ \ifx\tsi@a\tsi@lastindex
+ \iftsi@l\else
+ \iftsi@r\else
+ \ifx\tsi@addindex\tsi@addsb
+ \if\tsi@lastloc p%
+ \protected@edef\tsi@theindex{\mskip#2\thinmuskip\tsi@theindex}%
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi}
+
+
+\def\omitdot{\tsi@nodottrue}
+\def\finishdots{\tsi@nodottrue\let\tsi@nodotfalse\relax}
+
+\catcode`^=\@tempcnta\catcode`_=\@tempcntb