} else {
- if (!is_of_type(c, print_latex))
+ if (is_a<print_latex>(c))
+ c.s << "_{";
+ else
c.s << ".";
bool need_parens = !(is_ex_exactly_of_type(value, numeric) || is_ex_of_type(value, symbol));
if (need_parens)
value.print(c);
if (need_parens)
c.s << ")";
+ if (is_a<print_latex>(c))
+ c.s << "}";
}
}
dim.print(c, level + delta_indent);
} else {
-
- if (!is_of_type(c, print_latex)) {
+ if (is_a<print_latex>(c)) {
+ if (covariant)
+ c.s << "_{";
+ else
+ c.s << "^{";
+ } else {
if (covariant)
c.s << ".";
else
value.print(c);
if (need_parens)
c.s << ")";
+ if (is_a<print_latex>(c))
+ c.s << "}";
}
}
} else {
bool is_tex = is_of_type(c, print_latex);
- if (!is_tex) {
+ if (is_tex) {
+ if (covariant)
+ c.s << "_{";
+ else
+ c.s << "^{";
+ } else {
if (covariant)
c.s << ".";
else
c.s << ")";
if (is_tex && dotted)
c.s << "}";
+ if (is_tex)
+ c.s << "}";
}
}