%c reated by phylo-tree from test.forest \documentclass[tikz, crop, border=5pt]{standalone} \usepackage{forest} \usepackage{fontspec,xltxtra,xunicode} % English Fonts \setmainfont[BoldFont={Fira Sans}]{Fira Sans Light} % 中文字体 \usepackage{xeCJK} \setCJKmainfont[BoldFont=Hiragino Sans GB W6]{Hiragino Sans GB W3} \xeCJKsetup{CJKecglue = {\hskip 0pt plus 0.08\baselineskip}, xCJKecglue = {false}} \punctstyle{plain} \defaultfontfeatures{Mapping=tex-text,Scale=MatchLowercase} \definecolor{red}{RGB}{188,36,46} \definecolor{black}{RGB}{26,25,25} \definecolor{grey}{RGB}{129,130,132} \definecolor{green}{RGB}{32,128,108} \definecolor{purple}{RGB}{160,90,150} \tikzset{ comment/.append style={label={[font=\small]0:#1}}, } \forestset{ /tikz/label position=below left, /tikz/label distance=.1em, dot/.style={tikz+={\fill[fill=#1] (.child anchor) circle[radius=2pt];}}, dot/.default=black, bar/.style={tikz+={\draw[color=#1,line width=2pt] let \p1 = (!u.parent anchor), \p2 = (.child anchor) in ($(\x1, \y2 - 0.5em)!0.5!(\x2, \y2)$) -- ($(\x1, \y2 + 0.5em)!0.5!(\x2, \y2)$);}}, bar/.default=black, } \begin{document} \begin{forest} where n children=0{tier=word}{}, for tree={ s sep=-0.1em, % make siblings closer grow=0, % 0 degrees is to the right reversed, % tree_direction align=left, parent anchor=east, child anchor=west, anchor=west, edge path={ \noexpand\path[draw, grey, line width=1pt, \forestoption{edge}] (!u.parent anchor) |- (.child anchor)\forestoption{edge label}; }, before typesetting nodes={ if content={}{shape=coordinate}{} }, } [ [a] [ [b] [b [c] [c [d] [d] ] ] ] ] \end{forest} \end{document}