BufferParams::Impl *
BufferParams::MemoryTraits::clone(BufferParams::Impl const * ptr)
{
- LASSERT(ptr, /**/);
-
+ LBUFERR(ptr);
return new BufferParams::Impl(*ptr);
}
docstring BufferParams::B_(string const & l10n) const
{
- LASSERT(language, /**/);
+ LASSERT(language, return from_utf8(l10n));
return getMessages(language->code()).get(l10n);
}
}
-vector<string> const & BufferParams::auto_packages()
+map<string, string> const & BufferParams::auto_packages()
{
- static vector<string> packages;
+ static map<string, string> packages;
if (packages.empty()) {
// adding a package here implies a file format change!
- packages.push_back("amsmath");
- packages.push_back("amssymb");
- packages.push_back("esint");
- packages.push_back("mathdots");
- packages.push_back("mathtools");
- packages.push_back("mhchem");
- packages.push_back("stmaryrd");
- packages.push_back("undertilde");
+ packages["amsmath"] =
+ N_("The LaTeX package amsmath is only used if AMS formula types or symbols from the AMS math toolbars are inserted into formulas");
+ packages["amssymb"] =
+ N_("The LaTeX package amssymb is only used if symbols from the AMS math toolbars are inserted into formulas");
+ packages["cancel"] =
+ N_("The LaTeX package cancel is only used if \\cancel commands are used in formulas");
+ packages["esint"] =
+ N_("The LaTeX package esint is only used if special integral symbols are inserted into formulas");
+ packages["mathdots"] =
+ N_("The LaTeX package mathdots is only used if the command \\iddots is inserted into formulas");
+ packages["mathtools"] =
+ N_("The LaTeX package mathtools is only used if some mathematical relations are inserted into formulas");
+ packages["mhchem"] =
+ N_("The LaTeX package mhchem is only used if either the command \\ce or \\cf is inserted into formulas");
+ packages["stackrel"] =
+ N_("The LaTeX package stackrel is only used if the command \\stackrel with subscript is inserted into formulas");
+ packages["stmaryrd"] =
+ N_("The LaTeX package stmaryrd is only used if symbols from the St Mary's Road symbol font for theoretical computer science are inserted into formulas");
+ packages["undertilde"] =
+ N_("The LaTeX package undertilde is only used if you use the math frame decoration 'utilde'");
}
return packages;
}
Bullet & BufferParams::temp_bullet(lyx::size_type const index)
{
- LASSERT(index < 4, /**/);
+ LASSERT(index < 4, return pimpl_->temp_bullets[0]);
return pimpl_->temp_bullets[index];
}
Bullet const & BufferParams::temp_bullet(lyx::size_type const index) const
{
- LASSERT(index < 4, /**/);
+ LASSERT(index < 4, return pimpl_->temp_bullets[0]);
return pimpl_->temp_bullets[index];
}
Bullet & BufferParams::user_defined_bullet(lyx::size_type const index)
{
- LASSERT(index < 4, /**/);
+ LASSERT(index < 4, return pimpl_->temp_bullets[0]);
return pimpl_->user_defined_bullets[index];
}
Bullet const & BufferParams::user_defined_bullet(lyx::size_type const index) const
{
- LASSERT(index < 4, /**/);
+ LASSERT(index < 4, return pimpl_->temp_bullets[0]);
return pimpl_->user_defined_bullets[index];
}
// be available.
string tcp;
LayoutFileList & bcl = LayoutFileList::get();
- if (tcp.empty() && !filepath.empty())
+ if (!filepath.empty())
tcp = bcl.addLocalLayout(classname, filepath.absFileName());
+ // that returns non-empty if a "local" layout file is found.
if (!tcp.empty())
setBaseClass(tcp);
else
os << "\\papersize " << string_papersize[papersize]
<< "\n\\use_geometry " << convert<string>(use_geometry);
- vector<string> const & packages = auto_packages();
- for (size_t i = 0; i < packages.size(); ++i)
- os << "\n\\use_package " << packages[i] << ' '
- << use_package(packages[i]);
+ map<string, string> const & packages = auto_packages();
+ for (map<string, string>::const_iterator it = packages.begin();
+ it != packages.end(); ++it)
+ os << "\n\\use_package " << it->first << ' '
+ << use_package(it->first);
os << "\n\\cite_engine ";
// 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 we use hyperref, jurabib, japanese, varioref or vietnamese,
+ // we have to call babel before
if (use_babel
&& (features.isRequired("jurabib")
|| features.isRequired("hyperref")
+ || features.isRequired("varioref")
|| features.isRequired("vietnamese")
|| features.isRequired("japanese"))) {
// FIXME UNICODE
+ atlyxpreamble + "\\makeatother\n\n";
// We try to load babel late, in case it interferes with other packages.
- // Jurabib and Hyperref have to be called after babel, though.
+ // Jurabib, hyperref and varioref have to be called after babel, though.
if (use_babel && !features.isRequired("jurabib")
&& !features.isRequired("hyperref")
+ && !features.isRequired("varioref")
&& !features.isRequired("vietnamese")
&& !features.isRequired("japanese")) {
// FIXME UNICODE
}
-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;
}
v.push_back("xetex");
} else if (buffmt == "xetex") {
v.push_back("xetex");
- v.push_back("luatex");
- v.push_back("dviluatex");
+ // FIXME: need to test all languages (bug 8205)
+ if (!language || !language->isPolyglossiaExclusive()) {
+ v.push_back("luatex");
+ v.push_back("dviluatex");
+ }
} else
v.push_back(buffmt);
// do not load inputenc if japanese is used
if (features.isRequired("japanese"))
break;
- os << "\\usepackage[" << from_ascii(inputenc)
+ os << "\\usepackage[" << from_ascii(encoding().latexName())
<< "]{inputenc}\n";
break;
case Encoding::CJK:
// This check will not work with XeTeX/LuaTeX and tex fonts.
// Thus we have to reset the encoding in Buffer::makeLaTeXFile.
if (useNonTeXFonts)
- return *(encodings.fromLaTeXName("utf8-plain"));
+ return *(encodings.fromLyXName("utf8-plain"));
if (inputenc == "auto" || inputenc == "default")
return *language->encoding();
- Encoding const * const enc = encodings.fromLaTeXName(inputenc);
+ Encoding const * const enc = encodings.fromLyXName(inputenc);
if (enc)
return *enc;
LYXERR0("Unknown inputenc value `" << inputenc