Bagaimana menghindari putusnya garis horizontal dan vertikal saat menggunakan multirow dan multicolumn dalam sebuah tabel

Aug 17 2020

Saya memiliki meja yang harus saya taruh di kertas. Garis horizontal dan vertikal adalah garis putus-putus tetapi atasan saya meminta saya untuk menutup garis. Saya tidak bisa memperbaikinya.

\usepackage{tabularx}

  \begin{table}[h]
  \centering
  \caption{my table with broken lines}
  \resizebox{\textwidth}{!}{%
\begin{tabular}{@{}|c|c|c|c|c|c|@{}}
\toprule
\multirow{3}{*}{A}             & \multirow{3}{*}{B}                 & \multicolumn{4}{|c|}{M}                                                                                                               \\ \cmidrule(l){3-6} 
                                   &                                & \multicolumn{2}{|c|}{C}                                        & \multicolumn{2}{|c|}{D}                                          \\ \cmidrule(l){3-6} 
                                   &                                & \multicolumn{1}{|c|}{e}            & \multicolumn{1}{|c|}{f} & \multicolumn{1}{|c|}{e}            & \multicolumn{1}{|c|}{f} \\ \midrule
\multicolumn{1}{|c|}{1}  & \multicolumn{1}{|c|}{a}      & \multicolumn{1}{|c|}{\multirow{4}{*}{100}} & \multicolumn{1}{|c|}{91.02}    & \multicolumn{1}{|c|}{\multirow{4}{*}{90}} & \multicolumn{1}{|c|}{209.2}    \\ \cmidrule(r){1-2} \cmidrule(lr){4-4} \cmidrule(l){6-6} 
\multicolumn{1}{|c|}{2} & \multicolumn{1}{|c|}{b}  & \multicolumn{1}{|c|}{}                   & \multicolumn{1}{|c|}{133.83}   & \multicolumn{1}{|c|}{}                   & \multicolumn{1}{|c|}{239.66}   \\ \cmidrule(r){1-2} \cmidrule(lr){4-4} \cmidrule(l){6-6} 
\multicolumn{1}{|c|}{3}    & \multicolumn{1}{|c|}{b} & \multicolumn{1}{|c|}{}                   & \multicolumn{1}{|c|}{159.73}   & \multicolumn{1}{|c|}{}                   & \multicolumn{1}{|c|}{373.47}   \\ \cmidrule(r){1-2} \cmidrule(lr){4-4} \cmidrule(l){6-6} 
4                              & \multicolumn{1}{|c|}{c}  & \multicolumn{1}{c|}{}                   & \multicolumn{1}{|c|}{144.1}    & \multicolumn{1}{|c|}{}                   & 317.01                        \\ \bottomrule
\end{tabular}
}
  \label{tbl:lbl1}
\end{table}

Tampak seperti ini.

Jawaban

2 Zarko Aug 17 2020 at 13:17

Seperti ini?

\documentclass{article}
\usepackage{makecell, multirow}

\begin{document}
  \begin{table}[h]
  \centering
  \setcellgapes{3pt}
  \makegapedcells
\caption{my table with broken lines}
  \label{tbl:lbl1}
\begin{tabular}{|*{6}{c|}}
    \Xhline{1pt}
\multirow{3.4}{*}{A}
    &   \multirow{3.4}{*}{B}
        &   \multicolumn{4}{c|}{M}                  \\
    \cline{3-6}
    &   &   \multicolumn{2}{c|}{C}
                &   \multicolumn{2}{c|}{D}          \\
    \cline{3-6}
    &   & e & f & e & f                             \\
    \hline
1   & a & \multirow{4.5}{*}{100}
            &  91.02    & \multirow{4.5}{*}{90}   
                                        & 209.2    \\
    \cline{1-2} \cline{4-4} \cline{6-6}
2   & b &   &  133.83   &               &  239.66   \\
    \cline{1-2} \cline{4-4} \cline{6-6}
3   & b &   & 159.73    &              & 373.47    \\
        \cline{1-2} \cline{4-4} \cline{6-6}
4   & c &   & 144.1     &              & 317.01    \\
    \Xhline{1pt}
\end{tabular}
    \end{table}
\end{document}

atau jika Anda ingin memiliki tabel seluas \textwidth, daripada Anda dapat menggunakan tabularxlingkungan tabel (tidak disarankan):

\documentclass{article}
\usepackage{makecell, multirow, tabularx}
\newcolumntype{C}{>{\centering\arraybackslash}X}

\begin{document}
  \begin{table}[h]
  \centering
  \setcellgapes{3pt}
  \makegapedcells
\caption{my table with broken lines}
      \label{tbl:lbl1}
\begin{tabularx}{\linewidth}{|*{6}{C|}}
    \Xhline{1pt}
\multirow{4}{*}{A}             
    &   \multirow{4}{*}{B}                 
        &   \multicolumn{4}{c|}{M}                  \\
    \cline{3-6}
    &   &   \multicolumn{2}{c|}{C} 
                &   \multicolumn{2}{c|}{D}          \\ 
    \cline{3-6}
    &   & e & f & e & f                             \\
    \hline
1   & a & \multirow{5.5}{=}{\centering    100}
            &  91.02    & \multirow{5.5}{=}{\centering 90}   
                            & 209.2    \\
    \cline{1-2} \cline{4-4} \cline{6-6}
2   & b &   &  133.83   &   &  239.66   \\
    \cline{1-2} \cline{4-4} \cline{6-6}
3   & b &   & 159.73    &   & 373.47    \\
        \cline{1-2} \cline{4-4} \cline{6-6}
4   & c &   & 144.1     &   & 317.01    \\
    \Xhline{1pt}
\end{tabularx}
    \end{table}
\end{document}