X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fbufferparams.C;h=e4d23afe0b17614abefc3cacf998cf8e2f6b135b;hb=35204f8f33d7400a5fefeffea533fb4cb4097211;hp=61d1088e46c1eb3a342b445e484e8d80cfa3b390;hpb=eb11f2c542876ad71c5bfdcc207c57a26a0eeb8b;p=lyx.git diff --git a/src/bufferparams.C b/src/bufferparams.C index 61d1088e46..e4d23afe0b 100644 --- a/src/bufferparams.C +++ b/src/bufferparams.C @@ -46,12 +46,12 @@ #include -namespace support = lyx::support; -using lyx::docstring; -using lyx::support::bformat; -using lyx::support::rtrim; -using lyx::support::tokenPos; +namespace lyx { + +using support::bformat; +using support::rtrim; +using support::tokenPos; using std::endl; using std::string; @@ -60,7 +60,7 @@ using std::ostream; using std::ostringstream; using std::pair; -namespace biblio = lyx::biblio; +namespace Alert = lyx::frontend::Alert; // Local translators @@ -174,23 +174,22 @@ SidesTranslator const & sidestranslator() } - -// AMS -typedef Translator AMSTranslator; +// LaTeX packages +typedef Translator PackageTranslator; -AMSTranslator const init_amstranslator() +PackageTranslator const init_packagetranslator() { - AMSTranslator translator(0, BufferParams::AMS_OFF); - translator.addPair(1, BufferParams::AMS_AUTO); - translator.addPair(2, BufferParams::AMS_ON); + PackageTranslator translator(0, BufferParams::package_off); + translator.addPair(1, BufferParams::package_auto); + translator.addPair(2, BufferParams::package_on); return translator; } -AMSTranslator const & amstranslator() +PackageTranslator const & packagetranslator() { - static AMSTranslator translator = init_amstranslator(); + static PackageTranslator translator = init_packagetranslator(); return translator; } @@ -297,7 +296,8 @@ BufferParams::BufferParams() papersize = PAPER_DEFAULT; orientation = ORIENTATION_PORTRAIT; use_geometry = false; - use_amsmath = AMS_AUTO; + use_amsmath = package_auto; + use_esint = package_auto; cite_engine = biblio::ENGINE_BASIC; use_bibtopic = false; trackChanges = false; @@ -431,7 +431,7 @@ string const BufferParams::readToken(LyXLex & lex, string const & token) if (!getLyXTextClass().isTeXClassAvailable()) { docstring const msg = bformat(_("The document uses a missing " - "TeX class \"%1$s\".\n"), lyx::from_utf8(classname)); + "TeX class \"%1$s\".\n"), from_utf8(classname)); Alert::warning(_("Document class not available"), msg + _("LyX will not be able to produce output.")); } @@ -482,7 +482,11 @@ string const BufferParams::readToken(LyXLex & lex, string const & token) } else if (token == "\\use_amsmath") { int use_ams; lex >> use_ams; - use_amsmath = amstranslator().find(use_ams); + use_amsmath = packagetranslator().find(use_ams); + } else if (token == "\\use_esint") { + int useesint; + lex >> useesint; + use_esint = packagetranslator().find(useesint); } else if (token == "\\cite_engine") { string engine; lex >> engine; @@ -495,7 +499,7 @@ string const BufferParams::readToken(LyXLex & lex, string const & token) lex >> outputChanges; } else if (token == "\\branch") { lex.next(); - string branch = lex.getString(); + docstring branch = lex.getDocString(); branchlist().add(branch); while (true) { lex.next(); @@ -517,7 +521,8 @@ string const BufferParams::readToken(LyXLex & lex, string const & token) // Update also the LColor table: if (color == "none") color = lcolor.getX11Name(LColor::background); - lcolor.setColor(branch, color); + // FIXME UNICODE + lcolor.setColor(to_utf8(branch), color); } } @@ -631,6 +636,7 @@ void BufferParams::writeFile(ostream & os) const os << "\\papersize " << string_papersize[papersize] << "\n\\use_geometry " << convert(use_geometry) << "\n\\use_amsmath " << use_amsmath + << "\n\\use_esint " << use_esint << "\n\\cite_engine " << citeenginetranslator().find(cite_engine) << "\n\\use_bibtopic " << convert(use_bibtopic) << "\n\\paperorientation " << string_orientation[orientation] @@ -639,7 +645,7 @@ void BufferParams::writeFile(ostream & os) const BranchList::const_iterator it = branchlist().begin(); BranchList::const_iterator end = branchlist().end(); for (; it != end; ++it) { - os << "\\branch " << it->getBranch() + os << "\\branch " << to_utf8(it->getBranch()) << "\n\\selected " << it->getSelected() << "\n\\color " << lyx::X11hexname(it->getColor()) << "\n\\end_branch" @@ -692,8 +698,9 @@ void BufferParams::writeFile(ostream & os) const << user_defined_bullet(i).getSize() << "\n"; } else { + // FIXME UNICODE os << "\\bulletLaTeX " << i << " \"" - << user_defined_bullet(i).getText() + << lyx::to_ascii(user_defined_bullet(i).getText()) << "\"\n"; } } @@ -702,18 +709,15 @@ void BufferParams::writeFile(ostream & os) const os << "\\tracking_changes " << convert(trackChanges) << "\n"; os << "\\output_changes " << convert(outputChanges) << "\n"; - if (trackChanges) { - // FIXME: Change tracking (MG) - AuthorList::Authors::const_iterator it = pimpl_->authorlist.begin(); - AuthorList::Authors::const_iterator end = pimpl_->authorlist.end(); - for (; it != end; ++it) { - os << "\\author " << it->second << "\n"; - } + AuthorList::Authors::const_iterator a_it = pimpl_->authorlist.begin(); + AuthorList::Authors::const_iterator a_end = pimpl_->authorlist.end(); + for (; a_it != a_end; ++a_it) { + os << "\\author " << a_it->second << "\n"; } } -bool BufferParams::writeLaTeX(ostream & os, LaTeXFeatures & features, +bool BufferParams::writeLaTeX(odocstream & os, LaTeXFeatures & features, TexRow & texrow) const { os << "\\documentclass"; @@ -729,10 +733,10 @@ bool BufferParams::writeLaTeX(ostream & os, LaTeXFeatures & features, } // custom, A3, B3 and B4 paper sizes need geometry - bool nonstandard_papersize = (papersize == PAPER_B3) || - (papersize == PAPER_B4) || - (papersize == PAPER_A3) || - (papersize == PAPER_CUSTOM); + bool nonstandard_papersize = papersize == PAPER_B3 + || papersize == PAPER_B4 + || papersize == PAPER_A3 + || papersize == PAPER_CUSTOM; if (!use_geometry) { switch (papersize) { @@ -810,10 +814,11 @@ bool BufferParams::writeLaTeX(ostream & os, LaTeXFeatures & features, string strOptions(clsoptions.str()); if (!strOptions.empty()) { strOptions = rtrim(strOptions, ","); - os << '[' << strOptions << ']'; + // FIXME UNICODE + os << '[' << from_utf8(strOptions) << ']'; } - os << '{' << tclass.latexname() << "}\n"; + os << '{' << from_ascii(tclass.latexname()) << "}\n"; texrow.newline(); // end of \documentclass defs @@ -823,15 +828,15 @@ bool BufferParams::writeLaTeX(ostream & os, LaTeXFeatures & features, fontsTypewriter, fontsSC, fontsOSF, fontsSansScale, fontsTypewriterScale); if (!fonts.empty()) { - os << fonts; + os << from_ascii(fonts); texrow.newline(); } if (fontsDefaultFamily != "default") os << "\\renewcommand{\\familydefault}{\\" - << fontsDefaultFamily << "}\n"; + << from_ascii(fontsDefaultFamily) << "}\n"; // this one is not per buffer if (lyxrc.fontenc != "default") { - os << "\\usepackage[" << lyxrc.fontenc + os << "\\usepackage[" << from_ascii(lyxrc.fontenc) << "]{fontenc}\n"; texrow.newline(); } @@ -846,12 +851,14 @@ bool BufferParams::writeLaTeX(ostream & os, LaTeXFeatures & features, features.getEncodingSet(doc_encoding); os << "\\usepackage["; - std::copy(encodings.begin(), encodings.end(), - std::ostream_iterator(os, ",")); - os << doc_encoding << "]{inputenc}\n"; + std::set::const_iterator it = encodings.begin(); + std::set::const_iterator const end = encodings.end(); + for (; it != end; ++it) + os << from_ascii(*it) << ','; + os << from_ascii(doc_encoding) << "]{inputenc}\n"; texrow.newline(); } else if (inputenc != "default") { - os << "\\usepackage[" << inputenc + os << "\\usepackage[" << from_ascii(inputenc) << "]{inputenc}\n"; texrow.newline(); } @@ -866,10 +873,10 @@ bool BufferParams::writeLaTeX(ostream & os, LaTeXFeatures & features, case PAPER_CUSTOM: if (!paperwidth.empty()) os << ",paperwidth=" - << paperwidth; + << from_ascii(paperwidth); if (!paperheight.empty()) os << ",paperheight=" - << paperheight; + << from_ascii(paperheight); break; case PAPER_USLETTER: os << ",letterpaper"; @@ -930,19 +937,19 @@ bool BufferParams::writeLaTeX(ostream & os, LaTeXFeatures & features, } } if (!topmargin.empty()) - os << ",tmargin=" << topmargin; + os << ",tmargin=" << from_ascii(topmargin); if (!bottommargin.empty()) - os << ",bmargin=" << bottommargin; + os << ",bmargin=" << from_ascii(bottommargin); if (!leftmargin.empty()) - os << ",lmargin=" << leftmargin; + os << ",lmargin=" << from_ascii(leftmargin); if (!rightmargin.empty()) - os << ",rmargin=" << rightmargin; + os << ",rmargin=" << from_ascii(rightmargin); if (!headheight.empty()) - os << ",headheight=" << headheight; + os << ",headheight=" << from_ascii(headheight); if (!headsep.empty()) - os << ",headsep=" << headsep; + os << ",headsep=" << from_ascii(headsep); if (!footskip.empty()) - os << ",footskip=" << footskip; + os << ",footskip=" << from_ascii(footskip); os << "}\n"; texrow.newline(); } @@ -953,7 +960,7 @@ bool BufferParams::writeLaTeX(ostream & os, LaTeXFeatures & features, os << "\\usepackage{fancyhdr}\n"; texrow.newline(); } - os << "\\pagestyle{" << pagestyle << "}\n"; + os << "\\pagestyle{" << from_ascii(pagestyle) << "}\n"; texrow.newline(); } @@ -986,7 +993,7 @@ bool BufferParams::writeLaTeX(ostream & os, LaTeXFeatures & features, break; case VSpace::LENGTH: os << "\\setlength\\parskip{" - << getDefSkip().length().asLatexString() + << from_utf8(getDefSkip().length().asLatexString()) << "}\n"; break; default: // should never happen // Then delete it. @@ -1001,22 +1008,22 @@ bool BufferParams::writeLaTeX(ostream & os, LaTeXFeatures & features, // If we use jurabib, we have to call babel here. if (use_babel && features.isRequired("jurabib")) { - os << babelCall(language_options.str()) + os << from_ascii(babelCall(language_options.str())) << '\n' - << features.getBabelOptions(); + << from_ascii(features.getBabelOptions()); texrow.newline(); } // Now insert the LyX specific LaTeX commands... // The optional packages; - string lyxpreamble(features.getPackages()); + docstring lyxpreamble(from_ascii(features.getPackages())); // this might be useful... lyxpreamble += "\n\\makeatletter\n"; // Some macros LyX will need - string tmppreamble(features.getMacros()); + docstring tmppreamble(from_ascii(features.getMacros())); if (!tmppreamble.empty()) { lyxpreamble += "\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% " @@ -1034,9 +1041,10 @@ bool BufferParams::writeLaTeX(ostream & os, LaTeXFeatures & features, /* the user-defined preamble */ if (!preamble.empty()) { + // FIXME UNICODE lyxpreamble += "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% " "User specified LaTeX commands.\n" - + preamble + '\n'; + + from_utf8(preamble) + '\n'; } // Itemize bullet settings need to be last in case the user @@ -1045,11 +1053,11 @@ bool BufferParams::writeLaTeX(ostream & os, LaTeXFeatures & features, // Actually it has to be done much later than that // since some packages like frenchb make modifications // at \begin{document} time -- JMarc - string bullets_def; + docstring bullets_def; for (int i = 0; i < 4; ++i) { if (user_defined_bullet(i) != ITEMIZE_DEFAULTS[i]) { if (bullets_def.empty()) - bullets_def="\\AtBeginDocument{\n"; + bullets_def += "\\AtBeginDocument{\n"; bullets_def += " \\def\\labelitemi"; switch (i) { // `i' is one less than the item to modify @@ -1078,8 +1086,9 @@ bool BufferParams::writeLaTeX(ostream & os, LaTeXFeatures & features, // with other packages. // Jurabib has to be called after babel, though. if (use_babel && !features.isRequired("jurabib")) { - lyxpreamble += babelCall(language_options.str()) + '\n'; - lyxpreamble += features.getBabelOptions(); + // FIXME UNICODE + lyxpreamble += from_utf8(babelCall(language_options.str())) + '\n'; + lyxpreamble += from_utf8(features.getBabelOptions()); } lyxpreamble += "\\makeatother\n"; @@ -1230,7 +1239,7 @@ void BufferParams::readBulletsLaTeX(LyXLex & lex) if (!lex.next()) return; int const index = lex.getInteger(); lex.next(true); - string const temp_str = lex.getString(); + docstring const temp_str = lex.getDocString(); user_defined_bullet(index).setText(temp_str); temp_bullet(index).setText(temp_str); @@ -1438,3 +1447,6 @@ string const BufferParams::loadFonts(LaTeXFeatures & features, string const & rm return os.str(); } + + +} // namespace lyx