in reply to Equilateral Pascal's Triangle in perltex
The main trick is to double the number of columns plus one and to fill the void symmetrically...
This was the output of the original version:use strict; sub pascalMatrix { my $tabularRows = ""; my @row = (1); my $cols = ($_[0] * 2) + 1; #add: final number of columns my $filler = "{ }"; #add: used to mark an empty entry for (my $r = 0; $r <= $_[0]; $r++) { # Output the current row ### begin of modification # insert a filler between each item (sprintf is for LaTeX cosmeti +cs) my @fmt = map { (sprintf("%3d",$_), $filler) } @row; pop @fmt; # pre-/append a filler until final number of columns reached unshift(@fmt,$filler), push(@fmt,$filler) while (@fmt < $cols); $tabularRows .= join (" & ", @fmt) ." \\\\\n"; ### end of modification # Generate the next row my @nextRow = (1); for (my $c = 1; $c <= $r; $c++) { push @nextRow, @row[$c - 1] + @row[$c]; } push @nextRow, 1; @row = @nextRow; } return "\\begin{tabular}{*{$cols}{c}c}\n" . # changed! $tabularRows . "\\end{tabular}\n"; } print pascalMatrix(10);
This is the output of the patched version:\begin{tabular}{*{5}{c}c} 1 \\ 1&1 \\ 1&2&1 \\ 1&3&3&1 \\ 1&4&6&4&1 \\ 1&5&10&10&5&1 \\ \end{tabular}
My LaTeX installation is gone, but there's a nice LaTeX Online-Compiler available.\begin{tabular}{*{11}{c}c} { } & { } & { } & { } & { } & 1 & { } & { } & { } & { } & { } \\ { } & { } & { } & { } & 1 & { } & 1 & { } & { } & { } & { } \\ { } & { } & { } & 1 & { } & 2 & { } & 1 & { } & { } & { } \\ { } & { } & 1 & { } & 3 & { } & 3 & { } & 1 & { } & { } \\ { } & 1 & { } & 4 & { } & 6 & { } & 4 & { } & 1 & { } \\ 1 & { } & 5 & { } & 10 & { } & 10 & { } & 5 & { } & 1 \\ \end{tabular}
Update: The code presented above is a runnable Perl program. In order to make it work with LaTeX you need to get rid of use strict; and print pascalMatrix(10);. Furthermore, replace sub pascalMatrix by \perlnewcommand{\pascalMatrix}[1]. Remove, rename, or uncomment the previous version of \pascalMatrix.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Equilateral Pascal's Triangle in perltex
by Anonymous Monk on Jul 08, 2017 at 06:13 UTC | |
|
Re^2: Equilateral Pascal's Triangle in perltex
by Coach (Initiate) on Jun 01, 2009 at 19:55 UTC |