4

We have document which needs to be an interactive scheme, so scheme can't be just a picture

Questions:

How to create such a diagram in latex?

Diagram has following setting:

  • arrows between blocks should be compact as shown in the picture (сurved arrows)
  • horizontal scheme(not vertical)
  • each item in schema is a hyperlink
  • it is necessary to place several items in one block, as shown in the picture in red
  • such a scheme should take one page

Desired result:

enter image description here

Actual result:

I can only do such schema

enter image description here

Minimal working example XeLaTeX is used.

\documentclass{report}
\usepackage{tikz}
\usetikzlibrary{trees}
\begin{document}
\tikzstyle{every node}=[draw=black,thick,anchor=west]
\tikzstyle{selected}=[draw=blue,fill=blue!30]
\tikzstyle{optional}=[dashed,fill=gray!50]
\begin{tikzpicture}[%
  grow via three points={one child at (0.5,-0.7) and
  two children at (0.5,-0.7) and (0.5,-1.4)},
  edge from parent path={(\tikzparentnode.south) |- (\tikzchildnode.west)}]
  \node {Interfaces}
    child { node {In}}                      
    child { node {NMEA OUT}}
    child { node {ECDIS OUT}}
    child { node {VDR OUT}}
    child { node [selected] {NMEA OUT
    ECDDIS OUT\\ VDR OUT}
      child { node {Baud}}
      child { node {Freq}}
      child { node {HTD}}
      child { node {RSA}}
      child { node {ROR}}
      child { node {ALR}}
      child { node {ALA}}
      child { node {HMS}}
      child { node {HMR}}
      child { node {BAM}}
    }
    child [missing] {}              
    child [missing] {}              
    child [missing] {}              
    child [missing] {}              
    child [missing] {}              
    child [missing] {}              
    child [missing] {}              
    child [missing] {}                  
    child { node {texdoc}};
\end{tikzpicture}
\end{document}
2
  • image doesn't show (classical) tree, rather matrix of nodes with interconnections between them. and nodes on images are very different than shown with your code. do you like that someone reproduce the first image?.
    – Zarko
    Oct 18 '17 at 14:04
  • 1
    We need to do exactly same scheme as in first picture, but we don't have more ideas how to do it. Oct 19 '17 at 6:30
1

enter image description here

