Python in biểu tượng latex

Không có gì ngạc nhiên khi Python hỗ trợ tốt cho việc sử dụng LaTeX. Python gần đây đã trở thành ngôn ngữ lập trình số một, đặc biệt là cho các ứng dụng khoa học và toán học. Trong nhiều năm, LaTeX là công cụ hàng đầu để sắp chữ các tài liệu toán học và khoa học

quảng cáo

Trong Jupyter, cả sổ ghi chép Jupyter truyền thống và JupyterLab đều hỗ trợ sử dụng các biểu thức toán học LaTeX trong các ô Markdown. Hơn nữa, trong JupyterLab, bạn có thể chỉnh sửa các tài liệu LaTeX hoàn chỉnh và tiện ích mở rộng của bên thứ ba cho phép tự động tạo các tệp này và nhận bản xem trước trực tiếp của kết quả

Ngoài sự hỗ trợ do Jupyter cung cấp, các hệ thống Đại số máy tính Python cũng có các tính năng của LaTeX. SymPy và SageMath, hai phần mềm chính, hỗ trợ hiển thị các biểu thức toán học bằng LaTeX. Chúng cũng cho phép bạn truy cập chính mã LaTeX bên dưới. Trong cả hai trường hợp, có một số tùy chọn để kiểm soát đầu ra LaTeX

Ngoài Jupyter và các công cụ toán học tượng trưng của Python, còn có các gói Python của bên thứ ba hoạt động với LaTeX. Chúng tôi sẽ kiểm tra một trong những thiết bị này thực tế hơn và được bảo trì tốt, Latexifier

LaTeX trong Jupyter Markdown

Ở một khía cạnh nào đó, Jupyter cho phép bạn bắt đầu tích hợp các biểu thức toán học vào các ô Markdown một cách dễ dàng và nhanh chóng. Phần này sẽ hướng dẫn bạn cách thực hiện và một số thủ thuật “căn chỉnh” cơ bản

quảng cáo

Đầu ra toán học định tâm

Giả sử bạn có một biểu thức toán học mà bạn muốn hiển thị được căn giữa và định dạng gọn gàng. Trong trường hợp này, bạn có thể bắt đầu một khối bằng hai ký hiệu đô la,

$
\begin{align}
\lim_{x\to0} \frac{\sin{x}}{x} = 1
\end{align}
$
9, chèn mã LaTeX cho biểu thức và kết thúc lại khối bằng hai ký hiệu đô la. Ví dụ

$$
\lim_{x\to0} \frac{\sin{x}}{x} = 1
$$

đầu ra

Mục đích của chúng tôi ở đây không dành cho chúng tôi không gian cho một hướng dẫn toàn diện về LaTeX, nhưng nếu chúng tôi xem nguồn, chúng tôi có thể có được cảm nhận cơ bản về cách thức hoạt động của nó. Ở đây chúng tôi có một chỉ thị

$
\begin{align}
\lim_{x\to0} \frac{\sin{x}}{x} = 1
\end{align}
$
0_, mà chúng tôi làm theo với dấu gạch dưới và dấu ngoặc vuông chứa những gì chúng tôi muốn xuất hiện bên dưới giới hạn. Tiếp theo, chúng ta khai báo hàm, bắt đầu bằng một phân số, hàm này nhận hai cặp dấu ngoặc [tử số và mẫu số]. Bạn sẽ tìm thấy mẫu cơ bản này của
$
\begin{align}
\lim_{x\to0} \frac{\sin{x}}{x} = 1
\end{align}
$
1 ở khắp mọi nơi trong LaTeX

quảng cáo

Căn trái và khối LaTeX nội tuyến

Nếu chúng ta muốn cùng một khối xuất hiện căn trái, chúng ta có thể giữ nguyên đường giới hạn lõi như trước, nhưng chúng ta cần thực hiện hai việc. Trước tiên, chúng ta cần thay đổi các ký hiệu đô la kép thành đơn. Điều đó một mình sẽ căn chỉnh đầu ra, như hình dưới đây

Tuy nhiên, lưu ý rằng số hạng của giới hạn “khi x tiến dần đến 0” không còn xuất hiện bên dưới giới hạn như chúng ta mong đợi và phần còn lại của biểu thức trông cũng hơi khác. Để khắc phục điều này và làm cho đầu ra nhất quán với phiên bản ở giữa, chúng ta cần thêm mảnh ghép thứ hai, một chỉ thị căn chỉnh. Đây là cách mã và đầu ra sẽ trông như thế nào.
$
\begin{align}
\lim_{x\to0} \frac{\sin{x}}{x} = 1
\end{align}
$

