%% %% 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'.