IPython ノートブックに LaTeX コードを表示するにはどうすればよいですか?
15 に答える
IPython ノートブックは、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'))
これは、私が行っていた検索で出てきました。さらに検索すると、より良い解決策が見つかりました.IPythonノートブックには、各行%%latex
のラッパーなしでセル全体をLatexにする魔法があります.$$
リッチ ディスプレイ システムについては、ノートブック ツアーを参照してください
LaTeX リファレンス:
Udacity のブログには、私が見 た中で最高の LaTeX 入門書があります。読みやすく、覚えやすい方法で LaTeX コマンドを使用する方法が明確に示されています !! 強くお勧めします。
このリンクには、コードとレンダリング結果の両方を示す優れた例があります!
このサイトを使用すると、例によって LaTeX の書き方をすばやく学ぶことができます。
そして、ここに LaTeXコマンド/シンボル のクイックリファレンスがあります。
要約するには: Jupyter/IPython で LaTeX を示すさまざまな方法:
Markdown セルの例:
インライン、ラップ:$
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 文字列で渡す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}""")
生細胞のドキュメント:
(申し訳ありませんが、ここには例はありません。ドキュメントのみです)
Raw セル Raw セルは、出力を直接書き込める場所を提供します。生のセルは Notebook によって評価されません。を通過する
nbconvert
と、未加工のセルは宛先形式が変更されずに到着します。たとえば、これにより、生の cellに完全な LaTeX を入力できます。これは、 による変換後に 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 人が上で述べたように、mathjax によって解釈されるラテックス コードを記述できます。
あるいは、iPython ノートブック チュートリアルの 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 キーワードや $..$ リミッターを使用しても Code ですべての latex コマンドを使用できなかったので、Markdown で latex コマンドを使用できる nbextensions をインストールしました。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 を使用できません。でも今後改善されるかも。
Jupyter Notebook での LaTeX の書き方はこちらの記事に書きました。
ドル ($) 記号で囲む必要があります。
- 左揃えにするには、単一のドル ($) 記号を使用します。
$P(A)=\frac{n(A)}{n(U)}$
- 中央に揃えるには、2 つのドル ($$) 記号を使用します。
$$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}
$$
上記のコードはこれを作成します。
数式にナンバリングを追加したり、数式を揃える方法を知りたい場合は、この記事を読んで詳細を確認してください。
minrkによる回答(完全を期すために含まれています) は良いですが、私がさらに気に入っている別の方法があります。
テキスト セルの最初の行としてLaTeX
入力して、セル全体をレンダリングすることもできます。%%latex
これは、次の場合に役立ちます。
- もっとコントロールしたい、
- 単なる数学環境以上のものを求めている
- または、1 つのセルに多くの数学を書き込む場合。
minrkの答え:
IPython ノートブックは、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'))
主な目的が数学である場合、SymPy は見栄えの良い関数型ラテックス表現への優れたアプローチを提供します。