knitr::opts_chunk$set( collapse = TRUE, comment = "#>" )
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 ที่มีภาษาไทย สามารถ render เป็น HTML, MS Word ได้ทันที แต่สำหรับ PDF จะต้องมีการ setup เพิ่มเติม ซึ่งจะอธิบายวิธีการในบทความนี้
โดยสรุป: หลักการคือ แทรก LaTeX preamble ที่มีการตั้งค่าภาษาไทย เข้าไป ก่อนที่ LaTeX จะ compile เป็น PDF นั่นเอง
(สำหรับ PDF engine ทาง Quarto ใช้เป็น XeLaTeX เป็น default ซึ่งรองรับภาษาไทยได้อยู่แล้่ว)
ในตัวอย่างนี้จะสอนการสร้าง Quarto Book ที่มีภาษาไทย โดย render เป็น PDF
ผมได้สร้าง repository ตัวอย่างไว้ที่นี่:
ซึ่งเป็นรูปแบบ Quarto Book โดยสามารถดูผลลัพท์ที่ render แล้วได้จาก:
สร้าง Quarto book Project หรือถ้าใช้ RStudio สามารถสร้างโดย
New Project
->Quarto Book
{alt="Create Quarto Book" width="600"}
สร้าง LaTeX preamble ที่มีการตั้งค่าภาษาไทย ไว้ใน project โดยใช้คำสั่ง
thaipdf::use_thai_preamble()
จะสร้างไฟล์ thai-preamble.tex
ที่ตั้งค่า font เป็น "TH Sarabun New" มาให้ (สามารถเปลี่ยนเป็น font อื่นได้ที่ thai_font
argument)
จากนั้น ในไฟล์ที่มีตั้งค่าสำหรับ Quarto (_quarto.yml
หรือ _metadata.yml
) ให้ใส่ thai-preamble.tex
ไปที่ include-in-header
ของ pdf
แบบนี้
format: pdf: include-in-header: "thai-preamble.tex"
(สามารถเก็บ intermediate LaTeX ไว้เพื่อ debug ได้ด้วย keep-tex: true
)
จากนั้นสามารถใช้ภาษาไทยและ render เป็น PDF ได้เลย
quarto render
จากตัวอย่างจะได้ผลลัพท์ PDF เป็น PDF Book in Thai
จบแล้วครับ เย่! 🎉
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.