]> git.lyx.org Git - lyx.git/blobdiff - src/Paragraph.cpp
Add empty line after last \bibitem in bibliography (#12041)
[lyx.git] / src / Paragraph.cpp
index aa6bd303041cf15c7674667c7d98196e1ad98e1d..5930cb86a8dd57f6e3417b5dba96140d37656254 100644 (file)
@@ -865,6 +865,7 @@ int Paragraph::eraseChars(pos_type start, pos_type end, bool trackChanges)
        return end - i;
 }
 
+
 // Handle combining characters
 int Paragraph::Private::latexSurrogatePair(BufferParams const & bparams,
                otexstream & os, char_type c, char_type next,
@@ -1235,7 +1236,7 @@ void Paragraph::Private::latexSpecialChar(otexstream & os,
                    && !runparams.inIPA
                        // TODO #10961: && not in inset Flex Code
                        // TODO #10961: && not in layout LyXCode
-                   && (!bparams.useNonTeXFonts || runparams.flavor != OutputParams::XETEX)) {
+                   && (!bparams.useNonTeXFonts || runparams.flavor != Flavor::XeTeX)) {
                        if (c == 0x2013) {
                                // en-dash
                                os << "--";
@@ -1389,7 +1390,7 @@ void Paragraph::Private::validate(LaTeXFeatures & features) const
                        features.addPreambleSnippet(os.release(), true);
        }
 
-       if (features.runparams().flavor == OutputParams::HTML
+       if (features.runparams().flavor == Flavor::Html
            && layout_->htmltitle()) {
                features.setHTMLTitle(owner_->asString(AS_STR_INSETS | AS_STR_SKIPDELETE));
        }
@@ -1484,7 +1485,7 @@ void Paragraph::Private::validate(LaTeXFeatures & features) const
                } else if (!bp.use_dash_ligatures
                           && (c == 0x2013 || c == 0x2014)
                           && bp.useNonTeXFonts
-                          && features.runparams().flavor == OutputParams::XETEX)
+                          && features.runparams().flavor == Flavor::XeTeX)
                        // XeTeX's dash behaviour is determined via a global setting
                        features.require("xetexdashbreakstate");
                BufferEncodings::validate(c, features);
@@ -2509,7 +2510,7 @@ void Paragraph::latex(BufferParams const & bparams,
                if (c == META_INSET
                    && i >= start_pos && (end_pos == -1 || i < end_pos)) {
                        if (isDeleted(i))
-                               runparams.ctObject = getInset(i)->CtObject(runparams);
+                               runparams.ctObject = getInset(i)->getCtObject(runparams);
        
                        InsetMath const * im = getInset(i)->asInsetMath();
                        if (im && im->asHullInset()
@@ -2590,7 +2591,8 @@ void Paragraph::latex(BufferParams const & bparams,
                                c == META_INSET
                                && getInset(i)
                                && getInset(i)->allowMultiPar()
-                               && getInset(i)->lyxCode() != ERT_CODE;
+                               && getInset(i)->lyxCode() != ERT_CODE
+                               && getInset(i)->producesOutput();
 
                bool closeLanguage = false;
                bool lang_switched_at_inset = false;
@@ -2834,14 +2836,14 @@ void Paragraph::latex(BufferParams const & bparams,
                                if (incremented)
                                        --parInline;
 
-                               if (runparams.ctObject == OutputParams::CT_DISPLAYOBJECT
-                                   || runparams.ctObject == OutputParams::CT_UDISPLAYOBJECT) {
+                               if (runparams.ctObject == CtObject::DisplayObject
+                                   || runparams.ctObject == CtObject::UDisplayObject) {
                                        // Close \lyx*deleted and force its
                                        // reopening (if needed)
                                        os << '}';
                                        column++;
                                        runningChange = Change(Change::UNCHANGED);
-                                       runparams.ctObject = OutputParams::CT_NORMAL;
+                                       runparams.ctObject = CtObject::Normal;
                                }
                        }
                } else if (i >= start_pos && (end_pos == -1 || i < end_pos)) {
@@ -2901,6 +2903,31 @@ void Paragraph::latex(BufferParams const & bparams,
                alien_script.clear();
        }
 
+       Font const font = empty()
+               ? getLayoutFont(bparams, real_outerfont)
+               : getFont(bparams, size() - 1, real_outerfont);
+
+       InsetText const * textinset = inInset().asInsetText();
+
+       bool const maintext = textinset
+               ? textinset->text().isMainText()
+               : false;
+
+       size_t const numpars = textinset
+               ? textinset->text().paragraphs().size()
+               : 0;
+
+       bool needPar = false;
+
+       if (style.resfont.size() != font.fontInfo().size()
+           && (!runparams.isLastPar || maintext
+               || (numpars > 1 && d->ownerCode() != CELL_CODE
+                   && (inInset().getLayout().isDisplay()
+                       || parInline)))
+           && !style.isCommand()) {
+               needPar = true;
+       }
+
        // If we have an open font definition, we have to close it
        if (open_font) {
                // Make sure that \\par is done with the font of the last
@@ -2912,31 +2939,6 @@ void Paragraph::latex(BufferParams const & bparams,
                // We must not change the font for the last paragraph
                // of non-multipar insets, tabular cells or commands,
                // since this produces unwanted whitespace.
-
-               Font const font = empty()
-                       ? getLayoutFont(bparams, real_outerfont)
-                       : getFont(bparams, size() - 1, real_outerfont);
-
-               InsetText const * textinset = inInset().asInsetText();
-
-               bool const maintext = textinset
-                       ? textinset->text().isMainText()
-                       : false;
-
-               size_t const numpars = textinset
-                       ? textinset->text().paragraphs().size()
-                       : 0;
-
-               bool needPar = false;
-
-               if (style.resfont.size() != font.fontInfo().size()
-                   && (!runparams.isLastPar || maintext
-                       || (numpars > 1 && d->ownerCode() != CELL_CODE
-                           && (inInset().getLayout().isDisplay()
-                               || parInline)))
-                   && !style.isCommand()) {
-                       needPar = true;
-               }
 #ifdef FIXED_LANGUAGE_END_DETECTION
                if (next_) {
                        running_font.latexWriteEndChanges(os, bparams,
@@ -2954,11 +2956,11 @@ void Paragraph::latex(BufferParams const & bparams,
                running_font.latexWriteEndChanges(os, bparams, runparams,
                                basefont, basefont, needPar);
 #endif
-               if (needPar) {
-                       // The \par could not be inserted at the same nesting
-                       // level of the font size change, so do it now.
-                       os << "{\\" << font.latexSize() << "\\par}";
-               }
+       }
+       if (needPar) {
+               // The \par could not be inserted at the same nesting
+               // level of the font size change, so do it now.
+               os << "{\\" << font.latexSize() << "\\par}";
        }
 
        column += Changes::latexMarkChange(os, bparams, runningChange,