length -= pos;
latex2 = latex2.substr(pos, length);
// and place it before the accent macro if required (#6463)
- if (Encodings::needsScriptWrapper(script, fontenc)
- || runparams.isFullUnicode()) {
+ if (Encodings::needsScriptWrapper(script, fontenc)) {
scriptmacro = from_ascii("\\" + script + "{");
cb = from_ascii("}");
}
int length = brace2;
bool closing_brace = true;
// We only need the script macro with non-native font encodings
- // and with XeTeX/LuaTeX (with TeX fonts)
- if (!Encodings::needsScriptWrapper(script, fontenc)
- && !runparams.isFullUnicode()) {
- // Correct font encoding is being used, so we can avoid \text[greek|cyr].
+ if (!Encodings::needsScriptWrapper(script, fontenc)) {
+ // Correct font encoding is being used, so we can avoid \text(greek|cyrrillic).
pos = brace1 + 1;
length -= pos;
closing_brace = false;
&& !runparams.isFullUnicode() && bparams.main_font_encoding() == "T1"
&& latexSpecialT1(c, os, i, column))
return;
- // NOTE: XeTeX and LuaTeX use EU1/2 (pre 2017) or TU (as of 2017) encoding
+ // NOTE: "fontspec" (non-TeX fonts) sets the font encoding to "TU" (untill 2017 "EU1" or "EU2")
else if (!runparams.inIPA && !running_font.language()->internalFontEncoding()
&& runparams.isFullUnicode() && latexSpecialTU(c, os, i, column))
return;
// such as Note that do not produce any output, so that no
// command is ever executed but its opening was recorded.
runparams.inulemcmd = rp.inulemcmd;
+
+ // And finally, pass the post_macros upstream
+ runparams.post_macro = rp.post_macro;
}
// If we have an open font definition, we have to close it