\documentclass{article}
\usepackage{etoolbox}
\usepackage{pgf}
\usepackage{amsmath}
\usepackage{xcolor}
\let\OldFrac\frac
\newtoggle{EncouteredFrac}
\newcommand{\Neumerator}{}%
\newcommand{\Denominator}{}%
\newsavebox\ExpresionBox
\newcommand\pluss[1]{%
\renewcommand{\frac}[2]{%
\global\toggletrue{EncouteredFrac}%
\xdef\Neumerator{##1}%
\xdef\Denominator{##2}%
}%
\global\togglefalse{EncouteredFrac}%
\sbox\ExpresionBox{\ensuremath{#1}}% set EncountredFraction
%
\iftoggle{EncouteredFrac}{%
\renewcommand{\frac}[2]{(##1 / ##2)}%
\pgfmathsetmacro{\Var}{#1}%
\pgfmathtruncatemacro{\AbsNeumerator}{abs(\Neumerator)}%
\pgfmathtruncatemacro{\AbsDenominator}{abs(\Denominator)}%
\pgfmathparse{ifthenelse(\Var>=0,"+","-")}%
\pgfmathresult\OldFrac{\AbsNeumerator}{\AbsDenominator}%
}{%
\pgfmathsetmacro{\Var}{#1}%
\pgfmathsetmacro{\AbsVar}{abs(\Var)}%
\pgfmathparse{ifthenelse(\Var>=0,"+","-")}%
\pgfmathresult\AbsVar%
}%
}%
\newcommand{\A}{15.2}
\newcommand{\PositiveNumber}{3.1}
\newcommand{\NegativeNumber}{-3.1}
\newcommand{\PositiveFracA}{\frac{1}{2}}
\newcommand{\PositiveFracB}{\frac{-1}{-2}}
\newcommand{\NegativeFracA}{\frac{-3}{4}}
\newcommand{\NegativeFracB}{\frac{3}{-4}}
\newcommand{\Note}{\textcolor{red}{$\ast$}}%
\newcommand{\Test}[2]{$#1~\text{\texttt{\textbackslash pluss}} {#2} \to #1 \pluss{#2}$}%
\begin{document}
\section*{These work}
\par\noindent
\textit{Numbers:}\par
\Test{\A}{3.1}\par
\Test{\A}{-3.1}
\bigskip\par\noindent
\textit{Macros:}\par
\Test{\A}{\PositiveNumber}\par
\Test{\A}{-\PositiveNumber} \Note\quad Subtract a postive number\par
\Test{\A}{\NegativeNumber} \Note\quad Add a negative number\par
\Test{\A}{-\NegativeNumber} \Note\quad Subtract a negative number\par
\bigskip\par\noindent
\textit{Add a positive frac:}\par
\Test{\A}{\PositiveFracA}\medskip\par
\Test{\A}{\PositiveFracB}
\bigskip\par\noindent
\textit{Add a negative frac:}\par
\Test{\A}{\NegativeFracA}\medskip\par
\Test{\A}{\NegativeFracB}
%----------------------------------
\bigskip\par\noindent
\textit{Subtract a positive frac:}\par
\Test{\A}{-\PositiveFracA}\medskip\par
\Test{\A}{-\PositiveFracB}
\bigskip\par\noindent
\textit{Subtract a negative frac:}\par
\Test{\A}{-\NegativeFracA}\medskip\par
\Test{\A}{-\NegativeFracB}
\end{document}
\frac{-3}{4}in the\Bmacro, or would it be OK to state it as-\frac{3}{4}? Could a minus sign be tucked away in the denominator as well? – Mico Jun 30 '12 at 00:171 \pplus{1-2}allowed? – Caramdir Jun 30 '12 at 00:54$$. – Caramdir Jun 30 '12 at 00:57