commit 32d653432ceb2d68c080838b9157d28e9dfffab9
Author: Juergen Spitzmueller <[email protected]>
Date: Sun Feb 23 09:39:53 2025 +0100
Fix tex2lyx glitch (and test document that revealed it)
---
src/tex2lyx/Preamble.cpp | 16 ++++++++---
src/tex2lyx/Preamble.h | 2 +-
.../test/box-color-size-space-align.lyx.lyx | 32 ++++++++++++++++++++--
src/tex2lyx/text.cpp | 2 +-
4 files changed, 44 insertions(+), 8 deletions(-)
diff --git a/src/tex2lyx/Preamble.cpp b/src/tex2lyx/Preamble.cpp
index fd90f50644..3267a96a89 100644
--- a/src/tex2lyx/Preamble.cpp
+++ b/src/tex2lyx/Preamble.cpp
@@ -624,6 +624,14 @@ void Preamble::setTextClass(string const & tclass,
TeX2LyXDocClass & tc)
}
+bool Preamble::isCustomColor(string const & col) const
+{
+ if (h_custom_colors.find(col) != h_custom_colors.end())
+ return true;
+ return false;
+}
+
+
namespace {
// Given is a string like "scaled=0.9" or "scale=0.9", return 0.9 * 100
@@ -3232,7 +3240,7 @@ void Preamble::parse(Parser & p, string const &
forceclass,
} else if ((where = is_known(color2,
known_textcolors))) {
h_fontcolor =
known_coded_textcolors[where - known_textcolors];
registerAutomaticallyLoadedPackage("xcolor");
- } else if (h_custom_colors.find(color2) !=
h_custom_colors.end())
+ } else if (isCustomColor(color2))
h_fontcolor = color2;
} else if (color1 == "note_fontcolor") {
// check the case that a standard color is used
@@ -3245,7 +3253,7 @@ void Preamble::parse(Parser & p, string const &
forceclass,
} else if ((where = is_known(color2,
known_textcolors))) {
h_notefontcolor =
known_coded_textcolors[where - known_textcolors];
registerAutomaticallyLoadedPackage("xcolor");
- } else if (h_custom_colors.find(color2) !=
h_custom_colors.end())
+ } else if (isCustomColor(color2))
h_notefontcolor = color2;
} else if (color1 == "page_backgroundcolor") {
// check the case that a standard color is used
@@ -3258,7 +3266,7 @@ void Preamble::parse(Parser & p, string const &
forceclass,
} else if ((where = is_known(color2,
known_textcolors))) {
h_backgroundcolor =
known_coded_textcolors[where - known_textcolors];
registerAutomaticallyLoadedPackage("xcolor");
- } else if (h_custom_colors.find(color2) !=
h_custom_colors.end())
+ } else if (isCustomColor(color2))
h_backgroundcolor = color2;
} else if (color1 == "shadecolor") {
// check the case that a standard color is used
@@ -3271,7 +3279,7 @@ void Preamble::parse(Parser & p, string const &
forceclass,
} else if ((where = is_known(color2,
known_textcolors))) {
h_boxbgcolor =
known_coded_textcolors[where - known_textcolors];
registerAutomaticallyLoadedPackage("xcolor");
- } else if (h_custom_colors.find(color2) !=
h_custom_colors.end())
+ } else if (isCustomColor(color2))
h_boxbgcolor = color2;
} else {
h_preamble << "\\colorlet{" << color1
diff --git a/src/tex2lyx/Preamble.h b/src/tex2lyx/Preamble.h
index d230e0e5c5..e31111b030 100644
--- a/src/tex2lyx/Preamble.h
+++ b/src/tex2lyx/Preamble.h
@@ -53,7 +53,7 @@ public:
///
bool svgnames() const { return h_use_xcolor_svgnames; }
///
- std::map<std::string, std::string> customColors() { return
h_custom_colors; }
+ bool isCustomColor(std::string const & col) const;
///
std::string nomenclOpts() const { return h_nomencl_options; }
/// The document language
diff --git a/src/tex2lyx/test/box-color-size-space-align.lyx.lyx
b/src/tex2lyx/test/box-color-size-space-align.lyx.lyx
index 23abd51e82..748d1ae0c1 100644
--- a/src/tex2lyx/test/box-color-size-space-align.lyx.lyx
+++ b/src/tex2lyx/test/box-color-size-space-align.lyx.lyx
@@ -1872,9 +1872,37 @@ Custom Colors
\begin_layout Standard
test
-\color darkgreen
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+textcolor{darkgreen}
+\end_layout
+
+\end_inset
+
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+{
+\end_layout
+
+\end_inset
+
dark green
-\color inherit
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+}
+\end_layout
+
+\end_inset
+
test
\end_layout
diff --git a/src/tex2lyx/text.cpp b/src/tex2lyx/text.cpp
index 1526b32aa3..fd7aa4e1e4 100644
--- a/src/tex2lyx/text.cpp
+++ b/src/tex2lyx/text.cpp
@@ -4473,7 +4473,7 @@ void parse_text(Parser & p, ostream & os, unsigned flags,
bool outer,
os << "\n\\color inherit\n";
preamble.registerAutomaticallyLoadedPackage("xcolor");
// custom colors
- } else if (preamble.customColors().find(color) !=
preamble.customColors().end()) {
+ } else if (preamble.isCustomColor(color)) {
context.check_layout(os);
os << "\n\\color " << color << "\n";
parse_text_snippet(p, os, FLAG_ITEM, outer,
context);
--
lyx-cvs mailing list
[email protected]
https://lists.lyx.org/mailman/listinfo/lyx-cvs