Printing (Docstrings)¶
- sympy.physics.vector.printing.init_vprinting(**kwargs)[source]¶
Initializes time derivative printing for all SymPy objects, i.e. any functions of time will be displayed in a more compact notation. The main benefit of this is for printing of time derivatives; instead of displaying as
Derivative(f(t),t)
, it will displayf'
. This is only actually needed for when derivatives are present and are not in a physics.vector.Vector or physics.vector.Dyadic object. This function is a light wrapper toinit_printing()
. Any keyword arguments for it are valid here.Initializes pretty-printer depending on the environment.
- Parameters:
pretty_print : bool, default=True
If
True
, usepretty_print()
to stringify or the provided pretty printer; ifFalse
, usesstrrepr()
to stringify or the provided string printer.order : string or None, default=’lex’
There are a few different settings for this parameter:
'lex'
(default), which is lexographic order;'grlex'
, which is graded lexographic order;'grevlex'
, which is reversed graded lexographic order;'old'
, which is used for compatibility reasons and for long expressions;None
, which sets it to lex.use_unicode : bool or None, default=None
If
True
, use unicode characters; ifFalse
, do not use unicode characters; ifNone
, make a guess based on the environment.use_latex : string, bool, or None, default=None
If
True
, use default LaTeX rendering in GUI interfaces (png and mathjax); ifFalse
, do not use LaTeX rendering; ifNone
, make a guess based on the environment; if'png'
, enable LaTeX rendering with an external LaTeX compiler, falling back to matplotlib if external compilation fails; if'matplotlib'
, enable LaTeX rendering with matplotlib; if'mathjax'
, enable LaTeX text generation, for example MathJax rendering in IPython notebook or text rendering in LaTeX documents; if'svg'
, enable LaTeX rendering with an external latex compiler, no fallbackwrap_line : bool
If True, lines will wrap at the end; if False, they will not wrap but continue as one line. This is only relevant if
pretty_print
is True.num_columns : int or None, default=None
If
int
, number of columns before wrapping is set to num_columns; ifNone
, number of columns before wrapping is set to terminal width. This is only relevant ifpretty_print
isTrue
.no_global : bool, default=False
If
True
, the settings become system wide; ifFalse
, use just for this console/session.ip : An interactive console
This can either be an instance of IPython, or a class that derives from code.InteractiveConsole.
euler : bool, optional, default=False
Loads the euler package in the LaTeX preamble for handwritten style fonts (https://www.ctan.org/pkg/euler).
forecolor : string or None, optional, default=None
DVI setting for foreground color.
None
means that either'Black'
,'White'
, or'Gray'
will be selected based on a guess of the IPython terminal color setting. See notes.backcolor : string, optional, default=’Transparent’
DVI setting for background color. See notes.
fontsize : string or int, optional, default=’10pt’
A font size to pass to the LaTeX documentclass function in the preamble. Note that the options are limited by the documentclass. Consider using scale instead.
latex_mode : string, optional, default=’plain’
The mode used in the LaTeX printer. Can be one of:
{'inline'|'plain'|'equation'|'equation*'}
.print_builtin : boolean, optional, default=True
If
True
then floats and integers will be printed. IfFalse
the printer will only print SymPy types.str_printer : function, optional, default=None
A custom string printer function. This should mimic
sstrrepr()
.pretty_printer : function, optional, default=None
A custom pretty printer. This should mimic
pretty()
.latex_printer : function, optional, default=None
A custom LaTeX printer. This should mimic
latex()
.scale : float, optional, default=1.0
Scale the LaTeX output when using the
'png'
or'svg'
backends. Useful for high dpi screens.settings :
Any additional settings for the
latex
andpretty
commands can be used to fine-tune the output.
Examples
>>> from sympy import Function, symbols >>> t, x = symbols('t, x') >>> omega = Function('omega') >>> omega(x).diff() Derivative(omega(x), x) >>> omega(t).diff() Derivative(omega(t), t)
Now use the string printer:
>>> from sympy.physics.vector import init_vprinting >>> init_vprinting(pretty_print=False) >>> omega(x).diff() Derivative(omega(x), x) >>> omega(t).diff() omega'
- sympy.physics.vector.printing.vprint(expr, **settings)[source]¶
Function for printing of expressions generated in the sympy.physics vector package.
Extends SymPy’s StrPrinter, takes the same setting accepted by SymPy’s
sstr()
, and is equivalent toprint(sstr(foo))
.- Parameters:
expr : valid SymPy object
SymPy expression to print.
settings : args
Same as the settings accepted by SymPy’s sstr().
Examples
>>> from sympy.physics.vector import vprint, dynamicsymbols >>> u1 = dynamicsymbols('u1') >>> print(u1) u1(t) >>> vprint(u1) u1
- sympy.physics.vector.printing.vpprint(expr, **settings)[source]¶
Function for pretty printing of expressions generated in the sympy.physics vector package.
Mainly used for expressions not inside a vector; the output of running scripts and generating equations of motion. Takes the same options as SymPy’s
pretty_print()
; see that function for more information.- Parameters:
expr : valid SymPy object
SymPy expression to pretty print
settings : args
Same as those accepted by SymPy’s pretty_print.
- sympy.physics.vector.printing.vlatex(expr, **settings)[source]¶
Function for printing latex representation of sympy.physics.vector objects.
For latex representation of Vectors, Dyadics, and dynamicsymbols. Takes the same options as SymPy’s
latex()
; see that function for more information;- Parameters:
expr : valid SymPy object
SymPy expression to represent in LaTeX form
settings : args
Same as latex()
Examples
>>> from sympy.physics.vector import vlatex, ReferenceFrame, dynamicsymbols >>> N = ReferenceFrame('N') >>> q1, q2 = dynamicsymbols('q1 q2') >>> q1d, q2d = dynamicsymbols('q1 q2', 1) >>> q1dd, q2dd = dynamicsymbols('q1 q2', 2) >>> vlatex(N.x + N.y) '\\mathbf{\\hat{n}_x} + \\mathbf{\\hat{n}_y}' >>> vlatex(q1 + q2) 'q_{1} + q_{2}' >>> vlatex(q1d) '\\dot{q}_{1}' >>> vlatex(q1 * q2d) 'q_{1} \\dot{q}_{2}' >>> vlatex(q1dd * q1 / q1d) '\\frac{q_{1} \\ddot{q}_{1}}{\\dot{q}_{1}}'