Quadratische Zellen und Inhalt zentriert

Tabellen und Grafiken erstellen und anordnen


Kaeseknacker
Forum-Newbie
Forum-Newbie
Beiträge: 9
Registriert: Mi 19. Nov 2014, 08:17

Quadratische Zellen und Inhalt zentriert

Beitrag von Kaeseknacker »

Hallo,

ich wuerde gerne eine kleine Tabelle erstellen, deren Zellen moeglichst quadratisch sind und der Inhalt horizontal sowie vertikal zentriert ist. In die Zellen selbst kommen hoechstens einstellige Zahlen mit einem Vorzeichen. Also zwei Zeichen gross.

Im Internet habe ich auch schon eine Loesung zum Zentrieren gefunden, aber fuer mich sieht das nicht sehr zentriert aus. Vielleicht schiele ich auch...

Ausserdem ist mir aufgefallen, dass das Minus Zeichen ja auch gar nicht mittig zur Zahl steht. Ist das immer so? Weil das Minuszeichen sieht zentriert aus, innerhalb der Zelle

Mein Minimalbeispiel:
\documentclass[a4paper, 11pt, headsepline]{scrreprt}
\usepackage[T1]{fontenc}		
\usepackage[ngerman]{babel}		
\usepackage{babelbib}
\usepackage{array}
\newcolumntype{C}[1]{>{\centering\arraybackslash}m{#1}}
\begin{document}
\chapter{Test Tabelle}
\begin{tabular}{|C{0.4cm}|C{0.4cm}|C{0.4cm}|C{0.4cm}|C{0.4cm}|C{0.4cm}|}
  \firsthline
  1 & 2 & 3 & 4 & 5 & 6 \\
  \lasthline
\end{tabular}
\\[0.2cm]
\begin{tabular}{|C{0.4cm}|C{0.4cm}|C{0.4cm}|C{0.4cm}|C{0.4cm}|C{0.4cm}|}
  \hline
  1 &  0 & -1 & -1 &  0 &  1 \\
  \hline
\end{tabular}
\end{document}
Gruss
Kaeseknacker

PS: Das ganze soll ein Array (aus einer Programmiersprache) darstellen. Vielleicht weis ja jemand eine andere schicke Methode um das darzustellen.

Kaeseknacker
Forum-Newbie
Forum-Newbie
Beiträge: 9
Registriert: Mi 19. Nov 2014, 08:17

Beitrag von Kaeseknacker »

Zum Vergleich habe ich die zwei Tabellen nebeneinander gesetzt und gestreckt.
Die erste ist mit
p{...}
und die zweite mit
m{...}
Leider sieht das zweite nicht mittig zentriert aus.

Hier nochmal das MB:
\documentclass[a4paper, 11pt, headsepline]{scrreprt}
\usepackage[T1]{fontenc}			%damit diese richtig im PDF dargestellt werden
\usepackage[ngerman]{babel}			%Fuer deutsche Formatierung: Datum, ", ... 
\usepackage{babelbib}
\usepackage{array}
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}
\newcolumntype{D}[1]{>{\centering\arraybackslash}m{#1}}

\begin{document}

\renewcommand{\arraystretch}{2.5}
\begin{tabular}{|C{0.4cm}|C{0.4cm}|C{0.4cm}|C{0.4cm}|C{0.4cm}|C{0.4cm}|}
  \firsthline
  1 & 2 & 3 & 4 & 5 & 6 \\
  \lasthline
\end{tabular}
\begin{tabular}{|D{0.4cm}|D{0.4cm}|D{0.4cm}|D{0.4cm}|D{0.4cm}|D{0.4cm}|}
  \hline
  1 &  0 & -1 & -1 &  0 &  1 \\
  \hline
\end{tabular}

\end{document}

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

Hier ist mal ein Vorschlag mit einer TikZ Matrix
\documentclass{scrreprt} 
\usepackage{tikz}
\usetikzlibrary{matrix}
\tikzset{
  mymatrix/.style={
    matrix of math nodes,
    row sep=-\pgflinewidth,
    column sep=-\pgflinewidth,
    inner sep=0pt,
    nodes={draw,minimum width=#1,minimum height=#1,font=\mathstrut}
  },
  mymatrix/.default={2em}
}
\begin{document}

\chapter{Test Tabelle}
\tikz\matrix[mymatrix]{1&2&3&4&5&6\\};

\medskip
\noindent\tikz\matrix[mymatrix]{1&0&-1&-1&0&1\\};

\medskip
\noindent\tikz\matrix[mymatrix=2.5em]{10&0&-1&-1&0&1\\};

\end{document}
Gruß
Elke

Kaeseknacker
Forum-Newbie
Forum-Newbie
Beiträge: 9
Registriert: Mi 19. Nov 2014, 08:17

Beitrag von Kaeseknacker »

Hallo Elke,

danke fuer die Antwort, leider laesst sich dein Beispiel bei mir nicht ausfuehren.
Ich erhalte folgende Fehlermeldung:

! Package pgfbasematrix Error: Single ampersand used with wrong catcode.
! Missing number, treated as zero.
! Illegal unit of measure (pt inserted).

Jeweils in den Zeilen, in denen mymatrix verwendet wird.

EDIT:
Konnte das Problem doch selbst beheben. Musste die einzelnen Matrizen folgendermaßen definieren:
\begin{tikzpicture}
\matrix [mymatrix] {1 & 2 & 3 & 4 & 5 & 6\\};
\end{tikzpicture}
Weis nicht, ob das an einer zu alten Version liegt. Verwende TeX Live 2011.

Ich selbst verwende jetzt die Variante mit den Tabellen:
%...
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}
%...
\renewcommand{\arraystretch}{1.5}
\begin{tabular}{|C{0.4cm}|C{0.4cm}|C{0.4cm}|C{0.4cm}|C{0.4cm}|C{0.4cm}|}
  \hline
  1 & -1 & 0 & -1 & -1 & 0 \\
  \hline
\end{tabular}
Durch richtiges Strecken sieht es in Ordnung aus. Warum es aber bei einem größeren Faktor nicht mehr Zentriert ist, bleibt mir ein Rätsel.

Antworten