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

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

เรื่องนี้คงไม่ใช้เรื่องแปลก เพราะคำว่า user กับ power user ของเยอรมันนั้นไม่มีความแตกต่าง (ซึ่งต่างจากหลาย ๆ ประเทศที่ user กับ ยูสโง่ ไม่ต่างกันเท่าไหร่ ผมก็เป็นเพราะขี้เกียจอ่านคู่มือ) ยกตัวอย่างง่าย ๆ ครับ ธุรการในมหาวิทยาลัยของเยอรมันจะใช้ word เก่งอาจารย์เป็นสิบเท่า เพราะธุรการเหล่านี้อ่านคู่มือ และมีการอบรมกันโดยผู้ใช้เอง (การอบรมกลุ่มย่อยกันเองเป็นเรื่องที่ปกติสำหรับประเทศนี้) คนในประเทศนี้ส่วนใหญ่ก็จะเก่งในเรื่องที่ตัวเองรู้(เท่านั้น) นี่คือข้อดีของประเทศนี้ แต่ข้อเสียก็เต็มไปหมดและรับไม่ได้เหมือนกัน กลับมาที่ beamer ที่โยงกับย่อหน้านี้นิดหน่อยว่า beamer นั้นใช้ยาก แต่เราจะเห็นโปรเฟสเซอร์แก่ ๆ ในเยอรมัน สามารถใช้มันได้เหมือนกับ power user ในขณะที่ถ้าเป็นประเทศอื่นบางประเทศหล่ะก็ ธุรการ หรือ ลูกน้องทำให้ (แน่ ๆ)

บทความชุดนี้ สร้างขึ้นมาเพื่อให้เราสามารถสร้างผลงานด้วย TikZ ได้เหมือนกับกินบะหมี่สำเร็จรูป (แน่นอนคู่มือลักษณะนี้จะหนาพันหน้า ในขณะที่คู่มือต้นฉบับหนาแค่สองร้อยหน้า)

แผนภาพง่าย ๆ เบื้องต้น
เริ่มต้นเราต้องวางแผนก่อน เช่นโหนดที่เราจะใช้นั้นควรจะมีรูปร่างหน้าตาอย่างไร ชื่ออะไร ตัวอย่างถ้าผมต้องการแผนภาพแบบในรูปข้างล่าง

จะเห็นได้ว่าโหนดแต่ละอันนั้นเป็นรูปสี่เหลี่ยมผืนผ้าขอบโค้ง  ถ้าต้องการวาดแผนภาพแบบนี้ จะต้องมีการเรียกแฟ้มคำสั่ง (library) ก่อน ในกรณีนี้ที่จำเป็นมีสามตัวคือ

Continue reading

Advertisements

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 ต้องทำอะไรบ้าง

\documentclass[a4paper]{report}
\usepackage{pst-solides3d}
\begin{document}
\pagestyl{empty}
\begin{pspicture}(-1,-1)(2,2)
    \psset{viewpoint=100 30 20,Decran=100}
    \psSolid[
        r1=2.5,r0=1.5,
        object=tore,
        ngrid=18 36,
        fillcolor=green!30,
        action=draw*]%
    \axesIIID[showOrigin=true](1,1,1)(10,5,3)
\end{pspicture}
\end{document}

จะเห็นว่าเราใช้คำสั่งเพียงไม่กี่คำสั่งก็สามารถสร้างรูปโดนัท รสชาเขียวที่มีแกน x y z ดังรูปข้างล่าง

