10

I have a hunk of data like so:

{ { {AA},{AB}, ... {AZ} }, { {BA}, {BB}, ... {BZ} }, ... ... { {ZA}, {ZB}, ... {ZZ} } }

defined in a macro called \clebschdata. Each term XX is a list of eleven numbers (e.g., {2,4,5,1,2,0,0,0,3,1,1}). In other words, \clebschdata is a list of eleven things, each of which is a list of eleven things, each of which is a list of eleven numbers.

The data corresponds to a matrix that I'd like to put into a 12x12 table. I want the left column (in descending order) to look like \bigotimes \chi_1 \chi_2 ... \chi_11 and the top row (from left to right) to be the same: \bigotimes \chi_1 \chi_2 ... \chi_11, where the \bigotimes in both correspond to the top left cell.

I have a macro defined \chisum that I would like to pass each entry of my data to before putting it into the remaining 11x11 table.

How do I loop through my list to meet these specs?

I have tried several looping macros from several different packages but I can't get any of them to work. In particular, I have the following thing:

\def\ttand{&}
\def\clebschtable#1{\hline\@for\tmpi:=#1\do{\chi\@for\tmpj:=\tmpi\do{\ttand$\chisum\tmpj$}}}

...

...

\begin{tabular}

\clebschtable{\clebschdata}

\end{tabular}

But it is giving me grief about an ! Undefined control sequence. on \tmpj.

Edit:

\def\clebschdata {{{1,0,0,0,0,0,0,0,0,0,0},{0,1,0,0,0,0,0,0,0,0,0},{0,0,1,0,0,0,0,0,0,0,0},{0,0,0,1,0,0,0,0,0,0,0},{0,0,0,0,1,0,0,0,0,0,0},{0,0,0,0,0,1,0,0,0,0,0},{0,0,0,0,0,0,1,0,0,0,0},{0,0,0,0,0,0,0,1,0,0,0},{0,0,0,0,0,0,0,0,1,0,0},{0,0,0,0,0,0,0,0,0,1,0},{0,0,0,0,0,0,0,0,0,0,1}},{{0,1,0,0,0,0,0,0,0,0,0},{0,0,1,0,0,1,0,0,0,0,0},{1,0,0,0,0,0,0,0,0,1,0},{0,0,0,0,1,0,0,0,0,0,1},{0,0,0,0,0,0,1,1,0,0,0},{0,0,1,0,0,0,0,0,1,1,0},{0,0,0,1,0,0,1,0,0,0,1},{0,0,0,1,0,0,0,1,0,0,1},{0,0,0,0,0,1,0,0,1,1,0},{0,1,0,0,0,1,0,0,1,1,0},{0,0,0,0,1,0,1,1,0,0,1}},{{0,0,1,0,0,0,0,0,0,0,0},{1,0,0,0,0,0,0,0,0,1,0},{0,1,0,0,0,1,0,0,0,0,0},{0,0,0,0,0,0,1,1,0,0,0},{0,0,0,1,0,0,0,0,0,0,1},{0,1,0,0,0,0,0,0,1,1,0},{0,0,0,0,1,0,1,0,0,0,1},{0,0,0,0,1,0,0,1,0,0,1},{0,0,0,0,0,1,0,0,1,1,0},{0,0,1,0,0,1,0,0,1,1,0},{0,0,0,1,0,0,1,1,0,0,1}},{{0,0,0,1,0,0,0,0,0,0,0},{0,0,0,0,1,0,0,0,0,0,1},{0,0,0,0,0,0,1,1,0,0,0},{0,0,1,0,0,1,0,0,1,0,0},{1,0,0,0,0,0,0,0,1,1,0},{0,0,0,0,1,0,1,1,0,0,1},{0,1,0,0,0,1,0,0,1,1,0},{0,1,0,0,0,1,0,0,1,1,0},{0,0,0,1,1,0,1,1,0,0,1},{0,0,0,1,0,0,1,1,0,0,2},{0,0,1,0,0,1,0,0,1,2,0}},{{0,0,0,0,1,0,0,0,0,0,0},{0,0,0,0,0,0,1,1,0,0,0},{0,0,0,1,0,0,0,0,0,0,1},{1,0,0,0,0,0,0,0,1,1,0},{0,1,0,0,0,1,0,0,1,0,0},{0,0,0,1,0,0,1,1,0,0,1},{0,0,1,0,0,1,0,0,1,1,0},{0,0,1,0,0,1,0,0,1,1,0},{0,0,0,1,1,0,1,1,0,0,1},{0,0,0,0,1,0,1,1,0,0,2},{0,1,0,0,0,1,0,0,1,2,0}},{{0,0,0,0,0,1,0,0,0,0,0},{0,0,1,0,0,0,0,0,1,1,0},{0,1,0,0,0,0,0,0,1,1,0},{0,0,0,0,1,0,1,1,0,0,1},{0,0,0,1,0,0,1,1,0,0,1},{1,0,0,0,0,2,0,0,1,2,0},{0,0,0,1,1,0,1,1,0,0,2},{0,0,0,1,1,0,1,1,0,0,2},{0,1,1,0,0,1,0,0,2,2,0},{0,1,1,0,0,2,0,0,2,2,0},{0,0,0,1,1,0,2,2,0,0,2}},{{0,0,0,0,0,0,1,0,0,0,0},{0,0,0,1,0,0,1,0,0,0,1},{0,0,0,0,1,0,1,0,0,0,1},{0,1,0,0,0,1,0,0,1,1,0},{0,0,1,0,0,1,0,0,1,1,0},{0,0,0,1,1,0,1,1,0,0,2},{1,1,1,0,0,1,0,0,1,2,0},{0,0,0,0,0,1,0,0,2,2,0},{0,0,0,1,1,0,1,2,0,0,2},{0,0,0,1,1,0,2,2,0,0,2},{0,1,1,0,0,2,0,0,2,2,0}},{{0,0,0,0,0,0,0,1,0,0,0},{0,0,0,1,0,0,0,1,0,0,1},{0,0,0,0,1,0,0,1,0,0,1},{0,1,0,0,0,1,0,0,1,1,0},{0,0,1,0,0,1,0,0,1,1,0},{0,0,0,1,1,0,1,1,0,0,2},{0,0,0,0,0,1,0,0,2,2,0},{1,1,1,0,0,1,0,0,1,2,0},{0,0,0,1,1,0,2,1,0,0,2},{0,0,0,1,1,0,2,2,0,0,2},{0,1,1,0,0,2,0,0,2,2,0}},{{0,0,0,0,0,0,0,0,1,0,0},{0,0,0,0,0,1,0,0,1,1,0},{0,0,0,0,0,1,0,0,1,1,0},{0,0,0,1,1,0,1,1,0,0,1},{0,0,0,1,1,0,1,1,0,0,1},{0,1,1,0,0,1,0,0,2,2,0},{0,0,0,1,1,0,1,2,0,0,2},{0,0,0,1,1,0,2,1,0,0,2},{1,1,1,0,0,2,0,0,2,2,0},{0,1,1,0,0,2,0,0,2,3,0},{0,0,0,1,1,0,2,2,0,0,3}},{{0,0,0,0,0,0,0,0,0,1,0},{0,1,0,0,0,1,0,0,1,1,0},{0,0,1,0,0,1,0,0,1,1,0},{0,0,0,1,0,0,1,1,0,0,2},{0,0,0,0,1,0,1,1,0,0,2},{0,1,1,0,0,2,0,0,2,2,0},{0,0,0,1,1,0,2,2,0,0,2},{0,0,0,1,1,0,2,2,0,0,2},{0,1,1,0,0,2,0,0,2,3,0},{1,1,1,0,0,2,0,0,3,3,0},{0,0,0,2,2,0,2,2,0,0,3}},{{0,0,0,0,0,0,0,0,0,0,1},{0,0,0,0,1,0,1,1,0,0,1},{0,0,0,1,0,0,1,1,0,0,1},{0,0,1,0,0,1,0,0,1,2,0},{0,1,0,0,0,1,0,0,1,2,0},{0,0,0,1,1,0,2,2,0,0,2},{0,1,1,0,0,2,0,0,2,2,0},{0,1,1,0,0,2,0,0,2,2,0},{0,0,0,1,1,0,2,2,0,0,3},{0,0,0,2,2,0,2,2,0,0,3},{1,1,1,0,0,2,0,0,3,3,0}}}

