From: Juergen Spitzmueller Date: Fri, 27 Dec 2019 12:56:53 +0000 (+0100) Subject: Properly nest \lyxdeleted within text markup X-Git-Tag: lyx-2.4.0dev-acb2ca7b~1391 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=28da0f4360a;p=features.git Properly nest \lyxdeleted within text markup Fixes #8807 --- diff --git a/src/Paragraph.cpp b/src/Paragraph.cpp index 8fa3c1d0a3..198705c3b8 100644 --- a/src/Paragraph.cpp +++ b/src/Paragraph.cpp @@ -2613,6 +2613,21 @@ void Paragraph::latex(BufferParams const & bparams, current_font.language() != running_font.language()) && i != body_pos - 1) { + bool const in_ct_deletion = (bparams.output_changes + && runningChange == change + && change.type == Change::DELETED + && !os.afterParbreak()); + if (in_ct_deletion) { + // We have to close and then reopen \lyxdeleted, + // as strikeout needs to be on lowest level. + bool needPar = false; + OutputParams rp = runparams; + column += running_font.latexWriteEndChanges( + os, bparams, rp, basefont, + basefont, needPar); + os << '}'; + column += 1; + } odocstringstream ods; column += current_font.latexWriteStartChanges(ods, bparams, runparams, basefont, @@ -2641,6 +2656,13 @@ void Paragraph::latex(BufferParams const & bparams, << from_ascii("{}"); else os << fontchange; + if (in_ct_deletion) { + // We have to close and then reopen \lyxdeleted, + // as strikeout needs to be on lowest level. + OutputParams rp = runparams; + column += Changes::latexMarkChange(os, bparams, + Change(Change::UNCHANGED), change, rp); + } } // FIXME: think about end_pos implementation...