texlive[73576] Master/texmf-dist: atableau (24jan25)

commits+karl at tug.org commits+karl at tug.org
Fri Jan 24 22:05:08 CET 2025


Revision: 73576
          https://tug.org/svn/texlive?view=revision&revision=73576
Author:   karl
Date:     2025-01-24 22:05:08 +0100 (Fri, 24 Jan 2025)
Log Message:
-----------
atableau (24jan25)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/atableau/LICENSE
    trunk/Master/texmf-dist/doc/latex/atableau/README.md
    trunk/Master/texmf-dist/doc/latex/atableau/atableau.ini
    trunk/Master/texmf-dist/doc/latex/atableau/atableau.pdf
    trunk/Master/texmf-dist/doc/latex/atableau/atableau.tex
    trunk/Master/texmf-dist/tex/latex/atableau/atableau.sty

Modified: trunk/Master/texmf-dist/doc/latex/atableau/LICENSE
===================================================================
--- trunk/Master/texmf-dist/doc/latex/atableau/LICENSE	2025-01-24 21:04:58 UTC (rev 73575)
+++ trunk/Master/texmf-dist/doc/latex/atableau/LICENSE	2025-01-24 21:05:08 UTC (rev 73576)
@@ -1,9 +1,9 @@
 The LaTeX Project Public License
 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 
-LPPL Version 1.3  2003-12-01
+LPPL Version 1.3c  2008-05-04
 
-Copyright 1999 2002-03 LaTeX3 Project
+Copyright 1999 2002-2008 LaTeX3 Project
     Everyone is allowed to distribute verbatim copies of this
     license document, but modification of it is not allowed.
 
@@ -17,8 +17,8 @@
 You may use this license for any work of which you hold the copyright
 and which you wish to distribute.  This license may be particularly
 suitable if your work is TeX-related (such as a LaTeX package), but
-you may use it with small modifications even if your work is unrelated
-to TeX.
+it is written in such a way that you can use it even if your work is
+unrelated to TeX.
 
 The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE',
 below, gives instructions, examples, and recommendations for authors
@@ -82,12 +82,14 @@
    `Base Interpreter'
     A program or process that is normally needed for running or
     interpreting a part or the whole of the Work.
+
     A Base Interpreter may depend on external components but these
     are not considered part of the Base Interpreter provided that each
     external component clearly identifies itself whenever it is used
     interactively.  Unless explicitly specified when applying the
     license to the Work, the only applicable Base Interpreter is a
-    "LaTeX-Format".
+    `LaTeX-Format' or in the case of files belonging to the
+    `LaTeX-format' a program implementing the `TeX language'.
 
 
 
@@ -162,8 +164,8 @@
           condition, even though third parties are not compelled to
           copy the Work along with the modified component;
 
-       2. Information that is sufficient to obtain a complete, unmodified
-          copy of the Work.
+       2. Information that is sufficient to obtain a complete,
+          unmodified copy of the Work.
 
 7.  If you are not the Current Maintainer of the Work, you may
 distribute a Compiled Work generated from a Derived Work, as long as
@@ -171,9 +173,9 @@
 Work, and as long as the conditions of Clause 6, above, are met with
 regard to the Derived Work.
 
-8.  The conditions above are not intended to prohibit, and hence do
-not apply to, the modification, by any method, of any component so that it
-becomes identical to an  updated version of that component of the Work as
+8.  The conditions above are not intended to prohibit, and hence do not
+apply to, the modification, by any method, of any component so that it
+becomes identical to an updated version of that component of the Work as
 it is distributed by the Current Maintainer under Clause 4, above.
 
 9.  Distribution of the Work or any Derived Work in an alternative
@@ -187,7 +189,7 @@
        Clause 6 above, in regard to the Work, though it does not have
        to honor the rest of the conditions in this license.
 
-    b. If a Derived Work is distributed under this license, that
+    b. If a Derived Work is distributed under a different license, that
        Derived Work must provide sufficient documentation as part of
        itself to allow each recipient of that Derived Work to honor the
        restrictions in Clause 6 above, concerning changes from the Work.
@@ -206,19 +208,19 @@
 There is no warranty for the Work.  Except when otherwise stated in
 writing, the Copyright Holder provides the Work `as is', without
 warranty of any kind, either expressed or implied, including, but not
-limited to, the implied warranties of merchantability and fitness for
-a particular purpose.  The entire risk as to the quality and performance
-of the Work is with you.  Should the Work prove defective, you
-assume the cost of all necessary servicing, repair, or correction.
+limited to, the implied warranties of merchantability and fitness for a
+particular purpose.  The entire risk as to the quality and performance
+of the Work is with you.  Should the Work prove defective, you assume
+the cost of all necessary servicing, repair, or correction.
 
-In no event unless agreed to in writing will the Copyright Holder, or
-any author named in the components of the Work, or any other party who
-may distribute and/or modify the Work as permitted above, be liable to
-you for damages, including any general, special, incidental or
-consequential damages arising out of any use of the Work or out of
-inability to use the Work (including, but not limited to, loss of
-data, data being rendered inaccurate, or losses sustained by anyone as
-a result of any failure of the Work to operate with any other
+In no event unless required by applicable law or agreed to in writing
+will The Copyright Holder, or any author named in the components of the
+Work, or any other party who may distribute and/or modify the Work as
+permitted above, be liable to you for damages, including any general,
+special, incidental or consequential damages arising out of any use of
+the Work or out of inability to use the Work (including, but not limited
+to, loss of data, data being rendered inaccurate, or losses sustained by
+anyone as a result of any failure of the Work to operate with any other
 programs), even if the Copyright Holder or said author or said other
 party has been advised of the possibility of such damages.
 
@@ -229,7 +231,7 @@
 The Work has the status `author-maintained' if the Copyright Holder
 explicitly and prominently states near the primary copyright notice in
 the Work that the Work can only be maintained by the Copyright Holder
