我也花了很多時間在這個數字上,並且嘗試了不同類型的 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}