LaTeX: Menulis Matematika dan Dokumen

Diperbarui 20 menit baca Pemula Read in English

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 dengan pdflatex menghasilkan PDF.
  • Matematika berada dalam mode matematika: $...$ di dalam kalimat, \[ ... \] pada barisnya sendiri. Skrip hanya mengambil satu karakter kecuali diberi kurung kurawal: x^{10}, bukan x^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 seperti equation, align, pmatrix, dan itemize selalu 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 sequence adalah perintah yang salah eja atau paket yang hilang, Missing $ inserted adalah matematika di luar mode matematika (^ dalam teks, atau $ yang sendirian), Missing } inserted adalah 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 dengan latex(), 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:

main.tex: dokumen 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. amsmath memberi lingkungan persamaan yang lebih baik, amssymb simbol tambahan, graphicx gambar, booktabs garis tabel yang lebih indah, geometry margin, dan hyperref tautan yang dapat diklik (muat paling akhir).
  • \title, \author, \date: bagian depan, dicetak oleh \maketitle.
  • \section, \subsection: judul bagian (report atau book juga memiliki \chapter).
  • abstract: ringkasan singkat, di kelas article dan report (book tidak 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 inginKamu mengetikKamu mendapat
superskripx^2x^2
subskripa_na_n
keduanyax_i^2x_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.

Rumus dalam dokumen: sebaris, tampilan, dan bernomor
% 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, \gamma untuk huruf kecil dan \Gamma, \Delta, \Omega untuk huruf kapital (hanya kapital yang berbeda dari huruf Latin yang ada: tidak ada \Alpha, karena itu akan berupa A). \epsilon dan \varepsilon adalah dua bentuk huruf yang sama, demikian pula \phi dan \varphi, serta \theta dan \vartheta.
  • Relasi disingkat: \leq dan \geq (kurang atau sama, lebih atau sama), \neq, \approx, \equiv, \sim, \propto, \in, \subset.
  • Negasi dibuat dengan \not di depan sebuah relasi, dan banyak yang punya nama sendiri: \notin adalah ∉, \neq adalah ≠.
  • Panah adalah \to, \mapsto, \Rightarrow (⇒), \Leftrightarrow (⇔).
  • Operator besar \sum, \prod, \int membesar 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 paket amssymb (atau amsfonts).

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.

Persamaan sejajar dan matriks (amsmath)
\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. itemize membuat butir dan enumerate menomori, dengan satu \item per 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 \textbackslash untuk garis miring terbalik itu sendiri, \textasciitilde untuk tilde dan \textasciicircum untuk 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. tabular menerima spesifikasi kolom, l, c, dan r untuk rata kiri, tengah, dan kanan, dan baris yang dipisah \\ dengan sel yang dipisah &. \hline menggambar garis (atau \toprule, \midrule, \bottomrule dengan booktabs). Bungkus dalam table untuk memberinya keterangan dan label.
  • Gambar. \includegraphics[width=0.6\textwidth]{berkas.png} (dari graphicx) di dalam lingkungan figure dengan \caption dan \label.
  • Rujukan di dalam teks. \label{tab:harga} tepat setelah keterangan dan Tabel~\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.

Daftar, tabel, dan gambar
\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 dan pemakaiannya di main.tex
% 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 (\mathbb tanpa amssymb).
  • Missing $ inserted: matematika dipakai di luar mode matematika (^ atau _ dalam teks, atau simbol seperti \alpha tanpa tanda dolar), atau sebuah tanda dolar tidak berpasangan.
  • Missing } inserted dan Extra }, 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, atau align; 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, seperti plt.title(r"$\alpha^2
    quot;)
    (r berarti 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 dan String.raw di 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.

Python: LaTeX dari SymPy
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)}
Python: escape teks dan tulis tabel
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}
JavaScript: String.raw dan escape
const special = { '\\': '\\textbackslash{}', '&': '\\&', '%': '\\%', $: '\\
  

, '#': '\\#', _: '\\_', '{': '\\{', '}': '\\}', '~': '\\textasciitilde{}', '^': '\\textasciicircum{}' }
const escapeLatex = (text) => Array.from(text, (c) => special[c] ?? c).join('')
escapeLatex('50% of $5 & #1_a')                      // '50\\% of \\$5 \\& \\#1\\_a'  (each \\ is one backslash)

// build formulas with ordinary strings: every backslash is written twice
const frac = (a, b) => '\\frac{' + a + '}{' + b + '}'
const sum = (v, from, to, body) => '\\sum_{' + v + '=' + from + '}^{' + to + '} ' + body
frac('a+b', 2)                                      // '\\frac{a+b}{2}'
sum('i', 1, 'n', 'i^2')                             // '\\sum_{i=1}^{n} i^2'

