% Author: Alexey Shipunov, dactylorhiza@gmail.com

\ProvidesPackage{flower}%
        [2019/10/03 v1.31 Typesetting botanical sings]

% 20191002 symmetry signs are now 'mathpunct', to ensure space after them

% Fonts `wasy' required
\DeclareRobustCommand\wasyfamily
        {\fontencoding{U}\fontfamily{wasy}\selectfont}
\DeclareSymbolFont{WASY}{U}{wasy}{m}{n}
\SetSymbolFont{WASY}{bold}{U}{wasy}{bx}{n}

% SIGNS BEFORE FORMULA
% Male
\DeclareMathSymbol{\Mal}{\mathord}{WASY}{"1A}
% Female
\DeclareMathSymbol{\Fem}{\mathord}{WASY}{"19}
% Hermafroditic
\def\Herm{\mbox{\ensuremath{\Mal}\kern-.82em\lower.27ex\hbox{\ensuremath{\Fem}}\kern.2em}}
% Asymmetry
\DeclareMathSymbol{\Asx}{\mathpunct}{WASY}{"12}
% Actinomorphy
\DeclareMathSymbol{\Act}{\mathpunct}{WASY}{"42}
% Zygomorphy
\DeclareMathSymbol{\Zyg}{\mathpunct}{symbols}{"22}

% NEW SYMMETRY SIGNS FROM Prenner et al., 2010
% Median monosymmetry (downwards arrow; Unicode: 2193): \downarrow
% Transverse monosymmetry (sidewards arrow; Unicode: 2192): \rightarrow
% Oblique monosymmetry (Latin capital letter O with stroke; Unicode: 00D8): \O
% Polysymmetry (asterisk): \Act
% Asymmetry (partial differential; Unicode 2202): \partial
% Obdiplostemonous / obhaplostemonous androecium (followed by "left right arrow"; Unicode 2194): \leftrightarrow
% Resupination (registered sign; Unicode 00AE): \textregistered
% Disymmetry (box drawings light vertical and horizontal; Unicode 253C):
\def\DS{\mbox{\lower.2ex\hbox{\rule{.4pt}{1.55ex}}\kern-.17em\lower-.5ex\hbox{\rule{.3em}{.4pt}}\kern.2em}}

% FLORAL UNITS
% Perianth
\def\P#1{\mathrm{\PName}_{#1}}
% Calyx
\def\K#1{\mathrm{\KName}_{#1}}
% Corolla
\def\C#1{\mathrm{\CName}_{#1}}
% Androceum
\def\A#1{\mathrm{\AName}_{#1}}
% Gynoeceum
\def\G#1{\mathrm{\GName}_{#1}}
% Exterior ovary = hypogynous flower: $\Ge(2)$ or $\Ge{(2)}$
\def\Ge{\@ifnextchar(\Ge@B{\Ge@@}}
        \def\Ge@B(#1){\mathrm{\GName}_{(\underline{#1})}}
        \def\Ge@@#1{\mathrm{\GName}_{\underline{#1}}}
% Hemiinferior ovary = hemiepigynous flower
\def\Gm{\@ifnextchar(\Gm@B{\Gm@@}}
        \def\Gm@B(#1){\mathrm{\GName}_{\hbox{-}(#1)\hbox{-}}}
        \def\Gm@@#1{\mathrm{\GName}_{\hbox{-}#1\hbox{-}}}
% Inferior ovary = epigynous flower
\def\Gi{\@ifnextchar(\Gi@B{\Gi@@}}
        \def\Gi@B(#1){\mathrm{\GName}%
                \raise.25ex\hbox{$_{\scriptstyle(\overline{#1})}$}}
        \def\Gi@@#1{\mathrm{\GName}%
                \raise.25ex\hbox{$_{\scriptstyle\overline{#1}}$}}
% Non-trivial floral units
\def\?#1#2{\ensuremath{\mathrm{#1}_{#2}}}

% For redefinition:
\def\PName{P}
\def\KName{K}
\def\CName{C}
\def\AName{A}
\def\GName{G}

% FLOWER OPERATION NAMES (Shipunov, unpubl.)
% Fixation
\newcommand{\Fix}{\mathop{\mathrm{Fix}}\nolimits}
% Reduction
\newcommand{\Red}{\mathop{\mathrm{Red}}\nolimits}
% Connation
\newcommand{\Con}{\mathop{\mathrm{Con}}\nolimits}
% Differentiation
\newcommand{\Dif}{\mathop{\mathrm{Dif}}\nolimits}
% Homeosis
\newcommand{\Mov}{\mathop{\mathrm{Mov}}\nolimits}

% PLANT LIFE FORMS
% Annuals
\def\Mon{\mbox{\textcircled{\lower.1ex\hbox{$\cdot$}}}}
% Biennials
\def\Bin{\mbox{\textcircled{\lower.1ex\hbox{$\cdot\mkern-1mu\cdot$}}}}
% Perennials
\def\Per{{\wasyfamily\char"58}}
% Shrubs
\def\Shrub{{\wasyfamily\char"59}}
% Trees
\def\Tree{{\wasyfamily\char"59}\kern-.58em\lower-.65ex\hbox{-}\kern.15em}

\endinput
