Reputation: 1004
I was writing a very simple script to count ellipsoid area and volume and some other things. I was presenting my output printing it out like this:
print('Dims: {}x{}m\nArea: {}m^2\nVolume: {}m^3'.format(a, round(b,2), P, V))
What, of course, gave this output (with sample data):
Dims: 13.49x2.25m
Area: 302.99m^2
Volume: 90.92m^3
As I wrote earlier, I am using jupyter notebook, so I can use $
operators in markdown cells to create LaTeX formulas.
My question is, is it possible to generate output using Python code in a way that it will be understood as LaTeX formula and printed in such a way, that:
Thanks for all replies.
Upvotes: 47
Views: 59244
Reputation: 1
This can be done with the jupyprint package: https://pypi.org/project/jupyprint/
You could use the following code:
import jupyprint as jp
jp.jupyprint("$\\text{Dims}: 13.49\\times2.25m$")
jp.jupyprint("$\\text{Area}: 302.99m^2$")
jp.jupyprint("$\\text{Volume}: 90.92m^3$")
Upvotes: 0
Reputation: 41
(don't have enough reputation to comment on the discussion below JMann's answer)
To escape LaTeX curly braces in format strings, you can double up the curly braces. e.g.
rf"NEP $\Nu_{{photon}}$: {calc_nep(T):.3f} $\frac{{W}}{{ \sqrt{{Hz}} }}$."
Upvotes: 2
Reputation: 599
Here's another solution that let's you include text and math a little easier:
Use Markdown with r
(so backslashed don't become escape chars) and f
string
for value insertion.
from IPython.display import display, Markdown
a = 13.49
b = 2.2544223
P = 302.99
V = 90.02
display(Markdown(
rf"""
Dims: ${a}m \times{b:5.2}m$
Area: ${P}m^2$
Volume: ${V}m^3$
"""))
Upvotes: 17
Reputation: 1503
Use IPython.display
's display
function with a Math
object:
from IPython.display import display, Math
display(Math(r'Dims: {}x{}m \\ Area: {}m^2 \\ Volume: {}m^3'.format(a, round(b,2), P, V)))
Note the use of Latex-style \\
newlines, and the r''
string, which will take the backslashes as literal backslashes and not see them as escape characters.
Found the solution here.
Upvotes: 47