Category Archives: Graphics

The Power of TikZ

ได้รู้จัก TikZ มานาน แต่ใช้น้อยมาก ทั้ง ๆ ที่ pgf และ TikZ เป็นระบบกราฟฟิคที่เกิดมาคู่กับ Beamer (tool ในการสร้าง presentation ที่นิยมมาก ๆ ในวงการศึกษา) เหตุผลก็ง่าย ๆ ครับ ตัวภาษาที่เป็นคู่มือเล่มหนายังกับ textbook อ่านจบไปร้อยหน้า ก็ยังทำอะไรมากไม่ได้ วิธีการเลี่ยงไปใช้ pgfplot ช่วยในบางกรณีก็ทำมาแล้ว ยากพอกันแต่คู่มือบางกว่า ปัญหาก็เกิดอีกเพราะมันช้ามาก ผมยกตัวอย่าง ถ้าผมต้องการวาดภาพแบบนี้ลงในหนังสือผม (คลิ๊กที่รูปเพื่อดูขนาดจริง) จะทำอย่างไรครับ เมื่อก่อนผมใช้ m4 circuit macro ส่วนกราฟก็ใช้ MATLAB

วาดแผนภาพ (diagram) ง่าย(ที่ไหน) ด้วย TikZ ตอนที่ 1

ถ้าใครเคยใช้ beamer, TikZ มาบ้าง แล้วเริ่มต้นด้วยการอ่านคู่มือโดยมีเป้าหมายเพื่อที่จำทำงานง่าย ๆ บางอย่างให้เสร็จในเวลาอันรวดเร็ว นั่นหมายความว่าคุณชอบทรมานตัวเอง คู่มือของ beamer และ TikZ นั้นหนา รายละเอียดเยอะ แล้วก็ "ต้องอ่านตั้งแต่ต้น" ใครไม่เคยใช้ beamer และ TikZ และไม่อยากแตะ แต่เคยสัมผัสคู่มือของอุปกรณ์จากเยอรมันเช่น Siemens, dSpace (อาจจะรวม SAP เข้าไปด้วย) ก็น่าจะรู้ดีว่า คู่มือเหล่านี้จะมี Quick Start ที่อ่านจบแล้วไปต่อไปไม่ได้ ตัวอย่างถัดไปไม่สามารถขยายต่อจากตัวอย่างใน Quick Start ได้ บางครั้งทำตามตัวอย่างในบทถัด ๆ ไปทุกอย่าง แต่ได้

Ghostscript 9.00 และ 3D with Pstricks

ในยุคที่ การควบรวมกิจการ,  3D, และ โดนัท กำลังอยู่ในสายตาของผู้คนอย่างมาก (มากเกินไปโดยเฉพาะอันหลัง) ผมเลยเขียนบทความที่รวมสามเรื่องไว้ในเรื่องเดียวกันซะเลย มาดูกันว่าผมทำได้อย่างไร เรื่องแรกคือ โปรแกรมค้างฟ้า Ghostscript ได้ออกเวอร์ชันใหม่เป็นเลข 9.00 ซึ่งแน่นอนเป็นเวอร์ชันที่มีการเปลี่ยนแปลงค่อนข้างมาก โดยเฉพาะเรื่องสี ดังนั้นแฟนพันธ์แท้ LaTeX -> divps -> ps2pdf ก็คงต้องใส่ใจกันหน่อย สำหรับคนที่ต้องการใช้งานก็ไปโหลดได้จาก Ghostscript 9.00 แล้วก็ลองกันเองนะครับ เรื่องถัดมาคือคือสองเรื่องควบนั่นคือ 3D กับ โดนัท ในการวาดรูป 3D ใน LaTeX นั้นน่าจะเป็นเรื่องหนึ่งที่มีประโยชน์มาก ๆ เพราะเราสามารถสร้างและจัดการกับรูปภาพ 3D ที่ใช้ในการเรียนการสอนคณิตศาสตร์ได้แบบฟรี

Inkscape 0.48 with new LaTeX export feature

