
Beim Erstellen eines Zustandsdiagramms mit Tikz ist mir aufgefallen, dass es nicht zentriert zu sein scheint. Dieses Ergebnis erscheint mir aufgrund der Art und Weise, wie das Diagramm erstellt wurde, kontraintuitiv: Es wurde eine foreach-Konstruktion verwendet, bei der alle Knoten den gleichen Radius und unterschiedliche Winkel haben. Ich habe auch einen einzelnen Knoten an der Koordinate (0,0) platziert, aber dieser scheint nicht zentriert zu sein. Unten stelle ich ein funktionierendes Beispiel bereit, das das Problem zeigt. Ich bin sicher, dass es eine logische Erklärung geben muss, die ich irgendwie übersehe, und vielleicht kann hier jemand erklären, was los ist
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{cmbright}
\usepackage{pgf}
\usepackage{tikz}
\usetikzlibrary{arrows.meta,automata,positioning,calc}
\begin{document}
Indented text
\noindent Unindented text
\begin{figure}[h]
\centering
\begin{tikzpicture}[-Stealth,shorten >=1pt,semithick]
\tikzstyle{every state}=[fill=blue!20,draw=blue!50,very thick,text=black,minimum size=1cm]
\def \n {8}
\def \radius {6cm}
\node[state] (c) at (0,0) {};
\foreach \s/\stext in {1/1,2/2\_1,3/3,4/4,5/5,6/6,7/7,8/8}
{
\node[state] (\s) at ({-360/\n * (\s - 1)+90}:\radius) {\stext};
}
\end{tikzpicture}
\end{figure}
\end{document}
Antwort1
Wenn ich Ihren Code kompiliere, erhalte ich die folgende Warnung: Overfull \hbox (26.08575pt too wide)
Das bedeutet, dass Ihr Bild breiter als die Textbreite ist und daher in Bezug auf die Ränder nicht zentriert zu sein scheint. Um das Bild kleiner zu machen, können Sie die scale=0.9
Option hinzufügen \begin{tikzpicture}
.
Sie sollten den \tikzstyle
Befehl auch durch ersetzen \tikzset{every state/.append style={fill=blue!20,draw=blue!50,very thick,text=black,minimum size=1cm}}
, da ersterer veraltet ist.