The following patch gives better horizontal alignment of the \not symbol. The patch is against my previous mathed patch.
--- math_symbolinset.C~ 2002-10-16 21:12:13.000000000 +0200 +++ math_symbolinset.C 2002-10-16 21:14:53.000000000 +0200 @@ -57,7 +57,13 @@ void MathSymbolInset::metrics(MathMetric dim_.d -= h_; } double const zoom = lyxrc.zoom/100.0; - if (isRelOp()) + // seperate things a bit + + if (name() == "not") + // \not is a special case. + // It must have 0 width to align properly with the next symbol. + dim_.w = 0; + else if (isRelOp()) dim_.w += static_cast<int>(5*zoom+0.5); else dim_.w += static_cast<int>(1.5*zoom+0.5); @@ -76,6 +82,8 @@ void MathSymbolInset::draw(MathPainterIn // << "' drawn as: '" << sym_->draw // << "'\n"; double const zoom = lyxrc.zoom/100.0; + // Here we don't need a special case for \not, as it needs the same + // increase in x as the next symbol. if (isRelOp()) x += static_cast<int>(2.5*zoom+0.5); else