def METHOD_NAME(self, label=lambda i: i, node=None, node_dist=2, dual=False):
    r"""
    Return a latex representation of the Dynkin diagram.
    EXAMPLES::
        sage: print(CartanType(['B',4,1])._latex_dynkin_diagram())
        \draw (0,0.7 cm) -- (2 cm,0);
        \draw (0,-0.7 cm) -- (2 cm,0);
        \draw (2 cm,0) -- (4 cm,0);
        \draw (4 cm, 0.1 cm) -- +(2 cm,0);
        \draw (4 cm, -0.1 cm) -- +(2 cm,0);
        \draw[shift={(5.2, 0)}, rotate=0] (135 : 0.45cm) -- (0,0) -- (-135 : 0.45cm);
        \draw[fill=white] (0 cm, 0.7 cm) circle (.25cm) node[left=3pt]{$0$};
        \draw[fill=white] (0 cm, -0.7 cm) circle (.25cm) node[left=3pt]{$1$};
        \draw[fill=white] (2 cm, 0 cm) circle (.25cm) node[below=4pt]{$2$};
        \draw[fill=white] (4 cm, 0 cm) circle (.25cm) node[below=4pt]{$3$};
        \draw[fill=white] (6 cm, 0 cm) circle (.25cm) node[below=4pt]{$4$};
        <BLANKLINE>
        sage: print(CartanType(['B',4,1]).dual()._latex_dynkin_diagram())
        \draw (0,0.7 cm) -- (2 cm,0);
        \draw (0,-0.7 cm) -- (2 cm,0);
        \draw (2 cm,0) -- (4 cm,0);
        \draw (4 cm, 0.1 cm) -- +(2 cm,0);
        \draw (4 cm, -0.1 cm) -- +(2 cm,0);
        \draw[shift={(4.8, 0)}, rotate=180] (135 : 0.45cm) -- (0,0) -- (-135 : 0.45cm);
        \draw[fill=white] (0 cm, 0.7 cm) circle (.25cm) node[left=3pt]{$0$};
        \draw[fill=white] (0 cm, -0.7 cm) circle (.25cm) node[left=3pt]{$1$};
        \draw[fill=white] (2 cm, 0 cm) circle (.25cm) node[below=4pt]{$2$};
        \draw[fill=white] (4 cm, 0 cm) circle (.25cm) node[below=4pt]{$3$};
        \draw[fill=white] (6 cm, 0 cm) circle (.25cm) node[below=4pt]{$4$};
        <BLANKLINE>
    """
    if node is None:
        node = self._latex_draw_node
    if self.n == 1:
        from . import cartan_type
        return cartan_type.CartanType(["A",1,1]).METHOD_NAME(label, node, node_dist)
    elif self.n == 2:
        from . import cartan_type
        return cartan_type.CartanType(["C",2,1]).METHOD_NAME(label, node, node_dist, dual)
    n = self.n
    single_end = (n-2)*node_dist # Where the single line ends
    ret = "\\draw (0,0.7 cm) -- (%s cm,0);\n"%node_dist
    ret += "\\draw (0,-0.7 cm) -- (%s cm,0);\n"%node_dist
    ret += "\\draw (%s cm,0) -- (%s cm,0);\n"%(node_dist, single_end)
    ret += "\\draw (%s cm, 0.1 cm) -- +(%s cm,0);\n"%(single_end, node_dist)
    ret += "\\draw (%s cm, -0.1 cm) -- +(%s cm,0);\n"%(single_end, node_dist)
    if dual:
        ret += self._latex_draw_arrow_tip(single_end+0.5*node_dist-0.2, 0, 180)
    else:
        ret += self._latex_draw_arrow_tip(single_end+0.5*node_dist+0.2, 0, 0)
    ret += node(0, 0.7, label(0), 'left=3pt')
    ret +=node(0, -0.7, label(1), 'left=3pt')
    for i in range(1, n):
        ret += node(i*node_dist, 0, label(i+1))
    return ret