X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fbufferparams.C;h=be159dc2a31e652896f7ae1c7c017c8f5eb533ad;hb=b9963e1a57135c3e2ab128a9ec4300f0e4886992;hp=d3c842ae8771341010a539954d9b75e5b32426cd;hpb=04a381977918db73961a14fe0799a0051a3c1689;p=lyx.git diff --git a/src/bufferparams.C b/src/bufferparams.C index d3c842ae87..be159dc2a3 100644 --- a/src/bufferparams.C +++ b/src/bufferparams.C @@ -105,42 +105,23 @@ QuotesLangTranslator const & quoteslangtranslator() } -// Quote times -typedef Translator QuotesTimesTranslator; - - -QuotesTimesTranslator const init_quotestimestranslator() -{ - QuotesTimesTranslator translator(1, InsetQuotes::SingleQ); - translator.addPair(2, InsetQuotes::DoubleQ); - return translator; -} - - -QuotesTimesTranslator const & quotestimestranslator() -{ - static QuotesTimesTranslator translator = init_quotestimestranslator(); - return translator; -} - - // Paper size -typedef Translator PaperSizeTranslator; +typedef Translator PaperSizeTranslator; PaperSizeTranslator const init_papersizetranslator() { - PaperSizeTranslator translator(string_papersize[0], VM_PAPER_DEFAULT); - translator.addPair(string_papersize[1], VM_PAPER_CUSTOM); - translator.addPair(string_papersize[2], VM_PAPER_USLETTER); - translator.addPair(string_papersize[3], VM_PAPER_USLEGAL); - translator.addPair(string_papersize[4], VM_PAPER_USEXECUTIVE); - translator.addPair(string_papersize[5], VM_PAPER_A3); - translator.addPair(string_papersize[6], VM_PAPER_A4); - translator.addPair(string_papersize[7], VM_PAPER_A5); - translator.addPair(string_papersize[8], VM_PAPER_B3); - translator.addPair(string_papersize[9], VM_PAPER_B4); - translator.addPair(string_papersize[10], VM_PAPER_B5); + PaperSizeTranslator translator(string_papersize[0], PAPER_DEFAULT); + translator.addPair(string_papersize[1], PAPER_CUSTOM); + translator.addPair(string_papersize[2], PAPER_USLETTER); + translator.addPair(string_papersize[3], PAPER_USLEGAL); + translator.addPair(string_papersize[4], PAPER_USEXECUTIVE); + translator.addPair(string_papersize[5], PAPER_A3); + translator.addPair(string_papersize[6], PAPER_A4); + translator.addPair(string_papersize[7], PAPER_A5); + translator.addPair(string_papersize[8], PAPER_B3); + translator.addPair(string_papersize[9], PAPER_B4); + translator.addPair(string_papersize[10], PAPER_B5); return translator; } @@ -152,27 +133,6 @@ PaperSizeTranslator const & papersizetranslator() } -// Paper packages -typedef Translator PaperPackagesTranslator; - - -PaperPackagesTranslator const init_paperpackagestranslator() -{ - PaperPackagesTranslator translator(string_paperpackages[0], PACKAGE_NONE); - translator.addPair(string_paperpackages[1], PACKAGE_A4); - translator.addPair(string_paperpackages[2], PACKAGE_A4WIDE); - translator.addPair(string_paperpackages[3], PACKAGE_WIDEMARGINSA4); - return translator; -} - - -PaperPackagesTranslator const & paperpackagestranslator() -{ - static PaperPackagesTranslator translator = init_paperpackagestranslator(); - return translator; -} - - // Paper orientation typedef Translator PaperOrientationTranslator; @@ -328,13 +288,10 @@ BufferParams::BufferParams() { paragraph_separation = PARSEP_INDENT; quotes_language = InsetQuotes::EnglishQ; - quotes_times = InsetQuotes::DoubleQ; fontsize = "default"; /* PaperLayout */ papersize = PAPER_DEFAULT; - papersize2 = VM_PAPER_DEFAULT; /* DEFAULT */ - paperpackage = PACKAGE_NONE; orientation = ORIENTATION_PORTRAIT; use_geometry = false; use_amsmath = AMS_AUTO; @@ -483,18 +440,10 @@ string const BufferParams::readToken(LyXLex & lex, string const & token) string quotes_lang; lex >> quotes_lang; quotes_language = quoteslangtranslator().find(quotes_lang); - } else if (token == "\\quotes_times") { - int qtimes; - lex >> qtimes; - quotes_times = quotestimestranslator().find(qtimes); } else if (token == "\\papersize") { string ppsize; lex >> ppsize; - papersize2 = papersizetranslator().find(ppsize); - } else if (token == "\\paperpackage") { - string ppackage; - lex >> ppackage; - paperpackage = paperpackagestranslator().find(ppackage); + papersize = papersizetranslator().find(ppsize); } else if (token == "\\use_geometry") { lex >> use_geometry; } else if (token == "\\use_amsmath") { @@ -639,8 +588,7 @@ void BufferParams::writeFile(ostream & os) const spacing().writeFile(os); - os << "\\papersize " << string_papersize[papersize2] - << "\n\\paperpackage " << string_paperpackages[paperpackage] + os << "\\papersize " << string_papersize[papersize] << "\n\\use_geometry " << convert(use_geometry) << "\n\\use_amsmath " << use_amsmath << "\n\\cite_engine " << citeenginetranslator().find(cite_engine) @@ -648,8 +596,8 @@ void BufferParams::writeFile(ostream & os) const << "\n\\paperorientation " << string_orientation[orientation] << '\n'; - std::list::const_iterator it = branchlist().begin(); - std::list::const_iterator end = branchlist().end(); + BranchList::const_iterator it = branchlist().begin(); + BranchList::const_iterator end = branchlist().end(); for (; it != end; ++it) { os << "\\branch " << it->getBranch() << "\n\\selected " << it->getSelected() @@ -691,9 +639,7 @@ void BufferParams::writeFile(ostream & os) const << string_paragraph_separation[paragraph_separation] << "\n\\defskip " << getDefSkip().asLyXCommand() << "\n\\quotes_language " - << string_quotes_language[quotes_language] << '\n' - << "\\quotes_times " - << quotestimestranslator().find(quotes_times) + << string_quotes_language[quotes_language] << "\n\\papercolumns " << columns << "\n\\papersides " << sides << "\n\\paperpagestyle " << pagestyle << '\n'; @@ -741,32 +687,37 @@ bool BufferParams::writeLaTeX(ostream & os, LaTeXFeatures & features, clsoptions << fontsize << "pt,"; } + // custom, A3, B3 and B4 paper sizes need geometry + bool nonstandard_papersize = (papersize == PAPER_B3) || + (papersize == PAPER_B4) || + (papersize == PAPER_A3) || + (papersize == PAPER_CUSTOM); - if (!use_geometry && - (paperpackage == PACKAGE_NONE)) { + if (!use_geometry) { switch (papersize) { - case PAPER_A3PAPER: - clsoptions << "a3paper,"; - break; - case PAPER_A4PAPER: + case PAPER_A4: clsoptions << "a4paper,"; break; case PAPER_USLETTER: clsoptions << "letterpaper,"; break; - case PAPER_A5PAPER: + case PAPER_A5: clsoptions << "a5paper,"; break; - case PAPER_B5PAPER: + case PAPER_B5: clsoptions << "b5paper,"; break; - case PAPER_EXECUTIVEPAPER: + case PAPER_USEXECUTIVE: clsoptions << "executivepaper,"; break; - case PAPER_LEGALPAPER: + case PAPER_USLEGAL: clsoptions << "legalpaper,"; break; case PAPER_DEFAULT: + case PAPER_A3: + case PAPER_B3: + case PAPER_B4: + case PAPER_CUSTOM: break; } } @@ -863,33 +814,14 @@ bool BufferParams::writeLaTeX(ostream & os, LaTeXFeatures & features, texrow.newline(); } - // At the very beginning the text parameters. - if (paperpackage != PACKAGE_NONE) { - switch (paperpackage) { - case PACKAGE_NONE: - break; - case PACKAGE_A4: - os << "\\usepackage{a4}\n"; - texrow.newline(); - break; - case PACKAGE_A4WIDE: - os << "\\usepackage{a4wide}\n"; - texrow.newline(); - break; - case PACKAGE_WIDEMARGINSA4: - os << "\\usepackage[widemargins]{a4}\n"; - texrow.newline(); - break; - } - } - if (use_geometry) { + if (use_geometry || nonstandard_papersize) { os << "\\usepackage{geometry}\n"; texrow.newline(); os << "\\geometry{verbose"; if (orientation == ORIENTATION_LANDSCAPE) os << ",landscape"; - switch (papersize2) { - case VM_PAPER_CUSTOM: + switch (papersize) { + case PAPER_CUSTOM: if (!paperwidth.empty()) os << ",paperwidth=" << paperwidth; @@ -897,58 +829,62 @@ bool BufferParams::writeLaTeX(ostream & os, LaTeXFeatures & features, os << ",paperheight=" << paperheight; break; - case VM_PAPER_USLETTER: + case PAPER_USLETTER: os << ",letterpaper"; break; - case VM_PAPER_USLEGAL: + case PAPER_USLEGAL: os << ",legalpaper"; break; - case VM_PAPER_USEXECUTIVE: + case PAPER_USEXECUTIVE: os << ",executivepaper"; break; - case VM_PAPER_A3: + case PAPER_A3: os << ",a3paper"; break; - case VM_PAPER_A4: + case PAPER_A4: os << ",a4paper"; break; - case VM_PAPER_A5: + case PAPER_A5: os << ",a5paper"; break; - case VM_PAPER_B3: + case PAPER_B3: os << ",b3paper"; break; - case VM_PAPER_B4: + case PAPER_B4: os << ",b4paper"; break; - case VM_PAPER_B5: + case PAPER_B5: os << ",b5paper"; break; default: - // default papersize ie VM_PAPER_DEFAULT + // default papersize ie PAPER_DEFAULT switch (lyxrc.default_papersize) { case PAPER_DEFAULT: // keep compiler happy case PAPER_USLETTER: os << ",letterpaper"; break; - case PAPER_LEGALPAPER: + case PAPER_USLEGAL: os << ",legalpaper"; break; - case PAPER_EXECUTIVEPAPER: + case PAPER_USEXECUTIVE: os << ",executivepaper"; break; - case PAPER_A3PAPER: + case PAPER_A3: os << ",a3paper"; break; - case PAPER_A4PAPER: + case PAPER_A4: os << ",a4paper"; break; - case PAPER_A5PAPER: + case PAPER_A5: os << ",a5paper"; break; - case PAPER_B5PAPER: + case PAPER_B5: os << ",b5paper"; break; + case PAPER_B3: + case PAPER_B4: + case PAPER_CUSTOM: + break; } } if (!topmargin.empty()) @@ -1124,33 +1060,6 @@ bool BufferParams::writeLaTeX(ostream & os, LaTeXFeatures & features, } -void BufferParams::setPaperStuff() -{ - papersize = PAPER_DEFAULT; - char const c1 = paperpackage; - if (c1 == PACKAGE_NONE) { - char const c2 = papersize2; - if (c2 == VM_PAPER_USLETTER) - papersize = PAPER_USLETTER; - else if (c2 == VM_PAPER_USLEGAL) - papersize = PAPER_LEGALPAPER; - else if (c2 == VM_PAPER_USEXECUTIVE) - papersize = PAPER_EXECUTIVEPAPER; - else if (c2 == VM_PAPER_A3) - papersize = PAPER_A3PAPER; - else if (c2 == VM_PAPER_A4) - papersize = PAPER_A4PAPER; - else if (c2 == VM_PAPER_A5) - papersize = PAPER_A5PAPER; - else if ((c2 == VM_PAPER_B3) || (c2 == VM_PAPER_B4) || - (c2 == VM_PAPER_B5)) - papersize = PAPER_B5PAPER; - } else if ((c1 == PACKAGE_A4) || (c1 == PACKAGE_A4WIDE) || - (c1 == PACKAGE_WIDEMARGINSA4)) - papersize = PAPER_A4PAPER; -} - - void BufferParams::useClassDefaults() { LyXTextClass const & tclass = textclasslist[textclass]; @@ -1224,7 +1133,7 @@ void BufferParams::readGraphicsDriver(LyXLex & lex) if (test == tmptok) { graphicsDriver = tmptok; break; - } else if (test == "last_item") { + } else if (test == "") { lex.printError( "Warning: graphics driver `$$Token' not recognized!\n" " Setting graphics driver to `default'.\n"); @@ -1273,17 +1182,17 @@ string const BufferParams::paperSizeName() const real_papersize = lyxrc.default_papersize; switch (real_papersize) { - case PAPER_A3PAPER: + case PAPER_A3: return "a3"; - case PAPER_A4PAPER: + case PAPER_A4: return "a4"; - case PAPER_A5PAPER: + case PAPER_A5: return "a5"; - case PAPER_B5PAPER: + case PAPER_B5: return "b5"; - case PAPER_EXECUTIVEPAPER: + case PAPER_USEXECUTIVE: return "foolscap"; - case PAPER_LEGALPAPER: + case PAPER_USLEGAL: return "legal"; case PAPER_USLETTER: default: @@ -1297,7 +1206,7 @@ string const BufferParams::dvips_options() const string result; if (use_geometry - && papersize2 == VM_PAPER_CUSTOM + && papersize == PAPER_CUSTOM && !lyxrc.print_paper_dimension_flag.empty() && !paperwidth.empty() && !paperheight.empty()) { @@ -1317,7 +1226,7 @@ string const BufferParams::dvips_options() const } } if (orientation == ORIENTATION_LANDSCAPE && - papersize2 != VM_PAPER_CUSTOM) + papersize != PAPER_CUSTOM) result += ' ' + lyxrc.print_landscape_flag; return result; }