I'm afraid there is no convenient way to do what you want.
If you can't manage to get the desired result using 'LabelSpacing'
, there is probably no other easy way to achieve properly set labels automatically and reliable.
I'd recommend to do it manually:
[C,h] = contour(X,Y,Z,obj_Z);
t = clabel(C,h,'manual','LabelSpacing',2000,'FontSize',8)
when now the figure window pops up, a crosshair appears and you can click on every single contour line to exactly specify where to place the label. With some practice you get it done quite fast.
I hope you don't have a hundreds of plots like this ;)
Just prepare everything before you print your final plot and set it to 'manual'
as a last step.