Pascal's triangle in LaTeX, with pointing arrows

You can have Tikz determine the numbers and draw the pascal triangle (given a depth) as follows:

\documentclass{article}
\usepackage{tikz}
\def\mkPascal#1{
  \begin{tikzpicture}
    \def\dx{20pt}
    \def\dy{30pt}
    \newcounter{i}
    \stepcounter{i}
    \node (\arabic{i}) at (0,0) {1};
    \foreach [count=\i] \x in {2,...,#1}{
      \pgfmathsetmacro{\lox}{\x-1}%
      \pgfmathsetmacro{\loxt}{\x-3}%
      \foreach [count=\j] \xx in {-\lox,-\loxt,...,\lox}{
        \pgfmathsetmacro{\jj}{\j-1}%
        \stepcounter{i}
        \pgfmathsetmacro{\lbl}{\lox!/(\jj!*(\lox-\jj)!)}
        \node  (\arabic{i}) at (\xx*\dx, -\lox*\dy) {\pgfmathint{\lbl}\pgfmathresult};
      }
    }
    \newcounter{z}
    \newcounter{xn}
    \newcounter{xnn}
    \pgfmathsetmacro{\maxx}{#1 - 1}
    \foreach \x in {1,...,\maxx}{
      \foreach \xx in {1,...,\x}{
        \stepcounter{z}
        \setcounter{xn}{\arabic{z}}
        \addtocounter{xn}{\x}
        \setcounter{xnn}{\arabic{xn}}
        \stepcounter{xnn}
          \draw [->] (\arabic{z}) -- (\arabic{xn});
          \draw [->] (\arabic{z}) -- (\arabic{xnn});
      }
    }
  \end{tikzpicture}
}
\begin{document}
  \mkPascal{8}
\end{document}

First the nodes are drawn in the triangle configuration and their labels are determined. Second, we loop over the nodes again to draw the arrows, one to each child. The final result is as follows:

Pascal Triangle of depth 8

Unforunately, due to the use of faculties to calculate the node labels, you can't draw Pascal triangles of more than 8 levels. This could probably be increased by using the recursive definition for n choose k instead of this one.


You have a nice Pascal's triangle and Sierpinski triangle in TeXample.net


As @Andrew says, the best method would be to use tikz. A crude alternative is to put the arrows and numbers in alternating rows in a tabular environment.

\documentclass{article}
\begin{document}
\newcommand{\ap}{\ensuremath{\swarrow\,\searrow}}
\setlength{\tabcolsep}{0pt}
\begin{tabular}{ccccccccc}
  &     &     &      & 1   &      &      &     & \\
  &     &     &      & \ap &      &      &     & \\
  &     &     & 1    &     &  1   &      &     & \\
  &     &     & \ap  &     &  \ap &      &     & \\
  &     & 1   &      & 2   &      & 1    &     & \\
  &     & \ap &      & \ap &      & \ap  &     & \\
  & 1   &     & 3    &     &  3   &      & 1   & \\
  &\ap  &     & \ap  &     &  \ap &      & \ap & \\
1 &     & 4   &      & 6   &      & 4    &     & 1
\end{tabular}
\end{document}