เรื่องวุ่น ๆ เกี่ยวกับตาราง ตอนที่ 1


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

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

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

\begin{table}[!htb]
   \centering
   \caption{xxxxxxx}
   \begin{tabular}{ccc}
   .... & .... &
   \end{tabular}
\end{table}

การใช้สิ่งแวดล้อม table ก็เป็นการทำให้ตารางเป็นวัตถุที่ลอยอยู่ในเอกสาร แล้วตัว LaTeX จะจัดที่อยู่ที่เหมาะสมให้อีกทีหนึ่ง ซึ่งการจัดให้ของ LaTeX จะไม่ค่อยเป็นสิ่งที่เราปรารถณาเท่าไหร่ ทางแก้ง่าย ๆ ก็คือใส่ตัวเลือก [!htb] ให้กับตาราง ตัวเลือกนี้เป็นการแนะนำให้ LaTeX เลือกตำแหน่งของตารางตามลำดับดังนี้ !h คือตำแหน่งที่เราใส่ตารางในรหัสของ LaTeX ส่วน t และ b คือส่วนบนและล่างของหน้ากระดาษตามลำดับ

สำหรับตัวอย่างแรกที่แนะนำเป็นดังนี้ครับ (อนึ่งเส้นตั้งจริง ๆ ไม่ควรมีนะครับ แต่ในกรณีนี้เป็นตัวอย่าง)

การสร้างตารางแบบนี้ทำอย่างไร ดูตัวอย่างรหัสต้นข้างล่างได้เลยครับ

\begin{table}[!htb]
\centering
\begin{tabular}{|c|l|l|}
\hline
Number & \multicolumn{2}{c|}{Team sheet} \\
\hline
1 & GK & Paul Robinson \\ \hline \hline
\multicolumn{3}{|c|}{Defender} \\ \hline\hline
2 & LB & Lucus Radebe \\
3 & DC & Michael Duberry \\
6 & DC & Dominic Matteo \\
12 & RB & Didier Domi \\ \hline\hline
\multicolumn{3}{|c|}{Midfilder} \\ \hline\hline
8 & MC & David Batty \\
17 & MC & Eirik Bakke \\
10 & MC & Jody Morris \\
15 & FW & Jamie McMaster \\ \hline\hline
\multicolumn{3}{|c|}{Forwarder} \\ \hline\hline
18 & ST & Alan Smith \\
9 & ST & Mark Viduka \\
\hline
\end{tabular}
\end{table}
  • ตัวเลือก {|c|l|l|} คือสร้างตารางแบบสามคอลัมน์ โดยคอลัมน์แรกตัวหนังสืออยู่กึ่งกลาง ส่วนคอลัมน์ถัด ๆ ไปนั้นจะอยู่ชิดซ้าย โดยมีการตีเส้นแนวตั้งด้วย
  • การตีเส้นคู่ในแนวนอนนั้นทำได้โดยการใช้คำสั่ง \hline\hline
  • การผสานเซลล์ (merge cell) ในแนวนอนนั้น ทำได้โดยการใช้คำสั่ง \multicolumn{จำนวนคอลัมน์ที่ต้องการผสาน}{การจัดวางตัวอักษรในคอลัมน์}{ข้อความที่ต้องการ}
    • จำนวนคอลัมน์ที่ต้องการผสานจะต้องไม่เกิดจำนวนคอลัมน์ ในตัวอย่างนี้คือ 3
    • การจัดวางตัวอักษรในคอลัมน์ก็ตามปกติคือ r, c, l นั้นก็คือ ชิดขวา ตรงกลาง และชิดซ้าย ตามลำดับ

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

วันนี้แค่นี้ก่อนเพื่อตัวบทความจะได้ไม่ยาวเกินไปครับ

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s