Is there a way, or if not, how could one define a function which takes an equation in any form (for example as given by FullSimplify):
$$(A+X_0) x+By=3x$$
and rearranges it in the more compact and tidy form:
$$(A+X_0-3) x+By=0$$
ClearAll[a, b, c, d, x, y] expr = a x + b y + c x == d x; You can use any of
Collect[(expr /. Equal -> Subtract) == 0, x] Collect[Subtract @@ expr == 0, x] FullSimplify[(expr /. Equal -> Subtract) ] == 0 FullSimplify[Subtract @@ expr] == 0 to get
(* (a + c - d) x + b y == 0 *) Alternatively, use a custom ComplexityFunction that makes non-zero expressions on the right-hand-side of == more expensive:
cf[e_] := 100 Count[e, Equal[_, Except[0, _]], {0, Infinity}] + LeafCount[e] FullSimplify[expr, ComplexityFunction -> cf] (* (a + c - d) x + b y == 0 *) Update: In versions 11.3+, you can use the function SubtractSides:
FullSimplify /@ SubtractSides[expr] (a + c - d) x + b y == 0
FullSimplify / @ SubtractSides[expr] can not run. Syntax: "FullSimplify cannotbe followedby@SubtractSide $\{$ expr']. $\endgroup$