web-dev-qa-db-fra.com

Est-il possible d'afficher la sortie `print` sous forme de LaTeX dans le cahier jupyter?

J'écrivais un script très simple pour compter la surface et le volume des ellipsoïdes et d'autres choses. Je présentais ma sortie en l'imprimant comme ceci:

print('Dims: {}x{}m\nArea: {}m^2\nVolume: {}m^3'.format(a, round(b,2), P, V))

Ce qui, bien sûr, a donné cette sortie (avec des exemples de données):

Dims: 13.49x2.25m
Area: 302.99m^2
Volume: 90.92m^3

Comme je l'ai écrit plus tôt, j'utilise le cahier jupyter, donc je peux utiliser les opérateurs $ dans réduction cellules pour créer des formules LaTeX.

Ma question est, est-il possible de générer une sortie en utilisant Python d'une manière qui sera comprise comme LaTeX formule et imprimé de telle manière que:

Latex_example

Merci pour toutes les réponses.

9
Sqoshu

Utilisez la fonction display de IPython.display Avec un objet Math:

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)))

Notez l'utilisation des sauts de ligne de style Latex \\ Et la chaîne r'', Qui prendront les barres obliques inverses comme des barres obliques littérales et ne les verront pas comme des caractères d'échappement.

Trouvé la solution ici .

14
sebas

Voici une autre solution qui vous permet d'inclure du texte et des mathématiques un peu plus facilement: utilisez Markdown avec r (afin que les barres obliques inverses ne deviennent pas des caractères d'échappement) et f chaîne pour l'insertion de valeur.

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$
"""))
0
JMann