]> git.lyx.org Git - features.git/commitdiff
make sure language commands are the outermost ones when typesetting a paragraph ...
authorJean-Marc Lasgouttes <lasgouttes@lyx.org>
Tue, 28 Sep 2004 13:29:19 +0000 (13:29 +0000)
committerJean-Marc Lasgouttes <lasgouttes@lyx.org>
Tue, 28 Sep 2004 13:29:19 +0000 (13:29 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@9020 a592a061-630c-0410-9148-cb99ea01b6c8

src/ChangeLog
src/output_latex.C

index 94aa06131487945edf4020cc7e1f74c9a6ea05e5..c31f3fc607ced7837806ac9961b40dca1f59761f 100644 (file)
@@ -1,3 +1,9 @@
+2004-09-27  Jean-Marc Lasgouttes  <lasgouttes@lyx.org>
+
+       * output_latex.C (TeXOnePar): make sure font setting is the first
+       thing that gets output (and the last at the end). Should fix bug
+       1404.
+
 2004-09-26  Lars Gullik Bjonnes  <larsbj@gullik.net>
 
        * pch.h: use proper signal include
index cc4a7fb921323c3d69fe26a25c56f52fa4949930..f1fcc38d9671adc251650d3f156d881fe4858856 100644 (file)
@@ -223,38 +223,12 @@ TeXOnePar(Buffer const & buf,
        bool further_blank_line = false;
        LyXLayout_ptr style;
 
-       // well we have to check if we are in an inset with unlimited
-       // length (all in one row) if that is true then we don't allow
-       // any special options in the paragraph and also we don't allow
-       // any environment other then "Standard" to be valid!
-       if (!pit->forceDefaultParagraphs()) {
+       // In an an inset with unlimited length (all in one row),
+       // force layout to default
+       if (!pit->forceDefaultParagraphs()) 
                style = pit->layout();
-
-               if (pit->params().startOfAppendix()) {
-                       os << "\\appendix\n";
-                       texrow.newline();
-               }
-
-               if (!pit->params().spacing().isDefault()
-                       && (pit == paragraphs.begin()
-                           || !boost::prior(pit)->hasSameLayout(*pit)))
-               {
-                       os << pit->params().spacing().writeEnvirBegin() << '\n';
-                       texrow.newline();
-               }
-
-               if (style->isCommand()) {
-                       os << '\n';
-                       texrow.newline();
-               }
-
-               if (further_blank_line) {
-                       os << '\n';
-                       texrow.newline();
-               }
-       } else {
+       else
                style = bparams.getLyXTextClass().defaultLayout();
-       }
 
        Language const * language = pit->getParLanguage(bparams);
        Language const * doc_language = bparams.language;
@@ -298,6 +272,33 @@ TeXOnePar(Buffer const & buf,
                texrow.newline();
        }
 
+       // In an an inset with unlimited length (all in one row),
+       // don't allow any special options in the paragraph
+       if (!pit->forceDefaultParagraphs()) {
+               if (pit->params().startOfAppendix()) {
+                       os << "\\appendix\n";
+                       texrow.newline();
+               }
+
+               if (!pit->params().spacing().isDefault()
+                       && (pit == paragraphs.begin()
+                           || !boost::prior(pit)->hasSameLayout(*pit)))
+               {
+                       os << pit->params().spacing().writeEnvirBegin() << '\n';
+                       texrow.newline();
+               }
+
+               if (style->isCommand()) {
+                       os << '\n';
+                       texrow.newline();
+               }
+
+               if (further_blank_line) {
+                       os << '\n';
+                       texrow.newline();
+               }
+       } 
+
        switch (style->latextype) {
        case LATEX_COMMAND:
                os << '\\' << style->latexname();
@@ -387,6 +388,23 @@ paragraphs);
                }
        }
 
+       if (!pit->forceDefaultParagraphs()) {
+               further_blank_line = false;
+
+               if (further_blank_line) {
+                       os << '\n';
+                       texrow.newline();
+               }
+
+               if (!pit->params().spacing().isDefault()
+                       && (boost::next(pit) == paragraphs.end()
+                           || !boost::next(pit)->hasSameLayout(*pit)))
+               {
+                       os << pit->params().spacing().writeEnvirEnd() << '\n';
+                       texrow.newline();
+               }
+       }
+
        if (boost::next(pit) == const_cast<ParagraphList&>(paragraphs).end()
            && language->babel() != doc_language->babel()) {
                // Since \selectlanguage write the language to the aux file,
@@ -406,23 +424,6 @@ paragraphs);
                texrow.newline();
        }
 
-       if (!pit->forceDefaultParagraphs()) {
-               further_blank_line = false;
-
-               if (further_blank_line) {
-                       os << '\n';
-                       texrow.newline();
-               }
-
-               if (!pit->params().spacing().isDefault()
-                       && (boost::next(pit) == paragraphs.end()
-                           || !boost::next(pit)->hasSameLayout(*pit)))
-               {
-                       os << pit->params().spacing().writeEnvirEnd() << '\n';
-                       texrow.newline();
-               }
-       }
-
        // we don't need it for the last paragraph!!!
        // Note from JMarc: we will re-add a \n explicitely in
        // TeXEnvironment, because it is needed in this case