การแปลง Markdown เป็น PDF
การแปลง Markdown เป็น PDF
Convert Markdown to PDF with Thai Support
เอกสารนี้อธิบายวิธีการแปลงไฟล์ Markdown เป็น PDF โดยรองรับภาษาไทยอย่างสมบูรณ์ ใช้ Pandoc ร่วมกับ XeLaTeX
สารบัญ
ข้อกำหนดเบื้องต้น (Prerequisites)
ก่อนเริ่มต้น ต้องติดตั้งซอฟต์แวร์ต่อไปนี้:
1. Pandoc
เครื่องมือแปลงเอกสารหลากหลายรูปแบบ รองรับการแปลงจาก Markdown เป็น PDF
2. LaTeX Engine
แนะนำ XeLaTeX เนื่องจากรองรับ Unicode และฟอนต์ภาษาไทยได้ดีที่สุด
3. ฟอนต์ภาษาไทย
- • Sarabun - ออกแบบสำหรับหน้าจอและเอกสาร
- • Noto Sans Thai - จาก Google
- • TH Sarabun New - สำหรับเอกสารทางการ
การติดตั้ง (Installation)
การตั้งค่าฟอนต์ภาษาไทย
การตรวจสอบฟอนต์ที่ติดตั้ง
# Linux/macOS - ตรวจสอบฟอนต์ Sarabun fc-list | grep -i sarabun # ดูฟอนต์ไทยทั้งหมด fc-list :lang=th
คำสั่งแปลง PDF
1 การแปลงพื้นฐาน
pandoc input.md -o output.pdf --pdf-engine=xelatex -V mainfont="Sarabun"
2 การแปลงพร้อมสารบัญ
pandoc input.md -o output.pdf \ --pdf-engine=xelatex \ -V mainfont="Sarabun" \ -V geometry:margin=1in \ --toc \ --toc-depth=3
3 การแปลงหลายไฟล์
# รวมหลายไฟล์ Markdown เป็น PDF เดียว pandoc chapter1.md chapter2.md chapter3.md -o book.pdf \ --pdf-engine=xelatex \ -V mainfont="Sarabun" \ --toc
ตัวเลือกขั้นสูง
การตั้งค่าขอบกระดาษ
pandoc input.md -o output.pdf \ --pdf-engine=xelatex \ -V mainfont="Sarabun" \ -V geometry:margin=2.5cm
การกำหนดขนาดหน้ากระดาษ
# A4 pandoc input.md -o output.pdf \ --pdf-engine=xelatex \ -V mainfont="Sarabun" \ -V geometry:a4paper
การใช้ฟอนต์หลายแบบ
pandoc input.md -o output.pdf \ --pdf-engine=xelatex \ -V mainfont="Sarabun" \ -V sansfont="Noto Sans Thai" \ -V monofont="Sarabun"
การรองรับรูปภาพ
pandoc input.md -o output.pdf \ --pdf-engine=xelatex \ -V mainfont="Sarabun" \ -V graphics=true \ --resource-path=.:images
การใช้ Template (YAML defaults)
สร้างไฟล์ thai-pdf.yaml สำหรับการตั้งค่าที่ใช้บ่อย:
# thai-pdf.yaml pdf-engine: xelatex variables: mainfont: Sarabun sansfont: Sarabun monofont: Sarabun fontsize: 12pt geometry: margin=2.5cm documentclass: article lang: th-TH toc: true toc-depth: 3
# ใช้ไฟล์ defaults pandoc input.md -o output.pdf --defaults=thai-pdf.yaml
การแก้ไขปัญหา
ไม่พบฟอนต์ (Font Not Found)
อาการ: Error: fontspec error: "font-not-found"
# ตรวจสอบว่าฟอนต์ติดตั้งแล้วหรือยัง fc-list | grep -i sarabun # หากไม่พบ ให้ติดตั้งฟอนต์ใหม่และรีสตาร์ท Terminal fc-cache -fv
ตัวอักษรไทยแสดงผลไม่ถูกต้อง
อาการ: ตัวอักษรไทยเป็นกล่องว่าง ตัวอักษรซ้อนกัน
# ตรวจสอบว่าใช้ XeLaTeX และเพิ่มการรองรับภาษาไทย pandoc input.md -o output.pdf \ --pdf-engine=xelatex \ -V mainfont="Sarabun" \ -V lang=th-TH
Error: Missing $ inserted
Escape อักขระพิเศษในไฟล์ Markdown เช่น _, %, $
ส่วนลด 50\% แทน ส่วนลด 50%
สรุปคำสั่งที่ใช้บ่อย
# คำสั่งพื้นฐานสำหรับภาษาไทย pandoc input.md -o output.pdf \ --pdf-engine=xelatex \ -V mainfont="Sarabun" \ -V geometry:margin=2.5cm \ -V fontsize=12pt \ --toc \ --toc-depth=3