Сегментированная таблица

Сегментированная таблица

введите описание изображения здесь

Можно ли создать такую ​​таблицу в LaTeX?


Я хотел бы применить ответы к этой таблице:

\documentclass[10pt]{article}

\usepackage[left=1cm,right=1.5cm,top=1cm, bottom=3.5cm]{geometry}

\begin{document}

\begin{tabular}{|l|l|l|}
\hline
text & text & text \\ 
\hline
text & text & text \\ 
\hline
text & text & text \\ 
\hline
text & text & text \\ 
\hline
text & text & text \\ 
\hline
text & text & text \\ 
\hline
text & text & text \\ 
\hline
text & text & text \\ 
\hline
text & text & text \\ 
\hline
text & text & text \\ 
\hline
text & text & text \\ 
\hline
text & text & text \\ 
\hline
\end{tabular}

\end{document}

решение1

введите описание изображения здесь

Почувствовав, что это больше похоже на картинку, я закодировал ее так TikZ:

\documentclass[tikz,border=2pt]{standalone}
\usetikzlibrary{positioning,calc}

\begin{document}
\begin{tikzpicture}[tp/.style={minimum height=6cm+2\pgflinewidth,minimum width=1cm,fill=white},line width=1pt]

\node[minimum size=6cm,inner sep=0pt,draw] (big) {};
\draw (big.180)--(big.0)(big.90)--(big.-90);

\node[tp] at ($(big.center)!.5!(big.0)$) {};
\node[tp] at ($(big.center)!.5!(big.180)$) {};
\node[tp,rotate=90] at ($(big.center)!.5!(big.90)$) {};
\node[tp,rotate=90] at ($(big.center)!.5!(big.-90)$) {};
\end{tikzpicture}
\end{document}

Кроме того, добавлять текст еще проще!

введите описание изображения здесь

Посмотрите этот пример:

\documentclass[tikz,border=2pt]{standalone}
\usetikzlibrary{positioning,calc}
\begin{document}

\begin{tikzpicture}[BL/.style={draw=blue,line width=1cm,shorten >=-1pt,shorten <=-1pt},line width=1pt]

\node[minimum size=6cm,inner sep=0pt,draw] (big) {};
\draw (big.180)--(big.0)(big.90)--(big.-90);

\draw[BL]($(big.90)!.5!(big.135)$)--($(big.-90)!.5!(big.-135)$);
\draw[BL]($(big.90)!.5!(big.45)$)--($(big.-90)!.5!(big.-45)$);    
\draw[BL]($(big.180)!.5!(big.135)$)--node[pos=.25,fill=white]{Cell no. 11}node[pos=.75,fill=white]{Cell no. 12}($(big.0)!.5!(big.45)$);
\draw[BL]($(big.180)!.5!(big.-135)$)--node[pos=.25,fill=white]{Cell no. 21}node[pos=.75,fill=white]{Cell no. 22}($(big.0)!.5!(big.-45)$);

\end{tikzpicture}

\end{document}

Обновлять

Что касается окончательно отредактированной версии вопроса, вот еще одна TikZреализация, которая принимает любой размер таблицы:

введите описание изображения здесь

\documentclass[10pt]{article}
\usepackage{tikz,colortbl}
\usetikzlibrary{positioning,calc}
\begin{document}

\newcommand{\mytable}[1]{\ifnum#1>0\hline\else\fi
text & text & text \\ \ifnum#1>0\hline\else\fi
text & text & text \\ \ifnum#1>0\hline\else\fi
text & text & text \\ \ifnum#1>0\hline\else\fi
text & text & text \\ \ifnum#1>0\hline\else\fi
text & text & text \\ \ifnum#1>0\hline\else\fi
text & text & text \\ \ifnum#1>0\hline\else\fi
text & text & text \\ \ifnum#1>0\hline\else\fi
text & text & text \\ \ifnum#1>0\hline\else\fi
text & text & text \\ \ifnum#1>0\hline\else\fi
text & text & text \\ \ifnum#1>0\hline\else\fi
text & text & text \\ \ifnum#1>0\hline\else\fi
text & text & text \\ \ifnum#1>0\hline\else\fi
}
\newcolumntype{W}{>{\color{white}}l}

\begin{tikzpicture}[shorten >=-1pt,shorten <=-1pt]
\node[draw,inner sep=0pt](table){%
\begin{tabular}{|W|W|W|}
\mytable{1}
\end{tabular}};

\foreach \x in {1,3,5}
\draw[white,line width=.3cm] ($(table.north west)!\x/6!(table.north east)$)--($(table.south west)!\x/6!(table.south east)$);
\foreach \x in {1,3,...,23}
\draw[white,line width=.1cm] ($(table.north west)!\x/24!(table.south west)$)--($(table.north east)!\x/24!(table.south east)$);

\setlength{\extrarowheight}{.4pt}
\node at (table.center){\noindent%
\begin{tabular}{lll}
\mytable{0}
\end{tabular}};    
\end{tikzpicture}

\end{document}

Первый \foreachцикл по нечетным числам от 1до 2*#columns-1, а второй \foreachцикл по нечетным числам от 1до 2*#rows-1. Кроме того, \x/6кратны половине ширины столбца и \x/24кратны половине высоты строки. Строки таблицы вводятся в \mytableкоманду только один раз.

решение2

Здесь я создаю свой собственный макрос \Dcell[], который будет использоваться как компонент TABstack, для создания таблицы. Я допускаю возможность добавления текста к элементам с помощью необязательного аргумента \Dcell. В верхней части файла есть 3 пользовательских параметра:

\rlwdширина угла правила

\rllnправила длины угла

\cellhgapпустой зазор между двумя угловыми линейками (вертикальный зазор автоматически регулируется, чтобы сохранить квадратную форму ячейки).

Очевидно, \cellhgap + 2\rllnчто он должен превышать самую широкую текстовую запись.

Хотя здесь и есть небольшая вводная часть, фактическое использование довольно тривиально.

\documentclass{article} 
\usepackage{tabstackengine}
\def\rlwd{.4pt}
\def\rlln{3ex}
\def\cellhgap{3ex}
\def\cellfield{\dimexpr\cellhgap + 2\dimexpr\rlln}
\def\cellvgap{.5\dimexpr\cellhgap-\ht\strutbox\relax}
\setstackEOL{\cr}
\setstackgap{S}{-\rlwd}
\fixTABwidth{T}
\newcommand\Dcell[1][]{\protect\Dcellraw{#1}}
\newcommand\Dcellraw[1]{%
 \stackunder[\cellvgap]{%
  \stackon[\cellvgap]{\makebox[\cellfield]{\strut#1}}{%
    \rule[\dimexpr-\rlln+\rlwd\relax]{\rlwd}{\rlln}\rule{\rlln}{\rlwd}%
    \hspace{\cellhgap}%
    \rule{\rlln}{\rlwd}\rule[\dimexpr-\rlln+\rlwd\relax]{\rlwd}{\rlln}}%
 }{%
    \rule{\rlwd}{\rlln}\rule{\rlln}{\rlwd}%
    \hspace{\cellhgap}%
    \rule{\rlln}{\rlwd}\rule{\rlwd}{\rlln}%
 }\kern-\dimexpr\rlwd%
}
\begin{document}
\tabbedShortstack{
  \Dcell[xyz]&\Dcell\cr
  \Dcell[z]&\Dcell[abcdefg]
}
\end{document}

введите описание изображения здесь

Связанный контент