MonomialOrder => {n_1, ..., n_l} divides the variables of the ring into
l blocks, the first block consisting of the first
n_1 variables, the second block consisting of the subsequent
n_2 variables, and so on. For each block of variables, we can compute the total degree of a monomial with respect to the variables in that block. This gives a length
l vector of total degrees for each monomial. We say x^A > x^B if the total degree vector of x^A is lexicographically greater than the total degree vector of x^B, or if the two total degree vectors are equal and if in the first block of variables where A and B differ, A > B in GRevLex order.
i1 : R = QQ[a..l, MonomialOrder => {3,3,3,3}];

i2 : a*e^3 + a^2*c*i + a*b^2*i + b^2*e*i
2 2 2 3
o2 = a*b i + a c*i + b e*i + a*e
o2 : R

We may replace
MonomialOrder => {3,3,3,3} with the shorter
MonomialOrder => {4:3}
The default GRevLex order on any block may be changed to other orders, as follows.
i3 : R = QQ[a..i, MonomialOrder => {Lex =>3,3:1,3}];

i4 : a*e^3 + a^2*c*i + a*b^2*i + b^2*e*i + d^2*f*h + d*e^2*h
2 2 3 2 2 2
o4 = a c*i + a*b i + a*e + b e*i + d f*h + d*e h
o4 : R

Note:
Weights and
Eliminate do not create blocks, they only assign weights to the variables.