texlive[55090] Master/texmf-dist: acro (10may20)

commits+karl at tug.org commits+karl at tug.org
Sun May 10 22:50:29 CEST 2020


Revision: 55090
          http://tug.org/svn/texlive?view=revision&revision=55090
Author:   karl
Date:     2020-05-10 22:50:29 +0200 (Sun, 10 May 2020)
Log Message:
-----------
acro (10may20)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/acro/README
    trunk/Master/texmf-dist/doc/latex/acro/acro-manual.pdf
    trunk/Master/texmf-dist/doc/latex/acro/acro-manual.tex
    trunk/Master/texmf-dist/doc/latex/acro/examples/acro.example.units.pdf
    trunk/Master/texmf-dist/doc/latex/acro/examples/acro.example.units.tex
    trunk/Master/texmf-dist/tex/latex/acro/acro.sty

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/latex/acro/examples/acro.example.texsx-513623.pdf
    trunk/Master/texmf-dist/doc/latex/acro/examples/acro.example.texsx-513623.tex
    trunk/Master/texmf-dist/doc/latex/acro/examples/acro.example.texsx-515295.pdf
    trunk/Master/texmf-dist/doc/latex/acro/examples/acro.example.texsx-515295.tex
    trunk/Master/texmf-dist/doc/latex/acro/examples/acro.example.texsx-542461.pdf
    trunk/Master/texmf-dist/doc/latex/acro/examples/acro.example.texsx-542461.tex

Modified: trunk/Master/texmf-dist/doc/latex/acro/README
===================================================================
--- trunk/Master/texmf-dist/doc/latex/acro/README	2020-05-10 20:45:43 UTC (rev 55089)
+++ trunk/Master/texmf-dist/doc/latex/acro/README	2020-05-10 20:50:29 UTC (rev 55090)
@@ -1,5 +1,5 @@
 --------------------------------------------------------------------------
-the ACRO package v3.1 2020/05/03
+the ACRO package v3.2 2020/05/10
 
   Typeset Acronyms
 
@@ -22,9 +22,10 @@
 
 The Current Maintainer of this work is Clemens Niederberger.
 --------------------------------------------------------------------------
-The acro package consists of the code file:
+The acro package consists of code files:
 
   acro.sty
+  acro2.sty
 
 The acro package consists of documentation files:
 
@@ -46,5 +47,8 @@
   acro.example.issue-154.pdf, acro.example.issue-154.tex
   acro.example.texsx-505891.pdf, acro.example.texsx-505891.tex
   acro.example.texsx-507726.pdf, acro.example.texsx-507726.tex
-
+  acro.example.texsx-513623.pdf, acro.example.texsx-513623.tex
+  acro.example.texsx-515295.pdf, acro.example.texsx-515295.tex
+  acro.example.texsx-542461.pdf, acro.example.texsx-542461.tex
+  
 --------------------------------------------------------------------------

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

Modified: trunk/Master/texmf-dist/doc/latex/acro/acro-manual.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/acro/acro-manual.tex	2020-05-10 20:45:43 UTC (rev 55089)
+++ trunk/Master/texmf-dist/doc/latex/acro/acro-manual.tex	2020-05-10 20:50:29 UTC (rev 55090)
@@ -1123,7 +1123,7 @@
   an \ac{ufo}
 \end{example}
 And what good would it be to use a package like \acro\ if you have to keep
-track of of and second uses, anyway?  This is why \acs{ufo} should be defined
+track of first and second uses, anyway?  This is why \acs{ufo} should be defined
 like we did on page~\pageref{ufo}.  We then can just use the dedicated
 commands and let them decide for us:
 \begin{example}[side-by-side]
@@ -1179,6 +1179,9 @@
 \begin{options}
   \keybool{display}\Module{foreign}\Default{true}
     Determine wether to hide or display the foreign form.
+  \keybool{display}\Module{list,foreign}\Default{true}
+    \sinceversion{3.2}Determine wether to hide or display the foreign form in
+    the list of acronyms.
   \keybool{display}\Module{locale}\Default{false}
     This options determines wether the language of the foreign form is printed
     or not when the full form of the acronym is printed.
@@ -1250,6 +1253,8 @@
   }
 \end{sourcecode}
 
+\pagebreak
+
 There are a number of options to control the uppercasing behavior:
 \begin{options}
   \opt{first}\Module{uppercase}
@@ -1374,7 +1379,7 @@
 \end{properties}
 This manual is an example for the indexing feature.  Each acronym from
 section~\vref{sec:acronyms} that has been used in this manual is also listed
-in the manual.
+in the index.
 
 \section{Barriers}\label{sec:barriers}
 The main purpose of the concept of barriers is to be able to have \emph{local}
@@ -1401,10 +1406,10 @@
 \begin{commands}
   \command{acbarrier}
     For this command to have any effect you must set
-    \module{barriers}\code{/}\option{single} to \code{true}!
+    \module{barriers}\code{/}\option{use} to \code{true}!
 \end{commands}
 \begin{bewareofthedog}
-  It takes usually two or even three \LaTeX\ runs until acronym usages
+  It usually takes two or even three \LaTeX\ runs until acronym usages
   between barriers are properly counted.
 \end{bewareofthedog}
 
@@ -1415,7 +1420,7 @@
 tokens: the \enquote{\code{dot}} (\sym{.}), the \enquote{\code{dash}}
 (\sym{-}) and the \enquote{\code{babel-hyphen}} (\cs*{babelhyphen}).
 
