menu

Một số kinh nghiệm sử dụng Visual Studio Code để gõ LaTeX

Đăng lúc 14/01/2018, trong chuyên mục Soạn thảo LaTeX

Bài viết chia sẻ một số kinh nghiệm khi sử dụng trình Visual Studio Code để gõ LaTeX.

Tóm tắt cho các bạn đã đọc một lần
  • Download và cài đặt Visual Studio Code tại đây.
  • Cài extension mới bằng cách nhấn Ctrl+Shift+X, tìm và cài LaTeX Workshop của James-Yu.
  • Theo mặc định, nhấn Ctrl+S là save tài liệu và biên dịch mỗi lần save.
  • Tắt biên dịch tự động sau khi save: Ctrl+, > gõ tìm kiếm “toolchain” > đến dòng latex-workshop.latex.autoBuild.onSave.enabled thay bên USER SETTINGS false.
  • Biên dịch thủ công: Ctrl+Shift+P > gõ “build” > chọn “LaTeX Workshop: Build latex project”
  • Thay đổi phím tắt để biên dịch nhanh: File > Preferences > Keyboard Shortcuts > gõ tìm “build” và thay chỗ lệnh “Build LaTeX project” thành Ctrl+F1 > từ giờ muốn biên dịch thì cứ nhấn tổ hợp phím này.
  • Sử dụng lualatex/xelatex: thêm vào đầu văn bản % !TEX program = lualatex hoặc % !TEX program = xelatex và biên dịch bình thường.
  • Xem pdf preview: nhấn Ctrl+Alt+T
  • Nhảy từ editor sang pdf: Alt+Ctrl+S
  • Nhảy từ pdf sang editor: Ctrl+chuột trái vào vị trí muốn xem.

Mục tiêu để chọn một phần mềm gõ TeX tốt

Dưới đây là tiêu chuẩn của tôi khi chọn một phần mềm gõ TeX tốt và tôi sẽ dựa vào chúng để đánh giá một phần mềm có “ngon” hay không.

  1. Hỗ trợ gợi ý từ
  2. Hỗ trợ thêm từ tự định nghĩa
  3. Tự động chọn trình biên dịch cho tài liệu
  4. Hỗ trợ gợi ý tên tài liệu tham khảo khi gõ \cite hoặc \citep,…
  5. Hỗ trợ duyệt theo thư mục/dự án
  6. Hỗ trợ tự động hóa các thao tác (biên dịch khi save, biên dịch với các phím tắt,…)
  7. Hỗ trợ tạo nhanh một tài liệu mới với cấu trúc định nghĩa sẵn
  8. Syntax highlight
  9. Hỗ trợ xem pdf trực tiếp trong trình soạn thảo (ở một cột riêng biệt, built-in output viewer)
  10. Hỗ trợ nhảy qua nhảy lại giữa trình soạn thảo tex và trình xem pdf để đi nhanh đến vị trí đang soạn thảo/đang xem (SyncTeX)
  11. Đa nền tảng và miễn phí: để tránh việc thay đổi thói quen sử dụng khi thay máy tính hay thay hệ điều hàn

Chỉ cần đảm bảo càng nhiều yêu cầu ở trên thì việc soạn thảo latex sẽ càng trở nên thuận tiện và dễ dàng hơn. Tất nhiên tôi không nêu ra tiêu chuẩn giao diện phải thật đẹp và gọn gàng.

Với Visual Studio Code - LaTeX Workshop, ta có hầu hết 11 ưu điểm ở trên (trừ cái thứ 7 và cái thứ 2 không quá hoàn hảo).

Cài đặt

Visusal Studio là một trình IDE nên để có thể soạn thảo latex bạn cần cài thêm extension cho nó.

  1. Bạn đã cài TeXLive cho máy. Lưu ý nếu bạn cài MikTeX thì chức năng thứ 10 (SyncTeX) sẽ không thể hoạt động được.
  2. Download Visual Studio Code
  3. Cài đặt bình thường và mở VSC lên
  4. Mở trình extension bằng cách chọn View > Extensions (hoặc nhấn phím tắt Ctrl+Shift+X hoặc nhấn vào biểu tượng cuối cùng bên dưới thanh công cụ cạnh trái cửa sổ VSC)
  5. Gõ tìm kiếm và cài đặt extension LaTeX Workshop (tác giả là James-Yu, ông cũng là tác giả của extension Atom-LaTeX bên Atom).

Sau khi cài đặt xong, bạn có thể mở thử một file .tex đơn giản để chạy thử. Xem mục tiếp theo để biết cách cài đặt chi tiết và sử dụng các chức năng.

Thiết lập và sử dụng các chức năng

Biên dịch

Theo mặc định, latexmk sẽ được chọn là trình biên dịch cho các file latex. Bạn chỉ cần nhấn Ctrl+S là có thể vừa lưu tài liệu vừa tự động biên dịch file latex.

  • face latexmk là gì?

    latexmk là một script perl để có thể chạy latex một cách tự động một số thao tác và dòng lệnh. Thường nó sẽ chạy luôn cả các lệnh bibtex/biber, makeindex, dvips và cả trình xem trước preview.

Để có thể chạy các lệnh biên dịch theo ý của bạn (không hoàn toàn tự động), ví dụ bạn muốn biên dịch theo thứ tự

pdflatex > bibtex > pdflatex > pdflatex

bạn có thể mở chỉnh sửa LaTeX toolchain (một chuỗi các lệnh sẽ được thực thi khi các bạn biên dịch file/dự án đang làm) bằng cách vào:

File > Preferences > Settings > gõ tìm kiếm “latex-workshop.latex.toolchain” để đến dòng lệnh đó > nhìn bên khung chỉnh sửa kế cận bên phải, chọn tab USER SETTINGS và thêm hoặc sửa theo cấu trúc dưới đây

