]> git.lyx.org Git - lyx.git/blobdiff - src/tex2lyx/preamble.C
some tabular fixes for the problems reported by Helge
[lyx.git] / src / tex2lyx / preamble.C
index 5b59053747b6b4a98b206530f24c7dd023618890..37ed7b06220c7c6fda506b8029ac88e94cbcc208 100644 (file)
@@ -68,13 +68,12 @@ string h_fontscheme              = "default";
 string h_graphics                = "default";
 string h_paperfontsize           = "default";
 string h_spacing                 = "single";
-// Match the entry in ../src/tex-strings.C. Why not "default"?
-string h_papersize               = "Default";
+string h_papersize               = "default";
 string h_paperpackage            = "none";
-string h_use_geometry            = "0";
+string h_use_geometry            = "false";
 string h_use_amsmath             = "0";
 string h_cite_engine             = "basic";
-string h_use_bibtopic            = "0";
+string h_use_bibtopic            = "false";
 string h_paperorientation        = "portrait";
 string h_secnumdepth             = "3";
 string h_tocdepth                = "3";
@@ -85,7 +84,8 @@ string h_quotes_times            = "2";
 string h_papercolumns            = "1";
 string h_papersides              = string();
 string h_paperpagestyle          = "default";
-string h_tracking_changes        = "0";
+string h_tracking_changes        = "false";
+string h_output_changes          = "false";
 
 
 void handle_opt(vector<string> & opts, char const * const * what, string & target)
@@ -131,7 +131,7 @@ vector<string> split_options(string const & input)
                } else if (t.cat() != catSpace)
                        option += t.asInput();
        }
-       
+
        if (!option.empty())
                options.push_back(option);
 
@@ -226,7 +226,9 @@ void handle_package(string const & name, string const & opts)
 void end_preamble(ostream & os, LyXTextClass const & /*textclass*/)
 {
        os << "#LyX file created by  tex2lyx 0.1.2\n"
-          << "\\lyxformat 235\n"
+          << "\\lyxformat 241\n"
+          << "\\begin_document\n"
+          << "\\begin_header\n"
           << "\\textclass " << h_textclass << "\n"
           << "\\begin_preamble\n" << h_preamble.str() << "\n\\end_preamble\n";
        if (!h_options.empty())
@@ -254,7 +256,9 @@ void end_preamble(ostream & os, LyXTextClass const & /*textclass*/)
           << "\\papersides " << h_papersides << "\n"
           << "\\paperpagestyle " << h_paperpagestyle << "\n"
           << "\\tracking_changes " << h_tracking_changes << "\n"
-          << "\\end_header\n";
+          << "\\output_changes " << h_output_changes << "\n"
+          << "\\end_header\n\n"
+          << "\\begin_body\n";
        // clear preamble for subdocuments
        h_preamble.str("");
 }
@@ -327,7 +331,8 @@ LyXTextClass const parse_preamble(Parser & p, ostream & os, string const & force
                                star = true;
                        }
                        string const name = p.verbatim_item();
-                       string const opts = p.getOpt();
+                       string const opt1 = p.getOpt();
+                       string const opt2 = p.getFullOpt();
                        string const body = p.verbatim_item();
                        // only non-lyxspecific stuff
                        if (   name != "\\noun"
@@ -343,8 +348,12 @@ LyXTextClass const parse_preamble(Parser & p, ostream & os, string const & force
                                ss << '\\' << t.cs();
                                if (star)
                                        ss << '*';
-                               ss << '{' << name << '}' << opts << '{' << body << "}";
+                               ss << '{' << name << '}' << opt1 << opt2
+                                  << '{' << body << "}";
                                h_preamble << ss.str();
+
+                               // Add the command to the known commands
+                               add_known_command(name, opt1, !opt2.empty());
 /*
                                ostream & out = in_preamble ? h_preamble : os;
                                out << "\\" << t.cs() << "{" << name << "}"
@@ -358,6 +367,10 @@ LyXTextClass const parse_preamble(Parser & p, ostream & os, string const & force
                        split(p.getArg('[', ']'), opts, ',');
                        handle_opt(opts, known_languages, h_language);
                        handle_opt(opts, known_fontsizes, h_paperfontsize);
+                       // delete "pt" at the end
+                       string::size_type i = h_paperfontsize.find("pt");
+                       if (i != string::npos)
+                               h_paperfontsize.erase(i);
                        h_quotes_language = h_language;
                        h_options = join(opts, ",");
                        h_textclass = p.getArg('{', '}');
@@ -386,8 +399,8 @@ LyXTextClass const parse_preamble(Parser & p, ostream & os, string const & force
                        ss << p.getOpt();
                        ss << '{' << p.verbatim_item() << '}';
                        ss << '{' << p.verbatim_item() << '}';
-                       if (name != "lyxcode" && name != "lyxlist"
-                                       && name != "lyxrightadress" && name != "lyxaddress")
+                       if (name != "lyxcode" && name != "lyxlist" &&
+                           name != "lyxrightadress" && name != "lyxaddress")
                                h_preamble << ss.str();
                }
 
@@ -395,7 +408,8 @@ LyXTextClass const parse_preamble(Parser & p, ostream & os, string const & force
                        string name = p.get_token().cs();
                        while (p.next_token().cat() != catBegin)
                                name += p.get_token().asString();
-                       h_preamble << "\\def\\" << name << '{' << p.verbatim_item() << "}";
+                       h_preamble << "\\def\\" << name << '{'
+                                  << p.verbatim_item() << "}";
                }
 
                else if (t.cs() == "newcolumntype") {