texlive[72629] Master/texmf-dist: letgut (23oct24)

commits+karl at tug.org commits+karl at tug.org
Wed Oct 23 22:21:42 CEST 2024


Revision: 72629
          https://tug.org/svn/texlive?view=revision&revision=72629
Author:   karl
Date:     2024-10-23 22:21:42 +0200 (Wed, 23 Oct 2024)
Log Message:
-----------
letgut (23oct24)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/lualatex/letgut/CHANGELOG.md
    trunk/Master/texmf-dist/doc/lualatex/letgut/README.md
    trunk/Master/texmf-dist/doc/lualatex/letgut/letgut-banner-code.pdf
    trunk/Master/texmf-dist/doc/lualatex/letgut/letgut-banner-code.tex
    trunk/Master/texmf-dist/doc/lualatex/letgut/letgut-code.pdf
    trunk/Master/texmf-dist/doc/lualatex/letgut/letgut-code.tex
    trunk/Master/texmf-dist/doc/lualatex/letgut/letgut.pdf
    trunk/Master/texmf-dist/doc/lualatex/letgut/letgut.tex
    trunk/Master/texmf-dist/source/lualatex/letgut/letgut.org
    trunk/Master/texmf-dist/tex/lualatex/letgut/letgut.cbx
    trunk/Master/texmf-dist/tex/lualatex/letgut/letgut.cls
    trunk/Master/texmf-dist/tex/lualatex/letgut/letgut.dbx
    trunk/Master/texmf-dist/tex/lualatex/letgut/letgut.lbx

Modified: trunk/Master/texmf-dist/doc/lualatex/letgut/CHANGELOG.md
===================================================================
--- trunk/Master/texmf-dist/doc/lualatex/letgut/CHANGELOG.md	2024-10-23 06:54:27 UTC (rev 72628)
+++ trunk/Master/texmf-dist/doc/lualatex/letgut/CHANGELOG.md	2024-10-23 20:21:42 UTC (rev 72629)
@@ -8,7 +8,11 @@
 ## [Unreleased]
 
 ## [0.9.10] - 2024-10-07
+### Fixed
+- Bibliographic files not attached to the PDF
 
+## [0.9.10] - 2024-10-07
+
 ### Changed
 - Multiple rebuses handled
 - Paper clips (links to source files of the articles) not in the magin anymore and separated by spaces

Modified: trunk/Master/texmf-dist/doc/lualatex/letgut/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/lualatex/letgut/README.md	2024-10-23 06:54:27 UTC (rev 72628)
+++ trunk/Master/texmf-dist/doc/lualatex/letgut/README.md	2024-10-23 20:21:42 UTC (rev 72629)
@@ -8,7 +8,7 @@
 
 Release
 -------
-2024-10-07 v0.9.10
+2024-10-23 v0.9.11
 
 Development
 -----------

Modified: trunk/Master/texmf-dist/doc/lualatex/letgut/letgut-banner-code.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/lualatex/letgut/letgut-banner-code.tex
===================================================================
--- trunk/Master/texmf-dist/doc/lualatex/letgut/letgut-banner-code.tex	2024-10-23 06:54:27 UTC (rev 72628)
+++ trunk/Master/texmf-dist/doc/lualatex/letgut/letgut-banner-code.tex	2024-10-23 20:21:42 UTC (rev 72629)
@@ -1,4 +1,4 @@
-% Created 2024-10-07 Mon 12:16
+% Created 2024-10-23 Wed 10:12
 % Intended LaTeX compiler: lualatex
 \documentclass{letgut}
                                 \setmainfont{KpRoman}

Modified: trunk/Master/texmf-dist/doc/lualatex/letgut/letgut-code.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/lualatex/letgut/letgut-code.tex
===================================================================
--- trunk/Master/texmf-dist/doc/lualatex/letgut/letgut-code.tex	2024-10-23 06:54:27 UTC (rev 72628)
+++ trunk/Master/texmf-dist/doc/lualatex/letgut/letgut-code.tex	2024-10-23 20:21:42 UTC (rev 72629)
@@ -1,4 +1,4 @@
-% Created 2024-10-07 Mon 12:16
+% Created 2024-10-23 Wed 10:12
 % Intended LaTeX compiler: lualatex
 \documentclass{letgut}
                                 \setmainfont{KpRoman}
@@ -97,8 +97,8 @@
 
 \begin{lstlisting}
 \ProvidesExplClass{letgut}
-{2024-10-07}
-{0.9.10}
+{2024-10-23}
+{0.9.11}
 {
   Class for the newsletter “The GUTenberg Letter”
 }