อนึ่งในการแปลงเอกสารให้เป็น pdf นั้นจะต้องใช้คำสั่งตามลำดับดังนี้ latex->dvips->ps2pdf ตามลำดับ แน่นอนถ้าคอมไพล์เอกสารทุกครั้งที่ทำการแก้ไขเอกสารจะทำให้การคอมไพล์เอกสารนั้นช้ามาก ๆ (เนื่องจากการวาดรูป) แนะนำให้สร้างไฟล์รูปโดด แล้วแปลงเฉพาะรูปเป็น pdf ไฟล์เพื่อใช้ประกอบเอกสารอีกที ขั้นตอนทำง่าย ๆ ดังนี้ (ทุก ๆ โปรแกรมย่อยนั้นมากับ Ghostscript อยู่แล้ว ถ้าติดตั้งถูก จะเรียกใช้จากที่ไหนก็ได้)

  1. สร้างเอกสารแบบ report แล้วตั้งค่าหน้าเป็น \pagestyle{empty}
  2. คอมไพล์เอกสารแล้วสร้างไฟล์ ps
  3. ไปที่คอมมานด์วินโดว ของวินโดวส์ แล้วใช้คำสั่ง
    ps2epsi donut.ps donut.eps

    ในกรณีที่ไฟล์ที่ต้องการแปลงชื่อ donut.ps การทำเช่นนี้เราจะได้รูป eps ที่มีขนาดเท่ากับส่วนของรูปภาพเท่าไม่ใช่ขนาด A4

  4. แปลงรูป eps เป็น pdf โดยใช้คำสั่ง
    epstopdf donut.eps

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

อนึ่งเวลานำรูปไปใช้กับ pdflatex บน MikTeX ครั้งแรกอาจจะมีปัญหา เนื่องจากขาดไฟล์บางไฟล์ ให้ลองไปที่คอมมานด์วินโดว แล้วสั่ง

pdflatex donutpic.tex

ในกรณีที่ไฟล์เอกสารคือ donutpic.tex ไฟล์ที่ขาดจะถูกโหลดโดยอัตโนมัติถ้าเครื่องต่ออินเทอร์เน็ตไว้

โดยส่วนตัวผมว่าส่วนขยายของ pstricks นี้มีประโยชน์มาก ๆ สำหรับครู อาจารย์ ที่ต้องวาดรูปพวกนี้ เพราะมันอ้างอิงกับสมการคณิตศาสตร์ได้ และไม่ต้องไปเรียนรู้โปรแกรมขนาดใหญ่ให้ยุ่งยาก รูปพื้นฐานต่าง ๆ ก็มีมาให้หมด แค่ปรับแก้ตัวเลขเท่านั้นเอง

WinFIG 4.62 fixes a rendered LaTeX equation bug

หลายคนที่ใช้ WinFIG 4.61 แล้วปรากฏว่ามันไม่แสดงสมการในรูปแบบที่ควรจะแสดงตามที่ผมเคยโม้ไว้ใน WinFig ใช้ยาก แต่อาจจะคุ้ม ส่วนตัวก็มีปัญหาแบบเดียวกันแต่ไม่ได้แจ้งผู้เขียนโปรแกรมไป ด้วยความขี้เกียจ เป็นที่น่ายินดีที่มีคนแจ้งไปแล้วและผู้เขียนโปรแกรมก็ได้แก้ไขแล้วออกเวอร์ชัน 4.62 มาให้ใช้ ผมลองดูแล้วใช้งานได้ดี พูดกันตามตรงในขณะที่โปรแกรมขนาดยักษ์เชื่องช้าอย่าง Inkscape มีตัวเลือกสำหรับ LaTeX ให้ใช้ และแจกฟรีด้วย ถ้า WinFIG ยังขายในราคาแบบนี้ แทนที่จะแจกฟรีแล้วใช้วิธีการรับบริจาคแทนหละก็ ตัวโปรแกรมคงไม่มีใครใช้ (การขายโปรแกรมในราคาขนาดที่คนเขียน WinFIG ขาย มันก็ควรจะมีบริการหลังการขายที่ดีกว่านี้)

อย่างไรก็ตามการที่มันมีการแสดงผลสมการแบบเห็นจริง เห็นจัง และตัวโปรแกรมมีขนาดเล็กเหมาะกับการใช้งานเล็ก ๆ น้อย ๆ แบบนี้ มันก็ยังเป็นตัวเลือกที่น่าสนใจ เอาใจช่วยให้คนเขียนแจกฟรี

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 ว่าทำได้หรือยัง ซึ่งจริง ๆ ควรจะทำได้ตั้งนานแล้ว เพราะมีคนทำโปรแกรมเสริมประเภทนี้ออกมานานพอสมควร และข่าวดีก็มีจริงแล้วครับ เพราะในเวอร์ชันนี้มีการสนับสนุนการแปลงไฟล์ให้อยู่ในรูปแบบ pdf/ps/eps ซึ่งแยกจากไฟล์ข้อความเหมือนใน XFig เราลองมาดูกันดีกว่า ว่ามันทำงานได้ดีแค่ไหน