-Yeu have seen an example for this already:
+You have seen an example for this already:
 \begin{sourcecode}
   \DeclareAcronym{etc}{
     short = etc\acdot ,
@@ -1502,8 +1507,7 @@
     \code{babel-hyphen} follows.
   \expandable\command{abbrdot} Inserts \sym{.}\cs*{@}
 \end{commands}
-The definitions are equivalent\footnote{Not \emph{quite}: \acro's definitions
-  are engine protected.} to the following code:
+The definitions are equivalent to the following code:
 \begin{sourcecode}
   \newcommand*\acdot{\aciftrailing{dot}{}{\abbrdot}}
   \newcommand*\acspace{\aciftrailing{dash,babel-hyphen}{}{\space}}
@@ -1801,7 +1805,14 @@
   \tmpl{longtabu}
     A style that uses a \env*{longtabu} environment for building the
     list. This needs the \pkg{longtable} package and the \pkg{tabu}
-    package~\cite{pkg:tabu} loaded.
+    package~\cite{pkg:tabu} loaded\footnote{Please note that this package
+      currently is un-maintained and has a number of open bugs. For further
+      information refer to
+      \url{https://github.com/tabu-issues-for-future-maintainer/tabu}}.
+  \tmpl{supertabular}
+    A\sinceversion{3.2} style that uses a \env*{supertabular} environment for
+    building the list.  This needs the \pkg{supertabular}
+    package~\cite{pkg:supertabular} loaded.
   \tmpl{tabular}
     A style that uses a \env*{tabular} environment for building the list.
     Since a \env*{tabular} cannot break across pages this is only suited for
@@ -1827,7 +1838,7 @@
   \tmpl{section}
     Uses \cs*{section} for the heading.
   \tmpl{section*}
-    Uses \cs*{section}\sarg* for the heading.
+    Uses \cs*{section}\sarg\ for the heading.
 \end{templates}
 
 \subsection{Defining new templates}\label{sec:defin-new-templ}
@@ -1841,6 +1852,19 @@
     This re-defines a template of type \meta{type} woth the name \meta{name}
     which inserts \meta{code} when used.  A template of type \meta{type} with
     name \meta{name} must exist.  The default type is \code{acronym}.
+  \command{SetupAcroTemplate}[\oarg{type}\marg{name}\marg{code}]
+    Adds\sinceversion{3.2} \meta{code} to the beginning of the template
+    \meta{name} of type \meta{type}.  The default type is \code{acronym}.
+  \command{SetupNextAcroTemplate}[\oarg{type}\marg{name}\marg{code}]
+    Adds\sinceversion{3.2} \meta{code} to the beginning of \emph{the next use}
+    of the template \meta{name} of type \meta{type}.  The default type is
+    \code{acronym}.
+  \expandable\command{AcroTemplateType}
+    Within a template this expands to the \meta{type} of the current
+    template.
+  \expandable\command{AcroTemplateName}
+    Within a template this expands to the \meta{name} of the current
+    template.
 \end{commands}
 
 How to use these commands is best explained by examples of how the existing
@@ -1867,7 +1891,7 @@
 \subsubsection{Commands for common uses}
 \begin{commands}
   \expandable\command{acrolistname}
-    Expnads to whatever is currently set with
+    Expands to whatever is currently set with
     \module{list}\code{/}\option{name}.
   \command{acrowrite}[\marg{property}]
     Prints the property \meta{property} of the current acronym.  Depending on
@@ -2137,7 +2161,7 @@
 \begin{commands}
   \command{DeclareAcroArticle}[\marg{name}\marg{default}]
     This command can be used to define properties and options analoguous to
-    the indefnite article which have been defined this way:
+    the indefinite article which have been defined this way:
 \end{commands}
 \begin{sourcecode}
   \DeclareAcroArticle{indefinite}{a}
@@ -2163,7 +2187,7 @@
     This command tells the template that the article \meta{foo} should be
     used.
 \end{commands}
-Section~\vref{sec:own-acronym-commands} has an example of how this can be used
+Section~\vref{sec:own-acronym-commands} has examples of how this can be used
 to define definite articles and commands that make use of them like this:
 \begin{example}
   \dacs{hadopi} \par
@@ -2208,13 +2232,13 @@
 The existing keywords had been shown in table~\vref{tab:translations}.
 
 \section{Properties}\label{sec:new-properties}
-As you know from section~\ref{sec:decl-acronyms-other} \acro\ comes with
-quiute a number of predefined properties for the control of acronyms.
-However, there are cases when additional properties would be nice to have and
-to use. \acro\ provides this command:
+As you know from section~\ref{sec:decl-acronyms-other} \acro\ comes with quite
+a number of predefined properties which control various aspects of
+acronyms. However, there are cases when additional properties would be nice to
+have and to use. It can be done with the following command:
 \begin{commands}
-  \command{DeclareAcroProperty}[\sarg\qarg\barg\uarg\marg{name}]
-    This defines the new property \meta{name}.  The command has four optional
+  \command{DeclareAcroProperty}[\sarg\arg{?}\arg{!}\arg{|}\arg{>}\marg{name}]
+    This defines the new property \meta{name}.  The command has five optional
     arguments most of which you probably never need. \par
     The optional star \sym{*} ensures that each acronym gets a \emph{unique}
     value for the property. \par
@@ -2223,11 +2247,18 @@
     \code{false} and when it is used without value (not an empty value!) then
     \code{true} is assumed. \par
     The optional exclamation mark \sym{!} creates a \emph{mandatory}
-    property. An error if raised if an acronym does not set it. \par
+    property. An error is raised if an acronym does not set it. \par
     The optional pipe \sym{|} creates a \emph{static} property which means
     its value is written to an auxiliary file and read in again at begin
-    document.  Once set the value is the same throughout the document
-  \command{DeclareAcroPropertyAlias}[\sarg\qarg\barg\uarg\marg{name1}\marg{name2}]
+    document.  Once set the value is the same throughout the document. \par
+    The optional greater as symbol\sinceversion{3.2} \sym{>} creates a
+    \emph{display} property.  This additionally defines the two boolean
+    options \meta{name}\code{/}\option{display} and
+    \module{list}\code{/}\meta{name}\code{/}\option{display}, both initially
+    set to true.  If these options are set to false the acronym commands or
+    the list act as if the property \meta{name} has not been set.  The
+    \property{foreign} property is an example.
+  \command{DeclareAcroPropertyAlias}[\sarg\arg{?}\arg{!}\arg{|}\arg{>}\marg{name1}\marg{name2}]
     This newly declares property \meta{name1} and makes it an alias of
     property \meta{name2}.  This means that \meta{name1} gets the same value
     that \meta{name2} has unless it is set explicitly.  Property \meta{name2}

Added: trunk/Master/texmf-dist/doc/latex/acro/examples/acro.example.texsx-513623.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/acro/examples/acro.example.texsx-513623.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/acro/examples/acro.example.texsx-513623.pdf	2020-05-10 20:45:43 UTC (rev 55089)
+++ trunk/Master/texmf-dist/doc/latex/acro/examples/acro.example.texsx-513623.pdf	2020-05-10 20:50:29 UTC (rev 55090)

Property changes on: trunk/Master/texmf-dist/doc/latex/acro/examples/acro.example.texsx-513623.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/acro/examples/acro.example.texsx-513623.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/acro/examples/acro.example.texsx-513623.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/acro/examples/acro.example.texsx-513623.tex	2020-05-10 20:50:29 UTC (rev 55090)
@@ -0,0 +1,21 @@
+\documentclass{article}
+\usepackage{acro}
+
+\newrobustcmd*\newspecies[4][]{%
+  \DeclareAcronym{#2}{
+    short = {#3} ,
+    long = {#4} ,
+    #1 ,
+    tag = species ,
+    first-style= long ,
+    format = \itshape
+  }%
+}
+\newspecies{ecoli}{E.~coli}{Escherichia coli}
+
+\begin{document}
+
+First use: \ac{ecoli}\par  
+Second use: \ac{ecoli}  
+
+\end{document} 


Property changes on: trunk/Master/texmf-dist/doc/latex/acro/examples/acro.example.texsx-513623.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/acro/examples/acro.example.texsx-515295.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/acro/examples/acro.example.texsx-515295.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/acro/examples/acro.example.texsx-515295.pdf	2020-05-10 20:45:43 UTC (rev 55089)
+++ trunk/Master/texmf-dist/doc/latex/acro/examples/acro.example.texsx-515295.pdf	2020-05-10 20:50:29 UTC (rev 55090)

Property changes on: trunk/Master/texmf-dist/doc/latex/acro/examples/acro.example.texsx-515295.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/acro/examples/acro.example.texsx-515295.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/acro/examples/acro.example.texsx-515295.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/acro/examples/acro.example.texsx-515295.tex	2020-05-10 20:50:29 UTC (rev 55090)
@@ -0,0 +1,24 @@
+\documentclass{article}
+
+\usepackage{acro}
+\usepackage{csquotes}
+\usepackage{chemmacros}
+
+\DeclareAcronym{APA}{
+  short = 3-APA ,
+  long = \iupac{3-azido-1-propyl|amine}
+}
+\DeclareAcronym{CuAAC}{
+  short = \enquote{click} chemistry ,
+  long = copper(I)-catalyzed azide-alkyne cycloaddition
+}
+
+\begin{document}
+
+1: \Acl{APA}
+
+2: \Acs{CuAAC}
+
+3: \Acl{CuAAC}
+
+\end{document}


Property changes on: trunk/Master/texmf-dist/doc/latex/acro/examples/acro.example.texsx-515295.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/acro/examples/acro.example.texsx-542461.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/acro/examples/acro.example.texsx-542461.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/acro/examples/acro.example.texsx-542461.pdf	2020-05-10 20:45:43 UTC (rev 55089)
+++ trunk/Master/texmf-dist/doc/latex/acro/examples/acro.example.texsx-542461.pdf	2020-05-10 20:50:29 UTC (rev 55090)

Property changes on: trunk/Master/texmf-dist/doc/latex/acro/examples/acro.example.texsx-542461.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/acro/examples/acro.example.texsx-542461.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/acro/examples/acro.example.texsx-542461.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/acro/examples/acro.example.texsx-542461.tex	2020-05-10 20:50:29 UTC (rev 55090)
@@ -0,0 +1,39 @@
+\documentclass{article}
+\usepackage{acro}
+
+\DeclareAcroArticle{definite}{the}
+\DeclareAcroEnding{possessive}{'s}{'s}
+
+\NewAcroCommand\dac{m}{\acrodefinite\UseAcroTemplate{first}{#1}}
+\NewAcroCommand\Dac{m}{\acroupper\acrodefinite\UseAcroTemplate{first}{#1}}
+
+\NewAcroCommand\Dacg{m}{%
+  \acroupper
+  \acrodefinite
+  \acropossessive
+  \UseAcroTemplate{first}{#1}%
+}
+
+\DeclareAcronym{css}{
+  short = CSS ,
+  long = Centre for Spaghetti Studies ,
+  short-definite = \nospace ,
+  long-possessive = '
+}
+
+\begin{document}
+
+Bob hails from \dac{css}. \par
+Bob hails from \dac{css}.
+
+\acreset{css}
+
+\Dacg{css} mandate is broad. \par
+\Dacg{css} mandate is broad.
+
+\acreset{css}
+
+\Dac{css} scientists eat well. \par
+\Dac{css} scientists eat well. \par
+
+\end{document}


Property changes on: trunk/Master/texmf-dist/doc/latex/acro/examples/acro.example.texsx-542461.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/acro/examples/acro.example.units.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/acro/examples/acro.example.units.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/acro/examples/acro.example.units.tex	2020-05-10 20:45:43 UTC (rev 55089)
+++ trunk/Master/texmf-dist/doc/latex/acro/examples/acro.example.units.tex	2020-05-10 20:50:29 UTC (rev 55090)
@@ -33,41 +33,36 @@
   short = \ensuremath{f} ,
   long  = Frequenz ,
   unit  = \si{\hertz} ,
-  class = physics
+  tag   = physics
 }
 \DeclareAcronym{A}{
   short = \ensuremath{A} ,
   long  = Fläche ,
   unit  = \si{\metre^2} ,
-  class = physics
+  tag   = physics
 }
 \DeclareAcronym{C}{
   short = \ensuremath{C} ,
   long  = Kapazität ,
   unit  = \si{\farad} ,
-  class = physics
+  tag   = physics
 }
 \DeclareAcronym{F}{
   short = \ensuremath{F} ,
   long  = Kraft ,
   unit  = \si{\newton} ,
-  class = physics
+  tag   = physics
 }
 
 \NewAcroTemplate[list]{physics}{%
-  \def\TableCode{}%
   \acronymsmapT{%
-    \AcroPutRight\TableCode{%
-      \def\AcronymID{##1}%
+    \AcroAddRow{%
       \acrowrite{short}%
       &
-      \def\AcronymID{##1}%
       \acrowrite{unit}%
       &
-      \def\AcronymID{##1}%
       \acrowrite{list}%
       &
-      \def\AcronymID{##1}%
       \acropages
         {\acrotranslate{page}\nobreakspace}%
         {\acrotranslate{pages}\nobreakspace}%
@@ -80,7 +75,7 @@
   \setlength\LTleft{0pt}%
   \setlength\LTright{0pt}%
   \begin{longtable}{@{}lll@{\extracolsep{\fill}}l@{}}
-    \TableCode
+    \AcronymTable
   \end{longtable}
 }
 

Modified: trunk/Master/texmf-dist/tex/latex/acro/acro.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/acro/acro.sty	2020-05-10 20:45:43 UTC (rev 55089)
+++ trunk/Master/texmf-dist/tex/latex/acro/acro.sty	2020-05-10 20:50:29 UTC (rev 55090)
@@ -27,9 +27,9 @@
 
 % setup package:
 \tl_const:Nn \c_acro_package_name_tl {acro}
-\tl_const:Nn \c_acro_date_tl {2020/05/04}
+\tl_const:Nn \c_acro_date_tl {2020/05/10}
 \tl_const:Nn \c_acro_version_major_number_tl {3}
-\tl_const:Nn \c_acro_version_minor_number_tl {1}
+\tl_const:Nn \c_acro_version_minor_number_tl {2}
 \tl_const:Nn \c_acro_version_subrelease_tl   {}
 \tl_const:Nx \c_acro_version_number_tl
   {
@@ -653,8 +653,11 @@
 
 \NewDocumentCommand \AcroNeedPackage {m}
   {
-    \acro_package_if_loaded:nF {m}
-      { \msg_error:nnen {acro} {package-needed} { \TemplateName } {#1} }
+    \clist_map_inline:nn {#1}
+      {
+        \acro_package_if_loaded:nF {##1}
+          { \msg_error:nnen {acro} {package-needed} { \TemplateName } {##1} }
+      }
   }
 
 % --------------------------------------------------------------------------
@@ -693,13 +696,31 @@
   { \acro_switch_on: }
 
 % --------------------------------------------------------------------------
-\NewDocumentCommand \DeclareAcroProperty {st?t!t|m}
-  { \acro_property_declare:nnnnn {#1} {#2} {#3} {#4} {#5} }
+\NewDocumentCommand \DeclareAcroProperty {st?t!t|t>m}
+  {
+    \acro_property_declare:en
+      {
+        \IfBooleanT {#1} {unique=true,}
+        \IfBooleanT {#2} {boolean=true,}
+        \IfBooleanT {#3} {mandatory=true,}
+        \IfBooleanT {#4} {static=true,}
+        \IfBooleanT {#5} {display=true}
+      }
+      {#6}
+  }
 
-\NewDocumentCommand \DeclareAcroPropertyAlias {st?t!t|mm}
+\NewDocumentCommand \DeclareAcroPropertyAlias {st?t!t|t>mm}
   {
-    \acro_property_declare:nnnnn {#1} {#2} {#3} {#4} {#5}
-    \acro_property_make_alias:nn {#5} {#6}
+    \acro_property_declare:en
+      {
+        \IfBooleanT {#1} {unique=true,}
+        \IfBooleanT {#2} {boolean=true,}
+        \IfBooleanT {#3} {mandatory=true,}
+        \IfBooleanT {#4} {static=true,}
+        \IfBooleanT {#5} {display=true}
+      }
+      {#6}
+    \acro_property_make_alias:nn {#6} {#7}
   }
 
 \NewDocumentCommand \MakeAcroPropertyAlias {mm}
@@ -714,6 +735,12 @@
 \NewDocumentCommand \RenewAcroTemplate {O{acronym}m+m}
   { \use:c {acro_#1_template_renew:nn} {#2} {#3} }
 
+\NewDocumentCommand \SetupAcroTemplate {O{acronym}m+m}
+  { \acro_template_setup:nnn {#1} {#2} {#3} }
+
+\NewDocumentCommand \SetupNextAcroTemplate {O{acronym}m+m}
+  { \acro_next_template_setup:nnn {#1} {#2} {#3} }
+
 \NewDocumentCommand \DeclareAcronym {m+m}
   { \acro_declare_acronym:nn {#1} {#2} }
 
@@ -848,16 +875,12 @@
 \NewExpandableDocumentCommand \acroifbooleanF {m}
   { \acro_boolean_property_if:enF { \AcronymID } {#1} }
 
-\NewExpandableDocumentCommand \acroifTF {+m+m+m}
-  {
-    \acro_property_if_set:enTF { \AcronymID } {#1}
-      { \acro_check_foreign:nn {#1} {#2} }
-      {#3}
-  }
-\NewExpandableDocumentCommand \acroifT {+m+m}
-  { \acroifTF {#1} {#2} {} }
-\NewExpandableDocumentCommand \acroifF {+m+m}
-  { \acroifTF {#1} {} {#2} }
+\NewExpandableDocumentCommand \acroifTF {m}
+  { \acro_property_if_set:enTF { \AcronymID } {#1} }
+\NewExpandableDocumentCommand \acroifT {m}
+  { \acro_property_if_set:enT { \AcronymID } {#1} }
+\NewExpandableDocumentCommand \acroifF {m}
+  { \acro_property_if_set:enF { \AcronymID } {#1} }
 
 \NewDocumentCommand \acroifanyTF {m+m+m}
   { \acro_property_if_any:enTF { \AcronymID } {#1} {#2} {#3} }
@@ -1154,44 +1177,73 @@
 \acro_attribute_new:n {mandatory}
 \acro_attribute_new:n {dynamic}
 
-% \seq_new:N \l__acro_mandatory_properties_seq
 \tl_new:N \l__acro_mandatory_properties_tl
 
+\bool_new:N \l__acro_property_define_unique_bool
+\bool_new:N \l__acro_property_define_boolean_bool
+\bool_new:N \l__acro_property_define_mandatory_bool
+\bool_new:N \l__acro_property_define_static_bool
+\bool_new:N \l__acro_property_define_display_bool
+
+\cs_new_protected:Npn \__acro_setup_property:nn #1#2
+  { \use:c {bool_set_#2:c} {l__acro_property_define_#1_bool} }
+\cs_new_protected:Npn \__acro_setup_property:n #1
+  { \__acro_setup_property:nn {#1} {true} }
+
 % new property:
-% #1: boolean (true = unique)
-% #2: boolean (true = boolean)
-% #3: boolean (true = mandatory)
-% #4: boolean (true = static != dynamic)
-% #5: property name
-\cs_new_protected:Npn \acro_property_declare:nnnnn #1#2#3#4#5
+% #1: attributes
+% #2: property name
+\cs_new_protected:Npn \acro_property_declare:nn #1#2
   {
-    \acro_property_if_exist:nF {#5}
+    \acro_property_if_exist:nF {#2}
       {
-        \seq_put_right:Ne \l__acro_properties_seq { \tl_to_str:n {#5} }
-        \acro_attribute_new:n {property::#5}
-        \bool_if:nF {#4}
-          { \acro_attribute_set:nnn {dynamic} {#5} {true} }
-        \__acro_auxlist_new:n {#5}
-        \bool_if:nT {#3}
+        \seq_put_right:Ne \l__acro_properties_seq { \tl_to_str:n {#2} }
+        \acro_attribute_new:n {property::#2}
+        \bool_set_false:N \l__acro_property_define_unique_bool
+        \bool_set_false:N \l__acro_property_define_boolean_bool
+        \bool_set_false:N \l__acro_property_define_mandatory_bool
+        \bool_set_false:N \l__acro_property_define_static_bool
+        \bool_set_false:N \l__acro_property_define_display_bool
+        \keyval_parse:NNn
+          \__acro_setup_property:n
+          \__acro_setup_property:nn
+          {#1}
+        \bool_if:NF \l__acro_property_define_static_bool
+          { \acro_attribute_set:nnn {dynamic} {#2} {true} }
+        \__acro_auxlist_new:n {#2}
+        \bool_if:NT \l__acro_property_define_mandatory_bool
           {
-            \acro_attribute_set:nnn {mandatory} {#5} {true}
-            % \seq_put_right:Nn \l__acro_mandatory_properties_seq {#5}
-            \tl_put_right:Nn \l__acro_mandatory_properties_tl {{#5}}
+            \acro_attribute_set:nnn {mandatory} {#2} {true}
+            \tl_put_right:Nn \l__acro_mandatory_properties_tl {{#2}}
           }
-        \bool_if:nT {#2}
-          { \acro_attribute_set:nnn {boolean} {#5} {true} }
-        \bool_if:nT {#1}
+        \bool_if:NT \l__acro_property_define_boolean_bool
+          { \acro_attribute_set:nnn {boolean} {#2} {true} }
+        \bool_if:NT \l__acro_property_define_unique_bool
           {
-            \acro_attribute_set:nnn {unique} {#5} {true}
-            \seq_new:c {l__acro_unique_#5_seq}
+            \acro_attribute_set:nnn {unique} {#2} {true}
+            \seq_new:c {l__acro_unique_#2_seq}
           }
-        \bool_if:nT {#4}
+        \bool_if:NT \l__acro_property_define_static_bool
           {
-            \AtEndDocument { \__acro_auxlist_update:n {#5} }
-            \acro_at_begin_document:n { \__acro_property_set_from_auxlist:n {#5} }
+            \AtEndDocument { \__acro_auxlist_update:n {#2} }
+            \acro_at_begin_document:n
+              { \__acro_property_set_from_auxlist:n {#2} }
           }
+        \bool_if:NT \l__acro_property_define_display_bool
+          {
+            \bool_new:c {l__acro_#2_display_bool}
+            \bool_new:c {l__acro_#2_list_display_bool}
+            \keys_define:nn {acro}
+              {
+                #2/display .bool_set:c = {l__acro_#2_display_bool} ,
+                #2/display .initial:n  = true ,
+                list/#2/display .bool_set:c = {l__acro_#2_list_display_bool} ,
+                list/#2/display .initial:n  = true
+              }
+          }
       }
   }
+\cs_generate_variant:Nn \acro_property_declare:nn {e}
 
 % ----------------------------------------------------------------------------
 % property conditionals:
@@ -1208,7 +1260,17 @@
 \prg_new_conditional:Npnn \acro_property_if_set:nn #1#2 {p,T,F,TF}
   {
     \acro_attribute_if_set:neTF {#2} { \acro_case_insensitive:n {#1} }
-      { \prg_return_true: }
+      {
+        \cs_if_exist:cTF {l__acro_#2_display_bool}
+          {
+            \bool_if:NTF \l__acro_list_bool
+              { \bool_if:cTF {l__acro_#2_list_display_bool} }
+              { \bool_if:cTF {l__acro_#2_display_bool} }
+              { \prg_return_true: }
+              { \prg_return_false: }
+          }
+          { \prg_return_true: }
+      }
       { \prg_return_false: }
   }
 \prg_generate_conditional_variant:Nnn \acro_property_if_set:nn
@@ -1651,7 +1713,7 @@
 \DeclareAcroProperty {pdfcomment}
 
 % locale:
-\DeclareAcroProperty {foreign}
+\DeclareAcroProperty>{foreign}
 \DeclareAcroProperty {foreign-babel}
 \DeclareAcroProperty {foreign-locale}
 
@@ -1861,22 +1923,9 @@
       {
         \tl_if_empty:cTF {l__acro_format_ #1 _tl}
           { \use:n }
-          { \tl_use:c {l__acro_format_ #1 _tl} }
+          { \exp_not:v {l__acro_format_ #1 _tl} }
       }
-      {
-        \acro_property_if_alias:nTF {#1}
-          {
-            \tl_if_exist:cTF
-              {l__acro_format_ \acro_property_alias:n {#1} _tl}
-              {
-                \tl_if_empty:cTF {l__acro_format_ \acro_property_alias:n {#1} _tl}
-                  { \use:n }
-                  { \tl_use:c {l__acro_format_ \acro_property_alias:n {#1} _tl} }
-              }
-              { \use:n }
-          }
-          { \use:n }
-      }
+      { \use:n }
   }
 
 % #1: id
@@ -1932,7 +1981,7 @@
           \__acro_global_format:n {#2}
             {
               \__acro_property_format:nn {#1} {#2}
-              { \__acro_pdf_comment:nnn {#1} {#2} {#3} }
+                { \__acro_pdf_comment:nnn {#1} {#2} {#3} }
             }
         }
     }
@@ -1993,9 +2042,7 @@
 \cs_new_protected:Npn \acro_article_declare:nn #1#2
   {
     \tl_gput_right:Nn \g__acro_articles_tl {{#1}}
-    \acro_property_declare:nnnnn
-      { \c_false_bool } { \c_false_bool } { \c_false_bool } { \c_false_bool }
-      {#1}
+    \acro_property_declare:nn {} {#1}
     \acro_list_map:nn {short}
       {
         \DeclareAcroPropertyAlias {##1-#1} {#1}
@@ -2049,12 +2096,8 @@
 
 \cs_new_protected:Npn \__acro_declare_ending_properties:n #1
   {
-    \acro_property_declare:nnnnn
-      { \c_false_bool } { \c_false_bool } { \c_false_bool } { \c_false_bool }
-      {#1}
-    \acro_property_declare:nnnnn
-      { \c_false_bool } { \c_false_bool } { \c_false_bool } { \c_false_bool }
-      {#1-form}
+    \acro_property_declare:nn {} {#1}
+    \acro_property_declare:nn {} {#1-form}
   }
 
 % #1: ending
@@ -2571,10 +2614,10 @@
 
 \cs_new_protected:Npn \acro_footnote:n #1
   {
-    \tl_set:Ne \l__acro_fnpct_check_tl { \l__acro_fnpct_check_tl }
+    \tl_set:Ne \l__acro_tmpa_tl { \l__acro_fnpct_check_tl }
     \exp_last_unbraced:Nno
     \footnote {#1}
-    \l__acro_fnpct_check_tl
+    \l__acro_tmpa_tl
   }
 
 % options for activating actions:
@@ -2932,30 +2975,33 @@
 % #2: property
 \cs_new_protected:Npn \acro_write:nn #1#2
   {
-    \group_begin:
-      \acro_if_short:nT {#2} { \acro_soft_upper: }
-      \__acro_make_link:nnn {#1} {#2}
-        {
-          \acro_locale:nnn {#1} {#2}
+    \acro_property_if_set:nnT {#1} {#2}
+      {
+        \group_begin:
+          \acro_if_short:nT {#2} { \acro_soft_upper: }
+          \__acro_make_link:nnn {#1} {#2}
             {
-              \__acro_write:nn {#1} {#2}
-              \bool_if:NT \l__acro_include_endings_bool
+              \acro_locale:nnn {#1} {#2}
                 {
-                  \acro_if_ending_form:nnF {#1} {#2}
-                    { \__acro_ending:nn {#1} {#2} }
+                  \__acro_write:nn {#1} {#2}
+                  \bool_if:NT \l__acro_include_endings_bool
+                    {
+                      \acro_if_ending_form:nnF {#1} {#2}
+                        { \__acro_ending:nn {#1} {#2} }
+                    }
                 }
             }
-        }
-    \group_end:
-    \acro_if_ending_form:nnF {#1} {#2}
-      {
-        \bool_if:NF \l__acro_include_endings_bool
-          { \__acro_ending:nn {#1} {#2} }
+        \group_end:
+        \acro_if_ending_form:nnF {#1} {#2}
+          {
+            \bool_if:NF \l__acro_include_endings_bool
+              { \__acro_ending:nn {#1} {#2} }
+          }
+        \acro_property_if_eq:nnT {#2} {long}
+          { \acro_property_get:nn {#1} {long-post} }
+        \bool_set_false:N \l__acro_upper_bool
+        \bool_set_false:N \l__acro_article_bool
       }
-    \acro_property_if_eq:nnT {#2} {long}
-      { \acro_property_get:nn {#1} {long-post} }
-    \bool_set_false:N \l__acro_upper_bool
-    \bool_set_false:N \l__acro_article_bool
   }
 \cs_generate_variant:Nn \acro_write:nn {e}
 
@@ -3139,6 +3185,7 @@
 \cs_new_protected:Npn \__acro_template_add:nnn #1#2#3
   {
     \tl_new:c {l__acro_template_#1_#2_setup_tl}
+    \tl_new:c {l__acro_next_template_#1_#2_setup_tl}
     \acro_attribute_set:nnn {template::#1} {#2} {#3}
   }
 
@@ -3181,17 +3228,22 @@
 % #3: setup code
 \cs_new_protected:Npn \acro_template_setup:nnn #1#2#3
   { \tl_set:cn {l__acro_template_#1_#2_setup_tl} {#3} }
-\cs_generate_variant:Nn \acro_template_setup:nnn {nnV,nVn}
 
+\cs_new_protected:Npn \acro_next template_setup:nnn #1#2#3
+  { \tl_set:cn {l__acro_next_template_#1_#2_setup_tl} {#3} }
+
 % #1: template type
 % #2: template name
-\cs_new_protected:Npn \__acro_template_setup:nn #1#2
-  { \tl_use:c {l__acro_template_#1_#2_setup_tl} }
+\cs_new_protected:Npn \__acro_template_do_setup:nn #1#2
+  {
+    \tl_use:c {l__acro_template_#1_#2_setup_tl}
+    \tl_use:c {l__acro_next_template_#1_#2_setup_tl}
+  }
 
 % #1: template type
 % #2: template name
 \cs_new_protected:Npn \__acro_clear_template_setup:nn #1#2
-  { \tl_clear:c {l__acro_template_#1_#2_setup_tl} }
+  { \tl_clear:c {l__acro_next_template_#1_#2_setup_tl} }
 
 % #1: template type
 % #2: template name
@@ -3198,11 +3250,11 @@
 \cs_new_protected:Npn \__acro_template_start:nn #1#2
   {
     \group_begin:
-      \__acro_template_setup:nn {#1} {#2}
-      \tl_clear_new:N \TemplateType
-      \tl_set:Nn \TemplateType {#1}
-      \tl_clear_new:N \TemplateName
-      \tl_set:Nn \TemplateName {#2}
+      \__acro_template_do_setup:nn {#1} {#2}
+      \tl_clear_new:N \AcroTemplateType
+      \tl_set:Nn \AcroTemplateType {#1}
+      \tl_clear_new:N \AcroTemplateName
+      \tl_set:Nn \AcroTemplateName {#2}
   }
 
 % #1: template type
@@ -3852,9 +3904,7 @@
   { You~ need~ to~ give~ a~ value~ to~ `#1'~ \msg_line_context: }
 
 % --------------------------------------------------------------------------
-\bool_new:N \l__acro_show_foreign_bool
 \bool_new:N \l__acro_show_locale_bool
-\bool_new:N \l__acro_list_show_locale_bool
 \tl_new:N \l__acro_locale_format_tl
 
 % #1: property
@@ -3865,15 +3915,6 @@
       { \prg_return_false: }
   }
 
-% #1: property
-% #2: text
-\cs_new:Npn \acro_check_foreign:nn #1#2
-  {
-    \acro_if_foreign:nTF {#1}
-      { \bool_if:NT \l__acro_show_foreign_bool {#2} }
-      {#2}
-  }
-
 % #1: id
 % #2: property
 \prg_new_conditional:Npnn \acro_if_locale:nn #1#2 {p,T,F,TF}
@@ -3896,37 +3937,30 @@
   {
     \acro_if_foreign:nTF {#2}
       {
-        \bool_if:NT \l__acro_show_foreign_bool
+        \acro_if_locale:nnTF {#1} {#2}
           {
-            \acro_if_locale:nnTF {#1} {#2}
+            \bool_if:NTF \l__acro_list_bool
+              { \bool_if:NT \l__acro_list_show_locale_bool }
+              { \bool_if:NT \l__acro_show_locale_bool }
               {
-                \bool_lazy_or:nnT
-                  { \l__acro_show_locale_bool }
-                  {
-                    \bool_lazy_and_p:nn
-                      { \l__acro_list_bool }
-                      { \l__acro_list_show_locale_bool }
-                  }
-                  {
+                {
+                  \l__acro_locale_format_tl
                     {
-                      \l__acro_locale_format_tl
+                      \acro_property_if_set:nnTF {#1} {foreign-locale}
+                        { \acro_property_get:nn {#1} {foreign-locale} }
                         {
-                          \acro_property_if_set:nnTF {#1} {foreign-locale}
-                            { \acro_property_get:nn {#1} {foreign-locale} }
-                            {
-                               \baselanguage
-                                 { \acro_property_get:nn {#1} {foreign-babel} }
-                            }
+                          \baselanguage
+                            { \acro_property_get:nn {#1} {foreign-babel} }
                         }
                     }
-                    :~
-                  }
-                \__acro_foreign_language:en
-                  { \str_lowercase:e { \acro_property_get:nn {#1} {foreign-babel} } }
-                  {#3}
+                }
+                :~
               }
+            \__acro_foreign_language:en
+              { \str_lowercase:e { \acro_property_get:nn {#1} {foreign-babel} } }
               {#3}
           }
+          {#3}
       }
       {#3}
   }
@@ -3955,12 +3989,6 @@
     display .initial:n  = false
   }
 
-\keys_define:nn {acro/foreign}
-  {
-    display .bool_set:N = \l__acro_show_foreign_bool ,
-    display .initial:n  = true
-  }
-
 % --------------------------------------------------------------------------
 
 \bool_new:N      \l__acro_language_auto_bool
@@ -4104,13 +4132,6 @@
 \cs_generate_variant:Nn \__acro_hyper_target:nn {e}
 \cs_generate_variant:Nn \__acro_hyper_link:nn {e}
 
-% \acro_property_declare:nnnnn
-%   { \c_false_bool } % not unique
-%   { \c_true_bool }  % boolean
-%   { \c_false_bool } % not mandatory
-%   { \c_false_bool } % dynamic
-%   {target-set}
-
 \cs_new_protected:Npn \__acro_activate_hyperref_support:
   {
     \bool_lazy_and:nnT
@@ -4987,8 +5008,7 @@
 
 \NewAcroTemplate[list] {longtable}
   {
-    \AcroNeedPackage {array}
-    \AcroNeedPackage {longtable}
+    \AcroNeedPackage {array,longtable}
     \acronymsmapF
       {
         \AcroAddRow
@@ -5013,16 +5033,14 @@
     \acroheading
     \acropreamble
     \par \noindent
-    \begin {longtabu} {>{\bfseries}lp{.7\linewidth}}
+    \begin {longtable} {>{\bfseries}lp{.7\linewidth}}
       \AcronymTable
-    \end {longtabu}
+    \end {longtable}
   }
   
 \NewAcroTemplate[list] {longtabu}
   {
-    \AcroNeedPackage {array}
-    \AcroNeedPackage {longtable}
-    \AcroNeedPackage {tabu}
+    \AcroNeedPackage {array,longtable,tabu}
     \acronymsmapF
       {
         \AcroAddRow
@@ -5040,7 +5058,7 @@
             \acropages
               { \acrotranslate {page} \nobreakspace }
               { \acrotranslate {pages} \nobreakspace }
-            \tabularnewline
+            \strut \tabularnewline
           }
       }
       { \AcroRerun }
@@ -5052,6 +5070,38 @@
     \end {longtabu}
   }
 
+\NewAcroTemplate[list] {supertabular}
+  {
+    \AcroNeedPackage {array,supertabular}
+    \acronymsmapF
+      {
+        \AcroAddRow
+          {
+            \acrowrite {short}
+            \acroifT {alt} { / } \acrowrite {alt}
+            &
+            \acrowrite {list}
+            \acroifanyT {foreign,extra} {~(}
+            \acrowrite {foreign}
+            \acroifallT {foreign,extra} {,~}
+            \acrowrite {extra}
+            \acroifanyT {foreign,extra} {)}
+            \acropagefill
+            \acropages
+              { \acrotranslate {page} \nobreakspace }
+              { \acrotranslate {pages} \nobreakspace }
+            \tabularnewline
+          }
+      }
+      { \AcroRerun }  
+    \acroheading
+    \acropreamble
+    \par \noindent
+    \begin {supertabular} {>{\bfseries}lp{.7\linewidth}}
+      \AcronymTable
+    \end {supertabular}
+  }
+  
 \NewAcroTemplate [list] {lof}
   {
     \acroheading
@@ -5332,12 +5382,7 @@
 \cs_new_protected:Npn \acro_deprecated_property:nn #1#2
   {
     \acro_deprecate:nn {#1} {#2}
-    \acro_property_declare:nnnnn
-      { \c_false_bool }
-      { \c_false_bool }
-      { \c_false_bool }
-      { \c_false_bool }
-      {#1}
+    \acro_property_declare:nn {} {#1}
   }
 
 % #1: old
@@ -5344,12 +5389,7 @@
 \cs_new_protected:Npn \acro_removed_property:n #1
   {
     \acro_remove:n {#1}
-    \acro_property_declare:nnnnn
-      { \c_false_bool }
-      { \c_false_bool }
-      { \c_false_bool }
-      { \c_false_bool }
-      {#1}
+    \acro_property_declare:nn {} {#1}
   }
 
 % ----------------------------------------------------------------------------



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