Jak pisać LaTeX w notebooku IPython?

Czy ktoś może podzielić się sposobem, jak napisać kod LaTeX w notebooku IPython?

Author: hooy, 2012-11-03

9 answers

To pojawiło się podczas poszukiwań, które właśnie robiłem, znalazłem lepsze rozwiązanie przy kolejnych poszukiwaniach, Notebooki IPython mają teraz %%latex magię, która sprawia, że cała komórka jest lateksowa Bez $$ owijki dla każdej linii.

Zobacz notebook tour dla Rich Display System

 94
Author: hochopeper,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-18 12:36:50

Ipython notebook używa MathJax do renderowania lateksu wewnątrz html/markdown. Po prostu włóż swoją lateksową matmę do środka $$.

$$c = \sqrt{a^2 + b^2}$$

sqrt

Możesz też wyświetlić wynik LaTeX / Math z Pythona, jak widać na końcu notebooka tour :
from IPython.display import display, Math, Latex
display(Math(r'F(k) = \int_{-\infty}^{\infty} f(x) e^{2\pi i k} dx'))

integral

 227
Author: minrk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-08 14:38:10

Odniesienia Do Lateksu:

Blog Udacity ma Najlepsze podkład lateksowy widziałem: to wyraźnie pokazuje, jak używać poleceń LaTeX w łatwy do odczytania i łatwy do zapamiętania sposób !! wysoce zalecane .

Ten Link ma doskonałe przykłady wyświetlanie zarówno kodu, jak i renderowanego wyniku !
Możesz użyć tej strony, aby szybko nauczyć się pisać LaTeX na przykładzie.

A oto krótki odnośnik do LaTeX polecenia/symbole.


LaTeX jest jednym z najbardziej popularnych LaTeX-ów na świecie.]}

Przykłady dla komórek Markdown:

Inline, wrap in: $

The equation used depends on whether the the value of  
$V​max​​$ is R, G, or B.  

Block, wrap in: $$

$$H←  ​​​​​0 ​+​ \frac{​​30(G−B)​​}{Vmax−Vmin}  ​​, if V​max​​ = R$$

Block, wrap in: \begin{equation} i \end{equation}

\begin{equation}
H← ​​​60 ​+​ \frac{​​30(B−R)​​}{Vmax−Vmin}  ​​, if V​max​​ = G
\end{equation}

Block, wrap in: \begin{align} i \end{align}

\begin{align}
H←120 ​+​ \frac{​​30(R−G)​​}{Vmax−Vmin}  ​​, if V​max​​ = B
\end{align}

Przykłady dla komórek kodu:

LaTex Komórka: %%latex magiczne polecenie zamienia całą komórkę w lateksową komórkę

%%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}

Obiekt matematyczny aby przekazać surowy łańcuch lateksowy :

from IPython.display import Math
Math(r'F(k) = \int_{-\infty}^{\infty} f(x) e^{2\pi i k} dx')

