use_mathdots = package_auto;
use_undertilde = package_auto;
cite_engine_ = ENGINE_BASIC;
+ biblio_style = "plain";
use_bibtopic = false;
use_indices = false;
trackChanges = false;
listings_params = string();
pagestyle = "default";
suppress_date = false;
+ justification = true;
// no color is the default (white)
backgroundcolor = lyx::rgbFromHexName("#ffffff");
isbackgroundcolor = false;
lex.next();
string const classname = lex.getString();
// if there exists a local layout file, ignore the system one
- // NOTE: in this case, the textclass (.cls file) is assumed to
+ // NOTE: in this case, the textclass (.cls file) is assumed to
// be available.
string tcp;
LayoutFileList & bcl = LayoutFileList::get();
setBaseClass(tcp);
else
setBaseClass(classname);
- // We assume that a tex class exists for local or unknown
+ // We assume that a tex class exists for local or unknown
// layouts so this warning, will only be given for system layouts.
if (!baseClass()->isTeXClassAvailable()) {
- docstring const desc =
+ docstring const desc =
translateIfPossible(from_utf8(baseClass()->description()));
- docstring const prereqs =
+ docstring const prereqs =
from_utf8(baseClass()->prerequisites());
docstring const msg =
bformat(_("The selected document class\n"
master = lex.getString();
} else if (token == "\\suppress_date") {
lex >> suppress_date;
+ } else if (token == "\\justification") {
+ lex >> justification;
} else if (token == "\\language") {
readLanguage(lex);
} else if (token == "\\language_package") {
string engine;
lex >> engine;
cite_engine_ = citeenginetranslator().find(engine);
+ } else if (token == "\\biblio_style") {
+ lex.eatLine();
+ biblio_style = lex.getString();
} else if (token == "\\use_bibtopic") {
lex >> use_bibtopic;
} else if (token == "\\use_indices") {
} else if (token == "\\use_refstyle") {
lex >> use_refstyle;
} else {
- lyxerr << "BufferParams::readToken(): Unknown token: " <<
+ lyxerr << "BufferParams::readToken(): Unknown token: " <<
token << endl;
return token;
}
}
// use the class options defined in the layout?
- os << "\\use_default_options "
+ os << "\\use_default_options "
<< convert<string>(use_default_options) << "\n";
// the master document
if (!master.empty()) {
os << "\\master " << master << '\n';
}
-
+
// removed modules
if (!removed_modules_.empty()) {
os << "\\begin_removed_modules" << '\n';
// local layout information
if (!local_layout.empty()) {
- // remove '\n' from the end
+ // remove '\n' from the end
string const tmplocal = rtrim(local_layout, "\n");
os << "\\begin_local_layout\n"
<< tmplocal
<< "\n\\use_mathdots " << use_mathdots
<< "\n\\use_undertilde " << use_undertilde
<< "\n\\cite_engine " << citeenginetranslator().find(cite_engine_)
+ << "\n\\biblio_style " << biblio_style
<< "\n\\use_bibtopic " << convert<string>(use_bibtopic)
<< "\n\\use_indices " << convert<string>(use_indices)
<< "\n\\paperorientation " << string_orientation[orientation]
<< "\n\\suppress_date " << convert<string>(suppress_date)
- << "\n\\use_refstyle " << use_refstyle
+ << "\n\\justification " << convert<string>(justification)
+ << "\n\\use_refstyle " << use_refstyle
<< '\n';
if (isbackgroundcolor == true)
os << "\\backgroundcolor " << lyx::X11hexname(backgroundcolor) << '\n';
os << "\\footskip "
<< VSpace(footskip).asLyXCommand() << '\n';
if (!columnsep.empty())
- os << "\\columnsep "
+ os << "\\columnsep "
<< VSpace(columnsep).asLyXCommand() << '\n';
os << "\\secnumdepth " << secnumdepth
<< "\n\\tocdepth " << tocdepth
<< "\\html_math_output " << html_math_output << '\n'
<< "\\html_css_as_file " << html_css_as_file << '\n'
<< "\\html_be_strict " << convert<string>(html_be_strict) << '\n';
-
+
if (html_math_img_scale != 1.0)
os << "\\html_math_img_scale " << convert<string>(html_math_img_scale) << '\n';
if (!html_latex_start.empty())
features.require("ulem");
features.require("xcolor");
// improves color handling in PDF output
- features.require("pdfcolmk");
+ features.require("pdfcolmk");
} else {
features.require("ct-none");
}
// the bullet shapes are buffer level not paragraph level
// so they are tested here
for (int i = 0; i < 4; ++i) {
- if (user_defined_bullet(i) == ITEMIZE_DEFAULTS[i])
+ if (user_defined_bullet(i) == ITEMIZE_DEFAULTS[i])
continue;
int const font = user_defined_bullet(i).getFont();
if (font == 0) {
mangledFileName();
if (!features.runparams().nice)
incfile = mangled;
- // \includeonly doesn't want an extension
+ // \includeonly doesn't want an extension
incfile = changeExtension(incfile, string());
incfile = support::latex_path(incfile);
if (!incfile.empty()) {
if (!listings_params.empty()) {
os << "\\lstset{";
- // do not test validity because listings_params is
+ // do not test validity because listings_params is
// supposed to be valid
string par =
InsetListingsParams(listings_params).separatedParams(true);
case PAPER_JISB6:
ods << ",b6j";
break;
- default:
- // default papersize ie PAPER_DEFAULT
- switch (lyxrc.default_papersize) {
- case PAPER_DEFAULT: // keep compiler happy
- break;
- case PAPER_USLETTER:
- ods << ",letterpaper";
- break;
- case PAPER_USLEGAL:
- ods << ",legalpaper";
- break;
- case PAPER_USEXECUTIVE:
- ods << ",executivepaper";
- break;
- case PAPER_A3:
- ods << ",a3paper";
- break;
- case PAPER_A4:
- ods << ",a4paper";
- break;
- case PAPER_A5:
- ods << ",a5paper";
- break;
- case PAPER_B5:
- ods << ",b5paper";
- break;
- case PAPER_A0:
- case PAPER_A1:
- case PAPER_A2:
- case PAPER_A6:
- case PAPER_B0:
- case PAPER_B1:
- case PAPER_B2:
- case PAPER_B3:
- case PAPER_B4:
- case PAPER_B6:
- case PAPER_C0:
- case PAPER_C1:
- case PAPER_C2:
- case PAPER_C3:
- case PAPER_C4:
- case PAPER_C5:
- case PAPER_C6:
- case PAPER_JISB0:
- case PAPER_JISB1:
- case PAPER_JISB2:
- case PAPER_JISB3:
- case PAPER_JISB4:
- case PAPER_JISB5:
- case PAPER_JISB6:
- case PAPER_CUSTOM:
- break;
- }
+ case PAPER_DEFAULT:
+ break;
}
docstring const g_options = trim(ods.str(), ",");
os << "\\usepackage";
if (isbackgroundcolor == true) {
// only require color here, the background color will be defined
// in LaTeXFeatures.cpp to avoid interferences with the LaTeX
- // package pdfpages
+ // package pdfpages
features.require("color");
features.require("pagecolor");
}
if (isfontcolor == true) {
// only require color here, the font color will be defined
// in LaTeXFeatures.cpp to avoid interferences with the LaTeX
- // package pdfpages
+ // package pdfpages
features.require("color");
features.require("fontcolor");
}
// Now insert the LyX specific LaTeX commands...
docstring lyxpreamble;
+ features.resolveAlternatives();
if (output_sync) {
if (!output_sync_macro.empty())
// we decided therefore to load color always before babel, see
// http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg144349.html
lyxpreamble += from_ascii(features.getColorOptions());
-
+
// If we use hyperref, jurabib, japanese, or vietnamese, we have to call babel before them.
if (use_babel
&& (features.isRequired("jurabib")
// avoid errors with algorithm floats.
// use hyperref explicitly if it is required
if (features.isRequired("hyperref")) {
- // pass what we have to stream here, since we need
+ // pass what we have to stream here, since we need
// to access the stream itself in PDFOptions.
os << lyxpreamble;
lyxpreamble += "[" + from_ascii(language->polyglossiaOpts()) + "]";
lyxpreamble += "{" + from_ascii(language->polyglossia()) + "}\n";
// now setup the other languages
- std::map<std::string, std::string> const polylangs =
+ std::map<std::string, std::string> const polylangs =
features.getPolyglossiaLanguages();
for (std::map<std::string, std::string>::const_iterator mit = polylangs.begin();
mit != polylangs.end() ; ++mit) {
LYXERR(Debug::TCLASS, "setBaseClass: " << classname);
LayoutFileList & bcl = LayoutFileList::get();
if (!bcl.haveClass(classname)) {
- docstring s =
+ docstring s =
bformat(_("The layout file:\n"
"%1$s\n"
"could not be found. A default textclass with default\n"
bool const success = bcl[classname].load();
if (!success) {
- docstring s =
+ docstring s =
bformat(_("Due to some error in it, the layout file:\n"
"%1$s\n"
"could not be loaded. A default textclass with default\n"
{
if (LayoutFileList::get().haveClass(pimpl_->baseClass_))
return &(LayoutFileList::get()[pimpl_->baseClass_]);
- else
+ else
return 0;
}
LayoutModuleList::const_iterator it = layout_modules_.begin();
LayoutModuleList::const_iterator end = layout_modules_.end();
for (; it != end; it++)
- if (*it == modName)
+ if (*it == modName)
return false;
layout_modules_.push_back(modName);
return true;
}
+namespace {
+bool formatSorter(Format const * lhs, Format const * rhs) {
+ return _(lhs->prettyname()) < _(rhs->prettyname());
+}
+}
+
+
vector<Format const *> BufferParams::exportableFormats(bool only_viewable) const
{
vector<string> const backs = backends();
theConverters().getReachable(*it, only_viewable, false, excludes);
result.insert(result.end(), r.begin(), r.end());
}
+ sort(result.begin(), result.end(), formatSorter);
return result;
}
bool BufferParams::isExportableFormat(string const & format) const
{
- typedef vector<Format const *> Formats;
- Formats formats;
- formats = exportableFormats(true);
- Formats::const_iterator fit = formats.begin();
- Formats::const_iterator end = formats.end();
- for (; fit != end ; ++fit) {
- if ((*fit)->name() == format)
- return true;
- }
- return false;
+ typedef vector<Format const *> Formats;
+ Formats formats;
+ formats = exportableFormats(true);
+ Formats::const_iterator fit = formats.begin();
+ Formats::const_iterator end = formats.end();
+ for (; fit != end ; ++fit) {
+ if ((*fit)->name() == format)
+ return true;
+ }
+ return false;
}
void BufferParams::readGraphicsDriver(Lexer & lex)
{
- if (!lex.next())
+ if (!lex.next())
return;
string const tmptok = lex.getString();
void BufferParams::readBullets(Lexer & lex)
{
- if (!lex.next())
+ if (!lex.next())
return;
int const index = lex.getInteger();
void BufferParams::readBulletsLaTeX(Lexer & lex)
{
// The bullet class should be able to read this.
- if (!lex.next())
+ if (!lex.next())
return;
int const index = lex.getInteger();
lex.next(true);
removed_modules_.push_back(mod);
lex.eatLine();
}
- // now we want to remove any removed modules that were previously
- // added. normally, that will be because default modules were added in
- // setBaseClass(), which gets called when \textclass is read at the
+ // now we want to remove any removed modules that were previously
+ // added. normally, that will be because default modules were added in
+ // setBaseClass(), which gets called when \textclass is read at the
// start of the read.
list<string>::const_iterator rit = removed_modules_.begin();
list<string>::const_iterator const ren = removed_modules_.end();
string BufferParams::paperSizeName(PapersizePurpose purpose) const
{
- char real_papersize = papersize;
- if (real_papersize == PAPER_DEFAULT)
- real_papersize = lyxrc.default_papersize;
-
- switch (real_papersize) {
+ switch (papersize) {
case PAPER_DEFAULT:
// could be anything, so don't guess
return string();
* -- add more GUI options?
* -- add more fonts (fonts for other scripts)
* -- if there's a way to find out if a font really supports
- * OldStyle, enable/disable the widget accordingly.
+ * OldStyle, enable/disable the widget accordingly.
*/
if (use_systemfonts && features.isAvailable("fontspec")) {
// "Mapping=tex-text" and "Ligatures=TeX" are equivalent.
if (sf != "default") {
string const sans = parseFontName(sf);
if (sfscale != 100)
- os << "\\setsansfont[Scale="
- << float(sfscale) / 100
+ os << "\\setsansfont[Scale="
+ << float(sfscale) / 100
<< "," << texmapping << "]{"
<< sans << "}\n";
else
if (tt != "default") {
string const mono = parseFontName(tt);
if (ttscale != 100)
- os << "\\setmonofont[Scale="
- << float(ttscale) / 100
+ os << "\\setmonofont[Scale="
+ << float(ttscale) / 100
<< "]{"
<< mono << "}\n";
else