\makeatletter
\def\thect{\value{ct}}
\newcounter{ct}
\def\chisum#1{\setcounter{ct}{0}\@for\tmp:=#1\do{\stepcounter{ct}\expandafter\zzz\tmp\relax}}
\def\zzz#1\relax{
    \ifnum #1=1
    \zzsep\chi_{\thect}
    \else
    \ifnum #1=0
    \else
    \zzsep#1\chi_{\thect}
    \fi
    \fi
}
\def\zzsep{\def\zzsep{\oplus}}
\makeatother

Also does anybody see what's wrong with the following?

\def\decompgirreps{{1,0,0,0,0,0,0,0,0,0,0},{0,1,0,0,0,0,0,0,0,0,0},{0,0,1,0,0,0,0,0,0,0,0}, {0,0,0,0,0,1,0,0,0,0,0},{0,0,0,0,0,0,0,0,1,0,0},{0,0,0,0,0,0,0,0,1,0,0}, {1,0,0,0,0,1,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,1,0},{0,0,0,1,1,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,1},{0,0,0,0,0,0,0,0,0,0,1},{0,0,0,0,0,1,0,0,0,1,0}, {0,1,1,0,0,0,0,0,1,1,0},{0,0,0,0,0,1,0,0,1,1,0},{0,0,0,0,1,0,1,1,0,0,1}, {0,0,0,1,0,0,1,1,0,0,1}}
\begin{tabular}{| c || c | }
    \hline $G^4$ Irreps & Decomp into $SL_2^7$ Irreps \\ \hline \hline
\setcounter{rowindex}{0}
\xintFor #1 in \decompgirreps \do {%
   \stepcounter{rowindex}
   $\mu_{\arabic{rowindex}}$ & $\chisum{#1}$%
   \\ \hline
}%
\end{tabular}

The part with \chisum is not working. When I remove the \chisum part and just keep it as #1 then I see it is indeed looping through \decompgirreps, but there are no brackets around it. It seems like it is being expanded to \chisum0,0,0,1,0,0,1,1,0,0,1 for instance when it should be \chisum{0,0,0,1,0,0,1,1,0,0,1}. There's probably a really simple fix for this...

15
  • Could you please give a typical \clebschdata macro replacement text, just to be able to play with it?
    – egreg
    Oct 21, 2013 at 17:16
  • \def\clebschdata{{{1,0,0,0,0,0,0,0,0,0,0},{0,1,0,0,0,0,0,0,0,0,0},{0,0,1,0,0,0,0,0,0,0,0},{0,0,0,1,0,0,0,0,0,0,0},{0,0,0,0,1,0,0,0,0,0,0},{0,0,0,0,0,1,0,0,0,0,0},{0,0,0,0,0,0,1,0,0,0,0},{0,0,0,0,0,0,0,1,0,0,0},{0,0,0,0,0,0,0,0,1,0,0},{0,0,0,0,0,0,0,0,0,1,0},{0,0,0,0,0,0,0,0,0,0,1}},{{0,1,0,0,0,0,0,0,0,0,0},{0,0,1,0,0,1,0,0,0,0,0},{1,0,0,0,0,0,0,0,0,1,0},{0,0,0,0,1,0,0,0,0,0,1},{0,0,0,0,0,0,1,1,0,0,0},{0,0,1,0,0,0,0,0,1,1,0},{0,0,0,1,0,0,1,0,0,0,1},{0,0,0,1,0,0,0,1,0,0,1},{0,0,0,0,0,1,0,0,1,1,0},{0,1,0,0,0,1,0,0,1,1,0},{0,0,0,0,1,0,1,1,0,0,1}}}
    – user38585
    Oct 21, 2013 at 17:20
  • That's the first two rows of the full eleven
    – user38585
    Oct 21, 2013 at 17:21
  • And then also: \def\thect{\value{ct}} \def\ttand{&} \newcounter{ct} \def\chisum#1{\setcounter{ct}{0}\@for\tmp:=#1\do{\stepcounter{ct}\expandafter\zzz\tmp\relax}} \def\zzz#1\relax{ \ifnum #1=1 \zzsep\chi_{\thect} \else \ifnum #1=0 \else \zzsep#1\chi_{\thect} \fi \fi } \def\zzsep{\def\zzsep{\oplus}}
    – user38585
    Oct 21, 2013 at 17:22
  • Please, add to your question, where you can put the whole thing.
    – egreg
    Oct 21, 2013 at 17:28

3 Answers 3

6

(edit) 2017: since xint 1.1 (2014/10/28) one needs here \usepackage{xinttools}. Code updated for that to replace \usepackage{xint} of initial answer.

I am editing this answer because the 1.09f release of xint transparently removes all spaces around commas when dealing with comma separated lists. Thus, some of the earlier issues mentioned here are now irrelevant and have been removed.

\documentclass[border=12pt]{standalone}

\usepackage{xinttools}     % for \xintFor and \xintFor* loops

% the macro \chisum is also written using an \xintFor loop.
% the math mode dollar signs are in the tabular not in this \chisum

\newcounter{ct}
\def\chisum#1{\def\chisep{\def\chisep{\oplus}}%
              \setcounter{ct}{0}%
              \xintFor ##1 in {#1}\do % #1 is a comma separated list
                  {\stepcounter{ct}%
                   \ifcase ##1
                           \or   \chisep    \chi_{\thect}
                           \else \chisep ##1\chi_{\thect}
                   \fi}%
              }% end of \chisum definition

\newcounter{rowindex}

\begin{document}\thispagestyle{empty}

% ADDED REMARK: since xint 1.09f, spaces around commas are transparently removed. 
% This is made a bit extreme here for demonstrative purposes.

\def\decompgirreps{ {    1,0,0,0,0,0,0,0,0,0,0} , {0,1,0,0,0,0,0,0,0,0,0}
  ,{0,0,1,0,0,0,0,0,0,0,0} ,
  {0,0,0,0,0,1,0,0,0,0,0},{0,0,0,0,0,0,0,0,1,0,0},{0,0,0,0,0,0,0,0,1,0,0},{1,0,0
    ,0,0,1,0,0,0,0,0},  {0,0,0,0,0,0,0,0,0,1,0},{0,0,0,1,1,0,0,0,0,0,0}, {
           0,0,0, 0 ,0   ,0,0,0,0,0,1},
         {0,0,0,0,0,0,0,0,0,0,1},{0,0,0,0,0,1,0,0,0,1,0},{0,1,1,0,0,0,0,0,1,1,0},{0,0,0,0,0,1,0,0,1,1,0},{0,0,0,0,1,0,1,1,0,0,1},{0,0,0,1,0,0,1,1,0,0,1
                 }}

