두 번째 \multicolumn이 추가되면 테이블 형식의 이상한 동작

두 번째 \multicolumn이 추가되면 테이블 형식의 이상한 동작

그만큼원래 질문표 안에 그림을 배치하고 다음과 같이 조정하는 방법입니다.

2

다음과 유사한 코드를 사용합니다.

\documentclass{article}
\usepackage{graphicx}
\usepackage{array}
\begin{document}
\begin{tabular}{|c|>{\centering\arraybackslash}p{17.5mm}|>{\centering\arraybackslash}p{17.5mm}|c|}
  \includegraphics[width=35mm]{example-image-a} &   \multicolumn{2}{c|}{\includegraphics[width=35mm]{example-image-b}} &  \includegraphics[width=35mm]{example-image-c} \\
\multicolumn{2}{|c}{\includegraphics[width=35mm]{example-image-a}} & \multicolumn{2}{|c|}{\includegraphics[width=35mm]{example-image-b}}
\end{tabular}
\end{document}

어떤 이유로든 다음과 같은 출력이 제공됩니다.

삼

왜 이런 일이 발생합니까?

물론 그런 그림을 배치하는 더 나은 옵션이 있으며 연결된 질문의 대답은 그 중 하나입니다. 그러나 테이블 형식을 사용하여 코드를 개발하면 명령과 함께 사용하면 \multicolumn열이 줄어들고 이는 예상치 못한 일이 될 수 있다는 추가 셀에 대한 몇 가지 사항을 이해하는 데 도움이 됩니다.

답변1

w최근 패키지에 열 유형 이 추가되었다는 점을 알아야 합니다 array. 중앙 정렬이 있는 고정 너비 열(및 맞춤 텍스트 없음)을 사용할 수 있습니다.

w{c}{17.5mm}

