Вывод латекса из sympy некорректно отображается в записных книжках Google Colab Laboratory Jupyter - PullRequest
0 голосов
/ 24 августа 2018

Я использую платформу Google Colab Laboratory для запуска python в блокноте Jupyter.В стандартных ноутбуках Jupyter выходные данные функций sympy правильно набраны Latex, но записная книжка Colab Laboratory просто выводит латекс, как показано в следующем фрагменте кода:

import numpy as np
import sympy as sp
sp.init_printing(use_unicode=True)
x=sp.symbols('x')
a=sp.Integral(sp.sin(x)*sp.exp(x),x);a

приводит к выводу латекса, например:

$$\int e^{x} \sin{\left (x \right )}\, dx$$

Ответ, процитированный в этих вопросах, Рендеринг LaTeX в выходных ячейках в Колаборатории и Уравнения LaTeX не отображаются в Google Colab Laboratory при использовании IPython.display.Latex didn 'решить проблему.Хотя он предоставляет метод для отображения латексных выражений в выходных данных ячейки кода, он не исправляет выходные данные встроенных функций sympy.

Есть ли какие-либо предложения о том, как получить симпатичный вывод для правильной визуализации?Или это проблема с ноутбуком Колаборатории?

Ответы [ 2 ]

0 голосов
/ 24 октября 2018

Я только что сделал этот фрагмент кода, чтобы сделать syyy работающим как шарм в colab.research.googlr.com !!!

def custom_latex_printer(exp,**options):
    from google.colab.output._publish import javascript
    url = "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.3/latest.js?config=default"
    javascript(url=url)
    return sympy.printing.latex(exp,**options)
init_printing(use_latex="mathjax",latex_printer=custom_latex_printer)

Поместите его после того, как вы импортировали sympy В основном это говорит sympy о встраивании библиотеки mathjax с использованием colab api, прежде чем они на самом деле выведут любой синтаксис.

0 голосов
/ 25 августа 2018

Вам необходимо включить библиотеку MathJax перед отображением. Сначала установите его в такую ​​ячейку.

from google.colab.output._publish import javascript
url = "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.3/latest.js?config=default"

Позже вы включаете javascript(url=url) перед отображением:

x=sp.symbols('x')
a=sp.Integral(sp.sin(x)*sp.exp(x),x)
javascript(url=url)
a

Затем он будет отображаться правильно.

...