Is it possible to show `print` output as LaTeX in jupyter notebook?
Question:
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{}mnArea: {}m^2nVolume: {}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.
Answers:
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.
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$
"""))
(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}} }}$."
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{}mnArea: {}m^2nVolume: {}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.
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.
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$
"""))
(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}} }}$."