summaryrefslogtreecommitdiff
path: root/graphics/pgf/contrib/pgfplots/tex/pgfplotstable.coltype.code.tex
blob: 8c0000b324cbe16e7522e9c74a9b4165dfd146ff (plain)
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
86
87
88
89
90
91
92
93
%--------------------------------------------
%
% Package numtable.
%
% This file provides support for column types in LaTeX tabular
% environments, i.e.
%
%\begin{tabular}{>{\pgfplotstablecoltype}c<{\endpgfplotstablecoltype}}
%	1 \\
%	2 \\
%	3 \\
%\end{tabular}
%
%
%
% Copyright 2007/2008 by Christian Feuersänger.
%
% This program is free software: you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation, either version 3 of the License, or
% (at your option) any later version.
% 
% This program is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
% GNU General Public License for more details.
% 
% You should have received a copy of the GNU General Public License
% along with this program.  If not, see <http://www.gnu.org/licenses/>.
%
%--------------------------------------------



% If I did not get it wrong, the tabular package, initialised with a
% column type like
% >{\pgfplotstablecoltype}c<{\endpgfplotstablecoltype}
% yields
%
% \pgfplotstablecoltype \ignorespaces <content> \unskip \endpgfplotstablecoltype
% OR
% \pgfplotstablecoltype \ignorespaces <content> \\ \endpgfplotstablecoltype
%
% So, I define \pgfplotstablecoltype to skip \ignorespaces and \unskip and simply
% get <content>.
\def\pgfplotstablecoltype{%
	\begingroup
	\let\pgfplotstablecoltype@content=\empty
	\pgfutil@ifnextchar[{%
		\pgfplotstablecoltype@
	}{%
		\pgfplotstablecoltype@until@end@start
	}%
}%
\def\pgfplotstablecoltype@[#1]{%
	\pgfqkeys{/pgf/number format}{#1}%
	\pgfplotstablecoltype@until@end@start
}%

\def\pgfplotstablecoltype@until@end@start\ignorespaces{%
	\pgfplotstablecoltype@until@end
}%
\def\pgfplotstablecoltype@until@end{%
	\pgfutil@ifnextchar\\{%
		\pgfplotstablecoltype@finish%
	}{%
		\pgfutil@ifnextchar{\unskip}{%
			\pgfplotstablecoltype@finish%
		}{%
			\pgfplotstablecoltype@next
		}%
	}%
}
\def\pgfplotstablecoltype@next#1{%
	\expandafter\def\expandafter\pgfplotstablecoltype@content\expandafter{\pgfplotstablecoltype@content#1}%
	\pgfplotstablecoltype@until@end
}
\def\pgfplotstablecoltype@finish{%
%\message{COLLECTED \meaning\pgfplotstablecoltype@content}%
	\edef\pgfplotstablecoltype@content{\pgfplotstablecoltype@content}%
	%
	% trim white space:
	\expandafter\pgfkeys@spdef\expandafter\pgfplotstablecoltype@content\expandafter{\pgfplotstablecoltype@content}%
	%
	\ifx\pgfplotstablecoltype@content\pgfutil@empty
	\else
		\pgfmathprintnumber{\pgfplotstablecoltype@content}%
	\fi
	\endgroup
}%

%\def\pgfplotstablecoltype{\message{COLLECT}}%
\def\endpgfplotstablecoltype{}%