私は見つけたtizkでフローチャートを作成するためのガイドただし、サブプロセス ボックスのオプションはありません。
内側の 2 本の線の間に文字が書かれたこのようなボックスを作成するにはどうすればよいでしょうか?
前もって感謝します! :)
編集: 今のところ、私が一番近づいたのは
\tikzstyle{subprocess} = [rectangle, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=orange!30, double distance=
\node (subpro1) [subprocess, below of=start] {Failed subprocess box};
しかし、これは2行を生成します毎側面に二重線を配置したいのですが、垂直の 2 辺だけに二重線を配置したいのです。また、色付きの背景は、最も外側の長方形に配置したいのですが、内側の長方形にのみ配置されます。
答え1
\documentclass[tikz, margin=3mm]{standalone}
\newcommand\ppbb{path picture bounding box}
\begin{document}
\begin{tikzpicture}[
subprocess/.style = {rectangle, draw=black, fill=orange!30,
minimum width=3cm, minimum height=1cm,inner xsep=3mm,
text width =\pgfkeysvalueof{/pgf/minimum width}-2*\pgfkeysvalueof{/pgf/inner xsep},
align=flush center,
path picture={\draw
([xshift =2mm] \ppbb.north west) -- ([xshift= 2mm] \ppbb.south west)
([xshift=-2mm] \ppbb.north east) -- ([xshift=-2mm] \ppbb.south east);
},% end of path picture
}
]
\node (subpro1) [subprocess] {Failed subprocess box};
\end{tikzpicture}
\end{document}
補遺(1):
スタイルは次のようsubprocess
に囲むことができます\tikzset
。
\tikzset{
subprocess/.style = {rectangle, draw=black, fill=orange!30,
minimum width=3cm, minimum height=1cm, inner xsep=3mm,
text width =\pgfkeysvalueof{/pgf/minimum width}-2*\pgfkeysvalueof{/pgf/inner xsep},
align=flush center,
path picture={\draw
([xshift =2mm] \ppbb.north west) -- ([xshift= 2mm] \ppbb.south west)
([xshift=-2mm] \ppbb.north east) -- ([xshift=-2mm] \ppbb.south east);
},% end of path picture
}
}
それを文書の序文に載せます。
補遺(2):
テキストを 1 行のみにしたい場合は、コードを次のようsubprocess
に簡略化できます。
\documentclass[tikz, margin=3mm]{standalone}
\newcommand\ppbb{path picture bounding box}
\tikzset{
subprocess/.style = {rectangle, draw=black, fill=orange!30,
minimum width=3cm, minimum height=1cm, inner xsep=3mm,
align=flush center,
path picture={\draw
([xshift =2mm] \ppbb.north west) -- ([xshift= 2mm] \ppbb.south west)
([xshift=-2mm] \ppbb.north east) -- ([xshift=-2mm] \ppbb.south east);
},% end of path picture
}
}% end of tikzset
\begin{document}
\begin{tikzpicture}
\node (subpro1) [subprocess] {Failed subprocess box};
\end{tikzpicture}
\end{document}
補遺(3): 形状の「最小/最大幅」を手動で規定したい場合は、次の例が役立つかもしれません。
\documentclass[tikz, margin=3mm]{standalone}
\usetikzlibrary{positioning}
\newcommand\ppbb{path picture bounding box}
\tikzset{
subprocess/.style = {rectangle, draw=black, semithick, fill=orange!30,
minimum width=#1, minimum height=1cm, inner xsep=3mm, % <-- changed
text width =\pgfkeysvalueof{/pgf/minimum width}-2*\pgfkeysvalueof{/pgf/inner xsep},
align=flush center,
path picture={\draw
([xshift =2mm] \ppbb.north west) -- ([xshift= 2mm] \ppbb.south west)
([xshift=-2mm] \ppbb.north east) -- ([xshift=-2mm] \ppbb.south east);
},% end of path picture
},
subprocess/.default = 24mm % <-- added
}% end of tikzset
\begin{document}
\begin{tikzpicture}
\node (subpro1) [subprocess] {subprocess};% <-- use default width
\node (subpro2) [subprocess=33mm, below=of subpro1] {very long subprocess};% <-- use locally prescribed width
\node (subpro3) [subprocess=44mm, below=of subpro2] {very long subprocess};% <-- use locally prescribed width
\draw (subpro1) edge[->] (subpro2)
(subpro2) edge[->] (subpro3);
\end{tikzpicture}
\end{document}