Как я могу отобразить код LaTeX в записной книжке IPython?
Как написать LaTeX в ноутбуке IPython?
Ответ 1
Это произошло в результате поиска, который я только что делал, нашел лучшее решение с еще большим количеством поисков. В ноутбуках IPython теперь есть магия %%latex
, которая делает всю ячейку Latex без оболочки $$
для каждой строки.
Обратитесь к обсуждению ноутбука за Rich Display System
Ответ 2
IPython notebook использует MathJax для рендеринга LaTeX внутри html/markdown. Просто поместите свою математику LaTeX внутри $$
.
$$c = \sqrt{a^2 + b^2}$$
Или вы можете отображать вывод LaTeX/Math из Python, как показано в конце обзор ноутбука:
from IPython.display import display, Math, Latex
display(Math(r'F(k) = \int_{-\infty}^{\infty} f(x) e^{2\pi i k} dx'))
Ответ 3
Ссылки LaTeX:
Блог Udacity имеет Лучший LaTeX Primer. Я видел: это ясно показывает, как использовать команды LaTeX в удобном для чтения и легко запоминаемом виде! Очень рекомендуется.
Эта ссылка имеет отличные примеры, показывающая как код, так и полученный результат!
Вы можете использовать этот сайт, чтобы быстро научиться писать LaTeX на примере.
А вот вот краткая Ссылка на LaTeX команды/символы.
Обобщение: различные способы указать LaTeX в Jupyter/IPython:
Примеры для Markdown Cells:
встроенный, оберните: $
The equation used depends on whether the the value of
$Vmax$ is R, G, or B.
, оберните: $$
$$H← 0 + \frac{30(G−B)}{Vmax−Vmin} , if Vmax = R$$
, оберните: \begin{equation}
и \end{equation}
\begin{equation}
H← 60 + \frac{30(B−R)}{Vmax−Vmin} , if Vmax = G
\end{equation}
, оберните: \begin{align}
и \end{align}
\begin{align}
H←120 + \frac{30(R−G)}{Vmax−Vmin} , if Vmax = B
\end{align}
Examples для кодовых ячеек:
LaTex Cell: %%latex
волшебная команда превращает всю ячейку в ячейку LaTeX
%%latex
\begin{align}
\nabla \cdot \vec{\mathbf{E}} & = 4 \pi \rho \\
\nabla \times \vec{\mathbf{E}}\, +\, \frac1c\, \frac{\partial\vec{\mathbf{B}}}{\partial t} & = \vec{\mathbf{0}} \\
\nabla \cdot \vec{\mathbf{B}} & = 0
\end{align}
Математический объект, чтобы передать строку raw LaTeX:
from IPython.display import Math
Math(r'F(k) = \int_{-\infty}^{\infty} f(x) e^{2\pi i k} dx')
Класс латекс. Примечание. Вы должны включать разделители самостоятельно. Это позволяет использовать другие режимы LaTeX, такие как eqnarray
:
from IPython.display import Latex
Latex(r"""\begin{eqnarray}
\nabla \times \vec{\mathbf{B}} -\, \frac1c\, \frac{\partial\vec{\mathbf{E}}}{\partial t} & = \frac{4\pi}{c}\vec{\mathbf{j}} \\
\nabla \cdot \vec{\mathbf{E}} & = 4 \pi \rho \\
\nabla \times \vec{\mathbf{E}}\, +\, \frac1c\, \frac{\partial\vec{\mathbf{B}}}{\partial t} & = \vec{\mathbf{0}} \\
\nabla \cdot \vec{\mathbf{B}} & = 0
\end{eqnarray}""")
Документы для Необработанные ячейки:
(извините, здесь нет примера, только документы)
Сырые клетки Необработанные ячейки предоставляют место, в котором вы можете напрямую писать вывод. Сырые ячейки не оцениваются ноутбуком. Когда он проходит через
nbconvert
, необработанные ячейки поступают в формат назначения без изменений. Например, это позволяет набирать полный LaTeX в исходную ячейку, которая будет отображаться только LaTeX после преобразования наnbconvert
.
Дополнительная документация:
Для Markdown Cells, как указано в Jupyter Notebook docs:
Внутри ячеек Markdown вы также можете включить математику простым способом, используя стандартную нотацию LaTeX: $... $для встроенной математики и $$... $$ для отображения математика. Когда ячейка Markdown выполняется, части LaTeX автоматически отображаются на выходе HTML как уравнения с высококачественной типографикой. Это стало возможным благодаря MathJax, который поддерживает большой набор функций LaTeX
Также работают стандартные среды математики, определенные LaTeX и AMS-LaTeX (пакет amsmath), такие как \begin {equation}...\end {equation} и \begin {выравнивать}...\конец {выравнивания}. Новые макросы LaTeX могут быть определены с использованием стандартных методов, таких как \newcommand, путем размещения их в любом месте между разделителями-математиками в ячейке Markdown. Эти определения затем доступны в течение всего сеанса IPython.
Ответ 4
Используйте $$, если вы хотите, чтобы ваша математика отображалась в одной строке, например,
$$a = b + c$$ (line break after the equation)
Если вам не нужен разрыв строки после математики, используйте один знак доллара $, например,
$a = b + c$ (no line break after the equation)
Ответ 5
Вы можете выбрать ячейку для уценки, а затем написать латексный код, который интерпретируется mathjax, как сказал один из респондентов выше.
В качестве альтернативы Latex-раздел учебника для ноутбука iPython объясняет это хорошо.
Вы можете:
from IPython.display import Latex
Latex(r"""\begin{eqnarray}
\nabla \times \vec{\mathbf{B}} -\, \frac1c\, \frac{\partial\vec{\mathbf{E}}}{\partial t} & = \frac{4\pi}{c}\vec{\mathbf{j}} \\
\nabla \cdot \vec{\mathbf{E}} & = 4 \pi \rho \\
\nabla \times \vec{\mathbf{E}}\, +\, \frac1c\, \frac{\partial\vec{\mathbf{B}}}{\partial t} & = \vec{\mathbf{0}} \\
\nabla \cdot \vec{\mathbf{B}} & = 0
\end{eqnarray}""")
или выполните следующее:
%%latex
\begin{align}
\nabla \times \vec{\mathbf{B}} -\, \frac1c\, \frac{\partial\vec{\mathbf{E}}}{\partial t} & = \frac{4\pi}{c}\vec{\mathbf{j}} \\
\nabla \cdot \vec{\mathbf{E}} & = 4 \pi \rho \\
\nabla \times \vec{\mathbf{E}}\, +\, \frac1c\, \frac{\partial\vec{\mathbf{B}}}{\partial t} & = \vec{\mathbf{0}} \\
\nabla \cdot \vec{\mathbf{B}} & = 0
\end{align}
Дополнительная информация найдена в этой ссылке
Ответ 6
Я разработал prettyPy, который предлагает хороший способ печати уравнения. К сожалению, он не работает и нуждается в тестировании.
Пример:
Конечно, sympy - отличная альтернатива, и, хотя prettyPy не позволяет вычислять выражения, инициализация переменной не требуется.
Ответ 7
Так как я не смог использовать все латексные команды в Code даже после использования ключевого слова %% latex или $.. $limititer, я установил nbextensions, через которые я мог бы использовать команды латекса в Markdown. Следуя инструкциям здесь: https://github.com/ipython-contrib/IPython-notebook-extensions/blob/master/README.md, а затем перезапустите Jupyter, а затем localhost: 8888/nbextensions и затем активируйте "Latex Environment for Jupyter", Я мог запускать много команд Latex. Примеры приведены здесь: https://rawgit.com/jfbercher/latex_envs/master/doc/latex_env_doc.html
\section{First section}
\textbf{Hello}
$
\begin{equation}
c = \sqrt{a^2 + b^2}
\end{equation}
$
\begin{itemize}
\item First item
\item Second item
\end{itemize}
\textbf{World}
Как вы видите, я все еще не могу использовать usepackage. Но, возможно, в будущем это будет улучшено.
Ответ 8
Ответ, полученный minrk (включен для полноты), хорош, но есть еще один способ, который мне нравится еще больше.
Вы также можете отобразить всю ячейку как LaTeX
, введя %%latex
в качестве первой строки в текстовой ячейке. Это полезно, если вы
- требуется больше контроля,
- хочу больше, чем просто математическую среду,
- или если вы собираетесь написать много математики в одной ячейке.
minrk ответ:
В ноутбуке IPython используется MathJax для рендеринга LaTeX внутри html/markdown. Просто поместите свою математику LaTeX внутри
$$
.$$c = \sqrt{a^2 + b^2}$$
Или вы можете отображать вывод LaTeX/Math из Python, как показано в конец записная книжка тур:
from IPython.display import display, Math, Latex display(Math(r'F(k) = \int_{-\infty}^{\infty} f(x) e^{2\pi i k} dx'))
Ответ 9
Если ваша основная задача заключается в математике, SymPy обеспечивает отличный подход к функциональным латексным выражениям, которые отлично смотрятся.
Ответ 10
Использование синтаксиса LaTeX непосредственно в ячейке Markdown работает для меня. Я использую Jypiter 4.4.0.
Я настаиваю на том, чтобы не использовать магическую команду %%latex
, просто ячейку уценки:
\begin{align}
\nabla \times \vec{\mathbf{B}} -\, \frac1c\, \frac{\partial\vec{\mathbf{E}}}{\partial t} & = \frac{4\pi}{c}\vec{\mathbf{j}} \\
\nabla \cdot \vec{\mathbf{E}} & = 4 \pi \rho \\
\nabla \times \vec{\mathbf{E}}\, +\, \frac1c\, \frac{\partial\vec{\mathbf{B}}}{\partial t} & = \vec{\mathbf{0}} \\
\nabla \cdot \vec{\mathbf{B}} & = 0
\end{align}
Оказывает:
Ответ 11
Однажды я столкнулся с этой проблемой, используя колаб. И я считаю, что самый безболезненный способ - запустить этот код перед печатью. Все работает как шарм тогда.
from IPython.display import Math, HTML
def load_mathjax_in_cell_output():
display(HTML("<script src='https://www.gstatic.com/external_hosted/"
"mathjax/latest/MathJax.js?config=default'></script>"))
get_ipython().events.register('pre_run_cell', load_mathjax_in_cell_output)
import sympy as sp
sp.init_printing()
Результат выглядит так:
Ответ 12
Я использую ноутбуки Jupyter. Я должен был написать
%%latex
$sin(x)/x$
чтобы получить шрифт LaTex.