
나는 큰 게임 트리를 작성했습니다.오토마타패키지) 가로 모드로 표시해야 합니다. 나는 이미 두 가지를 모두 사용하려고 시도했습니다.텍스트포스그리고기하학(newgeometry 명령) 패키지가 있지만 긍정적인 결과가 없습니다. 게임 트리의 오른쪽 부분이 제대로 표시되도록 그림을 왼쪽으로 이동해야 합니다. 어떤 제안이 있으십니까? 그리고 세로모드로 맞추는 방법도 있으면 더 좋을 것 같아요. 코드는 다음과 같습니다.
\documentclass[12pt]{exam}
\usepackage{tikz}
\usepackage{pgf}
\usepackage{geometry}
\usepackage{textpos}
\usepackage{pdflscape}
\usetikzlibrary{external,automata,trees,positioning,shadows,arrows,shapes.geometric}
\begin{document}
\begin{landscape}
\begin{tikzpicture}[->,>=stealth',shorten >=1pt,auto,node distance=2.8cm,
semithick]
\tikzstyle{every state}=[fill,draw=none,green,text=white,circular drop shadow]
\tikzstyle{accepting}=[circle split, draw,text=black,inner sep=0.08cm]
\tikzstyle{initial}=[red,text=white]
\node[state,initial] (N0) {Nature};
\node[state] (N1) [below left of=N0,xshift=-5cm] {Nature};
\node[state] (F1) [below left of=N1] {R\&G};
\node[state] (K1) [below right of=N1] {R\&G};
\node[state] (FS1) [below left of=F1] {H};
\node[accepting] (FN1) [above left of=F1] {\phantom{1}};
\node[state] (KS1) [below right of=K1] {H};
\node[accepting] (KN1) [above right of=K1] {\phantom{1}};
\node[accepting] (FSC1) [below left of=FS1] {\phantom{1}};
\node[accepting] (FSN1) [above left of=FS1] {\phantom{1}};
\node[accepting] (KSC1) [below right of=KS1] {\phantom{1}};
\node[accepting] (KSN1) [above right of=KS1] {\phantom{1}};
\path(N1) edge node[ above left, pos=.20]{feed Hamlet} node[ below right, pos=.30]{0} (F1)
edge node[above right, pos=.20]{kill Hamlet} node[below left, pos=.30]{1} (K1);
\path(F1) edge node[above left,pos=.5]{escort} (FS1) edge node[ left]{don't}(FN1);
\path(K1) edge node[above right,pos=.5]{escort} (KS1) edge node[ right]{don't}(KN1);
\path(FS1) edge node[above left]{change} (FSC1) edge node[ left]{don't}(FSN1);
\path(KS1) edge node[above right]{change} (KSC1) edge node[ right]{don't}(KSN1);
\path(K1) edge[thick,dotted,-](F1);
\node[state] (N)[below right of=N0,xshift=5cm] {Nature};
\node[state] (F) [below left of=N] {R\&G};
\node[state] (K) [below right of=N] {R\&G};
\node[state] (FS) [below left of=F] {H};
\node[accepting] (FN) [above left of=F] {\phantom{1}};
\node[state] (KS) [below right of=K] {H};
\node[accepting] (KN) [above right of=K] {\phantom{1}};
\node[accepting] (FSC) [below left of=FS] {\phantom{1}};
\node[accepting] (FSN) [above left of=FS] {\phantom{1}};
\node[accepting] (KSC) [below right of=KS] {\phantom{1}};
\node[accepting] (KSN) [above right of=KS] {\phantom{1}};
\path(N) edge node[ above left, pos=.20]{feed Hamlet} node[ below right, pos=.30]{0} (F)
edge node[above right, pos=.20]{kill Hamlet} node[below left, pos=.30]{1} (K);
\path(F) edge node[above left,pos=.5]{escort} (FS) edge node[ left]{don't}(FN);
\path(K) edge node[above right,pos=.5]{escort} (KS) edge node[ right]{don't}(KN);
\path(FS) edge node[above left]{change} (FSC) edge node[ left]{don't}(FSN);
\path(KS) edge node[above right]{change} (KSC) edge node[ right]{don't}(KSN);
\path(K) edge[thick,dotted,-](F);
\end{tikzpicture}
\end{landscape}
\end{document}
답변1
\resizebox
이 매크로를 사용하면 텍스트 크기가 조정되므로 솔루션이 없습니다 . 나는 당신과 같은 조경 환경을 사용하려고 노력합니다. 문제는 이 트리를 큰 문서에서 사용해야 하는지 아니면 단독으로 사용해야 하는지 아는 것입니다.
1) parindent=0pt
추가 수평 공간.
2) \eject\null
상자를 세로 모드로 새 페이지에 놓으십시오. 이제 \vfill
상자 주위에서 사용할 수 있습니다 .
3) \hspace*{-4cm}
수업 시험에서 사용하는 레이아웃이 정확히 무엇인지 모르기 때문에 왼쪽 여백 없이 상자를 중앙에 배치하기 좋은 치수를 손으로 검색합니다.
4) 여기서는 2.8cm 대신 2.5cm를 조금 줄였습니다 node distance
. 다시 줄일 수도 있지만 이 경우에는 일부 텍스트의 위치를 변경해야 합니다.
\documentclass[12pt]{exam}
\usepackage{tikz}
\usepackage{geometry}
\usepackage{pdflscape}
\usepackage{graphicx}
\usetikzlibrary{external,automata,trees,positioning,shadows,arrows,shapes.geometric}
\newlength\Textht
\setlength\Textht{\textheight}
\begin{document}
\begin{landscape}
\parindent=0pt
\eject\null
\vfill
\hspace*{-4cm}
\begin{tikzpicture}[->,>=stealth',shorten >=1pt,auto,node distance=2.5cm,
semithick]
\tikzstyle{every state}=[fill,draw=none,green,text=white,circular drop shadow]
\tikzstyle{accepting}=[circle split, draw,text=black,inner sep=0.08cm]
\tikzstyle{initial}=[red,text=white]
\node[state,initial] (N0) {Nature};
\node[state] (N1) [below left of=N0,xshift=-5cm] {Nature};
\node[state] (F1) [below left of=N1] {R\&G};
\node[state] (K1) [below right of=N1] {R\&G};
\node[state] (FS1) [below left of=F1] {H};
\node[accepting] (FN1) [above left of=F1] {\phantom{1}};
\node[state] (KS1) [below right of=K1] {H};
\node[accepting] (KN1) [above right of=K1] {\phantom{1}};
\node[accepting] (FSC1) [below left of=FS1] {\phantom{1}};
\node[accepting] (FSN1) [above left of=FS1] {\phantom{1}};
\node[accepting] (KSC1) [below right of=KS1] {\phantom{1}};
\node[accepting] (KSN1) [above right of=KS1] {\phantom{1}};
\path(N1) edge node[ above left, pos=.20]{feed Hamlet} node[ below right, pos=.30]{0} (F1)
edge node[above right, pos=.20]{kill Hamlet} node[below left, pos=.30]{1} (K1);
\path(F1) edge node[above left,pos=.5]{escort} (FS1) edge node[ left]{don't}(FN1);
\path(K1) edge node[above right,pos=.5]{escort} (KS1) edge node[ right]{don't}(KN1);
\path(FS1) edge node[above left]{change} (FSC1) edge node[ left]{don't}(FSN1);
\path(KS1) edge node[above right]{change} (KSC1) edge node[ right]{don't}(KSN1);
\path(K1) edge[thick,dotted,-](F1);
\node[state] (N) [below right of=N0,xshift=5cm] {Nature};
\node[state] (F) [below left of=N] {R\&G};
\node[state] (K) [below right of=N] {R\&G};
\node[state] (FS) [below left of=F] {H};
\node[accepting] (FN) [above left of=F] {\phantom{1}};
\node[state] (KS) [below right of=K] {H};
\node[accepting] (KN) [above right of=K] {\phantom{1}};
\node[accepting] (FSC) [below left of=FS] {\phantom{1}};
\node[accepting] (FSN) [above left of=FS] {\phantom{1}};
\node[accepting] (KSC) [below right of=KS] {\phantom{1}};
\node[accepting] (KSN) [above right of=KS] {\phantom{1}};
\path(N) edge node[ above left, pos=.20]{feed Hamlet} node[ below right, pos=.30]{0} (F)
edge node[above right, pos=.20]{kill Hamlet} node[below left, pos=.30]{1} (K);
\path(F) edge node[above left,pos=.5]{escort} (FS) edge node[ left]{don't}(FN);
\path(K) edge node[above right,pos=.5]{escort} (KS) edge node[ right]{don't}(KN);
\path(FS) edge node[above left]{change} (FSC) edge node[ left]{don't}(FSN);
\path(KS) edge node[above right]{change} (KSC) edge node[ right]{don't}(KSN);
\path(K) edge[thick,dotted,-](F);
\end{tikzpicture}%
\hfill
\vfill
\end{landscape}
\end{document}
답변2
\resizebox
패키지 에서 사용할 수 있습니다 graphicx
. 가로 모드에서는 너비와 높이가 바뀌므로 \textheight
크기 조정을 위한 새 너비로 원본을 사용해야 합니다 .
\documentclass[12pt]{exam}
\usepackage{tikz}
\usepackage{geometry}
\usepackage{graphicx}
\usetikzlibrary{external,automata,trees,positioning,shadows,arrows,shapes.geometric}
\newlength\Textht
\setlength\Textht{\textheight}
\begin{document}
\begin{landscape}
\null\vfill
\noindent\resizebox{\Textht}{!}{%
\begin{tikzpicture}[->,>=stealth',shorten >=1pt,auto,node distance=2.8cm,
semithick]
\tikzstyle{every state}=[fill,draw=none,green,text=white,circular drop shadow]
\tikzstyle{accepting}=[circle split, draw,text=black,inner sep=0.08cm]
\tikzstyle{initial}=[red,text=white]
\node[state,initial] (N0) {Nature};
\node[state] (N1) [below left of=N0,xshift=-5cm] {Nature};
\node[state] (F1) [below left of=N1] {R\&G};
\node[state] (K1) [below right of=N1] {R\&G};
\node[state] (FS1) [below left of=F1] {H};
\node[accepting] (FN1) [above left of=F1] {\phantom{1}};
\node[state] (KS1) [below right of=K1] {H};
\node[accepting] (KN1) [above right of=K1] {\phantom{1}};
\node[accepting] (FSC1) [below left of=FS1] {\phantom{1}};
\node[accepting] (FSN1) [above left of=FS1] {\phantom{1}};
\node[accepting] (KSC1) [below right of=KS1] {\phantom{1}};
\node[accepting] (KSN1) [above right of=KS1] {\phantom{1}};
\path(N1) edge node[ above left, pos=.20]{feed Hamlet} node[ below right, pos=.30]{0} (F1)
edge node[above right, pos=.20]{kill Hamlet} node[below left, pos=.30]{1} (K1);
\path(F1) edge node[above left,pos=.5]{escort} (FS1) edge node[ left]{don't}(FN1);
\path(K1) edge node[above right,pos=.5]{escort} (KS1) edge node[ right]{don't}(KN1);
\path(FS1) edge node[above left]{change} (FSC1) edge node[ left]{don't}(FSN1);
\path(KS1) edge node[above right]{change} (KSC1) edge node[ right]{don't}(KSN1);
\path(K1) edge[thick,dotted,-](F1);
\node[state] (N)[below right of=N0,xshift=5cm] {Nature};
\node[state] (F) [below left of=N] {R\&G};
\node[state] (K) [below right of=N] {R\&G};
\node[state] (FS) [below left of=F] {H};
\node[accepting] (FN) [above left of=F] {\phantom{1}};
\node[state] (KS) [below right of=K] {H};
\node[accepting] (KN) [above right of=K] {\phantom{1}};
\node[accepting] (FSC) [below left of=FS] {\phantom{1}};
\node[accepting] (FSN) [above left of=FS] {\phantom{1}};
\node[accepting] (KSC) [below right of=KS] {\phantom{1}};
\node[accepting] (KSN) [above right of=KS] {\phantom{1}};
\path(N) edge node[ above left, pos=.20]{feed Hamlet} node[ below right, pos=.30]{0} (F)
edge node[above right, pos=.20]{kill Hamlet} node[below left, pos=.30]{1} (K);
\path(F) edge node[above left,pos=.5]{escort} (FS) edge node[ left]{don't}(FN);
\path(K) edge node[above right,pos=.5]{escort} (KS) edge node[ right]{don't}(KN);
\path(FS) edge node[above left]{change} (FSC) edge node[ left]{don't}(FSN);
\path(KS) edge node[above right]{change} (KSC) edge node[ right]{don't}(KSN);
\path(K) edge[thick,dotted,-](F);
\end{tikzpicture}%
}
\vfill
\end{landscape}
\end{document}
\vfill
또한 수직으로 중앙에 배치하기 위해 몇 가지 명령을 사용했지만 tikzpicture
이는 선택 사항입니다. 또한 를 로드하는 중이므로 tikz
명시적으로 를 로드할 필요가 없습니다 pgf
.
세로 모드에서 나무 크기를 조정하는 데 동일한 명령을 사용할 수 있습니다.
\documentclass[12pt]{exam}
\usepackage{tikz}
\usepackage{geometry}
\usepackage{graphicx}
\usepackage{pdflscape}
\usetikzlibrary{external,automata,trees,positioning,shadows,arrows,shapes.geometric}
\begin{document}
\noindent\resizebox{\textwidth}{!}{%
\begin{tikzpicture}[->,>=stealth',shorten >=1pt,auto,node distance=2.8cm,
semithick]
\tikzstyle{every state}=[fill,draw=none,green,text=white,circular drop shadow]
\tikzstyle{accepting}=[circle split, draw,text=black,inner sep=0.08cm]
\tikzstyle{initial}=[red,text=white]
\node[state,initial] (N0) {Nature};
\node[state] (N1) [below left of=N0,xshift=-5cm] {Nature};
\node[state] (F1) [below left of=N1] {R\&G};
\node[state] (K1) [below right of=N1] {R\&G};
\node[state] (FS1) [below left of=F1] {H};
\node[accepting] (FN1) [above left of=F1] {\phantom{1}};
\node[state] (KS1) [below right of=K1] {H};
\node[accepting] (KN1) [above right of=K1] {\phantom{1}};
\node[accepting] (FSC1) [below left of=FS1] {\phantom{1}};
\node[accepting] (FSN1) [above left of=FS1] {\phantom{1}};
\node[accepting] (KSC1) [below right of=KS1] {\phantom{1}};
\node[accepting] (KSN1) [above right of=KS1] {\phantom{1}};
\path(N1) edge node[ above left, pos=.20]{feed Hamlet} node[ below right, pos=.30]{0} (F1)
edge node[above right, pos=.20]{kill Hamlet} node[below left, pos=.30]{1} (K1);
\path(F1) edge node[above left,pos=.5]{escort} (FS1) edge node[ left]{don't}(FN1);
\path(K1) edge node[above right,pos=.5]{escort} (KS1) edge node[ right]{don't}(KN1);
\path(FS1) edge node[above left]{change} (FSC1) edge node[ left]{don't}(FSN1);
\path(KS1) edge node[above right]{change} (KSC1) edge node[ right]{don't}(KSN1);
\path(K1) edge[thick,dotted,-](F1);
\node[state] (N)[below right of=N0,xshift=5cm] {Nature};
\node[state] (F) [below left of=N] {R\&G};
\node[state] (K) [below right of=N] {R\&G};
\node[state] (FS) [below left of=F] {H};
\node[accepting] (FN) [above left of=F] {\phantom{1}};
\node[state] (KS) [below right of=K] {H};
\node[accepting] (KN) [above right of=K] {\phantom{1}};
\node[accepting] (FSC) [below left of=FS] {\phantom{1}};
\node[accepting] (FSN) [above left of=FS] {\phantom{1}};
\node[accepting] (KSC) [below right of=KS] {\phantom{1}};
\node[accepting] (KSN) [above right of=KS] {\phantom{1}};
\path(N) edge node[ above left, pos=.20]{feed Hamlet} node[ below right, pos=.30]{0} (F)
edge node[above right, pos=.20]{kill Hamlet} node[below left, pos=.30]{1} (K);
\path(F) edge node[above left,pos=.5]{escort} (FS) edge node[ left]{don't}(FN);
\path(K) edge node[above right,pos=.5]{escort} (KS) edge node[ right]{don't}(KN);
\path(FS) edge node[above left]{change} (FSC) edge node[ left]{don't}(FSN);
\path(KS) edge node[above right]{change} (KSC) edge node[ right]{don't}(KSN);
\path(K) edge[thick,dotted,-](F);
\end{tikzpicture}%
}
\end{document}