# Highlight largest value in each column of Table // TableForm

I am exploring colossally abundant numbers; in particular the set of specific 'critical epsilon values'. I table the function DivisorSigma[1, n]/n^(1 + \[Epsilon]) against n and the first few critical values of \[Epsilon] thus:

colossalTable1 = TableForm[
Table[N[DivisorSigma[1, n]/n^(1 + \[Epsilon])],
{n, 1, 60}, {\[Epsilon], {Log[3/2]/Log[2],
Log[4/3]/Log[3], Log[7/6]/Log[2],
Log[6/5]/Log[5], Log[15/14]/Log[2],
Log[13/12]/Log[3], Log[31/30]/Log[2]}}]]
//TableForm


What I would like is for the maximum value(s) in each column to be automatically styled Bold. (It needs to be an automatic process, because I may choose to expand the extent of the rows and columns.)

Suggestions?

I would define the table without TableForm like so.

colossalTable1 = Table[N[DivisorSigma[1, n]/n^(1 + \[Epsilon])], {n, 1, 10},
{\[Epsilon],{Log[3/2]/Log[2], Log[4/3]/Log[3],Log[7/6]/Log[2],Log[6/5]/Log[5],
Log[15/14]/Log[2],Log[13/12]/Log[3], Log[31/30]/Log[2]}
}];


Then find the column maximums and show them.

bold = If[MemberQ[Max /@ Transpose[colossalTable1], #1],Text[Style[#1, Bold]], #1] &;
TableForm[Map[bold, colossalTable1, {2}]]


If you don't want to repeat previous column maximums use this.

max = Max /@ Transpose[colossalTable1];
maxpos = Flatten[Table[Append[#, i] & /@
Position[colossalTable1[[All, i]], max[[i]]], {i, 1, Length@max}],1];
TableForm[MapAt[Text[Style[#, Bold]] &, colossalTable1, maxpos]]


Using color to make the highlighting more obvious:

Clear["Global*"]

highlight[m_?MatrixQ] := Module[
{tr = Transpose@m, max, htr},
htr = (max = Max@#;
ReplacePart[#,
Position[#, max] :>
Style[max, Red, Bold]]]) & /@ tr;
Transpose@htr]

(colossalTable1 = Table[
N[DivisorSigma[1, n]/n^(1 + ϵ)],
{n, 1, 60},
{ϵ, {Log[3/2]/Log[2], Log[4/3]/Log[3],
Log[7/6]/Log[2], Log[6/5]/Log[5],
Log[15/14]/Log[2], Log[13/12]/Log[3],
Log[31/30]/Log[2]}}]);

colossalTable1 // highlight // MatrixForm


I interpreted the spec a little differently than @PlatoManiac

colossalTable1 = Table[N[DivisorSigma[1, n]/n^(1 + \[Epsilon])],
{n, 1, 60},
{\[Epsilon], {Log[3/2]/Log[2], Log[4/3]/Log[3],
Log[7/6]/Log[2], Log[6/5]/Log[5],
Log[15/14]/Log[2], Log[13/12]/Log[3],
Log[31/30]/Log[2]}}
];"";
boldMax[l0_] := Block[
{m},
m = Max[l0];
(Text /@ l0) /. {Text[m] -> Text[Style[m, Bold]]}
]
Transpose[boldMax /@ Transpose[colossalTable1]] // TableForm
`