我无法将两个流程图装入框架中,以便很好地放入单个页面中,以及如何在框架上添加更多的底部空间?
\documentclass[11pt,twoside, a4paper]{report}
\usepackage{fontspec}
\setmainfont{Tex Gyre Schola}
\usepackage[margin=0.75in]{geometry}
\usepackage{tikz}
\usetikzlibrary{shapes,arrows}
%% tikz
\tikzset{
block/.style = {
rectangle,
draw,
text width=5em,
text centered,
minimum width=3cm,
minimum height=1cm,
rounded corners,
},
line/.style = {
draw,
-latex',
},
text/.style = {textwidth = 3em
},
longblock/.style = {
rectangle,
draw,
text width=10em,
text centered,
minimum width=3cm,
minimum height=1cm,
rounded corners,
fill=white
},
}
%% personal commands
\newcommand{\mybox}[4]{
\begin{figure}[h]
\centering
\begin{tikzpicture}
\node[anchor=text,text width=\columnwidth-1.2cm, draw, rounded corners, line width=0.5pt, fill=#3, inner sep=1mm] (big) {\\#4};
\node[draw, rounded corners, line width=.5pt, fill=#2, anchor=west, xshift=5mm] (small) at (big.north west) {#1};
\end{tikzpicture}
\end{figure}
}
\begin{document}
\mybox{QT nhân giống bằng nuôi cấy mô}{black!40}{black!10}{
\vspace{2ex}
\medskip
\hspace{5.5ex}
\begin{tikzpicture}[node distance = 1cm, auto]
\node [longblock] (bl1) {Chọn vật liệu nuôi cấy};
\node [longblock, below of=bl1, node distance=1.75cm] (bl2) {Khử trùng};
\node [longblock, below of=bl2, node distance=1.75cm] (bl3) {Tạo chồi};
\node [longblock,below of=bl3, node distance=1.75cm]
(bl4) {Tạo rễ};
\node [longblock, below of=bl4, node distance=1.75cm]
(bl5) {Cấy cây vào môi trường thích ứng};
\node [longblock, below of=bl5, node distance=1.75cm] (bl6) {Trồng cây trong vườn ươm};
\path [line] (bl1) -- (bl2);
\path [line] (bl2) -- (bl3);
\path [line] (bl3) -- (bl4);
\path [line] (bl4) -- (bl5);
\path [line] (bl5) -- (bl6);
\end{tikzpicture}
}
\vspace{-65.75ex}
\begin{flushright}
\mybox{Nhân giống bằng nuôi cấy mô ở cà rốt}{black!40}{black!10}{
\vspace{4ex}
\begin{tikzpicture}
\hspace{7ex}
\node [longblock] (bl1) {Lát cắt ngang củ cà rốt};
\node [longblock, below of=bl1, node distance=1.75cm] (bl2) {Các mẫu mô};
\node [longblock, below of=bl2, node distance=2cm] (bl3) {Các tế bào được tách rời trong môi trường nuôi cây};
\node [longblock,below of=bl3, node distance=2cm]
(bl4) {Tế bào phân chia};
\node [longblock, below of=bl4, node distance=1.75cm]
(bl5) {Mô sẹo};
\node [longblock, below of=bl5, node distance=1.75cm] (bl6) {Cây con sinh trưởng trong ống nghiệm};
\node [longblock, below of=bl6, node distance=1.75cm] (bl7) {Đem trồng để tạo cây trưởng thành};
\path [line] (bl1) -- (bl2);
\path [line] (bl2) -- (bl3);
\path [line] (bl3) -- (bl4);
\path [line] (bl4) -- node[anchor=east] {Nuôi cấy} (bl5);
\path [line] (bl5) -- node[anchor=east] {Nuôi cấy} node[anchor=west]{Hoocmôn sinh trưởng}(bl6);
\path [line] (bl6) -- (bl7);
\end{tikzpicture}
}
\end{flushright}
\end{document}
答案1
- 我会将两个图像放在一个带有位置选项的浮点数中
[p]
。 -在图像tikz
中嵌套图像tikz
不是一个好主意,您可能会遇到意想不到的问题(图像对齐) - 定义用于插入图像的新命令不会缩短代码或使其更清晰,我宁愿直接在浮动环境中插入图像
- 使用额外的
tikz
库可以显著缩短代码,使其更加简洁和清晰:
\documentclass[11pt,twoside, a4paper]{report}
\usepackage{fontspec}
\setmainfont{Tex Gyre Schola}
\usepackage[margin=0.75in]{geometry}
\usepackage{tikz}
\usetikzlibrary{arrows.meta,
backgrounds,
chains,
fit,
positioning,
quotes,
shapes}
%---------------- Show page layout. Don't use in a real document!
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%
\usepackage{lipsum}% For dummy text. Don't use in a real document
%% tikz
\tikzset{FC/.style = {
node distance = 7mm,
start chain = going below,
%
base/.style = {draw, rounded corners, line width=0.5pt},
FIT/.style = {base, fill=gray!10,
minimum width=\dimexpr\linewidth-1.2cm\relax,
inner sep=4mm,
xshift=\dimexpr0.5\linewidth-10em\relax, yshift=2mm,
fit=##1},
T/.style = {base, fill=gray!30,
anchor=west, xshift=5mm},
%
line/.style = {draw, -Latex},
block/.style = {base, text width=5em, align=center},
longblock/.style = {base, fill=white,
text width=10em, align=center, minimum height=1cm},
height=1cm},
every edge quotes/.append style = {font=\small}
}
}
\begin{document}
\begin{figure}[p]
\centering
\begin{tikzpicture}[FC]
\begin{scope}[nodes={longblock, on chain, join=by line}]
\node (bl1) {Chọn vật liệu nuôi cấy};
\node (bl2) {Khử trùng};
\node (bl3) {Tạo chồi};
\node (bl4) {Tạo rễ};
\node (bl5) {Cấy cây vào môi trường thích ứng};
\node (bl6) {Trồng cây trong vườn ươm};
\end{scope}
\scoped[on background layer]
\node[FIT=(bl1) (bl6)] (big) {};
\node[T] (small) at (big.north west) {QT nhân giống bằng nuôi cấy mô};
\end{tikzpicture}
\medskip
\begin{tikzpicture}[FC]
\begin{scope}[nodes={longblock, on chain, join=by line}]
\node (bl1) {Lát cắt ngang củ cà rốt};
\node (bl2) {Các mẫu mô};
\node (bl3) {Các tế bào được tách rời trong môi trường nuôi cây};
\node (bl4) {Tế bào phân chia};
\node (bl5) {Mô sẹo};
\node (bl6) {Cây con sinh trưởng trong ống nghiệm};
\node (bl7) {Đem trồng để tạo cây trưởng thành};
\end{scope}
\scoped[on background layer]
\node[FIT=(bl1) (bl7)] (big) {};
\node[T] (small) at (big.north west) {Nhân giống bằng nuôi cấy mô ở cà rốt};
%
\path (bl4) edge["Nuôi cấy"] (bl5);
\path (bl5) edge["Nuôi cấy" ',
"Hoocmôn sinh trưởng"] (bl6);
\end{tikzpicture}
\end{figure}
\end{document}
附录: 对于您在评论中询问的流程图:
- 请始终以问题的形式提出您的问题,以便(更好地)让所有网站成员都可以看到它
- 您可以按照上面 MWE 中绘制的相同方式绘制该流程图,因此其代码可以是:
\begin{tikzpicture}[FC]
\begin{scope}[nodes={block, on chain, join=by line}]
\node (bl1) {Hạt giống SNC};
\node (bl2) {Hạt giống \\ NC};
\node (bl3) {Hạt giống XN};
\end{scope}
\node [below right = of bl3] (bl4) {Sản xuất đại trà};
\path [line] (bl3) |- (bl4);
\end{tikzpicture}
但是,您的文档序言也必须包含上述 MWE 序言的内容。