\documentclass[a4paper,11pt,ngerman]{article}
\usepackage{hyperref}
    \usepackage[edges]{forest}
    \usepackage{caption}
    \tikzset{parent/.style={align=center,text width=0.4cm,rounded corners=3pt}, 
        child/.style={align=center,text width=5cm,rounded corners=3pt}
    }
    \colorlet{col1}{white}
    \colorlet{col2}{cyan!5}
    \colorlet{col3}{cyan!15}
    \colorlet{col4}{cyan!30}  

    \begin{document}
    \section{Docktrial}
    \label{sec:docktrial}
    \section{AP Modes}
    \label{sec:apmodes}

    \clearpage

        \begin{center}
            \resizebox*{.94\linewidth}{!}{%
                \begin{forest}
                    forked edges,
                    for tree={
                        grow'=east,
                        draw,
                        l sep = 12mm,
                        fork sep = 6mm,
                        rounded corners,
                        text width=4.7cm,
                        node options={align=center},
                    }     
           [,fill=col1, draw=white, parent, s sep=1cm  
                [{\hyperref[sec:docktrial]{\textbf{Docktrial}}}, for tree={child, fill=col4, draw=col4, edge=white}
                    [{\hyperref[sec:apmodes]{\textbf{AP Modes}}}, for tree={child, fill=col4, draw=col4, edge=black}, s sep=0mm
                            [Track mode, for tree={child, fill=col3}]
                            [Wind Vine mode, for tree={child, fill=col1}]
                            [CTS mode, for tree={child, fill=col3}]
                            [River mode, for tree={child, fill=col1}]
                            [Dodge mode, for tree={child, fill=col3}]
                    ]
                    [Station, for tree={child, fill=col2, draw=col4, edge=black}]
                    [Manual tuning, for tree={child, fill=col1, draw=col4, edge=black}]
                    [\textbf{Ext devices}, for tree={child, fill=col4, draw=col4, edge=black}, s sep=0mm
                            [Steering Wheel, for tree={child, fill=col2}]
                            [Dodge Tiller, for tree={child, fill=col1}]
                            [Tillers ID Assign, for tree={child, fill=col2}]
                            [Joystick polling, for tree={child, fill=col1}]
                            [\textbf{Speed joystick}, calign=last, for tree={child, fill=col2}, s sep=0mm
                                    [Vx fore max, for tree={child, fill=col2}] 
                                    [Vx aft max, for tree={child, fill=col1}]
                                    [Vy max, for tree={child, fill=col2}]
                                    [Vx High, for tree={child, fill=col1}]
                                    [V min Current, for tree={child, fill=col2}]
                                    [High Gain, for tree={child, fill=col1}]
                                    [High Gain Type, for tree={child, fill=col2}]
                                    [Set HDG, for tree={child, fill=col1}]
                                    [JSync Type, for tree={child, fill=col2}]
                                    [Parking, for tree={child, fill=col1}]
                                    [Speed Rudder Limit, for tree={child, fill=col2}]
                            ]
                            [\textbf{GPS position}, calign=first, for tree={child, fill=col3, edge=black},  s sep=0mm
                                    [X, for tree={child, fill=col1}]
                                    [Y, for tree={child, fill=col3}]
                                    [Z, for tree={child, fill=col1}]
                                    [M filter, for tree={child, fill=col3}]
                                    [S filter, for tree={child, fill=col1}]
                                    [Reserved1, for tree={child, fill=col3}]
                                    [Reserved2, for tree={child, fill=col1}]
                                    [Reserved3, for tree={child, fill=col3}]
                                    [Pos Source, for tree={child, fill=col1}]
                                    [X corr, for tree={child, fill=col3}]
                                    [V filter, for tree={child, fill=col1}]
                            ] 
                            [ROT Tiller, for tree={child, fill=col1}, edge=black]
                    ]
                    [Mode select, for tree={child, fill=col2}, edge=black]
                    [Alarm timeout, for tree={child, fill=col1}, edge=black]
                    [\textbf{Configuration}, for tree={child, fill=col4, edge=black}, s sep=2mm
                            [Device mode, for tree={child, fill=col1}, edge=black]
                            [\textbf{JP Installation}, calign=last, for tree={child, fill=col2, edge=black},  s sep=0mm
                                    [JP config, for tree={child, fill=col2}]
                                    [JP Ext config, for tree={child, fill=col1}]
                                    [Reduce config, for tree={child, fill=col2}]
                                    [JP station, for tree={child, fill=col1}]
                                    [Monitor type, for tree={child, fill=col2}]
                                    [Low power, for tree={child, fill=col1}]
                                    [WJ booster, for tree={child, fill=col2}]
                                    [JFail Exit, for tree={child, fill=col1}]
                                    [Ahead Type, for tree={child, fill=col2}]
                                    [Smoothing, for tree={child, fill=col1}]
                                    [Limitation, for tree={child, fill=col2}]
                                    [Allocation, for tree={child, fill=col1}]
                                    [Password, for tree={child, fill=col2}]
                            ]
                            [\textbf{JP modes}, calign=first, for tree={child, fill=col3},  s sep=0mm
                                    [Anchor Watch, for tree={child, fill=col1}]
                                    [Hold Position, for tree={child, fill=col3}]
                                    [Strong Current, for tree={child, fill=col1}]
                                    [Joystick Ferry, for tree={child, fill=col3}]
                                    [Joystick Auto, for tree={child, fill=col1}]
                                    [Joystick Speed, for tree={child, fill=col3}]
                                    [Joystick Low Track, for tree={child, fill=col1}]
                                    [Joystick High Track, for tree={child, fill=col3}]
                                    [Joystick Horsing, for tree={child, fill=col1}]
                                    [Joystick Weathervan, for tree={child, fill=col3}]
                                    [Joystick Coord, for tree={child, fill=col1}]
                                    [Password, for tree={child, fill=col3}]
                                    [Secure Code, for tree={child, fill=col1}]
                            ]
                            [Low Speed HC, for tree={child, fill=col1}]
                            [3 rudders, for tree={child, fill=col2}]
                            [Password, for tree={child, fill=col1}]
                    ]
                    ]
           ]
                \end{forest}}
            \end{center}
\end{document}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.