]> git.lyx.org Git - lyx.git/blobdiff - src/tex2lyx/text.cpp
Fix typo.
[lyx.git] / src / tex2lyx / text.cpp
index 05d0a0bdf4097dcb40910cc6e26675e0b3b30709..eb88a9695810b32c9809eb5034eeffba54bafc91 100644 (file)
@@ -252,7 +252,7 @@ bool splitLatexLength(string const & len, string & value, string & unit)
 }
 
 
-/// A simple function to translate a latex length to something lyx can
+/// A simple function to translate a latex length to something LyX can
 /// understand. Not perfect, but rather best-effort.
 bool translate_len(string const & length, string & valstring, string & unit)
 {
@@ -354,7 +354,7 @@ void begin_inset(ostream & os, string const & name)
        os << "\n\\begin_inset " << name;
 }
 
-/*// use this voi when format 288 is supported
+/*// use this void when format 288 is supported
 void begin_command_inset(ostream & os, string const & name,
                                                 string const & latexname)
 {
@@ -439,20 +439,6 @@ Layout const * findLayout(TextClass const & textclass, string const & name)
 void eat_whitespace(Parser &, ostream &, Context &, bool);
 
 
-Layout * captionlayout()
-{
-       static Layout * lay = 0;
-       if (!lay) {
-               lay = new Layout;
-               lay->setName(from_ascii("Caption"));
-               lay->setLatexName("caption");
-               lay->latextype = LATEX_COMMAND;
-               lay->optionalargs = 1;
-       }
-       return lay;
-}
-
-
 void output_command_layout(ostream & os, Parser & p, bool outer,
                           Context & parent_context,
                           Layout const * newlayout)
@@ -659,7 +645,7 @@ void parse_box(Parser & p, ostream & os, unsigned flags, bool outer,
                parse_text_in_inset(p, os, flags, outer, parent_context);
                end_inset(os);
 #ifdef PRESERVE_LAYOUT
-               // lyx puts a % after the end of the minipage
+               // LyX puts a % after the end of the minipage
                if (p.next_token().cat() == catNewline && p.next_token().cs().size() > 1) {
                        // new paragraph
                        //handle_comment(os, "%dummy", parent_context);
@@ -1448,7 +1434,7 @@ void parse_text(Parser & p, ostream & os, unsigned flags, bool outer,
                        }
                        if (optarg) {
                                if (context.layout->labeltype != LABEL_MANUAL) {
-                                       // lyx does not support \item[\mybullet]
+                                       // LyX does not support \item[\mybullet]
                                        // in itemize environments
                                        handle_ert(os, "[", context);
                                        os << s;
@@ -1467,8 +1453,8 @@ void parse_text(Parser & p, ostream & os, unsigned flags, bool outer,
                        context.check_layout(os);
                        begin_inset(os, "LatexCommand ");
                        os << t.cs() << "\n";
-                       os << p.getOpt();
-                       os << "key " << '"' << p.verbatim_item() << '"' << "\n";
+                       os << "label \"" << p.getOptContent() << "\"\n";
+                       os << "key \"" << p.verbatim_item() << "\"\n";
                        end_inset(os);
                }
 
@@ -1586,13 +1572,33 @@ void parse_text(Parser & p, ostream & os, unsigned flags, bool outer,
                        p.skip_spaces();
                }
 
-               // Special handling for \caption
-               // FIXME: remove this when InsetCaption is supported.
-               else if (context.new_layout_allowed &&
-                        t.cs() == captionlayout()->latexname()) {
-                       output_command_layout(os, p, outer, context, 
-                                             captionlayout());
+               else if (t.cs() == "caption") {
+                       // FIXME: this should get some cleanup. All
+                       // the \begin_layout:s are output by the
+                       // Context class!
+                       p.skip_spaces();
+                       context.check_layout(os);
+                       p.skip_spaces();
+                       begin_inset(os, "Caption\n\n");
+                       os << "\\begin_layout " 
+                          << to_utf8(context.textclass.defaultLayout().name()) 
+                          << '\n';
+                       if (p.next_token().character() == '[') {
+                               p.get_token(); // eat '['
+                               begin_inset(os, "OptArg\n");
+                               os << "status collapsed\n";
+                               parse_text_in_inset(p, os, FLAG_BRACK_LAST, outer, context);
+                               end_inset(os);
+                               eat_whitespace(p, os, context, false);
+                       }
+                       parse_text(p, os, FLAG_ITEM, outer, context);
+                       context.check_end_layout(os);
+                       // We don't need really a new paragraph, but
+                       // we must make sure that the next item gets a \begin_layout.
+                       context.new_paragraph(os);
+                       end_inset(os);
                        p.skip_spaces();
+                       os << "\\end_layout\n";
                }
 
                else if (t.cs() == "includegraphics") {
@@ -1927,7 +1933,7 @@ void parse_text(Parser & p, ostream & os, unsigned flags, bool outer,
                        context.check_layout(os);
                        begin_inset(os, "LatexCommand ");
                        os << t.cs() << "\n";
-                       // lyx cannot handle newlines in a latex command
+                       // LyX cannot handle newlines in a latex command
                        // FIXME: Move the substitution into parser::getOpt()?
                        os << subst(p.getOpt(), "\n", " ");
                        os << "reference " << '"' << subst(p.verbatim_item(), "\n", " ") << '"' << "\n";
@@ -2037,7 +2043,7 @@ void parse_text(Parser & p, ostream & os, unsigned flags, bool outer,
 
                else if (t.cs() == "cite") {
                        context.check_layout(os);
-                       // lyx cannot handle newlines in a latex command
+                       // LyX cannot handle newlines in a latex command
                        string after = subst(p.getOptContent(), "\n", " ");
                        begin_inset(os, "LatexCommand ");
                        os << t.cs() << "\n";
@@ -2050,7 +2056,7 @@ void parse_text(Parser & p, ostream & os, unsigned flags, bool outer,
                        context.check_layout(os);
                        begin_inset(os, "LatexCommand ");
                        os << t.cs() << "\n";
-                       // lyx cannot handle newlines in a latex command
+                       // LyX cannot handle newlines in a latex command
                        os << "name " << '"' << subst(p.verbatim_item(), "\n", " ") << '"' << "\n";
                        end_inset(os);
                }
@@ -2059,7 +2065,7 @@ void parse_text(Parser & p, ostream & os, unsigned flags, bool outer,
                        context.check_layout(os);
                        begin_inset(os, "LatexCommand ");
                        os << t.cs() << "\n";
-                       // lyx cannot handle newlines in a latex command
+                       // LyX cannot handle newlines in a latex command
                        string prefix = subst(p.getOptContent(), "\n", " ");
                        if (!prefix.empty())
                                os << "prefix " << '"' << prefix << '"' << "\n";
@@ -2072,7 +2078,7 @@ void parse_text(Parser & p, ostream & os, unsigned flags, bool outer,
                        context.check_layout(os);
                        begin_inset(os, "LatexCommand ");
                        os << t.cs() << "\n";
-                       // lyx cannot handle newlines in a latex command
+                       // LyX cannot handle newlines in a latex command
                        os << "name " << '"' << subst(p.verbatim_item(), "\n", " ") << '"' << "\n";
                        end_inset(os);
                }
@@ -2097,7 +2103,7 @@ void parse_text(Parser & p, ostream & os, unsigned flags, bool outer,
                        context.check_layout(os);
                        begin_inset(os, "LatexCommand ");
                        os << t.cs() << "\n";
-                       // lyx cannot handle newlines in a latex command
+                       // LyX cannot handle newlines in a latex command
                        os << "target " << '"' << subst(p.verbatim_item(), "\n", " ") << '"' << "\n";
                        end_inset(os);
                }
@@ -2231,6 +2237,7 @@ void parse_text(Parser & p, ostream & os, unsigned flags, bool outer,
                        string const enc = subst(p.verbatim_item(), "\n", " ");
                        p.setEncoding(enc);
                }
+
                else if (t.cs() == "LyX" || t.cs() == "TeX"
                         || t.cs() == "LaTeX") {
                        context.check_layout(os);
@@ -2364,8 +2371,7 @@ void parse_text(Parser & p, ostream & os, unsigned flags, bool outer,
                        }
                }
 
-               else if (t.cs() == "newline" ||
-                       t.cs() == "linebreak") {
+               else if (t.cs() == "newline") {
                        context.check_layout(os);
                        os << "\n\\" << t.cs() << "\n";
                        skip_braces(p); // eat {}
@@ -2483,7 +2489,6 @@ void parse_text(Parser & p, ostream & os, unsigned flags, bool outer,
                }
 
                else if (t.cs() == "newpage" ||
-                       t.cs() == "pagebreak" ||
                        t.cs() == "clearpage" ||
                        t.cs() == "cleardoublepage") {
                        context.check_layout(os);