From 3fc095e3bc226e854f6cd9882a4c9e9039374caf Mon Sep 17 00:00:00 2001 From: Juergen Spitzmueller Date: Fri, 28 Aug 2020 07:32:29 +0200 Subject: [PATCH] Do not \protect label in subfloat caption (#11950) --- src/insets/InsetFloat.cpp | 2 +- src/insets/InsetLabel.cpp | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/insets/InsetFloat.cpp b/src/insets/InsetFloat.cpp index b0a48f2b31..24e06b548c 100644 --- a/src/insets/InsetFloat.cpp +++ b/src/insets/InsetFloat.cpp @@ -391,11 +391,11 @@ void InsetFloat::latex(otexstream & os, OutputParams const & runparams_in) const OutputParams rp = runparams_in; rp.moving_arg = true; + rp.inFloat = OutputParams::SUBFLOAT; os << getCaption(rp); os << '{'; // The main argument is the contents of the float. This is not a moving argument. rp.moving_arg = false; - rp.inFloat = OutputParams::SUBFLOAT; InsetText::latex(os, rp); os << "}"; diff --git a/src/insets/InsetLabel.cpp b/src/insets/InsetLabel.cpp index ec50d4feb6..2e80e26a83 100644 --- a/src/insets/InsetLabel.cpp +++ b/src/insets/InsetLabel.cpp @@ -334,7 +334,10 @@ void InsetLabel::latex(otexstream & os, OutputParams const & runparams_in) const if (runparams_in.postpone_fragile_stuff) runparams_in.post_macro += command; else { - if (runparams.moving_arg) + // protect label in moving argument (#9404), + // but not in subfloat caption (#11950) + if (runparams.moving_arg + && runparams.inFloat != OutputParams::SUBFLOAT) os << "\\protect"; os << command; } -- 2.39.2