% \iffalse meta comment
% File: leftidx.dtx Copyright (C) 2000, 2001, 2003 Harald Harders
% \fi
%
% \iffalse
%
%<*package>
\def\fileversion{1.03}
\def\filedate{2003/09/24}
%</package>
%<*driver>
\documentclass{ltxdoc}
\usepackage[latin1]{inputenc}
\IfFileExists{leftidx.sty}{\usepackage{leftidx}
 \let\leftidxSTYfound\active}{\GenericWarning{leftidx.dtx}{Package
 file leftidx.sty not found (Documentation will be messed up!^^J^^A
 Generate leftidx.sty by (La)TeXing leftidx.ins, process
 leftidx.dtx again)^^J}\stop}
\usepackage{longtable}
\title{The \texttt{leftidx} package\thanks{This file has version 
    \fileversion\ last revised \filedate.}}
\author{Harald Harders\\\texttt{h.harders@tu-bs.de}}
\date{File Date \filedate, Printed \today}
\newlength{\tempdima}%
\makeatletter
\renewenvironment{table}[1][]{%
  \@float{table}[#1]%
  \centering%
  \setlength{\tempdima}{\abovecaptionskip}%
  \setlength{\abovecaptionskip}{\belowcaptionskip}%
  \setlength{\belowcaptionskip}{\tempdima}%
  }{%
\end@float
}
\makeatother
\EnableCrossrefs
\CodelineIndex
\DoNotIndex{\def,\edef,\let,\newcommand,\newenvironment,\newcounter}
\DoNotIndex{\setcounter,\space,\if,\else,\fi,\empty,\@empty,\ifx,\fi}
\DoNotIndex{\ifnum,\fi,\expandafter}
\CodelineNumbered
\RecordChanges
\CheckSum{14}
\begin{document}
 \DocInput{leftidx.dtx}
\end{document}
%</driver>
% \fi
%
% \changes{1.03}{2003/09/24}{Reimplementation with dtx format with
%   English documentation}%
%
% \maketitle
% \begin{abstract}
% \noindent
% This package enables left subscripts and superscripts in math mode.
% These subscripts and superscripts are automatically raised for better
% fitting to the symbol they belong to.
% \end{abstract}
%
% \tableofcontents
%
% \section*{Copyright}
% Copyright 2000, 2001, 2003 Harald Harders.
%
% 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.
%
% \section{Introduction}
% 
% In mathematical equations, it is sometimes necessary to use indices
% (subscript or superscript) that are positioned at the left side of a
% symbol. 
% In tensor mathematics, for instance, some notations use a transponed
% sign at the left side of the symbol:
% \begin{eqnarray*}
% \leftidx{^\mathrm{t}}{\left(A_{ij}\right)}{} &=&
% \left(A_{ji}\right)
% \end{eqnarray*}
% 
% For symbols with a normal character height, this can be reached by
% simply put the indices without an own symbol:
% 
% \noindent
% \begin{minipage}[c]{0.79\linewidth}
% \leavevmode\begin{verbatim}
%${_1^2}a_3^4$
% \end{verbatim}
% \end{minipage}
% \begin{minipage}[c]{0.19\linewidth}
% ${_1^2}a_3^4$
% \end{minipage}
% 
% \noindent
% Is the symbol larger, this leads to unsatisfactory results:
% 
% \noindent
% \begin{minipage}[c]{0.79\linewidth}
% \leavevmode\begin{verbatim}
%${_1^2}\left(\frac{1}{b}\right)_3^4$
% \end{verbatim}
% \end{minipage}
% \begin{minipage}[c]{0.19\linewidth}
% ${_1^2}\left(\frac{1}{b}\right)_3^4$
% \end{minipage}
% 
% \noindent
% A better output can be reached by using the package |leftidx.sty|:
% 
% \noindent
% \begin{minipage}[c]{0.79\linewidth}
% \leavevmode\begin{verbatim}
%$\leftidx{_1^2}{\left(\frac{1}{b}\right)}{_3^4}$
% \end{verbatim}
% \end{minipage}
% \begin{minipage}[c]{0.19\linewidth}
%$\leftidx{_1^2}{\left(\frac{1}{b}\right)}{_3^4}$
% \end{minipage}
% 
% \section{Usage of the package}
% 
% Two commands are provided by the package.
% 
% \DescribeMacro{\leftidx}%
% The \cs{leftidx} command has the syntax
% \cs{leftidx}\marg{left indices}\marg{symbol}\marg{right indices}.
% This command typesets the symbol \meta{symbol} with indices on the
% left and on the right side.
% Example:
%
% \noindent 
% \begin{minipage}[c]{0.79\linewidth}
% \leavevmode\begin{verbatim}
%$\leftidx{_1^2}{\left(\frac{1}{b}\right)}{_3^4}$
% \end{verbatim}
% \end{minipage}
% \begin{minipage}[c]{0.19\linewidth}
% $\leftidx{_1^2}{\left(\frac{1}{b}\right)}{_3^4}$
% \end{minipage}
% 
% \noindent
% You may omit left or right indices by using empty arguments.
%
% The next example shows the same in the different mathematical
% styles:
% \def\asdf{\leftidx{_1^2}{\left(\frac1b\right)}{_3^4}}%
% \begin{displaymath}
% \displaystyle\asdf\quad\textstyle\asdf\quad
% \scriptstyle\asdf\quad\scriptscriptstyle\asdf
% \end{displaymath}
% As you can see from the left indices, the horizontal spacing of the
% left indices is not perfect.
% You have to adjust them by yourself.
% 
% \DescribeMacro{\ltrans}%
% The \cs{ltrans}\marg{symbol} command typesets a small upright ``t''
% as transponed sign on the left side of \meta{symbol}.
% Example:
% 
% \noindent
% \begin{minipage}[c]{0.79\linewidth}
% \leavevmode\begin{verbatim}
%$\ltrans{\underline{\underline{J}}}=
%\underline{\underline{J}}^{-1}$
% \end{verbatim}
% \end{minipage}
% \begin{minipage}[c]{0.19\linewidth}
% $\ltrans{\underline{\underline{J}}}=\underline{\underline{J}}^{-1}$
% \end{minipage}
%
%
% \StopEventually{\PrintChanges \PrintIndex}
%
% \section{The implementation}
% \iffalse
%<*package>
% \fi
% Heading of the package:
%    \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesPackage{leftidx}[\filedate\space v\fileversion\space Left indices]
%    \end{macrocode}
% \begin{macro}{\leftidx}
% \changes{1.03}{2003/09/24}{Implementation simplyfied}%
% Command for left indices.
% The braces around the \cs{vphantom} are necessary to really raise
% the left indices.
%    \begin{macrocode}
\newcommand\leftidx[3]{%
  {\vphantom{#2}}#1#2#3%
}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\ltrans}
% Left positioned transponed sign.
%    \begin{macrocode}
\newcommand{\ltrans}[1]{\leftidx{^\mathrm{t}}{\!#1}{}}
%    \end{macrocode}
% \end{macro}
%
% \iffalse
%</package>
% \fi
% \Finale

