フローチャート内の矢印のパスをコーディングする

フローチャート内の矢印のパスをコーディングする

私はZarkoのコードにいくつか変更を加えましたここ独自のフローチャートを作成します。

\documentclass[a4paper,11pt,twoside]{book}
\usepackage[a4paper,left=2.5cm,right=2.5cm,top=2.5cm,bottom=2.5cm]{geometry}
\usepackage{amsmath, amsthm, amssymb, amsfonts}

\usepackage[english,greek]{babel}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
% shapes
\usetikzlibrary{shapes}
%arrows
\usetikzlibrary{arrows,arrows.meta}
%decorations
\usetikzlibrary{decorations.text,decorations.pathreplacing,patterns,shadows.blur,fadings}
% miscellaneous
\usetikzlibrary{calc,quotes,positioning,fpu,angles,fit,spy,chains}

\begin{document}

    \begin{tikzpicture}[
  node distance = 8mm and 16mm,
  start chain = A going below,
  base/.style = {draw, minimum width=32mm, minimum height=8mm,
    align=center, on chain=A},
  startstop/.style = {ultra thick,double,base, rectangle, rounded corners, fill=white},
  process/.style = {ultra thick,base, rectangle, fill=white},
  io/.style = {ultra thick,base, trapezium, 
    trapezium left angle=70, trapezium right angle=110,
    fill=white},
  decision/.style = {ultra thick,base, diamond, fill=white},
  every edge quotes/.style = {auto=right}]
  ]
  \node [startstop]       {Έναρξη};     % <-- A-1
  \node [io]              {Εισαγωγή}; %A-2
  \node [decision]        {Ερώτηση}; %Α-3
  \node [io]              {Απάντηση}; %A-4
  \node [startstop]       {Τέλος};      % <-- A-5
  \node [process, right=of A-3]    {Κάτι};     % <-- A-6

  \draw [arrows=-Stealth] 
  (A-1) edge          (A-2)
  (A-2) edge   (A-3)
  (A-3) edge  ["όχι"]     (A-4)
    (A-3) edge  ["ναι"]     (A-6)
  (A-4) edge    (A-5)
  (A-6) |- ($(A-1.south east)!0.5!(A-2.north east)$)
  -| ([xshift=7mm] A-2.north)
  ;
  \end{tikzpicture}
\end{document}

こんな感じです。

ここに画像の説明を入力してください

問題は、(長方形「Κάτι」)なしでA-3、(ダイヤモンド「Ερώτηση」)からA-2(平行四辺形「Εισαγωγή」)への矢印を描く方法がわからないことです。A-6次のようなものがほしいです:

ここに画像の説明を入力してください

どうすればいいですか?

答え1

以下の操作を行うことで、コードをできるだけ変更しないようにしました。

  1. every join/.style=-Stealthチェーンを再構築せずに矢印を自動的に描画するオプションを追加しました。
  2. ノードA-6をチェーンに結合せず、トレースして座標に変換せずに、ノードA-2の右上に配置しました。

    \node [on chain,coordinate, above right=3mm and 20 mm of A-2]{}; % <-- A-6

  3. したがって、(A-6)はチェーンに結合されていないため、ループの矢印を作成します。 \draw [arrows=-Stealth] (A-3) -| node[pos=.25,below]{Κάτι}(A-6)-| (A-2.30);
  4. 矢印はチェーンによってすでに構築されているため、これ以上何も描画せずにラベルのみを配置します。 \path (A-3) --node[left]{όχι} (A-4);

スクリーンショット

\documentclass[a4paper,11pt,twoside]{book}
\usepackage[a4paper,left=2.5cm,right=2.5cm,top=2.5cm,bottom=2.5cm]{geometry}
\usepackage{amsmath, amsthm, amssymb, amsfonts}
\usepackage[utf8]{inputenc}
%\usepackage[greek]{babel}

% babel dont work for me, i took these 5 lines from the answer of Zarko
\usepackage{fontspec}
\usepackage{polyglossia}
\setmainlanguage{greek}
\setromanfont{Minion Pro} %% Select your favourite font
\setotherlanguage{english}