// a single backslash starts an escape: '\f' is a form feed, not a backslash followed by f
'\frac'.length                                      // 4: the form feed, r, a, c
// String.raw in front of a template literal keeps every backslash, so you can write each one once
C++: escape karakter khusus dan cetak sebuah pecahan
#include <iostream>
#include <cstdio>
using namespace std;

int main() {
  char text[] = "50% of $5 & #1_a";
  for (int i = 0; text[i] != 0; i++) {
    char c = text[i];
    if (c == '%' || c == '&' || c == '
  

 || c == '#' || c == '_' || c == '{' || c == '}') printf("\\%c", c);   // a backslash in front
    else printf("%c", c);
  }
  printf("\n");

  int a = 3, b = 4;
  printf("\\frac{%d}{%d} = %.2f\n", a, b, (double)a / b);   // in C++ source too, every backslash is written twice
  return 0;
}

/* output:
50\% of \$5 \& \#1\_a
\frac{3}{4} = 0.75
*/

Dari mana LaTeX berasal?

LaTeX tumbuh dari ketidaksukaan seorang matematikawan pada penampilan bukunya.

  • 1976–1977. Donald Knuth, ketika menyelesaikan edisi kedua jilid 2 The Art of Computer Programming, kecewa pada contoh cetaknya, yang disusun dengan proses fotografi baru dan tampak jauh lebih buruk daripada huruf logam sebelumnya. Ia memutuskan menulis sistem yang akan menyusun matematika sebaik percetakan terbaik, dan memulai TeX pada 1977.
  • 1978–1982. TeX pertama (TeX78) disusul TeX82 yang stabil, bersama bahasa METAFONT dan huruf Computer Modern yang dirancang dengannya. Knuth mendokumentasikan hasilnya dalam The TeXbook (1984).
  • 1984–1985. Leslie Lamport menulis LaTeX, seperangkat makro di atas TeX yang menguraikan struktur dokumen (bagian, daftar, persamaan) alih-alih rincian tata letaknya; bukunya LaTeX: A Document Preparation System terbit pada 1986.
  • 1992 dan 1996. Arsip CTAN mengumpulkan paket di satu tempat, dan TeX Live dimulai sebagai distribusi lengkap.
  • 1994. LaTeX2e, versi yang dipakai sekarang, dirilis oleh tim yang dipimpin Frank Mittelbach, dan masih dikembangkan.
  • 1997–2007. Mesin baru menyusul: pdfTeX (keluaran PDF langsung, oleh Hàn Thế Thành), XeTeX (Unicode dan huruf sistem, oleh Jonathan Kew, 2004), dan LuaTeX (2007, dapat diprogram dengan Lua).
  • 2009–2014. MathJax (2009) dan KaTeX (2014) membawa matematika LaTeX ke halaman web; Overleaf (2012) menaruh seluruh sistem di peramban.
  • 2021. Knuth membuat pembaruan terjadwal terakhir TeX, versi 3,141592653. Nomor versi TeX makin dekat ke π pada setiap pembaruan, dan Knuth berkata ia akan menjadi π pada saat ia meninggal, ketika program itu dibekukan. Selama puluhan tahun ia membayar hadiah, dimulai dari 2,56 dolar AS dan berlipat dua setiap tahun sampai 327,68, untuk setiap galat yang ditemukan pada programnya.

Kesalahan apa yang sering dibuat pemula di LaTeX?

Kesalahan pemula yang paling umum di LaTeX adalah sembilan hal berikut, masing-masing dengan pernyataan yang benar.

KesalahanYang benar
❌ Menulis x^10 untuk sepuluhSkrip mengambil satu karakter: tulis x^{10}, dan e^{-x} bukan e^-x.
❌ Mengetik tanda persen, ampersand, pagar, atau garis bawah dalam teks apa adanyaMereka khusus: tulis \%, \&, \#, \_ (dan beri escape pada teks yang datang dari luar).
❌ Membiarkan baris kosong di dalam rumusBaris kosong mengakhiri paragraf dan rumus bersamanya: hapus, atau taruh potongannya dalam align.
❌ Memakai dua tanda dolar untuk persamaan tampilanPakai \[ ... \] atau lingkungan equation: keduanya mengatur spasi rumus dengan benar.
❌ Memakai \\ atau beberapa baris kosong untuk menambah ruangBaris kosong membuat paragraf dan LaTeX mengatur spasinya; pakai \vspace hanya untuk jarak yang disengaja.
❌ Menaruh \usepackage setelah \begin{document}Paket dimuat di preamble, sebelum \begin{document}.
❌ Mengompilasi sekali dan heran pada "??"Rujukan dan kutipan memerlukan beberapa kali jalan: pdflatex, bibtex, pdflatex, pdflatex, atau latexmk.
❌ Mengetik tanda kutip lurus di sekeliling kataBuka dengan dua tanda petik balik dan tutup dengan dua apostrof, agar tanda kutip menghadap arah yang benar.
❌ Menulis sin x atau lim sebagai huruf biasa dalam rumusPakai \sin x dan \lim: perintah itu memberi nama tegak dengan spasi yang benar.

