라텍스의 그래프

라텍스의 그래프

어떤 종류의 트리를 만들려고 하는데 심볼 대신 노드에 프레임박스를 넣고 싶습니다. 또한 특정 위치의 해당 프레임박스에는 다른 프레임박스가 필요합니다. 이를 위해 라텍스에 존재하는 트리 구조를 활용할 수 있는 방법을 찾지 못하자, 원하는 위치에 프레임박스를 배치하기 시작했습니다. 그래서 다음과 같이 만들었으나 이제는 각 bi를 s에 연결하는 선을 그리는 방법도 모르겠습니다.

\begin{figure}

\setlength{\unitlength}{0.06in}
\centering

\begin{picture}(70,50)

\put(25,35){\framebox(14,10){\Large server} }
\put(0,5){\framebox(14,10){\Large browser 1}}
\put(25,5){\framebox(14,10){\Large browser 2}}
\put(50,5){\framebox(14,10){\Large browser 3}}
\put(30.5,35){\framebox(3,3){s}}
\put(5.5,12){\framebox(3,3){$b_1$}}
\put(30.5,12){\framebox(3,3){$b_2$}}
\put(55.5,12) {\framebox(3,3){$b_3$}}

\end{picture}   
\end{figure}

답변1

이와 같이?

여기에 이미지 설명을 입력하세요

forest노드 라벨을 사용하고 사용하는 것은 간단합니다 .

\documentclass[border=1cm]{standalone}
\usepackage[edges]{forest}

\tikzset{every label/.append style = {draw, inner sep=2pt}}
\begin{document}
\begin{forest}
for tree = {
    draw,
    text width=22mm, minimum height=16mm,
    font=\Large,
    text centered,
    parent anchor=south,
    child anchor=north,
    %
    l sep=8mm,
    s sep=6mm,
            }
[server, label={[anchor=south]below:s}
    [browser 1, label={[anchor=north]:$b_1$}]
    [browser 2, label={[anchor=north]:$b_2$}]
    [browser 3, label={[anchor=north]:$b_3$}]
]
\end{forest}
\end{document}

답변2

를 사용하면 pict2e끝점을 지정하여 세그먼트를 쉽게 그릴 수 있습니다.

\documentclass{article}
\usepackage{pict2e}

\begin{document}

\begin{figure}

\setlength{\unitlength}{0.06in}
\centering

\begin{picture}(70,50)
\put(25,35){\framebox(14,10){\Large server} }
\put(0,5){\framebox(14,10){\Large browser 1}}
\put(25,5){\framebox(14,10){\Large browser 2}}
\put(50,5){\framebox(14,10){\Large browser 3}}
\put(30.5,35){\framebox(3,3){s}}
\put(5.5,12){\framebox(3,3){$b_1$}}
\put(30.5,12){\framebox(3,3){$b_2$}}
\put(55.5,12) {\framebox(3,3){$b_3$}}
\Line(7,15)(32,35)
\Line(32,15)(32,35)
\Line(57,15)(32,35)
\end{picture}   

\end{figure}

\end{document}

여기에 이미지 설명을 입력하세요

관련 정보