Hi, I just committed a few fixes to get UTF-8 latex export working.
Regards, Asger
Index: bufferparams.C =================================================================== --- bufferparams.C (revision 15381) +++ bufferparams.C (working copy) @@ -839,26 +839,32 @@ texrow.newline(); } - if (inputenc == "auto") { - string const doc_encoding = - language->encoding()->latexName(); + // TODO: Some people want to support more encodings than UTF-8. They can have a field day around here + if (true) { + os << "\\usepackage[utf8]{inputenc}\n"; + texrow.newline(); + } else { + if (inputenc == "auto") { + string const doc_encoding = + language->encoding()->latexName(); - // Create a list with all the input encodings used - // in the document - std::set<string> encodings = - features.getEncodingSet(doc_encoding); + // Create a list with all the input encodings used + // in the document + std::set<string> encodings = + features.getEncodingSet(doc_encoding); - os << "\\usepackage["; - std::set<string>::const_iterator it = encodings.begin(); - std::set<string>::const_iterator const end = encodings.end(); - for (; it != end; ++it) - os << lyx::from_ascii(*it) << ','; - os << lyx::from_ascii(doc_encoding) << "]{inputenc}\n"; - texrow.newline(); - } else if (inputenc != "default") { - os << "\\usepackage[" << lyx::from_ascii(inputenc) - << "]{inputenc}\n"; - texrow.newline(); + os << "\\usepackage["; + std::set<string>::const_iterator it = encodings.begin(); + std::set<string>::const_iterator const end = encodings.end(); + for (; it != end; ++it) + os << lyx::from_ascii(*it) << ','; + os << lyx::from_ascii(doc_encoding) << "]{inputenc}\n"; + texrow.newline(); + } else if (inputenc != "default") { + os << "\\usepackage[" << lyx::from_ascii(inputenc) + << "]{inputenc}\n"; + texrow.newline(); + } } if (use_geometry || nonstandard_papersize) { Index: mathed/InsetMathMBox.C =================================================================== --- mathed/InsetMathMBox.C (revision 15381) +++ mathed/InsetMathMBox.C (working copy) @@ -25,10 +25,10 @@ #include "paragraph.h" #include "texrow.h" +using lyx::odocstream; using std::auto_ptr; using std::endl; - InsetMathMBox::InsetMathMBox(BufferView & bv) : text_(&bv), bv_(&bv) { @@ -73,7 +73,7 @@ ws << "}"; } else { ws << "\\mbox{\n"; - text_.write(*bv_->buffer(), ws.os()); +// text_.write(*bv_->buffer(), ws.os()); ws << "}"; } } Index: output_latex.C =================================================================== --- output_latex.C (revision 15381) +++ output_latex.C (working copy) @@ -292,12 +292,14 @@ } } - if (bparams.inputenc == "auto" && - language->encoding() != previous_language->encoding()) { - os << "\\inputencoding{" - << lyx::from_ascii(language->encoding()->latexName()) - << "}\n"; - texrow.newline(); + if (false) { + if (bparams.inputenc == "auto" && + language->encoding() != previous_language->encoding()) { + os << "\\inputencoding{" + << lyx::from_ascii(language->encoding()->latexName()) + << "}\n"; + texrow.newline(); + } } // In an an inset with unlimited length (all in one row), Index: paragraph_pimpl.C =================================================================== --- paragraph_pimpl.C (revision 15381) +++ paragraph_pimpl.C (working copy) @@ -666,7 +666,7 @@ // I assume this is hack treating typewriter as verbatim if (font.family() == LyXFont::TYPEWRITER_FAMILY) { if (c != '\0') { - os << c; + os.put(c); } break; } @@ -691,7 +691,7 @@ } if (pnr == phrases_nr && c != '\0') { - os << c; + os.put(c); } break; }