Drawing Young tabloids

I've expanded ytableau a little to include an option to draw tabloids.

\documentclass{standalone}
\usepackage{ytableau}
\begin{document}
  \ytableausetup{tabloids,centertableaux}
  $2\cdot\ytableaushort{123,45,6}$
\end{document}

enter image description here

Currently the new version is on my website and has also been uploaded to CTAN.


The ytableau package (by Ryan Reich) could be an option (examples take almost verbatim from the package documentation):

\documentclass{article}
\usepackage{amsmath}
\usepackage{ytableau}

\begin{document}

\ytableausetup{textmode}
\begin{ytableau}
a & d & f \\
b & e & g \\
c
\end{ytableau}

\ytableausetup{mathmode}
\begin{ytableau}
a & d & \ldots & f \\
b & e
\end{ytableau}

\[
\ytableausetup
{boxsize=1.25em}
\ytableausetup
{aligntableaux=top}
\ytableaushort[x_]{135,24,6}
+ \ydiagram[*(red!20) ]{3} \\
+ \ydiagram[*(blue!20)]{3,2,1}
= \ytableaushort[x_]{135,24,6}
*[*(red!20)]{3} *[*(blue!20)]{3,2,1}
\]

\end{document}

enter image description here

CTAN mentions two other packages associated to Young tabloids: youngtab and young, but ytableau is the most flexible and customizable one, as far as I could see.

If you don't like the rules, you can suppress them by saying

\makeatletter
\def\boxframe@YT{0.0em}
\makeatother

in the preamble.


Here's an option. I'm not sure why you don't like the booktabs + matrix option, so you may not like this as well. However, it should give you an idea of how it can be implemented.

Edit 1: I removed a hardcoded value and added some of the booktabs constants into the function, you could fiddle with those to achieve spacing/weight that you like.

enter image description here

Edit 2: The case suggested in your comment should work now. This still requires the first row to be the longest however.

enter image description here

Edit 3: Removed hardcoded displayed math environment because, well, it was a bad idea.

\documentclass{article}
\usepackage{xparse}
\usepackage{booktabs}
\ExplSyntaxOn
\tl_new:N \l_my_body_tl
\int_new:N \l_first_row_count_int
\int_new:N \l_row_count_int
\int_set:Nn \l_row_count_int {1}
\cs_new:Npn \make_tab_row:n #1
    {
        \tl_clear:N \l_tmpa_tl
        \int_compare:nTF { \l_row_count_int = 1 }
          {
            \int_set:Nn \l_first_row_count_int {\tl_count:n {#1}}
            \int_set:Nn \l_tmpa_int {\tl_count:n {#1}}
          }
          {
            \int_set:Nn \l_tmpa_int {\tl_count:n {#1}}
          }
        \tl_set:Nx \l_tmpb_tl {\clist_item:Nn \g_tmpa_clist {\l_row_count_int + 1}}
        \int_set:Nn \l_tmpb_int {\tl_count:N \l_tmpb_tl}
        \int_set:Nn \l_tmpa_int {\int_max:nn \l_tmpb_int \l_tmpa_int}

        \tl_map_inline:nn {#1} {\tl_put_right:Nn \l_tmpa_tl {& ##1}}
        \tl_put_right:Nn \l_tmpa_tl {\\\cmidrule}
        \tl_put_right:Nx \l_tmpa_tl {{1-\int_to_arabic:n \l_tmpa_int}}
        \tl_set:Nx \l_tmpa_tl { \tl_tail:N \l_tmpa_tl }
        \tl_put_right:NV \l_my_body_tl \l_tmpa_tl
        \int_incr:N \l_row_count_int
    }

\NewDocumentCommand {\tabloidshort} { m }
    {
        \heavyrulewidth=.08em
        \cmidrulewidth=.08em
        \belowrulesep=.65ex
        \aboverulesep=.4ex
        \clist_gset:Nn \g_tmpa_clist {#1}
        \clist_map_function:nN { #1 } \make_tab_row:n
         \begin{array}{*{\int_use:N \l_first_row_count_int}{c}}
            \toprule
            \tl_use:N \l_my_body_tl
        \end{array}
        \tl_clear:N \l_my_body_tl
        \int_zero:N \l_first_row_count_int
        \int_set:Nn \l_row_count_int {1}
    }
\ExplSyntaxOff


\begin{document}

$\tabloidshort{12{10}5,1{\cdots}3,12}$

\[
\tabloidshort{89{10}{\ldots}{n+1},56}
\]

\begin{equation}
\tabloidshort{123,4,5,67}
\end{equation}

\end{document}