I'm a newbie to Maxima and I'm finding the tool very useful. One of the more common use-cases for me is the validation of expressions given in academic texts. Take this as an example:

This is a transfer function written in a pretty standard format. Notice how the squared term in the denominator appears by itself. Fair enough.
So, I go about building this expression in pieces and my expectation is to compare results at the end. It helps then if the expressions are displayed using a common format. So, I'm trying to get my result to have the same normalized format as the expression in the book.
In this case, I do the following:
(%i10) F(s):=(1+s*tau_2)/(1+s*(tau_1+tau_2));
(%o10) F(s):=(1+s*tau_2)/(1+s*(tau_1+tau_2))
(%i13) H(s):=(K_0*K_d*F(s))/(s+((K_0*K_d*F(s)/N)));
(%o13) H(s):=(K_0*K_d*F(s))/(s+(K_0*K_d*F(s))/N)
(%i81) H_1(s):=ratsimp(H(s),s);
(%o81) H_1(s):=ratsimp(H(s),s)
(%i82) H_1(s);
(%o82) (K_0*K_d*N*s*tau_2+K_0*K_d*N)/(s^2*(N*tau_2+N*tau_1)+s*(K_0*K_d*tau_2+N)+K_0*K_d)
Which is very close. But, I've tried a few different ways of dividing across the expression by N*(tau_1 + tau_2) to leave s^2 without a coefficient and none worked. Is there an easy way to solve this?
UPDATE: Some options I've tried:
--> divthru(e,d):=map(lambda([u], multthru(u,d)),e); /* map applies function f() to each subpart of expr*/
(%o164) divthru(e,d):=map(lambda([u],multthru(u,d)),e)
--> divthru(H_1(s), 1/(N*tau_2+N*tau_1));
(%o165) (K_0*K_d*N*s*tau_2+K_0*K_d*N)/(s^2*(N*tau_2+N*tau_1)+s*(K_0*K_d*tau_2+N)+K_0*K_d)
(%i35) matchdeclare([A,B,C,D],all);
(%o35) done
(%i26) defmatch(isDefPoly, A/(s^2*B+s*C+D), x);
(%o26) isDefPoly
(%i27) isDefPoly(H_1(s),s);
(%o27) [A=K_0*K_d*N*s*tau_2+K_0*K_d*N,D=K_0*K_d,B=N*tau_2+N*tau_1,C=K_0*K_d*tau_2+N,x=s]
(%i36) tellsimpafter(A/(s^2*B+s*C+D), (A/B)/(s^2+(s*C)/B+D/B));
(%o36) [\*rule1,simptimes]
