%%
%% This is file `bropd.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% bropd.dtx 
%% 
%% Copyright 2014 by Benjamin Tatlock
%% 
%% This work 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
%% 2005/12/01 or later.
%% 
%% This work has the LPPL maintenance status `maintained'.
%% 
%% The Current Maintainer of this work is Benjamin Tatlock.
%% 
%% This work consists of the file bropd.dtx and the derived files bropd.sty and
%% bropd.pdf.
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{bropd}
[2014/10/14 1.2 automated typing of brackets and differential operators]
\newif\if@bropd@a\newif\if@bropd@b\newif\if@bropd@s\newif\if@bropd@u
\newcounter{@bropd@c}\newcounter{@bropd@d}
\newcounter{@bropd@e}\newcounter{@bropd@f}
\DeclareOption{pdshort}{\@bropd@atrue\@bropd@ufalse}
\DeclareOption{pdalt}{\@bropd@atrue\@bropd@utrue}
\DeclareOption{sans}{\@bropd@strue}\ProcessOptions
\def\@bropd@t{!}
\def\@bropd@g#1#2#3#4{\def\@bropd@h{#1}
\ifx\@bropd@o\@bropd@t\let\@bropd@o\empty\fi
\ifx\@bropd@h\empty
\setcounter{@bropd@c}0\setcounter{@bropd@d}1
\let\@bropd@h\empty
\@for\@bropd@i:=#3\do{\stepcounter{@bropd@c}}
\frac{#4\ifnum\value{@bropd@c}>1
^{\arabic{@bropd@c}}\fi\@bropd@o}
{\@for\@bropd@i:=#3\do{
\ifx\@bropd@i\@bropd@h
\stepcounter{@bropd@d}
\else
\@bropd@h
\ifnum\value{@bropd@d}>1
^{\arabic{@bropd@d}}
\fi
#4\setcounter{@bropd@d}1
\fi
\let\@bropd@h\@bropd@i}
\@bropd@h
\ifnum\value{@bropd@d}>1
^{\arabic{@bropd@d}}\fi}
\else
\frac{#4^{#1}\@bropd@o}{#4\noexpand#3^{#1}}
\fi}
\def\@bropd@j#1{\setcounter{@bropd@f}0
\begingroup\renewcommand{\br}[1]{\stepcounter{@bropd@e}##1
\ifnum\value{@bropd@e}>\value{@bropd@f}
\setcounter{@bropd@f}{\value{@bropd@e}}
\fi
\addtocounter{@bropd@e}{-1}}\sbox0{$#1$}\endgroup
\loop
\ifnum\value{@bropd@f}>2
\addtocounter{@bropd@f}{-3}
\repeat
\ifnum\value{@bropd@f}>0
\ifnum\value{@bropd@f}>1
\def\@bropd@k{\left\lbrace#1\right\rbrace}
\else
\def\@bropd@k{\left[#1\right]}
\fi
\else
\def\@bropd@k{\left(#1\right)}
\fi}
\if@bropd@a
\let\@bropd@l\empty
\newcommand\br[1]{\let\@bropd@m\@bropd@l
\@bropd@j{\let\@bropd@l\empty#1\let\@bropd@l\@bropd@m}
\ifx\@bropd@l\empty
\def\@bropd@n{\@bropd@k}
\else
\let\@bropd@m\@bropd@l
\def\@bropd@n{\@bropd@k_{\@bropd@m}}
\fi
\let\@bropd@l\empty
\@bropd@n}
\if@bropd@u
\def\@bropd@q#1#2#3{\def\@bropd@h{#1}
\ifx\@bropd@h\empty
\@bropd@bfalse
\else
\if!\ifnum9<1#1!\else_\fi
\@bropd@bfalse
\else
\@bropd@btrue
\fi
\fi
\ifx\@bropd@o\@bropd@t
\@bropd@btrue\let\@bropd@o\empty
\fi
\if@bropd@b\@bropd@g{#1}\@bropd@o{\noexpand#3}\partial
\else
\partial_{\ifx\@bropd@h\empty
\@for\@bropd@i:=#3\do\@bropd@i\else\setcounter{@bropd@c}0
\loop
\ifnum\value{@bropd@c}<#1
#3\stepcounter{@bropd@c}
\repeat
\fi}
\@bropd@o
\fi}
\else
\def\@bropd@q#1#2#3{\def\@bropd@h{#1}
\ifx\@bropd@h\empty
\@bropd@bfalse
\else
\if!\ifnum9<1#1!\else_\fi
\@bropd@bfalse
\else
\@bropd@btrue
\fi
\fi
\ifx\@bropd@o\@bropd@t
\@bropd@btrue\let\@bropd@o\empty
\fi
\if@bropd@b\@bropd@g{#1}\@bropd@o{\noexpand#3}\partial
\else
\def\@bropd@p{\ifx\@bropd@h\empty
\@for\@bropd@i:=#3\do\@bropd@i\else\setcounter{@bropd@c}0
\loop
\ifnum\value{@bropd@c}<#1
#3\stepcounter{@bropd@c}
\repeat
\fi}
\ifx\@bropd@o\empty
\let\@bropd@l\@bropd@p\else{\@bropd@o}{_{\@bropd@p}}\fi\fi}
\fi
\else
\def\@bropd@q#1#2#3{\@bropd@g{#1}{#2}{\noexpand#3}\partial}
\newcommand\br[1]{\@bropd@j{#1}\@bropd@k}
\fi
\newcommand\pd[3][]{\def\@bropd@o{#2}
\ifx\@bropd@o\empty
\let\@bropd@v\br
\else
\let\@bropd@v\empty
\fi
\@bropd@q{#1}{#2}{#3}\@bropd@v}
\if@bropd@s
\def\@bropd@r{\mathsf d}
\else
\def\@bropd@r{\mathrm d}
\fi
\newcommand\od[3][]{\def\@bropd@h{#1}
\frac{\@bropd@r\ifx\@bropd@h\empty\else^{#1}\fi#2}
{\@bropd@r#3\ifx\@bropd@h\empty\else^{#1}\fi}}
\endinput
%%
%% End of file `bropd.sty'.