"latex-workshop.latex.toolchain": [
  {
    "command": "pdflatex",
    "args": [
      "-synctex=1",
      "-interaction=nonstopmode",
      "-file-line-error",
      "%DOC%"
    ]
  }, {
    "command": "bibtex",
    "args": [
      "%DOCFILE%"
    ]
  }, {
    "command": "pdflatex",
    "args": [
      "-synctex=1",
      "-interaction=nonstopmode",
      "-file-line-error",
      "%DOC%"
    ]
  }, {
    "command": "pdflatex",
    "args": [
      "-synctex=1",
      "-interaction=nonstopmode",
      "-file-line-error",
      "%DOC%"
    ]
  }
]

Trong đó,

  • %DOC%: đường dẫn + tên file latex không bao gồm “.tex”. Ví dụ: C:\tex\file-tex
  • %DOCFILE%: tên file latex đang làm việc không bao gồm “.tex”. Ví dụ: file-tex
  • %DIR%: đường dẫn chứa file latex không kèm tên. Ví dụ: C:\tex

Sau đó, nếu cần biên dịch, bạn có hai cách

  1. Nhấn Ctrl+S để lưu văn bản đang soạn thảo, nó sẽ tự động biên dịch cho bạn. Bạn có thể tắt chức năng này đi bằng cách
    • Chọn File > Preferences (hoặc nhấn Ctrl + ,)
    • Bạn gõ tìm kiếm “toolchain”
    • Đến dòng "latex-workshop.latex.autoBuild.onSave.enabled", nhìn bên khung chỉnh sửa kế cận bên phải, chọn tab USER SETTINGS và thêm hoặc sửa theo cấu trúc dưới đây và thay true bằng false là được
  2. Nếu bạn đã tắt tự động biên dịch khi save và muốn chủ động biên dịch khi cần thì có thể nhấn tổ hợp phím Ctrl+Shiff+P để mở Command Palette (View > Command Palette), bạn gõ vào build và chọn LaTeX Workshop: Build latex project. Bạn cũng có thể thay đổi phím tắt để gọi nhanh lệnh “Build LaTeX project” ở trên bằng cách sau.
    • Vào File > Preferences > Keyboard Shortcuts
    • Gõ tìm chữ “build” và chọn “Build LaTeX project”, chọn biểu tượng cây viết chì kế bên lệnh này để sửa đổi
    • Nhấn vào (khuyên dùng Ctrl+F1) bất cứ tổ hợp phím nào mà bạn muốn.
    • Kể từ bây giờ, mỗi lần bạn save xong tài liệu (Ctrl+S) mà muốn biên dịch, cứ việc nhấn Ctrl+F1

Sử dụng lualatex hoặc xelatex

Trình biên dịch mặc định của VSC-latex là latexmk như đã nói ở mục trước, nó áp dụng pdflatex là chủ yếu. Nếu bạn cần biên dịch với một lệnh nào đó khác, ví dụ như lualatex hoặc xelatex, bạn có thể dùng Magic comment. Nó là gì?

Bạn cần để đầu tài liệu .tex chính của mình dòng lệnh sau (với xelatex)

% !TEX program = xelatex

hoặc (với lualate)

% !TEX program = lualatex

infoCó tí khác biệt trong Atom. Trong Atom, bạn thay chữ program bởi chữ engine, tức % !TEX engine = xelatex

Bạn cũng có thể thay thế Latex toolchain như thủ thuật đã gợi ý ở mục trước.

Xem preview pdf

Để có thể xem file, bạn có thể nhấn biểu tượng hoặc nhấn tổ hợp phím Ctrl+Alt+T. Một cửa sổ sẽ hiện lên song song với cửa sổ đang soạn thảo.

Thêm từ gợi ý của chính mình

VSC latex workshop sử dụng tính năng Intellisense có sẵn của VSC để hiển thị các câu lệnh có sẵn (autocomplete). Tôi tạm thời chưa biết cách làm cho VSC nhận ra các câu lệnh bạn tự định nghĩa sẵn. Tuy nhiên Intellisense rất thông minh, nếu như trong cùng một văn bản đang soạn thảo, bạn đã gõ cụm lệnh tự định nghĩa nào đó, ví dụ \toituhoc{a}{b} thì khi gõ lần hai, ví dụ \toit thôi thì VSC sẽ gợi ý ra cho bạn dạng \toituhoc{arg}{arg} rất chuyên nghiệp.

Vậy chi, bạn chỉ cần gõ thủ công một lệnh nào đó lần đầu tiên, VSC sẽ “nhớ” lệnh đó và cho bạn sử dụng nó ở những lần tiếp theo trong cùng một văn bản.

Ngoài ra bạn có thể tự tạo một snippet cho bản thân bằng cách tham khảo link này.

Nhảy qua lại giữa editor và pdf

  • Từ editor sang pdf: Để có thể xem vị trí hiện tại trong khung pdf tương ứng với chỗ con trỏ đang ở bên trình soạn thảo, bạn nhấn Alt+Ctrl+S. Lưu ý, bạn có thể thay đổi phím tắt này theo ý mình tương tự như các bước được nói ở cuối mục “Biên dịch”.
  • Từ pdf sang editor: ngược lại, bạn nhấn phím Ctrl+chuột trái vào vị trí nào bạn muốn ở bên file xem pdf, tự động khung soạn thảo sẽ đi đến vị trí tương ứng cho bạn.

Bài viết sẽ còn cập nhật trong quá trình sử dụng, nếu bạn có gì hay về VSC và latex, vui lòng comment bên dưới nhé :)

latex
latex editor
Top