Đầu ra khi được đánh giá

Nội dòng một khối sử dụng cùng một ký hiệu đô la để bắt đầu và kết thúc một khối nhưng không có bất kỳ dòng mới nào ở đầu hoặc cuối. Lấy ví dụ, một câu trông như thế này. Quảng cáo

Để có được kết quả đó, chúng tôi đưa các biểu thức toán học vào các khối nội tuyến trong văn bản.

The function $f[x] = \frac{17}{x-4}$ has a discontinuity at $x = 4$.

Một cảnh báo quan trọng. MathJax vs. Mủ cao su

Trước khi rời phần này, chúng ta nên đề cập đến một “vấn đề” với hỗ trợ “LaTeX” của Jupyter mà bạn có thể gặp phải. Jupyter bổ sung hỗ trợ LaTeX cho Markdown thông qua MathJax, một thư viện JavaScript để định dạng và hiển thị các biểu thức toán học. Điều này có nghĩa là đối với các biểu thức toán học và một tập hợp con rất nhỏ định dạng và các biểu thức phi toán học khác, Jupyter hoạt động hoàn hảo. Vì vậy, mặc dù bạn đang sử dụng một tập hợp con của ngôn ngữ LaTeX hoạt động khá tốt, nhưng đây thực sự không phải là môi trường xây dựng LaTeX

Vì điều này, bạn thường sẽ thấy rằng nếu cố gắng tìm kiếm cách thực hiện điều gì đó trong LaTeX, bạn sẽ tìm thấy một kỹ thuật không được MathJax hỗ trợ. Hầu hết các tài liệu tham khảo trực tuyến không dành cho MathJax, mà dành cho chính LaTeX. Ví dụ: bạn có thể thường tìm thấy tài liệu về các giải pháp dựa trên việc nhập một số thư viện bằng cách sử dụng chỉ thị

$
\begin{align}
\lim_{x\to0} \frac{\sin{x}}{x} = 1
\end{align}
$
2 hoặc có thể là tạo bảng LaTeX

quảng cáo

Bạn không thực sự gặp lỗi trong những trường hợp như vậy - bạn sẽ chỉ nhận được kết quả trông kỳ lạ. Xem xét nguồn và đầu ra LaTeX sau


$$
\usepackage{amsmath}
$$

$$
\begin{table}[]
\begin{tabular}{lll}
1 & 2 & 3  \\
2 & 4 & 6 \\
\end{tabular}
\end{table}
$$

Đầu ra khi ô được đánh giá

Lệnh đầu tiên sẽ không có kết quả nào cả, lệnh thứ hai sẽ hiển thị một bảng thực tế giống như thế này.

