#include "Lexer.h"
#include "MetricsInfo.h"
#include "output_xhtml.h"
+#include "texstream.h"
#include "frontends/FontMetrics.h"
#include "frontends/Painter.h"
}
if (dim.wid == 0)
dim.wid = fm.width(s);
-
- setDimCache(mi, dim);
}
// helper function: draw text and update x.
void drawChar(PainterInfo & pi, int & x, int const y, char_type ch)
{
- pi.pain.text(x, y, ch, pi.base.font);
- x += theFontMetrics(pi.base.font).width(ch);
+ FontInfo font = pi.base.font;
+ font.setPaintColor(pi.textColor(font.realColor()));
+ pi.pain.text(x, y, ch, font);
+ x += theFontMetrics(font).width(ch);
}
}
-// In lyxf3 this will be just LaTeX
void InsetSpecialChar::write(ostream & os) const
{
string command;
}
-// This function will not be necessary when lyx3
void InsetSpecialChar::read(Lexer & lex)
{
lex.next();
os << "\\-";
break;
case LIGATURE_BREAK:
- os << "\\textcompwordmark{}";
+ os << "\\textcompwordmark" << termcmd;
break;
case END_OF_SENTENCE:
os << "\\@.";
break;
case LDOTS:
- os << "\\ldots{}";
+ os << "\\ldots" << termcmd;
break;
case MENU_SEPARATOR:
if (rp.local_font->isRightToLeft())
- os << "\\lyxarrow*{}";
+ os << "\\lyxarrow*";
else
- os << "\\lyxarrow{}";
+ os << "\\lyxarrow";
+ os << termcmd;
break;
case SLASH:
- os << "\\slash{}";
+ os << "\\slash" << termcmd;
break;
case NOBREAKDASH:
if (rp.moving_arg)
case PHRASE_LYX:
if (rp.moving_arg)
os << "\\protect";
- os << "\\LyX{}";
+ os << "\\LyX" << termcmd;
break;
case PHRASE_TEX:
if (rp.moving_arg)
os << "\\protect";
- os << "\\TeX{}";
+ os << "\\TeX" << termcmd;
break;
case PHRASE_LATEX2E:
if (rp.moving_arg)
os << "\\protect";
- os << "\\LaTeXe{}";
+ os << "\\LaTeXe" << termcmd;
break;
case PHRASE_LATEX:
if (rp.moving_arg)
os << "\\protect";
- os << "\\LaTeX{}";
+ os << "\\LaTeX" << termcmd;
break;
}
}
}
+bool InsetSpecialChar::isChar() const
+{
+ return kind_ != HYPHENATION || kind_ != LIGATURE_BREAK;
+}
+
+
bool InsetSpecialChar::isLetter() const
{
return kind_ == HYPHENATION || kind_ == LIGATURE_BREAK