หน้าเว็บ

วันพุธที่ 1 มิถุนายน พ.ศ. 2554

วิธีใช้ latex สร้างไฟล์ pdf โดยให้ embed font ติดไปด้วย

ผมมีปัญหาว่าเขียนไฟล์ .tex (latex) แล้วพอจะคอมไพล์เป็นสกุล .pdf แล้วมันไม่ยอม embed font บางตัวติดไปให้ โดย font ส่วนใหญ่ที่ไม่ embed ติดไปให้นั้นจะเป็น font พวก Base 14 ได้แก่
ผมจึงนำวิธีที่แก้ไขปัญหานี้มาเขียนไว้ครับ (ผมใช้ latex, dvips, ps2pdf)

1. ทำการคอมไพล์ไฟล์ .tex ให้ได้เป็นไฟล์ .dvi
latex filename.tex

2. หลังจากนั้นแปลงไฟล์ .dvi ให้เป็นไฟล์ .ps
dvips filename.dvi

3. สุดท้ายก็แปลงเป็น .pdf
ps2pdf -dPDFSETTINGS=/printer -dEmbedAllFonts=true filename.ps


จุดสำคัญคือข้อ 3 ครับ ตรง -dPDFSETTINGS ถ้าเกิดผมไม่ใช่ option นี้เข้าไป ตรงส่วน -dEmbedAllFonts จะไม่ทำงาน ซึ่งผมคิดว่าค่า default ของ -dPDFSETTINGS ในเครื่องผมเป็น screen ไม่ใช่ printer ซึ่ง screen จะทำให้ EmbedAllFonts เป็น false โดยอัตโนมัติ

สำหรับการตรวจสอบว่า Font ได้ถูก embed เข้าไปรึยังนั้นให้ใช้คำสั่ง
pdffonts filename.pdf
โดยดูชื่อ Font ที่ใช้ และดูที่คอลัมน์ emb ว่าเป็น yes

ส่วนวิธี embed font ด้วยโปรแกรมและระบบปฏิบัติการอื่นดูเพิ่มเติมได้จาก
http://www.sas.upenn.edu/computing/help/students/dissertation-pdf



ระบบที่ทดสอบ
OS: Ubuntu 11.04
latex: TexLive 2009 (pdftex 3.1415926-1.40.10-2.2)
dvips: 5.98
ps2pdf: 9.01

ที่มา
http://www.sas.upenn.edu/computing/node/1225/
http://ismir2005.ismir.net/pdf.html