서투른 대신에 >{\centering\arraybackslash}{p{17.5mm}.

이제 문제로 돌아갑니다.

두 번째 열은 두 행에서 병합됩니다. 먼저 세 번째 열과 병합된 다음 선행 열과 병합됩니다. 따라서 규칙에 따라 테이블은 해당 열이 처음부터 지정되지 않은 것처럼 작성됩니다. 이것은 출력을 설명합니다.

6개의 동일한 열이 필요합니다.

\documentclass{article}
\usepackage{graphicx}
\usepackage{array}
\begin{document}

\begin{tabular}{@{} *{6}{w{c}{17.5mm}} @{}}
  \multicolumn{2}{c}{\includegraphics[width=35mm]{example-image}} &
  \multicolumn{2}{c}{\includegraphics[width=35mm]{example-image}} &
  \multicolumn{2}{c}{\includegraphics[width=35mm]{example-image}} \\
  &
  \multicolumn{2}{c}{\includegraphics[width=35mm]{example-image}} &
  \multicolumn{2}{c}{\includegraphics[width=35mm]{example-image}} &
\end{tabular}

\end{document}

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

답변2

  1. 첫 번째 단계...

    좋아, 나는 5개의 그림을 가지고 있고 위쪽에 3개, 아래쪽에 2개가 필요합니다. 배치를 제어하고 싶습니다... 테이블 형식이 나에게 좋은 솔루션인 것 같습니다...

생각 해봐:

맨 위에 3개: 첫 번째 행은 중앙에 정렬되고 공간을 공유하기 위해 두 번째 행 {ccc} 에서는 셀을 분할할 것입니다 ... 하지만...\multicolumn

\begin{tabular}{ccc}
\include..&\include..&\include..\\
\multicolumn{2}{c}&\multicolumn{2}{c}
\end{tabular}

오! 두 번째 글을 쓰면서 \multicolumn4열이 되었다는 걸 깨달았어요... 컴파일도 하지 마세요...

네 번째 열이 필요한 것 같습니다.

해보자:

  1. 두번째 단계...네 개의 열:

상단 중간 열을 다음과 같이 분할하겠습니다 \multicolumn.

\begin{tabular}{cccc}
\include...&\multicolumn{2}{c}{\include...}&\include...\\ %Nice... Let's finish with the next row
\multicolumn{2}{c}{\include...}&\multicolumn{2}{c}{\include}
\end{tabular}

위쪽 줄 4개 다음 줄 4개... 완벽해요! 컴파일해보자

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

제가 계산을 잘못한 것 같네요... 계산해 보겠습니다...

  • 4행 위의 셀 가운데 2가 병합됨
  • 행 2 및 2 셀 아래...

두 번째 행의 첫 번째 셀이 두 번째 행과 병합되지 않는 이유는 무엇입니까? 이렇게 하면 다섯 번째와 같이 첫 번째 열 두 개를 중심으로 네 번째 그림이 표시됩니다. 왜 그럴까요?

다섯 번째 열을 추가해야 합니까?

보자:

\begin{tabular}{cccc}
1&2&3&4\\
\include...&\multicolumn{2}{c}{\include...}&\include...\\ %Nice... Let's finish with the next row
\multicolumn{2}{c}{\include...}&\multicolumn{2}{c}{\include}
\end{tabular}

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

네 번째 이미지는 두 번째 열 앞에서 멈춥니다... 생각해 봅시다... 5개의 열이 필요한가요?

  1. 세 번째 단계...거기에 수직선을 볼까요? 버그를 보고하기 전에... 하지만 그래야 합니다!

전체 코드:

\documentclass{article}
\usepackage{graphicx}
\usepackage{xcolor}
\begin{document}
\begin{tabular}{|c|c|c|c|}
1&2&3&4\\
  \includegraphics[width=35mm]{example-image-a} &   \multicolumn{2}{c}{\includegraphics[width=35mm]{example-image-b}} &  \includegraphics[width=35mm]{example-image-c} \\
\multicolumn{2}{|c}{\includegraphics[width=35mm]{example-image-a}} & \multicolumn{2}{|c|}{\includegraphics[width=35mm]{example-image-b}}
\end{tabular}
\end{document}

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

버그 리포트가 필요합니다... 하지만...

알았어... 알 것 같아:

두 번째 열에는 세 번째 열의 너비가 없습니다... 물론... 거기에는 너비가 필요하지 않습니다... 너비를 추가해 보겠습니다.

... 좋습니다. 두 중간 열 모두에 중앙에 17.5mm를 추가하겠습니다.

\documentclass{article}
\usepackage{graphicx}
\usepackage{array}
\begin{document}
\begin{tabular}{|c|>{\centering\arraybackslash}p{17.5mm}|>{\centering\arraybackslash}p{17.5mm}|c|}
  \includegraphics[width=35mm]{example-image-a} &   \multicolumn{2}{c|}{\includegraphics[width=35mm]{example-image-b}} &  \includegraphics[width=35mm]{example-image-c} \\
\multicolumn{2}{|c}{\includegraphics[width=35mm]{example-image-a}} & \multicolumn{2}{|c|}{\includegraphics[width=35mm]{example-image-b}}
\end{tabular}
\end{document}

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

왜 나야???stackexchange에 물어보자... 나는 여기서 나왔다!

  1. 더 이상 단계가 없습니다: 몇 가지 설명:

거기에 1&2&3&4 행을 추가해 보겠습니다.

\documentclass{article}
\usepackage{graphicx}
\usepackage{array}
\begin{document}
\begin{tabular}{|c|>{\centering\arraybackslash}p{17.5mm}|>{\centering\arraybackslash}p{17.5mm}|c|}
1&2&3&4\\
  \includegraphics[width=35mm]{example-image-a} &   \multicolumn{2}{c|}{\includegraphics[width=35mm]{example-image-b}} &  \includegraphics[width=35mm]{example-image-c} \\
\multicolumn{2}{|c}{\includegraphics[width=35mm]{example-image-a}} & \multicolumn{2}{|c|}{\includegraphics[width=35mm]{example-image-b}}
\end{tabular}
\end{document}

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

완벽해요... 그런데 무슨 일이 일어났나요?

LaTeX는 필요한 최대 셀이 행당 3개였기 때문에 단 3개의 열만 사용했습니다... 그래서 첫 번째 열은 단일 열이었고 실제로는 다중 열이 아니었습니다... 이러한 도움말 번호를 추가함으로써... 우리는 실제로 운이 좋았습니다. 무슨 일이 일어났는지 알아냈어...

더 간단한 예를 통해 살펴보겠습니다.

\documentclass{article}
\usepackage{graphicx}
\usepackage{parskip}
\usepackage{array}
\setlength{\parskip}{0.5cm}

\begin{document} 


Just four columns:

\begin{tabular}{|c|c|c|c|}\hline
test&\multicolumn{2}{c|}{test}&test\\\hline
test&test&test&test\\\hline
\end{tabular}

\vspace{1cm}

If we decide to replace with a \verb|\multicolumn| the first two columns of the second row\ldots we can (inocently) imagine the above table to be like:

\begin{verbatim}
    | test |     test     | test |
    ----------------------------
    |     test     | test | test |
\end{verbatim}

BUT we get:

\begin{tabular}{|c|c|c|c|}\hline
test&\multicolumn{2}{c|}{test}&test\\\hline
\multicolumn{2}{|c|}{test}&test&test\\\hline
\end{tabular}

Because now the first \verb|multicolumn| makes the first row three columns size and the second places the ``\verb|multicolumned|'' cells as one cell under the first cell of the first row!
\end{document}

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

따라서 이전의 "실패" 사례에서는 다음을 수행할 수 있습니다.

빈 셀(그러나 모든 셀)이 있는 전체 행을 추가합니다...

그런 다음 다음을 사용하여 줄의 추가 수직 공간을 제거합니다 [-1em].

또한 몇 가지 간단한 생각으로 두 번째 행 셀은 첫 번째 열과 마지막 열의 추가 너비 때문에 중앙에 배치되어서는 안 됩니다. 더 나은 선택 일 수도 r있고 더 나은 선택일 수도 있습니다. 그리고 고정 너비가 도움이 될 것입니다... 동일한 거리도 ( 행 사이에서):l\tabcolsep\tabcolsep

\documentclass{article}
\usepackage{graphicx}
\usepackage{array}
\begin{document}
\setlength{\tabcolsep}{1mm}
\begin{tabular}{c>{\centering\arraybackslash}p{17.5mm}>{\centering\arraybackslash}p{17.5mm}c}
    &&&\\[-1em]
\includegraphics[width=35mm]{example-image-a} &   \multicolumn{2}{c}{\includegraphics[width=35mm]{example-image-b}} &  \includegraphics[width=35mm]{example-image-c} \\[1mm]
\multicolumn{2}{r}{\includegraphics[width=35mm]{example-image-a}} & \multicolumn{2}{l}{\includegraphics[width=35mm]{example-image-b}}
\end{tabular}
\end{document}

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

그런데 왜 더 간단한 표(3개 열)로 만들지 않았습니까?

\documentclass{article}
\usepackage{graphicx}
\begin{document}
\setlength{\tabcolsep}{1mm}
\begin{tabular}{ccc}
\includegraphics[width=35mm]{example-image-a}& \includegraphics[width=35mm]{example-image-b}&\includegraphics[width=35mm]{example-image-c}\\[1mm]
\multicolumn{3}{c}{\includegraphics[width=35mm]{example-image-a}\hspace{2mm}\includegraphics[width=35mm]{example-image-b}}
\end{tabular}
\end{document}

좋아요... 영리해요!

하지만@egreg의 답변더 똑똑해!!! 적어도 나는 문제를 발견했습니다!

추신: 내 "이중 게시물"에는 조정자의 주의가 필요합니다. 하지만 첫 번째 질문은 그림 배치에 관한 것이었고 여기서는 그렇지 않은 내용이 있다는 것을 방금 알았기 때문에 예외라고 생각하며 이 사이트에 제공해야 합니다. 다른 곳에서 찾았는데 유용하고 tabulars... \multicolumn두 게시물 중 하나를 삭제해야 한다면 여기가 나에게 더 유용해 보이기 때문에 첫 번째 게시물(원래 질문에 대한 내 대답)을 삭제하는 것이 더 나은 선택이 될 것이라고 생각합니다. 따라서 (검토자) 삭제 신고를 하기 전에 댓글을 추가해 주시기 바랍니다.

관련 정보