Continue reading

Export Simulink Diagram to use in LaTeX Document

ภาพจาก Simulink ของ Matlab เป็นหนึ่งในภาพที่การจับภาพจากหน้าจอไปลงเอกสารได้รับความนิยมมาก ๆ ส่วนใหญ่ก็จะได้กรอบของหน้าต่างติดมาด้วย พอมาใช้ในเอกสารจริง การย่อขยายรูปภาพก็จะทำให้ได้รูปที่ดูไม่ดีนัก จริง ๆ แล้วถ้าดูเอกสารของ Simulink บริษัท Mathworks นั้นจะไม่พบว่ามีการจับภาพจากหน้าจอมาใส่แต่อย่างใด ในบทความนี้จะนำเสนอวิธีการดึงรูปจาก Simulink ในรูปแบบเวกเตอร์มาใส่เอกสารบน LaTeX ให้ได้รูปที่ดี และสามารถใช้ได้ทั้ง LaTeX และ pdfLaTeX

Continue reading

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

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

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

Continue reading

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

เรื่องนี้จะเป็นเรื่องแรกที่เขียนสองที่นะครับ ทั้งบน thai-tug และ thailatex โดยในระยะแรกจะเขียนทั้งสองที่ เมื่อเว็บ thai-tug เริ่มอยู่ตัวก็จะเขียนเพียงที่เดียว จะได้ไม่แยกลูกค้ากัน

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

\usepackage[percent]{overpic}  % บอกระยะเป็นเปอร์เซ็นต์
(ค่าตั้งต้น) หรือ
\usepackage[permil]{overpic}   % บอกระยะต่อมิลลิเมตร

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

\begin{overpic}[scale=.25,grid,tics=10]{tina}
\end{overpic}

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

ใครอยากสร้าง Barcode แบบต่าง ๆ เชิญทางนี้เลย

pst-barcode

ตอนนี้ได้เพิ่มการสร้าง barcode แบบต่าง ๆ ให้ครบถ้วนยิ่งขึ้น  ดีจริง ๆ

barcodetestรูปข้างบนคือตัวอย่างบาร์โค้ดสองมิติ โดยใส่ข้อมูลบางอย่างเอาไว้ อย่างรู้ก็ลองเอาโปรแกรมที่สามารถอ่านบาร์โค้ดสองมิติแบบนี้อ่านดูนะครับ

Fancy Table with TikZ

ชอบมาก ๆ อีก  การใช้ tikz ทำให้การใช้งาน LaTeX เริ่มมีสีสันขึ้นมามากขึ้น

http://texblog.net/latex-archive/graphics/tikz-table/

fancy tables with TikZ
ภาพจากลิงค์ข้างต้น

ไว้จะมาเขียนรายละเอียดทีหลัง ตอนนี้ยุ่ง

ข่าวอีกข่าวที่น่าสนใจคือ KDE 4.3 for windows ออกได้หลายวันแล้ว ตัว Okular document viewer ของ KDE ใช้งานในการดูเอกสาร pdf ได้ดีและเร็วขึ้นแล้ว

Side by Side Pictures

เวลาต้องการจัดภาพแบบเป็นตารางนั้นจำเป็นมาก ๆ สำหรับรูปภาพที่มีความเกี่ยวเนื่องกัน
ซึ่งเรื่องอย่างนี้ผู้ใช้ LaTeX มาพอสมควรก็จะรู้ว่ามีแพ็คเกจชื่อ subfig (ใช้แทน subfigure)
ตัวอย่างที่หนึ่งของการใช้ subfig คือการวางรูปข้าง ๆ กัน

\begin{figure}
\centering
\subfloat{\includegraphics{figure1}}
\qquad
\subfloat{\includegraphics{figure1}}
\caption{test xfig}
\end{figure}

