Respuesta1
Con {NiceArray}
de 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}
Si sus columnas no tienen el mismo ancho, puede poner las S
reglas verticales anteriores usando Tikz (y los nodos PGF/Tikz creados por 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}
Respuesta2
Con 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}
Respuesta3
Aquí hay una forma ingeniosa de utilizar dos tablas.
Código
\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}
Resultado
Respuesta4
En tabular
entornos similares, es posible insertar textos como separadores de columnas @{}
entre tipos de columnas. Por otro lado, \multicolumn
puede redefinir un tipo de columna para una celda. Por lo tanto, en su caso solo necesita agregar una cadena de \multicolumn{1}{c@{\clap{$S$}}}
macros en la primera fila; \clap
crea un cuadro de ancho cero; de lo contrario, S
afectaría el espacio entre las celdas.
Solo para asegurarme de que todas las celdas tengan el mismo ancho, defino tipos de columnas personalizadas L
: C
y R
. Pero es posible que no necesariamente lo necesites.
\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}