我正在尝试复制此框图,但在某些细节上遇到了麻烦。这是我尝试复制的框图:
这就是我所拥有的:
我只需要帮助处理块中的字母,我无法将一个单词放在另一个单词下,还想使箭头线和头部更粗一些,最后我需要找到一种方法在箭头的右侧写一些内容。
这是第二张图的代码:
\documentclass{beamer}
\usetheme{Boadilla}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\usepackage{mathtools}
\usetikzlibrary{shapes,arrows}
\usepackage{subfig}
\usepackage{babel,blindtext}
\usepackage{subcaption}
\usefonttheme{professionalfonts} % using non standard fonts for beamer
\usefonttheme{serif} % default family is serif
% \title{Ejemplo de Diseño de un Controlador}
\author{Julio Ortegón}
% \institute{Universidad de los Andes}
\date{}
\begin{document}
\maketitle
\begin{frame}{}
\centering
\bigskip
\bigskip
\tikzstyle{block} = [draw, fill=white, rectangle,
minimum height=3em, minimum width=6em ]
\tikzstyle{Fi} = [coordinate]
\tikzstyle{Rd} = [coordinate]
\tikzstyle{Qd} = [coordinate]
\tikzstyle{Qa} = [coordinate]
\tikzstyle{Wd} = [coordinate]
\tikzstyle{QCHP} = [coordinate]
\tikzstyle{aRQ} = [coordinate]
\tikzstyle{pinstyle} = [pin edge={to-,ultra thick,black}]
\begin{tikzpicture}[auto, node distance=2cm,>=latex']
%Declara los nodos
\node [Fi, name=Fi] {};
\node [block, right of=Fi] (CHP) {\textbf{CHP} $n_W,n_Q$ };
\node [QCHP, name =QCHP, right of=CHP,node distance = 2.5 cm] {};
\node [Qa,name=Qa, right of=QCHP, node distance = 2.5cm,label={right:$Q_a$}] {};
\node[aRQ,name=aRQ,above of=Qa, node distance = 1.5cm]{};
\node [block, right of=aRQ,node distance = 1.2cm] (WARG) {\textbf{WARG} };
\node[Rd,name=Rd, right of=WARG, node distance = 2cm,label={right:$R_d$}] {};
\node[Qd,name=Qd,below of=Qa,node distance = 1.5cm, right = 3.25cm,label={right:$Q_d$}]{};
\node[Wd,name=Wd,below of=Qd,node distance = 1.5cm, right = 0.1cm,label={right:$W_d$}]{};
% \draw [->] (Controller1) -- node[name= ] {$ $} (system);
% \node [output, right of=system] (output) {};
% \node [block, below = 2 cm, right = 4cm] (Controller2) {$1+sK_h$};
%Ahora conectamos los bloques
\draw [draw,->] (Fi) -- node {$F_i$} (CHP);
\draw [->] (CHP) -- node {$Q^{\text{CHP}}$} (QCHP);
\draw [->] (QCHP) -- node {$\alpha^{\text{CHP}}_{\text{aQ}}Q^{\text{CHP}}$} (Qa);
\draw [->] (QCHP) |- node {$\qquad\qquad\qquad\;\; \alpha^{\text{CHP}}_{\text{RQ}}Q^{\text{CHP}}$} (aRQ);
\draw [->] (WARG) -- node {} (Rd);
\draw [->] (QCHP) |- node {$\qquad\qquad\qquad\;\; \alpha^{\text{CHP}}_{\text{QQ}}Q^{\text{CHP}}$} (Qd);
\draw [->] (CHP) |- node {$\qquad\qquad\qquad\qquad\qquad\; W^{\text{CHP}}$} (Wd);
\end{tikzpicture}
\end{frame}
\end{document}
我很感谢你的帮助。
答案1
我建议对你的代码做一些改进。
首先,我会使用\tikzset
而不是\tikzstyle
,因为通过这种方式定义多种样式要容易得多。
coordinate
其次,您可以直接\coordinate
在某个位置定义 s 并使用 来命名它们,而不是使用样式为 s 的空节点(name)
。此命名技术也适用于节点。
然后,为了以后更容易放置标签节点,我添加了两个辅助坐标。我还调整了WARG
和Wd
节点的对齐方式。
pos
您可以使用、above
、below
或选项对齐路径上的节点right
,left
并将它们放置在路径中的正确位置:如果您将节点放在最后,它将被放在路径的末尾。您可以在一条路径上放置多个节点。
要在节点内设置换行符,您需要使用选项设置其对齐方式align
。然后您可以使用\\
插入强制换行符。
\documentclass[border=1mm, tikz]{standalone}
\usetikzlibrary{shapes,arrows}
\usepackage{amsmath}
\begin{document}
\tikzset{
block/.style={draw, fill=white, rectangle,
minimum height=3em, minimum width=6em},
every path/.style={very thick},
}
\begin{tikzpicture}[auto, node distance=2cm, >=latex']
%Declara los nodos
\coordinate (Fi) at (0,0);
\node [block, right of=Fi, align=center] (CHP) {\textbf{CHP} \\ $n_W,n_Q$};
\coordinate [right of=CHP, node distance=2.5cm] (QCHP);
\coordinate [right of=QCHP, node distance=2.5cm] (Qa);
\coordinate [above of=Qa, node distance=1.5cm] (aRQ);
\node [block, anchor=west] at (aRQ) (WARG) {\textbf{WARG}};
\coordinate [right of=WARG, node distance=2cm] (Rd);
\coordinate [below of=Qa, node distance=1.5cm, right=3.25cm] (Qd);
\coordinate [below of=Qd, node distance=1.5cm] (Wd);
\coordinate [below of=Qa, node distance=1.5cm] (helper 1);
\coordinate [below of=QCHP, node distance=3cm] (helper 2);
%Ahora conectamos los bloques
\draw [->] (Fi) -- node {$F_i$} (CHP);
\draw [->] (CHP) -- (QCHP) node[above, xshift=-20pt] {$Q^{\text{CHP}}$};
\draw [->] (QCHP) -- (Qa) node[above, xshift=-30pt] {$\alpha^{\text{CHP}}_{\text{aQ}}Q^{\text{CHP}}$} node[right] {$Q_a$};
\draw [->] (QCHP) |- (aRQ) node[above, xshift=-30pt] {$\alpha^{\text{CHP}}_{\text{RQ}}Q^{\text{CHP}}$};
\draw [->] (WARG) -- (Rd) node[right] {$R_d$};
\draw [->] (QCHP) |- (helper 1) node[above, xshift=-30pt] {$\alpha^{\text{CHP}}_{\text{QQ}}Q^{\text{CHP}}$} -- (Qd) node[right] {$Q_d$};
\draw [->] (CHP) |- (helper 2) node[above, xshift=-20pt] {$W^{\text{CHP}}$} -- (Wd) node[right] {$W_d$};
\end{tikzpicture}
\end{document}