\setcounter{rowindex}{0}
\begin{tabular}{| c || c | }
    \hline $G^4$ Irreps & Decomp into $SL_2^7$ Irreps \\ \hline \hline
\xintFor #1 in \decompgirreps\do {%
   \stepcounter{rowindex}
   $\mu_{\arabic{rowindex}}$ & $\chisum{#1}$%
   \\ \hline
}%
\end{tabular}

\end{document}

Output:

clebsch coeffs


Here is with the original data provided by the researchers:

\documentclass[border=12pt]{standalone}

\usepackage{xinttools}     % for \xintFor*

% The original \clebschdata

\def\clebschdata {{{1,0,0,0,0,0,0,0,0,0,0},{0,1,0,0,0,0,0,0,0,0,0},{0,0,1,0,0,0,0,0,0,0,0},{0,0,0,1,0,0,0,0,0,0,0},{0,0,0,0,1,0,0,0,0,0,0},{0,0,0,0,0,1,0,0,0,0,0},{0,0,0,0,0,0,1,0,0,0,0},{0,0,0,0,0,0,0,1,0,0,0},{0,0,0,0,0,0,0,0,1,0,0},{0,0,0,0,0,0,0,0,0,1,0},{0,0,0,0,0,0,0,0,0,0,1}},{{0,1,0,0,0,0,0,0,0,0,0},{0,0,1,0,0,1,0,0,0,0,0},{1,0,0,0,0,0,0,0,0,1,0},{0,0,0,0,1,0,0,0,0,0,1},{0,0,0,0,0,0,1,1,0,0,0},{0,0,1,0,0,0,0,0,1,1,0},{0,0,0,1,0,0,1,0,0,0,1},{0,0,0,1,0,0,0,1,0,0,1},{0,0,0,0,0,1,0,0,1,1,0},{0,1,0,0,0,1,0,0,1,1,0},{0,0,0,0,1,0,1,1,0,0,1}},{{0,0,1,0,0,0,0,0,0,0,0},{1,0,0,0,0,0,0,0,0,1,0},{0,1,0,0,0,1,0,0,0,0,0},{0,0,0,0,0,0,1,1,0,0,0},{0,0,0,1,0,0,0,0,0,0,1},{0,1,0,0,0,0,0,0,1,1,0},{0,0,0,0,1,0,1,0,0,0,1},{0,0,0,0,1,0,0,1,0,0,1},{0,0,0,0,0,1,0,0,1,1,0},{0,0,1,0,0,1,0,0,1,1,0},{0,0,0,1,0,0,1,1,0,0,1}},{{0,0,0,1,0,0,0,0,0,0,0},{0,0,0,0,1,0,0,0,0,0,1},{0,0,0,0,0,0,1,1,0,0,0},{0,0,1,0,0,1,0,0,1,0,0},{1,0,0,0,0,0,0,0,1,1,0},{0,0,0,0,1,0,1,1,0,0,1},{0,1,0,0,0,1,0,0,1,1,0},{0,1,0,0,0,1,0,0,1,1,0},{0,0,0,1,1,0,1,1,0,0,1},{0,0,0,1,0,0,1,1,0,0,2},{0,0,1,0,0,1,0,0,1,2,0}},{{0,0,0,0,1,0,0,0,0,0,0},{0,0,0,0,0,0,1,1,0,0,0},{0,0,0,1,0,0,0,0,0,0,1},{1,0,0,0,0,0,0,0,1,1,0},{0,1,0,0,0,1,0,0,1,0,0},{0,0,0,1,0,0,1,1,0,0,1},{0,0,1,0,0,1,0,0,1,1,0},{0,0,1,0,0,1,0,0,1,1,0},{0,0,0,1,1,0,1,1,0,0,1},{0,0,0,0,1,0,1,1,0,0,2},{0,1,0,0,0,1,0,0,1,2,0}},{{0,0,0,0,0,1,0,0,0,0,0},{0,0,1,0,0,0,0,0,1,1,0},{0,1,0,0,0,0,0,0,1,1,0},{0,0,0,0,1,0,1,1,0,0,1},{0,0,0,1,0,0,1,1,0,0,1},{1,0,0,0,0,2,0,0,1,2,0},{0,0,0,1,1,0,1,1,0,0,2},{0,0,0,1,1,0,1,1,0,0,2},{0,1,1,0,0,1,0,0,2,2,0},{0,1,1,0,0,2,0,0,2,2,0},{0,0,0,1,1,0,2,2,0,0,2}},{{0,0,0,0,0,0,1,0,0,0,0},{0,0,0,1,0,0,1,0,0,0,1},{0,0,0,0,1,0,1,0,0,0,1},{0,1,0,0,0,1,0,0,1,1,0},{0,0,1,0,0,1,0,0,1,1,0},{0,0,0,1,1,0,1,1,0,0,2},{1,1,1,0,0,1,0,0,1,2,0},{0,0,0,0,0,1,0,0,2,2,0},{0,0,0,1,1,0,1,2,0,0,2},{0,0,0,1,1,0,2,2,0,0,2},{0,1,1,0,0,2,0,0,2,2,0}},{{0,0,0,0,0,0,0,1,0,0,0},{0,0,0,1,0,0,0,1,0,0,1},{0,0,0,0,1,0,0,1,0,0,1},{0,1,0,0,0,1,0,0,1,1,0},{0,0,1,0,0,1,0,0,1,1,0},{0,0,0,1,1,0,1,1,0,0,2},{0,0,0,0,0,1,0,0,2,2,0},{1,1,1,0,0,1,0,0,1,2,0},{0,0,0,1,1,0,2,1,0,0,2},{0,0,0,1,1,0,2,2,0,0,2},{0,1,1,0,0,2,0,0,2,2,0}},{{0,0,0,0,0,0,0,0,1,0,0},{0,0,0,0,0,1,0,0,1,1,0},{0,0,0,0,0,1,0,0,1,1,0},{0,0,0,1,1,0,1,1,0,0,1},{0,0,0,1,1,0,1,1,0,0,1},{0,1,1,0,0,1,0,0,2,2,0},{0,0,0,1,1,0,1,2,0,0,2},{0,0,0,1,1,0,2,1,0,0,2},{1,1,1,0,0,2,0,0,2,2,0},{0,1,1,0,0,2,0,0,2,3,0},{0,0,0,1,1,0,2,2,0,0,3}},{{0,0,0,0,0,0,0,0,0,1,0},{0,1,0,0,0,1,0,0,1,1,0},{0,0,1,0,0,1,0,0,1,1,0},{0,0,0,1,0,0,1,1,0,0,2},{0,0,0,0,1,0,1,1,0,0,2},{0,1,1,0,0,2,0,0,2,2,0},{0,0,0,1,1,0,2,2,0,0,2},{0,0,0,1,1,0,2,2,0,0,2},{0,1,1,0,0,2,0,0,2,3,0},{1,1,1,0,0,2,0,0,3,3,0},{0,0,0,2,2,0,2,2,0,0,3}},{{0,0,0,0,0,0,0,0,0,0,1},{0,0,0,0,1,0,1,1,0,0,1},{0,0,0,1,0,0,1,1,0,0,1},{0,0,1,0,0,1,0,0,1,2,0},{0,1,0,0,0,1,0,0,1,2,0},{0,0,0,1,1,0,2,2,0,0,2},{0,1,1,0,0,2,0,0,2,2,0},{0,1,1,0,0,2,0,0,2,2,0},{0,0,0,1,1,0,2,2,0,0,3},{0,0,0,2,2,0,2,2,0,0,3},{1,1,1,0,0,2,0,0,3,3,0}}}