Latihan: uji pemahamanmu

Soal-soal ini mencampur semua yang dibahas di atas. Jika jawabanmu belum tepat, perhatikan petunjuk yang tersedia, lalu coba kembali.

Benar atau salah?

Tentukan tiap pernyataan Benar atau Salah.

  • Dokumen LaTeX adalah berkas teks biasa yang diubah kompilator menjadi PDF.
  • Baris kosong dalam sumber memulai paragraf baru.
  • x^10 menghasilkan x pangkat sepuluh.
  • \usepackage boleh ditulis di mana saja dalam dokumen.
  • Rujukan dan kutipan mungkin memerlukan lebih dari satu kompilasi.
  • Setiap \left( memerlukan \right yang berpasangan.

Karakter khusus

Karakter mana yang khusus dalam teks LaTeX dan harus diberi escape dengan garis miring terbalik agar tercetak apa adanya? Pilih semua yang benar.

  • %
  • &
  • #
  • @
  • :

Sebuah akar kuadrat

Kode mana yang menghasilkan akar kuadrat x+1, seluruh jumlah di bawah akar?

  • \sqrt{x+1}
  • \sqrt x+1
  • sqrt(x+1)
  • \root{x+1}

Minus dalam eksponen

Apa yang dihasilkan e^-x?

  • e dengan hanya tanda minus yang dinaikkan, diikuti x
  • e pangkat -x
  • galat
  • e pangkat x, dinegasikan

Argumen sebuah pecahan

Berapa argumen yang diterima \frac?

Pengerjaan pdflatex

Berapa kali pdflatex dijalankan untuk membangun dokumen dengan daftar pustaka BibTeX?

Sebuah pesan galat

LaTeX berkata bahwa \begin{pmatrix} "ended by \end{matrix}". Apa yang salah?

  • nama awal dan akhir lingkungan berbeda
  • pmatrix tidak ada
  • matriks memiliki terlalu banyak baris
  • amsmath tidak terpasang

Di mana paket ditaruh?

Di mana \usepackage{amsmath} harus ditulis?

  • di preamble, sebelum \begin{document}
  • tepat sebelum persamaan pertama
  • setelah \end{document}
  • ia dimuat otomatis

Hitung karakter khusus

Berapa karakter yang memiliki arti khusus dalam teks LaTeX?

Rumus di halaman web

Kamu ingin rumus LaTeX digambar di halaman web. Apa yang kamu pakai?

  • KaTeX atau MathJax
  • BibTeX
  • pdflatex di tab peramban
  • perintah \maketitle

Batas sebuah jumlah

Pada \sum_{i=1}^{n} i, apa yang diatur _{i=1}?

  • batas bawah: indeks mulai dari i=1
  • batas atas
  • subskrip pada huruf i saja
  • banyaknya suku

Kolom sebuah matriks

Berapa banyak & dalam setiap baris matriks dengan 4 kolom?

Ringkasan: LaTeX sekilas

  • Apa itu: teks biasa dengan perintah, dikompilasi pdflatex menjadi PDF; TeX (Knuth) adalah mesinnya dan LaTeX (Lamport) perintahnya.
  • Dokumen: \documentclass, preamble dengan \usepackage, dan \begin{document} ... \end{document}.
  • Mode matematika: $...$ sebaris, \[ ... \] tampilan, equation untuk yang bernomor; skrip mengambil satu karakter, jadi pakai kurung kurawal: x^{10}.
  • Perintah: \frac{a}{b}, \sqrt[n]{x}, \sum_{i=1}^{n}, \int_a^b, \left( ... \right), huruf Yunani menurut nama, \sin dan \lim untuk fungsi.
  • Lingkungan: pmatrix, cases, align, itemize, tabular, figure: & memisahkan sel, \\ mengakhiri baris.
  • Karakter khusus: # $ % & _ { } ~ ^ \ harus di-escape; beri escape pada teks yang datang dari luar.
  • Pembangunan: beberapa kali jalan untuk label dan kutipan; pdflatex, bibtex, pdflatex, pdflatex, atau latexmk dan Overleaf.
  • Galat: baca yang pertama; undefined control sequence, missing $, kurung kurawal tak seimbang; kompilasi sering dan pakai contoh minimal.
  • Di tempat lain: KaTeX dan MathJax di web, latex() SymPy, raw string untuk garis miring terbalik.

Glosarium: istilah penting

LaTeX
Sistem perintah di atas TeX untuk menulis dokumen, yang di dalamnya kamu menguraikan struktur dan kompilator menghasilkan tata letaknya.
TeX
Mesin penyusunan huruf yang ditulis Donald Knuth, tempat LaTeX dibangun.
Kompilator
Program, seperti pdflatex, yang membaca berkas sumber dan menghasilkan PDF.
Preamble
Bagian berkas LaTeX sebelum baris begin document, tempat kelas, paket, dan pengaturan diberikan.
Paket
Tambahan yang dimuat dengan perintah usepackage yang menyediakan perintah baru atau mengubah cara dokumen dibangun, seperti amsmath.
Lingkungan
Blok di antara perintah begin dan perintah end dengan nama yang sama, seperti equation, itemize, atau pmatrix.
Mode matematika
Keadaan ketika LaTeX membaca rumus: di antara tanda dolar dalam teks, atau dalam persamaan tampilan.
BibTeX
Program yang mengubah berkas bib berisi sumber menjadi daftar pustaka terformat yang dikutip dalam dokumen.
Karakter escape
Garis miring terbalik yang mengubah karakter khusus menjadi biasa, seperti pada escape persen, agar ia tercetak apa adanya.

Pertanyaan yang sering diajukan

Untuk apa LaTeX dipakai?

Ia dipakai untuk menulis dokumen yang banyak matematika atau strukturnya: makalah penelitian, tesis, buku teks, kumpulan soal, dan slide. Ia menyusun rumus dengan baik, menomori bagian dan persamaan secara otomatis, mengelola kutipan, dan menjaga gaya tetap konsisten.

Apakah LaTeX bahasa pemrograman?

LaTeX adalah bahasa markah yang dibangun dari makro, dan mesin TeX di bawahnya mampu melakukan komputasi sungguhan. Dalam praktik kamu menulis dokumen, bukan program, dan kamu dapat mengabaikan sisi pemrogramannya.

Apa beda TeX dan LaTeX?

TeX adalah mesin penyusunan huruf yang ditulis Donald Knuth. LaTeX adalah seperangkat perintah di atasnya, oleh Leslie Lamport, yang memungkinkan kamu menguraikan dokumen menurut strukturnya, dengan bagian, daftar, dan persamaan, bukan tata letaknya.

Bagaimana menulis pecahan, akar kuadrat, atau jumlah di LaTeX?

Pakai frac dengan dua argumen berkurung kurawal untuk pecahan, sqrt dengan satu untuk akar, dan sum dengan garis bawah dan tanda sisipan untuk batasnya, semuanya dalam mode matematika di antara tanda dolar.

Bagaimana mengompilasi dokumen LaTeX?

Simpan sebagai main.tex dan jalankan pdflatex main, atau tekan Compile di Overleaf. Jika dokumen memiliki rujukan atau daftar pustaka, jalankan lagi, dengan bibtex di antaranya untuk kutipan, atau biarkan latexmk mengulang langkahnya.

Mengapa LaTeX berkata "Undefined control sequence"?

LaTeX menemui perintah yang tidak dikenalnya. Entah namanya salah eja, atau paket yang mendefinisikannya belum dimuat di preamble, seperti mathbb tanpa amssymb. Perbaiki galat pertama seperti itu, karena yang lain sering mengikutinya.

Bagaimana menulis LaTeX di Markdown atau di situs web?

Banyak alat Markdown, notebook Jupyter, dan wiki menggambar rumus yang ditulis di antara tanda dolar tunggal atau ganda. Di halamanmu sendiri, sertakan KaTeX atau MathJax, yang membaca kode yang sama dan menggambarnya di peramban.

Bagaimana LaTeX dibandingkan dengan pengolah kata?

Pengolah kata menampilkan halaman saat kamu mengetik; LaTeX membuat kamu menguraikan isi dan menyusun halaman sesudahnya. LaTeX unggul untuk rumus, dokumen panjang, dan rujukan; pengolah kata lebih cepat untuk catatan pendek, visual, dan kolaboratif.

Referensi

  1. Leslie Lamport (1994). LaTeX: A Document Preparation System (2nd ed.). Addison-Wesley.
  2. Donald E. Knuth (1984). The TeXbook. Addison-Wesley.
  3. Tobias Oetiker, Hubert Partl, Irene Hyna, Elisabeth Schlegl (2021). The Not So Short Introduction to LaTeX2e. CTAN (lshort).
  4. Frank Mittelbach, Michel Goossens (2004). The LaTeX Companion (2nd ed.). Addison-Wesley.
  5. Donald E. Knuth (1999). Digital Typography. CSLI Publications.
  6. American Mathematical Society (2002). User's Guide for the amsmath Package. AMS.