alt text

Was muss ich tun, damit die Matrizellen horizontal / vertikal zentriert werden?

Öffne in Overleaf
\documentclass[margin=5mm, tikz]{standalone}
\usepackage{tikz}
\usetikzlibrary{matrix}
\usetikzlibrary{shapes.geometric}

\begin{document}

\begin{tikzpicture}[align=center, 
thick, 
%
gsDreieck/.style={
shape=isosceles triangle, isosceles triangle stretches,
draw, rotate=90,
minimum width=0.75cm, minimum height=1.5cm, 
% outer sep=0pt,        inner sep=0pt,        
%anchor=west, 
},
Kreis/.style={circle, draw, minimum width=5mm,},
%
matrixstyle/.style={
matrix of nodes,
nodes in empty cells,
column sep=2em, row sep=1em, 
align=center, %anchor=west,
},
%shape border uses incircle
]

\newcommand{\gsd}[1]{%
\node [gsDreieck, below] (gsD) {};
\node[below=3mm] at (gsD) {#1};%
}
\newcommand{\kr}{\node[Kreis] {};}

\matrix (m)[matrixstyle]
{
Langer Text & \kr       &       &         \\
\gsd{A}     & \gsd{A}   & \dots & \gsd{D} \\
1 & 2   & 3   & 4 \\
};
\end{tikzpicture}

\end{document}

gefragt 18 Sep '18, 00:49

cis's gravatar image

cis
9.5k93459491
Akzeptiert-Rate: 29%


Woher soll denn TikZ bitte wissen, welche Node zentriert werden soll, wenn Du zwei in eine Matrix Zelle packst? Wenn Du nur eine reinpackst, und wenn Du die Label mit label setzt, klappt es natürlich. (Beachte, dass rotate=90 aus left ein below macht. Und Du könntest das wesentlich TikZier machen, indem Du Styles anstatt Macros verwendest, aber ich habe das so gelassen, damit klar ist, wo das Problem lag.)

Öffne in Overleaf
\documentclass[margin=5mm, tikz]{standalone}
\usepackage{tikz}
\usetikzlibrary{matrix}
\usetikzlibrary{shapes.geometric}

\begin{document}

\begin{tikzpicture}[align=center, 
thick, 
%
gsDreieck/.style={
shape=isosceles triangle, isosceles triangle stretches,
draw, rotate=90,
minimum width=0.75cm, minimum height=1.5cm, 
% outer sep=0pt,        inner sep=0pt,        
%anchor=west, 
},
Kreis/.style={circle, draw, minimum width=5mm,},
%
matrixstyle/.style={
matrix of nodes,
nodes in empty cells,
column sep=2em, row sep=1em, 
align=center, %anchor=west,
},
%shape border uses incircle
]

\newcommand{\gsd}[1]{%
\node [gsDreieck,label=left:#1] (gsD) {};
}
\newcommand{\kr}{\node[Kreis] {};}

\matrix (m)[matrixstyle]
{
Langer Text & \kr       &       &         \\
\gsd{A}     & \gsd{A}   & \dots & \gsd{D} \\
1 & 2   & 3   & 4 \\
};
\end{tikzpicture}

\end{document}

alt text

Permanenter link

beantwortet 18 Sep '18, 01:55

Community's gravatar image

Community
21
Akzeptiert-Rate: 56%

1

Ja, stimmt. Das war ein Denkfehler von mir. Die Kommandos müssen so aussehen:

\newcommand{\gsd}[1]{|[gsDreieck,label=left:#1]|} \newcommand{\kr}{|[Kreis]|}

(18 Sep '18, 02:28) cis
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×730
×58
×12

gestellte Frage: 18 Sep '18, 00:49

Frage wurde gesehen: 5,493 Mal

zuletzt geändert: 18 Sep '18, 02:28