LaTeX
Chủ Nhật, 30/04/2017, 00:04
Những khái niệm cơ bản - Chìa khóa để tự học LaTeX hiệu quả

Những khái niệm cơ bản - Chìa khóa để tự học LaTeX hiệu quả

Một trong những quy trình kinh điển khi bắt đầu học LaTeX là
  • Cài đặt TeX Maker, cài đặt MikTeX
  • Soạn vài câu đơn giản >> Chạy tốt
  • Thêm vài công thức toán >> Chạy tốt
  • Ngồi soạn hết vài trang luận văn >> Chạy lỗi
  • Lên Google tìm cách sửa, thêm bớt các packages* *>> Chạy lỗi
  • Cài thêm TeX StudioTeX Live cho chắc ăn >> Chạy lỗi
  • Đốt luận văn (đùa thôi)
Bạn có thấy câu chuyện này quen không? Những khó khăn thường thấy khi bắt đầu với cách trên là
  • Tại sao "nó"  không chạy? Mình cài thiếu gì không?
  • Có phải do mình cài TeX Maker nên nó không chạy, mình có nên cài thêm TeX Studio?
  • Lo lắng. Bây giờ còn chưa "rành" LaTeX thì bao giờ mới làm xong luận văn đây.
Mình không phải chuyên gia về TeX, nhưng mình sẽ cố gắng giúp các bạn, đặc biệt là những bạn mới học TeX. Bài viết này được biên soạn ngắn gọn giúp các bạn nắm được các chìa khóa để tự mình tìm cách giải quyết mọi vấn đề về TeX, từ đơn giản đến nâng cao.
[mks_icon icon="fa-chevron-right" color="#dd3333" type="fa"] Bài tổng hợp: Tự học LaTeX từ A-Z
[adinserter block='8']

Hiểu về TeX, LaTeX, TeX Live, MikTeX, TeX Maker

Trước hết ta nên hiểu qua và phân biệt những từ này:
  • TeX: có thể xem nó là một ngôn ngữ lập trình, hiểu theo nghĩa là TeX được dùng để chỉ thị cho máy tính làm một công việc mà người dùng muốn. Công việc đó chính là **sắp chữ, **sao cho đẹpnhất quán.
  • LaTeX: là một dẫn xuất của TeX, do ông Lamport tạo ra (mình nghĩ chữ La là viết tắt tên ổng). LaTeX được thiết kế sao cho thuận tiện hơn với mọi người. Mình hiểu thế này: nếu TeX dùng 10 dòng lệnh để trình bày 1 phương trình sao cho đẹp mắt thì LaTeX chỉ dùng 1 hoặc 3 dòng (chỉ ví dụ vậy thôi)
[mks_icon icon="fa-chevron-right" color="#dd3333" type="fa"] LaTeX 1 – LaTeX là gì thế?
  • MikTeXTeX Live: là các bản phân phối phần mềm (software distribution), được phát hành miễn phí cho mọi người. Mỗi bản phân phối gồm nhiều thành phần, trong đó có 2 thành phần chính là: TeX (và dẫn xuất của nó) và một mô-đun dùng để tạo ra các file PDF, DVI
  • TeX Maker: là tên một trình biên soạn TeX (TeX editor). Phần mềm này cung cấp các công cụ giúp người dùng biên soạn file .tex một cách thuận tiện. Có thể hình dung như sau: ta hoàn toàn có thể tạo file .tex bằng Notepad, nhưng để biên dịch ra cho máy tính hiểu và tạo ra các file pdf, ta phải gõ rất nhiều câu lệnh trong Command Windows, như thế mất thời gian. Trong khi dùng TeX Maker, ta chỉ cần nhấn F6 để biên dịch và F7 để xem file pdf. Hơn nữa, trong khi biên soạn, TeX Maker còn giúp gợi ý các câu lệnh ta đang gõ và cung cấp danh sách các ký hiệu toán học thường dùng, rất thuận tiện. TeX Maker chỉ là một ví dụ về trình biên soạn TeX, ngoài ra còn có nhiều trình biên soạn khác như VieTeX, TeX Studio, TeXpad** ... Chúng đều có chức năng cơ bản như TeX Maker.
[adinserter block='6']

Nên dùng MikTeX hay TeXLive?

