IPython NotebookでLaTeXコードを表示するにはどうすればよいですか?
IPython NotebookでLaTeXコードを表示するにはどうすればよいですか?
回答:
これは私が行っていた検索で思い付き、いくつかの検索でより良い解決策を見つけました.IPythonノートブックには、各行%%latex
の$$
ラッパーなしでセル全体をラテックスにする魔法があります。
リッチディスプレイシステムのノートブックツアーを参照する
IPython NotebookはMathJaxを使用して、html / markdown内でLaTeXをレンダリングします。LaTeXの数学を中に入れてください$$
。
$$c = \sqrt{a^2 + b^2}$$
または、ノートブックツアーの終わり近くにあるように、PythonからLaTeX / Mathの出力を表示することもできます。
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セル: %%latex
magicコマンドはセル全体を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}
生のLaTeX文字列で渡すMathオブジェクト:
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をrawセルに入力できます。これは、による変換後にLaTeXによってのみレンダリングされnbconvert
ます。
マークダウンセルの場合、Jupyter Notebook docsから引用:
Markdownセル内では、標準のLaTeX表記を使用して、簡単な方法で数学を含めることもできます。インライン数学には$ ... $、表示された数学には$$ ... $$です。Markdownセルが実行されると、LaTeX部分は、高品質のタイポグラフィーを持つ数式としてHTML出力に自動的にレンダリングされます。これは、LaTeX機能の大部分をサポートするMathJaxによって可能になりました。
\ Begin {equation} ... \ end {equation}や\ begin {align} ... \ end {align}など、LaTeXおよびAMS-LaTeX(amsmathパッケージ)によって定義された標準の数学環境も機能します。新しいLaTeXマクロは、\ newcommandなどの標準的な方法を使用して、Markdownセルの数学区切り文字の間のどこかに配置することで定義できます。これらの定義は、IPythonセッションの残りの部分で利用できます。
数式を1行で表示する場合は、$$を使用します。たとえば、
$$a = b + c$$ (line break after the equation)
数学の後に改行が必要ない場合は、単一のドル記号$を使用します。たとえば、
$a = b + c$ (no line break after the equation)
マークダウンするセルを選択してから、mathjaxによって解釈されるラテックスコードを記述できます。
または、iPython NotebookチュートリアルのLatexセクションで、これについて詳しく説明しています。
次のいずれかを実行できます。
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}
このリンクでより多くの情報が見つかりました
%% latexキーワードまたは$ .. $リミッターを使用した後でも、コードですべてのlatexコマンドを使用できなかったため、Markdownでlatexコマンドを使用できるnbextensionsをインストールしました。ここの指示に従って:https : //github.com/ipython-contrib/IPython-notebook-extensions/blob/master/README.mdを再起動し、Jupyterを再起動してからlocalhost:8888 / nbextensionsを起動し、「Latex Environment for 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
ます。これは、
minrkの答え:
IPython NotebookはMathJaxを使用して、html / markdown内でLaTeXをレンダリングします。LaTeXの数学を中に入れてください
$$
。$$c = \sqrt{a^2 + b^2}$$
または、ノートブックツアーの終わり近くにあるように、PythonからLaTeX / Mathの出力を表示することもできます。
from IPython.display import display, Math, Latex display(Math(r'F(k) = \int_{-\infty}^{\infty} f(x) e^{2\pi i k} dx'))
この記事では、Jupyter NotebookでLaTeXの書き方を書きました。
それらをドル記号($)で囲む必要があります。
$P(A)=\frac{n(A)}{n(U)}$
$$P(A)=\frac{n(A)}{n(U)}$$
\limits
for とを使用して\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構文を使用するとうまくいきます。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}
レンダリング先:
私はいつかcolabを使用してこの問題に遭遇しました。そして、最も苦痛のない方法は、印刷する前にこのコードを実行することです。すべてが魅力のように機能します。
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 Notebooksを使用しています。私は書かなければなりませんでした
%%latex
$sin(x)/x$
LaTexフォントを取得します。