Re: format mixed integers & floats with text styling (see )
- To: mathgroup at smc.vnet.net
- Subject: [mg82210] Re: format mixed integers & floats with text styling (see )
- From: Helen Read <hpr at together.net>
- Date: Mon, 15 Oct 2007 01:20:27 -0400 (EDT)
- References: <fesqmo$pdc$1@smc.vnet.net>
- Reply-to: HPR <read at math.uvm.edu>
Murray Eisenberg wrote:
> Two years ago in I posed this problem of formatting a table
> column having a mixture of integers and approximate numbers in such a
> way that the decimal point on the floats would be vertically aligned
> with the implied decimal on the integers.
>
> For example, here's the data for the table:
>
> statNames = {"N", "Max", "Min", "Mean", "Std.dev.", "Median"};
> statNumbers = {40, 103, 2, 56.8, 22.5, 59};
>
> The object was to combine these into a properly formatted table starting
> from:
>
> (* original table *)
> TableForm[Transpose[{statNames,statNumbers}]]
>
> A good solution was proposed by Valeri Astanoff (sorry, I don't have the
> message reference number):
>
> pad[x_Integer]:=PaddedForm[x,3];
> pad[x_Real]:=PaddedForm[x,4];
>
>
> (* aligned table *)
> TableForm[Transpose[{statNames, pad /@ statNumbers}]]
>
> Now I need to complicate the problem by putting everything in a
> non-default font, by using, e.g.,
>
> fmtTxt[txt_]:=Style[txt, FontFamily -> "Arial",FontSize->12]
>
> so that the TableForm expression is changed to:
>
> (* formatted table *)
> TableForm[Transpose[{fmtTxt/@statNames, fmtTxt/@ pad /@ statNumbers}]]
>
> Unfortunately, this now breaks the nice vertical alignment. How can the
> alignment of "aligned table" be restored but still use such text formatting?
Use Grid.
Grid[Transpose[{statNames, statNumbers}],
Alignment -> {{Left, "."}, None},
ItemStyle -> {FontFamily -> "Arial", FontSize -> 12}]
--
Helen Read
University of Vermont