This is an extendion of m_goldberg's answer.
Create the following fraction (Esc pi Esc ctrl-/2)
[![enter image description here][1]][1]
[1]: https://i.sstatic.net/8FT3U.jpg
in your notebook and paste it into the text for the tick label. Then wrap the text in `Style` and make it size 18. When it shrinks in the grid you will approximately the same size for all of the tick labels.
cp = ContourPlot[x^2 + y^2, {x, 0, \[Pi]}, {y, -\[Pi], \[Pi]},
FrameTicks -> {{{{-\[Pi]/2,
Style["\!\(\*FractionBox[\(-\[Pi]\), \(2\)]\)", 18]},
0, {\[Pi]/2,
Style["\!\(\*FractionBox[\(\[Pi]\), \(2\)]\)", 18]}},
None}, {None, None}},
FrameTicksStyle -> {Directive[14], Directive[14]}];
and then
Grid[{{cp, cp}, {cp, cp}}]

This is a fair amount of work. If you are doing this a great deal you will probably need to automate it.