\usepackage{tikz}
% shapes
\usetikzlibrary{shapes}
%arrows
\usetikzlibrary{arrows,arrows.meta}
%decorations
\usetikzlibrary{decorations.text,decorations.pathreplacing,patterns,shadows.blur,fadings}
% miscellaneous
\usetikzlibrary{calc,quotes,positioning,fpu,angles,fit,spy,chains}

\begin{document}

    \begin{tikzpicture}[
  node distance = 8mm and 16mm,
  start chain = A going below,
  base/.style = {draw, minimum width=32mm, minimum height=8mm,
    align=center, on chain=A,join},
  startstop/.style = {ultra thick,double,base, rectangle, rounded corners, fill=white},
  process/.style = {ultra thick,base, rectangle, fill=white},
  io/.style = {ultra thick,base, trapezium, 
    trapezium left angle=70, trapezium right angle=110,
    fill=white},
  decision/.style = {ultra thick,base, diamond, fill=white},
  every edge quotes/.style = {auto=right},
  every join/.style=-Stealth]
  ]
  \node [startstop]       {Έναρξη};     % <-- A-1
  \node [io]              {Εισαγωγή}; %A-2
  \node [decision]        {Ερώτηση}; %Α-3
  \node [io]              {Απάντηση}; %A-4
  \node [startstop]       {Τέλος};      % <-- A-5
  \node [on chain,coordinate, above right=3mm and 20 mm of A-2]{};     % <-- A-6

  \draw [arrows=-Stealth] 
  (A-3) -| node[pos=.25,below]{Κάτι}(A-6)-| (A-2.30);
  \draw  (A-3) --node[left]{όχι} (A-4);
  \end{tikzpicture}
\end{document}

答え2

A-3ノード「A-6」を削除し、からに矢印を描くだけですA-2。また、ライブラリの読み込みを再配置しtikz、画像のコードを少し簡略化/短縮しました。

\documentclass[a4paper,11pt,twoside]{book}
\usepackage[a4paper,
            margin=2.5cm]{geometry}
\usepackage{amsmath, amsthm, amssymb}

\usepackage{fontspec}
\usepackage{polyglossia}
\setmainlanguage{greek}
\setromanfont{Minion Pro} %% Select your favorite font
\setotherlanguage{english}

\usepackage{tikz}
\usetikzlibrary{angles, arrows, arrows.meta,
                calc, chains,
                decorations.text, decorations.pathreplacing,
                fadings, fit, 
                patterns, positioning,
                quotes,
                shapes, shadows.blur,
                spy}

\begin{document}
\centering
    \begin{tikzpicture}[
node distance = 8mm and 4mm,
  start chain = A going below,
  base/.style = {draw, minimum width=32mm, minimum height=8mm,
                  align=center, on chain=A, join=by -Stealth},
startstop/.style = {ultra thick,double,base, rectangle, rounded corners, fill=white},
  process/.style = {ultra thick,base, rectangle, fill=white},
    io/.style = {trapezium, trapezium stretches,
                 trapezium left angle=70, trapezium right angle=110,       
                 base, ultra thick, fill=white},
  decision/.style = {ultra thick,base, diamond, fill=white},
every edge quotes/.style = {auto=right}
                        ]
  \node [startstop]       {Έναρξη};     % <-- A-1
  \node [io]              {Εισαγωγή};  
  \node [decision]        {Ερώτηση};  
  \node [io]              {Απάντηση};  
  \node [startstop]       {Τέλος};      % <-- A-5

\coordinate[above left=of A-2.east] (aux);
\draw [arrows=-Stealth]
        (A-3.east)  to  ["ναι"] ++ (1,0) |- (aux) -- (aux |- A-2.north);
\path   (A-3)       to  ["όχι"]     (A-4);
    \end{tikzpicture}
\end{document}

ここに画像の説明を入力してください

編集1:XeLaTeX エンジンによってコンパイルされました。

編集2:MWE 内のすべてのライブラリのうち、実際に使用されるのは次のものだけです。

\usetikzlibrary{arrows.meta,
                chains,
                positioning,
                quotes,
                shapes
                }

関連情報