나는 이 그림에도 많은 시간을 쏟았고 다양한 유형의 tikz, pstricks 및 multido 사용 패키지를 시도했습니다. 다음과 같은 그림을 만들고 싶습니다.
나는 다음과 같이 썼습니다:
\documentclass{article}
\usepackage{MinionPro}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw (10,0) ellipse (1.7cm and 0.9cm);
\draw (5,0) ellipse (1.7cm and 0.9cm);
\draw (2,-3) ellipse (1.7cm and 0.9cm);
\draw (2,3) ellipse (1.7cm and 0.9cm);
\end{tikzpicture}
\end{document}
다음과 같습니다.
타원과 줄에 중앙에 텍스트를 넣어야 합니다. 누군가가 어떻게하는지 말해 줄 수 있습니까?
정말 감사합니다!
답변1
OP의 첫 번째 버전에서 요청한 솔루션 1:
미세한 조정은 당신에게 맡깁니다. 타원의 높이와 너비를 조정하고 \begin{tikzcd}[column sep=xxx, row sep=xxx]...
원하는 대로 설정하세요. 화살촉을 변경하려면 여기 이 사이트에서 검색을 하시면 됩니다. 여기저기서 많은 도움을 받고 있습니다.
% arara: pdflatex
\documentclass{article}
\usepackage{tikz-cd}
\usetikzlibrary{shapes.geometric}
\begin{document}
\begin{tikzcd}[cells={nodes={%
,ellipse
,minimum width=4cm
,minimum height=1cm
,draw
,align=center
}}]
Expectations
\arrow[<->, bend right,start anchor=190,end anchor=170]{dd}{D}
\arrow{dr}[swap]{A}
\arrow{drr}{F}
&[-2cm] & \\
& Disconfirmation \arrow{r}{C} & Satisfaction\\
Performance
\arrow{ur}{B}
\arrow{urr}[swap]{E}
& &
\end{tikzcd}
\end{document}
OP 버전 3에서 요청한 솔루션 2:
% arara: pdflatex
\documentclass{article}
\usepackage{tikz-cd}
\usetikzlibrary{shapes.geometric}
\begin{document}
\begin{tikzcd}[cells={nodes={%
,ellipse
,minimum width=4.5cm
,minimum height=1.5cm
,draw
,align=center
}}
,every arrow/.append style={-LaTeX, >=LaTeX}
,row sep=2cm
,column sep=2cm
]
Expectations
\arrow[<->, bend right=50,start anchor=185,end anchor=175]{dd}{D(+)}
\arrow{dr}[swap]{A(-)}
\arrow{drr}{F(\pm)}
&[-4cm] & \\
& (Dis)confirmation \arrow{r}{C(+)} & Satisfaction\\
\begin{tabular}{@{}c@{}}General\\ Performance\end{tabular}
\arrow{ur}{B(+)}
\arrow{urr}[swap]{E(+)}
& &
\end{tikzcd}
\end{document}
답변2
원래 질문에 대해 제안된 솔루션:
\documentclass[tikz,border=2mm]{standalone}
%\usepackage{MinionPro}
\usepackage{tikz}
\usetikzlibrary{positioning, shapes.geometric, arrows.meta}
\begin{document}
\begin{tikzpicture}[ball/.style={ellipse, minimum width=2cm, minimum height=1cm, draw}, >=LaTeX]
\node[ball] (dis) {Disconfirmation};
\node[ball, below left=2cm and 5mm of dis] (per) {Performance};
\node[ball, above left=2cm and 5mm of dis] (exp) {Expectations};
\node[ball, right=2cm of dis] (sat) {Satisfaction};
\draw[->] (exp) -- node [below] {A} (dis);
\draw[->] (exp) -- node [above] {F} (sat);
\draw[->] (per) -- node [above] {B} (dis);
\draw[->] (per) -- node [below] {E} (sat);
\draw[->] (dis) -- node [above] {C} (sat);
\draw[<->] (per) to [in=200,out=160] node [right] {A} (exp);
\end{tikzpicture}
\end{document}
업데이트:
nodes
Shapes.geometric 라이브러리를 로드하는 타원일 수 있습니다. minimum width
및 가 가장 큰 콘텐츠에 맞을 만큼 minimum height
충분히 크면 모든 노드의 크기는 비슷합니다. align
옵션이 정의된 경우 \\
노드 내용 내부에서 줄바꿈을 위해 사용할 수 있습니다. 또 다른 옵션은 자동으로 줄을 끊는 특정 항목을 정의하는 것입니다 text width
. 물론 로 강제할 수도 있습니다 \\
.
\documentclass[tikz,border=2mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning, shapes.geometric, arrows.meta}
\begin{document}
\begin{tikzpicture}[ball/.style={ellipse, minimum width=4.5cm,
minimum height=1cm, align=center, draw}, >=LaTeX]
\node[ball] (dis) {Disconfirmation(Dis)confirmation};
\node[ball, below left=2cm and 5mm of dis] (per) {General Performance};
\node[ball, above left=2cm and 5mm of dis] (exp) {Expectations};
\node[ball, right=2cm of dis] (sat) {Satisfaction};
\draw[->] (exp) -- node [below][below left] {A $(-)$} (dis);
\draw[->] (exp) -- node [above][above right] {F $(\pm)$} (sat);
\draw[->] (per) -- node [above][above left] {B $(+)$} (dis);
\draw[->] (per) -- node [below][below right] {E $(+)$} (sat);
\draw[->] (dis) -- node [above] {C $(+)$} (sat);
\draw[<->] (per) to [in=200,out=160] node [right] {AD $(+)$} (exp);
\end{tikzpicture}
\end{document}