% the macro \chisum in its original style with some modifications to let it work

\makeatletter
\newcounter{ct}
\def\chisum#1{$\def\zzsep{\def\zzsep{\oplus}}\setcounter{ct}{0}%
              \@for\tmp:=#1\do
              {\stepcounter{ct}\expandafter\zzz\tmp\relax}$}
\makeatother
% auxiliary macro for the original \chisum
\def\zzz#1\relax{
    \ifnum #1=1
    \zzsep\chi_{\thect}
    \else
    \ifnum #1=0
    \else
    \zzsep#1\chi_{\thect}
    \fi
    \fi
}

\newcounter{rowindex}

\begin{document}\thispagestyle{empty}

\setcounter{rowindex}{0}
\begin{tabular}{*{12}c}
$\bigotimes$&$\chi_1$&$\chi_2$&$\chi_3$&$\chi_4$&$\chi_5$&$\chi_6$&$\chi_7$&$\chi_8$&$\chi_9$&$\chi_{10}$&$\chi_{11}$ \\
\xintFor #1 in \clebschdata \do {%
   \stepcounter{rowindex}
   $\chi_{\arabic{rowindex}}$ \xintFor #2 in {#1} \do {&\chisum{#2}}%
   \\
}%  
\end{tabular}

\end{document}

The image is shown much reduced but if you dragged the image to your desktop it has correct size.

clebsh coeffs


This is my first answer:

\documentclass{article}
\usepackage{xint}     % for \xintFor* (needs xint v1.09c)

\usepackage{xintexpr} 
% only used because I didn't know what to do with \chisum

%% \usepackage{array} % (not needed here)

% This was the hardest part, generating this:
\def\clebschdata {{{2,1,7,2,9,5,6,0,3,0,2},{1,7,1,1,9,5,1,2,5,8,1},{6,6,1,9,4,1,5,7,3,1,9},{1,9,9,1,4,0,6,7,8,6,5},{2,5,5,5,9,5,2,7,3,7,3},{2,5,8,9,0,5,7,7,4,0,0},{5,5,2,9,2,3,9,8,1,7,5},{7,0,3,0,4,1,0,8,1,8,9},{9,6,6,3,6,6,7,2,5,9,5},{0,4,4,8,1,5,0,1,6,9,9},{2,7,2,7,4,6,4,8,2,5,9}},{{3,4,6,0,0,0,1,0,5,6,5},{4,2,6,4,0,3,0,0,0,5,8},{1,0,9,8,4,5,2,1,6,5,0},{3,1,9,6,0,4,1,4,8,6,9},{0,7,6,7,5,7,8,2,2,8,1},{7,7,9,9,2,2,1,6,8,0,2},{5,4,9,7,8,9,5,7,1,9,2},{4,1,4,0,2,3,8,4,2,6,4},{5,5,8,2,7,7,1,3,1,1,3},{4,5,5,0,7,0,5,2,4,2,2},{1,2,4,0,0,2,8,8,7,8,8}},{{3,2,1,6,8,2,0,1,5,8,8},{3,3,5,7,6,9,2,5,1,0,8},{7,3,5,8,4,6,7,3,0,8,8},{0,9,8,0,4,7,1,5,7,0,1},{9,8,4,5,3,9,2,5,9,3,6},{3,6,0,9,1,4,9,6,5,9,2},{6,4,9,9,8,5,0,3,2,3,1},{2,5,9,5,7,4,9,1,7,6,7},{7,7,1,9,2,7,6,6,2,0,4},{7,2,2,7,4,5,6,0,2,1,4},{1,2,5,9,7,5,1,0,0,8,1}},{{1,7,7,6,9,2,8,6,3,0,5},{4,4,6,4,7,7,3,1,0,7,4},{6,7,9,9,5,5,6,2,5,2,0},{9,1,0,7,3,9,7,5,5,9,3},{8,6,5,0,0,9,0,6,8,6,5},{7,6,6,2,5,7,5,4,9,8,7},{7,6,1,7,1,4,4,1,6,5,2},{4,3,2,6,8,9,4,2,9,2,9},{0,8,8,3,7,9,7,9,1,8,6},{1,0,9,9,8,6,0,8,8,8,5},{5,2,3,6,0,4,9,2,3,4,8}},{{8,7,0,3,7,9,8,2,7,0,7},{9,1,8,7,8,7,0,8,9,0,4},{8,9,3,5,5,3,3,2,8,9,8},{9,7,6,9,1,4,5,4,3,3,0},{9,4,4,3,7,3,0,2,9,9,8},{8,2,0,1,9,4,0,5,1,6,6},{4,9,3,5,1,1,0,6,7,2,8},{4,1,5,7,1,4,3,1,0,8,7},{0,0,6,2,8,6,4,2,8,7,0},{9,7,8,5,3,4,5,7,5,3,5},{7,9,0,3,8,1,9,4,0,1,6}},{{4,4,6,8,4,7,1,0,0,6,7},{0,9,0,4,5,7,6,5,9,0,5},{3,6,8,9,9,7,5,1,7,1,2},{4,7,9,5,2,9,4,8,6,3,4},{4,1,8,6,3,7,4,1,2,1,7},{4,8,9,3,0,2,5,0,5,7,6},{6,9,6,1,9,1,1,6,3,7,8},{1,7,1,8,2,9,0,5,1,4,0},{0,7,9,9,4,5,0,5,9,7,8},{2,7,0,4,3,9,6,9,7,8,2},{8,8,0,4,8,7,4,1,8,3,3}},{{8,0,5,8,4,2,6,8,0,8,0},{0,8,5,9,3,2,1,3,4,7,4},{4,4,0,4,7,2,6,2,6,7,4},{1,0,9,4,2,2,5,9,9,4,4},{7,0,7,6,0,1,8,2,4,2,9},{6,9,5,8,9,1,8,1,0,0,3},{3,6,3,3,2,7,4,0,4,9,5},{5,1,8,4,9,8,3,0,0,7,2},{7,2,5,3,5,1,7,4,0,6,5},{3,9,9,9,8,9,4,3,4,5,7},{3,5,9,6,9,9,9,4,1,8,9}},{{0,1,5,4,7,8,3,4,9,6,8},{0,3,9,5,8,5,1,3,0,9,2},{3,2,4,2,1,7,7,1,8,2,2},{0,0,7,7,8,3,1,9,7,4,5},{0,2,1,0,4,2,8,0,7,5,8},{5,9,7,6,1,5,7,3,5,4,4},{1,7,2,2,8,6,8,8,6,5,4},{4,9,2,9,4,7,5,7,7,8,7},{5,9,9,7,1,1,2,1,1,6,7},{8,3,1,7,9,8,4,1,1,6,6},{4,2,3,0,7,4,8,9,1,2,6}},{{4,1,5,3,2,6,9,1,1,9,0},{1,9,5,2,8,4,2,9,8,0,1},{5,4,6,0,7,4,0,6,3,6,3},{9,0,8,5,0,3,4,0,7,3,5},{0,0,1,4,9,6,7,6,8,7,4},{0,4,2,5,0,8,2,3,2,2,2},{8,0,7,2,3,3,7,9,5,2,7},{7,2,5,4,3,9,7,8,5,8,7},{4,0,2,4,8,9,9,1,8,8,2},{2,3,0,7,1,3,6,9,4,5,5},{3,5,2,2,6,8,9,2,5,3,2}},{{0,0,4,4,3,7,4,7,9,0,8},{9,2,6,0,2,4,4,0,6,1,3},{4,9,9,0,9,3,1,3,4,2,3},{3,7,4,2,4,5,0,1,2,2,3},{8,2,8,5,5,8,3,4,7,5,6},{7,3,1,0,5,7,0,7,0,9,1},{1,6,2,0,2,0,8,1,3,8,9},{0,0,1,3,9,1,1,1,4,4,7},{6,3,9,5,0,7,6,5,1,1,2},{9,6,2,0,1,7,2,9,2,0,8},{1,2,1,2,9,1,0,9,5,1,0}},{{6,4,4,6,6,7,1,0,1,0,2},{3,0,8,5,4,5,6,6,9,0,5},{5,6,2,6,9,7,0,0,1,1,7},{9,8,0,5,9,4,8,3,3,5,0},{6,4,8,8,9,3,2,7,1,5,8},{4,2,8,5,6,8,9,1,2,9,9},{3,7,1,3,5,7,1,2,9,0,2},{1,4,6,5,4,2,4,6,4,2,0},{9,6,1,8,0,5,9,8,3,5,5},{3,1,5,2,8,9,9,3,2,9,0},{9,5,4,2,3,4,0,9,4,6,3}}}


