This patch fixes wrong output of paperfontsize and updates the file format to 241 in tex2lyx. Committing now.
Georg
diff -p -r -U 3 -X excl.tmp lyx-1.4-clean/src/tex2lyx/ChangeLog lyx-1.4-cvs/src/tex2lyx/ChangeLog --- lyx-1.4-clean/src/tex2lyx/ChangeLog 2005-02-03 20:13:24.000000000 +0100 +++ lyx-1.4-cvs/src/tex2lyx/ChangeLog 2005-02-06 09:59:31.000000000 +0100 @@ -1,3 +1,14 @@ +2005-02-05 Georg Baum <[EMAIL PROTECTED]> + + * context.C (begin_deeper, end_deeper): adjust output to LyX + * preamble.C (h_output_changes): new + * preamble.C (end_preamble): output paperfontsize without unit + * preamble.C (end_preamble): change file format from 237 to 241 + * text.C (parse_environment, parse_text): adjust paragraph parameters + to new file format + * text.C (handle_ert, handle_comment): adjust newlines to new file + format + 2005-02-03 Angus Leeming <[EMAIL PROTECTED]> * Makefile.am: make -lz conditional on USE_COMPRESSION. diff -p -r -U 3 -X excl.tmp lyx-1.4-clean/src/tex2lyx/context.C lyx-1.4-cvs/src/tex2lyx/context.C --- lyx-1.4-clean/src/tex2lyx/context.C 2004-10-11 14:07:15.000000000 +0200 +++ lyx-1.4-cvs/src/tex2lyx/context.C 2004-10-31 09:17:27.000000000 +0100 @@ -36,13 +36,13 @@ void end_layout(ostream & os) void begin_deeper(ostream & os) { - os << "\n\\begin_deeper\n"; + os << "\n\\begin_deeper"; } void end_deeper(ostream & os) { - os << "\n\\end_deeper\n"; + os << "\n\\end_deeper"; } } @@ -73,7 +97,10 @@ void Context::check_layout(ostream & os) // are we in a list-like environment? if (layout->isEnvironment() && layout->latextype != LATEX_ENVIRONMENT) { + // A list-like environment if (has_item) { + // a new item. If we had a standard + // paragraph before, we have to end it. if (deeper_paragraph) { end_deeper(os); deeper_paragraph = false; @@ -94,6 +121,7 @@ void Context::check_layout(ostream & os) deeper_paragraph = true; } } else { + // No list-like environment begin_layout(os, layout); need_layout=false; need_end_layout = true; @@ -119,6 +147,8 @@ void Context::check_end_layout(ostream & void Context::check_deeper(ostream & os) { if (parent_layout->isEnvironment()) { + // We start a nested environment. + // We need to increase the depth. if (need_end_deeper) { // no need to have \end_deeper \begin_deeper need_end_deeper = false; diff -p -r -U 3 -X excl.tmp lyx-1.4-clean/src/tex2lyx/preamble.C lyx-1.4-cvs/src/tex2lyx/preamble.C --- lyx-1.4-clean/src/tex2lyx/preamble.C 2005-01-06 20:28:50.000000000 +0100 +++ lyx-1.4-cvs/src/tex2lyx/preamble.C 2005-02-06 10:01:27.000000000 +0100 @@ -85,6 +89,7 @@ string h_papercolumns = "1"; string h_papersides = string(); string h_paperpagestyle = "default"; string h_tracking_changes = "false"; +string h_output_changes = "false"; void handle_opt(vector<string> & opts, char const * const * what, string & target) @@ -225,7 +252,7 @@ void handle_package(string const & name, void end_preamble(ostream & os, LyXTextClass const & /*textclass*/) { os << "#LyX file created by tex2lyx 0.1.2\n" - << "\\lyxformat 237\n" + << "\\lyxformat 241\n" << "\\begin_document\n" << "\\begin_header\n" << "\\textclass " << h_textclass << "\n" @@ -255,6 +287,7 @@ void end_preamble(ostream & os, LyXTextC << "\\papersides " << h_papersides << "\n" << "\\paperpagestyle " << h_paperpagestyle << "\n" << "\\tracking_changes " << h_tracking_changes << "\n" + << "\\output_changes " << h_output_changes << "\n" << "\\end_header\n\n" << "\\begin_body\n"; // clear preamble for subdocuments @@ -365,6 +516,10 @@ LyXTextClass const parse_preamble(Parser 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('{', '}'); @@ -393,16 +555,17 @@ LyXTextClass const parse_preamble(Parser 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(); } else if (t.cs() == "def") { 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") { diff -p -r -U 3 -X excl.tmp lyx-1.4-clean/src/tex2lyx/text.C lyx-1.4-cvs/src/tex2lyx/text.C --- lyx-1.4-clean/src/tex2lyx/text.C 2005-02-03 20:13:24.000000000 +0100 +++ lyx-1.4-cvs/src/tex2lyx/text.C 2005-02-04 22:10:52.000000000 +0100 @@ -197,7 +200,7 @@ map<string, string> split_map(string con * The latter can be a real unit like "pt", or a latex length variable * like "\textwidth". The unit may contain additional stuff like glue * lengths, but we don't care, because such lengths are ERT anyway. - * \return true if \param value and \param unit are valid. + * \returns true if \p value and \p unit are valid. */ bool splitLatexLength(string const & len, string & value, string & unit) { @@ -283,10 +286,10 @@ string translate_len(string const & leng /*! - * Translates a LaTeX length into \param value, \param unit and - * \param special parts suitable for a box inset. + * Translates a LaTeX length into \p value, \p unit and + * \p special parts suitable for a box inset. * The difference from translate_len() is that a box inset knows about - * some special "units" that are stored in \param special. + * some special "units" that are stored in \p special. */ void translate_box_len(string const & length, string & value, string & unit, string & special) { @@ -362,9 +365,10 @@ void handle_ert(ostream & os, string con for (string::const_iterator it = s.begin(), et = s.end(); it != et; ++it) { if (*it == '\\') os << "\n\\backslash\n"; - else if (*it == '\n') - os << "\n\\newline\n"; - else + else if (*it == '\n') { + newcontext.new_paragraph(os); + newcontext.check_layout(os); + } else os << *it; } newcontext.check_end_layout(os); @@ -386,7 +390,8 @@ void handle_comment(ostream & os, string os << *it; } // make sure that our comment is the last thing on the line - os << "\n\\newline"; + newcontext.new_paragraph(os); + newcontext.check_layout(os); newcontext.check_end_layout(os); end_inset(os); } @@ -687,11 +817,11 @@ void parse_environment(Parser & p, ostre parent_context.new_paragraph(os); } if (name == "flushleft" || name == "raggedright") - parent_context.add_extra_stuff("\\align left "); + parent_context.add_extra_stuff("\\align left\n"); else if (name == "flushright" || name == "raggedleft") - parent_context.add_extra_stuff("\\align right "); + parent_context.add_extra_stuff("\\align right\n"); else - parent_context.add_extra_stuff("\\align center "); + parent_context.add_extra_stuff("\\align center\n"); parse_text(p, os, FLAG_END, outer, parent_context); // Just in case the environment is empty .. parent_context.extra_stuff.erase(); @@ -1141,12 +1382,12 @@ void parse_text(Parser & p, ostream & os else if (t.cs() == "noindent") { p.skip_spaces(); - context.add_extra_stuff("\\noindent "); + context.add_extra_stuff("\\noindent\n"); } else if (t.cs() == "appendix") { p.skip_spaces(); - context.add_extra_stuff("\\start_of_appendix "); + context.add_extra_stuff("\\start_of_appendix\n"); } // Must attempt to parse "Section*" before "Section". @@ -1347,6 +1603,8 @@ void parse_text(Parser & p, ostream & os } else if (t.cs() == "makeindex" || t.cs() == "maketitle") { + // FIXME: Somehow prevent title layouts if + // "maketitle" was not found p.skip_spaces(); skip_braces(p); // swallow this } @@ -1471,8 +1728,8 @@ void parse_text(Parser & p, ostream & os else if (use_natbib && is_known(t.cs(), known_natbib_commands) && ((t.cs() != "citefullauthor" && - t.cs() != "citeyear" && - t.cs() != "citeyearpar") || + t.cs() != "citeyear" && + t.cs() != "citeyearpar") || p.next_token().asInput() != "*")) { context.check_layout(os); // tex lyx @@ -1541,12 +1798,12 @@ void parse_text(Parser & p, ostream & os string const citation = p.verbatim_item(); if (!before.empty() && argumentOrder == '\0') { cerr << "Warning: Assuming argument order " - << "of jurabib version 0.6 for\n'" + "of jurabib version 0.6 for\n'" << command << before << after << '{' << citation << "}'.\n" - << "Add 'jurabiborder' to the jurabib " - << "package options if you used an\n" - << "earlier jurabib version." << endl; + "Add 'jurabiborder' to the jurabib " + "package options if you used an\n" + "earlier jurabib version." << endl; } begin_inset(os, "LatexCommand "); os << command << after << before