return (!scaleoption_.empty());
}
+
+bool LaTeXFont::providesMoreOptions(bool ot1, bool complete, bool nomath)
+{
+ docstring const usedfont = getUsedFont(ot1, complete, nomath);
+
+ if (usedfont.empty())
+ return false;
+ else if (usedfont != name_)
+ return altFont(usedfont).providesMoreOptions(ot1, complete, nomath);
+ else if (!available(ot1, nomath))
+ return false;
+
+ return (moreopts_);
+}
+
bool LaTeXFont::provides(std::string const & name, bool ot1, bool complete, bool nomath)
{
docstring const usedfont = getUsedFont(ot1, complete, nomath);
string const LaTeXFont::getPackageOptions(bool ot1, bool complete, bool sc, bool osf,
- int scale, string const extraopts, bool nomath)
+ int scale, string const & extraopts, bool nomath)
{
ostringstream os;
bool const needosfopt = (osf != osfdefault_);
bool const has_osf = providesOSF(ot1, complete, nomath);
bool const has_sc = providesSC(ot1, complete, nomath);
+ bool const moreopts = providesMoreOptions(ot1, complete, nomath);
- if (!packageoption_.empty())
- os << to_ascii(packageoption_);
+ if (!packageoptions_.empty())
+ os << to_ascii(packageoptions_);
if (sc && needosfopt && has_osf && has_sc) {
if (!os.str().empty())
convert<std::string>(float(scale) / 100));
}
- if (moreopts_ && !extraopts.empty()) {
+ if (moreopts && !extraopts.empty()) {
if (!os.str().empty())
os << ',';
os << extraopts;
string const LaTeXFont::getLaTeXCode(bool dryrun, bool ot1, bool complete, bool sc,
- bool osf, bool nomath, string const extraopts,
+ bool osf, bool nomath, string const & extraopts,
int const & scale)
{
ostringstream os;
LF_OT1_FONT,
LF_MOREOPTS,
LF_PACKAGE,
- LF_PACKAGEOPTION,
+ LF_PACKAGEOPTIONS,
LF_PREAMBLE,
LF_PROVIDES,
LF_REQUIRES,
{ "osfscoption", LF_OSFSCOPTION },
{ "ot1font", LF_OT1_FONT },
{ "package", LF_PACKAGE },
- { "packageoption", LF_PACKAGEOPTION },
+ { "packageoptions", LF_PACKAGEOPTIONS },
{ "preamble", LF_PREAMBLE },
{ "provides", LF_PROVIDES },
{ "requires", LF_REQUIRES },
case LF_PACKAGE:
lex >> package_;
break;
- case LF_PACKAGEOPTION:
- lex >> packageoption_;
+ case LF_PACKAGEOPTIONS:
+ lex >> packageoptions_;
break;
case LF_PREAMBLE:
preamble_ = lex.getLongString(from_ascii("EndPreamble"));