Nano Hash - криптовалюты, майнинг, программирование

Отрисовка LaTeX в выходных ячейках в Colaboratory

Я ожидаю, что такая ячейка

from IPython.display import display, Math
display(Math(r"e^\alpha"))

для рендеринга с помощью MathJax, как в обычном jupyter, но вместо этого он просто отображает латексный код, например:

$$e^\alpha$$

Есть ли способ заставить Colaboratory отрендерить его правильно? (Он отлично справляется с текстовыми ячейками).


Ответы:


1

Немного упростите ответ scraaappy.

from IPython.display import HTML, Math
display(HTML("<script src='https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.3/"
             "latest.js?config=default'></script>"))
Math(r"e^\alpha")

Он просто включает MathJax библиотеку, поэтому могут отображаться следующие уравнения.

Или используйте встроенный output._publish (август 2018 г.)

from IPython.display import Math
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)
Math(r"e^\alpha")

Вместо CDN вы также можете использовать MathJax, который поставляется с Colab. https://colab.research.google.com/static/mathjax/MathJax.js?config=default

31.03.2018

2

Не уверен, что это правильный метод, но он работает:

from IPython.display import Javascript, Math
display(Javascript("var sc = document.createElement('script')"))
display(Javascript("sc.type='text/javascript'; sc.src='https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.3/MathJax.js?config=TeX-AMS-MML_HTMLorMML&dummy=.js'"))
display(Javascript("var currentDiv = document.activeElement.parent"))
#display(Javascript("sc.onload = function () {console.log('loaded')};"))
display(Javascript("document.body.insertBefore(sc, currentDiv)"))
display(Math(r'F(k) = \int_{-\infty}^{\infty} f(x) e^{2\pi i k} dx'))
display(Math(r"e^\alpha"))
30.03.2018
  • Я только что понял, что нам не нужно импортировать display, он импортируется по умолчанию. Спасибо! 31.03.2018

  • 3

    В качестве временного обходного пути вы можете определить свою собственную функцию отрисовки уравнения:

    from IPython.display import HTML, Math
    def mview(e):
      display(HTML("<script src='https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.3/"
             "latest.js?config=default'></script>"))
      return Math(latex(e))
    

    А затем используйте его следующим образом:

    e = Integral(cos(x)**2, (x, 0, pi))
    mview(e)
    
    07.06.2018

    4

    Во-первых, ваш вопрос неверен, он должен быть "встроенным", а не выводиться в лаборатории.

    Во-вторых, чтобы ответить на ваш вопрос, просто измените параметр «Код» в строке меню на «Уценка» и укажите $= e^\alpha$ или $$= e^\alpha$$ в поле «Входящие».

    Это пример colab show latex in mardown.

    Обновление: извините за мое позднее обновление, я видел в совместной записной книжке такую ​​разницу, чтобы показать в ней LaTeX, просто вставьте «текстовую ячейку» в строку меню «Вставить» и исполнительный $$= e^\alpha$$ или $= e^\alpha$ в поле ввода

    30.03.2018
  • Я полагаю, вы имеете в виду ячейку кода. Даже в этом случае это не работает в Colaboratory. В любом случае это не отвечает на вопрос, я хочу иметь возможность производить латекс из python и визуализировать его. 30.03.2018
  • @SeanD Я видел такую ​​разницу в Google Colaboratory, поэтому я обновился, чтобы ответить на ваш вопрос. 30.03.2018
  • Спасибо за попытку. Как я уже упоминал в вопросе, у меня нет проблем с рендерингом латекса из текстовых ячеек, проблема состоит в том, чтобы отобразить латексную строку, которая у меня есть как переменная python. 30.03.2018
  • Это неправильный ответ - OP ищет вывод кода, а не текста вывода. 07.06.2021

  • 5

    Для тех, кто использует HandCalc

    В итоге я сделал что-то немного другое, но в конце концов решил эту проблему:

    from IPython.display import Math
    

    Затем в ячейке handcalc:

    %%capture texres
    %%tex 2
    YOUR CODE HERE
    

    а затем в следующей ячейке:

    Math(texres.stdout[3:-3])

    это должно работать (вроде) как использование Handcalc в Jupyterlab

    Наслаждаться.

    24.06.2021
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..