ใช้ multirow สร้างตารางใน LaTeX

การสร้างตารางถ้าทำใน Words หรือ Writer จะทำได้ง่ายมาก แค่กระดิกนิ้ว 2-3 ทีก็ได้แล้ว แต่ถ้าเป็นใน LaTeX นี่คนละเรื่องเลยนะครับ หน้ามือเป็นหลังเท้าเลย ผมได้มีโอกาสได้ช่วย อ. แปลงเอกสาร .doc เอกสารหนึ่ง ให้เป็น LaTeX แล้วก็ดันไปเจอตารางที่เค้าทำไว้แบบนี้ (ขออนุญาตเปิดเผยข้อมูลผลการทดลองนะครับ -/\-)

"เชี้ย" เป็นคำแรกที่ผมพูดออกมา.. เสียเวลาไปครึ่งวันเพื่อหาวิธีสร้าง แล้วก็ได้เจอ package ช่วยชีวิต นั่นคือ.. multirow นั่นเองครับ ถ้ามี package นี้แล้ว ตารางแบบไหนมาก็ไม่กลัว (มั้ง) บล็อกนี้ไม่ขอสอนอะไรนะครับ ถ้าสงสัยก็ทิ้งคำถามไว้ได้นะ แค่อยากมาเอาโค้ดตารางมาแปะอวดเฉยๆ 😛 โอ้ะ! ขอออกตัวไว้ก่อนนะครับว่าโค้ดตารางที่แปะไว้นี่ไม่ได้สร้างตารางที่เหมือนกันเป๊ะๆ กับตารางตามรูปนะครับ บางเส้นอาจจะไม่มี แต่ผมคิดว่าคงไม่ยากที่จะเอาโค้ดไปแก้ต่อนะ 🙂

ด้านล่างนี้เป็นโค้ดของตารางด้านบนนะครับ

\begin{table}
  \centering
  \begin{tabular}{|c|c|c|c|c|c|c|c|}
    \hline
    \multicolumn{8}{|c|}{Early fire alarm and processing time}\\
    \hline
    \multirow{4}{*}{Video No.}
    & \multirow{3}{*}{First fire}
    & \multicolumn{2}{c|}{Growth rate} 
    & \multicolumn{2}{c|}{Flow rate} 
    & \multicolumn{2}{c|}{Combination}\\
    & \multirow{3}{*}{detected by human}
    & \multicolumn{2}{c|}{method} 
    & \multicolumn{2}{c|}{method} 
    & \multicolumn{2}{c|}{method}\\
    \cline{3-8}
    & & Fire detected & Successful & Fire & Successful 
    & Fire & Successful\\
    & & (Total detected) & detection (\%) & detected  
    & detection (\%) & detected & detection (\%)\\
    \hline
    101 & 1215 & 1233 & 21.08 & 1243 & 18.23 & 1244 & 20.88\\
    \hline
    102 & 948 & 990 & 20.99 & 1030 & 19.46 & 1001 & 20.72\\
    \hline
    103 & 1590 & 1817 & 21.30 & 2056 & 18.97 & 1917 & 20.87\\
    \hline
    104 & 5 & 23 & 21.69 & 43 & 15.49 & 32 & 19.25\\
    \hline
    105 & 5 & 12 & 21.29 & 22 & 15.60 & 21 & 19.67\\
    \hline
    106 & 184 & 210 & 20.96 & 1176 & 15.91 & 223 & 19.56\\
    \hline
    107 & 804 & 1233 & 20.30 & 1544 & 18.32 & 1473 & 20.65\\
    \hline
    108 & 1100 & 1233 & 20.59 & 1276 & 17.86 & 1249 & 20.90\\
    \hline
    109 & 1023 & 1233 & 20.54 & 1299 & 16.88 & 1232 & 20.33\\
    \hline
    110 & 932 & 1233 & 20.10 & 1173 & 19.25 & 1034 & 21.17\\
    \hline
    301 & 26 & 1233 & 22.23 & N/A & 18.10 & N/A & 19.02\\
    \hline
    302 & 932 & 1233 & 21.58 & 1055 & 16.78 & 1066 & 19.43\\
    \hline
    303 & 67 & 1233 & 19.89 & 137 & 14.96 & 142 & 17.99\\
    \hline
    304 & 258 & 1233 & 19.42 & 937 & 14.38 & 712 & 17.08\\
    \hline
    201 &  &  & 19.92 &  & 20.27 &  & 21.36\\
    \hline
    202 &  &  & 19.79 &  & 20.10 &  & 21.04\\
    \hline
    203 &  &  & 19.92 &  & 20.47 &  & 20.96\\
    \hline
    204 &  &  & 20.40 &  & 17.97 &  & 21.46\\
    \hline
    205 &  &  & 20.23 &  & 17.11 &  & 20.53\\
    \hline
    401 &  &  & 20.45 &  & 16.01 &  & 18.16\\
    \hline
    Average &  & 91.71 & 20.63 & 302.15 & 17.61 & 176.31 & 20.05\\
    \hline
  \end{tabular}
  \label{tab:comparison-early-fire-alarm}
