Làm cách nào để hiển thị mã LaTeX trong IPython Notebook?
Làm cách nào để hiển thị mã LaTeX trong IPython Notebook?
Câu trả lời:
Điều này xuất hiện trong một tìm kiếm tôi vừa thực hiện, tìm thấy một giải pháp tốt hơn với một số máy tính xách tay IPython tìm kiếm nhiều hơn bây giờ có một %%latex
phép thuật làm cho toàn bộ tế bào latex mà không cần $$
bọc cho mỗi dòng.
Tham khảo máy tính xách tay cho Hệ thống hiển thị phong phú
Máy tính xách tay IPython sử dụng MathJax để hiển thị LaTeX bên trong html / markdown. Chỉ cần đặt toán LaTeX của bạn vào bên trong $$
.
$$c = \sqrt{a^2 + b^2}$$
Hoặc bạn có thể hiển thị đầu ra LaTeX / Math từ Python, như được thấy ở phần cuối của chuyến tham quan máy tính xách tay :
from IPython.display import display, Math, Latex
display(Math(r'F(k) = \int_{-\infty}^{\infty} f(x) e^{2\pi i k} dx'))
LaTeX
bằng cách nhập %%latex
dưới dạng dòng đầu tiên trong một ô văn bản.
Blog của Udacity có Primer LaTeX tốt nhất mà tôi từng thấy: Nó cho thấy rõ cách sử dụng các lệnh LaTeX theo cách dễ đọc và dễ nhớ !! Rất khuyến khích .
Liên kết này có các ví dụ xuất sắc hiển thị cả mã và kết quả được hiển thị!
Bạn có thể sử dụng trang web này để nhanh chóng tìm hiểu cách viết LaTeX bằng ví dụ.
Và, đây là một Tài liệu tham khảo nhanh cho các lệnh / ký hiệu LaTeX .
nội tuyến, bọc trong: $
The equation used depends on whether the the value of
$Vmax$ is R, G, or B.
chặn, bọc trong: $$
$$H← 0 + \frac{30(G−B)}{Vmax−Vmin} , if Vmax = R$$
chặn, bọc trong:\begin{equation}
và\end{equation}
\begin{equation}
H← 60 + \frac{30(B−R)}{Vmax−Vmin} , if Vmax = G
\end{equation}
chặn, bọc trong:\begin{align}
và\end{align}
\begin{align}
H←120 + \frac{30(R−G)}{Vmax−Vmin} , if Vmax = B
\end{align}
LaTex Cell: %%latex
lệnh ma thuật biến toàn bộ tế bào thành một tế bào 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}
Đối tượng toán học để truyền trong chuỗi LaTeX thô :
from IPython.display import Math
Math(r'F(k) = \int_{-\infty}^{\infty} f(x) e^{2\pi i k} dx')
Lớp cao su . Lưu ý: bạn phải bao gồm các dấu phân cách chính mình. Điều này cho phép bạn sử dụng các chế độ LaTeX khác, chẳng hạn như 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}""")
(xin lỗi, không có ví dụ nào ở đây, chỉ là các tài liệu)
Các ô thô Các ô thô cung cấp một vị trí trong đó bạn có thể viết đầu ra trực tiếp. Các tế bào thô không được đánh giá bởi máy tính xách tay. Khi đi qua
nbconvert
, các ô thô đến ở định dạng đích không được sửa đổi. Ví dụ: điều này cho phép bạn nhập LaTeX đầy đủ vào một ô thô , sẽ chỉ được LaTeX hiển thị sau khi chuyển đổi bởinbconvert
.
Đối với các tế bào Markdown, như được trích dẫn từ các tài liệu của Jupyter Notebook :
Trong các ô Markdown, bạn cũng có thể bao gồm toán học theo cách đơn giản, sử dụng ký hiệu LaTeX tiêu chuẩn: $ ... $ cho toán học nội tuyến và $$ ... $$ cho toán học hiển thị . Khi ô Markdown được thực thi, các phần LaTeX sẽ tự động được hiển thị trong đầu ra HTML dưới dạng phương trình với kiểu chữ chất lượng cao. Điều này được MathJax thực hiện, hỗ trợ một tập hợp lớn chức năng LaTeX
Các môi trường toán học tiêu chuẩn được xác định bởi LaTeX và AMS-LaTeX (gói amsmath) cũng hoạt động, chẳng hạn như \ started {phương trình} ... \ end {phương trình} và \ started {align} ... \ end {align} . Các macro LaTeX mới có thể được xác định bằng các phương thức tiêu chuẩn, chẳng hạn như \ newcommand, bằng cách đặt chúng ở bất kỳ đâu giữa các dấu phân cách toán học trong một ô Markdown. Các định nghĩa này sau đó có sẵn trong suốt phần còn lại của phiên IPython.
Sử dụng $$ nếu bạn muốn toán học của mình xuất hiện trong một dòng, ví dụ:
$$a = b + c$$ (line break after the equation)
Nếu bạn không cần ngắt dòng sau toán học, hãy sử dụng ký hiệu đô la duy nhất $, ví dụ:
$a = b + c$ (no line break after the equation)
Bạn có thể chọn một ô để đánh dấu, sau đó viết mã latex được mathjax giải thích, như một trong những người trả lời đã nói ở trên.
Ngoài ra, phần latex của hướng dẫn máy tính xách tay iPython giải thích điều này tốt.
Bạn có thể làm:
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}""")
hoặc làm điều này:
%%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}
Thông tin thêm được tìm thấy trong liên kết này
Tôi đã phát triển PrettyPy , cung cấp một cách hay để in phương trình. Thật không may, nó không hiệu quả và cần thử nghiệm.
Thí dụ:
Cấp, sympy là một thay thế tuyệt vời và mặc dù PrettyPy không cho phép đánh giá các biểu thức, không cần phải khởi tạo biến.
Vì, tôi không thể sử dụng tất cả các lệnh latex trong Code ngay cả sau khi sử dụng từ khóa %% latex hoặc giới hạn $ .. $, tôi đã cài đặt nbextensions qua đó tôi có thể sử dụng các lệnh latex trong Markdown. Sau khi làm theo các hướng dẫn tại đây: https://github.com/ipython-contrib/IPython-notebook-extensions/blob/master/README.md và sau đó khởi động lại Jupyter và sau đó localhost: 8888 / nbextensions và sau đó kích hoạt "Môi trường latex cho Jupyter ", tôi có thể chạy nhiều lệnh latex. Ví dụ ở đây: 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}
Như bạn thấy, tôi vẫn không thể sử dụng usepackage. Nhưng có lẽ nó sẽ được cải thiện trong tương lai.
Câu trả lời được đưa ra bởi minrk (bao gồm cho sự hoàn chỉnh) là tốt, nhưng có một cách khác mà tôi thích hơn nữa.
Bạn cũng có thể kết xuất toàn bộ một ô LaTeX
bằng cách nhập %%latex
dưới dạng dòng đầu tiên trong một ô văn bản. Điều này là hữu ích nếu bạn
câu trả lời của minrk :
Máy tính xách tay IPython sử dụng MathJax để hiển thị LaTeX bên trong html / markdown. Chỉ cần đặt toán LaTeX của bạn vào bên trong
$$
.$$c = \sqrt{a^2 + b^2}$$
Hoặc bạn có thể hiển thị đầu ra LaTeX / Math từ Python, như được thấy ở phần cuối của chuyến tham quan máy tính xách tay :
from IPython.display import display, Math, Latex display(Math(r'F(k) = \int_{-\infty}^{\infty} f(x) e^{2\pi i k} dx'))
Nếu mục tiêu chính của bạn là làm toán, SymPy cung cấp một cách tiếp cận tuyệt vời cho các biểu thức latex chức năng trông tuyệt vời.
Tôi đã viết cách viết LaTeX trong Jupyter Notebook trong bài viết này.
Bạn cần gửi chúng theo ký hiệu đô la ($).
$P(A)=\frac{n(A)}{n(U)}$
$$P(A)=\frac{n(A)}{n(U)}$$
Sử dụng \limits
cho \lim
, \sum
và \int
thêm giới hạn trên và dưới cùng của mỗi dấu.
Sử dụng dấu gạch chéo ngược để thoát các từ đặc biệt LaTeX như ký hiệu Toán học, từ Latin, văn bản, v.v.
Hãy thử cái này
$$\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}
$$
Các mã trên sẽ tạo ra điều này.
Nếu bạn muốn biết làm thế nào để thêm số vào phương trình và căn chỉnh phương trình, xin vui lòng đọc bài viết này để biết chi tiết .
Sử dụng cú pháp LaTeX trực tiếp trong một ô Markdown hoạt động với tôi. Tôi đang sử dụng Jypiter 4.4.0.
Tôi không phải sử dụng %%latex
lệnh ma thuật, tôi nhấn mạnh, chỉ đơn giản là một ô đánh dấu:
\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}
Hiển thị:
Tôi đã gặp vấn đề này một ngày nào đó bằng cách sử dụng colab. Và tôi thấy cách không đau đớn nhất là chỉ chạy mã này trước khi in. Mọi thứ hoạt động như quyến rũ rồi.
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()
Kết quả trông như thế này:
Tôi đang sử dụng Notebook Jupyter. Tôi phải viết
%%latex
$sin(x)/x$
để có được phông chữ LaTex.