\def\chisum #1{\xintthenumexpr sum(#1)\relax}

\newcounter{rowindex}

\begin{document}\thispagestyle{empty}

\setcounter{rowindex}{0}
\begin{tabular}{*{12}c}
$\bigotimes$&$\chi_1$&$\chi_2$&$\chi_3$&$\chi_4$&$\chi_5$&$\chi_6$&$\chi_7$&$\chi_8$&$\chi_9$&$\chi_{10}$&$\chi_{11}$ \\
\xintFor #1 in \clebschdata \do {%
   \stepcounter{rowindex}
   $\chi_{\arabic{rowindex}}$ \xintFor #2 in {#1} \do {&\chisum{#2}}%
   \\
}%  
\end{tabular}


\end{document}

Output:

looping in table


Some info on \xintFor.

This is a utility from xint (version 1.09c and later). It is not completely expandable but has some properties of completely expandable macros: nesting, capacity to handle group closing contexts such as inside tabulars (LaTeX) or general alignments. Two forms (the spaces before and after in, before and after \do, before the #1, are optional):

\xintFor  #1 in {a,b,c} \do {stuff with #1=a then b then c}
\xintFor* #1 in {{a}{b}{c}} \do {stuff with #1=a then b then c}

In the first form, spaces at the start of the list, around commas, and at the end are transparently removed since release 1.09f.

In the second form, spaces separating braced items do not count. Spaces inside each individual braced item are significant.

One can write \xintFor #1 in \Tmp \do {stuff} or equivalently \xintFor #1 in {\Tmp} \do {stuff}. But \Tmp must expand in one step to a comma separated list.

With \xintFor* it is slightly different, \Tmp is expanded again and again until hitting a brace or something unexpandable at the beginning. So \def\x{{a}{b}{c}}\def\y{\x}\xintFor* #1 in \y \do {stuff} is ok, as \y is expanded to \x then to {a}{b}{c}. One can also have \def\x {{a} {b} {c}}, \def\y {{d} {e) {f)} and then \xintFor* #1 in {\x\y} \do {...} is like \xintFor* #1 in {{a}{b}{c}{d}{e}{f}} \do {...}.

5
  • Bravo! A very complete answer to my question. Much appreciation jfbu
    – user38585
    Oct 21, 2013 at 19:52
  • The spaces in the data were no problem to remove, so your implementation of \chisum worked just fine.
    – user38585
    Oct 21, 2013 at 20:01
  • Ooooh! They look like towers; the leftmost looks kinda like a baroque tower, and then they go to a more middle-eastern design, then what looks like a pagoda. And the last one looks like a birthday cake. Awesome!
    – morbusg
    Oct 21, 2013 at 21:00
  • @morbusg do you think there is some hidden mystic message in SL(2,F_7) :) ?
    – user4686
    Oct 21, 2013 at 21:08
  • @jfbu: as a consumer of the table, that's the information I'm taking with me from it ;)
    – morbusg
    Oct 21, 2013 at 21:16
4

enter image description here

Thanks to jfbu for the data

\documentclass[a4paper]{article}
\usepackage{pdflscape,array}
\makeatletter
\def\clebstable#1{%
\begin{tabular}{l*{12}{>{\centering}p{1.5cm}}}%
$\bigotimes$&$\chi_1$&$\chi_2$&$\chi_3$&$\chi_4$&$\chi_5$&$\chi_6$&$\chi_7$&$\chi_8$&$\chi_9$&$\chi_{10}$&$\chi_{11}$ \tabularnewline
\clebA1#1\relax
\end{tabular}}

