LaTeX: Menulis Matematika dan Dokumen
Dasar Komputasi Python JavaScript
Jawaban singkat
LaTeX adalah sistem penyusunan huruf: kamu menulis berkas teks biasa dengan perintah seperti \frac{a}{b} dan \section{Pendahuluan}, dan sebuah program mengubahnya menjadi PDF yang rapi. Ia menjadi standar untuk makalah matematika, sains, dan komputasi karena menyusun rumus dengan indah, menomori halaman, persamaan, dan kutipan secara otomatis, dan memisahkan tampilan dokumen dari isinya. Matematika ditaruh di antara tanda dolar, seperti $x^2+y^2=r^2$.
Poin penting
- LaTeX adalah teks bertanda: kamu mengetik isinya dan menyatakan bagian apa tiap bagian itu (bagian, rumus, daftar), dan kompilator memilih tipografinya. Dokumen adalah berkas
.tex; mengompilasinya denganpdflatexmenghasilkan PDF. - Matematika berada dalam mode matematika:
$...$di dalam kalimat,\[ ... \]pada barisnya sendiri. Skrip hanya mengambil satu karakter kecuali diberi kurung kurawal:x^{10}, bukanx^10. Pecahan, akar, dan jumlah adalah\frac{a}{b},\sqrt{x}, dan\sum_{i=1}^{n}. - Setiap dokumen memiliki
\documentclass, sebuah preamble tempat paket dimuat (\usepackage{amsmath}), dan isi di antara\begin{document}dan\end{document}. Lingkungan sepertiequation,align,pmatrix, danitemizeselalu berpasangan\begin{...}dan\end{...}. - Sepuluh karakter bersifat khusus dalam teks LaTeX:
# % & _ { } ~ ^ \dan tanda dolar. Untuk mencetaknya, beri escape (\%,\&,\_) atau pakai perintah seperti\textbackslash. Label dan kutipan memerlukan beberapa kali kompilasi:pdflatex,bibtex,pdflatex,pdflatex. - Baca galat dari yang pertama ke bawah:
Undefined control sequenceadalah perintah yang salah eja atau paket yang hilang,Missing $ insertedadalah matematika di luar mode matematika (^dalam teks, atau$yang sendirian),Missing } insertedadalah kurung kurawal yang tidak seimbang. Sebuah linter dapat menemukan kebanyakannya sebelum kamu mengompilasi. - LaTeX juga adalah notasi web dan kode: MathJax dan KaTeX menggambarnya di peramban, Markdown dan notebook Jupyter menerima
$...$, SymPy Python mencetaknya denganlatex(), dan Overleaf mengompilasi dokumen secara daring tanpa memasang apa pun.
Apa itu LaTeX?
LaTeX adalah sistem untuk menyiapkan dokumen yang di dalamnya kamu menulis teks dan menandai strukturnya, dan sebuah program bernama kompilator menata letaknya dan menghasilkan PDF. Kamu tidak menyeret rumus ke tempatnya atau memilih ukuran huruf untuk judul bagian. Kamu mengetik \section{Hasil} dan LaTeX menentukan seperti apa judul bagian itu, berapa ruang di sekelilingnya, nomor berapa yang ia dapat, dan di mana ia muncul dalam daftar isi. Ini adalah "yang kamu maksud adalah yang kamu dapat", berlawanan dengan "yang kamu lihat adalah yang kamu dapat" pada pengolah kata.
Mengapa orang memakainya.
- Matematika. Rumus ditulis dalam teks dan disusun dengan ketelitian penyusun huruf profesional: spasi yang tepat di sekitar operator, kurung yang membesar mengikuti isinya, dan pecahan serta skrip berukuran benar.
- Penomoran dan rujukan otomatis. Bagian, persamaan, gambar, dan tabel dinomori untukmu, dan \ref serta \cite menjaga setiap rujukan silang dan kutipan tetap benar ketika kamu menambah atau memindahkan sesuatu.
- Stabilitas. Berkas sumber adalah teks biasa: ia terbuka di mana saja, cocok dengan kontrol versi, dan masih dapat dikompilasi bertahun-tahun kemudian.
- Konsistensi. Tampilannya adalah sifat kelas dokumen dan paket, sehingga tesis, makalah, dan seperangkat slide mempertahankan gaya yang seragam, dan sebuah jurnal dapat menyediakan kelas yang memformat makalahmu sesuai keinginannya.
Namanya. TeX (dibaca "tek", dari huruf Yunani τ ε χ) adalah mesin penyusunan huruf yang ditulis Donald Knuth. LaTeX (baca "la-tek" atau "lei-tek") adalah lapisan perintah di atas TeX, ditulis Leslie Lamport, yang memudahkan menguraikan dokumen. Orang menyebut "LaTeX" untuk sistem maupun bahasanya. Overleaf adalah situs yang mengompilasi LaTeX di peramban; TeX Live dan MiKTeX adalah distribusi yang kamu pasang di komputermu sendiri.
Alur kerjanya. Kamu menulis main.tex, menjalankan kompilator (pdflatex main), dan membuka main.pdf. Kompilator juga menulis berkas .log berisi pesannya dan berkas .aux tempat ia mengingat nomor untuk pengerjaan berikutnya. Inilah dokumen lengkap yang terkecil:
\documentclass{article}
\begin{document}
Hello, \LaTeX! The area of a circle of radius $r$ is $A = \pi r^2$.
\end{document}Baris pertama memilih kelas dokumen (article, report, book, beamer untuk slide, dan seterusnya). Segala sesuatu di antara \begin{document} dan \end{document} adalah dokumennya. Apa pun sebelum \begin{document} adalah preamble: pengaturan dan paket, yang akan kamu temui berikutnya. Baris kosong memulai paragraf baru; beberapa spasi atau satu pergantian baris dihitung satu spasi.
Bagaimana menulis dan mengompilasi dokumen LaTeX pertamamu?
Tulis berkas .tex dengan kelas dokumen, preamble, dan isi, lalu kompilasi dengan pdflatex; awal tercepat adalah Overleaf, yang tidak perlu dipasang. Pasang distribusi (TeX Live di Linux, macOS, dan Windows; MiKTeX di Windows) dan sebuah editor, atau buat proyek gratis di Overleaf, tempat tombol Compile menjalankan semuanya untukmu.
Kerangka dokumen sungguhan. Makalah memiliki judul, penulis, perintah \maketitle, bagian, dan biasanya abstrak:
\documentclass[11pt,a4paper]{article}: kelasnya, dengan opsi untuk ukuran huruf dan kertas.\usepackage{...}: satu baris per paket, hanya di preamble.amsmathmemberi lingkungan persamaan yang lebih baik,amssymbsimbol tambahan,graphicxgambar,booktabsgaris tabel yang lebih indah,geometrymargin, danhyperreftautan yang dapat diklik (muat paling akhir).\title,\author,\date: bagian depan, dicetak oleh\maketitle.\section,\subsection: judul bagian (reportataubookjuga memiliki\chapter).abstract: ringkasan singkat, di kelasarticledanreport(booktidak memilikinya).
Berapa kali mengompilasi. Rujukan silang seperti \ref{eq:main} diselesaikan dari berkas .aux yang ditulis pada pengerjaan sebelumnya, sehingga kompilasi pertama mencetak "??" dan yang kedua mencetak nomornya. Daftar pustaka memerlukan urutan pdflatex, bibtex, pdflatex, pdflatex. Alat latexmk -pdf main.tex (dan Overleaf) mengulang langkah-langkah itu untukmu sampai tidak ada yang berubah.
Rakit satu di bawah. Pilih kelas, paket, dan bagian, lalu baca sumbernya; ia juga mendaftar perintah untuk mengompilasinya dan aturan yang diterapkan halaman ini (misalnya hyperref paling akhir dan buku tidak memiliki abstrak).
Interaktif: rakit dokumen LaTeX
Pilih kelas, ukuran huruf, kertas, paket, margin, dan bagian (abstrak, persamaan, tabel, gambar, daftar pustaka) dan dapatkan main.tex lengkap dengan perintah untuk mengompilasinya dan aturan yang diterapkan.
Bagaimana menulis matematika di LaTeX?
Taruh matematika dalam mode matematika: di antara tanda dolar tunggal di dalam kalimat, atau di antara \[ dan \] untuk rumus pada barisnya sendiri. Dalam mode matematika huruf adalah peubah miring, spasi diabaikan (LaTeX mengatur spasi operator sendiri), dan perintah dimulai dengan garis miring terbalik. Yang kamu pakai terus-menerus:
| Kamu ingin | Kamu mengetik | Kamu mendapat |
|---|---|---|
| superskrip | x^2 | x^2 |
| subskrip | a_n | a_n |
| keduanya | x_i^2 | x_i^2 |
| pecahan | \frac{a}{b} | a/b |
| akar kuadrat | \sqrt{x} | √x |
| akar pangkat n | \sqrt[3]{x} | x^(1/3) |
| huruf Yunani | \alpha \beta \pi | α β π |
| nama fungsi | \sin x | \sin x |
| jumlah | \sum_{i=1}^{n} i | \sum_i=1^n i |
| integral | \int_0^1 x\,dx | \int_0^1 x dx |
| limit | \lim_{x\to 0} | \lim_x→ 0 |
Kurung kurawal mengelompokkan. Superskrip atau subskrip mengambil satu karakter. Jadi x^10 adalah x^1 diikuti nol, dan e^-x hanya menaikkan tanda minusnya. Tulis x^{10} dan e^{-x} untuk menaikkan seluruh kelompok. Kurung kurawal juga membatasi argumen \frac, \sqrt, dan perintah lain. Arti operasi itu sendiri dijelaskan dalam eksponen dan akar dan dalam pecahan aljabar.
Kurung yang pas. \left( dan \right) membuat kurung membesar setinggi isi di antaranya, seperti pada \left( \frac{a}{b} \right). Setiap \left memerlukan \right (tulis \right. untuk yang tak terlihat).
Kata, spasi, dan fungsi. Teks di dalam rumus ditaruh dalam \text{...}, seperti x > 0 \text{ dan } y > 0. Tambahkan spasi kecil dengan \,, yang lebih besar dengan \quad. Tulis \sin, \log, \lim, dan \max untuk nama fungsi: bila diketik sebagai huruf biasa, sin akan menjadi hasil kali s i n dari tiga peubah bercetak miring, dengan spasi yang salah.
Penomoran. Lingkungan equation menomori sebuah rumus, dan \label{eq:nama} memungkinkan kamu mengutipnya dengan \eqref{eq:nama} (dari amsmath). Tanpa nomor, pakai \[ ... \] atau bentuk berbintang equation*.
Editor di bawah menggambar rumus saat kamu mengetik dan, seperti guru yang teliti, menunjuk kesalahan yang lazim: kurung kurawal hilang, x^10, lingkungan yang tidak cocok, perintah tak terdefinisi. Klik contoh yang rusak untuk melihat apa katanya.
Interaktif: ketik LaTeX dan lihat rumusnya
Ketik rumus dalam LaTeX dan lihat ia muncul, dengan linter yang menunjuk kesalahan yang lazim (kurung kurawal hilang, x^10, lingkungan yang tidak cocok, perintah tak terdefinisi) dalam kata-kata yang akan dipakai LaTeX sendiri.
% in the preamble: \usepackage{amsmath}
The roots of $ax^2 + bx + c = 0$ are given by the formula
\[
x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}.
\]
\begin{equation}
\label{eq:euler}
e^{i\pi} + 1 = 0
\end{equation}
Equation~\eqref{eq:euler} is Euler's identity. Functions are upright:
$\sin^2 x + \cos^2 x = 1$, and $\lim_{x \to 0} \frac{\sin x}{x} = 1$.Di mana mencari perintah untuk sebuah simbol?
Kebanyakan simbol dinamai menurut wujudnya: \alpha adalah α, \leq adalah ≤, \infty adalah ∞, \rightarrow (atau \to) adalah →. Namanya mengikuti beberapa pola yang membuatnya mudah ditebak:
- Huruf Yunani dieja:
\alpha,\beta,\gammauntuk huruf kecil dan\Gamma,\Delta,\Omegauntuk huruf kapital (hanya kapital yang berbeda dari huruf Latin yang ada: tidak ada\Alpha, karena itu akan berupa A).\epsilondan\varepsilonadalah dua bentuk huruf yang sama, demikian pula\phidan\varphi, serta\thetadan\vartheta. - Relasi disingkat:
\leqdan\geq(kurang atau sama, lebih atau sama),\neq,\approx,\equiv,\sim,\propto,\in,\subset. - Negasi dibuat dengan
\notdi depan sebuah relasi, dan banyak yang punya nama sendiri:\notinadalah ∉,\neqadalah ≠. - Panah adalah
\to,\mapsto,\Rightarrow(⇒),\Leftrightarrow(⇔). - Operator besar
\sum,\prod,\intmembesar dalam gaya tampilan dan menerima batas dengan_dan^. - Huruf papan tulis untuk himpunan bilangan berasal dari
\mathbb{R},\mathbb{N},\mathbb{Z},\mathbb{Q},\mathbb{C}dan memerlukan paketamssymb(atauamsfonts).
Beberapa simbol memerlukan paket: \therefore dan \because memerlukan amssymb, dan \lVert serta \rVert (garis norma) memerlukan amsmath. Jika sebuah simbol memberi "Undefined control sequence", paket yang hilang adalah tersangka pertama.
Bila kamu tidak ingat namanya, cari di tabel di bawah, yang mendaftar lebih dari seratus, atau gambar simbolnya pada alat pengenal seperti Detexify, atau cari di Comprehensive LaTeX Symbol List, PDF yang mendaftar ribuan.
Interaktif: cari perintah untuk sebuah simbol
Cari lebih dari seratus simbol menurut nama, dalam bahasa Inggris atau Indonesia, atau menurut sebagian perintah, saring menurut jenis (huruf Yunani, relasi, panah, kurung) dan lihat mana yang memerlukan paket amsmath atau amssymb.
Bagaimana menulis matriks, persamaan sejajar, dan fungsi sepotong-sepotong?
Struktur yang lebih besar adalah lingkungan: blok di antara \begin{nama} dan \end{nama}, yang di dalamnya & memisahkan kolom dan \\ mengakhiri baris. Pola yang sama membangun matriks, definisi sepotong-sepotong, dan persamaan sejajar.
Matriks. Lingkungan amsmath pmatrix (kurung bulat), bmatrix (kurung siku), dan vmatrix (garis tegak, determinan) hanya berbeda pada kurungnya:
\begin{pmatrix} a & b \\ c & d \end{pmatrix} menghasilkan \beginpmatrix a & b \ c & d \endpmatrix, dan vmatrix dengan entri yang sama menghasilkan determinan \beginvmatrix a & b \ c & d \endvmatrix. Pakai \cdots, \vdots, dan \ddots untuk titik-titik di dalam matriks besar.
Fungsi sepotong-sepotong memakai cases: setiap baris memuat nilai, &, dan syaratnya:
f(x) = \begincases x^2 & x \ge 0 \ -x & x < 0 \endcases
Persamaan sejajar. Beberapa baris yang harus rata pada tanda sama dengan ditaruh dalam align (bernomor) atau align* (tanpa nomor); taruh & tepat sebelum tanda itu untuk meratakan padanya:
(a+b)^2 &= a^2 + 2ab + b^2 \\(a-b)^2 &= a^2 - 2ab + b^2
Lingkungan aligned melakukan hal yang sama di dalam rumus yang lebih besar. Jangan pakai \\ atau baris kosong untuk memberi spasi antarpersamaan: serahkan itu pada LaTeX.
Penyusun di bawah mengisi kode untuk struktur yang paling sering dicari orang. Pilih satu, ubah kolomnya, dan salin hasilnya; linter memeriksa bahwa kodenya terbentuk dengan baik.
Interaktif: susun rumus dari sebuah formulir
Isi kolom sebuah pecahan, akar, pangkat, jumlah, hasil kali, integral, limit, matriks, atau fungsi sepotong-sepotong dan dapatkan kode LaTeX dan hasil gambarnya, siap disalin, dengan linter yang memeriksanya.
\begin{align}
(a+b)^2 &= a^2 + 2ab + b^2 \\
(a-b)^2 &= a^2 - 2ab + b^2
\end{align}
\[
A = \begin{bmatrix}
1 & 2 \\
3 & 4
\end{bmatrix},
\qquad
\det A = \begin{vmatrix} 1 & 2 \\ 3 & 4 \end{vmatrix} = -2.
\]Bagaimana menulis teks, daftar, tabel, dan gambar?
Segala yang bukan rumus mengikuti gagasan yang sama: sebutkan apa bendanya, dan biarkan LaTeX menatanya.
- Paragraf dan baris. Baris kosong memulai paragraf baru.
\\memaksa pergantian baris dan jarang diperlukan di luar tabel. - Penekanan.
\emph{kata}miring (ia kembali tegak di dalam huruf miring),\textbf{kata}tebal,\texttt{kode}monospasi. - Daftar.
itemizemembuat butir danenumeratemenomori, dengan satu\itemper entri; keduanya dapat bersarang. - Karakter khusus. Sepuluh karakter adalah perintah yang menyamar:
#, tanda dolar,%(komentar: sisa baris diabaikan),&(pemisah kolom),_dan^(skrip, hanya dalam matematika),{,}(kelompok),~(spasi yang tidak dapat dipatahkan), dan garis miring terbalik. Untuk mencetaknya, beri escape dengan garis miring terbalik (\%,\&,\#,\_,\{,\}), atau pakai\textbackslashuntuk garis miring terbalik itu sendiri,\textasciitildeuntuk tilde dan\textasciicircumuntuk tanda sisipan. - Kutipan dan tanda hubung. Buka kutipan dengan dua tanda petik balik dan tutup dengan dua apostrof (tanda kutip mesin tik
"menutup ke arah yang salah); tanda hubung adalah-, rentang memakai dua tanda hubung (10--20) dan tanda pisah dalam kalimat memakai tiga (---). - Tabel.
tabularmenerima spesifikasi kolom,l,c, danruntuk rata kiri, tengah, dan kanan, dan baris yang dipisah\\dengan sel yang dipisah&.\hlinemenggambar garis (atau\toprule,\midrule,\bottomruledenganbooktabs). Bungkus dalamtableuntuk memberinya keterangan dan label. - Gambar.
\includegraphics[width=0.6\textwidth]{berkas.png}(darigraphicx) di dalam lingkunganfiguredengan\captiondan\label. - Rujukan di dalam teks.
\label{tab:harga}tepat setelah keterangan danTabel~\ref{tab:harga}dalam kalimat. Tilde adalah spasi yang tidak dapat dipatahkan, sehingga "Tabel" dan nomornya tidak pernah terpisah di dua baris.
Kode di bawah memperlihatkan daftar, tabel, dan gambar beserta labelnya.
\begin{enumerate}
\item Write the source.
\item Compile it \emph{twice} so that the references resolve.
\end{enumerate}
\begin{table}[ht]
\centering
\begin{tabular}{lr}
\hline
Item & Price (Rp) \\
\hline
Notebook & 12\,500 \\
Pen \& ink & 4\,000 \\
\hline
\end{tabular}
\caption{Two prices.}
\label{tab:prices}
\end{table}
Table~\ref{tab:prices} lists them; the ink costs 50\% less.
\begin{figure}[ht]
\centering
\includegraphics[width=0.6\textwidth]{graph.png}
\caption{A graph.}
\label{fig:graph}
\end{figure}Bagaimana kutipan dan daftar pustaka bekerja?
Simpan sumbermu dalam berkas .bib, kutip dengan kunci memakai \cite, dan biarkan BibTeX atau biblatex menyusun daftar pustaka. Setiap sumber adalah satu entri dengan kunci yang kamu pilih:
% references.bib
@book{knuth1984,
author = {Donald E. Knuth},
title = {The {\TeX}book},
publisher = {Addison-Wesley},
year = {1984}
}
% main.tex, in the text:
TeX was described by Knuth~\cite{knuth1984}.
% main.tex, where the list should appear (usually at the end):
\bibliographystyle{plain}
\bibliography{references}Pembangunannya adalah saluran kecil. Pengerjaan pdflatex pertama mencatat setiap \cite dalam berkas .aux; bibtex main membaca berkas .bib dan menulis daftar yang terformat; dua pengerjaan pdflatex berikutnya menaruh daftar itu dalam dokumen dan memperbaiki nomornya. Kunci peka huruf besar-kecil dan harus unik. Kurung kurawal pada {\TeX} melindungi huruf kapital dari diubah menjadi huruf kecil oleh gayanya. biblatex yang lebih baru dengan program biber menggantikan BibTeX pada banyak proyek (langkahnya pdflatex, biber, pdflatex), dan memberi lebih banyak kendali atas gaya seperti APA. latexmk dan Overleaf menjalankan urutan yang benar secara otomatis.
Apa arti galat LaTeX yang umum?
LaTeX melaporkan masalah dengan pesan dan nomor baris; galat pertama adalah yang harus diperbaiki, karena yang berikutnya sering hanya gemanya. Baca baris yang ia sebut dan baris sebelumnya. Pesan yang paling umum:
Undefined control sequence: sebuah perintah salah eja (\fraq), atau paket yang mendefinisikannya belum dimuat (\mathbbtanpaamssymb).Missing $ inserted: matematika dipakai di luar mode matematika (^atau_dalam teks, atau simbol seperti\alphatanpa tanda dolar), atau sebuah tanda dolar tidak berpasangan.Missing } inserteddanExtra }, or forgotten $: kurung kurawal tidak seimbang; hitung kurung kurawal pembuka dan penutup pada baris itu.Runaway argument: sebuah kurung kurawal tidak pernah ditutup, sehingga argumen berlanjut sampai akhir paragraf.\begin{...} ended by \end{...}: nama pasangan lingkungan berbeda, atau lingkungan dalam tidak ditutup.File ended while scanning use of...: masalah sejenis, ditemukan di akhir berkas.Misplaced alignment tab character &: ampersand di luar tabel, matriks, ataualign; tulis\&untuk mencetaknya.LaTeX Error: File 'x.sty' not found: sebuah paket tidak terpasang; pasang dari distribusimu, atau pakai Overleaf.Overfull \hbox: peringatan, bukan galat: sebuah baris terlalu lebar sebesar yang ditunjukkan.
Kebiasaan yang memudahkan menemukannya.
- Kompilasi sering, setelah setiap paragraf atau rumus, sehingga galat baru hanya mungkin ada di teks baru.
- Tulis \begin{...} dan \end{...} bersama-sama, lalu isi di antaranya.
- Bila buntu, buat contoh minimal yang berfungsi: hapus semua yang tidak diperlukan untuk mereproduksi galat. Separuh waktu kesalahannya muncul dalam prosesnya, dan bila tidak, itu bahan yang sempurna untuk sebuah forum.
- Periksa rumus dengan linter pada editor di atas sebelum mengompilasi: ia menemukan kurung kurawal tak seimbang, \left tanpa \right, lingkungan yang tidak cocok, skrip seperti x^10, dan perintah tak dikenal.
Bagaimana memakai LaTeX dari Python, JavaScript, dan Markdown?
Matematika LaTeX adalah notasi umum web dan kode ilmiah: kamu dapat menulisnya dengan tangan, membangkitkannya dari objek, atau membiarkan pustaka menggambarnya.
- Markdown, notebook, dan web. Di notebook Jupyter, penerjemah Markdown, banyak wiki, dan Wikipedia,
$...$dan$...$digambar sebagai rumus. Di halaman webmu sendiri, sertakan KaTeX (cepat, bagian dari LaTeX) atau MathJax (lebih lengkap) dan tulis kode yang sama. - Python. SymPy mengubah ungkapan menjadi LaTeX dengan
latex(); Matplotlib menggambarnya pada label, sepertiplt.title(r"$\alpha^2quot;)(rberarti raw string, sehingga garis miring terbalik dipertahankan); Pandoc mengubah Markdown berisi rumus menjadi PDF lewat LaTeX. - String dan garis miring terbalik. Di Python dan JavaScript garis miring terbalik memulai escape, sehingga
"\frac"memuat karakter form-feed (\f) dan"\alpha"salah. Pakai raw string:r"\frac"di Python danString.rawdi JavaScript. - Teks pengguna. Teks yang datang dari luar (nama, judul, isi berkas) harus di-escape sebelum masuk ke dokumen LaTeX, atau
%atau&di dalamnya merusak pembangunan.
Program Python pertama meminta SymPy memberi LaTeX untuk beberapa ungkapan (seperti dicetak SymPy 1.14), dan yang kedua meng-escape teks dan menulis tabel. Program JavaScript membangun rumus sebagai string dan memperlihatkan jebakan form-feed, dan program C++ meng-escape karakter dan mencetak sebuah pecahan.
from sympy import symbols, Integral, Sum, Rational, sqrt, oo, Matrix, latex, sin, pi, exp
x, k, n = symbols("x k n")
print(latex(Integral(x ** 2, (x, 0, 1))))
print(latex(Sum(1 / k ** 2, (k, 1, oo))))
print(latex(sqrt(x ** 2 + 1) / 2))
print(latex(Matrix([[1, 2], [3, 4]])))
print(latex(Rational(3, 4) * pi))
print(latex(exp(-x ** 2) * sin(x)))
# \int\limits_{0}^{1} x^{2}\, dx
# \sum_{k=1}^{\infty} \frac{1}{k^{2}}
# \frac{\sqrt{x^{2} + 1}}{2}
# \left[\begin{matrix}1 & 2\\3 & 4\end{matrix}\right]
# \frac{3 \pi}{4}
# e^{- x^{2}} \sin{\left(x \right)}SPECIAL = {
"\\": r"\textbackslash{}", "&": r"\&", "%": r"\%", "quot;: r"\quot;, "#": r"\#",
"_": r"\_", "{": r"\{", "}": r"\}", "~": r"\textasciitilde{}", "^": r"\textasciicircum{}",
}
def escape_latex(text):
"""Write the ten special characters so that LaTeX prints them as themselves."""
return "".join(SPECIAL.get(ch, ch) for ch in text)
def latex_table(header, rows):
"""A tabular environment from a header and a list of rows of text."""
cols = "l" + "r" * (len(header) - 1)
lines = [r"\begin{tabular}{" + cols + "}", r" \hline"]
lines.append(" " + " & ".join(escape_latex(h) for h in header) + r" \\")
lines.append(r" \hline")
for row in rows:
lines.append(" " + " & ".join(escape_latex(str(c)) for c in row) + r" \\")
lines += [r" \hline", r"\end{tabular}"]
return "\n".join(lines)
print(escape_latex("50% of $5 & #1_a"))
print(latex_table(["Item", "Price (Rp)"], [["Notebook", 12500], ["Pen & ink", 4000]]))
print(r"\frac{%s}{%s}" % ("a+b", 2))
# 50\% of \$5 \& \#1\_a
# \begin{tabular}{lr}
# \hline
# Item & Price (Rp) \\
# \hline
# Notebook & 12500 \\
# Pen \& ink & 4000 \\
# \hline
# \end{tabular}
# \frac{a+b}{2}const special = { '\\': '\\textbackslash{}', '&': '\\&', '%': '\\%', $: '\\