% \iffalse meta comment
% File: fouridx.dtx Copyright (C) 2008 Stefan Karrmann
% \fi
%
% \iffalse
%
%<*package>
\def\fileversion{1.00}
\def\filedate{2008/03/27}
%</package>
%<*driver>
\documentclass{ltxdoc}
\usepackage[latin1]{inputenc}
\IfFileExists{fouridx.sty}{\usepackage{fouridx}
 \let\fouridxSTYfound\active}{\GenericWarning{fouridx.dtx}{Package
 file fouridx.sty not found (Documentation will be messed up!^^J^^A
 Generate fouridx.sty by (La)TeXing fouridx.ins, process
 fouridx.dtx again)^^J}\stop}
\usepackage{longtable}
\title{The \texttt{fouridx} package\thanks{This file has version 
    \fileversion\ last revised \filedate.}}
\author{Stefan Karrmann\\\texttt{s.karrmann at web.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{39}
\begin{document}
 \DocInput{fouridx.dtx}
\end{document}
%</driver>
% \fi
%
% \changes{1.00}{2008/03/27}{Used leftidx.dtx as a template for the
%   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. This is done in such a way that
% the left and right subscripts and superscripts are set on the same line,
% respectivly.
% \end{abstract}
%
% \tableofcontents
%
% \section*{Copyright}
% Copyright 2007 Stefan Karrmann.
%
% 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*}
% \fourIdx{\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
% If the subscripts on the left and right side are of different height or
% the left subscripts and superscripts are of different width,
% the result is also unsatisfactory:
% 
% \noindent
% \begin{minipage}[c]{0.79\linewidth}
% \leavevmode\begin{verbatim}
% ${^{(k)}_n}A^x_{\overline x\vert}$
% \end{verbatim}
% \end{minipage}
% \begin{minipage}[c]{0.19\linewidth}
% ${^{(k)}_n}A^x_{\overline x\vert}$
% \end{minipage}
% 
% \noindent
% A better output can be reached by using the package |fouridx.sty|:
% 
% \noindent
% \begin{minipage}[c]{0.79\linewidth}
% \leavevmode\begin{verbatim}
% $\fourIdx{1}{2}{3}{4}{\left(\frac{1}{b}\right)}$
% \end{verbatim}
% \end{minipage}
% \begin{minipage}[c]{0.19\linewidth}
% $\fourIdx{1}{2}{3}{4}{\left(\frac{1}{b}\right)}$
% \end{minipage}
% 
% \noindent
% \begin{minipage}[c]{0.79\linewidth}
% \leavevmode\begin{verbatim}
% $\fourIdx{(k)}{n}{x}{\overline x\vert}A$
% \end{verbatim}
% \end{minipage}
% \begin{minipage}[c]{0.19\linewidth}
% $\fourIdx{(k)}{n}{x}{\overline x\vert}A$
% \end{minipage}
% 
% \section{Usage of the package}
% 
% One command is provided by the package.
% 
% \DescribeMacro{\fourIdx}%
% The \cs{fourIdx} command has the syntax
% \cs{fourIdx}\marg{left superscript}\marg{left subscript}%
% \marg{right superscript}\marg{right subscript}\marg{symbol}.
% 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}
% $\fourIdx1234{\left(\frac{1}{b}\right)}$
% \end{verbatim}
% \end{minipage}
% \begin{minipage}[c]{0.19\linewidth}
% $\fourIdx1234{\left(\frac{1}{b}\right)}$
% \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{\fourIdx1234{\left(\frac1b\right)}}%
% \begin{displaymath}
% \displaystyle\asdf\quad\textstyle\asdf\quad
% \scriptstyle\asdf\quad\scriptscriptstyle\asdf
% \end{displaymath}
% 
% \StopEventually{\PrintChanges \PrintIndex}
%
% \section{The implementation}
% \iffalse
%<*package>
% \fi
% Heading of the package:
%    \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesPackage{fouridx}[\filedate\space v\fileversion\space Four indices]
%    \end{macrocode}
% \begin{macro}{\fourIdx}
% \changes{1.00}{2008/03/27}{Implementation simplyfied}%
% Command for left indices.
%    \begin{macrocode}
\newcommand{\fourIdx}[5]{%
   \setbox1=\hbox{\ensuremath{^{#1}}}%
   \setbox2=\hbox{\ensuremath{_{#2}}}%
   \setbox5=\hbox{\ensuremath{#5}}%
   \hspace{\ifnum\wd1>\wd2\wd1\else\wd2\fi}%
   \ensuremath{\copy5^{\hspace{-\wd1}\hspace{-\wd5}#1\hspace{\wd5}#3}%
                     _{\hspace{-\wd2}\hspace{-\wd5}#2\hspace{\wd5}#4}%
}}
%    \end{macrocode}
% \end{macro}
%
% \iffalse
%</package>
% \fi
% \Finale
