
tikz로 상태 머신 다이어그램을 생성하는 동안 중심에서 벗어난 것으로 나타났습니다. 이 결과는 모든 노드가 동일한 반경과 다양한 각도를 갖는 foreach 구성을 사용하여 다이어그램이 생성된 방식으로 인해 직관적이지 않은 것 같습니다. 또한 좌표 (0,0)에 단일 노드를 배치했지만 중앙에 있지 않은 것 같습니다. 문제를 보여주는 실제 예제를 아래에 제공합니다. 제가 놓치고 있는 논리적인 설명이 분명 있을 거라 확신하며, 아마도 여기 누군가가 무슨 일이 일어나고 있는지 설명할 수 있을 것입니다.
\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}
답변1
코드를 컴파일하면 다음과 같은 경고가 표시됩니다. Overfull \hbox (26.08575pt too wide)
이는 이미지가 텍스트 너비보다 넓어서 여백을 기준으로 중앙에 위치하지 않는 것처럼 보인다는 의미입니다. 이미지를 더 작게 만들 scale=0.9
려면 \begin{tikzpicture}
.
또한 이전 명령은 더 이상 사용되지 않으므로 \tikzstyle
명령을 by로 바꿔야 합니다 .\tikzset{every state/.append style={fill=blue!20,draw=blue!50,very thick,text=black,minimum size=1cm}}