Как я могу отобразить код LaTeX в IPython Notebook?
Как я могу отобразить код LaTeX в IPython Notebook?
Ответы:
Это пришло в результате поиска, который я только что делал, нашел лучшее решение с еще большим поиском, ноутбуки IPython теперь обладают %%latex
магией, которая делает латекс целой клетки без $$
обертки для каждой строки.
Порекомендуйте тур по ноутбукам для Rich Display System
Блокнот 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'))
LaTeX
, набрав %%latex
в качестве первой строки текстовую ячейку.
В блоге Udacity есть лучший учебник по LaTeX, который я когда-либо видел: он ясно показывает, как использовать команды LaTeX в удобочитаемой и легко запоминающейся форме !! Настоятельно рекомендуется .
Эта ссылка имеет отличные примеры, показывающие как код, так и результат визуализации!
Вы можете использовать этот сайт, чтобы быстро научиться писать LaTeX на примере.
И вот краткий справочник по командам / символам LaTeX .
встроенный, завернуть в: $
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}
LaTex Cell: %%latex
волшебная команда превращает всю клетку в LaTeX Cell
%%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}
Объект Math для передачи в необработанной строке 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
.
Для ячеек разметки , как указано в документации Jupyter Notebook :
В ячейки Markdown вы также можете включить математику простым способом, используя стандартную запись LaTeX: $ ... $ для встроенной математики и $$ ... $$ для отображаемой математики . Когда выполняется ячейка Markdown, фрагменты LaTeX автоматически отображаются в выводе HTML как уравнения с высококачественной типографикой. Это стало возможным благодаря MathJax, который поддерживает большой набор функций LaTeX
Также работают стандартные математические среды, определенные LaTeX и AMS-LaTeX (пакет amsmath), такие как \ begin {уравнения} ... \ end {уравнения} и \ begin {align} ... \ end {align} . Новые макросы LaTeX могут быть определены с использованием стандартных методов, таких как \ newcommand, путем их размещения в любом месте между математическими разделителями в ячейке Markdown. Эти определения затем доступны на протяжении оставшейся части сеанса IPython.
Используйте $$, если вы хотите, чтобы ваша математика отображалась в одной строке, например,
$$a = b + c$$ (line break after the equation)
Если вам не нужен разрыв строки после математики, используйте один знак доллара $, например,
$a = b + c$ (no line break after the equation)
Вы можете выбрать ячейку для уценки, а затем написать латексный код, который интерпретируется mathjax, как сказал один из респондентов выше.
Кроме того, латексная секция учебника 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}
Более подробная информация найдена в этой ссылке
Я разработал prettyPy , который предлагает хороший способ печати уравнения. К сожалению, он не эффективен и нуждается в тестировании.
Пример:
Конечно, sympy - отличная альтернатива, и хотя prettyPy не позволяет вычислять выражения, инициализация переменной не требуется.
Поскольку я не смог использовать все латексные команды в коде даже после использования ключевого слова %% latex или ограничителя $ .. $, я установил nbextensions, через которые я мог использовать латексные команды в Markdown. После выполнения следующих инструкций: https://github.com/ipython-contrib/IPython-notebook-extensions/blob/master/README.md, затем перезапустите Jupyter и затем localhost: 8888 / nbextensions, а затем активируйте «Латексную среду для Jupyter ", я мог запустить много латексных команд. Примеры здесь: 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. Но, возможно, это будет улучшено в будущем.
Ответ, данный minrk (включен для полноты), хорош, но есть еще один способ, который мне нравится даже больше.
Вы также можете отобразить всю ячейку LaTeX
, набрав %%latex
в качестве первой строки текстовую ячейку. Это полезно, если вы
Блокнот 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'))
Если вашей главной целью является математика, SymPy предлагает отличный подход к функциональным латексным выражениям, которые выглядят великолепно.
В этой статье я написал, как писать LaTeX в Jupyter Notebook .
Вы должны заключить их в знаки доллара ($).
$P(A)=\frac{n(A)}{n(U)}$
$$P(A)=\frac{n(A)}{n(U)}$$
Используйте \limits
для \lim
, \sum
и \int
чтобы добавить ограничения на верх и низ каждого знака.
Используйте обратную косую черту для экранирования специальных слов LaTeX, таких как математические символы, латинские слова, текст и т. Д.
Попробуй это.
$$\overline{x}=\frac{\sum \limits _{i=1} ^k f_i x_i}{n} \text{, where } n=\sum \limits _{i=1} ^k f_i $$
$$
\begin{align}
\text{Probability density function:}\\
\begin{cases}
\frac{1}{b-a}&\text{for $x\in[a,b]$}\\
0&\text{otherwise}\\
\end{cases}
\\
\text{Cumulative distribution function:}\\
\begin{cases}
0&\text{for $x<a$}\\
\frac{x-a}{b-a}&\text{for $x\in[a,b)$}\\
1&\text{for $x\ge b$}\\
\end{cases}
\end{align}
$$
Код выше создаст это.
Если вы хотите узнать, как добавить нумерацию в уравнения и выровнять уравнения, прочтите эту статью для получения подробной информации .
Использование синтаксиса 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}
Оказывает:
Однажды я столкнулся с этой проблемой, используя колаб. И я считаю, что самый безболезненный способ - запустить этот код перед печатью. Все работает как шарм тогда.
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()
Результат выглядит так:
Я использую ноутбуки Jupyter. Я должен был написать
%%latex
$sin(x)/x$
чтобы получить шрифт LaTex.