
Kann ich diese Art von Tabelle in LaTeX erstellen?
Ich möchte die Antworten auf diese Tabelle anwenden:
\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}
Antwort1
Da ich das Gefühl hatte, dass es eher einem Bild ähnelt, habe ich es folgendermaßen codiert 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}
Auch das Hinzufügen von Text könnte nicht einfacher sein!
Sehen Sie sich dieses Beispiel an:
\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}
Aktualisieren
Was die endgültige bearbeitete Version der Frage betrifft, hier ist eine weitere TikZ
Implementierung, die jede Tabellengröße akzeptiert:
\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}
Der erste \foreach
durchläuft ungerade Zahlen von 1
bis 2*#columns-1
und der zweite \foreach
durchläuft ungerade Zahlen von 1
bis 2*#rows-1
. Außerdem \x/6
sind Vielfache einer halben Spaltenbreite und \x/24
sind Vielfache einer halben Zeilenhöhe. Tabellenzeilen werden im \mytable
Befehl nur einmal eingegeben.
Antwort2
Hier erstelle ich ein eigenes Makro \Dcell[]
, das als Komponente eines TABstacks verwendet werden soll, um die Tabelle zu erstellen. Ich räume die Möglichkeit ein, den Elementen mit dem optionalen Argument to Text hinzuzufügen \Dcell
. Am Anfang der Datei stehen 3 Benutzerparameter:
\rlwd
die Breite der Eckregeln
\rlln
die Länge der Eckregeln
\cellhgap
der leere Abstand zwischen den beiden Ecklinien (der vertikale Abstand wird automatisch angepasst, um die Zelle quadratisch zu halten).
Offensichtlich \cellhgap + 2\rlln
muss die breiteste Texteingabe größer sein.
Zwar ist eine kleine Präambeleinrichtung erforderlich, die tatsächliche Verwendung ist jedoch ziemlich trivial.
\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}