Q:

how to stop underscores from disappearing in xterm in xvnc4 window in Xubuntu 16.04?

In an xterm running in an xvnc4 session in Xubuntu 16.04, i.e., Ubuntu 16.04 with XFCE, underscore characters disappear.  This problem does not appear in Xubuntu 14.04.  My question is: how to avoid this?  If there's an underscore, I need it to be visible.
In an ordinary X11 window using the same machine as an X11 server, underscores appear normal.  (Odd, eh?)
I looked at the actual characters being sent to the terminal, using the xterm '-l' (logging) feature, and then viewing the log in emacs (using the same font, dejavu).  It turns out that the underscore character is sent to the terminal, just as it is, so I don't think this is some kind of terminfo issue.  The character just doesn't show up in the terminal window -- and the disappearance only occurs in Xvnc.  In an Emacs running in the same Xvnc window, the underscore character shows up, but it's gray instead of black; I don't know why.
As a side issue that arose solely on account of my need to fix the above problem, I'm having trouble trying different fonts with xterm.  If I specify no font at all, i.e., if I specify no '-fa' option when launching xterm, the default font shows the underscores.  However, the default character size is too small for my aging eyes, and -fs (font size) has no effect if there's no -fa.  Other fonts give other results, all unsatisfactory; most TTF fonts are weirdly spaced, for example.
We ordinarily use a combination of xterm's features; for us a typical invocation is: /usr/bin/xterm -fg black -bg wheat -cr red -ah -bc -l -sl 10000 -sb -si -fa dejavu -fs 10

A:

You might have to tweak the scaleHeight resource to work around incorrectly-constructed font files. If their declared size is a little smaller than the actual, then successive lines of text will overlap (and underlining will be lost).
Just to experiment with this, I'd try setting it to 1.1, e.g.,
/usr/bin/xterm -fg black -bg wheat -cr red -ah -bc -l -sl 10000 -sb -si -fa dejavu -fs 10 -xrm '*scaleHeight: 1.1'

xterm uses clipping to get past the usual problems here, but some fonts are worse than others.

