diff --git a/src/sage/rings/polynomial/multi_polynomial_element.py b/src/sage/rings/polynomial/multi_polynomial_element.py index 3b18664f505..09a3a025ca5 100644 --- a/src/sage/rings/polynomial/multi_polynomial_element.py +++ b/src/sage/rings/polynomial/multi_polynomial_element.py @@ -467,6 +467,8 @@ def _repr_(self): sage: repr(-I*y - x^2) # indirect doctest '-x^2 + (-I)*y' """ + if self.is_gen(): + return self.parent().variable_names()[self.degrees().nonzero_positions()[0]] try: key = self.parent().term_order().sortkey except AttributeError: diff --git a/src/sage/rings/semirings/tropical_mpolynomial.py b/src/sage/rings/semirings/tropical_mpolynomial.py index c1f1a744acb..d5f5a9d2e43 100644 --- a/src/sage/rings/semirings/tropical_mpolynomial.py +++ b/src/sage/rings/semirings/tropical_mpolynomial.py @@ -653,16 +653,28 @@ def _repr_(self): r""" Return a string representation of ``self``. + Note that ``x`` equals ``0*x``, which is different from + ``1*x``. Therefore, we represent monomials always together + with their coefficients, to avoid confusion. + EXAMPLES:: sage: T = TropicalSemiring(QQ) sage: R. = PolynomialRing(T) sage: x + R(-1)*y + R(-3) 0*x + (-1)*y + (-3) + """ if not self.monomial_coefficients(): return str(self.parent().base().zero()) - s = super()._repr_() + try: + key = self.parent().term_order().sortkey + except AttributeError: + key = None + atomic = self.parent().base_ring()._repr_option('element_is_atomic') + s = self.element().poly_repr(self.parent().variable_names(), + atomic_coefficients=atomic, + sortkey=key) if self.monomials()[-1].is_constant(): if self.monomial_coefficient(self.parent()(0)) < 0: s = s.replace(" - ", " + -")