]> git.lyx.org Git - lyx.git/blobdiff - src/output_latex.C
fix typo
[lyx.git] / src / output_latex.C
index cc4a7fb921323c3d69fe26a25c56f52fa4949930..b50748dd5274fb6c56fdf75f48613165a387142f 100644 (file)
@@ -18,6 +18,7 @@
 #include "encoding.h"
 #include "language.h"
 #include "lyxrc.h"
+#include "outputparams.h"
 #include "paragraph.h"
 #include "paragraph_funcs.h"
 #include "ParagraphParameters.h"
@@ -214,7 +215,7 @@ TeXOnePar(Buffer const & buf,
          ParagraphList const & paragraphs,
          ParagraphList::const_iterator pit,
          ostream & os, TexRow & texrow,
-         OutputParams const & runparams,
+         OutputParams const & runparams_in,
          string const & everypar)
 {
        lyxerr[Debug::LATEX] << "TeXOnePar...     " << &*pit << " '"
@@ -223,38 +224,15 @@ 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();
-       }
+
+       OutputParams runparams = runparams_in;
+       runparams.moving_arg |= style->needprotect;
 
        Language const * language = pit->getParLanguage(bparams);
        Language const * doc_language = bparams.language;
@@ -298,6 +276,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 +392,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 +428,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