\def\clebA#1#2#3{%
  $\chi_{#1}$\clebB#2\relax
  \ifx\relax#3\else\tabularnewline\expandafter\clebA\expandafter{\the\numexpr#1+1\expandafter}\fi}

\def\clebB#1#2{%
  &$\gdef\clebD{\gdef\clebD{\oplus}}\clebC1#1,$%
  \ifx\relax#2\else\expandafter\clebB\fi}

\def\clebC#1#2,{%
 \ifnum#2=\z@\else
  \clebD
  \ifnum#2=\@ne\else#2\fi
  \chi_{#1}%
 \fi
 \ifnum#1<11 \expandafter\clebC\expandafter{\the\numexpr#1+1\expandafter}\fi}


\begin{document}

\begin{landscape}\tiny
\clebstable {{{2,1,7,2,9,5,6,0,3,0,2},{1,7,1,1,9,5,1,2,5,8,1},{6,6,1,9,4,1,5,7,3,1,9},{1,9,9,1,4,0,6,7,8,6,5},{2,5,5,5,9,5,2,7,3,7,3},{2,5,8,9,0,5,7,7,4,0,0},{5,5,2,9,2,3,9,8,1,7,5},{7,0,3,0,4,1,0,8,1,8,9},{9,6,6,3,6,6,7,2,5,9,5},{0,4,4,8,1,5,0,1,6,9,9},{2,7,2,7,4,6,4,8,2,5,9}},{{3,4,6,0,0,0,1,0,5,6,5},{4,2,6,4,0,3,0,0,0,5,8},{1,0,9,8,4,5,2,1,6,5,0},{3,1,9,6,0,4,1,4,8,6,9},{0,7,6,7,5,7,8,2,2,8,1},{7,7,9,9,2,2,1,6,8,0,2},{5,4,9,7,8,9,5,7,1,9,2},{4,1,4,0,2,3,8,4,2,6,4},{5,5,8,2,7,7,1,3,1,1,3},{4,5,5,0,7,0,5,2,4,2,2},{1,2,4,0,0,2,8,8,7,8,8}},{{3,2,1,6,8,2,0,1,5,8,8},{3,3,5,7,6,9,2,5,1,0,8},{7,3,5,8,4,6,7,3,0,8,8},{0,9,8,0,4,7,1,5,7,0,1},{9,8,4,5,3,9,2,5,9,3,6},{3,6,0,9,1,4,9,6,5,9,2},{6,4,9,9,8,5,0,3,2,3,1},{2,5,9,5,7,4,9,1,7,6,7},{7,7,1,9,2,7,6,6,2,0,4},{7,2,2,7,4,5,6,0,2,1,4},{1,2,5,9,7,5,1,0,0,8,1}},{{1,7,7,6,9,2,8,6,3,0,5},{4,4,6,4,7,7,3,1,0,7,4},{6,7,9,9,5,5,6,2,5,2,0},{9,1,0,7,3,9,7,5,5,9,3},{8,6,5,0,0,9,0,6,8,6,5},{7,6,6,2,5,7,5,4,9,8,7},{7,6,1,7,1,4,4,1,6,5,2},{4,3,2,6,8,9,4,2,9,2,9},{0,8,8,3,7,9,7,9,1,8,6},{1,0,9,9,8,6,0,8,8,8,5},{5,2,3,6,0,4,9,2,3,4,8}},{{8,7,0,3,7,9,8,2,7,0,7},{9,1,8,7,8,7,0,8,9,0,4},{8,9,3,5,5,3,3,2,8,9,8},{9,7,6,9,1,4,5,4,3,3,0},{9,4,4,3,7,3,0,2,9,9,8},{8,2,0,1,9,4,0,5,1,6,6},{4,9,3,5,1,1,0,6,7,2,8},{4,1,5,7,1,4,3,1,0,8,7},{0,0,6,2,8,6,4,2,8,7,0},{9,7,8,5,3,4,5,7,5,3,5},{7,9,0,3,8,1,9,4,0,1,6}},{{4,4,6,8,4,7,1,0,0,6,7},{0,9,0,4,5,7,6,5,9,0,5},{3,6,8,9,9,7,5,1,7,1,2},{4,7,9,5,2,9,4,8,6,3,4},{4,1,8,6,3,7,4,1,2,1,7},{4,8,9,3,0,2,5,0,5,7,6},{6,9,6,1,9,1,1,6,3,7,8},{1,7,1,8,2,9,0,5,1,4,0},{0,7,9,9,4,5,0,5,9,7,8},{2,7,0,4,3,9,6,9,7,8,2},{8,8,0,4,8,7,4,1,8,3,3}},{{8,0,5,8,4,2,6,8,0,8,0},{0,8,5,9,3,2,1,3,4,7,4},{4,4,0,4,7,2,6,2,6,7,4},{1,0,9,4,2,2,5,9,9,4,4},{7,0,7,6,0,1,8,2,4,2,9},{6,9,5,8,9,1,8,1,0,0,3},{3,6,3,3,2,7,4,0,4,9,5},{5,1,8,4,9,8,3,0,0,7,2},{7,2,5,3,5,1,7,4,0,6,5},{3,9,9,9,8,9,4,3,4,5,7},{3,5,9,6,9,9,9,4,1,8,9}},{{0,1,5,4,7,8,3,4,9,6,8},{0,3,9,5,8,5,1,3,0,9,2},{3,2,4,2,1,7,7,1,8,2,2},{0,0,7,7,8,3,1,9,7,4,5},{0,2,1,0,4,2,8,0,7,5,8},{5,9,7,6,1,5,7,3,5,4,4},{1,7,2,2,8,6,8,8,6,5,4},{4,9,2,9,4,7,5,7,7,8,7},{5,9,9,7,1,1,2,1,1,6,7},{8,3,1,7,9,8,4,1,1,6,6},{4,2,3,0,7,4,8,9,1,2,6}},{{4,1,5,3,2,6,9,1,1,9,0},{1,9,5,2,8,4,2,9,8,0,1},{5,4,6,0,7,4,0,6,3,6,3},{9,0,8,5,0,3,4,0,7,3,5},{0,0,1,4,9,6,7,6,8,7,4},{0,4,2,5,0,8,2,3,2,2,2},{8,0,7,2,3,3,7,9,5,2,7},{7,2,5,4,3,9,7,8,5,8,7},{4,0,2,4,8,9,9,1,8,8,2},{2,3,0,7,1,3,6,9,4,5,5},{3,5,2,2,6,8,9,2,5,3,2}},{{0,0,4,4,3,7,4,7,9,0,8},{9,2,6,0,2,4,4,0,6,1,3},{4,9,9,0,9,3,1,3,4,2,3},{3,7,4,2,4,5,0,1,2,2,3},{8,2,8,5,5,8,3,4,7,5,6},{7,3,1,0,5,7,0,7,0,9,1},{1,6,2,0,2,0,8,1,3,8,9},{0,0,1,3,9,1,1,1,4,4,7},{6,3,9,5,0,7,6,5,1,1,2},{9,6,2,0,1,7,2,9,2,0,8},{1,2,1,2,9,1,0,9,5,1,0}},{{6,4,4,6,6,7,1,0,1,0,2},{3,0,8,5,4,5,6,6,9,0,5},{5,6,2,6,9,7,0,0,1,1,7},{9,8,0,5,9,4,8,3,3,5,0},{6,4,8,8,9,3,2,7,1,5,8},{4,2,8,5,6,8,9,1,2,9,9},{3,7,1,3,5,7,1,2,9,0,2},{1,4,6,5,4,2,4,6,4,2,0},{9,6,1,8,0,5,9,8,3,5,5},{3,1,5,2,8,9,9,3,2,9,0},{9,5,4,2,3,4,0,9,4,6,3}}}

\end{landscape}
\end{document}
2
  • I am flattered that you use my 11x11x11 list rather than the actual Clebsch-Gordan coefficients, as added in an edit by the OP to his original question! perhaps there is an underlying group (of a new kind) with these decomposition coefficients (they were obtained as the digits of 1234/56789 after the decimal mark) ;-)
    – user4686
    Oct 21, 2013 at 20:34
  • @jfbu ah I didn't notice the OP edit (I'd done most of this earlier, but left off to eat and just posted the rest without checking for updates:-) Oct 21, 2013 at 20:36
4

You have no hope to get such a gigantic table in a normal document: even in landscape mode and \tiny size the overfull is 500pt, that is about 17cm or 7in.

However, here's a general solution that works for any number of components, here I give an example with four. I add also the definition for \chisum already discussed. No problem with spaces.

