다중 열 테이블 문제

다중 열 테이블 문제

LaTeX에서 이와 같은 테이블을 얻는 가장 좋은 방법은 무엇입니까?

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

답변1

의 .{NiceArray}nicematrix

\documentclass{article}
\usepackage{nicematrix}

\begin{document}

$\begin{NiceArray}{c|c|c|c}
\Block{1-2}{\scriptstyle S}& \Block{1-2}{\scriptstyle S} & \Block{1-2}{\scriptstyle S} & \\
\hline
1 & 2 & \hphantom{1} & 1 \\
\hline
2 &   & &   \\
\hline
\end{NiceArray}$

\end{document}

첫 번째 코드 출력

열 너비가 동일하지 않은 경우 STikz(및 에서 만든 PGF/Tikz 노드 nicematrix)를 사용하여 위의 수직 규칙을 넣을 수 있습니다.

\documentclass{article}
\usepackage{nicematrix,tikz}

\begin{document}

$\begin{NiceArray}{c|c|c|c}
  \hline
  1 & 2 & 123478 & 1 \\
  \hline
  2 &   & &   \\
  \hline
\CodeAfter
  \tikz \foreach \i in {2,3,4} \node at (1-|\i) [above] { $\scriptstyle S$ } ; 
\end{NiceArray}$

\end{document}

두 번째 코드의 출력

답변2

와 함께 tabularray:

\documentclass{article}
\usepackage{tabularray}
\UseTblrLibrary{amsmath}
\newlength{\mylen}
\settowidth{\mylen}{2}
\newsavebox{\mysep}
\sbox{\mysep}{\scriptsize\bfseries\textit{S}}

\begin{document}
    \begin{tblr}{
        columns={wd=\mylen},
        cells={c,m},
        hline{2-Z}={leftpos=-1, rightpos=-1, endpos},
        vline{2-Y}={2-Z}{},
        vline{2-4}={1}{text=\clap{\usebox{\mysep}}},
        }
        &&&\\
        1&2&&1\\
        2&&&2\\
    \end{tblr}
\end{document}

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

답변3

다음은 두 개의 표를 사용하는 해킹 방법입니다.

암호

\documentclass{article}

\usepackage{tabularx}
\newcolumntype{C}[1]{>{\hspace{0pt}\centering\arraybackslash}p{#1}}

\begin{document}

\noindent
\begin{tabular}{ C{1mm} *{3}{C{4mm}}}
    & S & S & S
\end{tabular}

\noindent
\renewcommand{\arraystretch}{2}
\begin{tabular}{ C{4mm} *{3}{|C{4mm}} }
    \hline
    1 & 2 &   & 1\\ \hline
    2 &   &   & 2\\ \hline
\end{tabular}

\end{document}

결과

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

답변4

-like 환경 에서는 열 유형 사이를 tabular통해 열 구분 기호로 텍스트를 삽입할 수 있습니다 @{}. 반면에 \multicolumn하나의 셀에 대해 열 유형을 재정의할 수 있습니다. 따라서 귀하의 경우 \multicolumn{1}{c@{\clap{$S$}}}첫 번째 행에 매크로 체인을 추가하기만 하면 됩니다 \clap. 너비가 0인 상자를 생성합니다. 그렇지 않으면 S셀 사이의 공간에 영향을 미칩니다.

모든 셀의 너비가 동일한지 확인하기 위해 사용자 정의 열 유형( L, C및 ) 을 정의합니다 R. 하지만 반드시 그런 것이 필요한 것은 아닐 수도 있습니다.

\documentclass{article}
\usepackage{array}
\newcolumntype{C}{>{\centering\arraybackslash}p{0.35cm}}
\newcolumntype{L}{>{\raggedright\arraybackslash}p{0.35cm}}
\newcolumntype{R}{>{\raggedleft\arraybackslash}p{0.35cm}}

\newcommand\mc{\multicolumn{1}{c@{\clap{$S$}}}{}}


\begin{document}
\begin{table}
  \centering
  \begin{tabular}{@{} L *2{|C} | R @{}}
    \mc & \mc & \mc & \\
    \hline
    1 & 2 & & 1 \\
    \hline
    2 &   & & 2 \\
    \hline
  \end{tabular}
\end{table}
\end{document}

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

관련 정보