return;
// Check children
- ListOfBuffers blist = buffer.getDescendents();
- ListOfBuffers::const_iterator bit = blist.begin();
- ListOfBuffers::const_iterator const bend = blist.end();
- for (; bit != bend; ++bit)
- initUnicodeMath(**bit, false);
+ for (Buffer * buf : buffer.getDescendants())
+ initUnicodeMath(*buf, false);
}
CharInfo const & ci = Encodings::unicodeCharInfo(c);
if (ci.isUnicodeSymbol()) {
// In mathed, c could be used both in textmode and mathmode
- docstring const textcommand = ci.textcommand;
+ docstring const textcommand = ci.textcommand();
bool const math_mode = for_mathed && isMathCmd(c);
bool const use_math = math_mode ||
(!for_mathed && textcommand.empty());
// and if we do not use unicode-math
if ((math_mode && !unicode_math)
|| (use_math && !plain_utf8)) {
- string const mathpreamble = ci.mathpreamble;
+ string const mathpreamble = ci.mathpreamble();
if (!mathpreamble.empty()) {
if (ci.mathfeature()) {
string feats = mathpreamble;
features.require(feat);
}
} else
- features.addPreambleSnippet(mathpreamble);
+ features.addPreambleSnippet(from_utf8(mathpreamble));
}
}
// with utf8-plain, we do not load packages (see #7766)
if (use_text && !plain_utf8) {
- string const textpreamble = ci.textpreamble;
+ string const textpreamble = ci.textpreamble();
if (!textpreamble.empty()) {
if (ci.textfeature()) {
string feats = textpreamble;
while (!feats.empty()) {
string feat;
feats = split(feats, feat, ',');
- features.require(feat);
+ // context-dependent features are handled
+ // in Paragraph::Private::validate()
+ if (!contains(feat, '='))
+ features.require(feat);
}
} else
- features.addPreambleSnippet(textpreamble);
+ features.addPreambleSnippet(from_utf8(textpreamble));
}
}
}