-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathpgftablehighlight.tex
85 lines (81 loc) · 2.92 KB
/
pgftablehighlight.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
% !TEX root = thesis.tex
%% code to highlight maximal/minimal entries in column tables with pgftables
\newcommand{\findmax}[3]{
\pgfplotstablevertcat{\datatable}{#1}
\pgfplotstablecreatecol[
create col/expr={%
\pgfplotstablerow
}]{rownumber}\datatable
\pgfplotstablesort[sort key={#2},sort cmp={float >}]{\sorted}{\datatable}%
\pgfplotstablegetelem{0}{rownumber}\of{\sorted}%
\pgfmathtruncatemacro#3{\pgfplotsretval}
\pgfplotstableclear{\datatable}
}
\newcommand{\findmin}[3]{
\pgfplotstablevertcat{\datatable}{#1}
\pgfplotstablecreatecol[
create col/expr={%
\pgfplotstablerow
}]{rownumber}\datatable
\pgfplotstablesort[sort key={#2},sort cmp={float <}]{\sorted}{\datatable}%
\pgfplotstablegetelem{0}{rownumber}\of{\sorted}%
\pgfmathtruncatemacro#3{\pgfplotsretval}
\pgfplotstableclear{\datatable}
}
\pgfplotstableset{
highlight col max/.code 2 args={
\findmax{#1}{#2}{\maxval}
\edef\setstyles{\noexpand\pgfplotstableset{
every row \maxval\noexpand\space column #2/.style={
postproc cell content/.append style={
/pgfplots/table/@cell content/.add={$\noexpand\bf}{$}
},
}
}
}\setstyles
},
highlight col min/.code 2 args={
\findmin{#1}{#2}{\minval}
\edef\setstyles{\noexpand\pgfplotstableset{
every row \minval\noexpand\space column #2/.style={
postproc cell content/.append style={
/pgfplots/table/@cell content/.add={$\noexpand\bf}{$}
},
}
}
}\setstyles
},
highlight row max/.code 2 args={
\pgfmathtruncatemacro\rowindex{#2-1}
\pgfplotstabletranspose{\transposed}{#1}
\findmax{\transposed}{\rowindex}{\maxval}
\edef\setstyles{\noexpand\pgfplotstableset{
every row \rowindex\space column \maxval\noexpand/.style={
postproc cell content/.append style={
/pgfplots/table/@cell content/.add={$\noexpand\bf}{$}
},
}
}
}\setstyles
},
highlight row min/.code 2 args={
\pgfmathtruncatemacro\rowindex{#2-1}
\pgfplotstabletranspose{\transposed}{#1}
\findmin{\transposed}{\rowindex}{\maxval}
\edef\setstyles{\noexpand\pgfplotstableset{
every row \rowindex\space column \maxval\noexpand/.style={
postproc cell content/.append style={
/pgfplots/table/@cell content/.add={$\noexpand\bf}{$}
},
}
}
}\setstyles
},
}
\makeatletter
\long\def\pgfplotstabletypeset@opt@collectarg[#1]#2{%
\pgfplotstable@isloadedtable{#2}%
{\pgfplotstabletypeset@opt@[#1]{#2}}%
{\pgfplotstabletypesetfile@opt@[#1]{#2}}%
}
\makeatother