Skip to contents

Intro to Quarto

Quarto เป็น scientific markdown publishing system สร้างโดยทีมงานที่สร้าง R Markdown มีจุดมุ่งหมายเป็น super-set หรือ next-generation ของ R Markdown โดย Quarto สามารถ

  • รองรับภาษา R, Python, Julia, Observable JS

  • รองรับ R Markdown (.Rmd), Jupyter notebook (.ipynb), และ Quarto markdown (.qmd)

  • สามารถ render output ได้หลายรูปแบบ เช่น HTML, PDF, MS Word, etc. หรือแม้แต่ใช้เขียน หนังสือ, website, blog

  • รองรับสำหรับ scientific markdown สำหรับเอกสารทางวิชาการได้ดี ไม่ว่าจะเป็น equations, citation, crossrefs, callouts, หรือ layout ต่างๆ

Quarto to PDF in Thai

เอกสาร Quarto ที่มีภาษาไทย สามารถ render เป็น HTML, MS Word ได้ทันที แต่สำหรับ PDF จะต้องมีการ setup เพิ่มเติม ซึ่งจะอธิบายวิธีการในบทความนี้

โดยสรุป: หลักการคือ แทรก LaTeX preamble ที่มีการตั้งค่าภาษาไทย เข้าไป ก่อนที่ LaTeX จะ compile เป็น PDF นั่นเอง

(สำหรับ PDF engine ทาง Quarto ใช้เป็น XeLaTeX เป็น default ซึ่งรองรับภาษาไทยได้อยู่แล้่ว)

Example

ในตัวอย่างนี้จะสอนการสร้าง Quarto Book ที่มีภาษาไทย โดย render เป็น PDF

ผมได้สร้าง repository ตัวอย่างไว้ที่นี่:

Example Thai Quarto Book Repository

ซึ่งเป็นรูปแบบ Quarto Book โดยสามารถดูผลลัพท์ที่ render แล้วได้จาก:

Tutorial

Step 1: Create Quarto Book

สร้าง Quarto book Project หรือถ้าใช้ RStudio สามารถสร้างโดย

New Project -> Quarto Book

Create Quarto Book

Step 2: Get Thai LaTeX Preamble Setting

สร้าง LaTeX preamble ที่มีการตั้งค่าภาษาไทย ไว้ใน project โดยใช้คำสั่ง

จะสร้างไฟล์ thai-preamble.tex ที่ตั้งค่า font เป็น “TH Sarabun New” มาให้ (สามารถเปลี่ยนเป็น font อื่นได้ที่ thai_font argument)

Step 3: Include Thai Preamble

จากนั้น ในไฟล์ที่มีตั้งค่าสำหรับ Quarto (_quarto.yml หรือ _metadata.yml) ให้ใส่ thai-preamble.tex ไปที่ include-in-header ของ pdf แบบนี้

_quarto.yml

format:
  pdf:
    include-in-header: "thai-preamble.tex"

(สามารถเก็บ intermediate LaTeX ไว้เพื่อ debug ได้ด้วย keep-tex: true)

จากนั้นสามารถใช้ภาษาไทยและ render เป็น PDF ได้เลย

quarto render

จากตัวอย่างจะได้ผลลัพท์ PDF เป็น PDF Book in Thai

จบแล้วครับ เย่! 🎉