\def\filename{tensor.sty} \def\fileversion{1.00} \def\filedate{03 Jun 1996 14:57:09 BST} %% %% Copyright (C) 1996 Mike Piff %% %%M.Piff@sheffield.ac.uk %% %%Defines the command \tensor with two parameters. %% #1 = The name of the tensor %% #2 = The superscript/subscript sequence. %% %% eg %% %% \tensor{A}{^{i}_{j}^{kl}} %% %% Don't forget the enclosing braces round the indices!! %% % \typeout{\filename\space v\fileversion, (C) Copyright Mike Piff, \filedate} \NeedsTeXFormat{LaTeX2e}[1995/12/01] \ProvidesPackage{tensor} \ProcessOptions \newtoks\tensor@sup \newtoks\tensor@sub \newcommand\tensor[2]{\tensor@sup={}\tensor@sub={}% #1\tensor@process#2\tensor@endprocess% } \newcommand\tensor@process[1]{% \ifx #1\tensor@endprocess \let\next\tensor@finish \else \ifx#1^% \let\next\tensor@absorbsup \else \ifx#1_% \let\next\tensor@absorbsub \else \PackageError{tensor}{Sub/Superscript token missing}% \fi \fi \fi \next } \newcommand\tensor@absorbsup[1]{% \tensor@sup=\expandafter{\the\tensor@sup#1}% \tensor@sub=\expandafter{\the\tensor@sub\phantom{#1}}% \tensor@process } \newcommand\tensor@absorbsub[1]{% \tensor@sub=\expandafter{\the\tensor@sub#1}% \tensor@sup=\expandafter{\the\tensor@sup\phantom{#1}}% \tensor@process } \def\tensor@finish{_{\the\tensor@sub}^{\the\tensor@sup}} \endinput