Як я можу відобразити код LaTeX у зошиті IPython?
Як я можу відобразити код LaTeX у зошиті IPython?
Відповіді:
Це з'явилося в пошуку, який я щойно робив, знайшов краще рішення з ще кількома пошуковими запитами, ноутбуки IPython тепер мають %%latex
магію, завдяки якій цілий осередок Латекс без $$
обгортки для кожного рядка.
Ознайомтесь із туром ноутбука для системи Rich Display
Ноутбук 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}
Об'єкт математики для передачі в сирому рядку 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}
Більше інформації можна знайти за цим посиланням
Я розробив доситьPy , який пропонує хороший спосіб друкувати рівняння. На жаль, він не працює та потребує тестування.
Приклад:
Звичайно, sympy є чудовою альтернативою, і хоча prettyPy не дозволяє оцінювати вирази, ініціалізація змінної не потрібна.
Оскільки я не зміг використовувати всі команди латексу в Кодексі навіть після використання ключового слова %% латекс або обмежувача $ .. $, я встановив nbextensions, за допомогою яких я міг використовувати команди латексу в Markdown. Дотримуючись інструкцій тут: https://github.com/ipython-contrib/IPython-notebook-extensions/blob/master/README.md, а потім перезавантажте Jupyter, а потім localhost: 8888 / nbextensions, а потім активуйте "Латексне середовище для Юпітер ", я міг виконати багато команд" Латекс ". Приклади тут: 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()
Результат виглядає приблизно так:
Я використовую ноутбуки Юпітера. Довелося писати
%%latex
$sin(x)/x$
щоб отримати шрифт LaTex.