The Power of TikZ

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

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

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

Read More →
Ghostscript 9.00 และ 3D with Pstricks

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

Read More →
Inkscape 0.48 with new LaTeX export feature

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

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

ปัญหาอย่างหนึ่งของคนใช้ LaTeX ก็คือ เห็นสมการในรูปแบบห่วย ๆ เส้นแตก รูปไปถึงรูปที่เส้นแตกไม่ชัดเจน แล้วจะมีอาการเวียนหัวทันที  ดังนั้นผู้ใช้งาน LaTeX สิ่งหนึ่งที่ต้องวิ่งหาคือโปรแกรมวาดรูปแบบเวกเตอร์ที่ใส่สมการได้ ซึ่งมีหลายตัว และแต่ละตัวก็ใช้งานยาก ๆ ทั้งนั้น วันนี้จะขอนำเสนอ WinFig ไม่ได้ยุ่งอะไรเกี่ยวกับโปรแกรมวาดรูปตระกูล XFig ซะนาน เพราะช่วงนี้ไม่ได้เขียนบทความวิชาการเลย แต่ถ้าทำความเข้าใจถึงวิธีการใช้แล้วก็อาจจะ "ติดใจ" ก็ได้ เหมือนคนทั่วไปที่ทนใช้โปรแกรมบางตัวเพราะติดกับคีย์ลัด หรือรูปแบบการทำงานต่าง ๆ ทั้ง ๆ ที่ ๆ มันก็สรุปไม่ได้ว่ามันดีกว่ากันหรือเปล่า ยกตัวอย่างเช่นผมติดการใช้  WinEDT เป็นต้น  ในการใช้ WinFig ก็ดาวน์โหลดแล้วติดตั้งแบบโปรแกรมทั่วไปตามปกติ เวอร์ชันทดลองใช้งานได้ 15 วัตถุ(object) ก็มากพอสำหรับทดสอบ ก่อนอื่นต้องอธิบายเรื่องการฝังสมการคณิตศาสตร์ ซึ่งทำได้ง่าย ๆ โดยการคลิ๊กใช้งานวัตถุ Text ที่เป็นรูปตัว T แล้วจะมีตัวเลือกให้ที่แถมด้านขวามือ จากนั้นให้กดเลือกฟอนต์ เลือกแทป LaTeX Font แล้วก็เลือก […]

Read More →
hyperbola plot with TikZ
วาด hyperbola ด้วย TikZ

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

วิธีการพล็อตก็ต้องเปลี่ยนสมการไฮเปอร์โบลาให้อยู่ในรูปสมการ     ก่อน ซึ่งจากสมการไฮเปอร์โบลาที่คุณสุขุมให้มาสามารถแปลงเป็นสมการได้ดังนี้ สมการนี้มีปัญหาเล็กน้อยนั่นคือค่า ซึ่งจะต้องไม่มีค่าอยู่ในช่วง ไม่เช่นนั้นค่า ที่ได้จะเป็นจำนวนเชิงซ้อน วิธีการพล็อตก็ต้องแบ่งการพล็อตออกเป็นสองช่วงคือช่วงที่ค่า และช่วงที่ค่า และเนื่องจากรากของสมการมีทั้งค่าบวกและลบ ดังนั้นเวลาพล็อตต้องพล็อตทั้งค่าบวกและลบ สำหรับการวาดรูปโดยใช้ TikZ นั้นให้เริ่มต้นด้วยการเรียกใช้แพ็กเกจ pgfplot กำหนดสิ่งแวดล้อม axis และกำหนด xlabel, ylabel และ title ซึ่งจะมากำหนดทีหลังจากที่ได้พล็อตกราฟจนพอใจแล้วก็ได้ จากตัวอย่างข้างต้นคำสั่ง […]

Read More →
CC icons for LaTeX

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

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

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

คุณก็จะได้เอกสารที่มีภาพเคลื่อนไหวในรูป flash ได้ ดูตัวอย่างได้ที่ test.pdf ไฟล์เล็กนิดเดียว

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

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

จากนั้นก็ลองใส่รูปดู ในที่นี้ผมมีรูป tina.pdf อยู่ (แพ็กเกจนี้ใช้ได้ทั้ง LaTeX และ pdfLaTeX) โดยเรียกดูรูปดังนี้

โดยบอกให้รูปแสดงเส้นกริดและมีตัวเลขกำกับทุก ๆ 10% ผลที่ได้จะเป็นดังรูปข้างล่าง จากรูปเราจะเห็นเส้นกริดพร้อมตำแหน่งกำกับเป็นตัวเลข ก็เป็นหน้าที่ของเราแล้วที่จะวางรูป ซึ่งสามารถทำได้ง่าย ๆ ดังนี้

ซึ่งผลลัพธ์ที่ได้ก็แสดงดังรูปข้างล่าง […]

Read More →