X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FChanges.cpp;h=6e3bf0fff754a7bf24548074f33fe9f4a67d34b8;hb=71a57e0f4df9d2b860ec2d060cc30043206c335d;hp=5a803c21e843715159ff1c0c81d9d7882093e739;hpb=54f5100e74788ba20d8e360cbaaaf6bfdc85266f;p=lyx.git diff --git a/src/Changes.cpp b/src/Changes.cpp index 5a803c21e8..6e3bf0fff7 100644 --- a/src/Changes.cpp +++ b/src/Changes.cpp @@ -142,7 +142,7 @@ void Changes::set(Change const & change, pos_type const start, pos_type const en { if (change.type != Change::UNCHANGED) { LYXERR(Debug::CHANGES, "setting change (type: " << change.type - << ", author: " << change.author + << ", author: " << change.author << ", time: " << long(change.changetime) << ") in range (" << start << ", " << end << ")"); } @@ -382,7 +382,7 @@ docstring getLaTeXMarkup(docstring const & macro, docstring const & author, return ods.str(); } -} //namespace anon +} // namespace int Changes::latexMarkChange(otexstream & os, BufferParams const & bparams, @@ -394,11 +394,16 @@ int Changes::latexMarkChange(otexstream & os, BufferParams const & bparams, int column = 0; + bool const dvipost = LaTeXFeatures::isAvailable("dvipost") && + (runparams.flavor == OutputParams::LATEX + || runparams.flavor == OutputParams::DVILUATEX); + if (oldChange.type != Change::UNCHANGED) { // close \lyxadded or \lyxdeleted os << '}'; column++; - if (oldChange.type == Change::DELETED && !runparams.wasDisplayMath) + if (oldChange.type == Change::DELETED + && !runparams.wasDisplayMath && !dvipost) --runparams.inulemcmd; } @@ -410,22 +415,20 @@ int Changes::latexMarkChange(otexstream & os, BufferParams const & bparams, docstring macro_beg; if (change.type == Change::DELETED) { macro_beg = from_ascii("\\lyxdeleted{"); - if (!runparams.inDisplayMath) + if (!runparams.inDisplayMath && !dvipost) ++runparams.inulemcmd; } else if (change.type == Change::INSERTED) macro_beg = from_ascii("\\lyxadded{"); - + docstring str = getLaTeXMarkup(macro_beg, 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()) + && !dvipost) { + if (os.blankLine()) str += from_ascii("\\\\\\noindent\n"); else str += from_ascii("\\\\\\\\\n"); @@ -475,12 +478,12 @@ void Changes::checkAuthors(AuthorList const & authorList) void Changes::addToToc(DocIterator const & cdit, Buffer const & buffer, - bool output_active) const + bool output_active, TocBackend & backend) const { if (table_.empty()) return; - shared_ptr change_list = buffer.tocBackend().toc("change"); + shared_ptr change_list = backend.toc("change"); AuthorList const & author_list = buffer.params().authors(); DocIterator dit = cdit;