def _print_Normalize(self, expr): v = expr.args[0] style = self._settings["normalize_style"] if style == "frac": return r"\frac{%s}{\|%s\|}" % (self.parenthesize(v, precedence_traditional(expr), True), self.parenthesize(v, precedence_traditional(expr), True)) unit_vec_symbol = v._unit_vec_symbol if unit_vec_symbol == "": unit_vec_symbol = self._settings["unit_vec_symbol"] # print the symbol as a unit vector return self._print_VectorSymbol(self.parenthesize(v, precedence_traditional(expr), True), vec_symbol=unit_vec_symbol)
def _print_Laplace(self, expr): n, f = expr.args flatex = self.parenthesize(f, precedence_traditional(expr), True) if isinstance(f, (VecDot, VecCross)): flatex = r"\left(%s\right)" % flatex return r"%s^{2} %s" % (self._print(n), flatex)
def parenthesize(self, item, level, strict=False): prec_val = precedence_traditional(item) if (prec_val < level) or ((not strict) and prec_val <= level): brac = self.dom.createElement('mfenced') brac.appendChild(self._print(item)) return brac else: return self._print(item)
def _latex(self, p): if self.arg.is_Concatenate: X = self.arg return r"{\left(\begin{array}{%s}%s\end{array}\right)}" % ( 'c' * len(X.args), ' & '.join('{%s}' % p._print(arg.T) for arg in X.args)) else: from sympy.printing.precedence import precedence_traditional return r"{%s}^{\color{magenta} T}" % p.parenthesize( self.arg, precedence_traditional(self), True)
def _print_VecPow(self, expr): base, exp = expr.base, expr.exp if exp == sp.S.NegativeOne: return r"\frac{1}{%s}" % self._print(base) else: if not isinstance(base, VectorExpr): return self._helper_print_standard_power(expr, "%s^{%s}") base_str = r"\left(%s\right)^{%s}" if isinstance(base, Magnitude): base_str = "%s^{%s}" return base_str % ( self._print(base), self.parenthesize(exp, precedence_traditional(expr), True), )
def _latex(self, p): from sympy import MatMul from sympy.printing.precedence import precedence_traditional parens = lambda x: p.parenthesize(x, precedence_traditional(self), False) args = self.args args = list(args) if isinstance(self, MatMul) and self._coeff_isneg(): if args[0] == -1: args = args[1:] else: args[0] = -args[0] return '- ' + r' \times '.join(map(parens, args)) else: return r' \times '.join(map(parens, args))
def _print_Magnitude(self, expr): v = expr.args[0] return r"\|%s\|" % self.parenthesize(v, precedence_traditional(expr), True)