forest, changing `s sep` such that it is at each second end node larger?












4















The following MWE generate a tree diagram (using the forest package) as I like to have:



documentclass[border=3mm]{standalone}
usepackage{forest}

begin{document}
tikzset{ELS/.style={% Edge Label Style
font=footnotesize, inner sep=2pt,
anchor=south #1, % label position: "ELS=west" or "EL=east"
pos=0.6}
}
newcommandEL{edge label}
begin{forest}
for tree={
draw, semithick,
parent anchor=children,
l sep=13 mm,
s sep= 1 mm,
anchor=parent,% <--- work around alignment issue
},
EL/.style = {
before typesetting nodes={%% <--- work around edge labels positioning
where n=1{%
edge label/.wrap value={node[ELS=east]{$#1$}}
}{%
edge label/.wrap value={node[ELS=west]{$#1$}}
}
}
}
[Start
[A, EL=leq 0.5
[A1, EL=leq 0.3
[A11, EL=leq 0.7]
[A12, EL=geq 0.7]
]
[,phantom,fit=band] % <---
[A2, EL=geq 0.3
[A21, EL=leq 0.7]
[A22, EL=geq 0.7]
]
]
[,phantom,fit=band] % <---
[B, EL=geq 0.5
[B1, EL=leq 0.3
[B11, EL=leq 0.7]
[B12, EL=geq 0.7]
]
[,phantom,fit=band] % <---
[B2, EL=geq 0.3
[B11, EL=leq 0.7]
[B12, EL=geq 0.7]
]
]
]
end{forest}
end{document}


enter image description here



I wonder, if it is possible to obtain the same result without inserting phantom nodes? Also I will appreciate any improvements of the my MWE code.



addendum: one way is insert manually s sep as is done code below:



[Start,s sep=4mm
[A, EL=leq 0.5,s sep=4mm
[A1, EL=leq 0.3,s sep=1mm
[A11, EL=leq 0.7]
[A12, EL=geq 0.7]
]
[A2, EL=geq 0.3,s sep=1mm
[A21, EL=leq 0.7]
[A22, EL=geq 0.7]
]
]
[B, EL=geq 0.5,s sep=4mm
[B1, EL=leq 0.3,s sep=1mm
[B11, EL=leq 0.7]
[B12, EL=geq 0.7]
]
[B2, EL=geq 0.3,s sep=1mm
[B11, EL=leq 0.7]
[B12, EL=geq 0.7]
]
]
]


considering above solution the question is now: is possible to write a code in fortree preamble, which will replace tose manulaly inserted s sep=...?










share|improve this question





























    4















    The following MWE generate a tree diagram (using the forest package) as I like to have:



    documentclass[border=3mm]{standalone}
    usepackage{forest}

    begin{document}
    tikzset{ELS/.style={% Edge Label Style
    font=footnotesize, inner sep=2pt,
    anchor=south #1, % label position: "ELS=west" or "EL=east"
    pos=0.6}
    }
    newcommandEL{edge label}
    begin{forest}
    for tree={
    draw, semithick,
    parent anchor=children,
    l sep=13 mm,
    s sep= 1 mm,
    anchor=parent,% <--- work around alignment issue
    },
    EL/.style = {
    before typesetting nodes={%% <--- work around edge labels positioning
    where n=1{%
    edge label/.wrap value={node[ELS=east]{$#1$}}
    }{%
    edge label/.wrap value={node[ELS=west]{$#1$}}
    }
    }
    }
    [Start
    [A, EL=leq 0.5
    [A1, EL=leq 0.3
    [A11, EL=leq 0.7]
    [A12, EL=geq 0.7]
    ]
    [,phantom,fit=band] % <---
    [A2, EL=geq 0.3
    [A21, EL=leq 0.7]
    [A22, EL=geq 0.7]
    ]
    ]
    [,phantom,fit=band] % <---
    [B, EL=geq 0.5
    [B1, EL=leq 0.3
    [B11, EL=leq 0.7]
    [B12, EL=geq 0.7]
    ]
    [,phantom,fit=band] % <---
    [B2, EL=geq 0.3
    [B11, EL=leq 0.7]
    [B12, EL=geq 0.7]
    ]
    ]
    ]
    end{forest}
    end{document}


    enter image description here



    I wonder, if it is possible to obtain the same result without inserting phantom nodes? Also I will appreciate any improvements of the my MWE code.



    addendum: one way is insert manually s sep as is done code below:



    [Start,s sep=4mm
    [A, EL=leq 0.5,s sep=4mm
    [A1, EL=leq 0.3,s sep=1mm
    [A11, EL=leq 0.7]
    [A12, EL=geq 0.7]
    ]
    [A2, EL=geq 0.3,s sep=1mm
    [A21, EL=leq 0.7]
    [A22, EL=geq 0.7]
    ]
    ]
    [B, EL=geq 0.5,s sep=4mm
    [B1, EL=leq 0.3,s sep=1mm
    [B11, EL=leq 0.7]
    [B12, EL=geq 0.7]
    ]
    [B2, EL=geq 0.3,s sep=1mm
    [B11, EL=leq 0.7]
    [B12, EL=geq 0.7]
    ]
    ]
    ]


    considering above solution the question is now: is possible to write a code in fortree preamble, which will replace tose manulaly inserted s sep=...?










    share|improve this question



























      4












      4








      4








      The following MWE generate a tree diagram (using the forest package) as I like to have:



      documentclass[border=3mm]{standalone}
      usepackage{forest}

      begin{document}
      tikzset{ELS/.style={% Edge Label Style
      font=footnotesize, inner sep=2pt,
      anchor=south #1, % label position: "ELS=west" or "EL=east"
      pos=0.6}
      }
      newcommandEL{edge label}
      begin{forest}
      for tree={
      draw, semithick,
      parent anchor=children,
      l sep=13 mm,
      s sep= 1 mm,
      anchor=parent,% <--- work around alignment issue
      },
      EL/.style = {
      before typesetting nodes={%% <--- work around edge labels positioning
      where n=1{%
      edge label/.wrap value={node[ELS=east]{$#1$}}
      }{%
      edge label/.wrap value={node[ELS=west]{$#1$}}
      }
      }
      }
      [Start
      [A, EL=leq 0.5
      [A1, EL=leq 0.3
      [A11, EL=leq 0.7]
      [A12, EL=geq 0.7]
      ]
      [,phantom,fit=band] % <---
      [A2, EL=geq 0.3
      [A21, EL=leq 0.7]
      [A22, EL=geq 0.7]
      ]
      ]
      [,phantom,fit=band] % <---
      [B, EL=geq 0.5
      [B1, EL=leq 0.3
      [B11, EL=leq 0.7]
      [B12, EL=geq 0.7]
      ]
      [,phantom,fit=band] % <---
      [B2, EL=geq 0.3
      [B11, EL=leq 0.7]
      [B12, EL=geq 0.7]
      ]
      ]
      ]
      end{forest}
      end{document}


      enter image description here



      I wonder, if it is possible to obtain the same result without inserting phantom nodes? Also I will appreciate any improvements of the my MWE code.



      addendum: one way is insert manually s sep as is done code below:



      [Start,s sep=4mm
      [A, EL=leq 0.5,s sep=4mm
      [A1, EL=leq 0.3,s sep=1mm
      [A11, EL=leq 0.7]
      [A12, EL=geq 0.7]
      ]
      [A2, EL=geq 0.3,s sep=1mm
      [A21, EL=leq 0.7]
      [A22, EL=geq 0.7]
      ]
      ]
      [B, EL=geq 0.5,s sep=4mm
      [B1, EL=leq 0.3,s sep=1mm
      [B11, EL=leq 0.7]
      [B12, EL=geq 0.7]
      ]
      [B2, EL=geq 0.3,s sep=1mm
      [B11, EL=leq 0.7]
      [B12, EL=geq 0.7]
      ]
      ]
      ]


      considering above solution the question is now: is possible to write a code in fortree preamble, which will replace tose manulaly inserted s sep=...?










      share|improve this question
















      The following MWE generate a tree diagram (using the forest package) as I like to have:



      documentclass[border=3mm]{standalone}
      usepackage{forest}

      begin{document}
      tikzset{ELS/.style={% Edge Label Style
      font=footnotesize, inner sep=2pt,
      anchor=south #1, % label position: "ELS=west" or "EL=east"
      pos=0.6}
      }
      newcommandEL{edge label}
      begin{forest}
      for tree={
      draw, semithick,
      parent anchor=children,
      l sep=13 mm,
      s sep= 1 mm,
      anchor=parent,% <--- work around alignment issue
      },
      EL/.style = {
      before typesetting nodes={%% <--- work around edge labels positioning
      where n=1{%
      edge label/.wrap value={node[ELS=east]{$#1$}}
      }{%
      edge label/.wrap value={node[ELS=west]{$#1$}}
      }
      }
      }
      [Start
      [A, EL=leq 0.5
      [A1, EL=leq 0.3
      [A11, EL=leq 0.7]
      [A12, EL=geq 0.7]
      ]
      [,phantom,fit=band] % <---
      [A2, EL=geq 0.3
      [A21, EL=leq 0.7]
      [A22, EL=geq 0.7]
      ]
      ]
      [,phantom,fit=band] % <---
      [B, EL=geq 0.5
      [B1, EL=leq 0.3
      [B11, EL=leq 0.7]
      [B12, EL=geq 0.7]
      ]
      [,phantom,fit=band] % <---
      [B2, EL=geq 0.3
      [B11, EL=leq 0.7]
      [B12, EL=geq 0.7]
      ]
      ]
      ]
      end{forest}
      end{document}


      enter image description here



      I wonder, if it is possible to obtain the same result without inserting phantom nodes? Also I will appreciate any improvements of the my MWE code.



      addendum: one way is insert manually s sep as is done code below:



      [Start,s sep=4mm
      [A, EL=leq 0.5,s sep=4mm
      [A1, EL=leq 0.3,s sep=1mm
      [A11, EL=leq 0.7]
      [A12, EL=geq 0.7]
      ]
      [A2, EL=geq 0.3,s sep=1mm
      [A21, EL=leq 0.7]
      [A22, EL=geq 0.7]
      ]
      ]
      [B, EL=geq 0.5,s sep=4mm
      [B1, EL=leq 0.3,s sep=1mm
      [B11, EL=leq 0.7]
      [B12, EL=geq 0.7]
      ]
      [B2, EL=geq 0.3,s sep=1mm
      [B11, EL=leq 0.7]
      [B12, EL=geq 0.7]
      ]
      ]
      ]


      considering above solution the question is now: is possible to write a code in fortree preamble, which will replace tose manulaly inserted s sep=...?







      forest






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Mar 28 at 20:51







      Zarko

















      asked Mar 28 at 19:11









      ZarkoZarko

      128k868168




      128k868168






















          2 Answers
          2






          active

          oldest

          votes


















          3














          Yes. Use s sep+.



          documentclass[border=3mm]{standalone}
          usepackage{forest}

          begin{document}
          tikzset{ELS/.style={% Edge Label Style
          font=footnotesize, inner sep=2pt,
          anchor=south #1, % label position: "ELS=west" or "EL=east"
          pos=0.6}
          }
          newcommandEL{edge label}
          begin{forest}
          for tree={
          draw, semithick,
          parent anchor=children,
          l sep=13 mm,
          s sep+=2mm,
          anchor=parent,% <--- work around alignment issue
          },
          EL/.style = {
          before typesetting nodes={%% <--- work around edge labels positioning
          where n=1{%
          edge label/.wrap value={node[ELS=east]{$#1$}}
          }{%
          edge label/.wrap value={node[ELS=west]{$#1$}}
          }
          }
          }
          [Start
          [A, EL=leq 0.5
          [A1, EL=leq 0.3,s sep+=-3mm
          [A11, EL=leq 0.7]
          [A12, EL=geq 0.7]
          ]
          %[,phantom,fit=band] % <---
          [A2, EL=geq 0.3,s sep+=-3mm
          [A21, EL=leq 0.7]
          [A22, EL=geq 0.7]
          ]
          ]
          %[,phantom,fit=band] % <---
          [B, EL=geq 0.5
          [B1, EL=leq 0.3,s sep+=-3mm
          [B11, EL=leq 0.7]
          [B12, EL=geq 0.7]
          ]
          %[,phantom,fit=band] % <---
          [B2, EL=geq 0.3,s sep+=-3mm
          [B11, EL=leq 0.7]
          [B12, EL=geq 0.7]
          ]
          ]
          ]
          end{forest}
          end{document}


          enter image description here



          And I had this on my machine before Zarko pinged me. (I didn't think it is worthwhile to add an update for it.)



          documentclass[border=3mm]{standalone}
          usepackage{forest}

          begin{document}
          tikzset{ELS/.style={% Edge Label Style
          font=footnotesize, inner sep=2pt,
          anchor=south #1, % label position: "ELS=west" or "EL=east"
          pos=0.6}
          }
          newcommandEL{edge label}
          begin{forest}
          for tree={
          draw, semithick,
          parent anchor=children,
          s sep=4mm,
          l sep=13 mm,
          anchor=parent,% <--- work around alignment issue
          },
          EL/.style = {
          before typesetting nodes={%% <--- work around edge labels positioning
          where n=1{%
          edge label/.wrap value={node[ELS=east]{$#1$}}
          }{%
          edge label/.wrap value={node[ELS=west]{$#1$}}
          },
          where level=2{s sep+=-1mm}{s sep+=0.5mm}
          }
          }
          [Start
          [A, EL=leq 0.5
          [A1, EL=leq 0.3
          [A11, EL=leq 0.7]
          [A12, EL=geq 0.7]
          ]
          %[,phantom,fit=band] % <---
          [A2, EL=geq 0.3
          [A21, EL=leq 0.7]
          [A22, EL=geq 0.7]
          ]
          ]
          %[,phantom,fit=band] % <---
          [B, EL=geq 0.5
          [B1, EL=leq 0.3
          [B11, EL=leq 0.7]
          [B12, EL=geq 0.7]
          ]
          %[,phantom,fit=band] % <---
          [B2, EL=geq 0.3
          [B11, EL=leq 0.7]
          [B12, EL=geq 0.7]
          ]
          ]
          ]
          end{forest}
          end{document}


          enter image description here






          share|improve this answer


























          • thank you very much for answer. apparently my question is not clear enough. i like to obtain in question showed image with removed ˙phantom` nodes (indicated by % <---). as i see, in your suggestion the distances between nodes at level 0 are equal. i like to have smaller between A11 and A12 and bigger between A21 and A22, etc.

            – Zarko
            Mar 28 at 20:39











          • @Zarko Sorry, didn't read carefully. Better now?

            – marmot
            Mar 28 at 20:48











          • yes, that is. i need to check how you achieve this :-)

            – Zarko
            Mar 28 at 20:52











          • with help of your answer and after reading forest documentation again (and again) i figured out solution which i like to have: from your code i remove all s sep+=-3mm from nodes on the second level and to fortree add option where level=2{s sep+=-1mm}{}. it works fine.

            – Zarko
            Mar 28 at 23:18













          • @Zarko Yes, I have almost the same thing on my machine. where level=2{s sep+=...}{s sep+=...} but with other dimensions.

            – marmot
            Mar 28 at 23:21



















          2














          Just for record. With help of nice @marmot answer and after reading forest documentation again (and again) i figured out the solution which i looked for:



          documentclass[border=3mm, preview]{standalone}
          usepackage{forest}

          begin{document}
          tikzset{ELS/.style={% Edge Label Style
          font=footnotesizesffamily, inner sep=2pt,
          anchor=south #1, % label position: "ELS=west" or "ELS=east"
          pos=0.6}
          }
          begin{forest}
          for tree={
          draw,
          semithick,
          % fill=orange!20,
          parent anchor=children,
          l sep=13 mm,
          s sep=4mm,
          where level=2{s sep=1mm}{}
          },
          EL/.style = {
          before typesetting nodes={%
          where n=1{%
          edge label/.wrap value={node[ELS=east]{$#1$}}
          }{%
          edge label/.wrap value={node[ELS=west]{$#1$}}
          }
          }
          }
          [Start
          [A, EL=leq 0.5
          [A1, EL=leq 0.3
          [A11, EL=leq 0.7]
          [A12, EL=geq 0.7]
          ]
          [A2, EL=geq 0.3
          [A21, EL=leq 0.7]
          [A22, EL=geq 0.7]
          ]
          ]
          [B, EL=geq 0.5
          [B1, EL=leq 0.3
          [B11, EL=leq 0.7]
          [B12, EL=geq 0.7]
          ]
          [B2, EL=geq 0.3
          [B11, EL=leq 0.7]
          [B12, EL=geq 0.7]
          ]
          ]
          ] end{forest}
          end{document}


          which gives desired result:



          enter image description here






          share|improve this answer


























            Your Answer








            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "85"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: false,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: null,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f481967%2fforest-changing-s-sep-such-that-it-is-at-each-second-end-node-larger%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            2 Answers
            2






            active

            oldest

            votes








            2 Answers
            2






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            3














            Yes. Use s sep+.



            documentclass[border=3mm]{standalone}
            usepackage{forest}

            begin{document}
            tikzset{ELS/.style={% Edge Label Style
            font=footnotesize, inner sep=2pt,
            anchor=south #1, % label position: "ELS=west" or "EL=east"
            pos=0.6}
            }
            newcommandEL{edge label}
            begin{forest}
            for tree={
            draw, semithick,
            parent anchor=children,
            l sep=13 mm,
            s sep+=2mm,
            anchor=parent,% <--- work around alignment issue
            },
            EL/.style = {
            before typesetting nodes={%% <--- work around edge labels positioning
            where n=1{%
            edge label/.wrap value={node[ELS=east]{$#1$}}
            }{%
            edge label/.wrap value={node[ELS=west]{$#1$}}
            }
            }
            }
            [Start
            [A, EL=leq 0.5
            [A1, EL=leq 0.3,s sep+=-3mm
            [A11, EL=leq 0.7]
            [A12, EL=geq 0.7]
            ]
            %[,phantom,fit=band] % <---
            [A2, EL=geq 0.3,s sep+=-3mm
            [A21, EL=leq 0.7]
            [A22, EL=geq 0.7]
            ]
            ]
            %[,phantom,fit=band] % <---
            [B, EL=geq 0.5
            [B1, EL=leq 0.3,s sep+=-3mm
            [B11, EL=leq 0.7]
            [B12, EL=geq 0.7]
            ]
            %[,phantom,fit=band] % <---
            [B2, EL=geq 0.3,s sep+=-3mm
            [B11, EL=leq 0.7]
            [B12, EL=geq 0.7]
            ]
            ]
            ]
            end{forest}
            end{document}


            enter image description here



            And I had this on my machine before Zarko pinged me. (I didn't think it is worthwhile to add an update for it.)



            documentclass[border=3mm]{standalone}
            usepackage{forest}

            begin{document}
            tikzset{ELS/.style={% Edge Label Style
            font=footnotesize, inner sep=2pt,
            anchor=south #1, % label position: "ELS=west" or "EL=east"
            pos=0.6}
            }
            newcommandEL{edge label}
            begin{forest}
            for tree={
            draw, semithick,
            parent anchor=children,
            s sep=4mm,
            l sep=13 mm,
            anchor=parent,% <--- work around alignment issue
            },
            EL/.style = {
            before typesetting nodes={%% <--- work around edge labels positioning
            where n=1{%
            edge label/.wrap value={node[ELS=east]{$#1$}}
            }{%
            edge label/.wrap value={node[ELS=west]{$#1$}}
            },
            where level=2{s sep+=-1mm}{s sep+=0.5mm}
            }
            }
            [Start
            [A, EL=leq 0.5
            [A1, EL=leq 0.3
            [A11, EL=leq 0.7]
            [A12, EL=geq 0.7]
            ]
            %[,phantom,fit=band] % <---
            [A2, EL=geq 0.3
            [A21, EL=leq 0.7]
            [A22, EL=geq 0.7]
            ]
            ]
            %[,phantom,fit=band] % <---
            [B, EL=geq 0.5
            [B1, EL=leq 0.3
            [B11, EL=leq 0.7]
            [B12, EL=geq 0.7]
            ]
            %[,phantom,fit=band] % <---
            [B2, EL=geq 0.3
            [B11, EL=leq 0.7]
            [B12, EL=geq 0.7]
            ]
            ]
            ]
            end{forest}
            end{document}


            enter image description here






            share|improve this answer


























            • thank you very much for answer. apparently my question is not clear enough. i like to obtain in question showed image with removed ˙phantom` nodes (indicated by % <---). as i see, in your suggestion the distances between nodes at level 0 are equal. i like to have smaller between A11 and A12 and bigger between A21 and A22, etc.

              – Zarko
              Mar 28 at 20:39











            • @Zarko Sorry, didn't read carefully. Better now?

              – marmot
              Mar 28 at 20:48











            • yes, that is. i need to check how you achieve this :-)

              – Zarko
              Mar 28 at 20:52











            • with help of your answer and after reading forest documentation again (and again) i figured out solution which i like to have: from your code i remove all s sep+=-3mm from nodes on the second level and to fortree add option where level=2{s sep+=-1mm}{}. it works fine.

              – Zarko
              Mar 28 at 23:18













            • @Zarko Yes, I have almost the same thing on my machine. where level=2{s sep+=...}{s sep+=...} but with other dimensions.

              – marmot
              Mar 28 at 23:21
















            3














            Yes. Use s sep+.



            documentclass[border=3mm]{standalone}
            usepackage{forest}

            begin{document}
            tikzset{ELS/.style={% Edge Label Style
            font=footnotesize, inner sep=2pt,
            anchor=south #1, % label position: "ELS=west" or "EL=east"
            pos=0.6}
            }
            newcommandEL{edge label}
            begin{forest}
            for tree={
            draw, semithick,
            parent anchor=children,
            l sep=13 mm,
            s sep+=2mm,
            anchor=parent,% <--- work around alignment issue
            },
            EL/.style = {
            before typesetting nodes={%% <--- work around edge labels positioning
            where n=1{%
            edge label/.wrap value={node[ELS=east]{$#1$}}
            }{%
            edge label/.wrap value={node[ELS=west]{$#1$}}
            }
            }
            }
            [Start
            [A, EL=leq 0.5
            [A1, EL=leq 0.3,s sep+=-3mm
            [A11, EL=leq 0.7]
            [A12, EL=geq 0.7]
            ]
            %[,phantom,fit=band] % <---
            [A2, EL=geq 0.3,s sep+=-3mm
            [A21, EL=leq 0.7]
            [A22, EL=geq 0.7]
            ]
            ]
            %[,phantom,fit=band] % <---
            [B, EL=geq 0.5
            [B1, EL=leq 0.3,s sep+=-3mm
            [B11, EL=leq 0.7]
            [B12, EL=geq 0.7]
            ]
            %[,phantom,fit=band] % <---
            [B2, EL=geq 0.3,s sep+=-3mm
            [B11, EL=leq 0.7]
            [B12, EL=geq 0.7]
            ]
            ]
            ]
            end{forest}
            end{document}


            enter image description here



            And I had this on my machine before Zarko pinged me. (I didn't think it is worthwhile to add an update for it.)



            documentclass[border=3mm]{standalone}
            usepackage{forest}

            begin{document}
            tikzset{ELS/.style={% Edge Label Style
            font=footnotesize, inner sep=2pt,
            anchor=south #1, % label position: "ELS=west" or "EL=east"
            pos=0.6}
            }
            newcommandEL{edge label}
            begin{forest}
            for tree={
            draw, semithick,
            parent anchor=children,
            s sep=4mm,
            l sep=13 mm,
            anchor=parent,% <--- work around alignment issue
            },
            EL/.style = {
            before typesetting nodes={%% <--- work around edge labels positioning
            where n=1{%
            edge label/.wrap value={node[ELS=east]{$#1$}}
            }{%
            edge label/.wrap value={node[ELS=west]{$#1$}}
            },
            where level=2{s sep+=-1mm}{s sep+=0.5mm}
            }
            }
            [Start
            [A, EL=leq 0.5
            [A1, EL=leq 0.3
            [A11, EL=leq 0.7]
            [A12, EL=geq 0.7]
            ]
            %[,phantom,fit=band] % <---
            [A2, EL=geq 0.3
            [A21, EL=leq 0.7]
            [A22, EL=geq 0.7]
            ]
            ]
            %[,phantom,fit=band] % <---
            [B, EL=geq 0.5
            [B1, EL=leq 0.3
            [B11, EL=leq 0.7]
            [B12, EL=geq 0.7]
            ]
            %[,phantom,fit=band] % <---
            [B2, EL=geq 0.3
            [B11, EL=leq 0.7]
            [B12, EL=geq 0.7]
            ]
            ]
            ]
            end{forest}
            end{document}


            enter image description here






            share|improve this answer


























            • thank you very much for answer. apparently my question is not clear enough. i like to obtain in question showed image with removed ˙phantom` nodes (indicated by % <---). as i see, in your suggestion the distances between nodes at level 0 are equal. i like to have smaller between A11 and A12 and bigger between A21 and A22, etc.

              – Zarko
              Mar 28 at 20:39











            • @Zarko Sorry, didn't read carefully. Better now?

              – marmot
              Mar 28 at 20:48











            • yes, that is. i need to check how you achieve this :-)

              – Zarko
              Mar 28 at 20:52











            • with help of your answer and after reading forest documentation again (and again) i figured out solution which i like to have: from your code i remove all s sep+=-3mm from nodes on the second level and to fortree add option where level=2{s sep+=-1mm}{}. it works fine.

              – Zarko
              Mar 28 at 23:18













            • @Zarko Yes, I have almost the same thing on my machine. where level=2{s sep+=...}{s sep+=...} but with other dimensions.

              – marmot
              Mar 28 at 23:21














            3












            3








            3







            Yes. Use s sep+.



            documentclass[border=3mm]{standalone}
            usepackage{forest}

            begin{document}
            tikzset{ELS/.style={% Edge Label Style
            font=footnotesize, inner sep=2pt,
            anchor=south #1, % label position: "ELS=west" or "EL=east"
            pos=0.6}
            }
            newcommandEL{edge label}
            begin{forest}
            for tree={
            draw, semithick,
            parent anchor=children,
            l sep=13 mm,
            s sep+=2mm,
            anchor=parent,% <--- work around alignment issue
            },
            EL/.style = {
            before typesetting nodes={%% <--- work around edge labels positioning
            where n=1{%
            edge label/.wrap value={node[ELS=east]{$#1$}}
            }{%
            edge label/.wrap value={node[ELS=west]{$#1$}}
            }
            }
            }
            [Start
            [A, EL=leq 0.5
            [A1, EL=leq 0.3,s sep+=-3mm
            [A11, EL=leq 0.7]
            [A12, EL=geq 0.7]
            ]
            %[,phantom,fit=band] % <---
            [A2, EL=geq 0.3,s sep+=-3mm
            [A21, EL=leq 0.7]
            [A22, EL=geq 0.7]
            ]
            ]
            %[,phantom,fit=band] % <---
            [B, EL=geq 0.5
            [B1, EL=leq 0.3,s sep+=-3mm
            [B11, EL=leq 0.7]
            [B12, EL=geq 0.7]
            ]
            %[,phantom,fit=band] % <---
            [B2, EL=geq 0.3,s sep+=-3mm
            [B11, EL=leq 0.7]
            [B12, EL=geq 0.7]
            ]
            ]
            ]
            end{forest}
            end{document}


            enter image description here



            And I had this on my machine before Zarko pinged me. (I didn't think it is worthwhile to add an update for it.)



            documentclass[border=3mm]{standalone}
            usepackage{forest}

            begin{document}
            tikzset{ELS/.style={% Edge Label Style
            font=footnotesize, inner sep=2pt,
            anchor=south #1, % label position: "ELS=west" or "EL=east"
            pos=0.6}
            }
            newcommandEL{edge label}
            begin{forest}
            for tree={
            draw, semithick,
            parent anchor=children,
            s sep=4mm,
            l sep=13 mm,
            anchor=parent,% <--- work around alignment issue
            },
            EL/.style = {
            before typesetting nodes={%% <--- work around edge labels positioning
            where n=1{%
            edge label/.wrap value={node[ELS=east]{$#1$}}
            }{%
            edge label/.wrap value={node[ELS=west]{$#1$}}
            },
            where level=2{s sep+=-1mm}{s sep+=0.5mm}
            }
            }
            [Start
            [A, EL=leq 0.5
            [A1, EL=leq 0.3
            [A11, EL=leq 0.7]
            [A12, EL=geq 0.7]
            ]
            %[,phantom,fit=band] % <---
            [A2, EL=geq 0.3
            [A21, EL=leq 0.7]
            [A22, EL=geq 0.7]
            ]
            ]
            %[,phantom,fit=band] % <---
            [B, EL=geq 0.5
            [B1, EL=leq 0.3
            [B11, EL=leq 0.7]
            [B12, EL=geq 0.7]
            ]
            %[,phantom,fit=band] % <---
            [B2, EL=geq 0.3
            [B11, EL=leq 0.7]
            [B12, EL=geq 0.7]
            ]
            ]
            ]
            end{forest}
            end{document}


            enter image description here






            share|improve this answer















            Yes. Use s sep+.



            documentclass[border=3mm]{standalone}
            usepackage{forest}

            begin{document}
            tikzset{ELS/.style={% Edge Label Style
            font=footnotesize, inner sep=2pt,
            anchor=south #1, % label position: "ELS=west" or "EL=east"
            pos=0.6}
            }
            newcommandEL{edge label}
            begin{forest}
            for tree={
            draw, semithick,
            parent anchor=children,
            l sep=13 mm,
            s sep+=2mm,
            anchor=parent,% <--- work around alignment issue
            },
            EL/.style = {
            before typesetting nodes={%% <--- work around edge labels positioning
            where n=1{%
            edge label/.wrap value={node[ELS=east]{$#1$}}
            }{%
            edge label/.wrap value={node[ELS=west]{$#1$}}
            }
            }
            }
            [Start
            [A, EL=leq 0.5
            [A1, EL=leq 0.3,s sep+=-3mm
            [A11, EL=leq 0.7]
            [A12, EL=geq 0.7]
            ]
            %[,phantom,fit=band] % <---
            [A2, EL=geq 0.3,s sep+=-3mm
            [A21, EL=leq 0.7]
            [A22, EL=geq 0.7]
            ]
            ]
            %[,phantom,fit=band] % <---
            [B, EL=geq 0.5
            [B1, EL=leq 0.3,s sep+=-3mm
            [B11, EL=leq 0.7]
            [B12, EL=geq 0.7]
            ]
            %[,phantom,fit=band] % <---
            [B2, EL=geq 0.3,s sep+=-3mm
            [B11, EL=leq 0.7]
            [B12, EL=geq 0.7]
            ]
            ]
            ]
            end{forest}
            end{document}


            enter image description here



            And I had this on my machine before Zarko pinged me. (I didn't think it is worthwhile to add an update for it.)



            documentclass[border=3mm]{standalone}
            usepackage{forest}

            begin{document}
            tikzset{ELS/.style={% Edge Label Style
            font=footnotesize, inner sep=2pt,
            anchor=south #1, % label position: "ELS=west" or "EL=east"
            pos=0.6}
            }
            newcommandEL{edge label}
            begin{forest}
            for tree={
            draw, semithick,
            parent anchor=children,
            s sep=4mm,
            l sep=13 mm,
            anchor=parent,% <--- work around alignment issue
            },
            EL/.style = {
            before typesetting nodes={%% <--- work around edge labels positioning
            where n=1{%
            edge label/.wrap value={node[ELS=east]{$#1$}}
            }{%
            edge label/.wrap value={node[ELS=west]{$#1$}}
            },
            where level=2{s sep+=-1mm}{s sep+=0.5mm}
            }
            }
            [Start
            [A, EL=leq 0.5
            [A1, EL=leq 0.3
            [A11, EL=leq 0.7]
            [A12, EL=geq 0.7]
            ]
            %[,phantom,fit=band] % <---
            [A2, EL=geq 0.3
            [A21, EL=leq 0.7]
            [A22, EL=geq 0.7]
            ]
            ]
            %[,phantom,fit=band] % <---
            [B, EL=geq 0.5
            [B1, EL=leq 0.3
            [B11, EL=leq 0.7]
            [B12, EL=geq 0.7]
            ]
            %[,phantom,fit=band] % <---
            [B2, EL=geq 0.3
            [B11, EL=leq 0.7]
            [B12, EL=geq 0.7]
            ]
            ]
            ]
            end{forest}
            end{document}


            enter image description here







            share|improve this answer














            share|improve this answer



            share|improve this answer








            edited Mar 28 at 23:47

























            answered Mar 28 at 20:30









            marmotmarmot

            113k5145275




            113k5145275













            • thank you very much for answer. apparently my question is not clear enough. i like to obtain in question showed image with removed ˙phantom` nodes (indicated by % <---). as i see, in your suggestion the distances between nodes at level 0 are equal. i like to have smaller between A11 and A12 and bigger between A21 and A22, etc.

              – Zarko
              Mar 28 at 20:39











            • @Zarko Sorry, didn't read carefully. Better now?

              – marmot
              Mar 28 at 20:48











            • yes, that is. i need to check how you achieve this :-)

              – Zarko
              Mar 28 at 20:52











            • with help of your answer and after reading forest documentation again (and again) i figured out solution which i like to have: from your code i remove all s sep+=-3mm from nodes on the second level and to fortree add option where level=2{s sep+=-1mm}{}. it works fine.

              – Zarko
              Mar 28 at 23:18













            • @Zarko Yes, I have almost the same thing on my machine. where level=2{s sep+=...}{s sep+=...} but with other dimensions.

              – marmot
              Mar 28 at 23:21



















            • thank you very much for answer. apparently my question is not clear enough. i like to obtain in question showed image with removed ˙phantom` nodes (indicated by % <---). as i see, in your suggestion the distances between nodes at level 0 are equal. i like to have smaller between A11 and A12 and bigger between A21 and A22, etc.

              – Zarko
              Mar 28 at 20:39











            • @Zarko Sorry, didn't read carefully. Better now?

              – marmot
              Mar 28 at 20:48











            • yes, that is. i need to check how you achieve this :-)

              – Zarko
              Mar 28 at 20:52











            • with help of your answer and after reading forest documentation again (and again) i figured out solution which i like to have: from your code i remove all s sep+=-3mm from nodes on the second level and to fortree add option where level=2{s sep+=-1mm}{}. it works fine.

              – Zarko
              Mar 28 at 23:18













            • @Zarko Yes, I have almost the same thing on my machine. where level=2{s sep+=...}{s sep+=...} but with other dimensions.

              – marmot
              Mar 28 at 23:21

















            thank you very much for answer. apparently my question is not clear enough. i like to obtain in question showed image with removed ˙phantom` nodes (indicated by % <---). as i see, in your suggestion the distances between nodes at level 0 are equal. i like to have smaller between A11 and A12 and bigger between A21 and A22, etc.

            – Zarko
            Mar 28 at 20:39





            thank you very much for answer. apparently my question is not clear enough. i like to obtain in question showed image with removed ˙phantom` nodes (indicated by % <---). as i see, in your suggestion the distances between nodes at level 0 are equal. i like to have smaller between A11 and A12 and bigger between A21 and A22, etc.

            – Zarko
            Mar 28 at 20:39













            @Zarko Sorry, didn't read carefully. Better now?

            – marmot
            Mar 28 at 20:48





            @Zarko Sorry, didn't read carefully. Better now?

            – marmot
            Mar 28 at 20:48













            yes, that is. i need to check how you achieve this :-)

            – Zarko
            Mar 28 at 20:52





            yes, that is. i need to check how you achieve this :-)

            – Zarko
            Mar 28 at 20:52













            with help of your answer and after reading forest documentation again (and again) i figured out solution which i like to have: from your code i remove all s sep+=-3mm from nodes on the second level and to fortree add option where level=2{s sep+=-1mm}{}. it works fine.

            – Zarko
            Mar 28 at 23:18







            with help of your answer and after reading forest documentation again (and again) i figured out solution which i like to have: from your code i remove all s sep+=-3mm from nodes on the second level and to fortree add option where level=2{s sep+=-1mm}{}. it works fine.

            – Zarko
            Mar 28 at 23:18















            @Zarko Yes, I have almost the same thing on my machine. where level=2{s sep+=...}{s sep+=...} but with other dimensions.

            – marmot
            Mar 28 at 23:21





            @Zarko Yes, I have almost the same thing on my machine. where level=2{s sep+=...}{s sep+=...} but with other dimensions.

            – marmot
            Mar 28 at 23:21











            2














            Just for record. With help of nice @marmot answer and after reading forest documentation again (and again) i figured out the solution which i looked for:



            documentclass[border=3mm, preview]{standalone}
            usepackage{forest}

            begin{document}
            tikzset{ELS/.style={% Edge Label Style
            font=footnotesizesffamily, inner sep=2pt,
            anchor=south #1, % label position: "ELS=west" or "ELS=east"
            pos=0.6}
            }
            begin{forest}
            for tree={
            draw,
            semithick,
            % fill=orange!20,
            parent anchor=children,
            l sep=13 mm,
            s sep=4mm,
            where level=2{s sep=1mm}{}
            },
            EL/.style = {
            before typesetting nodes={%
            where n=1{%
            edge label/.wrap value={node[ELS=east]{$#1$}}
            }{%
            edge label/.wrap value={node[ELS=west]{$#1$}}
            }
            }
            }
            [Start
            [A, EL=leq 0.5
            [A1, EL=leq 0.3
            [A11, EL=leq 0.7]
            [A12, EL=geq 0.7]
            ]
            [A2, EL=geq 0.3
            [A21, EL=leq 0.7]
            [A22, EL=geq 0.7]
            ]
            ]
            [B, EL=geq 0.5
            [B1, EL=leq 0.3
            [B11, EL=leq 0.7]
            [B12, EL=geq 0.7]
            ]
            [B2, EL=geq 0.3
            [B11, EL=leq 0.7]
            [B12, EL=geq 0.7]
            ]
            ]
            ] end{forest}
            end{document}


            which gives desired result:



            enter image description here






            share|improve this answer






























              2














              Just for record. With help of nice @marmot answer and after reading forest documentation again (and again) i figured out the solution which i looked for:



              documentclass[border=3mm, preview]{standalone}
              usepackage{forest}

              begin{document}
              tikzset{ELS/.style={% Edge Label Style
              font=footnotesizesffamily, inner sep=2pt,
              anchor=south #1, % label position: "ELS=west" or "ELS=east"
              pos=0.6}
              }
              begin{forest}
              for tree={
              draw,
              semithick,
              % fill=orange!20,
              parent anchor=children,
              l sep=13 mm,
              s sep=4mm,
              where level=2{s sep=1mm}{}
              },
              EL/.style = {
              before typesetting nodes={%
              where n=1{%
              edge label/.wrap value={node[ELS=east]{$#1$}}
              }{%
              edge label/.wrap value={node[ELS=west]{$#1$}}
              }
              }
              }
              [Start
              [A, EL=leq 0.5
              [A1, EL=leq 0.3
              [A11, EL=leq 0.7]
              [A12, EL=geq 0.7]
              ]
              [A2, EL=geq 0.3
              [A21, EL=leq 0.7]
              [A22, EL=geq 0.7]
              ]
              ]
              [B, EL=geq 0.5
              [B1, EL=leq 0.3
              [B11, EL=leq 0.7]
              [B12, EL=geq 0.7]
              ]
              [B2, EL=geq 0.3
              [B11, EL=leq 0.7]
              [B12, EL=geq 0.7]
              ]
              ]
              ] end{forest}
              end{document}


              which gives desired result:



              enter image description here






              share|improve this answer




























                2












                2








                2







                Just for record. With help of nice @marmot answer and after reading forest documentation again (and again) i figured out the solution which i looked for:



                documentclass[border=3mm, preview]{standalone}
                usepackage{forest}

                begin{document}
                tikzset{ELS/.style={% Edge Label Style
                font=footnotesizesffamily, inner sep=2pt,
                anchor=south #1, % label position: "ELS=west" or "ELS=east"
                pos=0.6}
                }
                begin{forest}
                for tree={
                draw,
                semithick,
                % fill=orange!20,
                parent anchor=children,
                l sep=13 mm,
                s sep=4mm,
                where level=2{s sep=1mm}{}
                },
                EL/.style = {
                before typesetting nodes={%
                where n=1{%
                edge label/.wrap value={node[ELS=east]{$#1$}}
                }{%
                edge label/.wrap value={node[ELS=west]{$#1$}}
                }
                }
                }
                [Start
                [A, EL=leq 0.5
                [A1, EL=leq 0.3
                [A11, EL=leq 0.7]
                [A12, EL=geq 0.7]
                ]
                [A2, EL=geq 0.3
                [A21, EL=leq 0.7]
                [A22, EL=geq 0.7]
                ]
                ]
                [B, EL=geq 0.5
                [B1, EL=leq 0.3
                [B11, EL=leq 0.7]
                [B12, EL=geq 0.7]
                ]
                [B2, EL=geq 0.3
                [B11, EL=leq 0.7]
                [B12, EL=geq 0.7]
                ]
                ]
                ] end{forest}
                end{document}


                which gives desired result:



                enter image description here






                share|improve this answer















                Just for record. With help of nice @marmot answer and after reading forest documentation again (and again) i figured out the solution which i looked for:



                documentclass[border=3mm, preview]{standalone}
                usepackage{forest}

                begin{document}
                tikzset{ELS/.style={% Edge Label Style
                font=footnotesizesffamily, inner sep=2pt,
                anchor=south #1, % label position: "ELS=west" or "ELS=east"
                pos=0.6}
                }
                begin{forest}
                for tree={
                draw,
                semithick,
                % fill=orange!20,
                parent anchor=children,
                l sep=13 mm,
                s sep=4mm,
                where level=2{s sep=1mm}{}
                },
                EL/.style = {
                before typesetting nodes={%
                where n=1{%
                edge label/.wrap value={node[ELS=east]{$#1$}}
                }{%
                edge label/.wrap value={node[ELS=west]{$#1$}}
                }
                }
                }
                [Start
                [A, EL=leq 0.5
                [A1, EL=leq 0.3
                [A11, EL=leq 0.7]
                [A12, EL=geq 0.7]
                ]
                [A2, EL=geq 0.3
                [A21, EL=leq 0.7]
                [A22, EL=geq 0.7]
                ]
                ]
                [B, EL=geq 0.5
                [B1, EL=leq 0.3
                [B11, EL=leq 0.7]
                [B12, EL=geq 0.7]
                ]
                [B2, EL=geq 0.3
                [B11, EL=leq 0.7]
                [B12, EL=geq 0.7]
                ]
                ]
                ] end{forest}
                end{document}


                which gives desired result:



                enter image description here







                share|improve this answer














                share|improve this answer



                share|improve this answer








                edited Mar 29 at 0:07

























                answered Mar 28 at 23:23









                ZarkoZarko

                128k868168




                128k868168






























                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to TeX - LaTeX Stack Exchange!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f481967%2fforest-changing-s-sep-such-that-it-is-at-each-second-end-node-larger%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    How did Captain America manage to do this?

                    迪纳利

                    南乌拉尔铁路局