-or simply that is `author-maintained'.
+or simply that it is `author-maintained'.
 
 The Work has the status `maintained' if there is a Current Maintainer
 who has indicated in the Work that they are willing to receive error
@@ -350,19 +352,19 @@
 Here is an example of such a notice and statement:
 
   %% pig.dtx
-  %% Copyright 2003 M. Y. Name
+  %% Copyright 2008 M. Y. Name
   %
   % This work may be distributed and/or modified under the
   % conditions of the LaTeX Project Public License, either version 1.3
   % of this license or (at your option) any later version.
   % The latest version of this license is in
-  %   http://www.latex-project.org/lppl.txt
-  % and version 1.3 or later is part of all distributions of LaTeX
-  % version 2003/12/01 or later.
+  %   https://www.latex-project.org/lppl.txt
+  % and version 1.3c or later is part of all distributions of LaTeX
+  % version 2008 or later.
   %
-  % This work has the LPPL maintenance status "maintained".
+  % This work has the LPPL maintenance status `maintained'.
   %
-  % This Current Maintainer of this work is M. Y. Name.
+  % The Current Maintainer of this work is M. Y. Name.
   %
   % This work consists of the files pig.dtx and pig.ins
   % and the derived file pig.sty.
@@ -371,14 +373,27 @@
 given in this license document would apply, with the `Work' referring
 to the three files `pig.dtx', `pig.ins', and `pig.sty' (the last being
 generated from `pig.dtx' using `pig.ins'), the `Base Interpreter'
-referring to any "LaTeX-Format", and both `Copyright Holder' and
+referring to any `LaTeX-Format', and both `Copyright Holder' and
 `Current Maintainer' referring to the person `M. Y. Name'.
 
-To prevent the Maintenance section of LPPL from allowing someone else
-to become the Current Maintainer without your agreement, you could
-change "maintained" above into "author-maintained".
+If you do not want the Maintenance section of LPPL to apply to your
+Work, change `maintained' above into `author-maintained'.
+However, we recommend that you use `maintained', as the Maintenance
+section was added in order to ensure that your Work remains useful to
+the community even when you can no longer maintain and support it
+yourself.
 
+Derived Works That Are Not Replacements
+---------------------------------------
 
+Several clauses of the LPPL specify means to provide reliability and
+stability for the user community. They therefore concern themselves
+with the case that a Derived Work is intended to be used as a
+(compatible or incompatible) replacement of the original Work. If
+this is not the case (e.g., if a few lines of code are reused for a
+completely different task), then clauses 6b and 6d shall not apply.
+
+
 Important Recommendations
 -------------------------
 
@@ -399,3 +414,4 @@
    entitled to make reasonable conjectures as to which files comprise
    the Work.
 
+

Modified: trunk/Master/texmf-dist/doc/latex/atableau/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/atableau/README.md	2025-01-24 21:04:58 UTC (rev 73575)
+++ trunk/Master/texmf-dist/doc/latex/atableau/README.md	2025-01-24 21:05:08 UTC (rev 73576)
@@ -3,18 +3,17 @@
 ![LaTeX](https://img.shields.io/badge/LaTeX-008080?logo=latex&logoColor=fff&style=flat)
 
 # aTableau
-1
 
 A LaTeX package for symmetric group combinatorics, with commands for:
 
-  -   Young diagrams
-  -   tableaux
-  -   tabloids
-  -   skew tableaux
-  -   shifted tableaux
-  -   ribbon tableaux
-  -   multitableaux
-  -   abacuses
+  - Young diagrams
+  - tableaux
+  - tabloids
+  - skew tableaux
+  - shifted tableaux
+  - ribbon tableaux
+  - multitableaux
+  - abacuses
 
 ``` latex
 \Tableau{12345,678,9{10},{11}}

Modified: trunk/Master/texmf-dist/doc/latex/atableau/atableau.ini
===================================================================
--- trunk/Master/texmf-dist/doc/latex/atableau/atableau.ini	2025-01-24 21:04:58 UTC (rev 73575)
+++ trunk/Master/texmf-dist/doc/latex/atableau/atableau.ini	2025-01-24 21:05:08 UTC (rev 73576)
@@ -9,5 +9,5 @@
 package      = atableau
 repository   = github.com/AndrewMathas/aTableau/
 requirements = LaTeX2e
-release date = 22 January 2025 AEDT
-version      = 2.0.2
+release date = 24 January 2025 AEDT
+version      = 2.1.0

Modified: trunk/Master/texmf-dist/doc/latex/atableau/atableau.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/atableau/atableau.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/atableau/atableau.tex	2025-01-24 21:04:58 UTC (rev 73575)
+++ trunk/Master/texmf-dist/doc/latex/atableau/atableau.tex	2025-01-24 21:05:08 UTC (rev 73576)
@@ -1,6 +1,6 @@
 % ----------------------------------------------------------------------
 % Title:    aTableau.  Author:   Andrew Mathas Created:  October 2023
-% Modified: 22:42 Wednesday, 22 January 2025
+% Modified: 16:58 Friday, 24 January 2025
 % ----------------------------------------------------------------------
 \documentclass{amsart}
 \usepackage[svgnames,table]{xcolor}
@@ -8,6 +8,7 @@
 \usepackage{xspace}
 \usepackage{manfnt}
 \usepackage{booktabs}
+\usepackage{longtable}
 \usepackage{xltabular}
 \usepackage{siunitx}
 \usepackage{array}
@@ -41,23 +42,35 @@
   \tikz[baseline={(current bounding box.south)}]\node[minimum width=8mm, minimum height=2ex,fill=aTableau#1]{};%
 }
 
