]> git.lyx.org Git - lyx.git/blobdiff - src/Changes.cpp
Add caching for the QTextLayout objects we use
[lyx.git] / src / Changes.cpp
index 0d464d8fa26912b47e2dd74c78f2e0c70394366c..90ad07501add91569ae11984c7b1e5361e91e59b 100644 (file)
@@ -428,7 +428,7 @@ int Changes::latexMarkChange(otexstream & os, BufferParams const & bparams,
                // close \lyxadded or \lyxdeleted
                os << '}';
                column++;
-               if (oldChange.type == Change::DELETED)
+               if (oldChange.type == Change::DELETED && !runparams.wasDisplayMath)
                        --runparams.inulemcmd;
        }
 
@@ -440,7 +440,8 @@ int Changes::latexMarkChange(otexstream & os, BufferParams const & bparams,
        docstring macro_beg;
        if (change.type == Change::DELETED) {
                macro_beg = from_ascii("\\lyxdeleted{");
-               ++runparams.inulemcmd;
+               if (!runparams.inDisplayMath)
+                       ++runparams.inulemcmd;
        }
        else if (change.type == Change::INSERTED)
                macro_beg = from_ascii("\\lyxadded{");
@@ -449,6 +450,17 @@ int Changes::latexMarkChange(otexstream & os, BufferParams const & bparams,
                                       bparams.authors().get(change.author).name(),
                                       chgTime, runparams);
        
+       // signature needed by \lyxsout to correctly strike out display math
+       if (change.type == Change::DELETED && runparams.inDisplayMath
+           && (!LaTeXFeatures::isAvailable("dvipost")
+               || (runparams.flavor != OutputParams::LATEX
+                   && runparams.flavor != OutputParams::DVILUATEX))) {
+               if (os.afterParbreak())
+                       str += from_ascii("\\\\\\noindent\n");
+               else
+                       str += from_ascii("\\\\\\\\\n");
+       }
+
        os << str;
        column += str.size();