\end{table}

ส่วนที่ยากคือส่วนหัวตารางครับ ถ้ามั่วออกมาได้ ส่วนอื่นก็สบายแล้ว มีอีกหนึ่งตารางที่ง่ายกว่าเล็กน้อย ตามรูป

มีโค้ดตามนี้

\begin{table}
  \centering
  \begin{tabular}{|c|c|c|c|c|c|c|}
    \hline
    \multicolumn{7}{|c|}{Check for fire alarm}\\
    \hline
    \multicolumn{1}{|c|}{\multirow{4}{*}{Video No.}}
    & \multicolumn{2}{c|}{Growth rate} 
    & \multicolumn{2}{c|}{Flow rate} 
    & \multicolumn{2}{c|}{Combination}\\
    & \multicolumn{2}{c|}{method} 
    & \multicolumn{2}{c|}{method} 
    & \multicolumn{2}{c|}{method}\\
    \cline{2-7}
    & Fire detected & Successful & Fire & Successful & Fire & Successful\\
    & (Total detected) & detection (\%) & detected  & detection (\%) 
    & detected & detection (\%)\\
    \hline
    101 & 97 (97) & 100.00\% & 62 (62) & 100.00\% & 62 (62) & 100.00\%\\
    \hline
    102 & 45 (47) & 95.74\% & 24 (24) & 100.00\% & 22 (22) & 100.00\%\\
    \hline
    103 & 69 (69) & 100.00\% & 26 (26) & 100.00\% & 35 (35) & 100.00\%\\
    \hline
    104 & 23 (23) & 100.00\% & 15 (15) & 100.00\% & 13 (13) & 100.00\%\\
    \hline
    105 & 15 (15) & 100.00\% & 9 (9) & 100.00\% & 11 (11) & 100.00\%\\
    \hline
    106 & 315 (315) & 100.00\% & 126 (126) & 100.00\% & 150 (150) & 100.00\%\\
    \hline
    107 & 86 (88) & 97.73\% & 34 (34) & 100.00\% & 44 (44) & 100.00\%\\
    \hline
    108 & 18 (19) & 94.74\% & 5 (10) & 50.00\% & 6 (6) & 100.00\%\\
    \hline
    109 & 131 (134) & 97.76\% & 59 (60) & 98.33\% & 73 (73) & 100.00\%\\
    \hline
    110 & 44 (44) & 100.00\% & 6 (6) & 100.00\% & 19 (19) & 100.00\%\\
    \hline
    301 & 3 (3) & 100.00\% & 0 (0) & N/A & 0 (0) & N/A\\
    \hline
    302 & 63 (88) & 71.59\% & 12 (12) & 100.00\% & 15 (15) & 100.00\%\\
    \hline
    303 & 30 (30) & 100.00\% & 11 (11) & 100.00\% & 11 (11) & 100.00\%\\
    \hline
    304 & 160 (161) & 99.38\% & 72 (73) & 98.63\% & 75 (75) & 100.00\%\\
    \hline
    Average & & 96.92\% & & 95.92\% & & 100.00\%\\
    \hline
  \end{tabular}
  \label{tab:comparison-fire-alarm}
\end{table}

หวังว่าจะมีประโยชน์สำหรับคนที่ใช้ LaTeX นะครับ

Author: zkan

Soon to be a newbie data scientist. I ♥ machine learning, computer vision, robotics, image processing, data visualization, and data analytics.

2 thoughts on “ใช้ multirow สร้างตารางใน LaTeX”

  1. โอ้ววว สุดยอด ขอบคุณมากครับ สะดวกกว่ากันเยอะเลย

Leave a Reply

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