Klasa Latex . Uwaga: ograniczniki należy uwzględnić samodzielnie. Pozwala to na użycie innych trybów LaTeX, takich jak 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}""")

Docs for komórki surowe:

(sorry, no example here, just the docs)

Komórki surowe Surowy komórki zapewniają miejsce, w którym można bezpośrednio zapisywać dane wyjściowe. Nieprzetworzone komórki nie są oceniane przez notatnik. Po przejściu przez nbconvert, surowe komórki przybywają w formacie docelowym niezmodyfikowanym. Na przykład, pozwala to wpisać pełny Latex do nieprzetworzonej komórki, która będzie renderowana przez LaTeX po konwersji przez nbconvert.

Dodatkowa Dokumentacja:

Dla komórek Markdown, cytowanych z Jupyter Notebook docs :

Wewnątrz Komórki Markdown, można również włączyć matematykę w prosty sposób, używając standardowej notacji lateksowej: $...$ dla matematyki inline i $$...$ $ za wyświetloną matematykę . Gdy komórka Markdown jest wykonywana, fragmenty LaTeX ' a są automatycznie renderowane na wyjściu HTML jako równania z typografią wysokiej jakości. Jest to możliwe dzięki MathJax, który obsługuje duży podzbiór funkcji LaTeX

Standardowe środowiska matematyczne zdefiniowane przez LaTeX działa również AMS-LaTeX (pakiet amsmath), np. \begin{equation}...\end{equation} i \ begin{align}...\ end{align=. Nowe makra LaTeX mogą być zdefiniowane za pomocą standardowych metod, takich jak \newcommand, umieszczając je w dowolnym miejscu między ogranicznikami matematycznymi w komórce znaczników. Definicje te są następnie dostępne przez resztę sesji IPython.

 34
Author: SherylHohman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-18 19:33:53

Użyj $$, jeśli chcesz, aby Twoja matematyka wyświetlała się w jednej linii, np.

$$a = b + c$$ (line break after the equation)

Jeśli nie potrzebujesz podziału linii po matematyce, użyj pojedynczego znaku dolara$, np.

$a = b + c$   (no line break after the equation)
 28
Author: linbianxiaocao,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-25 19:18:48

Możesz wybrać komórkę, która ma być markdown, a następnie napisać kod latex, który zostanie zinterpretowany przez mathjax, jak mówi jeden z responder ' ów powyżej.

Alternatywnie, sekcja Latex w samouczku notebooka iPython dobrze to wyjaśnia.

Możesz albo zrobić:

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}""")

Lub zrób to:

%%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}

Więcej informacji można znaleźć w tym linku

 20
Author: T D,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-02 21:06:33

Nie mogę zaprzeczyć, że nie jestem stronniczy, ale wolę używać prettyPy zamiast wypisywać pełne wyrażenia Latexowe.

Przykład:

Tutaj wpisz opis obrazka

Granted, sympy jest świetną alternatywą i chociaż prettyPy nie pozwala na ewaluację wyrażeń, inicjalizacja zmiennych nie jest wymagana.

 8
Author: Charles,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-17 01:50:29

Ponieważ nie byłem w stanie użyć wszystkich poleceń latex w kodzie nawet po użyciu słowa kluczowego % % latex lub $..$ limiter, zainstalowałem nbextensions przez które mogłem używać poleceń latex w Markdown. Po wykonaniu instrukcji tutaj: https://github.com/ipython-contrib/IPython-notebook-extensions/blob/master/README.md a następnie ponownie uruchomić Jupyter i localhost: 8888/nbextensions, a następnie aktywować "Latex Environment for Jupyter" , mogłem uruchomić wiele Latex polecenia. Przykłady są tutaj: 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}

Jak widzisz, nadal nie jestem w stanie użyć opakowania. Ale może w przyszłości zostanie to poprawione.

Tutaj wpisz opis obrazka

 6
Author: infoclogged,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-07 10:19:01

Odpowiedź udzielona przez minrk (uwzględniona dla kompletności) jest dobra, ale jest inny sposób, który podoba mi się jeszcze bardziej.

Możesz również renderować całą komórkę jako LaTeX, wpisując %%latex jako pierwszą linię w komórce tekstowej. To jest przydatne, jeśli

  • chcesz więcej kontroli,
  • chcesz czegoś więcej niż tylko środowiska matematycznego,
  • lub jeśli zamierzasz napisać dużo matematyki w jednej komórce.

Minrk 's odpowiedź:


IPython zeszyt wykorzystuje MathJax do renderowania LaTeX wewnątrz html / markdown. Po prostu włóż swoją lateksową matmę do środka $$.
$$c = \sqrt{a^2 + b^2}$$

sqrt

Lub możesz wyświetlić wyjście LaTeX / Math z Pythona, jak widać w kierunku koniec notatnika tour :

from IPython.display import display, Math, Latex
display(Math(r'F(k) = \int_{-\infty}^{\infty} f(x) e^{2\pi i k} dx'))

integral

 4
Author: Toke Faurby,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:33:24

Jeśli twoim głównym celem jest matematyka, SymPy zapewnia doskonałe podejście do funkcjonalnych wyrażeń latexowych, które wyglądają świetnie.

 2
Author: Eron Lloyd,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-22 21:58:49