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 4 hours ago







      Zarko

















      asked 6 hours ago









      ZarkoZarko

      128k868167




      128k868167






















          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
            4 hours ago











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

            – marmot
            4 hours ago











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

            – Zarko
            4 hours ago











          • 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
            2 hours ago













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

            – marmot
            2 hours ago



















          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
              4 hours ago











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

              – marmot
              4 hours ago











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

              – Zarko
              4 hours ago











            • 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
              2 hours ago













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

              – marmot
              2 hours ago
















            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
              4 hours ago











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

              – marmot
              4 hours ago











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

              – Zarko
              4 hours ago











            • 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
              2 hours ago













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

              – marmot
              2 hours ago














            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 1 hour ago

























            answered 4 hours ago









            marmotmarmot

            112k5144270




            112k5144270













            • 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
              4 hours ago











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

              – marmot
              4 hours ago











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

              – Zarko
              4 hours ago











            • 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
              2 hours ago













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

              – marmot
              2 hours ago



















            • 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
              4 hours ago











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

              – marmot
              4 hours ago











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

              – Zarko
              4 hours ago











            • 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
              2 hours ago













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

              – marmot
              2 hours ago

















            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
            4 hours ago





            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
            4 hours ago













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

            – marmot
            4 hours ago





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

            – marmot
            4 hours ago













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

            – Zarko
            4 hours ago





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

            – Zarko
            4 hours ago













            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
            2 hours ago







            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
            2 hours ago















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

            – marmot
            2 hours ago





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

            – marmot
            2 hours ago











            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 1 hour ago

























                answered 2 hours ago









                ZarkoZarko

                128k868167




                128k868167






























                    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

                    Список кардиналов, возведённых папой римским Каликстом III

                    Deduzione

                    Mysql.sock missing - “Can't connect to local MySQL server through socket”