Both QTextLine::naturalTextWidth() and QTextLine::horizontalAdvance()
return the same value for \fint. However, examining esint10.ttf with
fontforge does not reveal any issue with the metrics. The fact that
\fint seems to be the only affected symbol might be due to its code
point, which corresponds to a space, so that maybe Qt makes some
assumptions on the metrics.
As QTextLine::naturalTextWidth() returns the width of the line that is
occupied by text, in the case of a single symbol we can obtain the
same value by using the width of the rectangle bounding the symbol.
Thanks to Jürgen, who mentions the following:
luaotfload does not find "DavidCLM". In fact, at least on my system,
there is no such font, only "DavidCLM Medium" (and other shapes). This
one is found. Apparently, luaotfload cannot infer from the one to the
other.
As opposed to LuaTEX, XeTeX also queries TEXMF so maybe it just finds
its font there.
In many cases, round trip with older formats involves exporting ERT
or preamble code in the backwards conversion. In the forwards
conversion, if this code is not parsed, often errors can result.
However, in many cases, especially for older formats, it might not
be worth the time or code complexity to address these cases. Such
tests are labled "ertroundtrip".
This commit also inverts a currently failing lyx22x test under the
label "ertroundtrip" since the above paragraph is my best guess as
to why that test is failing. It is likely not worth the time to fix
it, especially since the APA7 layout wasn't even shipped for LyX
2.2.x.
This extra spacing was missing and is important for detecting extra
par breaks before equations (which are most of the times not wanted).
To do that, add a new member vmode to MetricsInfo which is equivalent
to LaTeX's \ifvmode (start of paragraph).
If in vmode, add the equivalent of an empty line before a display math inset.
At the same time, tweak value of \(above|below)displayskip, which was
12pt, whereas LaTeX uses 10pt in 10pt size (our reference).
Fixes bug #11891.
Fix bug where selecting in first paragraph gave an end of selection on
wrong row.
Since pm.ascent() may contain the top margin, it makes sense in
setCursorFromCoordinates() to use the ascent of the front row instead,
like was none in907f0207 for getPitAndRowNearY().