X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FInsetNote.cpp;h=a7a0dc16abf0fad7856075ad085271d6f600d724;hb=f24bb4a91980a17c00c12ec0bbb457e0f182215f;hp=05253de8553f356f41cc3875051ec37e4ff3001c;hpb=d96135a9dcc54ab1e6283863f4534ef5530c2faa;p=lyx.git diff --git a/src/insets/InsetNote.cpp b/src/insets/InsetNote.cpp index 05253de855..a7a0dc16ab 100644 --- a/src/insets/InsetNote.cpp +++ b/src/insets/InsetNote.cpp @@ -28,6 +28,7 @@ #include "Lexer.h" #include "LyXRC.h" #include "output_docbook.h" +#include "output_latex.h" #include "support/debug.h" #include "support/docstream.h" @@ -207,11 +208,12 @@ bool InsetNote::isMacroScope() const void InsetNote::latex(otexstream & os, OutputParams const & runparams_in) const { if (params_.type != InsetNoteParams::Greyedout - && (runparams_in.for_searchAdv & OutputParams::SearchNonOutput) == 0) + && runparams_in.find_effective() + && !runparams_in.find_with_non_output()) return; if (params_.type == InsetNoteParams::Note) { - if ((runparams_in.for_searchAdv & OutputParams::SearchNonOutput) != 0) { + if (runparams_in.find_with_non_output()) { OutputParams runparams(runparams_in); InsetCollapsible::latex(os, runparams); runparams_in.encoding = runparams.encoding; @@ -221,6 +223,12 @@ void InsetNote::latex(otexstream & os, OutputParams const & runparams_in) const OutputParams runparams(runparams_in); if (params_.type == InsetNoteParams::Comment) { + if (runparams_in.inComment) { + // Nested comments should just output the contents. + latexParagraphs(buffer(), text(), os, runparams); + return; + } + runparams.inComment = true; // Ignore files that are exported inside a comment runparams.exportdata.reset(new ExportData); @@ -250,18 +258,25 @@ void InsetNote::latex(otexstream & os, OutputParams const & runparams_in) const int InsetNote::plaintext(odocstringstream & os, OutputParams const & runparams_in, size_t max_length) const { - if (params_.type == InsetNoteParams::Note) - return 0; + if (!runparams_in.find_with_non_output()) { + if (params_.type == InsetNoteParams::Note) + return 0; + else if (params_.type == InsetNoteParams::Comment + && runparams_in.find_effective()) + return 0; + } OutputParams runparams(runparams_in); - if (params_.type == InsetNoteParams::Comment) { + if (params_.type != InsetNoteParams::Greyedout) { runparams.inComment = true; // Ignore files that are exported inside a comment runparams.exportdata.reset(new ExportData); } - os << '[' << buffer().B_("note") << ":\n"; + if (!runparams_in.find_with_non_output()) + os << '[' << buffer().B_("note") << ":\n"; InsetText::plaintext(os, runparams, max_length); - os << "\n]"; + if (!runparams_in.find_with_non_output()) + os << "\n]"; return PLAINTEXT_NEWLINE + 1; // one char on a separate line }