Sau đây là một số so sánh giữa MikTeX và TeX Live
  •  MikTeX
    • Chỉ dùng trên Windows. Cài đặt đơn giản. Dung lượng nhẹ
    • Có trình Package Manager để quản lí (thêm/bớt) các packages
  • TeX Live
    • Dùng được trên tất cả platform. Cài đặt trên Unix đơn giản hơn cài đặt trên Windows
    • Package Manager: không có
Bạn nào dùng Unix thì chắc chắn là phải chọn TeX Live rồi (vì không có MikTeX). Nhưng TeX Live trên Linux cũng cung cấp nhiều lựa chọn: texlive-full, texlive-latex-base, texlive-latex-recommended, ..... Theo mình nên chọn texlive-full. Cài một lần dùng mãi mãi (ít khi bị lỗi thiếu package), để dành thời gian nghiên cứu những thứ khác, hơn là phải loay hoay tìm lỗi, cài, xóa các packages. Tuy nhiên, texlive-full nặng đến 3-5 GB (trên cả Linux và Windows), nên việc cài đặt TeX Live full mất nhiều thời gian (mất khoảng 1-2h). Một cách khác nhanh hơn là dùng file iso, nếu bạn chưa quen với những điều này thì hãy xem bài viết Hướng dẫn cài TeXLive từ file ISO trong Linux.
Trên** Windows** thì có thể chọn TeX Live hoặc MikTeX. Theo kinh nghiệm của mình thì bạn vẫn nên chọn TeX Live, và cài đặt full (có thể bỏ qua một số gói ngôn ngữ không dùng).
Tuy nhiên MikTeX vẫn có một số điểm mạnh sau:
  • MikTeX nhẹ hơn nhiều so với TeX Live, chỉ khoảng 200 MB, trong khi TeX Live full trên Windows nặng đến 4.9 GB.
  • Mặc dù theo mặc định có thể thiếu một số packages khi cài MikTeX, nhưng trong Repository của MikTeX có hầu như mọi packages bạn cần. Chỉ việc mở** Package Manager** đi kèm MikTeX lên, tìm gói cần tải và nhấn nút cài đặt. Một thủ thuật nhỏ cho các bạn là: luôn chạy Package Manager với quyền Admin để không bị lỗi download (tải về nhưng không ghi được vào ổ đĩa C).
[adinserter block='6']

Nên dùng trình soạn thảo nào? TeX Maker hay TeX Studio, VieTeX?

[mks_icon icon="fa-chevron-right" color="#dd3333" type="fa"] Hướng dẫn sử dụng TeXMaker cơ bản[mks_icon icon="fa-chevron-right" color="#dd3333" type="fa"] Texpad – phần mềm gõ LaTeX hoàn hảo trong Mac OSX
Tùy thuộc vào sở thích của bạn. Bạn thích một Editor hỗ trợ đầy đủ tất cả các "nút", hay một Editor gọn nhẹ, vừa đủ các chức năng cơ bản. Cá nhân mình dùng TeX Maker đã nhiều năm nay. Mình đã thử TeX Studio và VieTeX, những cái còn lại chưa thử. Mình chọn TeX Maker vì
  • Hỗ trợ không thiếu các chức năng cơ bản của một trình soạn LaTeX
  • TeX Maker có dung lượng nhẹ,** giao diện đơn giản**, thân thiện.
  • Bạn hoàn toàn có thể thêm các lệnh gợi ý do chính bạn định nghĩa vào đây.
Trong khi đó, TeX Studio lại hỗ trợ rất chi tiết các gợi ý lệnhnút lệnh, nhưng riêng mình thấy hơi dư thừa, sẽ chậm tiến bộ hơn là tự ta gõ một số câu lệnh. Tất nhiên nếu bạn đã quen dùng thì TeX Studio sẽ là công cụ hỗ trợ tuyệt vời. Các bạn hãy review những TeX Editor khác cho mọi người nhé.

Hiểu về Môi trường (environment)

notion image
Môi trường là từ dùng để quy định tính chất của một đoạn văn bản. Trong một văn bản khoa học, có đoạn ta gọi là Định lý, có đoạn ta gọi là Chứng minh, rồi đoạn khác ta lại gọi là Danh sách,.... Thậm chí trong một đoạn Chứng minh, chỗ này ta gọi là "chữ", chỗ kia ta gọi là Phương trình,... Cách trình bày của mỗi môi trường khác nhau là khác nhau.
Thực chất khi soạn văn bản LaTeX, công việc của ta là **quy định mỗi đoạn, mỗi câu là thuộc vào môi trường nào **(biên soạn theo cấu trúc của môi trường đó), tự khắc sau khi biên dịch, nó sẽ có cách trình bày tiêu chuẩn của môi trường đó. Cách trình bày tiêu chuẩn này thường tuân theo thông lệ quốc tế, nhưng vẫn có thể tinh chỉnh được.
[mks_icon icon="fa-chevron-right" color="#dd3333" type="fa"] Bước đầu tạo một file văn bản bằng LaTeX.

