Programing

IPython Notebook에서 LaTeX를 작성하는 방법은 무엇입니까?

lottogame 2020. 3. 28. 10:13
반응형

IPython Notebook에서 LaTeX를 작성하는 방법은 무엇입니까?


IPython 노트북에 LaTeX 코드를 표시하려면 어떻게해야합니까?


이것은 내가 방금 수행 한 검색에서 나타 났으며, 더 많은 검색으로 더 나은 솔루션을 찾았습니다 .IPython 노트북에는 이제 모든 줄에 %%latex대한 $$래퍼 없이 전체 셀 라텍스를 만드는 마술이 있습니다.

리치 디스플레이 시스템에 대한 노트북 둘러보기


IPython 노트북은 MathJax사용 하여 html / markdown 내에 LaTeX를 렌더링합니다. LaTeX 수학을 안에 넣으십시오 $$.

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

sqrt

또는 노트북 둘러보기 끝에서 볼 수 있듯이 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 참고 문헌 :

Udacity의 블로그에는 내가 본 최고의 LaTeX Primer 가 있습니다. LaTeX 명령을 읽기 쉽고 기억하기 쉬운 방식으로 사용하는 방법을 명확하게 보여줍니다 !! 적극 권장 합니다.

이 링크에는 코드와 렌더링 결과를 모두 보여주는 훌륭한 예제가 있습니다!
이 사이트를 사용하여 LaTeX 작성 방법을 빠르게 배울 수 있습니다.

다음은 LaTeX 명령 / 기호에 대한 빠른 참조입니다 .


요약 : Jupyter / IPython에서 LaTeX를 나타내는 다양한 방법 :

마크 다운 셀의 :

인라인, 랩핑 : $

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

차단, 포장 : $$

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

차단, 포장 :\begin{equation}\end{equation}

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

차단, 포장 :\begin{align}\end{align}

\begin{align}
H←120 ​+​ \frac{​​30(R−G)​​}{Vmax−Vmin}  ​​, if V​max​​ = 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}

링크 에서 더 많은 정보를 찾았습니다


방정식을 인쇄하는 좋은 방법을 제공하는 prettyPy를 개발 했습니다 . 불행히도 성능이 떨어지고 테스트가 필요합니다.

예:

여기에 이미지 설명을 입력하십시오

물론 sympy 는 훌륭한 대안이며 prettyPy는 표현식을 평가할 수 없지만 변수 초기화는 필요하지 않습니다.


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

sqrt

또는 노트북 둘러보기 끝에서 볼 수 있듯이 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는 멋지게 보이는 기능적 라텍스 표현에 대한 훌륭한 접근 방식제공 합니다 .


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 글꼴을 얻을 수 있습니다.

참고 URL : https://stackoverflow.com/questions/13208286/how-to-write-latex-in-ipython-notebook

반응형