Tag Archives: latex

ฟอนท์ Inconsolata กับ LaTeX

Inconsolata เป็นฟอนท์สำหรับโปรแกรมเมอร์ (หมายถึงฟอนท์ความกว้างคงที่สำหรับแก้ไขโปรแกรม) ที่ออกแบบโดย Raph Levien ซึ่งผมใช้มาสักระยะหนึ่งแล้ว เนื่องจากชอบรูปร่าง สัดส่วนของตัวอักษร เมื่อไม่นานนี้มีคนใจดีนำฟอนท์นี้ไปทำเป็นแพคเกจสำหรับ LaTeX ซึ่งสามารถโหลดได้จาก http://ctan.org/pkg/inconsolata ทำให้ผมสามารถนำฟอนท์นี้มาใช้สำหรับแสดง code บนสไลด์ที่ใช้ประกอบการสอน (ผมใช้ LaTeX Beamer สำหรับทำสไลด์) แต่เทอมนี้ผมสอนวิชา Computer Architecture ซึ่งพูดถึงพวก machine code และ assembly code เต็มไปหมด จึงคิดว่าการใช้เลขศูนย์แบบมี / คาด จะช่วยลดความกำกวมของเนื้อหาได้พอควร ผมจึงต้องแก้ไขแพคเกจเล็กน้อย เนื่องจาก Karl Berry ที่เป็นคนออกแบบแพคเกจ เลือกใช้ศูนย์แบบไม่มีคาดเป็นรูปร่างปกติสำหรับเลขศูนย์ พอลองดูข้อมูลรูปร่างของตัวอักษรต่างๆ ที่มากับฟอนท์แล้ว ก็พบว่ามีมาให้ทั้งสองแบบ คือ เลขศูนย์แบบปกติ กับเลขศูนย์แบบมี / คาดทับ ก็เลยลองไปดูไฟล์ fi4-ec.enc ซึ่งเป็นไฟล์ที่ใช้กำหนดว่า จะให้รหัสใดใช้รูปร่างตัวอักษรตัวไหนของฟอนท์ แล้วผมก็พบว่าไฟล์นี้ระบุว่า /zero.noslash %0×30 [...]

PDFCrop

เวลาใช้ Tikz หรือ PGF สร้างภาพประกอบ หรือแผนภาพต่างๆ ผมจะพบปัญหาเวลา ต้องการนำรูปนั้นไปใช้ในสถานกรณ์อื่น เช่น เดิมเคยเขียนไว้สำหรับรายงาน แล้วอยากเปลี่ยนขนาดใหม่เอาไปใช้ประกอบสไลด์ อันที่จริง Tikz ก็มีตัวเลือก scale มาให้สำหรับปรับเปลี่ยนขนาดให้พอเหมาะ แต่ก็ยังมีปัญหาที่ขนาดตัวอักษรอีก (หรือผมทำไม่เป็นก็ไม่รู้) ต้องแก้ไขฟอนท์ ทำให้ยุ่งยากพอสมควร ผมก็เลยคิดจะเปลี่ยนจากการแปะคำสั่งวาดภาพไปในไฟล์ตรงๆ เขียนไฟล์ LaTeX ต่างหากสำหรับรูปแต่ละรูป ทำเป็น PDF แล้วค่อยเอาไปแปะทีหลัง ซึ่งจะทำให้การปรับเปลี่ยนขนาด ทำได้ง่ายมากๆ ลองหาดูในที่ต่างๆ สุดท้าย ก็เจอโปรแกรม PDFCrop เป็นสคริปต์ที่มากับแพคเกจ texlive-extra-utils บน Ubuntu โปรแกรมนี้ทำหน้าที่ตัดขอบว่างๆ ทั้งหมดของรูปออก ทำให้สามารถใช้ includegraphics แปะเข้าไปในไฟล์อื่นได้ง่ายๆ วิธีใช้ก็คือ $ pdfcrop myfig.pdf

เพิ่มเลขหน้าให้ PDF