ท่านผู้่อ่านที่รัก (ไม่รู้มีกี่คนกัน) ในที่นี้มีใครไม่รู้จัก XFig บ้างครับ หลายคนคงไม่รู้จัก ซึ่งไม่เป็นไร อธิบายกันเล็กน้อย XFig นั้นเป็นโปรแกรมวาดรูปแบบเว็กเตอร์ที่เขียนโดยคนไทยปัจจุบันเข้าใจว่าเป็นอาจารย์อยู่นิด้า ตัวโปรแกรมนั้นเป็นที่นิยมในหมู่ผู้ใช้ unix มาก ๆ สำหรับบน linux แล้วก็ยังมีคนใช้อยู่เช่นผม เป็นต้น แต่ผมใช้ผ่าน Colinux ส่วนโปรแกรมวาดรูปเวกเตอร์บน Windows นั้นก็มีหลายตัว และหนึ่งในนั้นก็คงเป็นที่รู้จักกันดีคือ Inkscape นั่นเอง  สำหรับโปรแกรมตัวนี้นั้นมีออกมาให้ใช้นานแล้ว แต่ผู้ใช้ LaTeX คงจะใช้กันน้อยมาก เพราะไม่ว่าโปรแกรมวาดรู้จะดีอย่างไร ถ้าใส่สมการไม่ได้ก็กลับไปหา XFig อย่างเดิม (สำหรับการวาดบล็อคไดอะแกรม หรือวงจรไฟฟ้า ผมใช้ circuit macro ปัจจุบันเรื่องวิเคราะห์วงจรไฟฟ้าส่งคืน

WinFig ใช้ยาก แต่อาจจะคุ้ม

ปัญหาอย่างหนึ่งของคนใช้ LaTeX ก็คือ เห็นสมการในรูปแบบห่วย ๆ เส้นแตก รูปไปถึงรูปที่เส้นแตกไม่ชัดเจน แล้วจะมีอาการเวียนหัวทันที  ดังนั้นผู้ใช้งาน LaTeX สิ่งหนึ่งที่ต้องวิ่งหาคือโปรแกรมวาดรูปแบบเวกเตอร์ที่ใส่สมการได้ ซึ่งมีหลายตัว และแต่ละตัวก็ใช้งานยาก ๆ ทั้งนั้น วันนี้จะขอนำเสนอ WinFig ไม่ได้ยุ่งอะไรเกี่ยวกับโปรแกรมวาดรูปตระกูล XFig ซะนาน เพราะช่วงนี้ไม่ได้เขียนบทความวิชาการเลย แต่ถ้าทำความเข้าใจถึงวิธีการใช้แล้วก็อาจจะ "ติดใจ" ก็ได้ เหมือนคนทั่วไปที่ทนใช้โปรแกรมบางตัวเพราะติดกับคีย์ลัด หรือรูปแบบการทำงานต่าง ๆ ทั้ง ๆ ที่ ๆ มันก็สรุปไม่ได้ว่ามันดีกว่ากันหรือเปล่า ยกตัวอย่างเช่นผมติดการใช้  WinEDT เป็นต้น  ในการใช้ WinFig ก็ดาวน์โหลดแล้วติดตั้งแบบโปรแกรมทั่วไปตามปกติ เวอร์ชันทดลองใช้งานได้ 15

วาด hyperbola ด้วย TikZ

hyperbola plot with TikZ

คุณสุขุมถามมาใน forum พอดีไม่เคยใช้เหมือนกันเลยตอบไม่ได้ ใช้ MATLAB ทดสอบแล้วตอบ ซึ่งคิดว่าเหมือน ๆ กัน วันนี้นั่งดูเว็บ TUG เล่น ๆ ก็พบว่ามีแพ็กเกจ pgfplots ซึ่งสามารถใช้งานในการพล็อตกราฟได้ดี เลยลองเล่นดูสักพัก แล้วลองทำโจทย์ที่คุณสุขุมให้มาดู ปรากฏว่าง่ายมาก ๆ เลยลองเขียนวิธีการไว้เป็นบันทึกช่วยจำสักหน่อย โจทย์เป็นแบบนี้ครับ ให้พล็อตกราฟพาราโบลา     จะได้รหัสของ TikZ เป็นดังนี้ [crayon-5a2e1d1da8ae5759540567/] วิธีการพล็อตก็ต้องเปลี่ยนสมการไฮเปอร์โบลาให้อยู่ในรูปสมการ     ก่อน ซึ่งจากสมการไฮเปอร์โบลาที่คุณสุขุมให้มาสามารถแปลงเป็นสมการได้ดังนี้ สมการนี้มีปัญหาเล็กน้อยนั่นคือค่า ซึ่งจะต้องไม่มีค่าอยู่ในช่วง ไม่เช่นนั้นค่า ที่ได้จะเป็นจำนวนเชิงซ้อน วิธีการพล็อตก็ต้องแบ่งการพล็อตออกเป็นสองช่วงคือช่วงที่ค่า และช่วงที่ค่า

CC icons for LaTeX

แพ็กเกจแนะนำวันนี้เป็นแพ็กเกจที่รวบรวมไอคอนของ creative commons ไว้ เพื่อให้คุณสามารถใส่ไอคอนเหล่านี้ลงในเอกสาร LaTeX ของคุณได้  เมื่อเดือนกันยายนที่ผ่านมาเคยเอาสัญลักษณ์พวกนี้ใส่ลงใน beamer ก็ต้องแปลงไฟล์กันเนื่อยเลย แถมรูปที่ได้ไม่สวยดังตั้งใจอีก ใครสนใจก็เชิญไปอ่านเอกสารวิธีการใช้ได้เลยครับ ที่ ccicons

เมื่อ LaTeX กับ Flash Movies มารักกัน

เท่าที่รู้คือ Adobe Reader นั้นมีความสามารถในการแสดง Flash ด้วย (ก็ควรจะเพราะบริษัทเดียวกัน)  สำหรับแฟน LaTeX ผู้ชื่นชอบ Flash ก็สามารถใส่ Flash ลงในเอกสาร pdf ได้ด้วย เราแพ็กเกจ movie15 ที่สามารถใส่ภาพยนต์ในหลาย ๆ รูปแบบ แต่ความสามารถอันหลากหลายก็ต้องแลกด้วยคู่มือขนาด 19 หน้า และการใช้ที่ยุ่งยากพอสมควร  กรณีผู้ใช้ที่ไม่ต้องการความยุ่งยากและต้องการผนวกเฉพาะไฟล์ swf  ลงในเอกสาร pdf นั้น ตัวเลือกที่จะพูดต่อไปนี้น่าจะดีกว่า ที่ CTAN วันนี้มีแพ็กเกจใหม่ที่ชื่อว่า flashmovie ซึ่งเฉพาะเจาะจงเฉพาะ flash วิธีการใช้ก็แสนจะง่ายดาย เพียงแค่ [crayon-5a2e1d1f0f686932435489/]

การแสดงภาพซ้อนภาพ pictures over picture

เรื่องนี้จะเป็นเรื่องแรกที่เขียนสองที่นะครับ ทั้งบน thai-tug และ thailatex โดยในระยะแรกจะเขียนทั้งสองที่ เมื่อเว็บ thai-tug เริ่มอยู่ตัวก็จะเขียนเพียงที่เดียว จะได้ไม่แยกลูกค้ากัน เรื่องนี้ได้รับคำถามจากเพื่อนโดยที่ผมไม่ได้ตอบ และเพื่อนก็จัดการทำเองและได้แนะนำแพ็กเกจ overpic เขียนโดย Rolf Niepraschk ชาวเยอรมันตั้งแต่ปี 1997 และมีการปรับปรุงแก้ไขในสองปีถัดมา ซึ่งแกมีผลงานเกี่ยวกับ LaTeX หลายชิ้นด้วยกัน ที่น่าเศร้าคือไม่มีคู่มือ ถ้าอยากได้คู่มือต้องคอมไพล์เอง ซึ่งคู่มือก็ไม่อธิบายอะไรว่ากันเนื้อ ๆ (จริง ๆ มันคือตัวอย่าง) เริ่มต้นที่การใช้งานแบบสัมพันธ์ง่าย ๆ กันเลยครับ โดยการเริ่มใช้แพ็กเกจ [crayon-5a2e1d1f1105a066966837/] จากนั้นก็ลองใส่รูปดู ในที่นี้ผมมีรูป tina.pdf อยู่ (แพ็กเกจนี้ใช้ได้ทั้ง LaTeX