#include "support/convert.h"
#include "support/debug.h"
+#include "support/docstream.h"
#include "support/FileName.h"
#include "support/filetools.h"
#include "support/gettext.h"
}
+bool LaTeXFont::hasMonolithicExpertSet(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).hasMonolithicExpertSet(ot1, complete, nomath);
+ return (!osfoption_.empty() && !scoption_.empty() && osfoption_ == scoption_)
+ || (osfoption_.empty() && scoption_.empty() && !osfscoption_.empty());
+}
+
+
bool LaTeXFont::providesScale(bool ot1, bool complete, bool nomath)
{
docstring const usedfont = getUsedFont(ot1, complete, nomath);
else if (!package_.empty()
&& LaTeXFeatures::isAvailable(to_ascii(package_)))
return name_;
+ else if (!preamble_.empty() && package_.empty()
+ && requires_.empty() && !switchdefault_
+ && altfonts_.empty()) {
+ return name_;
+ }
else if (!altfonts_.empty()) {
for (size_t i = 0; i < altfonts_.size(); ++i) {
LaTeXFont altf = altFont(altfonts_[i]);
}
+docstring const LaTeXFont::getUsedPackage(bool ot1, bool complete, bool nomath)
+{
+ docstring const usedfont = getUsedFont(ot1, complete, nomath);
+ if (usedfont.empty())
+ return docstring();
+ return theLaTeXFonts().getLaTeXFont(usedfont).package();
+}
+
+
string const LaTeXFont::getAvailablePackage(bool dryrun)
{
if (package_.empty())
os << altFont(osffont_).getLaTeXCode(dryrun, ot1, complete, sc, osf, nomath, scale);
if (!preamble_.empty())
- os << preamble_;
+ os << to_utf8(preamble_);
return os.str();
}
lex >> packageoption_;
break;
case LF_PREAMBLE:
- preamble_ = lex.getLongString("EndPreamble");
+ preamble_ = lex.getLongString(from_ascii("EndPreamble"));
break;
case LF_PROVIDES: {
lex.eatLine();