]> git.lyx.org Git - features.git/commitdiff
fix lyx->tex->lyx round trip problems
authorGeorg Baum <Georg.Baum@post.rwth-aachen.de>
Wed, 2 Feb 2005 12:40:50 +0000 (12:40 +0000)
committerGeorg Baum <Georg.Baum@post.rwth-aachen.de>
Wed, 2 Feb 2005 12:40:50 +0000 (12:40 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@9567 a592a061-630c-0410-9148-cb99ea01b6c8

src/tex2lyx/ChangeLog
src/tex2lyx/text.C

index 4d4b312a89dc00526a3c3a2b330007ce38ea9837..bc20ac68d56207151717877744c8da232257f4cb 100644 (file)
@@ -1,3 +1,8 @@
+2005-02-01  Georg Baum  <Georg.Baum@post.rwth-aachen.de>
+
+       * text.C (parse_text): Only reset font changes if not at the
+       beginning of a new layout
+
 2005-01-31  Angus Leeming  <leeming@lyx.org>
 
        * tex2lyx.C (main): enable tex2lyx to find the top level
index f25aee0e3f8362f271997b24c1038e7bbae309eb..5e886f4a6ca1e07c3c76f6ad5799e853f6014fda 100644 (file)
@@ -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