경고

경고

Latex에서 이와 같은 테이블을 만들고 싶습니다.

여기에 이미지 설명을 입력하세요

이것은 테이블 생성을 위한 스크립트입니다.

\begin{table}
\centering
\caption{Table}
\begin{tabular}{|c|c|l|} \hline
\multirow{3}{*}{DEF}&\multicolumn{3}{|c|}{ ABC} \\ \hline
A&B&C\\ \hline
1& 4 & 7 \\ \hline
2& 5 & 8 \\ \hline
3& 6 & 9 \\ \hline
\end{tabular}
\end{table}

이 스크립트를 실행하면 다음과 같은 오류가 표시됩니다.

! Extra alignment tab has been changed to \cr.<template> \endtemplate ...row{3}{}{DEF}&\multicolumn{3}{|c|}{ ABC}

이 사진과 같은 테이블을 만드는 방법은 무엇입니까?

답변1

다음 템플릿을 해독할 수 있습니다.

\documentclass[preview,border=12pt,12pt]{standalone}
\usepackage{array,multirow}

\let\mc=\multicolumn
\let\mr=\multirow
\let\cl=\cline

\begin{document}
\begin{tabular}{|*6{c|}l}
\cl{3-6}
\mc{2}{c|}{\mr{2}{*}{empty}} & \mc{4}{c|}{Primes} \\\cl{3-6}
\mc{2}{c|}{}                 & 2 & 3 & 5 & 7 \\\cl{1-6}
\mr{2}{*}{Powers}            & 504 & 3 & 2 & 0 & 1 \\\cl{2-6}
                             & 540 & 2 & 3 & 1 & 0 \\\cl{1-6}
\mr{2}{*}{Powers}            & HCF & 2 & 2 & 0 & 0 & min \\\cl{2-6}
                             & LCM & 3 & 3 & 1 & 1 & max \\\cl{1-6}
\end{tabular}
\end{document}

여기에 이미지 설명을 입력하세요

경고

\mr중첩될 수 있지만 \mc그 반대는 불가능합니다!

참고자료

위의 코드는 다음 예제에서 영감을 얻었습니다.위키피디아다음과 같이.

\begin{tabular}{cc|c|c|c|c|l}
\cline{3-6}
& & \multicolumn{4}{ c| }{Primes} \\ \cline{3-6}
& & 2 & 3 & 5 & 7 \\ \cline{1-6}
\multicolumn{1}{ |c  }{\multirow{2}{*}{Powers} } &
\multicolumn{1}{ |c| }{504} & 3 & 2 & 0 & 1 &     \\ \cline{2-6}
\multicolumn{1}{ |c  }{}                        &
\multicolumn{1}{ |c| }{540} & 2 & 3 & 1 & 0 &     \\ \cline{1-6}
\multicolumn{1}{ |c  }{\multirow{2}{*}{Powers} } &
\multicolumn{1}{ |c| }{gcd} & 2 & 2 & 0 & 0 & min \\ \cline{2-6}
\multicolumn{1}{ |c  }{}                        &
\multicolumn{1}{ |c| }{lcm} & 3 & 3 & 1 & 1 & max \\ \cline{1-6}
\end{tabular}

그러나 보고 비교해 보면 내 코드가 훨씬 더 간단하고 잘 리팩터링되었지만 여전히 읽기 쉽습니다. 그렇죠?

답변2

당신이 하려는 일은 다음과 같이 할 수 있습니다:

\documentclass{standalone}
\usepackage{multirow}
\begin{document}
\begin{tabular}{|c|c|c|c|c} \hline
& & \multicolumn{3}{|c|}{ ABC} \\ \hline
& & A&B&C\\ \hline
\multirow{3}{*}{DEF} & D &1& 4 & 7 \\ \cline{2-5}
&E&  2& 5 & 8 \\ \cline{2-5}
&F&  3& 6 & 9 \\ \cline{2-5}
\end{tabular}
\end{document}

하지만! LaTeX는 Excel 스타일 레이아웃보다 훨씬 멋진 테이블을 만들 수 있습니다. 이와 같은 작업을 고려해 보십시오. 열이 3개 이상인 경우에도 보기에 좋습니다.

여기에 이미지 설명을 입력하세요

\documentclass{standalone}
\usepackage{multirow}
\usepackage{booktabs}
\begin{document}
\begin{tabular}{lcccccc} 
\toprule
& \multicolumn{3}{c}{ ABC} & \multicolumn{3}{c}{ ABC} \\\cmidrule(lr){2-4} \cmidrule(lr){5-7}
& A&B&C & A2&B2&C2\\ \midrule
DEF:\\
\;D &1& 4 & 7 &1& 4 & 7 \\ 
\;E&  2& 5 & 8 &1& 4 & 7 \\ 
\;F&  3& 6 & 9 &1& 4 & 7 \\ 
XYZ:\\
\;X &1& 4 & 7 &1& 4 & 7  \\ 
\;Y&  2& 5 & 8 &1& 4 & 7 \\ 
\;Z&  3& 6 & 9 &1& 4 & 7  \\ \bottomrule
\end{tabular}
\end{document}

답변3

\multirow명령은 자체 열에서 작동해야 합니다... 따라서 각 열의 왼쪽에 추가 열을 추가해야 하므로 &테이블의 모든 행의 각 왼쪽에 추가 열과 추가 열 유형이 필요합니다(예를 들어 c) 표 형식의 인수 시작 부분에.

또한 예제의 다중 열은 높이가 3행이어야 하며 행 (1,4,7)에서 시작해야 합니다. 그러나 \hline이 행이나 다음 행 중 하나에 "다중 행" 셀에도 줄을 추가하게 되는데 이는 바람직하지 않습니다. 따라서 우리는 첫 번째부터 마지막까지가 아니라 열 2에서 열 4까지의 줄로 일부 \hlines를 변경해야 합니다 .\cline{2-4}

마지막으로 처음 두 행의 첫 번째 요소로 공백을 추가하여 동작을 에서 으로 \multicolumn{1}{c|}{}변경 하고 왼쪽에서 원치 않는 수직선을 제거할 수 있습니다.|c|c|

\documentclass{article}
\usepackage{multirow}
\begin{document}
\begin{table}
\centering
\caption{Table}
\begin{tabular}{|c|c|c|l|} \cline{2-4}
\multicolumn{1}{c|}{}&\multicolumn{3}{|c|}{ ABC} \\ \cline{2-4}
\multicolumn{1}{c|}{}&A&B&C\\ \hline
\multirow{3}{*}{DEF}&1& 4 & 7 \\ \cline{2-4}
&2& 5 & 8 \\ \cline{2-4}
&3& 6 & 9 \\ \hline
\end{tabular}
\end{table}
 \end{document}

추신: 당신의 실수가 무엇인지 보여주려고 노력했고 테이블을 더 아름답게 보여줄 방법을 찾지 못했습니다.

여기에 이미지 설명을 입력하세요

관련 정보