mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-23 05:25:26 +00:00
Honor pending spaces in InsetMathChar::write
The InsetMathChar::write() method directly accesses the otexrowstream
underlying the TeXMathStream class for writing a character, thus
shortcircuiting the mechanism that allows to separate a macro from the
following material. It has to do so because directly writing a char_type
would cause printing its numerical value instead of the corresponding
unicode character in systems where char_type is typedef'd to uint32_t.
This problem has been uncovered by [7441172d/lyxgit] because each atom
of a mathed cell was being separately written to the output instead of
using the lyx::write() method in MathExtern.cpp that simply converts
everything to a docstring. As InsetMathChar::write() is the only method
bypassing the TeXMathStream machanism, it is simpler teaching it to
honor the pending space instead of modifying the code in InsetMathColor.
This commit amends 7441172d
.
This commit is contained in:
parent
889dac7def
commit
befe2da495
@ -195,6 +195,11 @@ void InsetMathChar::drawT(TextPainter & pain, int x, int y) const
|
|||||||
|
|
||||||
void InsetMathChar::write(TeXMathStream & os) const
|
void InsetMathChar::write(TeXMathStream & os) const
|
||||||
{
|
{
|
||||||
|
if (os.latex() && os.pendingSpace()) {
|
||||||
|
if (isAlphaASCII(char_))
|
||||||
|
os.os() << ' ';
|
||||||
|
os.pendingSpace(false);
|
||||||
|
}
|
||||||
os.os().put(char_);
|
os.os().put(char_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user