\documentclass{article}
\usepackage{amsmath}
\usepackage{xparse}
\ExplSyntaxOn
\NewDocumentCommand{\chisum}{m} % a homage to John Wayne
 {
  \aentropy_chisum:n { #1 }
 }
\seq_new:N \l_aentropy_chisum_seq
\int_new:N \l_aentropy_chisum_index_int
\cs_new_protected:Npn \aentropy_chisum:n #1
 {
  \seq_clear:N \l_aentropy_chisum_seq
  \int_zero:N \l_aentropy_chisum_index_int
  \clist_map_inline:nn { #1 }
   {
    \int_incr:N \l_aentropy_chisum_index_int
    \aentropy_add_summand:n { ##1 }
   }
  \seq_use:Nn \l_aentropy_chisum_seq { \oplus }
 }
\cs_new:Npn \aentropy_add_summand:n #1
 {
  \str_if_eq:nnF { #1 } { 0 }
   {
    \seq_put_right:Nx \l_aentropy_chisum_seq
     {
      \str_if_eq:nnF { #1 } { 1 } { #1 }
      \exp_not:n { \chi }
      \c_math_subscript_token
      { \int_to_arabic:n { \l_aentropy_chisum_index_int } }
     }
   }
 }

\NewDocumentCommand{\clebschtable}{mm}
 {
  \aentropy_clebschtable:no { #1 } { #2 }
 }

\tl_new:N \l_aentropy_clebschtable_tl
\int_new:N \l_aentropy_clebschtable_row_int
\cs_new_protected:Npn \aentropy_clebschtable:nn #1 #2
 {
  \tl_clear:N \l_aentropy_clebschtable_tl
  \int_zero:N \l_aentropy_clebschtable_row_int
  \aentropy_make_first_row:n { #1 }
  \clist_map_inline:nn { #2 }
   {
    \int_incr:N \l_aentropy_clebschtable_row_int
    \tl_put_right:Nx \l_aentropy_clebschtable_tl
     {
      \chi
      \c_math_subscript_token
      { \int_to_arabic:n { \l_aentropy_clebschtable_row_int } }
     }
    \clist_map_inline:nn { ##1 }
     {
      \tl_put_right:Nn \l_aentropy_clebschtable_tl { & \aentropy_chisum:n { ####1 } }
     }
    \tl_put_right:Nn \l_aentropy_clebschtable_tl { \\ }
   }
  \begin{array}{l|*{#1}{c}}%| % to keep emacs happy
  \l_aentropy_clebschtable_tl
  \end{array}
 }
\cs_generate_variant:Nn \aentropy_clebschtable:nn { no }
\cs_new_protected:Npn \aentropy_make_first_row:n #1
 {
  \tl_put_right:Nn \l_aentropy_clebschtable_tl { \bigotimes }
  \int_step_inline:nnnn { 1 } { 1 } { #1 }
   {
    \tl_put_right:Nn \l_aentropy_clebschtable_tl
     {
      & \chi
      \c_math_subscript_token
      { ##1 }
     }
   }
  \tl_put_right:Nn \l_aentropy_clebschtable_tl { \\ \hline }
 }
\ExplSyntaxOff

\begin{document}
$\chisum{5,2,7,8,2,0,0,1,3}$

\bigskip

\def\clebschdata {
 {
  {1,0,0,0},
  {0,1,0,0},
  {0,0,1,0},
  {0,2,0,1},
 },
 {
  {0,1,0,0},
  {0,0,1,0},
  {1,0,0,3},
  {0,0,0,1},
 },
 {
  {0,0,1,1},
  {1,0,0,0},
  {0,1,0,0},
  {0,0,3,0},
 },
 {
  {0,0,0,1},
  {4,0,0,1},
  {0,2,0,0},
  {0,0,1,0},
 }
}

$\clebschtable{4}{\clebschdata}$

\end{document}

enter image description here

Just for the record, here's the gigantic table all in one PNG

enter image description here


With line breaks; when an optional argument is specified, the macros assume the cells are huge, so they are typeset in \scriptsize in the stated width; the column and row headers are still in normal size.

\documentclass{article}
\usepackage[margin=1cm]{geometry}
\usepackage{amsmath,array,pdflscape}
\newcolumntype{C}[1]{>{\centering\scriptsize\arraybackslash$}m{#1}<{$}}
\usepackage{xparse}
\ExplSyntaxOn
\NewDocumentCommand{\chisum}{m} % a homage to John Wayne
 {
  \aentropy_chisum:n { #1 }
 }
\seq_new:N \l_aentropy_chisum_seq
\int_new:N \l_aentropy_chisum_index_int
\cs_new_protected:Npn \aentropy_chisum:n #1
 {
  \seq_clear:N \l_aentropy_chisum_seq
  \int_zero:N \l_aentropy_chisum_index_int
  \clist_map_inline:nn { #1 }
   {
    \int_incr:N \l_aentropy_chisum_index_int
    \aentropy_add_summand:n { ##1 }
   }
  \seq_use:Nn \l_aentropy_chisum_seq { \oplus }
 }
\cs_new:Npn \aentropy_add_summand:n #1
 {
  \str_if_eq:nnF { #1 } { 0 }
   {
    \seq_put_right:Nx \l_aentropy_chisum_seq
     {
      \str_if_eq:nnF { #1 } { 1 } { #1 }
      \exp_not:n { \chi }
      \c_math_subscript_token
      { \int_to_arabic:n { \l_aentropy_chisum_index_int } }
     }
   }
 }

\NewDocumentCommand{\clebschtable}{omm}
 {
  \IfNoValueTF{#1}
   { \aentropy_clebschtable:nno { } { #2 } { #3 } }
   { \aentropy_clebschtable:nno { #1 } { #2 } { #3 } }
 }

\tl_new:N \l_aentropy_clebschtable_tl
\int_new:N \l_aentropy_clebschtable_row_int
\cs_new_protected:Npn \aentropy_clebschtable:nnn #1 #2 #3
 {
  \tl_clear:N \l_aentropy_clebschtable_tl
  \int_zero:N \l_aentropy_clebschtable_row_int
  \aentropy_make_first_row:n { #2 }
  \clist_map_inline:nn { #3 }
   {
    \int_incr:N \l_aentropy_clebschtable_row_int
    \tl_put_right:Nx \l_aentropy_clebschtable_tl
     {
      \chi
      \c_math_subscript_token
      { \int_to_arabic:n { \l_aentropy_clebschtable_row_int } }
     }
    \clist_map_inline:nn { ##1 }
     {
      \tl_put_right:Nn \l_aentropy_clebschtable_tl { & \aentropy_chisum:n { ####1 } }
     }
    \tl_put_right:Nn \l_aentropy_clebschtable_tl { \\ }
   }
  \tl_if_empty:nTF { #1 }
   { \begin{array}{l|*{#2}{c}} }%| % to keep emacs happy
   { \begin{array}{l|*{#2}{C{#1}}} }%| % to keep emacs happy
  \l_aentropy_clebschtable_tl
  \end{array}
 }
\cs_generate_variant:Nn \aentropy_clebschtable:nnn { nno }
\cs_new_protected:Npn \aentropy_make_first_row:n #1
 {
  \tl_put_right:Nn \l_aentropy_clebschtable_tl { \bigotimes }
  \int_step_inline:nnnn { 1 } { 1 } { #1 }
   {
    \tl_put_right:Nn \l_aentropy_clebschtable_tl
     {
      &
      \multicolumn{1}{c}
       {
        \chi
        \c_math_subscript_token
        { ##1 }
       }
     }
   }
  \tl_put_right:Nn \l_aentropy_clebschtable_tl { \\ \hline }
 }
\ExplSyntaxOff

\begin{document}
% $\chisum{5,2,7,8,2,0,0,1,3}$

% \bigskip

\def\clebschdata {
 {
  {1,0,0,0},
  {0,1,0,0},
  {0,0,1,0},
  {0,2,0,1},
 },
 {
  {0,1,0,0},
  {0,0,1,0},
  {1,0,0,3},
  {0,0,0,1},
 },
 {
  {0,0,1,1},
  {1,0,0,0},
  {0,1,0,0},
  {0,0,3,0},
 },
 {
  {0,0,0,1},
  {4,0,0,1},
  {0,2,0,0},
  {0,0,1,0},
 }
}

$\clebschtable{4}{\clebschdata}$

\def\clebschdata {{{1,0,0,0,0,0,0,0,0,0,0},{0,1,0,0,0,0,0,0,0,0,0},{0,0,1,0,0,0,0,0,0,0,0},{0,0,0,1,0,0,0,0,0,0,0},{0,0,0,0,1,0,0,0,0,0,0},{0,0,0,0,0,1,0,0,0,0,0},{0,0,0,0,0,0,1,0,0,0,0},{0,0,0,0,0,0,0,1,0,0,0},{0,0,0,0,0,0,0,0,1,0,0},{0,0,0,0,0,0,0,0,0,1,0},{0,0,0,0,0,0,0,0,0,0,1}},{{0,1,0,0,0,0,0,0,0,0,0},{0,0,1,0,0,1,0,0,0,0,0},{1,0,0,0,0,0,0,0,0,1,0},{0,0,0,0,1,0,0,0,0,0,1},{0,0,0,0,0,0,1,1,0,0,0},{0,0,1,0,0,0,0,0,1,1,0},{0,0,0,1,0,0,1,0,0,0,1},{0,0,0,1,0,0,0,1,0,0,1},{0,0,0,0,0,1,0,0,1,1,0},{0,1,0,0,0,1,0,0,1,1,0},{0,0,0,0,1,0,1,1,0,0,1}},{{0,0,1,0,0,0,0,0,0,0,0},{1,0,0,0,0,0,0,0,0,1,0},{0,1,0,0,0,1,0,0,0,0,0},{0,0,0,0,0,0,1,1,0,0,0},{0,0,0,1,0,0,0,0,0,0,1},{0,1,0,0,0,0,0,0,1,1,0},{0,0,0,0,1,0,1,0,0,0,1},{0,0,0,0,1,0,0,1,0,0,1},{0,0,0,0,0,1,0,0,1,1,0},{0,0,1,0,0,1,0,0,1,1,0},{0,0,0,1,0,0,1,1,0,0,1}},{{0,0,0,1,0,0,0,0,0,0,0},{0,0,0,0,1,0,0,0,0,0,1},{0,0,0,0,0,0,1,1,0,0,0},{0,0,1,0,0,1,0,0,1,0,0},{1,0,0,0,0,0,0,0,1,1,0},{0,0,0,0,1,0,1,1,0,0,1},{0,1,0,0,0,1,0,0,1,1,0},{0,1,0,0,0,1,0,0,1,1,0},{0,0,0,1,1,0,1,1,0,0,1},{0,0,0,1,0,0,1,1,0,0,2},{0,0,1,0,0,1,0,0,1,2,0}},{{0,0,0,0,1,0,0,0,0,0,0},{0,0,0,0,0,0,1,1,0,0,0},{0,0,0,1,0,0,0,0,0,0,1},{1,0,0,0,0,0,0,0,1,1,0},{0,1,0,0,0,1,0,0,1,0,0},{0,0,0,1,0,0,1,1,0,0,1},{0,0,1,0,0,1,0,0,1,1,0},{0,0,1,0,0,1,0,0,1,1,0},{0,0,0,1,1,0,1,1,0,0,1},{0,0,0,0,1,0,1,1,0,0,2},{0,1,0,0,0,1,0,0,1,2,0}},{{0,0,0,0,0,1,0,0,0,0,0},{0,0,1,0,0,0,0,0,1,1,0},{0,1,0,0,0,0,0,0,1,1,0},{0,0,0,0,1,0,1,1,0,0,1},{0,0,0,1,0,0,1,1,0,0,1},{1,0,0,0,0,2,0,0,1,2,0},{0,0,0,1,1,0,1,1,0,0,2},{0,0,0,1,1,0,1,1,0,0,2},{0,1,1,0,0,1,0,0,2,2,0},{0,1,1,0,0,2,0,0,2,2,0},{0,0,0,1,1,0,2,2,0,0,2}},{{0,0,0,0,0,0,1,0,0,0,0},{0,0,0,1,0,0,1,0,0,0,1},{0,0,0,0,1,0,1,0,0,0,1},{0,1,0,0,0,1,0,0,1,1,0},{0,0,1,0,0,1,0,0,1,1,0},{0,0,0,1,1,0,1,1,0,0,2},{1,1,1,0,0,1,0,0,1,2,0},{0,0,0,0,0,1,0,0,2,2,0},{0,0,0,1,1,0,1,2,0,0,2},{0,0,0,1,1,0,2,2,0,0,2},{0,1,1,0,0,2,0,0,2,2,0}},{{0,0,0,0,0,0,0,1,0,0,0},{0,0,0,1,0,0,0,1,0,0,1},{0,0,0,0,1,0,0,1,0,0,1},{0,1,0,0,0,1,0,0,1,1,0},{0,0,1,0,0,1,0,0,1,1,0},{0,0,0,1,1,0,1,1,0,0,2},{0,0,0,0,0,1,0,0,2,2,0},{1,1,1,0,0,1,0,0,1,2,0},{0,0,0,1,1,0,2,1,0,0,2},{0,0,0,1,1,0,2,2,0,0,2},{0,1,1,0,0,2,0,0,2,2,0}},{{0,0,0,0,0,0,0,0,1,0,0},{0,0,0,0,0,1,0,0,1,1,0},{0,0,0,0,0,1,0,0,1,1,0},{0,0,0,1,1,0,1,1,0,0,1},{0,0,0,1,1,0,1,1,0,0,1},{0,1,1,0,0,1,0,0,2,2,0},{0,0,0,1,1,0,1,2,0,0,2},{0,0,0,1,1,0,2,1,0,0,2},{1,1,1,0,0,2,0,0,2,2,0},{0,1,1,0,0,2,0,0,2,3,0},{0,0,0,1,1,0,2,2,0,0,3}},{{0,0,0,0,0,0,0,0,0,1,0},{0,1,0,0,0,1,0,0,1,1,0},{0,0,1,0,0,1,0,0,1,1,0},{0,0,0,1,0,0,1,1,0,0,2},{0,0,0,0,1,0,1,1,0,0,2},{0,1,1,0,0,2,0,0,2,2,0},{0,0,0,1,1,0,2,2,0,0,2},{0,0,0,1,1,0,2,2,0,0,2},{0,1,1,0,0,2,0,0,2,3,0},{1,1,1,0,0,2,0,0,3,3,0},{0,0,0,2,2,0,2,2,0,0,3}},{{0,0,0,0,0,0,0,0,0,0,1},{0,0,0,0,1,0,1,1,0,0,1},{0,0,0,1,0,0,1,1,0,0,1},{0,0,1,0,0,1,0,0,1,2,0},{0,1,0,0,0,1,0,0,1,2,0},{0,0,0,1,1,0,2,2,0,0,2},{0,1,1,0,0,2,0,0,2,2,0},{0,1,1,0,0,2,0,0,2,2,0},{0,0,0,1,1,0,2,2,0,0,3},{0,0,0,2,2,0,2,2,0,0,3},{1,1,1,0,0,2,0,0,3,3,0}}}

\begin{landscape}
\centering
$\clebschtable[1.8cm]{11}{\clebschdata}$
\end{landscape}
\end{document}

enter image description here

2
  • Thanks for the reply, your table looks nice. I am inclined to use jfbu's answer however since I don't have LaTeX 3. Also I have indeed managed to get the whole table to fit on one page, it involved using landscape, small text, and line wrapping :-)
    – user38585
    Oct 21, 2013 at 19:54
  • Your updated table looks very nice, if I can manage to get LaTeX 3 installed I will use it. Thanks!
    – user38585
    Oct 22, 2013 at 22:06

You must log in to answer this question.