在最终解决了该流程图的许多问题之后,我得到了这个......
我是 TikZ 新手,很难解决这个问题。我希望第 5 行的 5 个节点位于一个垂直排列的框内。我有很好的垂直空间,但我被限制在你看到的列中。顺便说一下,我使用的是 beamerposter。
不太好的 MWE
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes,arrows,matrix}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\begin{document}
\scriptsize
\begin{tikzpicture}
[auto,
block/.style={rectangle, draw=blue, thick, fill=blue!20,text width=10em, text centered, rounded corners,minimum height=4em},
ratos/.style={rectangle, draw=blue, thick, fill=blue!20,text width=20em, text centered, rounded corners,minimum height=4em},
line/.style={draw, thick, -latex,shorten >=2pt}]
\matrix [column sep=3mm,row sep=12mm, ampersand replacement=\tikzand]
{
% row 1
\tikzand \node [ratos] (ratos){\textbf{Ratos}\\
\begin{itemize}
\item Filogeneticamente próximos do Homem
\item Desenvolve a patologia rapidamente
\item Manipulação fácil e baixo custo
\end{itemize}}; \tikzand \\
% row 2
\node [block] (femea) {\textbf{Fêmea}\\
\begin{itemize}
\item Patologia do ovário
\end{itemize}};
\tikzand \node [block] (hibridos) {\textbf{Híbridos}\\
\begin{itemize}
\item Geneticamente iguais
\end{itemize}
};
\tikzand \node [block] (suprimidos) {\textbf{Imunossuprimidos}\\
\begin{itemize}
\item Ratos \textit{nude}, sem timo -- sem rejeição de transplante e interferência imunitária
\end{itemize}
}; \\
% row 3
\tikzand \node [ratos] (metodo1){Inoculação intrabursal ortotópica de células da linhagem humana do carcinoma de células claras, não metastizantes, preferencialmente no infundíbulo}; \\
% row 4
\tikzand \node [block] (grupos){5 grupos de 6 ratos\\ }; \\
% row 5
\node [block] (grupo1){\textbf{Grupo 1}\\ Sem tratamento}; \tikzand
\node [block] (grupo2){\textbf{Grupo 2}\\ Vorinostat \textit{pd} -- 50 mg/kg/dia};
\node [block] (grupo3){\textbf{Grupo 3}\\ Células tratadas com vorinostat \textit{in vitro} antes da inoculação}; \tikzand
\node [block] (grupo4){\textbf{Grupo 4}\\ Tratamento com fármaco de 1ª linha (paclixatel ou agentes de platina)}; \tikzand
\node [block] (grupo5){\textbf{Grupo 5}\\ Tratamento com fármaco de 1ª linha e vorinostat}; \\
% row 6
\node [block] (duração){\textbf{11 semanas de duração}
\begin{itemize}
\item 6 semanas para desenvolvimento tumoral
\item 5 semanas para se confirmar efeito terapêutico
\end{itemize}
}; \\
% row 7
\node [block] (eutanasia){Eutanásia de 2 ratos de cada grupo à 9ª, 10ª e 11ª semanas.
};\\
%row 8
\node [block] (analise){Análise macroscópica.
}; \tikzand
\node [block] (citologia){Citologia com coloração PAS.
};\\
};
\begin{scope}[every path/.style=line]
\path(ratos)-- (femea);
\path(ratos)-- (hibridos);
\path(ratos)-- (suprimidos);
\path(femea)-- (metodo1);
\path(hibridos)-- (metodo1);
\path(suprimidos)-- (metodo1);
\path(metodo1)-- (grupos);
\path(grupos)-- (grupo1);
\path(grupos)-- (grupo2);
\path(grupos)-- (grupo3);
\path(grupos)-- (grupo4);
\path(grupos)-- (grupo5);
\path(grupo1)-- (duração);
\path(grupo2)-- (duração);
\path(grupo3)-- (duração);
\path(grupo4)-- (duração);
\path(grupo5)-- (duração);
\path(duração)-- (eutanasia);
\path(eutanasia)-- (analise);
\path(eutanasia)-- (citologia);
\end{scope}
\end{tikzpicture}
\end{document}
有人能帮我解决这个问题吗?这是我为大学学生会议制作的海报。感谢您的时间!
答案1
这是我认为你想要的解决方案。我最小化了代码,只包括了你(不是最小化)示例中的第 4、5 和 6 行。此外,我添加了 tikzlibrarycalc
来计算框角的位置。代码是
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes,arrows,matrix,calc}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\begin{document}
\scriptsize
\begin{tikzpicture} [auto,
block/.style={rectangle, draw=blue, thick, text width=5em, text centered, rounded corners,minimum height=4em},
ratos/.style={rectangle, draw=blue, thick,text width=5em, text centered, rounded corners,minimum height=4em},
line/.style={draw, thick, -latex,shorten >=2pt}]
\matrix [column sep=3mm,row sep=6mm, ampersand replacement=\tikzand]
{
% row 4
\tikzand \node [block] (grupos){row 4}; \\
% row 5
\tikzand\tikzand\node [block] (grupo1){\textbf{Grupo 1}};\\
\tikzand\tikzand\node (grupo234) {$\vdots$};\\
\tikzand\tikzand\node [block] (grupo5){\textbf{Grupo 5}}; \\
% row 6
\tikzand\node [block] (dura){row 6}; \\
};
\begin{scope}[every path/.style=line]
\path(grupos)|- (grupo1);
\path(grupos) |- (grupo234);
\path(grupos)|- (grupo5);
\path(grupo1) -- ++(2,0) |- (dura);
\path(grupo234) -- ++(2,0) |- (dura);
\path(grupo5) -- ++(2,0) |- (dura);
\end{scope}
\draw[red] ($(grupo1.north west) + 0.3*(-1.2,1)$) rectangle ($(grupo5.south east)+ 0.3*(1.2,-1)$);
\end{tikzpicture}
\end{document}
结果是
还有其他方法可以获得您想要的结果,但我认为这一种方法限制了您对现有代码所做的更改量。