IPython 노트북에 LaTeX 코드를 표시하려면 어떻게해야합니까?
IPython 노트북에 LaTeX 코드를 표시하려면 어떻게해야합니까?
답변:
이것은 내가 방금 수행 한 검색에서 나타 났으며, 더 많은 검색으로 더 나은 솔루션을 찾았습니다 .IPython 노트북에는 이제 모든 줄에 %%latex
대한 $$
래퍼 없이 전체 셀 라텍스를 만드는 마술이 있습니다.
리치 디스플레이 시스템에 대한 노트북 둘러보기
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'))
LaTeX
입력하여 전체 셀을 렌더링 할 수도 있습니다 %%latex
.
Udacity의 블로그에는 내가 본 최고의 LaTeX Primer 가 있습니다. 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 문자열 에 전달할 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를 원시 셀 에 입력 하면로 변환 한 후에 만 LaTeX에 의해 렌더링됩니다nbconvert
.
Jupyter Notebook docs 에서 인용 한 Markdown Cells :
: 마크 다운 세포 내에서, 당신은 또한 표준 LaTeX의 표기법을 사용하여 간단한 방법으로 수학을 포함 할 수 $ ... $ 인라인 수학 및 $$ ... $$ 표시 수학을 . 마크 다운 셀이 실행될 때 LaTeX 부분은 고품질 타이포그래피를 사용한 방정식으로 HTML 출력에 자동으로 렌더링됩니다. 이것은 LaTeX 기능의 큰 부분 집합을 지원하는 MathJax에 의해 가능해졌습니다.
LaTeX 및 AMS-LaTeX (amsmath 패키지)로 정의 된 표준 수학 환경 (예 : \ begin {equation} ... \ end {equation} 및 \ begin {align} ... \ end {align})도 작동 합니다. 새로운 LaTeX 매크로는 마크 다운 셀의 수학 구분 기호 사이에 \ newcommand와 같은 표준 방법을 사용하여 정의 할 수 있습니다. 이러한 정의는 나머지 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}
이 링크 에서 더 많은 정보를 찾았습니다
%% latex 키워드 또는 $ .. $ 리미터를 사용한 후에도 Code에서 모든 라텍스 명령을 사용할 수 없으므로 Markdown에서 라텍스 명령을 사용할 수있는 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 노트북은 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는 멋지게 보이는 기능적 라텍스 표현에 대한 훌륭한 접근 방식 을 제공 합니다 .
이 기사 에서 Jupyter Notebook에 LaTeX를 작성하는 방법을 썼습니다 .
달러 ($) 기호로 묶어야합니다.
$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}
$$
위의 코드는 이것을 만듭니다.
방정식에 번호 매기기를 추가하고 방정식을 정렬하는 방법을 알고 싶다면 자세한 내용은이 기사를 참조하십시오 .
Markdown 셀에서 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 글꼴을 얻을 수 있습니다.