char const * const known_sizes[] = { "tiny", "scriptsize", "footnotesize",
"small", "normalsize", "large", "Large", "LARGE", "huge", "Huge", 0};
-/// the same as known_sizes with .lyx names
+/// the same as known_sizes with .lyx names plus a default entry
char const * const known_coded_sizes[] = { "default", "tiny", "scriptsize", "footnotesize",
"small", "normal", "large", "larger", "largest", "huge", "giant", 0};
eat_whitespace(p, os, context, true);
}
+ // Starred section headings
// Must attempt to parse "Section*" before "Section".
else if ((p.next_token().asInput() == "*") &&
context.new_layout_allowed &&
- // The single '=' is meant here.
(newlayout = findLayout(context.textclass, t.cs() + '*')) &&
- newlayout->isCommand()) {
+ newlayout->isCommand()) {
+ TeXFont const oldFont = context.font;
+ // save the current font size
+ string const size = oldFont.size;
+ // reset the font size to default, because the font size switches don't
+ // affect section headings and the like
+ context.font.size = known_coded_sizes[0];
+ output_font_change(os, oldFont, context.font);
+ // write the layout
p.get_token();
output_command_layout(os, p, outer, context, newlayout);
+ // set the font size to the original value
+ context.font.size = size;
+ output_font_change(os, oldFont, context.font);
p.skip_spaces();
}
- // The single '=' is meant here.
+ // Section headings and the like
else if (context.new_layout_allowed &&
(newlayout = findLayout(context.textclass, t.cs())) &&
newlayout->isCommand()) {
+ TeXFont const oldFont = context.font;
+ // save the current font size
+ string const size = oldFont.size;
+ // reset the font size to default, because the font size switches don't
+ // affect section headings and the like
+ context.font.size = known_coded_sizes[0];
+ output_font_change(os, oldFont, context.font);
+ // write the layout
output_command_layout(os, p, outer, context, newlayout);
+ // set the font size to the original value
+ context.font.size = size;
+ output_font_change(os, oldFont, context.font);
p.skip_spaces();
}