-\usepackage{enumitem}
-\setlist{itemsep=2mm, parsep=2mm}
-\newlist{options}{description}{1}
-% remove the colon from the description label by redefining \makelabel
-\newcommand\optionlabel[1]{\sffamily\bfseries\color{aTableauInner}#1\hss}
-\setlist[options]{
-  before=\let\makelabel\optionlabel,
-  labelwidth=\textwidth,
-  nosep,
+\ExplSyntaxOn
+% \optionlabel applies \option to the csv in #1 except in the case
+% when #1 starts with a * when the rest of #1 is printed
+\NewDocumentCommand\optionlabel{ m }
+{
+    \str_if_eq:eeTF { \str_head:n {#1} } {*}
+    {
+        \tl_set:Nx \l_tmpb_tl { \str_tail:n {#1} }
+        \tl_put_left:Nn \l_tmpb_tl {\sffamily\color{aTableauInner}}
+    }
+    {
+        \tl_clear:N \l_tmpa_tl
+        \tl_clear:N \l_tmpb_tl
+        \clist_map_inline:nn {#1}
+        {
+            \tl_put_right:Ne \l_tmpb_tl { \l_tmpa_tl \exp_not:N\option{##1}}
+            \tl_set:Nn \l_tmpa_tl {,~}
+        }
+    }
+    \l_tmpb_tl\hss
 }
 
-\ExplSyntaxOn
-\NewDocumentCommand\Yes{o}
+\NewDocumentCommand\Yes{o d()}
 {
   \IfNoValueTF{#1}
   {
-    \hyperref[\g_lastlink_tl]{\textcolor{ForestGreen}{\CheckmarkBold}}
+    \IfNoValueTF{#2}
+    { \hyperref[\g_lastlink_tl]{\textcolor{ForestGreen}{\CheckmarkBold}} }
+    { \hyperref[Key:#2]{\textcolor{ForestGreen}{\CheckmarkBold}} }
   }
   {
     \hyperref[\g_lastlink_tl-\str_lowercase:f{#1}]{\textcolor{ForestGreen}{\CheckmarkBold}}
@@ -76,7 +89,7 @@
       \prop_put:NVn \l__atableau_options_prop \g_lastlink_tl {}
    }
 }
-% \option*[default value]{option name}[accepted values]<hyperlink context>
+% \option*[default value]{option name}[accepted values]<hyperlink context>(link name)
 % The \option command is slightly overloaded, both in terms of arguments
 % (there are five) and in terms of use.
 % 1. If #2 is given then \option gives the syntax for the using this key:
@@ -98,7 +111,7 @@
 % added for new displayed options. If #2 is blank then the *-version
 % puts (no) before the option key. If #5 is given then it is added to
 % to the hyperlink.
-\NewDocumentCommand\option{ somo d<> }
+\NewDocumentCommand\option{ somo d<> d()}
 {%
   \seq_set_split:Nnn \l_tmpa_seq {=} {#3}%
   \seq_pop_left:NN \l_tmpa_seq \l_tmpa_tl%
@@ -107,8 +120,12 @@
   { \tl_set:No \l_tmpb_tl { \seq_use:Nn \l_tmpa_seq {=} } }
   \IfNoValueTF{#2}
   {%
-    \tl_gset:Nx \g_lastlink_tl {Key:\str_lowercase:f{\l_tmpa_tl}}
-    \IfNoValueF{#5} { \tl_gput_right:No \g_lastlink_tl {\str_lowercase:f{-#5}} }
+    \IfNoValueTF{#6}
+    {
+      \tl_gset:Nx \g_lastlink_tl {Key:\str_lowercase:f{\l_tmpa_tl}}
+      \IfNoValueF{#5} { \tl_gput_right:No \g_lastlink_tl {\str_lowercase:f{-#5}} }
+    }
+    { \tl_gset:Ne \g_lastlink_tl {Key:#6} }
     \hyperref[\g_lastlink_tl]{\textsf{\color{aTableauInner}\IfBooleanT{#1}{(no)~}\l_tmpa_tl}}
     \index{\l_tmpa_tl}%
     \tl_if_empty:NF \l_tmpb_tl { \textsf{\,$=$\,}\textsf{\textcolor{orange}{\l_tmpb_tl}} }
@@ -216,6 +233,17 @@
 \ExplSyntaxOff
 
 % ---------------------------------------------------------------------------
+\usepackage{enumitem}
+\setlist{itemsep=2mm, parsep=2mm}
+\newlist{options}{description}{1}
+% remove the colon from the description label by redefining \makelabel
+\setlist[options]{
+  before=\let\makelabel\optionlabel,
+  labelwidth=\textwidth,
+  nosep,
+}
+
+% ---------------------------------------------------------------------------
 % the index
 
 \usepackage{imakeidx}
@@ -434,9 +462,10 @@
     sharp corners=northwest,
     sharp corners=southeast,
   },
+  title={\tiny\thetcbcounter},
   sharp corners=northeast,
   parbox=false,
-  lefthand width=0.35\textwidth,
+  lefthand width=0.34\textwidth,
   listing style=atableau,
   parbox=false,
   parskip=4mm
@@ -447,11 +476,10 @@
   text outside listing,
   boxsep = 0pt,
   left=0mm,
-  right=2mm,
-  title={\tiny\thetcbcounter},
   #1
 }
 
+\let\thetcolorboxnumber\relax
 
 \DeclareTCBListing[use counter=examples, number within=subsection,%crefname={Example}{Examples}
 ]{Example}{ !O{} }{%
@@ -567,7 +595,7 @@
 \def\equationautorefname~#1\null{(#1)\null}
 \renewcommand\sectionautorefname{Chapter}
 \renewcommand\subsectionautorefname{Section}
-\renewcommand\subsubsectionautorefname{Subsection}
+\def\subsubsectionautorefname~#1\null{\S#1\null}
 
 \begin{document}
 
@@ -657,27 +685,26 @@
 
   \begin{center}
       \aTabset{align=centre}
-      \begin{tabular}{lp{0.6\textwidth}l} \toprule
+      \begin{longtable}{lp{0.6\textwidth}l} \toprule % longtable allows footnotes
         \textcolor{aTableauMain}{Convention} &\textcolor{aTableauMain}{\aTableau command} & \textcolor{aTableauMain}{Picture} \\ \midrule
           English    & \keyword{\Tableau[english]{1234,567,89{10},{11}{12}}}\newline(the default)
                      & \Tableau{1234,567,89{10},{11}{12}}\\[10mm]
           French     & \keyword{\Tableau[french]{1234,567,89{10},{11}{12}}}
                      & \Tableau[french]{1234,567,89{10},{11}{12}}\\[10mm]
-          Ukrainian\footnotemark
+          Ukrainian
+          \footnote{Some authors call this the Russian convention. The \option{russian}(ukrainian) key may also be used.}
                      & \keyword{\Tableau[ukrainian]{1234,567,89{10},{11}{12}}}
                      & \Tableau[ukrainian]{1234,567,89{10},{11}{12}}\\[10mm]
-          Australian\footnotemark
+          Australian
+          \footnote{I have not seen a name for this convention in the literature. Calling this the \textit{Australian convention} seems apt.}
                      & \keyword{\Tableau[australian]{1234,567,89{10},{11}{12}}}
                      & \Tableau[australian]{1234,567,89{10},{11}{12}} \\[10mm]
           \bottomrule
-      \end{tabular}
+      \end{longtable}
       \index{english at English}
       \index{french at French}
       \index{ukrainian at Ukrainian}
       \index{australian at Australian}
-      \footnotetext[1]{Some authors call this the Russian convention.}
-      \footnotetext[2]{I have not seen a name for this convention in the literature. Calling this the
-      \textit{Australian convention} seems apt.}
   \end{center}
 
   This table shows how the commands provided by \aTableau work: there
@@ -742,8 +769,8 @@
   example, it is not possible to use named or polar coordinates.}
   are optional, being necessary if (and only if), the diagram is part of
   a~\keyword{tikzpicture} environment. See \autoref{SS:coordinates} and
-  \autoref{SS:abcoordinates} for more detail about how these coordinates
-  work for tableaux and abacuses, respectively.
+  \autoref{SS:abcoordinates} for more detail about how to use these coordinates
+  for tableaux and abacuses, respectively.
 
   The key-value \emph{options}, or \emph{keys}, control the style and
   appearance of the final diagram. The keys are optional and are
@@ -758,8 +785,8 @@
   Many of the \aTableau options are specific to the particular diagrams
   being drawn. The full list of the \aTableau commands and their options
   is given in \autoref{S:keys}, with the following sections giving more
-  details and many examples.  The following options are common to all
-  \aTableau commands.
+  details and many examples. The keys that are common to all
+  \aTableau commands are:
 
   \begin{options}
     \item[align]\index{align}
@@ -777,11 +804,14 @@
     Set the prefix for the \TikZ \emph{named anchors} for the boxes and
     beads in \aTableau diagrams.
 
-    \item[scale, xscale,
-    yscale]\index{scale}\index{xscale}\index{yscale}
+    \item[scale, xscale, yscale, script, scriptscript]
+    \index{scale}\index{xscale}\index{yscale}\index{script}\index{scriptscript}
     Use \option{scale} to rescale all \aTableau diagrams. Use
     \option{xscale} to rescale in the $x$-direction and \option{yscale}
-    to rescale in the $y$-direction.
+    to rescale in the $y$-direction. The \option{script} and
+    \option{scriptscript} keys can be used to fine-tune the size of
+    \aTableau commands when used as subscripts (rare) and subsubscripts
+    (unlikely).
 
     \item[styles]\index{styles}
     A short-hand for defining single-use \TikZ-styles for the current
@@ -847,11 +877,20 @@
   The first diagram shows that most of the right-hand diagram is drawn
   by the~\keyword{\Diagram} command, even though most of the commands in
   the example are \TikZ commands. In particular, the shading of the
-  boxes in the \emph{$(1,2)$-hook} and \emph{$(1,2)$-rim hook} is done
-  by the \option{ribbons} key. (In fact, the right-hand picture could be
-  drawn without using a \keyword{tikzpicture} environment by using
-  the \option{tikz after} key to add the \keyword{\draw}-commands.)
+  boxes in the \emph{$(1,2)$-hook}, and the \emph{$(1,2)$-rim hook}, is
+  done by the \option{ribbons} key. (In fact, the right-hand picture
+  could be drawn without using a \keyword{tikzpicture} environment by
+  using the \option{tikz after} key to add the three
+  \keyword{\draw}-commands.)
 
+  \begin{warning}
+     Unlike the \TikZ-commands, you should \emph{not} put a semicolon
+     after an \aTableau-command when it is used inside a
+     \keyword{tikzpicture} environment. If you accidentally add a
+     semicolon then, most of the time it will not cause any harm and
+     \TikZ will just give you a warning.
+  \end{warning}
+
   The top of the last example defines two \TikZ-styles, \textsf{B} and
   \text{G}, which add the \textsf{b}lue and \textsf{g}reen coloured
   hatchings of the two hooks. Inside the \keyword{tikzpicture}
@@ -994,6 +1033,13 @@
   command because all of the diagram and tableau commands, except for
   \keyword{\RibbonTableau}, are derived from \keyword{\Tableau}.
 
+
+  \begin{warning}
+    The \aTableau package relies heavily on \ctan{LaTeX3}, so it
+    requires an update-to-date version of \LaTeX. You may need to update
+    your \LaTeX\ installation if it is older than \TeX Live 2024.
+  \end{warning}
+
   % --------------------------------------------------------------
   \section{Tableaux and Young diagrams}
 
@@ -1048,11 +1094,11 @@
     where:
 
     \begin{options}
-      \item[$(x,y)$]\index{xy@$(x,y)$} The Cartesian coordinates $(x,y)$
+      \item[*$(x,y)$]\index{xy@$(x,y)$} The Cartesian coordinates $(x,y)$
       are needed if, and only if, the tableau is a component of a
       \keyword{tikzpicture} environment.
-      \item[options] Optional arguments. Described, with examples, below.
-      \item[tableau entries]\index{tableau entries} The
+      \item[*options] Optional arguments. Described, with examples, below.
+      \item[*tableau entries]\index{tableau entries} The
       \keyword{tableau entries} are given as a comma-separated list, with commas
       separating rows and each \textit{token}, or braced-group of
       tokens, being in a separate column. As we explain below, each
@@ -1579,7 +1625,7 @@
 
   \index{dashed}
   \index{style!dashed}
-  If you closely at the second tableau in \autoref{Ex:dashed}, you will
+  If you look closely at the second tableau in \autoref{Ex:dashed}, you will
   notice that the dashes are not very clean. This is because, for
   example, the dashes on bottom of one box do not properly match up with
   the dashes on the top of the adjacent box below it. Rather than
@@ -1617,9 +1663,10 @@
   \option[true]{math entries}[true/false]
   \option*[false]{text entries}[true/false]
 
-  Use the \option{math entries} and \option{text entries} to have the
-  tableau entries typeset as either mathematics or text, respectively.
-  By default, the entries of a tableau are typeset as mathematics.
+  Use the \option{math entries} and \option{text entries} keys to have
+  the tableau entries typeset as either mathematics or text,
+  respectively. By default, the entries of a tableau are typeset as
+  mathematics.
 
   \begin{example}
   \Tableau[math entries]{ABCD, efg, HI}\qquad% the default
@@ -1631,14 +1678,14 @@
   By default, the boxes can be referenced using the node names
   \textsf{(A-1-1)}, \textsf{(A-1-2)}, \textsf{(A-1-3)}, \dots, with
   \textsf{(A-$r$-$c$)} referring to the box in row~$r$ and column~$c$.
-  Use the \option{name} key to change the \emph{prefix} \textsf{A} to
+  Use \option{name} to change the \emph{prefix} \textsf{A} to
   anything else that you like.  This feature is most useful when you
   have several tableaux inside a \keyword{tikzpicture} environment
   because by using \option{name} you can refer to boxes in the different
   diagrams. If you only have one tableau, then you would not normally
   need to change the default prefix for the node names. See
-  \autoref{E:NodeNames} for a description of the anchor names. For
-  examples using node names and anchors see \autoref{Ex:ABnames},
+  \autoref{E:NodeNames} for a description of the extended anchor names.
+  For examples using node names and anchors see \autoref{Ex:ABnames},
   \autoref{Ex:pointing} and \autoref{Ex:waves}.
 
   \option[]{paths=path specifications}[list of paths]
@@ -1688,7 +1735,7 @@
   ]{1234,567,89{10}}
   \end{example}
 
-  Use the \option{path box style} to change the style of the boxes in
+  Use \option{path box style} to change the style of the boxes in
   the path.
 
   \begin{example}
@@ -1750,7 +1797,7 @@
     ribbons={22rc}]{123,45,67}
   \end{example}
 
-  Use the \option{ribbon box style} key to change the default style of the
+  Use \option{ribbon box style} to change the default style of the
   boxes in a ribbon. For example, noting that a box is a ribbon of
   length~$1$, the following code uses ribbons of length one (that is,
   nodes), to highlight the addable nodes of this tableau.
@@ -1841,6 +1888,22 @@
     width} options.
   \end{warning}
 
+  \option[0.5]{script=value}[decimal number]
+  \option*[0.4]{scriptscript=value}[decimal number]
+
+  Although rare, tableaux and diagrams are sometimes used as subscripts
+  and superscripts. The pacakage automatically rescales tableau when
+  they are used as subscripts and superscripts, with the \option{script}
+  and \option{scriptscript} keys giving finer control over the scaling
+  of subscripts and subsubscripts, respectively. The current values of
+  the \option{scale}, \option{xscale} and \option{yscale} keys are taken
+  into account.
+
+  \begin{example}
+    $v_{\Tableau{123,45}}$ \qquad% the default
+    $v_{\Tableau[script=0.3, xscale=2]{123,45}}$
+  \end{example}
+
   \option[false]{shifted}[true/false]
 
   Set to \textsf{true} for a shifted tableau or shifted diagram. Shifted
@@ -1856,7 +1919,7 @@
   See \autoref{S:Shifted} for the options specific to shifted tableaux and
   shifted diagrams.
 
-  \option[(0)]{skew=partition}[a partition]
+  \option[0]{skew=partition}[a partition]
 
   Specify the skew shape for a skew tableau or skew diagram. Skew
   tableaux, and skew diagrams, are discussed in more detail in
@@ -1872,7 +1935,7 @@
 
   \option[fill=\aTableauColour{StarStyle}]{star style=style}[\TikZ-styling]
 
-  Use the \option{star style} to add to the style of the starred entries
+  Use \option{star style} to change the style of the starred entries
   of a tableau. (In \TikZ parlance, \option{star style} \emph{appends}
   appends these styles to the default \option{star style}.)
 
@@ -1960,7 +2023,7 @@
   \option{tikzpicture} option is ignored  when the \keyword{\Tableau}
   command is equipped with $(x,y)$-coordinates.
 
-  As a first example, we use \keyword{tikzpicture={rotate=30}}
+  As a first example, we can use \keyword{tikzpicture={rotate=30}}
   to rotate a tableau by 90 degrees:
 
   \begin{example}
@@ -1983,9 +2046,8 @@
   \Tableau[tikzpicture={transform canvas={rotate=90}}]{123,45}
   \end{example}
 
-  A more interesting example is that by using
-  \option{tikzpicture=remember picture} we can add annotations to
-  a tableau. For example, consider:
+  A more interesting application is using
+  \option{tikzpicture=remember picture} to annotate a tableau:
 
   \begin{example}[lefthand width=0.3\textwidth, label={Ex:pointing}]
   \Tableau[ukrainian, name=A,
@@ -2001,7 +2063,7 @@
   \textsf{(A-1-1)}, \textsf{(A-1-2)}, \textsf{(A-1-3)}, \dots. As the
   example uses \textit{remember picture}, other \keyword{tikzpicture}
   environments can reference the node names in last tableau, which
-  allows us to do things like this:
+  allows us to refer back to the table above using:
 
   \vspace*{3mm}
 
@@ -2013,6 +2075,8 @@
      to [out=135, in=225](A-3-1);
   \end{example}
 
+  (See the \ctan{tikzmark} package for extensions of this idea.)
+
   % --------------------------------------------------------------
   \subsubsection{Compositions}
   \index{composition}
@@ -2074,7 +2138,7 @@
   \index{tableau!*}
   \index{tableau![}
 
-  The characters  \textsf{[]}, \textsf{,}, and \textsf{*} have
+  The characters  \textsf{[}, \textsf{,}, and \textsf{*} have
   special meanings in the \textit{tableau specifications}. Enclose these characters in
   braces when you want to use these characters as entries in a tableau:
 
@@ -2083,7 +2147,7 @@
   \end{example}
 
   There is no need to enclose~\keyword{]} in braces because it only
-  becomes special when it is preceded by~\keyword{[}.
+  becomes special when it has a partner~\keyword{[}.
 
   % --------------------------------------------------------------
   \subsection{Young diagrams}
@@ -2101,10 +2165,10 @@
   \Tableau{~~~,~~~,~~,~}
   \end{example}
 
-  This approach works, but it is cumbersome, hard to proofread, and easy to miscount.
-  For this reason, \aTableau provides the \keyword{\Diagram} command.  The
-  \keyword{\Diagram} command uses almost the same syntax as the
-  \keyword{\Tableau} command:
+  This approach works, but it is cumbersome, hard to proofread, and easy
+  to get wrong.  For this reason, \aTableau provides the
+  \keyword{\Diagram} command.  The \keyword{\Diagram} command uses
+  almost the same syntax as the \keyword{\Tableau} command:
 
   \keyword{\Diagram (x,y) [options] {partition}}
 
@@ -2430,7 +2494,7 @@
   \end{example}
 
   \end{itemize}
-  Use the \option{charge} key to add offsets to the \option{contents} and \option{residues}.
+  Use \option{charge} to add offsets to the \option{contents} and \option{residues}.
 
   \begin{example}
   \Diagram[entries=contents, charge=2]{3,2,1} \qquad
@@ -2896,11 +2960,11 @@
   \option[draw=\aTableauColour{Inner}, thin]{ribbon style=style}{\TikZ-styling}
   \option*[]{ribbon box style=style}{\TikZ-styling}
 
-  Use the \option{ribbon style} and \option{ribbon box} options to
-  append to the default styling of the ribbons and the boxes in the
-  ribbons, respectively. By default, the full ribbons has an inner wall,
-  but the boxes in ribbons have no styling. If you want inner walls,
-  then they can be added using the \option{ribbon box} key.
+  Use the \option{ribbon style} and \option{ribbon box} keys to
+  append to the default styling of the ribbons, and the boxes in the
+  ribbons, respectively. By default, the full ribbon has inner wall
+  styling, but the boxes in ribbons have no styling. If you want inner
+  walls, then they can be added using the \option{ribbon box} key.
 
   \begin{example}
   \RibbonTableau[ribbon style={draw=red, thick,
@@ -3079,6 +3143,11 @@
   \Multidiagram[empty=$\emptyset$]{ 3,2 | | 2^2 }
   \end{example}
 
+  \begin{warning}
+    By default, the \option{empty} key is typeset as text and \emph{not}
+    as mathematics, which is the default for the tableau boxes.
+  \end{warning}
+
   \option[]{entries=value}[contents, first, hooks, last, residues]<multitableau>
   \option*[]{charge=offsets}[$|$-separated list of charges]<multitableau>
 
@@ -3100,8 +3169,8 @@
   The \option{entries} key automatically fills in particular types of
   entries for you to draw the requested tableau of the specified shape.
   Use \option{charge} to provide offsets in each component when using
-  \option{entries=contents} and \option{entries=residues} (and no charge
-  should be set when using \option{entries=first} and
+  \option{entries=contents} and \option{entries=residues} {(}the
+  \option{charge} is ignored when using \option{entries=first} and
   \option{entries=last}).
 
   \nopagebreak[0]
@@ -3170,7 +3239,7 @@
 
   \option[]{label=labels}[a $|$-separated list of labels]
 
-  Use the \option{label} key to add labels to the component diagrams.
+  Use \option{label} to add labels to the component diagrams.
 
   \begin{example}
     \Multitableau[label={1|2}]{123,45,67|{12}{14}}
@@ -3339,7 +3408,7 @@
   The \keyword{\Multitableau} and \keyword{\Multidiagram} commands try
   to draw the diagrams as compactly as possible with their first rows
   aligned, and the distance between the separators given by the value of
-  \option{separation}. Use the \option{xoffsets} to offset the
+  \option{separation}. Use \option{xoffsets} to offset the
   $x$-coordinates of the component diagrams and \option{yoffsets} to
   offset their $y$-coordinates.
 
@@ -3547,12 +3616,12 @@
 
   \begin{quote}
     \begin{options}[labelwidth=1em, nosep]
-      \item[$-$] Adds a line that extends slightly past the first and last runners
-      \item[\_\!\_]  Adds a line between the first and last runners
-      \item[.]   Add dots to the end of each runner
-      \item[*]   Add dots and an arrow to the end of each runner
-      \item[$|$] The runners do not have any additional decoration
-      \item[$>$] Add arrows to the end of each runner
+      \item[*$-$] Adds a line that extends slightly past the first and last runners
+      \item[*\_\!\_]  Adds a line between the first and last runners
+      \item[*.]   Add dots to the end of each runner
+      \item[**]   Add dots and an arrow to the end of each runner
+      \item[*$|$] The runners do not have any additional decoration
+      \item[*$>$] Add arrows to the end of each runner
     \end{options}
   \end{quote}
 
@@ -3858,8 +3927,8 @@
   \option[]{rows=row index}[non-negative integer]<abacus>
 
   By default, the \keyword{\Abacus} command uses the smallest number of
-  rows necessary to display all of the beads on the abacus. Use the
-  \option{rows}<abacus> key to change the number of rows displayed. If you use
+  rows necessary to display all of the beads on the abacus. Use
+  \option{rows}<abacus> to change the number of rows displayed. If you use
   the \option{rows}<abacus> key, then it is your responsibility to ensure that
   the abacus has enough rows to display all of the beads.
 
@@ -4151,6 +4220,8 @@
     \option{runner sep}        & Set distance between consecutive abacus runners     & \No  & \Yes \\
     \option{runner style}      & Set the colour of the abacus runners                & \No  & \Yes \\
     \option{scale}             & Sets the \aTableau scale                            & \Yes & \Yes[abacus] \\
+    \option{script}            & Sets the \aTableau scale for subscripts             & \Yes & \Yes(scale-abacus) \\
+    \option{scriptscript}      & Sets the \aTableau scale for subsubscripts          & \Yes & \Yes(scale-abacus) \\
     \option{separation}        & Set distance between components in multitableau     & \Yes & \No \\
     \option{separator colour}  & Set separator colour for multitableau               & \Yes & \No \\
     \option{separator}         & Set separator colour in multitableau                & \Yes & \No \\
@@ -4180,9 +4251,9 @@
     \option{valign}            & Set vertical alignment                              & \Yes & \Yes[abacus] \\
     \option{west}              & Make abacus grow in the westerly direction          & \Yes & \No \\
     \option{xoffsets}          & Set $x$-offsets for components in a multitableau    & \Yes & \No \\
-    \option{xscale}            & Set \aTableau $x$-scale                             & \Yes & \Yes[abacus] \\
+    \option{xscale}            & Set \aTableau $x$-scale                             & \Yes & \Yes(scale-abacus) \\
     \option{yoffsets}          & Set $y$-offsets for components in a multitableau    & \Yes & \No \\
-    \option{yscale}            & Set \aTableau $y$-scale                             & \Yes & \Yes[abacus] \\
+    \option{yscale}            & Set \aTableau $y$-scale                             & \Yes & \Yes(scale-abacus) \\
     \bottomrule
   \end{xltabular}
 
@@ -4288,6 +4359,17 @@
   your problem, then it is unlikely that I will be able to fix it.
 
 
+  % --------------------------------------------------------------
+  \subsection*{Acknowledgements}
+
+  Several features in the package have benefited from discussions on
+  \url{tex.stackexchange}. In particular, I thank
+    Max Chernoff,
+    Lars Madsen,
+    Clea F. Rees,
+  and
+    Jonathan P. Spratte.
+
 % ----------------------------------------------------------------------
 % bibliography
 % \bibliography{papers}

Modified: trunk/Master/texmf-dist/tex/latex/atableau/atableau.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/atableau/atableau.sty	2025-01-24 21:04:58 UTC (rev 73575)
+++ trunk/Master/texmf-dist/tex/latex/atableau/atableau.sty	2025-01-24 21:05:08 UTC (rev 73576)
@@ -17,11 +17,11 @@
 % See http://www.latex-project.org/lppl.txt
 
 % ---------------------------------------------------------------------------
+
 % load TikZ early to avoid \ExplSyntaxOn...\ExplSyntaxOff wrappers
 \RequirePackage{tikz}
 \usetikzlibrary{shapes.geometric,matrix}
 
-
 % Correct for negative signs in contents being too long to fit in a tableau
 \RequirePackage{amsfonts} %% <- also included by amssymb
 \DeclareMathSymbol{\shortminus}{\mathbin}{AMSa}{"39}
@@ -28,8 +28,8 @@
 
 % ---------------------------------------------------------------------------
 % package date and version
-\def\atableau at version{2.0.2}
-\def\atableau at release{2025-01-22}
+\def\atableau at version{2.1.0}
+\def\atableau at release{2025-01-24}
 
 \providecommand\DeclareRelease[3]{}
 \providecommand\DeclareCurrentRelease[2]{}
@@ -39,6 +39,20 @@
 \ProvidesExplPackage{atableau} {\atableau at release} {\atableau at version}
   {A latex package for symmetric group combinatorics }
 
+
+% Give a warning if the LaTeX installation is older than TeXLive 2024
+\IfFormatAtLeastTF { 2024-04-13 } {}
+{
+    \PackageWarning {aTableau}
+    {
+      The~aTableau~package~uses~many~recent~features~from~
+      ~LaTeX3.~Your~LaTeX ~installation~appears~to~be~quite~,
+      ~which~might~result~in~errors~from~the ~package.~You~
+      ~may~need~to~update~your~LaTeX~installation~to~at~
+      ~least~TeXLive~2024
+    }
+}
+
 % ---------------------------------------------------------------------------
 % package errors
 
@@ -127,6 +141,8 @@
 \fp_new:N \l__atableau_box_wd_fp          % width of a tableau box
 \fp_new:N \l__atableau_rows_fp            % number of rows in abacus/tableau
 \fp_new:N \l__atableau_separation_fp      % distance between multitableau
+\fp_new:N \l__atableau_script_fp          % scaling when used as a subscript
+\fp_new:N \l__atableau_sscriptscript_fp   % scaling when used as a subsubscript
 \fp_new:N \l__atableau_tab_col_dx_fp      % change in x-coordinate between columns in a tableau
 \fp_new:N \l__atableau_tab_col_dy_fp      % change in y-coordinate between columns in a tableau
 \fp_new:N \l__atableau_tab_row_dx_fp      % change in x-coordinate between rows in a tableau
@@ -454,6 +470,7 @@
           \fp_set:Nn \l__atableau_box_wd_fp {\l__atableau_xscale_fp*0.5}
           \tl_set:Nn \l__atableau_box_shape_tl {rectangle}
         }
+
       {tableau/french}
         {
           \fp_set:Nn \l__atableau_tab_col_dx_fp {1}
@@ -464,6 +481,7 @@
           \fp_set:Nn \l__atableau_box_wd_fp {\l__atableau_xscale_fp*0.5}
           \tl_set:Nn \l__atableau_box_shape_tl {rectangle}
         }
+
       {tableau/australian}
         {
           \fp_set:Nn \l__atableau_tab_col_dx_fp {0.5}
@@ -474,6 +492,7 @@
           \fp_set:Nn \l__atableau_box_wd_fp {\l__atableau_xscale_fp*0.7012}
           \tl_set:Nn \l__atableau_box_shape_tl {diamond}
         }
+
       {tableau/ukrainian}
         {
           \fp_set:Nn \l__atableau_tab_col_dx_fp {0.5}
@@ -484,10 +503,7 @@
           \fp_set:Nn \l__atableau_box_wd_fp {\l__atableau_xscale_fp*0.7012}
           \tl_set:Nn \l__atableau_box_shape_tl {diamond}
         }
-      {tableau/russian}
-        {
-          \__atableau_set_style:nn {tableau} {ukrainian}
-        }
+
       {abacus/south}
         {
           \fp_set:Nn \l__atableau_ab_col_dx_fp {1}
@@ -498,6 +514,7 @@
           \fp_set:Nn \l__atableau_abacus_wd_fp {\l__atableau_xscale_fp*0.5}
           \tl_set:Nn \l__atableau_bead_shape_tl  {circle}
         }
+
       {abacus/north}
         {
           \fp_set:Nn \l__atableau_ab_col_dx_fp {1}
@@ -508,6 +525,7 @@
           \fp_set:Nn \l__atableau_abacus_wd_fp {\l__atableau_xscale_fp*0.5}
           \fp_set:Nn \l__atableau_abacus_ht_fp {\l__atableau_yscale_fp*0.5}
         }
+
       {abacus/east}
         {
           \fp_set:Nn \l__atableau_ab_col_dx_fp {0}
@@ -518,6 +536,7 @@
           \fp_set:Nn \l__atableau_abacus_wd_fp {\l__atableau_xscale_fp*0.5}
           \fp_set:Nn \l__atableau_abacus_ht_fp {\l__atableau_yscale_fp*0.5}
       }
+
       {abacus/west}
         {
           \fp_set:Nn \l__atableau_ab_col_dx_fp {0}
@@ -2728,7 +2747,7 @@
     align/centre .code:n = { \tikzset{baseline=(current~bounding~box.center)}},
     align/bottom .code:n = { \tikzset{baseline=(current~bounding~box.south)} },
     align/south  .code:n = { \tikzset{baseline=(current~bounding~box.south)} },
-    align .unknown .code:n = { \msg_error:nne { aTableau } { unknown-baseline } {#1} },
+    align .unknown .code:n = { \msg_error:nnn { aTableau } { unknown-baseline } {#1} },
     align .initial:n     = centre,
 
     % set the Cartan type
@@ -2787,6 +2806,15 @@
     scale .code:n = { \__atableau_set_xscale:n {#1} \__atableau_set_yscale:n {#1} },
     scale .value_required:n = true,
 
+    % subscript an subsubscript scalinmg
+    script .fp_set:N = \l__atableau_script_fp,
+    script .value_required:n = true,
+    script .initial:n = 0.5,
+
+    scriptscript .fp_set:N = \l__atableau_scriptscript_fp,
+    scriptscript .value_required:n = true,
+    scriptscript .initial:n = 0.4,
+
     star~style .code:n = { \__atableau_tikzset_append:nn {tableauStarStyle} {#1} },
     star~style .value_required:n = true,
 
@@ -3186,20 +3214,46 @@
       % keep changes to settings local by working inside a group
       \keys_set:nn {atableau} {#1}
       \IfNoValueTF {#2}
-      { % wrap inside a tikzpicture environment, placing the picture at (0,0)
-        \__atableau_set_origin:nn (0,0)
-        \exp_last_unbraced:Ne \tikz{[\l__atableau_tikzpicture_tl]}
-        {
-          \l__atableau_tikz_before_tl
-          #3
-          \l__atableau_tikz_after_tl
-        }
+      {   % wrap inside a tikzpicture environment, placing the picture at (0,0)
+          \__atableau_set_origin:nn (0,0)
+
+          \mode_if_math:TF
+          {
+              % We want to automatically rescale when used as a subscript, which
+              % we do by putting the tikz code inside a box and then using
+              % \mathchoice to adjust for script size, using an idea of cfr's
+
+              \hbox_set:Nw \l_tmpa_box
+                  \exp_last_unbraced:Ne \tikz{[\l__atableau_tikzpicture_tl]}
+                    { \l__atableau_tikz_before_tl #3 \l__atableau_tikz_after_tl }
+              \hbox_set_end:
+
+              \mathchoice
+              {   % display style: do nothing
+                  \box_use:N \l_tmpa_box
+              }
+              {   % text style: do nothing
+                  \box_use:N \l_tmpa_box
+              }
+              {   % script style: rescale
+                  \box_scale:Nnn \l_tmpa_box {\l__atableau_script_fp*\l__atableau_xscale_fp}
+                                             {\l__atableau_script_fp*\l__atableau_yscale_fp}
+                  \box_use:N \l_tmpa_box
+              }
+              {   % scriptscript style: rescale
+                  \box_scale:Nnn \l_tmpa_box {\l__atableau_scriptscript_fp*\l__atableau_xscale_fp}
+                                             {\l__atableau_scriptscript_fp*\l__atableau_yscale_fp}
+                  \box_use:N \l_tmpa_box
+              }
+          }
+          {   % Not in maths-mode. tcolorbox objects to using a box here
+              \exp_last_unbraced:Ne \tikz{[\l__atableau_tikzpicture_tl]}
+                { \l__atableau_tikz_before_tl #3 \l__atableau_tikz_after_tl }
+          }
       }
       { % already inside a tikzpicture environment
         \__atableau_set_origin:nn (#2)
-        \l__atableau_tikz_before_tl
-        #3
-        \l__atableau_tikz_after_tl
+        \l__atableau_tikz_before_tl #3 \l__atableau_tikz_after_tl
       }
     \group_end:
 }
@@ -3295,11 +3349,11 @@
 % ---------------------------------------------------------------------------
 % CHANGE LOG
 %
-% Version 1.0
+% Version 1.0.0 - 2023-10-06
 %  - initial version
 %  - Young diagrams, tabloids, tableaux, shifted tableaux, Ukrainian tableaux, abacuses, braids
 %
-% Version 2.0
+% Version 2.0.0 - 2025-01-22
 %  - completely rewritten using LaTeX3
 %  - key interface for the tableaux options
 %  - macros can be used both in and outside tikzpicture environments
@@ -3307,7 +3361,12 @@
 %  - support for different conventions (english, french, ukrainian, australian)
 %  - support diagrams, tableaux, including tabloids, skew and shifted tableaux and ribbon tableaux
 %  - stars and styles
+%
+% Version 2.1.0 - 2025-01-24
+%  - support for using aTableau commands in super and subscripts
+%  - warning about using older versions of LaTeX3
 
+
 % ---------------------------------------------------------------------------
 %
 % Copyright (C) 2022-25 by Andrew Mathas <andrew.mathas at gmail.com>



More information about the tex-live-commits mailing list.