From b1cc3aad8644244062fe9aa28f203a28a8b430fd Mon Sep 17 00:00:00 2001 From: Georg Baum Date: Wed, 2 Feb 2005 12:40:50 +0000 Subject: [PATCH] fix lyx->tex->lyx round trip problems git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@9567 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/tex2lyx/ChangeLog | 5 ++++ src/tex2lyx/text.C | 53 ++++++++++++++++++++++++++----------------- 2 files changed, 37 insertions(+), 21 deletions(-) diff --git a/src/tex2lyx/ChangeLog b/src/tex2lyx/ChangeLog index 4d4b312a89..bc20ac68d5 100644 --- a/src/tex2lyx/ChangeLog +++ b/src/tex2lyx/ChangeLog @@ -1,3 +1,8 @@ +2005-02-01 Georg Baum + + * text.C (parse_text): Only reset font changes if not at the + beginning of a new layout + 2005-01-31 Angus Leeming * tex2lyx.C (main): enable tex2lyx to find the top level diff --git a/src/tex2lyx/text.C b/src/tex2lyx/text.C index f25aee0e3f..5e886f4a6c 100644 --- a/src/tex2lyx/text.C +++ b/src/tex2lyx/text.C @@ -995,37 +995,48 @@ void parse_text(Parser & p, ostream & os, unsigned flags, bool outer, ; // ignore it in {}`` or -{}- else if (s == "[" || s == "]" || s == "*") os << s; - else if (is_known(next.cs(), known_sizes)) + else if (is_known(next.cs(), known_sizes)) { // s will change the size, so we must reset // it here - os << s << "\n\\size " << context.font.size - << "\n"; - else if (is_known(next.cs(), known_font_families)) + os << s; + if (!context.atParagraphStart()) + os << "\\n\\size " + << context.font.size << "\n"; + } else if (is_known(next.cs(), known_font_families)) { // s will change the font family, so we must // reset it here - os << s << "\n\\family " - << context.font.family << "\n"; - else if (is_known(next.cs(), known_font_series)) + os << s; + if (!context.atParagraphStart()) + os << "\n\\family " + << context.font.family << "\n"; + } else if (is_known(next.cs(), known_font_series)) { // s will change the font series, so we must // reset it here - os << s << "\n\\series " - << context.font.series << "\n"; - else if (is_known(next.cs(), known_font_shapes)) + os << s; + if (!context.atParagraphStart()) + os << "\n\\series " + << context.font.series << "\n"; + } else if (is_known(next.cs(), known_font_shapes)) { // s will change the font shape, so we must // reset it here - os << s << "\n\\shape " - << context.font.shape << "\n"; - else if (is_known(next.cs(), known_old_font_families) || - is_known(next.cs(), known_old_font_series) || - is_known(next.cs(), known_old_font_shapes)) + os << s; + if (!context.atParagraphStart()) + os << "\n\\shape " + << context.font.shape << "\n"; + } else if (is_known(next.cs(), known_old_font_families) || + is_known(next.cs(), known_old_font_series) || + is_known(next.cs(), known_old_font_shapes)) { // s will change the font family, series // and shape, so we must reset it here - os << s - << "\n\\family " << context.font.family - << "\n\\series " << context.font.series - << "\n\\shape " << context.font.shape - << "\n"; - else { + os << s; + if (!context.atParagraphStart()) + os << "\n\\family " + << context.font.family + << "\n\\series " + << context.font.series + << "\n\\shape " + << context.font.shape << "\n"; + } else { handle_ert(os, "{", context, false); // s will end the current layout and begin a // new one if necessary -- 2.39.2