The pretty_print command¶
Works similar to the print function, except that it always tries
to use a rich output for an object, as specified via the text display
preference. If such a rich output is not available, it falls back on the
plain text.
EXAMPLES:
sage: pretty_print(1, 2, 3)
1 2 3
sage: pretty_print(x^2 / (x + 1))
x^2/(x + 1)
EXAMPLES:
sage: %display ascii_art # not tested
sage: pretty_print(x^2 / (x + 1))
2
x
-----
x + 1
EXAMPLES:
Printing a graphics object just prints a string, whereas
pretty_print() does not print anything and just shows the
graphics instead:
sage: print(plot(sin))
Graphics object consisting of 1 graphics primitive
sage: pretty_print(plot(sin))
- class sage.repl.rich_output.pretty_print.SequencePrettyPrinter(*args, **kwds)¶
Bases:
sage.structure.sage_object.SageObjectPretty Printer for Muliple Arguments.
INPUT/OUTPUT:
Same as
pretty_print(), except that the number of arguments must be >= 2. Otherwise its not a sequence of things to print.EXAMPLES:
sage: pretty_print(1, 2, 3) # indirect doctest 1 2 3 sage: from sage.repl.rich_output.pretty_print import SequencePrettyPrinter sage: SequencePrettyPrinter(1, 2, 3).pretty_print() 1 2 3
- is_homogeneous(common_type)¶
Return whether the pretty print items are homogeneous
INPUT:
common_type– a type.
OUTPUT:
Boolean. Whether all items to be pretty printed are of said type.
EXAMPLES:
sage: from sage.repl.rich_output.pretty_print import SequencePrettyPrinter sage: seq = SequencePrettyPrinter(1, 2, 3) sage: seq.is_homogeneous(Integer) True sage: seq.is_homogeneous(str) False
- pretty_print()¶
Actually do the pretty print.
EXAMPLES:
sage: from sage.repl.rich_output.pretty_print import SequencePrettyPrinter sage: SequencePrettyPrinter(1, 2, 3).pretty_print() 1 2 3
The keyword arguments are only used the first time graphics output is generated:
sage: seq = SequencePrettyPrinter(Graph(), Graph(), edge_labels=True) sage: seq.pretty_print() # does not pass edge_labels to graphics object sage: seq._concatenate_graphs().show(edge_labels=True) Traceback (most recent call last): ... TypeError: ...matplotlib() got an unexpected keyword argument 'edge_labels'
- sage.repl.rich_output.pretty_print.pretty_print(*args, **kwds)¶
Pretty print the arguments using rich output if available.
This function is similar to
print(), except that a rich output representation such asascii_artor Latex is printed instead of the string representation.Note that the output depends on the global display preferences specified via
preferences(). If the display preference fortextis not specified, Latex output is preferred.For graphical objects, a graphical output is used.
For certain homogeneous multiple positional arguments, a suitable combined graphical output is generated. In particular, graphs and plots are treated special. Otherwise this function concatenates the textual representations.
INPUT:
*args– any number of positional arguments. The objects to pretty print.**kwds– optional keyword arguments that are passed to the rich representation. Examples include:dpi- dots per inchfigsize- [width, height] (same for square aspect)axes- (default: True)fontsize- positive integerframe- (default: False) draw a MATLAB-like frame around the image
EXAMPLES:
sage: pretty_print(ZZ) Integer Ring sage: pretty_print("Integers = ", ZZ) # trac 11775 'Integers = ' Integer Ring
To typeset LaTeX code as-is, use
LatexExpr:sage: pretty_print(LatexExpr(r"\frac{x^2 + 1}{x - 2}")) \frac{x^2 + 1}{x - 2}
For text-based backends, the default text display preference is to output plain text which is usually the same as using
print():sage: pretty_print(x^2 / (x + 1)) x^2/(x + 1) sage: t = BinaryTrees(3).first() sage: pretty_print(t) [., [., [., .]]] sage: print(t) [., [., [., .]]]
EXAMPLES:
Changing the text display preference affects the output of this function. The following illustrates a possible use-case:
sage: %display ascii_art # not tested sage: for t in BinaryTrees(3)[:3]: ....: pretty_print(t) o \ o \ o o \ o / o o / \ o o sage: pretty_print(x^2 / (x + 1)) 2 x ----- x + 1
- sage.repl.rich_output.pretty_print.show(*args, **kwds)¶
Alias for
pretty_print.This function is an alias for
pretty_print().INPUT/OUTPUT:
See
pretty_print(). Except if the argument is a graph, in which case it is plotted instead.EXAMPLES:
sage: show(1) 1