On Mon, Apr 16, 2018 at 04:03:44PM +0000, Scott Kostyshak wrote: > I see. Thanks for the explanation. OK I will test whether they are > needed with the example I gave or with the knitr example file. If it is > not needed for both, I will remove it for that type of box. Let me know > if there is any other test case that you think would be good to check.
Attached is a patch. I first tested compilation of all box types for both the knitr manual and for the verbatim example in current master. All compilations succeeded. I then removed \cprotect for all box types, and only the simple frame failed. I then tested that with the attached patch, all compilations succeed. (Note that I tested all compilations with formats pdf, pdf2, pdf3, pdf4, and pdf5, and not surprisingly all formats give the same result). Any objection to put this patch in? Scott
From 7c018696f1d5a6e2dc257010edbcd09e5cc8c827 Mon Sep 17 00:00:00 2001 From: Scott Kostyshak <skost...@lyx.org> Date: Wed, 18 Apr 2018 15:11:55 -0400 Subject: [PATCH] Use \cprotect only for "simple frame" boxes Compilation succeeds with verbatim environments for the other types of boxes without \cprotect. --- src/insets/InsetBox.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/insets/InsetBox.cpp b/src/insets/InsetBox.cpp index 7dc5ed3..e543b44 100644 --- a/src/insets/InsetBox.cpp +++ b/src/insets/InsetBox.cpp @@ -407,10 +407,10 @@ void InsetBox::latex(otexstream & os, OutputParams const & runparams) const os << "{\\fboxsep " << from_ascii(separation_string); if (!params_.inner_box && !width_string.empty()) { if (params_.framecolor != "black" || params_.backgroundcolor != "none") { - os << cprotect << "\\fcolorbox{" << params_.framecolor << "}{" << params_.backgroundcolor << "}{"; + os << "\\fcolorbox{" << params_.framecolor << "}{" << params_.backgroundcolor << "}{"; os << "\\makebox"; } else - os << cprotect << "\\framebox"; + os << "\\framebox"; // Special widths, see usrguide sec. 3.5 // FIXME UNICODE if (params_.special != "none") { @@ -425,7 +425,7 @@ void InsetBox::latex(otexstream & os, OutputParams const & runparams) const os << "[" << params_.hor_pos << "]"; } else { if (params_.framecolor != "black" || params_.backgroundcolor != "none") - os << cprotect << "\\fcolorbox{" << params_.framecolor << "}{" << params_.backgroundcolor << "}"; + os << "\\fcolorbox{" << params_.framecolor << "}{" << params_.backgroundcolor << "}"; else os << cprotect << "\\fbox"; } @@ -434,12 +434,12 @@ void InsetBox::latex(otexstream & os, OutputParams const & runparams) const case ovalbox: if (!separation_string.empty() && separation_string != defaultSep) os << "{\\fboxsep " << from_ascii(separation_string); - os << cprotect << "\\ovalbox{"; + os << "\\ovalbox{"; break; case Ovalbox: if (!separation_string.empty() && separation_string != defaultSep) os << "{\\fboxsep " << from_ascii(separation_string); - os << cprotect << "\\Ovalbox{"; + os << "\\Ovalbox{"; break; case Shadowbox: if (thickness_string != defaultThick) { @@ -461,7 +461,7 @@ void InsetBox::latex(otexstream & os, OutputParams const & runparams) const && separation_string == defaultSep && thickness_string == defaultThick) os << "{\\shadowsize " << from_ascii(shadowsize_string); - os << cprotect << "\\shadowbox{"; + os << "\\shadowbox{"; break; case Shaded: // must be set later because e.g. the width settings only work when @@ -475,7 +475,7 @@ void InsetBox::latex(otexstream & os, OutputParams const & runparams) const } if (separation_string != defaultSep && thickness_string == defaultThick) os << "{\\fboxsep " << from_ascii(separation_string); - os << cprotect << "\\doublebox{"; + os << "\\doublebox{"; break; } -- 2.7.4
signature.asc
Description: PGP signature