]> git.lyx.org Git - features.git/commitdiff
- tex2lyx/preamble.cpp, text.cpp: add support for \textcolor fixes http://bugzilla...
authorUwe Stöhr <uwestoehr@web.de>
Sun, 20 Apr 2008 23:16:55 +0000 (23:16 +0000)
committerUwe Stöhr <uwestoehr@web.de>
Sun, 20 Apr 2008 23:16:55 +0000 (23:16 +0000)
- box-color.tex: testfile for tex2lyx to check if colors and boxes are correctly imported

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@24403 a592a061-630c-0410-9148-cb99ea01b6c8

src/tex2lyx/box-color.tex [new file with mode: 0644]
src/tex2lyx/preamble.cpp
src/tex2lyx/text.cpp

diff --git a/src/tex2lyx/box-color.tex b/src/tex2lyx/box-color.tex
new file mode 100644 (file)
index 0000000..52ee8eb
--- /dev/null
@@ -0,0 +1,99 @@
+\documentclass[a4paper,12pt]{article}
+
+\usepackage[T1]{fontenc}
+\usepackage[latin9]{inputenc}
+
+\usepackage{amsmath}
+\usepackage{color}
+
+\setlength{\parskip}{3mm}
+\setlength{\parindent}{0sp}
+\usepackage{setspace}
+\setstretch{1.2}
+
+\setlength{\fboxsep}{3mm}
+
+\definecolor{darkgreen}{cmyk}{0.5, 0, 1, 0.5}
+
+\begin{document}
+
+\tableofcontents
+
+\section{Boxes}
+
+\subsection{Frameless Boxes}
+
+blabla \mbox{test} blabla
+
+blabla \makebox{test} blabla
+
+blabla \makebox[3cm]{test} blabla
+
+blabla \makebox[3cm][l]{test} blabla
+
+\begin{figure}[ht]
+  \centering
+  \setlength{\unitlength}{.2in}
+
+\begin{picture}(8,6)
+\put(0,0){\makebox(0,0)[tr]{AAA}}
+\put(8,0){\makebox(0,0){BBB}}
+\put(1,0){\line(1,0){6}}   
+\end{picture}
+
+\end{figure}
+
+\raisebox {8.5mm}{test}\raisebox {-6.5mm}{tset}
+
+\subsection{Framed Boxes}
+
+blabla \fbox{test} blabla
+
+blabla \framebox[3cm]{test} blabla
+
+blabla \framebox[3cm][l]{test} blabla
+
+Dies ist ein Beispieltext. %
+\framebox{%
+\begin{minipage}[c][1\totalheight][s]{0.2\columnwidth}%
+ \begin{center}
+  Der Boxinhalt
+ \par\end{center}
+
+ \begin{center}
+  ist über die
+ \par\end{center}
+
+ \begin{center}
+  Boxhöhe
+ \par\end{center}
+
+ \begin{center}
+  gleichmäßig verteilt.
+ \par\end{center}%
+\end{minipage}}
+Dies ist ein Beispieltext.
+
+$\boxed{\int A=B}$
+
+\section{Colors}
+
+\subsection{Predefined Colors}
+
+test \textcolor{blue}{blue} test \textcolor{red}{red red red} test \textcolor{green}{bla}\textcolor{magenta}{blub}
+test
+\textcolor{green}{c}%
+\textcolor{red}{o}%
+\textcolor{blue}{l}%
+\textcolor{green}{o}%
+\textcolor{red}{r}
+
+\subsection{Custom Colors}
+
+test \textcolor{darkgreen}{dark green} test
+
+\definecolor{violet}{rgb}{0.5, 0, 1}
+
+test \textcolor{violet}{violet} test
+
+\end{document}
index 51fb970ca865a758702d3f4f2fcb2a32413163d9..405fe3dd5e735faaec344be6409cd361cff8dbd1 100644 (file)
@@ -238,6 +238,7 @@ void handle_package(string const & name, string const & opts)
        // roman fonts
        if (is_known(name, known_roman_fonts))
                h_font_roman = name;
+
        if (name == "fourier") {
                h_font_roman = "utopia";
                // when font uses real small capitals
@@ -246,8 +247,10 @@ void handle_package(string const & name, string const & opts)
        }
        if (name == "mathpazo")
                h_font_roman = "palatino";
+
        if (name == "mathptmx")
                h_font_roman = "times";
+
        // sansserif fonts
        if (is_known(name, known_sans_fonts)) {
                h_font_sans = name;
@@ -270,6 +273,7 @@ void handle_package(string const & name, string const & opts)
 
        else if (name == "amsmath" || name == "amssymb")
                h_use_amsmath = "1";
+
        else if (name == "babel" && !opts.empty()) {
                // check if more than one option was used - used later for inputenc
                // in case inputenc is parsed before babel, set the encoding to auto
@@ -298,8 +302,10 @@ void handle_package(string const & name, string const & opts)
                        h_quotes_language = h_language;
                }
        }
+
        else if (name == "fontenc")
                ; // ignore this
+
        else if (name == "inputenc") {
                // only set when there is not more than one inputenc option
                // therefore check for the "," character
@@ -312,10 +318,18 @@ void handle_package(string const & name, string const & opts)
                        else
                                h_inputencoding = opts;
                options.clear();
+
        } else if (name == "makeidx")
                ; // ignore this
+
        else if (name == "verbatim")
                ; // ignore this
+
+       else if (name == "color")
+               // with the following command this package is only loaded when needed for
+               // undefined colors, since we only support the predefined colors
+               h_preamble << "\\@ifundefined{definecolor}\n {\\usepackage{color}}{}\n";
+
        else if (name == "graphicx")
                ; // ignore this
        else if (is_known(name, known_languages)) {
@@ -348,6 +362,7 @@ void handle_package(string const & name, string const & opts)
                }
        } else if (name == "jurabib") {
                h_cite_engine = "jurabib";
+
        } else if (options.empty())
                h_preamble << "\\usepackage{" << name << "}\n";
        else {
index 5a22ecf614b2a473c58ea5e6d48ed124564769c6..b0b50061782c29e9b462f83f1fe38728d13bfa80 100644 (file)
@@ -1847,6 +1847,23 @@ void parse_text(Parser & p, ostream & os, unsigned flags, bool outer,
                                eat_whitespace(p, os, context, false);
                }
 
+               else if (t.cs() == "textcolor") {
+                       // scheme is \textcolor{color name}{text}
+                       string const color = p.verbatim_item();
+                       // we only support the predefined colors of the color package
+                       if (color == "black" || color == "blue" || color == "cyan"
+                               || color == "green" || color == "magenta" || color == "red"
+                               || color == "white" || color == "yellow") {
+                                       context.check_layout(os);
+                                       os << "\n\\color " << color << "\n";
+                                       parse_text_snippet(p, os, FLAG_ITEM, outer, context);
+                                       context.check_layout(os);
+                                       os << "\n\\color inherit\n";
+                       } else
+                               // for custom defined colors
+                               handle_ert(os, t.asInput() + "{" + color + "}", context);
+               }
+
                else if (t.cs() == "underbar") {
                        // Do NOT handle \underline.
                        // \underbar cuts through y, g, q, p etc.,