การใช้ LaTeX ทำสไลด์สำหรับใช้สอนหนังสือ จะมีความลำบากนิดหน่อยในการเตรียม handout สำหรับแจกนักศึกษา (จริงๆ แล้ว ไม่ค่อยอยากแจกเท่าไหร่ พอมีสไลด์ครบแล้ว ส่วนใหญ่ก็จะคุยกันเยอะ) ถ้าใช้ Beamer ก็จะมีแพคเกจ pgfpages มาให้ใช้สำหรับพิมพ์สไลด์หลายๆ หน้ารวมกันในหน้าเดียวอยู่แล้ว แต่ผมชอบใช้โปรแกรม pdfnup ที่มาพร้อมกับแพคเกจ pdfjam บน Ubuntu มากกว่า วิธีใช้ก็ง่ายๆ เช่น $ pdfnup –nup 2×2 –frame true myslides.pdf จะได้ผลลัพธ์เป็นไฟล์ PDF ชื่อ myslides-2×2.pdf วางสไลด์สี่หน้าต่อหนึ่งแผ่น แบบ 2 คูณ 2 ทีนี้ทุกเทอมก็ใช้อย่างนี้มาตลอด มาเทอมนี้อยากให้มีเลขหน้าเพิ่มเข้าไปด้วย จะได้เรียงลำดับหน้าต่างๆ ได้ไม่ยาก (ปกติร้านถ่ายเอกสารจะใช้มือเขียนเลขหน้าให้) วิธีที่ง่ายที่สุดก็คือไปหา Adobe Acrobat ตัวจริงมา จะมีฟังก์ชันให้ใส่เลขหน้าโดยอัตโนมัติ แต่เนื่องจากเราไม่อยากเสียตังค์ ก็เลยมานั่งดูโปรแกรม pdfnup [...]

ลองเล่น TikZ #1

PGF และ TikZ เป็นแพคเกจของ LaTeX ซึ่งใช้ในการวาดภาพ (เช่น แผนภาพแบบต่างๆ) ในลักษณะเดียวกับ PSTricks แต่ PGF/TikZ ถูกออกแบบมาให้สนับสนุน pdfTeX ซึ่งทำให้ได้ผลที่ได้ออกมาเป็น PDF อันที่จริง PGF/TikZ นี้พัฒนาจากคนๆ เดียวกับคนพัฒนาแพคเกจ Beamer เพื่อให้เป็นแพคเกจพื้นฐานของในการแสดงผลรูปต่างๆ เนื่องจากตอนนี้ผมอยู่ระหว่างการพยายาม ลด ละ เลิก Mac OS X และหันมาใช้ Linux (Ubuntu) แบบ 100% (ทั้งๆ ที่ยังใช้เครื่อง MacBook อยู่นี่แหละ) จุดอ่อนของ Ubuntu ที่ทำให้ผมยังไม่สามารถเปลี่ยนมาใช้ทำงานได้ครบถ้วน ก็คือ ขาดซอฟท์แวร์สำหรับสร้างแผนภาพ เวลาที่ผมต้องทำรูปประกอบสำหรับสไลด์ หรือเอกสารต่างๆ ซอฟท์แวร์ที่มีอยู่ยังไม่ถูกใจผม (เมื่อเทียบกับ OmniGraffle ที่ใช้อยู่ในปัจจุบัน) แต่ผมก็ยังไม่มีเวลา(และความสามารถ) ที่จะไปปรับปรุงซอฟท์แวร์พวกนั้นให้มันดีขึ้นจนผมพอใจ ตามหลักการของซอฟท์แวร์เสรี ผมจึงคิดว่าจะใช้ PGF/TikZ กับ [...]

LaTeX with Thai

ช่วงนี้มีคนถามเกี่ยวกับเรื่องการใช้ LaTeX กับภาษาไทยบ่อยๆ เลยเอามาจดไว้หน่อยล่ะกัน ที่โดนถามๆ มา มักจะเป็นการใช้ LaTeX เขียนเปเปอร์โดยใช้ภาษาอังกฤษเป็นหลัก มีภาษาไทยแทรกเล็กน้อยเท่านั้น จึงทำได้ 2 วิธี ใช้ Thai LaTeX ซึ่งเป็นวิธีการที่มาตรฐานที่สุด วิธีติดตั้งก็มีอธิบายไว้หลายที่ ถ้าจะให้ง่ายที่สุดก็คงจะต้องใช้ Ubuntu หรือ Debian แล้ว apt-get install thailatex ก็น่าจะจบแล้ว ส่วนวิธีการใช้งาน ก็เพียงแค่เพิ่ม \usepackage[thai,english]{babel} เพื่อระบุว่าจะใช้ภาษาไทยด้วย แต่ให้ใช้ภาษาอังกฤษเป็นภาษาหลัก ฟอนต์ต่างๆ หรือรูปแบบเอกสารจะยังคงเหมือนกับ style file เดิม เวลาจะเขียนภาษาไทยก็ใช้สวิทช์ \thai เพื่อระบุส่วนที่ต้องการให้เป็นภาษาไทย เช่น {\thai ภาษาไทย} ใช้ XeLaTeX ซึ่งเป็น TeX รุ่นที่ออกแบบมาให้สนับสนุนฟอนท์แบบ OpenType ตั้งแต่ต้น ทำให้นำฟอนท์ต่างๆ ที่ติดตั้งไว้ในระบบมาใช้ได้เลย ข้อดีก็คือเลือกฟอนท์ได้ตามใจชอบ สามารถใช้ฟอนท์ที่มักจะใช้กันบ่อยๆ ได้ง่ายกว่า [...]