Hiểu về Packages

Package được hiểu là các gói lệnh được viết bằng TeX (hoặc LaTeX gì đó) nhằm cung cấp cho người dùng giao diện làm việc thân thiện. Giao diện ở đây chính là các môi trường, các câu lệnh tinh gọn, linh động và dễ nhớ.
[mks_icon icon="fa-chevron-right" color="#dd3333" type="fa"] LaTeX 6 – Đôi điều về gói lệnh (package)
Ví dụ, package amsmath – gói cung cấp các lệnh làm việc trong môi trường toán học (được tạo ra từ 2.670 dòng lệnh TeX) giúp định nghĩa lại một số môi trường gốc của LaTeX, trong đó điển hình là việc thêm dấu sao** (*) **vào tên môi trường để quy định việc không đánh số. Sau đây là một số ví dụ.
Để tạo môi trường** align không đánh số**, người dùng chỉ việc dùng lệnh
\begin{align*}
[mks_icon icon="fa-chevron-right" color="#dd3333" type="fa"] Soạn thảo Toán học trong LaTeX.
Để tạo đóng khung một phương trình, người dùng chỉ việc dùng lệnh
\boxed{...}
thay vì phải tự định nghĩa bằng **TeX **(ngôn ngữ gốc) tương tự thế này
\newcommand{\boxed}[1]{\fbox{\m@th$\displaystyle#1$}}
[mks_icon icon="fa-chevron-right" color="#dd3333" type="fa"] Đóng khung nhanh gọn văn bản trong LaTeX.

Làm gì khi gặp một lỗi?

notion image
Trước nhất ta đọc xem Editor thông báo gì? Bước này nhiều bạn thường bỏ qua, mà vội copy và search dòng lỗi trên mạng. Thật ra nếu đọc kĩ bạn có thể thấy Editor nhắc ta quên dấu ngoặc } ở dòng xyz nào đó, hoặc là quên \end{...} ở đâu đó, hoặc thiếu package tên zyx nào đó. Chỉ việc kiểm tra kĩ đoạn bị lỗi và sửa lại. Nếu Editor thông báo rõ là thiếu package nào đó thì search ngay từ khóa trên Package Manager và tải ngay những package liên quan (đối với MikTeX). Sẽ fix được lỗi mà ta không ngờ đến. Khi Editor thông báo rất nhiều lỗi (rất nhiều dòng màu đỏ). Đừng vội lo lắng, nếu để ý thấy các dòng thông báo lỗi trông *giống giống nhau *thì nhiều khả năng bạn **thiếu package **đấy (Lý do vì sao nên dùng TeX Live full).
[mks_icon icon="fa-chevron-right" color="#dd3333" type="fa"] Hướng dẫn cài đặt Texlive Texmaker trên Windows
Đối với những lỗi ta chưa gặp bao giờ, search Google (tất nhiên). Nhưng hãy nên đọc hiểu thông báo lỗi, tức là hiểu lỗi này thuộc về **package, **về syntax hay Runtime Error. Mình tin là Google có thông tin về mọi lỗi LaTeX trên đời, chịu khó tìm hiểu và thử nghiệm, bạn sẽ tìm thấy câu trả lời, đồng thời học thêm được nhiều kỹ năng.
Trên đây là những chìa khóa bạn nên nắm lấy khi làm việc với TeX. Hy vọng những gì mình chia sẻ có thể giúp được các bạn sinh viên mới sử dụng đỡ khỏi bối rối như mình lúc mới làm quen với TeX.
[mks_icon icon="fa-chevron-right" color="#dd3333" type="fa"] Một số lỗi với XeLaTeX – inputec – utf8 trong LaTeX[mks_icon icon="fa-chevron-right" color="#dd3333" type="fa"] Những lỗi LaTeX thường gặp nhất
Tham khảo[1] CTAN, amsmath – AMS mathematical facilities for LATEX, https://www.ctan.org/pkg/amsmath[2] Tug.org, https://www.tug.org/texlive/
Cùng chủ đề