答案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}
如果您的列寬度不同,您可以S
使用 Tikz (以及由nicematrix
)建立的 PGF/Tikz 節點將上面的垂直規則放置起來。
\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
在tabular
類似的環境中,可以透過@{}
列類型之間插入文字作為列分隔符號。另一方面,\multicolumn
可以為一個儲存格重新定義列類型。因此,在您的情況下,您只需要\multicolumn{1}{c@{\clap{$S$}}}
在第一行添加一系列宏\clap
- 建立零寬度框,否則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}