@@ -969,7 +969,18 @@
   \phantomsection
   \__letgut_old_printbibliography[#1]
   \bool_if:NT \g__letgut_included_files_attached_bool {
-    \seq_map_inline:Nn \g__letgut_added_bib_resources_seq {\seq_gput_right:Nn \g__letgut_included_files_seq {#1}}
+    \seq_map_inline:Nn \g__letgut_added_bib_resources_seq {
+      \seq_gput_right:Nn \g__letgut_included_files_seq {
+       \attachfile[
+         description={
+           Fichier~ bibliographique~ utilisé~ dans~ le~
+           présent~ article~ (fichier~ `\tl_to_str:n{##1}`)
+         },
+         mimetype=application/x-bib
+       ]
+       {\tl_to_str:n{##1}}
+     }
+    }
   }
 }
 \end{lstlisting}
@@ -2944,42 +2955,53 @@
 extensions of the \lstinline+graphicx+ package.
 
 \begin{lstlisting}
-    \clist_map_inline:Nn \Gin at extensions {
-      \file_if_exist:nT{\l__letgut_bookreview_frontcover_tl##1}{
-        \bool_set_true:N \l__letgut_tmpa_bool
-        \clist_map_break:
-      }
-    }
-    \bool_if:NTF \l__letgut_tmpa_bool {
-      \marginpar{
-        \hspace*{\c__letgut_bookreview_frontcover_margin_sep_dim}
-        % \raggedleft
-        \raisebox{-\totalheight}{
-          \fbox{
-            \includegraphics*[width=-\c__letgut_title_hoffset_dim]{
-              \l__letgut_bookreview_frontcover_tl
-            }
-          }
+\clist_map_inline:Nn \Gin at extensions {
+  \file_if_exist:nT{\l__letgut_bookreview_frontcover_tl##1}{
+    \bool_set_true:N \l__letgut_tmpa_bool
+    \clist_map_break:
+  }
+}
+\bool_if:NTF \l__letgut_tmpa_bool {
+  \marginpar{
+    \hspace*{\c__letgut_bookreview_frontcover_margin_sep_dim}
+    % \raggedleft
+    \raisebox{-\totalheight}{
+      \fbox{
+        \includegraphics*[width=-\c__letgut_title_hoffset_dim]{
+          \l__letgut_bookreview_frontcover_tl
         }
       }
-    }{
-      \msg_error:nnVV
-      {letgut}
-      {frontcover-file-not-found}
-      {\g__letgut_bookreview_title_tl}
-      {\l__letgut_bookreview_frontcover_tl}
     }
   }
-  \noindent
-  \textsf{\fullcite{\g__letgut_bookreview_bibkey_tl}}
-  \tl_if_empty:NF \g__letgut_bookreview_price_tl{
-    .\c_space_tl\g__letgut_bookreview_price_tl\c_space_tl €
-  }
-  \par
 }{
+  \msg_error:nnVV
+  {letgut}
+  {frontcover-file-not-found}
+  {\g__letgut_bookreview_title_tl}
+  {\l__letgut_bookreview_frontcover_tl}
+}
+}
+\noindent
+\textsf{\fullcite{\g__letgut_bookreview_bibkey_tl}}
+\tl_if_empty:NF \g__letgut_bookreview_price_tl{
+  .\c_space_tl\g__letgut_bookreview_price_tl\c_space_tl €
+}
+\par
+}{
   \exp_args:NV \author{\g__letgut_bookreview_reviewer_tl}
   \bool_if:NT \g__letgut_included_files_attached_bool {
-    \seq_map_inline:Nn \g__letgut_added_bib_resources_seq {\seq_gput_right:Nn \g__letgut_included_files_seq {##1}}
+    \seq_map_inline:Nn \g__letgut_added_bib_resources_seq {
+      \seq_gput_right:Nn \g__letgut_included_files_seq {
+        \attachfile[
+          description={
+            Fichier~ bibliographique~ utilisé~ dans~ le~
+            présent~ article~ (fichier~ `\tl_to_str:n{##1}`)
+          },
+          mimetype=application/x-bib
+        ]
+        {\tl_to_str:n{##1}}
+      }
+    }
   }
 }
 \end{lstlisting}
@@ -3241,28 +3263,40 @@
 ressources to the \pdf{} (if desired, otherwise, use the starred version).
 
 \begin{lstlisting}
-\NewCommandCopy {\__letgut_orig_addbibresource} {\addbibresource}
-\cs_new_protected:Npn \__letgut_addbibresource:nnn #1 #2 #3
+\cs_new:Nn \__letgut_extract_file_for:nn
 {
-  \file_if_exist:nT {#3} {
-    \IfBooleanF {#1}{
-      \seq_gput_left:Nn \g__letgut_added_bib_resources_seq {
-        \attachfile[
-        description={
-          Source~ du~ fichier~ bibliographique~ utilisé~
-          dans~ le~ présent~ article~ (fichier~ `#3`)
-        },
-        mimetype=application/x-bibtex
-        ]%
-        {#3}%
+  \seq_clear:N \g__letgut_added_bib_resources_seq
+  \regex_extract_all:nnNT
+  {
+    \c{ #1 } \[?.*?\]?        \{ ( .*? ) \}
+  }
+  {
+    #2
+  }
+  \g__letgut_added_bib_resources_seq
+  {
+    \seq_map_indexed_inline:Nn \g__letgut_added_bib_resources_seq {
+      \int_if_odd:nT {##1}
+      {
+        \seq_gset_item:Nnn \g__letgut_added_bib_resources_seq {##1} {}
       }
     }
+    \seq_gremove_duplicates:N \g__letgut_added_bib_resources_seq
+    \seq_gpop:NN \g__letgut_added_bib_resources_seq \l_tmpa_tl
   }
+}
+
+\NewCommandCopy {\__letgut_orig_addbibresource} {\addbibresource}
+\cs_new_protected:Npn \__letgut_addbibresource:nnn #1 #2 #3
+{
   \__letgut_orig_addbibresource[#2]{#3}
 }
 \RenewDocumentCommand {\addbibresource} { s O{} m } {
   \__letgut_addbibresource:nnn {#1} {#2} {#3}
 }
+\AddToHookWithArguments{cmd/sa at gobble/before}{
+  \__letgut_extract_file_for:nn { addbibresource }{ #1 }
+}
 \end{lstlisting}
 
 \subsubsection{Added acronym definitions file attached to the PDF}
@@ -3518,7 +3552,7 @@
 }
 \cs_new_protected:Npn \__letgut_title_code_result_box:n #1
 {
-  Exemple~ \thetcbcounter
+  Exemple\nobreakspace\thetcbcounter
   \tl_if_empty:NF {#1} { \hypersetup{hidelinks} \c_space_tl :~#1 }
 }
 \cs_new_protected:Nn \__letgut_on_callout_page:nn
@@ -4094,7 +4128,7 @@
 \end{itemize}
 
 \begin{lstlisting}
-\ProvidesFile{letgut.lbx}[2024-10-07 v0.9.10 letgut localization]
+\ProvidesFile{letgut.lbx}[2024-10-23 v0.9.11 letgut localization]
 \InheritBibliographyExtras{french}
 \DeclareBibliographyStrings{
   inherit          = {french},
@@ -4108,7 +4142,7 @@
 create the corresponding new entry).
 
 \begin{lstlisting}
-\ProvidesFile{letgut.dbx}[2024-10-07 v0.9.10 letgut data model macros]
+\ProvidesFile{letgut.dbx}[2024-10-23 v0.9.11 letgut data model macros]
 \DeclareBibliographyDriver{bookreview}{%
   \usebibmacro{bibindex}%
   \usebibmacro{begentry}%
@@ -4163,7 +4197,7 @@
 We provide a specific \lstinline+biblatex+ citation style .
 
 \begin{lstlisting}
-\ProvidesFile{letgut.cbx}[2024-10-07 v0.9.10 letgut base citation style]
+\ProvidesFile{letgut.cbx}[2024-10-23 v0.9.11 letgut base citation style]
 \RequireCitationStyle{numeric}
 \end{lstlisting}
 

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

Modified: trunk/Master/texmf-dist/doc/lualatex/letgut/letgut.tex
===================================================================
--- trunk/Master/texmf-dist/doc/lualatex/letgut/letgut.tex	2024-10-23 06:54:27 UTC (rev 72628)
+++ trunk/Master/texmf-dist/doc/lualatex/letgut/letgut.tex	2024-10-23 20:21:42 UTC (rev 72629)
@@ -68,7 +68,7 @@
 }
 \author{Association GUTenberg}
 \date{%
-  Version 0.9.9 en date du \today%
+  Version 0.9.11 en date du \today%
   \texorpdfstring{%
     \\
     \url{https://framagit.org/gutenberg/letgut}%
@@ -338,30 +338,31 @@
   page.
 \end{docKey}
 
-\tcbset{before lower=\vspace*{.5\baselineskip}\par}
-%
-\begin{docKey}[][doc updated={2023-01-19}]{detailedtoc}{=\docValue{section}\textbar\docValue{subsection}\textbar\docValue{subsubsection}\textbar\docValue{paragraph}\textbar\docValue{subparagraph}}{\valinitdef[\docValue*{title}][\docValue*{all}]}
-  Par défaut, une table des matières est automatiquement insérée en début de
-  document, avec comme niveau de profondeur celui des titres des articles
-  (saisis via la \refCom{title}), et seulement eux.  La clé \refKey{detailedtoc}
-  permet de modifier le \enquote{niveau de profondeur} de cette table des
-  matières, respectivement jusqu'aux sections, sous-sections,
-  sous-sous-sections, paragraphes, sous-paragraphes. Sont également acceptées
-  les valeurs spéciales :
-  \begin{itemize}
-  \item \docValue{all} (alias de \docValue{subparagraph}) ;
-  \item \docValue{none} qui inhibe l'affichage de la table des matières.
-  \end{itemize}
+{\tcbset{before lower=\vspace*{\baselineskip}\par}
+  %
+  \begin{docKey}[][doc updated={2023-01-19}]{detailedtoc}{=\docValue{section}\textbar\docValue{subsection}\textbar\docValue{subsubsection}\textbar\docValue{paragraph}\textbar\docValue{subparagraph}}{\valinitdef[\docValue*{title}][\docValue*{all}]}
+    Par défaut, une table des matières est automatiquement insérée en début de
+    document, avec comme niveau de profondeur celui des titres des articles
+    (saisis via la \refCom{title}), et seulement eux.  La clé \refKey{detailedtoc}
+    permet de modifier le \enquote{niveau de profondeur} de cette table des
+    matières, respectivement jusqu'aux sections, sous-sections,
+    sous-sous-sections, paragraphes, sous-paragraphes. Sont également acceptées
+    les valeurs spéciales :
+    \begin{itemize}
+    \item \docValue{all} (alias de \docValue{subparagraph}) ;
+    \item \docValue{none} qui inhibe l'affichage de la table des matières.
+    \end{itemize}
 
-  \begin{dbremark}{Tables des matières locales}{}
-    Chaque article peut contenir une table des matières locale, affichée au
-    moyen de la commande \docAuxCommand{localtableofcontents} (fournie par le
-    \package*{etoc} chargé en sous-main par la \letgutcls{}). Le niveau de
-    profondeur est par défaut celui des sections mais cela peut être modifié en
-    la faisant précéder de la commande \docAuxCommand{etocsetnexttocdepth} (dont
-    l'argument est l'une des valeurs possibles de la clé \refKey{detailedtoc}).
-  \end{dbremark}
-\end{docKey}
+    \begin{dbremark}{Tables des matières locales}{}
+      Chaque article peut contenir une table des matières locale, affichée au
+      moyen de la commande \docAuxCommand{localtableofcontents} (fournie par le
+      \package*{etoc} chargé en sous-main par la \letgutcls{}). Le niveau de
+      profondeur est par défaut celui des sections mais cela peut être modifié en
+      la faisant précéder de la commande \docAuxCommand{etocsetnexttocdepth} (dont
+      l'argument est l'une des valeurs possibles de la clé \refKey{detailedtoc}).
+    \end{dbremark}
+  \end{docKey}
+}
 
 \begin{docKey}[][doc new={2023-01-14}]{reverse-files-attachement}{}{\valinitdef[pas de valeur]}
   Si, et seulement si, la \lettre{} est à la fois en version pour les lecteurs

Modified: trunk/Master/texmf-dist/source/lualatex/letgut/letgut.org
===================================================================
--- trunk/Master/texmf-dist/source/lualatex/letgut/letgut.org	2024-10-23 06:54:27 UTC (rev 72628)
+++ trunk/Master/texmf-dist/source/lualatex/letgut/letgut.org	2024-10-23 20:21:42 UTC (rev 72629)
@@ -54,7 +54,7 @@
   % This field contains the version of the package.
   % The value is optional.
   % The value is restricted to 32 characters.
-  \version{0.9.10 2024-10-07}
+  \version{0.9.11 2024-10-23}
   % -------------------------------------------------------------------------
   % This field contains the name of the author(s).
   % The value is optional.
@@ -213,7 +213,11 @@
   ## [Unreleased]
 
   ## [0.9.10] - 2024-10-07
+  ### Fixed
+  - Bibliographic files not attached to the PDF
 
+  ## [0.9.10] - 2024-10-07
+
   ### Changed
   - Multiple rebuses handled
   - Paper clips (links to source files of the articles) not in the magin anymore and separated by spaces
@@ -350,7 +354,7 @@
 
 Release
 -------
-2024-10-07 v0.9.10
+2024-10-23 v0.9.11
 
 Development
 -----------
@@ -503,8 +507,8 @@
 
 #+begin_src latex
   \ProvidesExplClass{letgut}
-  {2024-10-07}
-  {0.9.10}
+  {2024-10-23}
+  {0.9.11}
   {
     Class for the newsletter “The GUTenberg Letter”
   }
@@ -1411,7 +1415,18 @@
        \phantomsection
        \__letgut_old_printbibliography[#1]
        \bool_if:NT \g__letgut_included_files_attached_bool {
-         \seq_map_inline:Nn \g__letgut_added_bib_resources_seq {\seq_gput_right:Nn \g__letgut_included_files_seq {#1}}
+         \seq_map_inline:Nn \g__letgut_added_bib_resources_seq {
+           \seq_gput_right:Nn \g__letgut_included_files_seq {
+            \attachfile[
+              description={
+                Fichier~ bibliographique~ utilisé~ dans~ le~
+                présent~ article~ (fichier~ `\tl_to_str:n{##1}`)
+              },
+              mimetype=application/x-bib
+            ]
+            {\tl_to_str:n{##1}}
+          }
+         }
        }
      }
      #+end_src
@@ -3489,42 +3504,53 @@
 extensions of the ~graphicx~ package.
 
 #+begin_src latex
-      \clist_map_inline:Nn \Gin at extensions {
-        \file_if_exist:nT{\l__letgut_bookreview_frontcover_tl##1}{
-          \bool_set_true:N \l__letgut_tmpa_bool
-          \clist_map_break:
-        }
-      }
-      \bool_if:NTF \l__letgut_tmpa_bool {
-        \marginpar{
-          \hspace*{\c__letgut_bookreview_frontcover_margin_sep_dim}
-          % \raggedleft
-          \raisebox{-\totalheight}{
-            \fbox{
-              \includegraphics*[width=-\c__letgut_title_hoffset_dim]{
-                \l__letgut_bookreview_frontcover_tl
-              }
-            }
+  \clist_map_inline:Nn \Gin at extensions {
+    \file_if_exist:nT{\l__letgut_bookreview_frontcover_tl##1}{
+      \bool_set_true:N \l__letgut_tmpa_bool
+      \clist_map_break:
+    }
+  }
+  \bool_if:NTF \l__letgut_tmpa_bool {
+    \marginpar{
+      \hspace*{\c__letgut_bookreview_frontcover_margin_sep_dim}
+      % \raggedleft
+      \raisebox{-\totalheight}{
+        \fbox{
+          \includegraphics*[width=-\c__letgut_title_hoffset_dim]{
+            \l__letgut_bookreview_frontcover_tl
           }
         }
-      }{
-        \msg_error:nnVV
-        {letgut}
-        {frontcover-file-not-found}
-        {\g__letgut_bookreview_title_tl}
-        {\l__letgut_bookreview_frontcover_tl}
       }
     }
-    \noindent
-    \textsf{\fullcite{\g__letgut_bookreview_bibkey_tl}}
-    \tl_if_empty:NF \g__letgut_bookreview_price_tl{
-      .\c_space_tl\g__letgut_bookreview_price_tl\c_space_tl €
-    }
-    \par
   }{
+    \msg_error:nnVV
+    {letgut}
+    {frontcover-file-not-found}
+    {\g__letgut_bookreview_title_tl}
+    {\l__letgut_bookreview_frontcover_tl}
+  }
+  }
+  \noindent
+  \textsf{\fullcite{\g__letgut_bookreview_bibkey_tl}}
+  \tl_if_empty:NF \g__letgut_bookreview_price_tl{
+    .\c_space_tl\g__letgut_bookreview_price_tl\c_space_tl €
+  }
+  \par
+  }{
     \exp_args:NV \author{\g__letgut_bookreview_reviewer_tl}
     \bool_if:NT \g__letgut_included_files_attached_bool {
-      \seq_map_inline:Nn \g__letgut_added_bib_resources_seq {\seq_gput_right:Nn \g__letgut_included_files_seq {##1}}
+      \seq_map_inline:Nn \g__letgut_added_bib_resources_seq {
+        \seq_gput_right:Nn \g__letgut_included_files_seq {
+          \attachfile[
+            description={
+              Fichier~ bibliographique~ utilisé~ dans~ le~
+              présent~ article~ (fichier~ `\tl_to_str:n{##1}`)
+            },
+            mimetype=application/x-bib
+          ]
+          {\tl_to_str:n{##1}}
+        }
+      }
     }
   }
 #+end_src
@@ -3806,28 +3832,40 @@
 ressources to the \pdf{} (if desired, otherwise, use the starred version).
 
 #+begin_src latex
-  \NewCommandCopy {\__letgut_orig_addbibresource} {\addbibresource}
-  \cs_new_protected:Npn \__letgut_addbibresource:nnn #1 #2 #3
+  \cs_new:Nn \__letgut_extract_file_for:nn
   {
-    \file_if_exist:nT {#3} {
-      \IfBooleanF {#1}{
-        \seq_gput_left:Nn \g__letgut_added_bib_resources_seq {
-          \attachfile[
-          description={
-            Source~ du~ fichier~ bibliographique~ utilisé~
-            dans~ le~ présent~ article~ (fichier~ `#3`)
-          },
-          mimetype=application/x-bibtex
-          ]%
-          {#3}%
+    \seq_clear:N \g__letgut_added_bib_resources_seq
+    \regex_extract_all:nnNT
+    {
+      \c{ #1 } \[?.*?\]?        \{ ( .*? ) \}
+    }
+    {
+      #2
+    }
+    \g__letgut_added_bib_resources_seq
+    {
+      \seq_map_indexed_inline:Nn \g__letgut_added_bib_resources_seq {
+        \int_if_odd:nT {##1}
+        {
+          \seq_gset_item:Nnn \g__letgut_added_bib_resources_seq {##1} {}
         }
       }
+      \seq_gremove_duplicates:N \g__letgut_added_bib_resources_seq
+      \seq_gpop:NN \g__letgut_added_bib_resources_seq \l_tmpa_tl
     }
+  }
+
+  \NewCommandCopy {\__letgut_orig_addbibresource} {\addbibresource}
+  \cs_new_protected:Npn \__letgut_addbibresource:nnn #1 #2 #3
+  {
     \__letgut_orig_addbibresource[#2]{#3}
   }
   \RenewDocumentCommand {\addbibresource} { s O{} m } {
     \__letgut_addbibresource:nnn {#1} {#2} {#3}
   }
+  \AddToHookWithArguments{cmd/sa at gobble/before}{
+    \__letgut_extract_file_for:nn { addbibresource }{ #1 }
+  }
 #+end_src
 
 *** Added acronym definitions file attached to the PDF
@@ -4093,7 +4131,7 @@
   }
   \cs_new_protected:Npn \__letgut_title_code_result_box:n #1
   {
-    Exemple~ \thetcbcounter
+    Exemple\nobreakspace\thetcbcounter
     \tl_if_empty:NF {#1} { \hypersetup{hidelinks} \c_space_tl :~#1 }
   }
   \cs_new_protected:Nn \__letgut_on_callout_page:nn
@@ -4677,7 +4715,7 @@
 - the books advertisements.
 
 #+begin_src latex :tangle ../../../tex/lualatex/letgut/letgut.lbx :exports both
-\ProvidesFile{letgut.lbx}[2024-10-07 v0.9.10 letgut localization]
+\ProvidesFile{letgut.lbx}[2024-10-23 v0.9.11 letgut localization]
 \InheritBibliographyExtras{french}
 \DeclareBibliographyStrings{
   inherit          = {french},
@@ -4691,7 +4729,7 @@
   create the corresponding new entry).
 
   #+begin_src latex :tangle ../../../tex/lualatex/letgut/letgut.dbx :exports both
-  \ProvidesFile{letgut.dbx}[2024-10-07 v0.9.10 letgut data model macros]
+  \ProvidesFile{letgut.dbx}[2024-10-23 v0.9.11 letgut data model macros]
   \DeclareBibliographyDriver{bookreview}{%
     \usebibmacro{bibindex}%
     \usebibmacro{begentry}%
@@ -4746,7 +4784,7 @@
 We provide a specific ~biblatex~ citation style .
 
 #+begin_src latex :tangle ../../../tex/lualatex/letgut/letgut.cbx :exports both
-  \ProvidesFile{letgut.cbx}[2024-10-07 v0.9.10 letgut base citation style]
+  \ProvidesFile{letgut.cbx}[2024-10-23 v0.9.11 letgut base citation style]
   \RequireCitationStyle{numeric}
 #+end_src
 

Modified: trunk/Master/texmf-dist/tex/lualatex/letgut/letgut.cbx
===================================================================
--- trunk/Master/texmf-dist/tex/lualatex/letgut/letgut.cbx	2024-10-23 06:54:27 UTC (rev 72628)
+++ trunk/Master/texmf-dist/tex/lualatex/letgut/letgut.cbx	2024-10-23 20:21:42 UTC (rev 72629)
@@ -1,4 +1,4 @@
-\ProvidesFile{letgut.cbx}[2024-10-07 v0.9.10 letgut base citation style]
+\ProvidesFile{letgut.cbx}[2024-10-23 v0.9.11 letgut base citation style]
 \RequireCitationStyle{numeric}
 \DeclareFieldFormat[bookreview]{title}{\textbf{\emph{#1}}}
 \renewbibmacro*{title}{%

Modified: trunk/Master/texmf-dist/tex/lualatex/letgut/letgut.cls
===================================================================
--- trunk/Master/texmf-dist/tex/lualatex/letgut/letgut.cls	2024-10-23 06:54:27 UTC (rev 72628)
+++ trunk/Master/texmf-dist/tex/lualatex/letgut/letgut.cls	2024-10-23 20:21:42 UTC (rev 72629)
@@ -55,8 +55,8 @@
 }
 \ExplSyntaxOff
 \ProvidesExplClass{letgut}
-{2024-10-07}
-{0.9.10}
+{2024-10-23}
+{0.9.11}
 {
   Class for the newsletter “The GUTenberg Letter”
 }
@@ -566,7 +566,18 @@
   \phantomsection
   \__letgut_old_printbibliography[#1]
   \bool_if:NT \g__letgut_included_files_attached_bool {
-    \seq_map_inline:Nn \g__letgut_added_bib_resources_seq {\seq_gput_right:Nn \g__letgut_included_files_seq {#1}}
+    \seq_map_inline:Nn \g__letgut_added_bib_resources_seq {
+      \seq_gput_right:Nn \g__letgut_included_files_seq {
+       \attachfile[
+         description={
+           Fichier~ bibliographique~ utilisé~ dans~ le~
+           présent~ article~ (fichier~ `\tl_to_str:n{##1}`)
+         },
+         mimetype=application/x-bib
+       ]
+       {\tl_to_str:n{##1}}
+     }
+    }
   }
 }
 \defbibheading{title}[\refname]{%
@@ -1900,41 +1911,52 @@
     }
   }{
 \clist_map_inline:Nn \Gin at extensions {
-      \file_if_exist:nT{\l__letgut_bookreview_frontcover_tl##1}{
-        \bool_set_true:N \l__letgut_tmpa_bool
-        \clist_map_break:
-      }
-    }
-    \bool_if:NTF \l__letgut_tmpa_bool {
-      \marginpar{
-        \hspace*{\c__letgut_bookreview_frontcover_margin_sep_dim}
-        % \raggedleft
-        \raisebox{-\totalheight}{
-          \fbox{
-            \includegraphics*[width=-\c__letgut_title_hoffset_dim]{
-              \l__letgut_bookreview_frontcover_tl
-            }
-          }
+  \file_if_exist:nT{\l__letgut_bookreview_frontcover_tl##1}{
+    \bool_set_true:N \l__letgut_tmpa_bool
+    \clist_map_break:
+  }
+}
+\bool_if:NTF \l__letgut_tmpa_bool {
+  \marginpar{
+    \hspace*{\c__letgut_bookreview_frontcover_margin_sep_dim}
+    % \raggedleft
+    \raisebox{-\totalheight}{
+      \fbox{
+        \includegraphics*[width=-\c__letgut_title_hoffset_dim]{
+          \l__letgut_bookreview_frontcover_tl
         }
       }
-    }{
-      \msg_error:nnVV
-      {letgut}
-      {frontcover-file-not-found}
-      {\g__letgut_bookreview_title_tl}
-      {\l__letgut_bookreview_frontcover_tl}
     }
   }
-  \noindent
-  \textsf{\fullcite{\g__letgut_bookreview_bibkey_tl}}
-  \tl_if_empty:NF \g__letgut_bookreview_price_tl{
-    .\c_space_tl\g__letgut_bookreview_price_tl\c_space_tl €
-  }
-  \par
 }{
+  \msg_error:nnVV
+  {letgut}
+  {frontcover-file-not-found}
+  {\g__letgut_bookreview_title_tl}
+  {\l__letgut_bookreview_frontcover_tl}
+}
+}
+\noindent
+\textsf{\fullcite{\g__letgut_bookreview_bibkey_tl}}
+\tl_if_empty:NF \g__letgut_bookreview_price_tl{
+  .\c_space_tl\g__letgut_bookreview_price_tl\c_space_tl €
+}
+\par
+}{
   \exp_args:NV \author{\g__letgut_bookreview_reviewer_tl}
   \bool_if:NT \g__letgut_included_files_attached_bool {
-    \seq_map_inline:Nn \g__letgut_added_bib_resources_seq {\seq_gput_right:Nn \g__letgut_included_files_seq {##1}}
+    \seq_map_inline:Nn \g__letgut_added_bib_resources_seq {
+      \seq_gput_right:Nn \g__letgut_included_files_seq {
+        \attachfile[
+          description={
+            Fichier~ bibliographique~ utilisé~ dans~ le~
+            présent~ article~ (fichier~ `\tl_to_str:n{##1}`)
+          },
+          mimetype=application/x-bib
+        ]
+        {\tl_to_str:n{##1}}
+      }
+    }
   }
 }
 \DeclareRobustCommand*\LKey[1]{%
@@ -2116,28 +2138,40 @@
 \RenewDocumentCommand {\includegraphics} {s O{} m } {
   \__letgut_includegraphics:nnn {#1} {#2} {#3}
 }
-\NewCommandCopy {\__letgut_orig_addbibresource} {\addbibresource}
-\cs_new_protected:Npn \__letgut_addbibresource:nnn #1 #2 #3
+\cs_new:Nn \__letgut_extract_file_for:nn
 {
-  \file_if_exist:nT {#3} {
-    \IfBooleanF {#1}{
-      \seq_gput_left:Nn \g__letgut_added_bib_resources_seq {
-        \attachfile[
-        description={
-          Source~ du~ fichier~ bibliographique~ utilisé~
-          dans~ le~ présent~ article~ (fichier~ `#3`)
-        },
-        mimetype=application/x-bibtex
-        ]%
-        {#3}%
+  \seq_clear:N \g__letgut_added_bib_resources_seq
+  \regex_extract_all:nnNT
+  {
+    \c{ #1 } \[?.*?\]?        \{ ( .*? ) \}
+  }
+  {
+    #2
+  }
+  \g__letgut_added_bib_resources_seq
+  {
+    \seq_map_indexed_inline:Nn \g__letgut_added_bib_resources_seq {
+      \int_if_odd:nT {##1}
+      {
+        \seq_gset_item:Nnn \g__letgut_added_bib_resources_seq {##1} {}
       }
     }
+    \seq_gremove_duplicates:N \g__letgut_added_bib_resources_seq
+    \seq_gpop:NN \g__letgut_added_bib_resources_seq \l_tmpa_tl
   }
+}
+
+\NewCommandCopy {\__letgut_orig_addbibresource} {\addbibresource}
+\cs_new_protected:Npn \__letgut_addbibresource:nnn #1 #2 #3
+{
   \__letgut_orig_addbibresource[#2]{#3}
 }
 \RenewDocumentCommand {\addbibresource} { s O{} m } {
   \__letgut_addbibresource:nnn {#1} {#2} {#3}
 }
+\AddToHookWithArguments{cmd/sa at gobble/before}{
+  \__letgut_extract_file_for:nn { addbibresource }{ #1 }
+}
 \bool_if:NT \g__letgut_included_files_attached_bool {
   \tl_const:Nn \c__letgut_acronyms_file_attached_tl {
     \attachfile[
@@ -2282,7 +2316,7 @@
 }
 \cs_new_protected:Npn \__letgut_title_code_result_box:n #1
 {
-  Exemple~ \thetcbcounter
+  Exemple\nobreakspace\thetcbcounter
   \tl_if_empty:NF {#1} { \hypersetup{hidelinks} \c_space_tl :~#1 }
 }
 \cs_new_protected:Nn \__letgut_on_callout_page:nn

Modified: trunk/Master/texmf-dist/tex/lualatex/letgut/letgut.dbx
===================================================================
--- trunk/Master/texmf-dist/tex/lualatex/letgut/letgut.dbx	2024-10-23 06:54:27 UTC (rev 72628)
+++ trunk/Master/texmf-dist/tex/lualatex/letgut/letgut.dbx	2024-10-23 20:21:42 UTC (rev 72629)
@@ -1,4 +1,4 @@
-\ProvidesFile{letgut.dbx}[2024-10-07 v0.9.10 letgut data model macros]
+\ProvidesFile{letgut.dbx}[2024-10-23 v0.9.11 letgut data model macros]
 \DeclareBibliographyDriver{bookreview}{%
   \usebibmacro{bibindex}%
   \usebibmacro{begentry}%

Modified: trunk/Master/texmf-dist/tex/lualatex/letgut/letgut.lbx
===================================================================
--- trunk/Master/texmf-dist/tex/lualatex/letgut/letgut.lbx	2024-10-23 06:54:27 UTC (rev 72628)
+++ trunk/Master/texmf-dist/tex/lualatex/letgut/letgut.lbx	2024-10-23 20:21:42 UTC (rev 72629)
@@ -1,4 +1,4 @@
-\ProvidesFile{letgut.lbx}[2024-10-07 v0.9.10 letgut localization]
+\ProvidesFile{letgut.lbx}[2024-10-23 v0.9.11 letgut localization]
 \InheritBibliographyExtras{french}
 \DeclareBibliographyStrings{
   inherit          = {french},



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