ซึ่งผลลัพธ์ที่ได้ก็เป็นไปตามรูปข้างล่างsubfig1

แต่ปกติแล้วไม่มีใครใช้วิธีนี้หรอกครับ เพราะว่าเวลาอธิบายต้องบอกว่ารูปทางซ้ายคืออะไร
รูปทางขวาคืออะไร คนอ่านอาจจะงงอีกว่าจริง ๆ คือต้องหันหน้าเข้าหรือหันหน้าออกจาก
หนังสือ วิธีที่นิยมกว่าคือใส่ตัวอักษรกำกับ

\begin{figure}
\centering
\subfloat[ ]{\includegraphics{figure1}}
\qquad
\subfloat[ ]{\includegraphics{figure1}}
\caption{test xfig}
\end{figure}

ซึ่งก็เหมือนวิธีแรกเพียงแต่ใส่วงเล็บก้ามปูหลังคำสั่ง \subfloat เท่านั้น จะได้รูปดังนี้

subfig2

ถ้าอยากได้ตัวอักษรกำกับภาพเป็นตัวอักษรไทยก็ใช้ \usepackage[thai]{babel} คู่กับ
\renewcommand{\thesubfigure}{\thaialph{subfigure}} ซึ่งใส่ไว้ตรงไหนก็ได้
แต่ถ้าต้องการเปลี่ยนตั้งแต่เริ่มต้นเอกสารก็วางไว้ก่อน \begin{document} จะได้ผล
ตามรูปข้างล่าง

subfig3

ถ้าต้องการใส่คำอธิบายแยกย่อยลงไปในแต่ละภาพก็เพิ่มอีกนิดนึงครับ

\begin{figure}
\centering
\subfloat[รูปซ้าย]{\includegraphics{figure1}}
\qquad
\subfloat[รูปขวา]{\includegraphics{figure1}}
\caption{test xfig}
\end{figure}

ซึ่งจะได้ผลดังนี้

subfig4

ยังมีรูปแบบการใช้อีกคือกรณีที่ต้องการให้คำอธิบายในสารบัญรูปสั้นกว่าคำอธิบายที่รูป
จริง ๆ ก็ทำได้โดย \subfloat[สารบัญรูป][ที่รูปภาพ]{\includegraphics{figur1}} ซึ่ง
คำในวงเล็บแรกจะไปปรากฎในสารบัญรูป ส่วนคำในวงเล็บที่สองจะอยู่ที่รูป

เรื่องต่อมาที่สำคัญคือการอ้างอิงข้าม (cross reference) ปกติถ้าเราใส่ \label{xxx} ที่
caption ของรูปหลัก เวลาเราอ้างอิงก็จะได้เลขอ้างอิงของรูปหลัก ถ้าเอาง่ายเราก็ใส่ (ก)
ดังนี้ \ref{xxx}(ก) ซึ่งก็ง่ายดี แต่ไม่ใช่หลักของการอ้างอิงข้ามของ LaTeX ปกติแล้วถ้า
เราเปลี่ยนแปลงลำดับของรูป หรือตำแหน่งในเอกสาร เลขอ้างอิงพวกนี้ต้องเปลี่ยนตามด้วย
สำหรับกรณีนี้ทำได้โดย

\subfloat[รูปที่ 1\label{subfig:xxx}]{\includegraphics{figure1}}

ซึ่งจะเห็นว่าเราใส่ \label เข้าไปในวงเล็บก้ามปู ทีนี้เวลาอ้างอิงก็ทำได้โดยการใ้ช้คำสั่ง
\subref{subfig:xxx} แทนที่จะใช้คำสั่ง \ref เฉย (ตรงนี้ถ้าไม่เข้าใจให้ถามเพิ่มเติม
นะครับ)

เป็นอันว่าเรื่องราวของ subfig จบเพียงเท่านี้ ส่วนกรณีที่่ต้องการวางรูปที่ไม่เกี่ยวข้อง
กันข้าง ๆ กัน แล้วมีคำอธิบายใต้รูปแยกกันนั้นไม่แนะนำให้ใช้ (การทำนั้นทำได้โดย
การใส่ minipage ใน figure อีกที)