Nếu bạn đang xử lý các biểu thức toán học, MathJax sẽ cho kết quả tuyệt vời và thường có thể thực hiện chính xác những gì bạn cần. [Để cung cấp cho bạn một ý tưởng, MathJax làm cơ sở cho các biểu thức toán học trên trang Paul's Math Notes nổi tiếng]. Nhưng hãy nhớ rằng mặc dù MathJax hỗ trợ xuất sắc một tập hợp con của LaTeX, nhưng nó vẫn chỉ là một tập hợp con. Nếu bạn có nội dung không phải định dạng LaTeX toán học phải xuất hiện "nguyên trạng" trong Jupyter, bạn có thể sẽ tìm thấy cách dễ dàng nhất để chuyển sang thông qua ảnh chụp màn hình được nhúng.

quảng cáo

Tệp LaTeX trong JupyterLab

Ngoài hỗ trợ MathJax có sẵn từ sổ ghi chép cổ điển trở đi, trong trường hợp của JupyterLab, hỗ trợ tiện ích mở rộng công cụ đó có nghĩa là bạn có thể sử dụng JupyterLab làm trình chỉnh sửa cho các tệp LaTeX “thực”. Để làm điều này, bạn sẽ cần phải có một trình biên dịch có thể chuyển đổi. tex thành PDF, thường có sẵn trong nhiều bản phân phối TeX. Ngoài ra, bạn sẽ cần cài đặt tiện ích mở rộng jupyterlab_latex, chẳng hạn bằng cách chạy

$
\begin{align}
\lim_{x\to0} \frac{\sin{x}}{x} = 1
\end{align}
$
3 hoặc
$
\begin{align}
\lim_{x\to0} \frac{\sin{x}}{x} = 1
\end{align}
$
4

Khi bạn đã cài đặt xong, bạn có thể nhấp chuột phải vào tài liệu LaTeX trong tệp có tên. tex để hiển thị cửa sổ xem trước LaTeX. Cửa sổ này sẽ cập nhật mỗi khi nguồn tương ứng bị thay đổi. Ảnh chụp màn hình bên dưới cho thấy cách điều này có thể tìm kiếm một số lệnh không thành công trước đó khi chúng tôi thử chúng trong Markdown. Tại thời điểm này, chúng tôi không còn xử lý MathJax nữa mà là chính LaTeX

LaTeX trong SageMath và SymPy

Ngoài việc làm việc với LaTeX trực tiếp trong Jupyter, hai công cụ toán học tượng trưng phổ biến của Python, SageMath và SymPy, cả hai đều hỗ trợ xem các biểu thức của chúng trong LaTeX. Tuy nhiên, có một số khác biệt trong cách họ tiếp cận vấn đề này.

  • Đối với SageMath, việc hiển thị các biểu thức bằng MathJax trong trình duyệt yêu cầu một lệnh gọi riêng tới hàm
    $
    \begin{align}
    \lim_{x\to0} \frac{\sin{x}}{x} = 1
    \end{align}
    $
    5, trong khi ở SymPy, đầu ra được định dạng thông qua MathJax theo mặc định
  • SageMath có thể xuất các biểu thức LaTeX giống như SymPy có thể, nhưng SageMath không thể phân tích chúng để tạo các đối tượng SageMath từ LaTeX. SymPy có bao gồm một trình phân tích cú pháp thử nghiệm cho LaTeX, nhưng đôi khi nó tạo ra các kết quả không mong muốn ngay cả đối với các chức năng đơn giản được tạo trong SymPy, vì vậy nó còn một chặng đường dài phía trước. Quảng cáo
  • Khi tạo đầu ra, SageMath kiểm soát định dạng LaTeX chi tiết thông qua một đối tượng chung [để nó xử lý tốt các giá trị mặc định “phổ quát”]. Trong SymPy, các tùy chọn để kiểm soát đầu ra có thể được chuyển vào chính hàm
    $
    \begin{align}
    \lim_{x\to0} \frac{\sin{x}}{x} = 1
    \end{align}
    $
    6

Với phần giới thiệu ngắn gọn đó, chúng ta hãy xem một vài ví dụ. Chúng tôi sẽ xử lý trường hợp của SageMath trước. Để hiển thị cả hàm và giải pháp của nó bằng MathJax, bạn chỉ cần hiển thị từng hàm bằng phương thức show

$
\begin{align}
\lim_{x\to0} \frac{\sin{x}}{x} = 1
\end{align}
$
1

đầu ra

Nhân tiện, cái ống thẳng đứng có mũi tên đó được đọc là “bản đồ tới”. SageMath hiển thị các hàm sử dụng ký hiệu

$
\begin{align}
\lim_{x\to0} \frac{\sin{x}}{x} = 1
\end{align}
$
7, để cho biết rằng hàm f ánh xạ x tới bất kỳ phần thân hàm nào bạn đã khai báo, trong trường hợp của chúng ta là x2 – 5x + 6

Để lấy nguồn LaTeX trong SageMath, chỉ cần gọi hàm

$
\begin{align}
\lim_{x\to0} \frac{\sin{x}}{x} = 1
\end{align}
$
6, chuyển vào biểu thức bạn muốn chuyển đổi. Nếu bạn cần xem chuỗi ở định dạng mà bạn có thể dán vào Python hoặc mã khác [i. e. , bạn muốn các chuỗi thoát mà bạn cần], hãy bọc nó trong một hàm tạo
$
\begin{align}
\lim_{x\to0} \frac{\sin{x}}{x} = 1
\end{align}
$
9. Ví dụ: đây là cách lấy theo cả hai cách cho hàm của chúng ta, f

Như chúng tôi đã đề cập trước đó, trong SageMath, đầu ra mặc định được định dạng độc đáo trong MathJax, vì vậy nhu cầu gọi show phần lớn biến mất. Nhược điểm của điều đó là không rõ làm thế nào mà một người có thể có nhiều lệnh gọi để “hiển thị” các đối tượng khác nhau thông qua MathJax trong cùng một ô. Trong SageMath, điều dễ dàng thực hiện trong trường hợp này là chia mã thành nhiều ô, như minh họa bên dưới

Quảng cáo

Giống như trong Sage, bạn cũng có thể lấy biểu diễn chuỗi trong SymPy, có hoặc không có chuỗi thoát.

$
\begin{align}
\lim_{x\to0} \frac{\sin{x}}{x} = 1
\end{align}
$
5

đầu ra

$
\begin{align}
\lim_{x\to0} \frac{\sin{x}}{x} = 1
\end{align}
$
6

Các gói khác trong Python

Có một số tiện ích LaTeX được xuất bản dưới dạng gói Python của bên thứ ba [trên PyPi]. Một điều thú vị, latexify-py, chuyển đổi các hàm Python định hướng toán học thành LaTeX. Tuy nhiên, gói này chỉ hỗ trợ một số phiên bản Python hẹp và hiện tại dường như không được duy trì

Một gói cập nhật hơn trong không gian này là latexifier. Mô-đun latexifier hỗ trợ một số loại Python khác nhau bao gồm danh sách đơn giản, bộ dữ liệu và biểu thức SymPy. Một tính năng thực sự tuyệt vời là khả năng xử lý trực tiếp các mảng NumPy. Trong phần này, chúng tôi sẽ chỉ cho bạn cách thực hiện việc này. Đồng thời, chúng tôi cũng sẽ thảo luận về cách bạn có thể lấy bất kỳ chuỗi tương thích với MathJax nào và hiển thị nó trong Jupyter

Với latexifier được cài đặt, mã bên dưới thực hiện như sau

  • Tạo một mảng 2-D NumPy
  • Chuyển đổi nó thành một chuỗi đại diện cho một ma trận
  • Xuất nó bằng IPython. trưng bày. Mủ cao su
$
\begin{align}
\lim_{x\to0} \frac{\sin{x}}{x} = 1
\end{align}
$
7

đầu ra

Quảng cáoBằng cách chuyển đổi nó thành mảng NumPy một chiều trước, chúng ta có thể lấy một danh sách Python đơn giản và hiển thị dưới dạng vectơ hàng hoặc vectơ cột.

Đây là thiết lập cho điều đó

$
\begin{align}
\lim_{x\to0} \frac{\sin{x}}{x} = 1
\end{align}
$
8

Vậy là xong, chúng ta có thể hiển thị véc-tơ theo cả hai cách

Mã nguồn và tài nguyên bổ sung

Bạn có thể lấy nguồn cho bài viết này trong kho lưu trữ GitHub được liên kết hoặc tải xuống [tệp zip]. README chứa phần tài nguyên với một số liên kết khác mà bạn có thể thấy hữu ích khi bắt đầu sử dụng LaTeX

Hình ảnh cho bài viết này chỉ mang tính chất giải trí và được tạo bằng các kỹ thuật mà chúng tôi đã đề cập ở đây. Doanh nghiệp đó bên dưới logo Python cho bạn biết những gì bạn có thể sử dụng trong MathJax và có thể được đọc là “tập hợp tất cả các phần tử sao cho phần tử là tập hợp con của LaTeX và phần tử nằm trong tập hợp các biểu thức toán học. ”

Python có thể in LaTeX không?

Ngoài sự hỗ trợ do Jupyter cung cấp, Các hệ thống Đại số máy tính Python cũng có các tính năng của LaTeX . SymPy và SageMath, hai phần mềm chính, hỗ trợ hiển thị các biểu thức toán học bằng LaTeX. Chúng cũng cho phép bạn truy cập chính mã LaTeX bên dưới.

SymPy có thể đọc LaTeX không?

Giới thiệu. Latex Sympy Calculator phân tích các biểu thức toán học LaTeX và chuyển đổi nó thành dạng SymPy tương đương . Sau đó, tính toán và chuyển đổi thành kết quả latex. Nó được thiết kế để cung cấp cho những người viết bằng latex hoặc markdown khả năng tính toán điều gì đó khi viết biểu thức toán học.

Chức năng pprint trong SymPy là gì?

Pprint[] được dùng để in đầu ra ra bảng điều khiển rất tốt . Kết quả tốt nhất thu được với LaTeX, ví dụ, trong sổ ghi chép Jupyter. Truy cập Dự án nhận dạng ký tự YOLO OCR bằng mã nguồn.

Chủ Đề