เรื่องวุ่น ๆ เกี่ยวกับตาราง ตอนที่ 3 multirow with color

ในตอนที่แล้วได้นำเสนอการสร้างตารางที่มีการผสานตารางในแนวตั้งด้วยแพ็กเกจ multirow ไปแล้ว ซึ่งตอนเก่า ๆ ติดตามได้จาก

ในตอนนี้จะเกี่ยวการใช้สี ถ้าใครยังจำการใช้ Word ได้ ก็คงจะจำได้ว่าการใส่ตารางในเอกสาร Word นั้น ง่ายดายมาก แถมยังมีแม่แบบให้เลือกมากมาย และก็จะมีการใช้สีเพื่อให้ง่ายต่อการมองเห็นด้วย (ทั้ง ๆ ที่ขณะนั้นเครื่องพิมพ์สียังอยู่ห่างไกลความจริงพอสมควร) สำหรับ LaTeX และพวกพ้องก็มีการใช้สีสำหรับตารางด้วย

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

เมื่อเลือกแล้วเราก็จะสามารถใส่สีลงในตารางได้อย่างง่ายดาย   ส่วนตัวเลือก svgnames นั้นเป็นการใช้ชื่อสีที่ทำไว้แล้ว ซึ่งรายชื่อสีก็ดูได้จากคู่มือของ xcolor ในบทที่ว่าด้วย color by names


จากรูปข้างบน ถ้าผมต้องการให้มีการสลับระหว่างสี LighGreen กับสีขาว ผมก็จะใสคำสั่งข้างล่างนี้ไว้ก่อนคำสั่ง begin{tabular} ดังนี้

โดยที่ตัวเลือกแรกที่เป็นเลขหนึ่ง คือการบอกว่า แถวแรกที่เราจะใส่สีคือแถวที่เท่าไหร่ ส่วนตัวเลือกที่สอง ในที่นี้คือ white ก็คือสีของแถวเลขคี่ และตัวเลือกที่สาม LightGreen ก็คือสีของแถวเลขคู่ ผลลัพธ์ที่ได้จะออกมาแบบรูปข้างล่าง

ซึ่งจะเห็นว่าน่าเกลียดมาก เพราะสีไม่ได้เป็นไปตามที่เราต้องการ โดยเฉพาะส่วนที่เป็นการผสานแถว  ถ้าต้องการในส่วนของ Defender และ Forward เป็นสี LightGreen ก็ให้ลบคำสั่ง rowcolor ข้างบนออก แล้วทำดังนี้

ตัวหนังสือสีแดงคือส่วนของรหัสต้นที่เพิ่มเข้าไป จะเห็นได้ว่าจะต้องใส่คำสั่ง rowcolor{LightGreen} เข้าไปในทุก ๆ แถวที่ต้องการใช้สีนี้ ในส่วนของคำสั่ง multirow นั้นจะต้องใส่ทีหลังสุด ไม่เช่นนั้นสีจะไปทับตัวหนังสือซึ่งจะเห็นได้ว่าผมใส่ลงในตำแหน่งล่างสุดที่ต้องการจะผสานแถว แล้วเปลี่ยนเลขสีเป็นเลขลบสี่แทน ซึ่งเราก็จะได้ผลตามรูปข้างล่าง

รูปที่ลงให้ดูมันมีปัญหานิดหน่อยนะครับ ของจริงเส้นขอบสีดำจะไม่โดนสี LightGreen ทับ

วันนี้ก็ขอจบเนื้อหาในเรื่องนี้ไว้แค่นี้นะครับ หวังว่าจะมีประโยชน์บ้าง

8 Responses to เรื่องวุ่น ๆ เกี่ยวกับตาราง ตอนที่ 3 multirow with color

  1. k_sukhum says:

    แหล่ม ...

  2. k_sukhum says:

    ขอช่วยดูเรื่องยืดตารางให้เต็มหน้ากระดาษหน่อยสิครับ

    เป็นเรื่องเดียวเลยที่คาใจ........มากกกกกกก....เลยครับ

    หาวิธีทำไม่ได้ซ๊ากกกก...ที

    ขอบคุณครับ

  3. tsvhh says:

    ไว้ซักพักครับ ช่วยนี้ไม่ค่อยว่างเลยจริง ๆ

  4. k_sukhum says:

    ขอบคุณครับ

  5. admin says:

    คงต้องถามคุณสุขุมอีกครั้งเกี่ยวกับเรื่องยืดตารางครับ ว่าวัตถุประสงค์คืออะไร
    จะได้ค้นคำตอบให้ถูกได้ครับ

    • k_sukhum says:

      ทำพวกใบเสนอราคา ใบสั่งซื่อ ใบรับของ พวกนี้แหละครับ

      โดยมากจะทำบน excel แต่ผมจะย้ายงานไปบน latex ให้หมดหน่ะครับ

      เพราะ latex มีสิ่งที่ office ไม่มีคือ "มันโปรแกรมได้ดั่งใจ"

      ขอบคุณครับ

      • admin says:

        มีคนแนะนำว่าใช้ Gnucash ดีที่สุดสำหรับ invoice ครับ ส่วน LaTeX มีแพ็กเกจสองตัวคือ invoice กับ isodoc ลองดูนะครับ

Leave a Reply

Your email address will not be published. Required fields are marked *