commit 343a9749abe4f32e67ef9aae9554ee4bd8dae1b4
Author: Juergen Spitzmueller <[email protected]>
Date: Sun Oct 1 10:12:52 2023 +0200
No need to use \fcolorbox with explicit black frame and no background
White background, however, is always treated explicit (think non-white
page background)
---
src/insets/InsetBox.cpp | 30 +++++++++++++++++++++---------
src/insets/InsetBox.h | 2 ++
2 files changed, 23 insertions(+), 9 deletions(-)
diff --git a/src/insets/InsetBox.cpp b/src/insets/InsetBox.cpp
index c15ae86..8adf0f7 100644
--- a/src/insets/InsetBox.cpp
+++ b/src/insets/InsetBox.cpp
@@ -430,9 +430,11 @@ void InsetBox::latex(otexstream & os, OutputParams const &
runparams) const
if (separation_string != defaultSep && thickness_string ==
defaultThick)
os << "{\\fboxsep " << from_ascii(separation_string);
if (!params_.inner_box && !width_string.empty()) {
- if (params_.framecolor != "default" ||
params_.backgroundcolor != "none") {
- os << maybeBeginL << "\\fcolorbox{" <<
getFrameColor() << "}{" << getBackgroundColor() << "}{";
- os << "\\makebox";
+ if (useFColorBox()) {
+ os << maybeBeginL
+ << "\\fcolorbox{" << getFrameColor()
+ << "}{" << getBackgroundColor()
+ << "}{" << "\\makebox";
needEndL = !maybeBeginL.empty();
} else
os << "\\framebox";
@@ -449,8 +451,10 @@ void InsetBox::latex(otexstream & os, OutputParams const &
runparams) const
if (params_.hor_pos != 'c')
os << "[" << params_.hor_pos << "]";
} else {
- if (params_.framecolor != "default" ||
params_.backgroundcolor != "none") {
- os << maybeBeginL << "\\fcolorbox{" <<
getFrameColor() << "}{" << getBackgroundColor() << "}";
+ if (useFColorBox()) {
+ os << maybeBeginL
+ << "\\fcolorbox{" << getFrameColor()
+ << "}{" << getBackgroundColor() << "}";
needEndL = !maybeBeginL.empty();
} else {
if (!cprotect.empty() &&
contains(runparams.active_chars, '^')) {
@@ -616,8 +620,7 @@ void InsetBox::latex(otexstream & os, OutputParams const &
runparams) const
break;
case Boxed:
os << "}";
- if (!params_.inner_box && !width_string.empty()
- && (params_.framecolor != "default" ||
params_.backgroundcolor != "none"))
+ if (!params_.inner_box && !width_string.empty() &&
useFColorBox())
os << "}";
if (separation_string != defaultSep || thickness_string !=
defaultThick)
os << "}";
@@ -810,8 +813,8 @@ void InsetBox::validate(LaTeXFeatures & features) const
break;
case Boxed:
features.require("calc");
- if (params_.framecolor != "default" || params_.backgroundcolor
!= "none")
- // \fcolorbox, which is part of (x)color, is used
+ if (useFColorBox())
+ // \fcolorbox is provided by [x]color
features.require("xcolor");
break;
case ovalbox:
@@ -892,6 +895,15 @@ string const InsetBox::getBackgroundColor() const
}
+bool InsetBox::useFColorBox() const
+{
+ // we only need an \fcolorbox if the framecolor is something else
+ // than black in the output or if the backgroundcolor is not none
+ // (also needed with white, consider non-white page coloring)
+ return getFrameColor() != "black" || params_.backgroundcolor != "none";
+}
+
+
/////////////////////////////////////////////////////////////////////////
//
// InsetBoxParams
diff --git a/src/insets/InsetBox.h b/src/insets/InsetBox.h
index 97c2a27..f4a7436 100644
--- a/src/insets/InsetBox.h
+++ b/src/insets/InsetBox.h
@@ -167,6 +167,8 @@ private:
std::string const getFrameColor(bool const gui = false) const;
///
std::string const getBackgroundColor() const;
+ ///
+ bool useFColorBox() const;
///
friend class InsetBoxParams;
--
lyx-cvs mailing list
[email protected]
http://lists.lyx.org/mailman/listinfo/lyx-cvs