mirror of
https://git.lyx.org/repos/lyx.git
synced 2025-01-12 11:32:21 +00:00
backporting tex2lyx: the color support
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/branches/BRANCH_2_0_X@39992 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
1122af1e84
commit
b4e2effa3d
@ -52,7 +52,6 @@ Format LaTeX feature LyX feature
|
|||||||
347 tabular valign InsetTabular
|
347 tabular valign InsetTabular
|
||||||
348 \phantom, \hphantom, \vphantom InsetPhantom
|
348 \phantom, \hphantom, \vphantom InsetPhantom
|
||||||
350 ? \default_output_format
|
350 ? \default_output_format
|
||||||
351 ? \backgroundcolor
|
|
||||||
353 \printsubindex InsetIndex
|
353 \printsubindex InsetIndex
|
||||||
354 \printindex*, \printsubindex* InsetIndex
|
354 \printindex*, \printsubindex* InsetIndex
|
||||||
355 \sout fonts
|
355 \sout fonts
|
||||||
@ -76,9 +75,6 @@ Format LaTeX feature LyX feature
|
|||||||
378 revision info InsetInfo
|
378 revision info InsetInfo
|
||||||
380 ? InsetPreview
|
380 ? InsetPreview
|
||||||
381 \xymatrix@!{0,R,C} InsetMathXYMatrix
|
381 \xymatrix@!{0,R,C} InsetMathXYMatrix
|
||||||
382 note_fontcolor InsetNote
|
|
||||||
384 document font color \fontcolor
|
|
||||||
385 shaded box background color \boxbgcolor
|
|
||||||
386 LyX version InsetInfo
|
386 LyX version InsetInfo
|
||||||
390 forward/reverse search \forward_search, \forward_macro
|
390 forward/reverse search \forward_search, \forward_macro
|
||||||
391 decimal alignment in tables InsetTabular
|
391 decimal alignment in tables InsetTabular
|
||||||
|
@ -165,6 +165,12 @@ const char * const known_if_commands[] = {"if", "ifarydshln", "ifbraket",
|
|||||||
"ifcancel", "ifcolortbl", "ifeurosym", "ifmarginnote", "ifmmode", "ifpdf",
|
"ifcancel", "ifcolortbl", "ifeurosym", "ifmarginnote", "ifmmode", "ifpdf",
|
||||||
"ifsidecap", "ifupgreek", 0};
|
"ifsidecap", "ifupgreek", 0};
|
||||||
|
|
||||||
|
const char * const known_basic_colors[] = {"blue", "black", "cyan", "green",
|
||||||
|
"magenta", "red", "white", "yellow", 0};
|
||||||
|
|
||||||
|
const char * const known_basic_color_codes[] = {"#0000ff", "#000000", "#00ffff", "#00ff00",
|
||||||
|
"#ff00ff", "#ff0000", "#ffffff", "#ffff00", 0};
|
||||||
|
|
||||||
/// conditional commands with three arguments like \@ifundefined{}{}{}
|
/// conditional commands with three arguments like \@ifundefined{}{}{}
|
||||||
const char * const known_if_3arg_commands[] = {"@ifundefined", "IfFileExists",
|
const char * const known_if_3arg_commands[] = {"@ifundefined", "IfFileExists",
|
||||||
0};
|
0};
|
||||||
@ -216,6 +222,9 @@ string h_use_bibtopic = "false";
|
|||||||
string h_paperorientation = "portrait";
|
string h_paperorientation = "portrait";
|
||||||
string h_suppress_date = "false";
|
string h_suppress_date = "false";
|
||||||
string h_use_refstyle = "0";
|
string h_use_refstyle = "0";
|
||||||
|
string h_backgroundcolor;
|
||||||
|
string h_boxbgcolor;
|
||||||
|
string h_fontcolor;
|
||||||
string h_notefontcolor;
|
string h_notefontcolor;
|
||||||
string h_secnumdepth = "3";
|
string h_secnumdepth = "3";
|
||||||
string h_tocdepth = "3";
|
string h_tocdepth = "3";
|
||||||
@ -774,8 +783,14 @@ void end_preamble(ostream & os, TextClass const & /*textclass*/)
|
|||||||
<< "\\paperorientation " << h_paperorientation << '\n'
|
<< "\\paperorientation " << h_paperorientation << '\n'
|
||||||
<< "\\suppress_date " << h_suppress_date << '\n'
|
<< "\\suppress_date " << h_suppress_date << '\n'
|
||||||
<< "\\use_refstyle " << h_use_refstyle << '\n';
|
<< "\\use_refstyle " << h_use_refstyle << '\n';
|
||||||
|
if (!h_fontcolor.empty())
|
||||||
|
os << "\\fontcolor " << h_fontcolor << '\n';
|
||||||
if (!h_notefontcolor.empty())
|
if (!h_notefontcolor.empty())
|
||||||
os << "\\notefontcolor " << h_notefontcolor << '\n';
|
os << "\\notefontcolor " << h_notefontcolor << '\n';
|
||||||
|
if (!h_backgroundcolor.empty())
|
||||||
|
os << "\\backgroundcolor " << h_backgroundcolor << '\n';
|
||||||
|
if (!h_boxbgcolor.empty())
|
||||||
|
os << "\\boxbgcolor " << h_boxbgcolor << '\n';
|
||||||
os << h_margins
|
os << h_margins
|
||||||
<< "\\secnumdepth " << h_secnumdepth << "\n"
|
<< "\\secnumdepth " << h_secnumdepth << "\n"
|
||||||
<< "\\tocdepth " << h_tocdepth << "\n"
|
<< "\\tocdepth " << h_tocdepth << "\n"
|
||||||
@ -880,6 +895,38 @@ void parse_preamble(Parser & p, ostream & os,
|
|||||||
else if (t.cs() == "pagestyle")
|
else if (t.cs() == "pagestyle")
|
||||||
h_paperpagestyle = p.verbatim_item();
|
h_paperpagestyle = p.verbatim_item();
|
||||||
|
|
||||||
|
else if (t.cs() == "color") {
|
||||||
|
string argument = p.getArg('{', '}');
|
||||||
|
// check the case that a standard color is used
|
||||||
|
if (is_known(argument, known_basic_colors))
|
||||||
|
h_fontcolor = color2code(argument);
|
||||||
|
// check the case that LyX's document_fontcolor is defined
|
||||||
|
// but not used for \color
|
||||||
|
if (argument != "document_fontcolor"
|
||||||
|
&& !is_known(argument, known_basic_colors)) {
|
||||||
|
h_preamble << t.asInput() << '{' << argument << '}';
|
||||||
|
// the color might already be set because \definecolor
|
||||||
|
// is parsed before this
|
||||||
|
h_fontcolor = "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
else if (t.cs() == "pagecolor") {
|
||||||
|
string argument = p.getArg('{', '}');
|
||||||
|
// check the case that a standard color is used
|
||||||
|
if (is_known(argument, known_basic_colors))
|
||||||
|
h_backgroundcolor = color2code(argument);
|
||||||
|
// check the case that LyX's page_backgroundcolor is defined
|
||||||
|
// but not used for \pagecolor
|
||||||
|
if (argument != "page_backgroundcolor"
|
||||||
|
&& !is_known(argument, known_basic_colors)) {
|
||||||
|
h_preamble << t.asInput() << '{' << argument << '}';
|
||||||
|
// the color might already be set because \definecolor
|
||||||
|
// is parsed before this
|
||||||
|
h_backgroundcolor = "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
else if (t.cs() == "makeatletter") {
|
else if (t.cs() == "makeatletter") {
|
||||||
// LyX takes care of this
|
// LyX takes care of this
|
||||||
p.setCatCode('@', catLetter);
|
p.setCatCode('@', catLetter);
|
||||||
@ -1137,9 +1184,18 @@ void parse_preamble(Parser & p, ostream & os,
|
|||||||
string const color = p.getArg('{', '}');
|
string const color = p.getArg('{', '}');
|
||||||
string const space = p.getArg('{', '}');
|
string const space = p.getArg('{', '}');
|
||||||
string const value = p.getArg('{', '}');
|
string const value = p.getArg('{', '}');
|
||||||
if (color == "note_fontcolor" && space == "rgb") {
|
if (color == "document_fontcolor" && space == "rgb") {
|
||||||
|
RGBColor c(RGBColorFromLaTeX(value));
|
||||||
|
h_fontcolor = X11hexname(c);
|
||||||
|
} else if (color == "note_fontcolor" && space == "rgb") {
|
||||||
RGBColor c(RGBColorFromLaTeX(value));
|
RGBColor c(RGBColorFromLaTeX(value));
|
||||||
h_notefontcolor = X11hexname(c);
|
h_notefontcolor = X11hexname(c);
|
||||||
|
} else if (color == "page_backgroundcolor" && space == "rgb") {
|
||||||
|
RGBColor c(RGBColorFromLaTeX(value));
|
||||||
|
h_backgroundcolor = X11hexname(c);
|
||||||
|
} else if (color == "shadecolor" && space == "rgb") {
|
||||||
|
RGBColor c(RGBColorFromLaTeX(value));
|
||||||
|
h_boxbgcolor = X11hexname(c);
|
||||||
} else {
|
} else {
|
||||||
h_preamble << "\\definecolor{" << color
|
h_preamble << "\\definecolor{" << color
|
||||||
<< "}{" << space << "}{" << value
|
<< "}{" << space << "}{" << value
|
||||||
@ -1230,6 +1286,16 @@ string babel2lyx(string const & language)
|
|||||||
return language;
|
return language;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// translates a color name to a LyX color code
|
||||||
|
string color2code(string const & name)
|
||||||
|
{
|
||||||
|
char const * const * where = is_known(name, known_basic_colors);
|
||||||
|
if (where)
|
||||||
|
return known_basic_color_codes[where - known_basic_colors];
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
// }])
|
// }])
|
||||||
|
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
\definecolor{document_fontcolor}{rgb}{0.66796875, 1, 0}
|
\definecolor{document_fontcolor}{rgb}{0.66796875, 1, 0}
|
||||||
\color{document_fontcolor}
|
\color{document_fontcolor}
|
||||||
\definecolor{note_fontcolor}{rgb}{0, 0, 1}
|
\definecolor{note_fontcolor}{rgb}{0, 0, 1}
|
||||||
\definecolor{shadecolor}{rgb}{1, 0, 0}
|
\definecolor{shadecolor}{rgb}{1, 1, 0}
|
||||||
\usepackage{framed}
|
\usepackage{framed}
|
||||||
\usepackage{calc}
|
\usepackage{calc}
|
||||||
\usepackage{fancybox}
|
\usepackage{fancybox}
|
||||||
@ -304,6 +304,7 @@ raggedleft 2 raggedleft 2 raggedleft 2 raggedleft 2 raggedleft 2
|
|||||||
%set back to justified
|
%set back to justified
|
||||||
\raggedright{}
|
\raggedright{}
|
||||||
|
|
||||||
|
|
||||||
\subsection{Horizontal spaces}
|
\subsection{Horizontal spaces}
|
||||||
|
|
||||||
Lines can have an hfill \hfill in the middle.
|
Lines can have an hfill \hfill in the middle.
|
||||||
@ -344,6 +345,21 @@ quad\quad{}a
|
|||||||
|
|
||||||
qquad\qquad{}a
|
qquad\qquad{}a
|
||||||
|
|
||||||
|
\subsubsection*{now some math examples:}
|
||||||
|
|
||||||
|
$a\hfill b$
|
||||||
|
|
||||||
|
$a\hspace*{2cm}b$
|
||||||
|
|
||||||
|
$a\hspace{1cm}b$
|
||||||
|
|
||||||
|
$a\hspace*{\fill} b$
|
||||||
|
|
||||||
|
$a\enskip b$
|
||||||
|
|
||||||
|
$a\enspace b$
|
||||||
|
|
||||||
|
|
||||||
\subsection{Vertical spaces}
|
\subsection{Vertical spaces}
|
||||||
|
|
||||||
Lines can have a vfill \vfill in the middle.
|
Lines can have a vfill \vfill in the middle.
|
||||||
|
@ -308,58 +308,6 @@ test
|
|||||||
\textcolor{red}{\rule[-4ex]{5in}{1cm}}
|
\textcolor{red}{\rule[-4ex]{5in}{1cm}}
|
||||||
|
|
||||||
|
|
||||||
\subsection{Spaces}
|
|
||||||
|
|
||||||
simple: a\ b
|
|
||||||
|
|
||||||
simple, protected: a~b
|
|
||||||
|
|
||||||
thin: a\,b
|
|
||||||
|
|
||||||
medium: a\negthinspace{}b
|
|
||||||
|
|
||||||
thick: a\negmedspace{}b
|
|
||||||
|
|
||||||
negative thin: a\negthinspace{}b
|
|
||||||
|
|
||||||
negative meduim: a\negmedspace{}b
|
|
||||||
|
|
||||||
negative thick: a\negthickspace{}b
|
|
||||||
|
|
||||||
half quad: a\enskip{}b
|
|
||||||
|
|
||||||
half quad, protected: a\enspace{}b
|
|
||||||
|
|
||||||
a\quad{}b
|
|
||||||
|
|
||||||
a\qquad{}b
|
|
||||||
|
|
||||||
hfill: a\hfill{}b
|
|
||||||
|
|
||||||
hfill, protected: a\hspace*{\fill}b
|
|
||||||
|
|
||||||
custom,: a\hspace{1cm}b
|
|
||||||
|
|
||||||
custom, protected: a\hspace*{1cm}b
|
|
||||||
|
|
||||||
visible: a\textvisiblespace{}b
|
|
||||||
|
|
||||||
|
|
||||||
\subsubsection*{now some math examples:}
|
|
||||||
|
|
||||||
$a\hfill b$
|
|
||||||
|
|
||||||
$a\hspace*{2cm}b$
|
|
||||||
|
|
||||||
$a\hspace{1cm}b$
|
|
||||||
|
|
||||||
$a\hspace*{\fill} b$
|
|
||||||
|
|
||||||
$a\enskip b$
|
|
||||||
|
|
||||||
$a\enspace b$
|
|
||||||
|
|
||||||
|
|
||||||
\subsection{Phantoms}
|
\subsection{Phantoms}
|
||||||
|
|
||||||
test\phantom{Wow}test
|
test\phantom{Wow}test
|
||||||
|
@ -48,6 +48,8 @@ void parse_preamble(Parser & p, std::ostream & os,
|
|||||||
std::string const & forceclass, TeX2LyXDocClass & tc);
|
std::string const & forceclass, TeX2LyXDocClass & tc);
|
||||||
/// Translate babel language name to LyX language name
|
/// Translate babel language name to LyX language name
|
||||||
extern std::string babel2lyx(std::string const & language);
|
extern std::string babel2lyx(std::string const & language);
|
||||||
|
/// translate color name to LyX color code
|
||||||
|
extern std::string color2code(std::string const & name);
|
||||||
|
|
||||||
/// used packages with options
|
/// used packages with options
|
||||||
extern std::map<std::string, std::vector<std::string> > used_packages;
|
extern std::map<std::string, std::vector<std::string> > used_packages;
|
||||||
|
Loading…
Reference in New Issue
Block a user