texlive[70258] branches/branch2023.final/Master/texmf-dist: letgut

commits+karl at tug.org commits+karl at tug.org
Thu Feb 29 22:22:20 CET 2024


Revision: 70258
          https://tug.org/svn/texlive?view=revision&revision=70258
Author:   karl
Date:     2024-02-29 22:22:20 +0100 (Thu, 29 Feb 2024)
Log Message:
-----------
letgut (branch) (29feb24)

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

Modified: branches/branch2023.final/Master/texmf-dist/doc/lualatex/letgut/CHANGELOG.md
===================================================================
--- branches/branch2023.final/Master/texmf-dist/doc/lualatex/letgut/CHANGELOG.md	2024-02-29 21:22:09 UTC (rev 70257)
+++ branches/branch2023.final/Master/texmf-dist/doc/lualatex/letgut/CHANGELOG.md	2024-02-29 21:22:20 UTC (rev 70258)
@@ -7,6 +7,15 @@
 
 ## [Unreleased]
 
+## [0.9.8] - 2024-02-29
+
+### Changed
+- Drop use of l3keys2e, as advised.
+- Announcements possibly neither in the ToC nor in the bookmarks.
+
+### Fixed
+Floats not outside the article they belong to.
+
 ## [0.9.7] - 2023-05-21
 
 ### Changed

Modified: branches/branch2023.final/Master/texmf-dist/doc/lualatex/letgut/README.md
===================================================================
--- branches/branch2023.final/Master/texmf-dist/doc/lualatex/letgut/README.md	2024-02-29 21:22:09 UTC (rev 70257)
+++ branches/branch2023.final/Master/texmf-dist/doc/lualatex/letgut/README.md	2024-02-29 21:22:20 UTC (rev 70258)
@@ -8,7 +8,7 @@
 
 Release
 -------
-2023-05-21 v0.9.7
+2024-02-29 v0.9.8
 
 Development
 -----------

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

Modified: branches/branch2023.final/Master/texmf-dist/doc/lualatex/letgut/letgut-banner-code.tex
===================================================================
--- branches/branch2023.final/Master/texmf-dist/doc/lualatex/letgut/letgut-banner-code.tex	2024-02-29 21:22:09 UTC (rev 70257)
+++ branches/branch2023.final/Master/texmf-dist/doc/lualatex/letgut/letgut-banner-code.tex	2024-02-29 21:22:20 UTC (rev 70258)
@@ -1,4 +1,4 @@
-% Created 2023-05-21 dim. 17:49
+% Created 2024-02-29 Thu 16:21
 % Intended LaTeX compiler: lualatex
 \documentclass{letgut}
                                 \setmainfont{KpRoman}
@@ -15,18 +15,18 @@
 \section{Readme file}
 \label{sec:org4c9ba67}
 
-\begin{verbatim}
+\begin{lstlisting}
 -------:| ---------------------------------------------------
  letgut:| Package for the banner of the newsletter
-	| "La Lettre de GUTenberg"
+        | "La Lettre de GUTenberg"
  Author:| Association GUTenberg
  E-mail:| secretariat at gutenberg.eu.org
 License:| Released under the LaTeX Project Public License
-	|  v1.3c or later
+        |  v1.3c or later
     See:| http://www.latex-project.org/lppl.txt
 
 Copyright (C) 1994-2022 by Association GUTenberg
-		  <secretariat at gutenberg.eu.org>
+                  <secretariat at gutenberg.eu.org>
 
 This work may be distributed and/or modified under the
 conditions of the LaTeX Project Public License (LPPL), either
@@ -37,7 +37,7 @@
 
 This work is "maintained" (as per LPPL maintenance status)
 by Association GUTenberg.
-\end{verbatim}
+\end{lstlisting}
 
 \section{Implementation}
 \label{sec:org4c5e60d}
@@ -45,13 +45,13 @@
 \subsection{Identification}
 \label{sec:org09b0cd2}
 
-\begin{verbatim}
+\begin{lstlisting}
 This is file `letgut-banner.sty,
 generated with the Emacs Org-babel utility.
 
 The original source file is letgut-banner.org
 %% 
-\end{verbatim}
+\end{lstlisting}
 
 These document classes can only be used with \LaTeXe, so we make
 sure that an appropriate message is displayed when another \TeX{}
@@ -792,4 +792,4 @@
 
 \section{Example file (\texttt{letgut-banner-example.tex})}
 \label{sec:orgaf6d8ec}
-\end{document}
\ No newline at end of file
+\end{document}

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

Modified: branches/branch2023.final/Master/texmf-dist/doc/lualatex/letgut/letgut-code.tex
===================================================================
--- branches/branch2023.final/Master/texmf-dist/doc/lualatex/letgut/letgut-code.tex	2024-02-29 21:22:09 UTC (rev 70257)
+++ branches/branch2023.final/Master/texmf-dist/doc/lualatex/letgut/letgut-code.tex	2024-02-29 21:22:20 UTC (rev 70258)
@@ -1,4 +1,4 @@
-% Created 2023-05-21 dim. 17:49
+% Created 2024-02-29 Thu 16:21
 % Intended LaTeX compiler: lualatex
 \documentclass{letgut}
                                 \setmainfont{KpRoman}
@@ -90,8 +90,8 @@
 
 \begin{lstlisting}
 \ProvidesExplClass{letgut}
-{2023-05-21}
-{0.9.7}
+{2024-02-29}
+{0.9.8}
 {
   Class for the newsletter “The GUTenberg Letter”
 }
@@ -520,13 +520,6 @@
 
 \subsection{Class options}
 \label{ImplementationClassoptions-4meg55h0jlj0}
-In order to provide class options, we load the \package{l3keys2e} which provides
-\LaTeXe{} option processing using \LaTeX3 keys:
-
-\begin{lstlisting}
-\RequirePackage{l3keys2e}
-\end{lstlisting}
-
 We define the 2 load time options for the target audience:
 
 \begin{itemize}
@@ -1005,7 +998,7 @@
     \__letgut_unselectable:n {
       \put(0.5\paperwidth,-0.5\paperheight)
       {
-	\Huge
+        \Huge
 \end{lstlisting}
 Currently, we can't use \package{l3color}'s \lstinline+\color_fill:n+ (see
 \url{https://github.com/ho-tex/luacolor/issues/4\#issuecomment-848774260})
@@ -1013,14 +1006,14 @@
 \begin{lstlisting}
 % \color_fill:n {black!10}
 \color{black!10}
-\hbox_set:Nn \l_tmpa_box {
+\hbox_set:Nn \l__letgut_tmpa_box {
   \fontsize{0.25\paperwidth}{0.3\paperwidth}
   \selectfont
   \c__letgut_draftwatermark_text_tl
 }
-\hbox_set:Nn \l_tmpb_box {
+\hbox_set:Nn \l__letgut_tmpb_box {
   \hbox_overlap_center:n {
-    \box_use:N \l_tmpa_box
+    \box_use:N \l__letgut_tmpa_box
   }
 }
 \end{lstlisting}
@@ -1028,7 +1021,7 @@
 diagonal of the page (angle \(=\arctan(\text{paper height}/\text{paper
     width})\)).
 \begin{lstlisting}
-\box_rotate:Nn \l_tmpb_box {
+\box_rotate:Nn \l__letgut_tmpb_box {
   \fp_eval:n {
     atand (
     \dim_to_fp:n {\paperheight}
@@ -1037,7 +1030,7 @@
     )
   }
 }
-\box_use:N \l_tmpb_box
+\box_use:N \l__letgut_tmpb_box
 }
 }
 }
@@ -1090,7 +1083,7 @@
 \end{itemize}
 
 \begin{lstlisting}
-\keys_define:nn { letgut }
+\DeclareKeys[ letgut ]
 {
   , for-readers  .bool_gset:N = \g__letgut_for_readers_bool
   , for-readers .initial:n = { true }
@@ -1118,12 +1111,12 @@
     \AddToHook{begindocument/before}
     {
       \bool_if:NTF \g__letgut_paper_bool {
-	\msg_warning:nnn{letgut}{
-	  pagecolor~inoperative~with~paper~option
-	}{#1}
+        \msg_warning:nnn{letgut}{
+          pagecolor~inoperative~with~paper~option
+        }{#1}
       }{
-	\clist_gset:Nn \g__letgut_pagecolor_clist { #1 }
-	\pagecolor[rgb]{#1}
+        \clist_gset:Nn \g__letgut_pagecolor_clist { #1 }
+        \pagecolor[rgb]{#1}
       }
     }
   }
@@ -1145,14 +1138,14 @@
     \AddToHook{begindocument/before}{
       \bool_lazy_and:nnTF {\g__letgut_for_readers_bool} {!\g__letgut_paper_bool}
       {
-	\bool_gset_false:N \g__letgut_included_files_attached_bool
+        \bool_gset_false:N \g__letgut_included_files_attached_bool
       }{
-	\bool_gset_true:N \g__letgut_included_files_attached_bool
+        \bool_gset_true:N \g__letgut_included_files_attached_bool
       }
     }
   }
 }
-\ProcessKeysOptions { letgut }
+\ProcessKeyOptions[ letgut ]
 \AddToHook{begindocument/before}{
   \bool_lazy_and:nnTF {\g__letgut_for_readers_bool} {!\g__letgut_paper_bool}
   {
@@ -1288,7 +1281,7 @@
 \end{lstlisting}
 
 \begin{lstlisting}
-	>{\bfseries}X|
+        >{\bfseries}X|
       },
       vlines,
       hlines,
@@ -1330,7 +1323,9 @@
   \tl_if_empty:NTF {#1}{
     \phantomsection\addcontentsline{toc}{title}{#2}
   }{
-    \phantomsection\addcontentsline{toc}{title}{#1}
+    \tl_if_empty:NF {#2}{
+      \phantomsection\addcontentsline{toc}{title}{#1}
+    }
   }
 }
 \NewTColorBox{announcement}{ O{} m }
@@ -1342,7 +1337,8 @@
   overlay~ unbroken~ and~ first ={
     \node[color=\l__letgut_toc_color_announce_tl]~ at~ ([yshift=8pt]title.south)
     {\pgfornament[width=0.4\linewidth]{88}};
-    \node[color=white,anchor=north~ west]~ at~ (frame.north~ west) {\huge\bfseries\aldineright{}};
+    \node[color=white,anchor=north~ west]~ at~ (frame.north~ west)
+    {\huge\bfseries\aldineright{}};
   },
   #1,
   coltitle=\l__letgut_toc_color_announce_tl,
@@ -1367,7 +1363,7 @@
     title~ addon/.store~ in=\l__letgut_title_addon_tl,
     after~ title={
       \tl_if_empty:NF {\l__letgut_title_addon_tl}{
-	\c_space_tl(\emph{\l__letgut_title_addon_tl})
+        \c_space_tl(\emph{\l__letgut_title_addon_tl})
       }
     },
     float = bh,
@@ -1408,28 +1404,28 @@
       halign=justify,
       before~ title={\lefthand{}~Solution~ du~ rébus\c_space_tl},
       title={
-	\IfBooleanTF{#1}{
-	  \vpageref[ci-dessus]{rebus@#2}
-	}{
-	  de~la~\lettre{}\c_space_tl
-	  \IfValueTF{#3}{
-	    #3
-	  }{
-	    précédente
-	  }
-	}
+        \IfBooleanTF{#1}{
+          \vpageref[ci-dessus]{rebus@#2}
+        }{
+          de~la~\lettre{}\c_space_tl
+          \IfValueTF{#3}{
+            #3
+          }{
+            précédente
+          }
+        }
       },
       phantomlabel={
-	\IfBooleanT{#1}{
-	  solution@#2
-	}
+        \IfBooleanT{#1}{
+          solution@#2
+        }
       },
       #4
       ]
       \IfBooleanTF{#1}{
-	\file_if_exist_input:n {rebus-#2.tex}
+        \file_if_exist_input:n {rebus-#2.tex}
       }{
-	#2
+        #2
       }
     \end{tcolorbox}
   }{
@@ -1514,9 +1510,9 @@
   {
     \begin{picture}(0,0)
       \put(-2cm,-25.275cm){
-	\includegraphics*[scale=0.96]{
-	  \c__letgut_banner_file_tl.pdf
-	}
+        \includegraphics*[scale=0.96]{
+          \c__letgut_banner_file_tl.pdf
+        }
       }
     \end{picture}
   }
@@ -1604,7 +1600,7 @@
 \begin{lstlisting}
       > \c_zero_int
       {
-	\c_space_tl~ \int_use:N \g__letgut_number_int
+        \c_space_tl~ \int_use:N \g__letgut_number_int
       }
     },
     pdfauthor={
@@ -1725,17 +1721,17 @@
     \AddToHookNext{shipout/background}
     {
       \put(1in,-1in){
-	\put(
-	\oddsidemargin,
-	- \topmargin
-	- \headheight
-	- \headsep
-	- \textheight
-	+ \c__letgut_first_page_shrink_dim
-	+ .5\baselineskip
-	){
-	  \box_use:N \g__letgut_membership_reminder_box
-	}
+        \put(
+        \oddsidemargin,
+        - \topmargin
+        - \headheight
+        - \headsep
+        - \textheight
+        + \c__letgut_first_page_shrink_dim
+        + .5\baselineskip
+        ){
+          \box_use:N \g__letgut_membership_reminder_box
+        }
       }
     }
   }
@@ -1769,16 +1765,16 @@
   }{
     \file_if_exist:nTF {../\c__letgut_informations_gutenberg_file_tl}{
       \inputarticle*{
-	../\c__letgut_informations_gutenberg_file_tl
+        ../\c__letgut_informations_gutenberg_file_tl
       }
     }{
       \file_if_exist:nTF {\c__letgut_informations_gutenberg_file_tl}{
-	\inputarticle*{
-	  \c__letgut_informations_gutenberg_file_tl
-	}
+        \inputarticle*{
+          \c__letgut_informations_gutenberg_file_tl
+        }
       }{
-	\msg_warning:nn{letgut}{Informations~file~missing}
-	\alertbox{ \c__letgut_missing_infomations_tl }
+        \msg_warning:nn{letgut}{Informations~file~missing}
+        \alertbox{ \c__letgut_missing_infomations_tl }
       }
     }
   }
@@ -2072,17 +2068,17 @@
 \begin{lstlisting}
 \cs_new_protected:Npn \__letgut_titlecase_name:n #1
 {
-  \seq_set_split:Nnn \l_tmpa_seq { - }  {#1}
-  \seq_set_map_x:NNn \l_tmpb_seq \l_tmpa_seq {
+  \seq_set_split:Nnn \l__letgut_tmpa_seq { - }  {#1}
+  \seq_set_map_x:NNn \l__letgut_tmpb_seq \l__letgut_tmpa_seq {
     \text_titlecase_first:n{ \text_lowercase:n {##1} }
   }
-  \tl_set:Nx \l_tmpa_tl {\seq_use:Nn \l_tmpb_seq {-}}
-  \seq_clear:N \l_tmpa_seq
-  \seq_set_split:NnV \l_tmpa_seq { ~ }  { \l_tmpa_tl }
-  \seq_set_map_x:NNn \l_tmpb_seq \l_tmpa_seq {
+  \tl_set:Nx \l__letgut_tmpa_tl {\seq_use:Nn \l__letgut_tmpb_seq {-}}
+  \seq_clear:N \l__letgut_tmpa_seq
+  \seq_set_split:NnV \l__letgut_tmpa_seq { ~ }  { \l__letgut_tmpa_tl }
+  \seq_set_map_x:NNn \l__letgut_tmpb_seq \l__letgut_tmpa_seq {
     \text_titlecase_first:n{##1}
   }
-  \seq_use:Nn \l_tmpb_seq {~}
+  \seq_use:Nn \l__letgut_tmpb_seq {~}
 }
 \end{lstlisting}
 
@@ -2112,9 +2108,9 @@
 \cs_new_protected:Npn \__letgut_process_list:nn #1 #2
 {
   \seq_clear:N \l__letgut_items_seq
-  \seq_set_split:Nnn \l_tmpa_seq {~and~} {#2}
+  \seq_set_split:Nnn \l__letgut_tmpa_seq {~and~} {#2}
   \IfBooleanT{#1}{
-    \seq_sort:Nn \l_tmpa_seq
+    \seq_sort:Nn \l__letgut_tmpa_seq
     {
       \str_compare:nNnTF { ##1 } > { ##2 }
       { \sort_return_swapped: }
@@ -2121,27 +2117,27 @@
       { \sort_return_same: }
     }
   }
-  \seq_map_inline:Nn \l_tmpa_seq {
-    \seq_set_from_clist:Nn \l_tmpb_seq {##1}
-    \seq_pop_left:NN \l_tmpb_seq \l_letgut_last_name_tl
-    \seq_pop_left:NN \l_tmpb_seq \l_letgut_first_name_tl
-    \seq_pop_left:NN \l_tmpb_seq \l_letgut_title_tl
+  \seq_map_inline:Nn \l__letgut_tmpa_seq {
+    \seq_set_from_clist:Nn \l__letgut_tmpb_seq {##1}
+    \seq_pop_left:NN \l__letgut_tmpb_seq \l_letgut_last_name_tl
+    \seq_pop_left:NN \l__letgut_tmpb_seq \l_letgut_first_name_tl
+    \seq_pop_left:NN \l__letgut_tmpb_seq \l_letgut_title_tl
     \seq_put_right:Nx \l__letgut_items_seq {
       \quark_if_no_value:NTF \l_letgut_first_name_tl {
-	\__letgut_person_last_name:n {
-	  \l_letgut_last_name_tl
-	}
+        \__letgut_person_last_name:n {
+          \l_letgut_last_name_tl
+        }
       }{
-	\quark_if_no_value:NTF \l_letgut_title_tl {
-	  \__letgut_person_first_name_last_name:nn
-	  {\l_letgut_first_name_tl}
-	  {\l_letgut_last_name_tl}
-	}{
-	  \__letgut_person_first_name_last_name_title:nnn
-	  {\l_letgut_first_name_tl}
-	  {\l_letgut_last_name_tl}
-	  {\l_letgut_title_tl}
-	}
+        \quark_if_no_value:NTF \l_letgut_title_tl {
+          \__letgut_person_first_name_last_name:nn
+          {\l_letgut_first_name_tl}
+          {\l_letgut_last_name_tl}
+        }{
+          \__letgut_person_first_name_last_name_title:nnn
+          {\l_letgut_first_name_tl}
+          {\l_letgut_last_name_tl}
+          {\l_letgut_title_tl}
+        }
       }
     }
   }
@@ -2256,13 +2252,13 @@
 font switch (\lstinline+\ttfamily+) to all of it except to the spaces.
 
 \begin{lstlisting}
-  \seq_set_split:Nnn \l_tmpa_seq { ~ } { #2 }
-  \seq_set_map:NNn \l_tmpb_seq \l_tmpa_seq {{\l__letgut_softwares_font_switch_tl ##1}}
+  \seq_set_split:Nnn \l__letgut_tmpa_seq { ~ } { #2 }
+  \seq_set_map:NNn \l__letgut_tmpb_seq \l__letgut_tmpa_seq {{\l__letgut_softwares_font_switch_tl ##1}}
   \tl_if_empty:nTF {#1}
   {
-    \seq_use:Nn \l_tmpb_seq { ~ }
+    \seq_use:Nn \l__letgut_tmpb_seq { ~ }
   }{
-    \href{#1}{ \seq_use:Nn \l_tmpb_seq { ~ } }
+    \href{#1}{ \seq_use:Nn \l__letgut_tmpb_seq { ~ } }
   }
 }
 \cs_new_protected:Nn \__letgut_file:n
@@ -2395,14 +2391,14 @@
   \tl_if_empty:nTF {#1}{
     \int_use:N \g__letgut_number_int
   }{
-    \tl_set:Nx \l_tmpa_tl {\tl_head:n { #1 }}
-    \tl_set:Nn \l_tmpb_tl { #1 }
-    \tl_case:NnF \l_tmpa_tl {
-      {\c__letgut_plus_tl}  {\int_eval:n {\g__letgut_number_int\l_tmpa_tl\tl_range:Nnn \l_tmpb_tl { 2 } { -1 }}}
-      {\c__letgut_minus_tl} {\int_eval:n {\g__letgut_number_int\l_tmpa_tl\tl_range:Nnn \l_tmpb_tl { 2 } { -1 }}}
+    \tl_set:Nx \l__letgut_tmpa_tl {\tl_head:n { #1 }}
+    \tl_set:Nn \l__letgut_tmpb_tl { #1 }
+    \tl_case:NnF \l__letgut_tmpa_tl {
+      {\c__letgut_plus_tl}  {\int_eval:n {\g__letgut_number_int\l__letgut_tmpa_tl\tl_range:Nnn \l__letgut_tmpb_tl { 2 } { -1 }}}
+      {\c__letgut_minus_tl} {\int_eval:n {\g__letgut_number_int\l__letgut_tmpa_tl\tl_range:Nnn \l__letgut_tmpb_tl { 2 } { -1 }}}
       {\c__letgut_dot_tl}   {\int_use:N \g__letgut_number_int}
     }
-    {\l_tmpb_tl}
+    {\l__letgut_tmpb_tl}
   }
 }
 \NewDocumentCommand { \lettrenumber } { s O{} } {
@@ -2414,7 +2410,7 @@
 \end{lstlisting}
 
 The “\lettre” and “\lettregut” expressions are treated separately since they are
-subject to variations, depending how they are used. The corresponding commands
+subject to variations, depending on how they are used. The corresponding commands
 \lstinline+\lettre+ and \lstinline+\lettregut+ used without star nor optional argument typeset
 resp. “\lettre” and “\lettregut”:
 
@@ -2448,7 +2444,7 @@
   \IfBooleanTF{#1}{
     \__letgut_lettre:nnn { #2 } { } {
       \tl_if_empty:nF {#2}{
-	\c_space_tl\no
+        \c_space_tl\no
       }
     }
   }{
@@ -2568,25 +2564,25 @@
   \IfValueTF {#4}{
     \tl_if_empty:nTF {#4}{
       \exp_args:Nx \DeclareAcronym{\text_lowercase:n {#2}}{
-	short = \text_lowercase:n {#2},
-	sort= #2,
-	long = {\emph{#3}},
-	extra-long = {anglais},
-	pdfstring = #2,
-	short-acc = #2,
-	#1
+        short = \text_lowercase:n {#2},
+        sort= #2,
+        long = {\emph{#3}},
+        extra-long = {anglais},
+        pdfstring = #2,
+        short-acc = #2,
+        #1
       }
     }{
       \exp_args:Nx \DeclareAcronym{\text_lowercase:n {#2}}{
-	short = \text_lowercase:n {#2},
-	sort= #2,
-	long = {#4},
-	foreign = {#3},
-	foreign-babel = english,
-	foreign-locale = anglais,
-	pdfstring = #2,
-	short-acc = #2,
-	#1
+        short = \text_lowercase:n {#2},
+        sort= #2,
+        long = {#4},
+        foreign = {#3},
+        foreign-babel = english,
+        foreign-locale = anglais,
+        pdfstring = #2,
+        short-acc = #2,
+        #1
       }
     }
   }{
@@ -2671,27 +2667,27 @@
 as “short (long)”. Otherwise, they are displayed as “short\footnote{long}”.
 \begin{lstlisting}
       \bool_if:NTF \l__letgut_in_footnote_bool {
-	\space
-	(
-	\acroifT {alt} { \acrotranslate {or} ~ \acrowrite {alt} ~ }
-	\acroifT {foreign} { \acrowrite {foreign} }
-	\acrowrite {long}
-	\acrogroupcite
-	)
+        \space
+        (
+        \acroifT {alt} { \acrotranslate {or} ~ \acrowrite {alt} ~ }
+        \acroifT {foreign} { \acrowrite {foreign} }
+        \acrowrite {long}
+        \acrogroupcite
+        )
       }{
-	\acfootnote
-	{
-	  \acroifT {alt} {
-	    \acrotranslate {or} ~ \acrowrite {alt} :~
-	  }
-	  \acroifT {foreign} { \acrowrite {foreign} }
-	  \acrowrite {long}
-	  \acroifT {extra-long} { ~ [\acrowrite {extra-long}] }
-	  \acroifT {extra-foreign} {
-	    \c_space_tl [\acrowrite {extra-foreign}]
-	  }
-	  \acrogroupcite
-	}
+        \acfootnote
+        {
+          \acroifT {alt} {
+            \acrotranslate {or} ~ \acrowrite {alt} :~
+          }
+          \acroifT {foreign} { \acrowrite {foreign} }
+          \acrowrite {long}
+          \acroifT {extra-long} { ~ [\acrowrite {extra-long}] }
+          \acroifT {extra-foreign} {
+            \c_space_tl [\acrowrite {extra-foreign}]
+          }
+          \acrogroupcite
+        }
       }
     }
   }
@@ -2702,13 +2698,13 @@
       \acronymsmapF{%
     \item[\acrowrite{short}\acroifT{alt}{/\acrowrite{alt}}]
       \acroifT{foreign}{
-	\acrowrite{foreign}\acroifT{extra}{, }
+        \acrowrite{foreign}\acroifT{extra}{, }
       }%
       \acroifT{extra}{\acrowrite{extra}}%
       \acroifanyT{foreign,extra}{\acspace (}%
       \acrowrite{list}%
       \acroifT {extra-foreign} {
-	, \c_space_tl \acrowrite {extra-foreign}
+        , \c_space_tl \acrowrite {extra-foreign}
       }
       \acroifanyT{foreign,extra}{)}%
       \acropagefill
@@ -2726,45 +2722,45 @@
   {
     \acro_if_foreign:nTF {#2}
       {
-	\acro_if_locale:nnTF {#1} {#2}
-	  {
-	    \__acro_foreign_language:en
-	      { \str_lowercase:e {
-		  \acro_property_get:nn {#1} {foreign-babel}
-		}
-	      }
-	      {#3}
-	    \bool_if:NTF \l__acro_list_bool
-	      { \bool_if:NT \l__acro_list_show_locale_bool }
-	      { \bool_if:NT \l__acro_show_locale_bool }
-	      {
-		{
-		  \l__acro_locale_format_tl
-		    {
-		      \acro_property_if_set:nnTF {#1} {
-			foreign-locale
-		      }
-			{
-			  \acspace
-			  [
-			  \acro_property_get:nn {#1} {
-			    foreign-locale
-			  }
-			  ]
-			}{
-			  \baselanguage
-			  {
-			    \acro_property_get:nn {#1} {
-			      foreign-babel
-			    }
-			  }
-			}
-		    }
-		}
-		:~
-	      }
-	  }
-	  {#3}
+        \acro_if_locale:nnTF {#1} {#2}
+          {
+            \__acro_foreign_language:en
+              { \str_lowercase:e {
+                  \acro_property_get:nn {#1} {foreign-babel}
+                }
+              }
+              {#3}
+            \bool_if:NTF \l__acro_list_bool
+              { \bool_if:NT \l__acro_list_show_locale_bool }
+              { \bool_if:NT \l__acro_show_locale_bool }
+              {
+                {
+                  \l__acro_locale_format_tl
+                    {
+                      \acro_property_if_set:nnTF {#1} {
+                        foreign-locale
+                      }
+                        {
+                          \acspace
+                          [
+                          \acro_property_get:nn {#1} {
+                            foreign-locale
+                          }
+                          ]
+                        }{
+                          \baselanguage
+                          {
+                            \acro_property_get:nn {#1} {
+                              foreign-babel
+                            }
+                          }
+                        }
+                    }
+                }
+                :~
+              }
+          }
+          {#3}
       }
       {#3}
   }
@@ -2855,21 +2851,21 @@
 \begin{lstlisting}
     \clist_map_inline:Nn \Gin at extensions {
       \file_if_exist:nT{\g__letgut_bookreview_frontcover_tl##1}{
-	\bool_set_true:N \l_tmpa_bool
-	\clist_map_break:
+        \bool_set_true:N \l__letgut_tmpa_bool
+        \clist_map_break:
       }
     }
-    \bool_if:NTF \l_tmpa_bool {
+    \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]{
-	      \g__letgut_bookreview_frontcover_tl
-	    }
-	  }
-	}
+        \hspace*{\c__letgut_bookreview_frontcover_margin_sep_dim}
+        % \raggedleft
+        \raisebox{-\totalheight}{
+          \fbox{
+            \includegraphics[width=-\c__letgut_title_hoffset_dim]{
+              \g__letgut_bookreview_frontcover_tl
+            }
+          }
+        }
       }
     }{
       \msg_error:nnVV
@@ -3031,10 +3027,10 @@
   \quark_if_no_value:NF \tmpa_tl {
     \tl_if_eq:NnF \tmpa_tl {0} {
       \seq_gput_left:Nn \g__letgut_included_files_seq {
-	\attachfile[
-	description={Source~ nécessaire~ (fichier~ `#1.tex`)},
-	mimetype=application/x-tex]
-	{#1.tex}
+        \attachfile[
+        description={Source~ nécessaire~ (fichier~ `#1.tex`)},
+        mimetype=application/x-tex]
+        {#1.tex}
       }
     }
   }
@@ -3044,6 +3040,7 @@
 \begin{lstlisting}
 \cs_new_protected:Npn \__letgut_input_article:nn #1 #2
 {
+  \FloatBarrier
   \lstset{ style=__letgut_reset_listings_styles }
   \acresetall%
   \input{#2}%
@@ -3050,26 +3047,26 @@
   \bool_if:NT \g__letgut_included_files_attached_bool {
     \IfBooleanF {#1}{
       \__letgut_attach_non_empty_existing_file:n {
-	\c__letgut_local_config_file_tl
+        \c__letgut_local_config_file_tl
       }
       \__letgut_attach_non_empty_existing_file:n {
-	\c__letgut_pre_documentclass_file_tl
+        \c__letgut_pre_documentclass_file_tl
       }
       \seq_gput_left:Nn \g__letgut_included_files_seq {
-	\attachfile[
-	description={Source~ du~ présent~ article~ (fichier~ `#2.tex`)},
-	mimetype=application/x-tex]
-	{#2.tex}
+        \attachfile[
+        description={Source~ du~ présent~ article~ (fichier~ `#2.tex`)},
+        mimetype=application/x-tex]
+        {#2.tex}
       }
       \bool_if:NT \g__letgut_acronyms_file_attached_bool {
-	\seq_gput_right:No \g__letgut_included_files_seq {
-	  \c__letgut_acronyms_file_attached_tl
-	}
+        \seq_gput_right:No \g__letgut_included_files_seq {
+          \c__letgut_acronyms_file_attached_tl
+        }
       }
       \bool_if:NT \g__letgut_lstlanguage_file_attached_bool {
-	\seq_gput_right:No \g__letgut_included_files_seq {
-	  \c__letgut_lstlanguage_file_attached_tl
-	}
+        \seq_gput_right:No \g__letgut_included_files_seq {
+          \c__letgut_lstlanguage_file_attached_tl
+        }
       }
       \seq_remove_duplicates:N \g__letgut_included_files_seq
       \marginpar{\seq_use:Nn \g__letgut_included_files_seq { } }
@@ -3091,50 +3088,50 @@
 
 \begin{lstlisting}
 \NewCommandCopy {\__letgut_orig_includegraphics} {\includegraphics}
-\clist_set:Nx \l_tmpa_clist {\Gin at extensions}
+\clist_set:Nx \l__letgut_tmpa_clist {\Gin at extensions}
 \cs_new_protected:Npn \__letgut_includegraphics:nnn #1 #2 #3
 {
   \file_if_exist:nTF {#3} {
     \bool_if:NT \g__letgut_included_files_attached_bool {
       \IfBooleanF {#1}{
-	\seq_gput_left:Nn \g__letgut_included_files_seq {
-	  \attachfile[
-	  description={
-	    Fichier~ image~ inclus~ dans~ le~
-	    présent~ article~ (fichier~ `#3`)
-	  },
-	  mimetype=image
-	  ]
-	  {#3}
-	}
+        \seq_gput_left:Nn \g__letgut_included_files_seq {
+          \attachfile[
+          description={
+            Fichier~ image~ inclus~ dans~ le~
+            présent~ article~ (fichier~ `#3`)
+          },
+          mimetype=image
+          ]
+          {#3}
+        }
       }
     }
     \__letgut_orig_includegraphics[#2]{#3}
   }{
-    \bool_gset_false:N \g_tmpa_bool
-    \clist_map_inline:Nn \l_tmpa_clist {%
+    \bool_gset_false:N \g__letgut_tmpa_bool
+    \clist_map_inline:Nn \l__letgut_tmpa_clist {%
       \file_if_exist:nTF {#3##1} {
-	\clist_map_break:n {
-	  \bool_if:NT \g__letgut_included_files_attached_bool {
-	    \IfBooleanF {#1}{
-	      \seq_gput_left:Nn \g__letgut_included_files_seq {
-		\attachfile[
-		description={Fichier~ image~ inclus~ dans~ le~ présent~ article~ (fichier~ `#3##1`)},
-		mimetype=image/##1
-		]
-		{#3##1}
-	      }
-	    }
-	  }
-	  \__letgut_orig_includegraphics[#2]{#3}
-	  \bool_gset_true:N \g_tmpa_bool
-	}
+        \clist_map_break:n {
+          \bool_if:NT \g__letgut_included_files_attached_bool {
+            \IfBooleanF {#1}{
+              \seq_gput_left:Nn \g__letgut_included_files_seq {
+                \attachfile[
+                description={Fichier~ image~ inclus~ dans~ le~ présent~ article~ (fichier~ `#3##1`)},
+                mimetype=image/##1
+                ]
+                {#3##1}
+              }
+            }
+          }
+          \__letgut_orig_includegraphics[#2]{#3}
+          \bool_gset_true:N \g__letgut_tmpa_bool
+        }
       }
     }
-    \bool_if:NF \g_tmpa_bool {
+    \bool_if:NF \g__letgut_tmpa_bool {
       \@latex at error{File~ `#3'~ not~ found}%
       {I~ could~ not~ locate~ the~ file~ with~ any~ of~ these~ extensions:^^J%
-	\clist_use:Nn \l_tmpa_clist { ~ }^^J\@ehc}%
+        \clist_use:Nn \l__letgut_tmpa_clist { ~ }^^J\@ehc}%
     }
   }
 }
@@ -3155,14 +3152,14 @@
   \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}%
+        \attachfile[
+        description={
+          Source~ du~ fichier~ bibliographique~ utilisé~
+          dans~ le~ présent~ article~ (fichier~ `#3`)
+        },
+        mimetype=application/x-bibtex
+        ]%
+        {#3}%
       }
     }
   }
@@ -3431,9 +3428,9 @@
 }
 \cs_new_protected:Nn \__letgut_on_callout_page:nn
 {
-  \tl_set:Nn \l_tmpa_int {\getpagerefnumber{#1}}
-  \tl_set:Nn \l_tmpb_int {\thepage}
-  \int_compare:nNnF {\l_tmpa_int} = {\l_tmpb_int}
+  \tl_set:Nn \l__letgut_tmpa_int {\getpagerefnumber{#1}}
+  \tl_set:Nn \l__letgut_tmpb_int {\thepage}
+  \int_compare:nNnF {\l__letgut_tmpa_int} = {\l__letgut_tmpb_int}
   {#2}
 }
 \end{lstlisting}
@@ -3502,17 +3499,17 @@
   \pgfkeysalso{floatplacement=ht}%
   \pgfkeysalso{float}%
   \pgfkeysalso{label={\g__letgut_label_ltx_example_str}}%
-  \tl_set:Nx \l_tmpa_tl {
+  \tl_set:Nx \l__letgut_tmpa_tl {
     \getpagerefnumber {
       \g__letgut_callout_label_ltx_example_str
     }
   }
-  \tl_set:Nx \l_tmpb_tl {
+  \tl_set:Nx \l__letgut_tmpb_tl {
     \getpagerefnumber {
       \g__letgut_label_ltx_example_str
     }
   }
-  \tl_if_eq:NNF \l_tmpa_tl \l_tmpb_tl
+  \tl_if_eq:NNF \l__letgut_tmpa_tl \l__letgut_tmpb_tl
   {
     \l__letgut_reference_text_tl
     \tl_set:Nn \l__letgut_reference_text_tl {
@@ -3645,17 +3642,17 @@
     \int_use:N \g__letgut_ltx_example_int
   }
   \label{\g__letgut_callout_label_ltx_example_str}
-  \tl_set:Nx \l_tmpa_tl {
+  \tl_set:Nx \l__letgut_tmpa_tl {
     \getpagerefnumber {
       \g__letgut_callout_label_ltx_example_str
     }
   }
-  \tl_set:Nx \l_tmpb_tl {
+  \tl_set:Nx \l__letgut_tmpb_tl {
     \getpagerefnumber {
       \g__letgut_label_ltx_example_str
     }
   }
-  \tl_if_eq:NNF \l_tmpa_tl \l_tmpb_tl
+  \tl_if_eq:NNF \l__letgut_tmpa_tl \l__letgut_tmpb_tl
   {
     \skip_set_eq:NN \intextsep \c__letgut_reduced_intextsep_skip
   }
@@ -3676,7 +3673,7 @@
   \tcbset{
     __letgut_code/.append~ style={
       listing~ options~ app={
-	#1
+        #1
       }
     }
   }
@@ -3691,25 +3688,25 @@
     style=__letgut_reset_listings_styles,%
   }
   \tl_if_empty:nTF {#1} {
-    \tl_set:Nx \l_tmpa_tl {
+    \tl_set:Nx \l__letgut_tmpa_tl {
       alsolanguage={#2}
     }
     \exp_args:NV \__letgut_tcbset:n
     {
-      \l_tmpa_tl
+      \l__letgut_tmpa_tl
     }
   }{
-    \seq_set_from_clist:Nn \l_tmpa_seq {#1}
-    \seq_set_map_x:NNn \l_tmpb_seq \l_tmpa_seq {
+    \seq_set_from_clist:Nn \l__letgut_tmpa_seq {#1}
+    \seq_set_map_x:NNn \l__letgut_tmpb_seq \l__letgut_tmpa_seq {
       alsolanguage={[##1]#2}
     }
-    \tl_set:Nx \l_tmpa_tl
+    \tl_set:Nx \l__letgut_tmpa_tl
     {
-      \seq_use:Nn \l_tmpb_seq {,}
+      \seq_use:Nn \l__letgut_tmpb_seq {,}
     }
     \exp_args:NV \__letgut_tcbset:n
     {
-      \l_tmpa_tl
+      \l__letgut_tmpa_tl
     }
   }
 }
@@ -3861,9 +3858,9 @@
     },
     every~ listing~ line={%
       \textcolor{__letgut_terminal_prompt}{%
-	\ttfamily%
-	\bfseries%
-	\__letgut_unselectable:n {#1\c_space_tl}
+        \ttfamily%
+        \bfseries%
+        \__letgut_unselectable:n {#1\c_space_tl}
       }
     },
   },
@@ -3875,14 +3872,14 @@
 \begin{lstlisting}
 \cs_new_protected:Npn \__letgut_terminal:nnnn #1 #2 #3 #4
 {
-  \bool_set_false:N \l_tmpa_bool
+  \bool_set_false:N \l__letgut_tmpa_bool
   \tl_if_empty:nF {#3}{
       \tcbset{tempfile=\jobname-stdin.tex}
       \exp_args:Nx \scantokens
       {
-	\token_to_str:N\begin{tcbwritetemp}
-	  #3
-	\token_to_str:N\end{tcbwritetemp}
+        \token_to_str:N\begin{tcbwritetemp}
+          #3
+        \token_to_str:N\end{tcbwritetemp}
       }
     }
     \tl_if_empty:nF {#4}{
@@ -3889,54 +3886,54 @@
       \tcbset{tempfile=\jobname-stdout.tex}
       \exp_args:Nx \scantokens
       {
-	\token_to_str:N\begin{tcbwritetemp}
-	  #4
-	\token_to_str:N\end{tcbwritetemp}
+        \token_to_str:N\begin{tcbwritetemp}
+          #4
+        \token_to_str:N\end{tcbwritetemp}
       }
     }
     \tl_if_empty:nTF {#3}{
       \tl_if_empty:nTF {#4}{
-	\bool_set_true:N \l_tmpa_bool
+        \bool_set_true:N \l__letgut_tmpa_bool
       }{
-	\tcbset{colback=__letgut_background_terminal_stdout}
+        \tcbset{colback=__letgut_background_terminal_stdout}
       }
     }{
       \tcbset{colback=__letgut_background_terminal_stdin}
       \tl_if_empty:nTF {#4}{
       }{
-	\tcbset{
-	  bicolor,
-	  middle=0mm,
-	  boxsep=0mm,
-	  colbacklower=__letgut_background_terminal_stdout,
-	}
+        \tcbset{
+          bicolor,
+          middle=0mm,
+          boxsep=0mm,
+          colbacklower=__letgut_background_terminal_stdout,
+        }
       }
     }
-    \bool_if:NF \l_tmpa_bool {
+    \bool_if:NF \l__letgut_tmpa_bool {
       \begin{tcolorbox}[terminal={#1},#2]
-	\lstset{aboveskip=0pt}
-	\tl_if_empty:nF {#3}{
-	  \tcbset{
-	    tempfile=\jobname-stdin.tex,
-	  }
-	  \tcbusetemplisting
-	  \tl_if_empty:nF {#4}{
-	    \tcblower
-	  }
-	}
-	\tl_if_empty:nF {#4}{
-	  \tl_if_empty:nF {#3}{
-	    \lstset{aboveskip=0pt}
-	  }
-	  \tcbset{
-	    tempfile=\jobname-stdout.tex,
-	    every~ listing~ line={},
-	    listing~ options~ app={
-	      language={}
-	    }
-	  }
-	  \tcbusetemplisting
-	}
+        \lstset{aboveskip=0pt}
+        \tl_if_empty:nF {#3}{
+          \tcbset{
+            tempfile=\jobname-stdin.tex,
+          }
+          \tcbusetemplisting
+          \tl_if_empty:nF {#4}{
+            \tcblower
+          }
+        }
+        \tl_if_empty:nF {#4}{
+          \tl_if_empty:nF {#3}{
+            \lstset{aboveskip=0pt}
+          }
+          \tcbset{
+            tempfile=\jobname-stdout.tex,
+            every~ listing~ line={},
+            listing~ options~ app={
+              language={}
+            }
+          }
+          \tcbusetemplisting
+        }
       \end{tcolorbox}
     }
   }
@@ -3973,6 +3970,7 @@
   ^^^^215b% for ⅛
   ^^^^2122% for ™
   ^^^^2019% for ’
+  ^^^^0153% for œ
   ^^00%
 }
 \lst at RestoreCatcodes
@@ -4019,7 +4017,7 @@
 \end{itemize}
 
 \begin{lstlisting}
-\ProvidesFile{letgut.lbx}[2023-05-21 v0.9.7 letgut localization]
+\ProvidesFile{letgut.lbx}[2024-02-29 v0.9.8 letgut localization]
 \InheritBibliographyExtras{french}
 \DeclareBibliographyStrings{
   inherit          = {french},
@@ -4033,7 +4031,7 @@
 create the corresponding new entry).
 
 \begin{lstlisting}
-\ProvidesFile{letgut.dbx}[2023-05-21 v0.9.7 letgut data model macros]
+\ProvidesFile{letgut.dbx}[2024-02-29 v0.9.8 letgut data model macros]
 \DeclareBibliographyDriver{bookreview}{%
   \usebibmacro{bibindex}%
   \usebibmacro{begentry}%
@@ -4088,7 +4086,7 @@
 We provide a specific \lstinline+biblatex+ citation style .
 
 \begin{lstlisting}
-\ProvidesFile{letgut.cbx}[2023-05-21 v0.9.7 letgut base citation style]
+\ProvidesFile{letgut.cbx}[2024-02-29 v0.9.8 letgut base citation style]
 \RequireCitationStyle{numeric}
 \end{lstlisting}
 
@@ -4362,9 +4360,9 @@
   \begin{tblr}{
       width=.75\linewidth,
       colspec={
-	% < (Just not to disturb the parentheses
-	% balancing detection of my editor.)
-	>{\bfseries}r@{ }X
+        % < (Just not to disturb the parentheses
+        % balancing detection of my editor.)
+        >{\bfseries}r@{ }X
       },
       vline{1,3}={solid},
       hline{1,7}={solid},
@@ -4428,7 +4426,7 @@
 [identifiant ouvert pour chercheur et contributeur]
 
 \letgutacro%[extra-foreign=souvent librement traduit en \enquote{foire
-	   %aux questions}]
+           %aux questions}]
 {FAQ}%
 {Frequently Asked Questions}%
 [questions fréquemment posées]
@@ -5795,13 +5793,13 @@
     fp_zero,fp_zero_new,fparray_count,fparray_gset,fparray_gzero,%
     fparray_item,fparray_item_to_tl,fparray_new,g_file_curr_dir_str,%
     g_file_curr_ext_str,g_file_curr_name_str,g_msg_module_name_prop,%
-    g_msg_module_type_prop,g_peek_token,g_tmpa_bool,g_tmpa_box,%
-    g_tmpa_clist,g_tmpa_coffin,g_tmpa_dim,g_tmpa_fp,g_tmpa_int,%
-    g_tmpa_ior,g_tmpa_iow,g_tmpa_muskip,g_tmpa_prop,g_tmpa_regex,%
-    g_tmpa_seq,g_tmpa_skip,g_tmpa_str,g_tmpa_tl,g_tmpb_bool,g_tmpb_box,%
-    g_tmpb_clist,g_tmpb_coffin,g_tmpb_dim,g_tmpb_fp,g_tmpb_int,%
-    g_tmpb_ior,g_tmpb_iow,g_tmpb_muskip,g_tmpb_prop,g_tmpb_regex,%
-    g_tmpb_seq,g_tmpb_skip,g_tmpb_str,g_tmpb_tl,group_align_safe_begin,%
+    g_msg_module_type_prop,g_peek_token,g__letgut_tmpa_bool,g__letgut_tmpa_box,%
+    g__letgut_tmpa_clist,g__letgut_tmpa_coffin,g__letgut_tmpa_dim,g__letgut_tmpa_fp,g__letgut_tmpa_int,%
+    g__letgut_tmpa_ior,g__letgut_tmpa_iow,g__letgut_tmpa_muskip,g__letgut_tmpa_prop,g__letgut_tmpa_regex,%
+    g__letgut_tmpa_seq,g__letgut_tmpa_skip,g__letgut_tmpa_str,g__letgut_tmpa_tl,g__letgut_tmpb_bool,g__letgut_tmpb_box,%
+    g__letgut_tmpb_clist,g__letgut_tmpb_coffin,g__letgut_tmpb_dim,g__letgut_tmpb_fp,g__letgut_tmpb_int,%
+    g__letgut_tmpb_ior,g__letgut_tmpb_iow,g__letgut_tmpb_muskip,g__letgut_tmpb_prop,g__letgut_tmpb_regex,%
+    g__letgut_tmpb_seq,g__letgut_tmpb_skip,g__letgut_tmpb_str,g__letgut_tmpb_tl,group_align_safe_begin,%
     group_align_safe_end,group_begin,group_end,group_insert_after,%
     group_log_list,group_show_list,hbox,hbox_gset,hbox_gset_end,%
     hbox_gset_to_wd,hbox_overlap_center,hbox_overlap_left,%
@@ -5843,13 +5841,13 @@
     l_keys_usage_load_prop,l_keys_usage_preamble_prop,l_keys_value_tl,%
     l_my_int,l_peek_token,l_text_accents_tl,l_text_case_exclude_arg_tl,%
     l_text_expand_exclude_tl,l_text_letterlike_tl,l_text_math_arg_tl,%
-    l_text_math_delims_tl,l_text_titlecase_check_letter_bool,l_tmpa_bool,%
-    l_tmpa_box,l_tmpa_clist,l_tmpa_coffin,l_tmpa_dim,l_tmpa_fp,%
-    l_tmpa_int,l_tmpa_muskip,l_tmpa_prop,l_tmpa_regex,l_tmpa_seq,%
-    l_tmpa_skip,l_tmpa_str,l_tmpa_tl,l_tmpb_bool,l_tmpb_box,%
-    l_tmpb_clist,l_tmpb_coffin,l_tmpb_dim,l_tmpb_fp,l_tmpb_int,%
-    l_tmpb_muskip,l_tmpb_prop,l_tmpb_regex,l_tmpb_seq,l_tmpb_skip,%
-    l_tmpb_str,l_tmpb_tl,legacy_if,legacy_if_gset,legacy_if_gset_false,%
+    l_text_math_delims_tl,l_text_titlecase_check_letter_bool,l__letgut_tmpa_bool,%
+    l__letgut_tmpa_box,l__letgut_tmpa_clist,l__letgut_tmpa_coffin,l__letgut_tmpa_dim,l__letgut_tmpa_fp,%
+    l__letgut_tmpa_int,l__letgut_tmpa_muskip,l__letgut_tmpa_prop,l__letgut_tmpa_regex,l__letgut_tmpa_seq,%
+    l__letgut_tmpa_skip,l__letgut_tmpa_str,l__letgut_tmpa_tl,l__letgut_tmpb_bool,l__letgut_tmpb_box,%
+    l__letgut_tmpb_clist,l__letgut_tmpb_coffin,l__letgut_tmpb_dim,l__letgut_tmpb_fp,l__letgut_tmpb_int,%
+    l__letgut_tmpb_muskip,l__letgut_tmpb_prop,l__letgut_tmpb_regex,l__letgut_tmpb_seq,l__letgut_tmpb_skip,%
+    l__letgut_tmpb_str,l__letgut_tmpb_tl,legacy_if,legacy_if_gset,legacy_if_gset_false,%
     legacy_if_gset_true,legacy_if_p,legacy_if_set,legacy_if_set_false,%
     legacy_if_set_true,lua_escape,lua_now,lua_shipout,lua_shipout_e,%
     mode_if_horizontal,mode_if_horizontal_p,mode_if_inner,%
@@ -8784,4 +8782,4 @@
   sensitive%
 }[keywords,tex,comments]%
 \end{lstlisting}
-\end{document}
\ No newline at end of file
+\end{document}

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

Modified: branches/branch2023.final/Master/texmf-dist/doc/lualatex/letgut/letgut.tex
===================================================================
--- branches/branch2023.final/Master/texmf-dist/doc/lualatex/letgut/letgut.tex	2024-02-29 21:22:09 UTC (rev 70257)
+++ branches/branch2023.final/Master/texmf-dist/doc/lualatex/letgut/letgut.tex	2024-02-29 21:22:20 UTC (rev 70258)
@@ -68,7 +68,7 @@
 }
 \author{Association GUTenberg}
 \date{%
-  Version 0.9.7 en date du \today%
+  Version 0.9.8 en date du \today%
   \texorpdfstring{%
     \\
     \url{https://framagit.org/gutenberg/letgut}%
@@ -450,9 +450,6 @@
   nombre de réinitialisations.
 \end{docCommands}
 
-\begin{docCommand}{inputarticle}{\marg{fichier enfant}}
-\end{docCommand}
-
 \section{Structuration}
 \label{sec:structuration}
 
@@ -952,7 +949,7 @@
     automatiquement coupés en frontière de page.
   \item Les exemples de codes avec résultats (environnements
     \refEnv{ltx-code-result} et \refEnv{ltx-code-external-result}), présentent
-    ces codes et résulats :
+    ces codes et résultats :
     \begin{itemize}
     \item l'un sous l'autre par défaut ;
     \item l'un à gauche de l'autre si l'option ™sidebyside™ est
@@ -1499,9 +1496,11 @@
     assimilés du \package*{tcolorbox}, destinées à, le cas échéant, modifier la
     mise en forme par défaut de l'annonce ;
   \item deux qui lui sont propres :
-    \begin{docKey}[][doc new={2023-05-21}]{toc title}{=\meta{titre alternatif}}{\valinitdef}
+    \begin{docKey}[][doc new and updated={2023-05-21}{2023-11-08}]{toc title}{=\meta{titre alternatif}}{\valinitdef}
       Cette clé permet de remplacer dans la table des matières et dans les
-      signets le \meta{titre} par un \meta{titre alternatif}.
+      signets le \meta{titre} par un \meta{titre alternatif}. Si cette option
+      est utilisée avec un \meta{titre alternatif} vide, l'annonce ne figure ni
+      dans la table des matières, ni dans les signets.
     \end{docKey}
     \begin{docKey}[][doc new={2023-05-21}]{color}{=\meta{couleur}}{\valinitdef[\docValue*{black}]}
       Cette clé permet une \meta{couleur} d'ornement et de titre autre que celle

Modified: branches/branch2023.final/Master/texmf-dist/source/lualatex/letgut/letgut.org
===================================================================
--- branches/branch2023.final/Master/texmf-dist/source/lualatex/letgut/letgut.org	2024-02-29 21:22:09 UTC (rev 70257)
+++ branches/branch2023.final/Master/texmf-dist/source/lualatex/letgut/letgut.org	2024-02-29 21:22:20 UTC (rev 70258)
@@ -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.7 2023-05-21}
+  \version{0.9.8 2024-02-29}
   % -------------------------------------------------------------------------
   % This field contains the name of the author(s).
   % The value is optional.
@@ -132,10 +132,11 @@
   % The value is restricted to 8192 characters.
   \begin{announcement}
   ### Changed
-  Announcement's title and toc entry possibly different (backward compatibility broken!)
+  - Drop use of l3keys2e, as advised.
+  - Announcements possibly neither in the ToC nor in the bookmarks.
 
   ### Fixed
-  `tabularray`'s needed library added.
+  Floats not outside the article they belong to.
   \end{announcement}
   % -------------------------------------------------------------------------
   % This field contains the one-liner for the package.
@@ -205,6 +206,15 @@
 
   ## [Unreleased]
 
+  ## [0.9.8] - 2024-02-29
+
+  ### Changed
+  - Drop use of l3keys2e, as advised.
+  - Announcements possibly neither in the ToC nor in the bookmarks.
+
+  ### Fixed
+  Floats not outside the article they belong to.
+
   ## [0.9.7] - 2023-05-21
 
   ### Changed
@@ -314,7 +324,7 @@
 
 Release
 -------
-2023-05-21 v0.9.7
+2024-02-29 v0.9.8
 
 Development
 -----------
@@ -460,8 +470,8 @@
 
 #+begin_src latex
   \ProvidesExplClass{letgut}
-  {2023-05-21}
-  {0.9.7}
+  {2024-02-29}
+  {0.9.8}
   {
     Class for the newsletter “The GUTenberg Letter”
   }
@@ -921,13 +931,6 @@
 :CUSTOM_ID: ImplementationClassoptions-4meg55h0jlj0
 :END:
 
-In order to provide class options, we load the \package{l3keys2e} which provides
-\LaTeXe{} option processing using \LaTeX3 keys:
-
-  #+begin_src  latex
-    \RequirePackage{l3keys2e}
-  #+end_src
-
 We define the 2 load time options for the target audience:
 
 - ~for-readers~ (the default), for the “normal” “Lettre”,
@@ -1158,7 +1161,7 @@
   #+end_src
 - Coloured boxes, for LaTeX examples and theorems, etc.
   #+begin_src latex
-\RequirePackage{tcolorbox}
+    \RequirePackage{tcolorbox}
   #+end_src
 - Compile \TeX{} code stand-alone or as part of a document.
   #+begin_src latex
@@ -1416,14 +1419,14 @@
               #+begin_src latex
                 % \color_fill:n {black!10}
                 \color{black!10}
-                \hbox_set:Nn \l_tmpa_box {
+                \hbox_set:Nn \l__letgut_tmpa_box {
                   \fontsize{0.25\paperwidth}{0.3\paperwidth}
                   \selectfont
                   \c__letgut_draftwatermark_text_tl
                 }
-                \hbox_set:Nn \l_tmpb_box {
+                \hbox_set:Nn \l__letgut_tmpb_box {
                   \hbox_overlap_center:n {
-                    \box_use:N \l_tmpa_box
+                    \box_use:N \l__letgut_tmpa_box
                   }
                 }
               #+end_src
@@ -1431,7 +1434,7 @@
     diagonal of the page (angle $=\arctan(\text{paper height}/\text{paper
     width})$).
               #+begin_src latex
-                \box_rotate:Nn \l_tmpb_box {
+                \box_rotate:Nn \l__letgut_tmpb_box {
                   \fp_eval:n {
                     atand (
                     \dim_to_fp:n {\paperheight}
@@ -1440,7 +1443,7 @@
                     )
                   }
                 }
-                \box_use:N \l_tmpb_box
+                \box_use:N \l__letgut_tmpb_box
                 }
                 }
                 }
@@ -1511,7 +1514,7 @@
   subparagraphs) detailed or not.
 
 #+begin_src latex
-  \keys_define:nn { letgut }
+  \DeclareKeys[ letgut ]
   {
     , for-readers  .bool_gset:N = \g__letgut_for_readers_bool
     , for-readers .initial:n = { true }
@@ -1573,7 +1576,7 @@
       }
     }
   }
-  \ProcessKeysOptions { letgut }
+  \ProcessKeyOptions[ letgut ]
   \AddToHook{begindocument/before}{
     \bool_lazy_and:nnTF {\g__letgut_for_readers_bool} {!\g__letgut_paper_bool}
     {
@@ -1785,7 +1788,9 @@
     \tl_if_empty:NTF {#1}{
       \phantomsection\addcontentsline{toc}{title}{#2}
     }{
-      \phantomsection\addcontentsline{toc}{title}{#1}
+      \tl_if_empty:NF {#2}{
+        \phantomsection\addcontentsline{toc}{title}{#1}
+      }
     }
   }
   \NewTColorBox{announcement}{ O{} m }
@@ -1797,7 +1802,8 @@
     overlay~ unbroken~ and~ first ={
       \node[color=\l__letgut_toc_color_announce_tl]~ at~ ([yshift=8pt]title.south)
       {\pgfornament[width=0.4\linewidth]{88}};
-      \node[color=white,anchor=north~ west]~ at~ (frame.north~ west) {\huge\bfseries\aldineright{}};
+      \node[color=white,anchor=north~ west]~ at~ (frame.north~ west)
+      {\huge\bfseries\aldineright{}};
     },
     #1,
     coltitle=\l__letgut_toc_color_announce_tl,
@@ -2560,17 +2566,17 @@
  #+begin_src latex
 \cs_new_protected:Npn \__letgut_titlecase_name:n #1
 {
-  \seq_set_split:Nnn \l_tmpa_seq { - }  {#1}
-  \seq_set_map_x:NNn \l_tmpb_seq \l_tmpa_seq {
+  \seq_set_split:Nnn \l__letgut_tmpa_seq { - }  {#1}
+  \seq_set_map_x:NNn \l__letgut_tmpb_seq \l__letgut_tmpa_seq {
     \text_titlecase_first:n{ \text_lowercase:n {##1} }
   }
-  \tl_set:Nx \l_tmpa_tl {\seq_use:Nn \l_tmpb_seq {-}}
-  \seq_clear:N \l_tmpa_seq
-  \seq_set_split:NnV \l_tmpa_seq { ~ }  { \l_tmpa_tl }
-  \seq_set_map_x:NNn \l_tmpb_seq \l_tmpa_seq {
+  \tl_set:Nx \l__letgut_tmpa_tl {\seq_use:Nn \l__letgut_tmpb_seq {-}}
+  \seq_clear:N \l__letgut_tmpa_seq
+  \seq_set_split:NnV \l__letgut_tmpa_seq { ~ }  { \l__letgut_tmpa_tl }
+  \seq_set_map_x:NNn \l__letgut_tmpb_seq \l__letgut_tmpa_seq {
     \text_titlecase_first:n{##1}
   }
-  \seq_use:Nn \l_tmpb_seq {~}
+  \seq_use:Nn \l__letgut_tmpb_seq {~}
 }
  #+end_src
 
@@ -2600,9 +2606,9 @@
   \cs_new_protected:Npn \__letgut_process_list:nn #1 #2
   {
     \seq_clear:N \l__letgut_items_seq
-    \seq_set_split:Nnn \l_tmpa_seq {~and~} {#2}
+    \seq_set_split:Nnn \l__letgut_tmpa_seq {~and~} {#2}
     \IfBooleanT{#1}{
-      \seq_sort:Nn \l_tmpa_seq
+      \seq_sort:Nn \l__letgut_tmpa_seq
       {
         \str_compare:nNnTF { ##1 } > { ##2 }
         { \sort_return_swapped: }
@@ -2609,11 +2615,11 @@
         { \sort_return_same: }
       }
     }
-    \seq_map_inline:Nn \l_tmpa_seq {
-      \seq_set_from_clist:Nn \l_tmpb_seq {##1}
-      \seq_pop_left:NN \l_tmpb_seq \l_letgut_last_name_tl
-      \seq_pop_left:NN \l_tmpb_seq \l_letgut_first_name_tl
-      \seq_pop_left:NN \l_tmpb_seq \l_letgut_title_tl
+    \seq_map_inline:Nn \l__letgut_tmpa_seq {
+      \seq_set_from_clist:Nn \l__letgut_tmpb_seq {##1}
+      \seq_pop_left:NN \l__letgut_tmpb_seq \l_letgut_last_name_tl
+      \seq_pop_left:NN \l__letgut_tmpb_seq \l_letgut_first_name_tl
+      \seq_pop_left:NN \l__letgut_tmpb_seq \l_letgut_title_tl
       \seq_put_right:Nx \l__letgut_items_seq {
         \quark_if_no_value:NTF \l_letgut_first_name_tl {
           \__letgut_person_last_name:n {
@@ -2753,13 +2759,13 @@
 font switch (~\ttfamily~) to all of it except to the spaces.
 
    #+begin_src latex
-       \seq_set_split:Nnn \l_tmpa_seq { ~ } { #2 }
-       \seq_set_map:NNn \l_tmpb_seq \l_tmpa_seq {{\l__letgut_softwares_font_switch_tl ##1}}
+       \seq_set_split:Nnn \l__letgut_tmpa_seq { ~ } { #2 }
+       \seq_set_map:NNn \l__letgut_tmpb_seq \l__letgut_tmpa_seq {{\l__letgut_softwares_font_switch_tl ##1}}
        \tl_if_empty:nTF {#1}
        {
-         \seq_use:Nn \l_tmpb_seq { ~ }
+         \seq_use:Nn \l__letgut_tmpb_seq { ~ }
        }{
-         \href{#1}{ \seq_use:Nn \l_tmpb_seq { ~ } }
+         \href{#1}{ \seq_use:Nn \l__letgut_tmpb_seq { ~ } }
        }
      }
      \cs_new_protected:Nn \__letgut_file:n
@@ -2891,14 +2897,14 @@
     \tl_if_empty:nTF {#1}{
       \int_use:N \g__letgut_number_int
     }{
-      \tl_set:Nx \l_tmpa_tl {\tl_head:n { #1 }}
-      \tl_set:Nn \l_tmpb_tl { #1 }
-      \tl_case:NnF \l_tmpa_tl {
-        {\c__letgut_plus_tl}  {\int_eval:n {\g__letgut_number_int\l_tmpa_tl\tl_range:Nnn \l_tmpb_tl { 2 } { -1 }}}
-        {\c__letgut_minus_tl} {\int_eval:n {\g__letgut_number_int\l_tmpa_tl\tl_range:Nnn \l_tmpb_tl { 2 } { -1 }}}
+      \tl_set:Nx \l__letgut_tmpa_tl {\tl_head:n { #1 }}
+      \tl_set:Nn \l__letgut_tmpb_tl { #1 }
+      \tl_case:NnF \l__letgut_tmpa_tl {
+        {\c__letgut_plus_tl}  {\int_eval:n {\g__letgut_number_int\l__letgut_tmpa_tl\tl_range:Nnn \l__letgut_tmpb_tl { 2 } { -1 }}}
+        {\c__letgut_minus_tl} {\int_eval:n {\g__letgut_number_int\l__letgut_tmpa_tl\tl_range:Nnn \l__letgut_tmpb_tl { 2 } { -1 }}}
         {\c__letgut_dot_tl}   {\int_use:N \g__letgut_number_int}
       }
-      {\l_tmpb_tl}
+      {\l__letgut_tmpb_tl}
     }
   }
   \NewDocumentCommand { \lettrenumber } { s O{} } {
@@ -2910,7 +2916,7 @@
 #+end_src
 
 The “\lettre” and “\lettregut” expressions are treated separately since they are
-subject to variations, depending how they are used. The corresponding commands
+subject to variations, depending on how they are used. The corresponding commands
 ~\lettre~ and ~\lettregut~ used without star nor optional argument typeset
 resp. “\lettre” and “\lettregut”:
 
@@ -3363,11 +3369,11 @@
 #+begin_src latex
       \clist_map_inline:Nn \Gin at extensions {
         \file_if_exist:nT{\g__letgut_bookreview_frontcover_tl##1}{
-          \bool_set_true:N \l_tmpa_bool
+          \bool_set_true:N \l__letgut_tmpa_bool
           \clist_map_break:
         }
       }
-      \bool_if:NTF \l_tmpa_bool {
+      \bool_if:NTF \l__letgut_tmpa_bool {
         \marginpar{
           \hspace*{\c__letgut_bookreview_frontcover_margin_sep_dim}
           % \raggedleft
@@ -3566,6 +3572,7 @@
 #+begin_src latex
   \cs_new_protected:Npn \__letgut_input_article:nn #1 #2
   {
+    \FloatBarrier
     \lstset{ style=__letgut_reset_listings_styles }
     \acresetall%
     \input{#2}%
@@ -3616,7 +3623,7 @@
 
 #+begin_src latex
   \NewCommandCopy {\__letgut_orig_includegraphics} {\includegraphics}
-  \clist_set:Nx \l_tmpa_clist {\Gin at extensions}
+  \clist_set:Nx \l__letgut_tmpa_clist {\Gin at extensions}
   \cs_new_protected:Npn \__letgut_includegraphics:nnn #1 #2 #3
   {
     \file_if_exist:nTF {#3} {
@@ -3636,8 +3643,8 @@
       }
       \__letgut_orig_includegraphics[#2]{#3}
     }{
-      \bool_gset_false:N \g_tmpa_bool
-      \clist_map_inline:Nn \l_tmpa_clist {%
+      \bool_gset_false:N \g__letgut_tmpa_bool
+      \clist_map_inline:Nn \l__letgut_tmpa_clist {%
         \file_if_exist:nTF {#3##1} {
           \clist_map_break:n {
             \bool_if:NT \g__letgut_included_files_attached_bool {
@@ -3652,14 +3659,14 @@
               }
             }
             \__letgut_orig_includegraphics[#2]{#3}
-            \bool_gset_true:N \g_tmpa_bool
+            \bool_gset_true:N \g__letgut_tmpa_bool
           }
         }
       }
-      \bool_if:NF \g_tmpa_bool {
+      \bool_if:NF \g__letgut_tmpa_bool {
         \@latex at error{File~ `#3'~ not~ found}%
         {I~ could~ not~ locate~ the~ file~ with~ any~ of~ these~ extensions:^^J%
-          \clist_use:Nn \l_tmpa_clist { ~ }^^J\@ehc}%
+          \clist_use:Nn \l__letgut_tmpa_clist { ~ }^^J\@ehc}%
       }
     }
   }
@@ -3969,9 +3976,9 @@
   }
   \cs_new_protected:Nn \__letgut_on_callout_page:nn
   {
-    \tl_set:Nn \l_tmpa_int {\getpagerefnumber{#1}}
-    \tl_set:Nn \l_tmpb_int {\thepage}
-    \int_compare:nNnF {\l_tmpa_int} = {\l_tmpb_int}
+    \tl_set:Nn \l__letgut_tmpa_int {\getpagerefnumber{#1}}
+    \tl_set:Nn \l__letgut_tmpb_int {\thepage}
+    \int_compare:nNnF {\l__letgut_tmpa_int} = {\l__letgut_tmpb_int}
     {#2}
   }
 #+end_src
@@ -4040,17 +4047,17 @@
             \pgfkeysalso{floatplacement=ht}%
             \pgfkeysalso{float}%
             \pgfkeysalso{label={\g__letgut_label_ltx_example_str}}%
-            \tl_set:Nx \l_tmpa_tl {
+            \tl_set:Nx \l__letgut_tmpa_tl {
               \getpagerefnumber {
                 \g__letgut_callout_label_ltx_example_str
               }
             }
-            \tl_set:Nx \l_tmpb_tl {
+            \tl_set:Nx \l__letgut_tmpb_tl {
               \getpagerefnumber {
                 \g__letgut_label_ltx_example_str
               }
             }
-            \tl_if_eq:NNF \l_tmpa_tl \l_tmpb_tl
+            \tl_if_eq:NNF \l__letgut_tmpa_tl \l__letgut_tmpb_tl
             {
               \l__letgut_reference_text_tl
               \tl_set:Nn \l__letgut_reference_text_tl {
@@ -4181,17 +4188,17 @@
         \int_use:N \g__letgut_ltx_example_int
       }
       \label{\g__letgut_callout_label_ltx_example_str}
-      \tl_set:Nx \l_tmpa_tl {
+      \tl_set:Nx \l__letgut_tmpa_tl {
         \getpagerefnumber {
           \g__letgut_callout_label_ltx_example_str
         }
       }
-      \tl_set:Nx \l_tmpb_tl {
+      \tl_set:Nx \l__letgut_tmpb_tl {
         \getpagerefnumber {
           \g__letgut_label_ltx_example_str
         }
       }
-      \tl_if_eq:NNF \l_tmpa_tl \l_tmpb_tl
+      \tl_if_eq:NNF \l__letgut_tmpa_tl \l__letgut_tmpb_tl
       {
         \skip_set_eq:NN \intextsep \c__letgut_reduced_intextsep_skip
       }
@@ -4227,25 +4234,25 @@
         style=__letgut_reset_listings_styles,%
       }
       \tl_if_empty:nTF {#1} {
-        \tl_set:Nx \l_tmpa_tl {
+        \tl_set:Nx \l__letgut_tmpa_tl {
           alsolanguage={#2}
         }
         \exp_args:NV \__letgut_tcbset:n
         {
-          \l_tmpa_tl
+          \l__letgut_tmpa_tl
         }
       }{
-        \seq_set_from_clist:Nn \l_tmpa_seq {#1}
-        \seq_set_map_x:NNn \l_tmpb_seq \l_tmpa_seq {
+        \seq_set_from_clist:Nn \l__letgut_tmpa_seq {#1}
+        \seq_set_map_x:NNn \l__letgut_tmpb_seq \l__letgut_tmpa_seq {
           alsolanguage={[##1]#2}
         }
-        \tl_set:Nx \l_tmpa_tl
+        \tl_set:Nx \l__letgut_tmpa_tl
         {
-          \seq_use:Nn \l_tmpb_seq {,}
+          \seq_use:Nn \l__letgut_tmpb_seq {,}
         }
         \exp_args:NV \__letgut_tcbset:n
         {
-          \l_tmpa_tl
+          \l__letgut_tmpa_tl
         }
       }
     }
@@ -4414,7 +4421,7 @@
   #+begin_src latex
     \cs_new_protected:Npn \__letgut_terminal:nnnn #1 #2 #3 #4
     {
-      \bool_set_false:N \l_tmpa_bool
+      \bool_set_false:N \l__letgut_tmpa_bool
       \tl_if_empty:nF {#3}{
           \tcbset{tempfile=\jobname-stdin.tex}
           \exp_args:Nx \scantokens
@@ -4435,7 +4442,7 @@
         }
         \tl_if_empty:nTF {#3}{
           \tl_if_empty:nTF {#4}{
-            \bool_set_true:N \l_tmpa_bool
+            \bool_set_true:N \l__letgut_tmpa_bool
           }{
             \tcbset{colback=__letgut_background_terminal_stdout}
           }
@@ -4451,7 +4458,7 @@
             }
           }
         }
-        \bool_if:NF \l_tmpa_bool {
+        \bool_if:NF \l__letgut_tmpa_bool {
           \begin{tcolorbox}[terminal={#1},#2]
             \lstset{aboveskip=0pt}
             \tl_if_empty:nF {#3}{
@@ -4515,6 +4522,7 @@
       ^^^^215b% for ⅛
       ^^^^2122% for ™
       ^^^^2019% for ’
+      ^^^^0153% for œ
       ^^00%
     }
     \lst at RestoreCatcodes
@@ -4565,7 +4573,7 @@
 - the books advertisements.
 
 #+begin_src latex :tangle ../../../tex/lualatex/letgut/letgut.lbx :exports both
-\ProvidesFile{letgut.lbx}[2023-05-21 v0.9.7 letgut localization]
+\ProvidesFile{letgut.lbx}[2024-02-29 v0.9.8 letgut localization]
 \InheritBibliographyExtras{french}
 \DeclareBibliographyStrings{
   inherit          = {french},
@@ -4579,7 +4587,7 @@
   create the corresponding new entry).
 
   #+begin_src latex :tangle ../../../tex/lualatex/letgut/letgut.dbx :exports both
-  \ProvidesFile{letgut.dbx}[2023-05-21 v0.9.7 letgut data model macros]
+  \ProvidesFile{letgut.dbx}[2024-02-29 v0.9.8 letgut data model macros]
   \DeclareBibliographyDriver{bookreview}{%
     \usebibmacro{bibindex}%
     \usebibmacro{begentry}%
@@ -4634,7 +4642,7 @@
 We provide a specific ~biblatex~ citation style .
 
 #+begin_src latex :tangle ../../../tex/lualatex/letgut/letgut.cbx :exports both
-  \ProvidesFile{letgut.cbx}[2023-05-21 v0.9.7 letgut base citation style]
+  \ProvidesFile{letgut.cbx}[2024-02-29 v0.9.8 letgut base citation style]
   \RequireCitationStyle{numeric}
 #+end_src
 
@@ -6359,13 +6367,13 @@
       fp_zero,fp_zero_new,fparray_count,fparray_gset,fparray_gzero,%
       fparray_item,fparray_item_to_tl,fparray_new,g_file_curr_dir_str,%
       g_file_curr_ext_str,g_file_curr_name_str,g_msg_module_name_prop,%
-      g_msg_module_type_prop,g_peek_token,g_tmpa_bool,g_tmpa_box,%
-      g_tmpa_clist,g_tmpa_coffin,g_tmpa_dim,g_tmpa_fp,g_tmpa_int,%
-      g_tmpa_ior,g_tmpa_iow,g_tmpa_muskip,g_tmpa_prop,g_tmpa_regex,%
-      g_tmpa_seq,g_tmpa_skip,g_tmpa_str,g_tmpa_tl,g_tmpb_bool,g_tmpb_box,%
-      g_tmpb_clist,g_tmpb_coffin,g_tmpb_dim,g_tmpb_fp,g_tmpb_int,%
-      g_tmpb_ior,g_tmpb_iow,g_tmpb_muskip,g_tmpb_prop,g_tmpb_regex,%
-      g_tmpb_seq,g_tmpb_skip,g_tmpb_str,g_tmpb_tl,group_align_safe_begin,%
+      g_msg_module_type_prop,g_peek_token,g__letgut_tmpa_bool,g__letgut_tmpa_box,%
+      g__letgut_tmpa_clist,g__letgut_tmpa_coffin,g__letgut_tmpa_dim,g__letgut_tmpa_fp,g__letgut_tmpa_int,%
+      g__letgut_tmpa_ior,g__letgut_tmpa_iow,g__letgut_tmpa_muskip,g__letgut_tmpa_prop,g__letgut_tmpa_regex,%
+      g__letgut_tmpa_seq,g__letgut_tmpa_skip,g__letgut_tmpa_str,g__letgut_tmpa_tl,g__letgut_tmpb_bool,g__letgut_tmpb_box,%
+      g__letgut_tmpb_clist,g__letgut_tmpb_coffin,g__letgut_tmpb_dim,g__letgut_tmpb_fp,g__letgut_tmpb_int,%
+      g__letgut_tmpb_ior,g__letgut_tmpb_iow,g__letgut_tmpb_muskip,g__letgut_tmpb_prop,g__letgut_tmpb_regex,%
+      g__letgut_tmpb_seq,g__letgut_tmpb_skip,g__letgut_tmpb_str,g__letgut_tmpb_tl,group_align_safe_begin,%
       group_align_safe_end,group_begin,group_end,group_insert_after,%
       group_log_list,group_show_list,hbox,hbox_gset,hbox_gset_end,%
       hbox_gset_to_wd,hbox_overlap_center,hbox_overlap_left,%
@@ -6407,13 +6415,13 @@
       l_keys_usage_load_prop,l_keys_usage_preamble_prop,l_keys_value_tl,%
       l_my_int,l_peek_token,l_text_accents_tl,l_text_case_exclude_arg_tl,%
       l_text_expand_exclude_tl,l_text_letterlike_tl,l_text_math_arg_tl,%
-      l_text_math_delims_tl,l_text_titlecase_check_letter_bool,l_tmpa_bool,%
-      l_tmpa_box,l_tmpa_clist,l_tmpa_coffin,l_tmpa_dim,l_tmpa_fp,%
-      l_tmpa_int,l_tmpa_muskip,l_tmpa_prop,l_tmpa_regex,l_tmpa_seq,%
-      l_tmpa_skip,l_tmpa_str,l_tmpa_tl,l_tmpb_bool,l_tmpb_box,%
-      l_tmpb_clist,l_tmpb_coffin,l_tmpb_dim,l_tmpb_fp,l_tmpb_int,%
-      l_tmpb_muskip,l_tmpb_prop,l_tmpb_regex,l_tmpb_seq,l_tmpb_skip,%
-      l_tmpb_str,l_tmpb_tl,legacy_if,legacy_if_gset,legacy_if_gset_false,%
+      l_text_math_delims_tl,l_text_titlecase_check_letter_bool,l__letgut_tmpa_bool,%
+      l__letgut_tmpa_box,l__letgut_tmpa_clist,l__letgut_tmpa_coffin,l__letgut_tmpa_dim,l__letgut_tmpa_fp,%
+      l__letgut_tmpa_int,l__letgut_tmpa_muskip,l__letgut_tmpa_prop,l__letgut_tmpa_regex,l__letgut_tmpa_seq,%
+      l__letgut_tmpa_skip,l__letgut_tmpa_str,l__letgut_tmpa_tl,l__letgut_tmpb_bool,l__letgut_tmpb_box,%
+      l__letgut_tmpb_clist,l__letgut_tmpb_coffin,l__letgut_tmpb_dim,l__letgut_tmpb_fp,l__letgut_tmpb_int,%
+      l__letgut_tmpb_muskip,l__letgut_tmpb_prop,l__letgut_tmpb_regex,l__letgut_tmpb_seq,l__letgut_tmpb_skip,%
+      l__letgut_tmpb_str,l__letgut_tmpb_tl,legacy_if,legacy_if_gset,legacy_if_gset_false,%
       legacy_if_gset_true,legacy_if_p,legacy_if_set,legacy_if_set_false,%
       legacy_if_set_true,lua_escape,lua_now,lua_shipout,lua_shipout_e,%
       mode_if_horizontal,mode_if_horizontal_p,mode_if_inner,%

Modified: branches/branch2023.final/Master/texmf-dist/tex/lualatex/letgut/letgut-lstlang.sty
===================================================================
--- branches/branch2023.final/Master/texmf-dist/tex/lualatex/letgut/letgut-lstlang.sty	2024-02-29 21:22:09 UTC (rev 70257)
+++ branches/branch2023.final/Master/texmf-dist/tex/lualatex/letgut/letgut-lstlang.sty	2024-02-29 21:22:20 UTC (rev 70258)
@@ -1097,13 +1097,13 @@
     fp_zero,fp_zero_new,fparray_count,fparray_gset,fparray_gzero,%
     fparray_item,fparray_item_to_tl,fparray_new,g_file_curr_dir_str,%
     g_file_curr_ext_str,g_file_curr_name_str,g_msg_module_name_prop,%
-    g_msg_module_type_prop,g_peek_token,g_tmpa_bool,g_tmpa_box,%
-    g_tmpa_clist,g_tmpa_coffin,g_tmpa_dim,g_tmpa_fp,g_tmpa_int,%
-    g_tmpa_ior,g_tmpa_iow,g_tmpa_muskip,g_tmpa_prop,g_tmpa_regex,%
-    g_tmpa_seq,g_tmpa_skip,g_tmpa_str,g_tmpa_tl,g_tmpb_bool,g_tmpb_box,%
-    g_tmpb_clist,g_tmpb_coffin,g_tmpb_dim,g_tmpb_fp,g_tmpb_int,%
-    g_tmpb_ior,g_tmpb_iow,g_tmpb_muskip,g_tmpb_prop,g_tmpb_regex,%
-    g_tmpb_seq,g_tmpb_skip,g_tmpb_str,g_tmpb_tl,group_align_safe_begin,%
+    g_msg_module_type_prop,g_peek_token,g__letgut_tmpa_bool,g__letgut_tmpa_box,%
+    g__letgut_tmpa_clist,g__letgut_tmpa_coffin,g__letgut_tmpa_dim,g__letgut_tmpa_fp,g__letgut_tmpa_int,%
+    g__letgut_tmpa_ior,g__letgut_tmpa_iow,g__letgut_tmpa_muskip,g__letgut_tmpa_prop,g__letgut_tmpa_regex,%
+    g__letgut_tmpa_seq,g__letgut_tmpa_skip,g__letgut_tmpa_str,g__letgut_tmpa_tl,g__letgut_tmpb_bool,g__letgut_tmpb_box,%
+    g__letgut_tmpb_clist,g__letgut_tmpb_coffin,g__letgut_tmpb_dim,g__letgut_tmpb_fp,g__letgut_tmpb_int,%
+    g__letgut_tmpb_ior,g__letgut_tmpb_iow,g__letgut_tmpb_muskip,g__letgut_tmpb_prop,g__letgut_tmpb_regex,%
+    g__letgut_tmpb_seq,g__letgut_tmpb_skip,g__letgut_tmpb_str,g__letgut_tmpb_tl,group_align_safe_begin,%
     group_align_safe_end,group_begin,group_end,group_insert_after,%
     group_log_list,group_show_list,hbox,hbox_gset,hbox_gset_end,%
     hbox_gset_to_wd,hbox_overlap_center,hbox_overlap_left,%
@@ -1145,13 +1145,13 @@
     l_keys_usage_load_prop,l_keys_usage_preamble_prop,l_keys_value_tl,%
     l_my_int,l_peek_token,l_text_accents_tl,l_text_case_exclude_arg_tl,%
     l_text_expand_exclude_tl,l_text_letterlike_tl,l_text_math_arg_tl,%
-    l_text_math_delims_tl,l_text_titlecase_check_letter_bool,l_tmpa_bool,%
-    l_tmpa_box,l_tmpa_clist,l_tmpa_coffin,l_tmpa_dim,l_tmpa_fp,%
-    l_tmpa_int,l_tmpa_muskip,l_tmpa_prop,l_tmpa_regex,l_tmpa_seq,%
-    l_tmpa_skip,l_tmpa_str,l_tmpa_tl,l_tmpb_bool,l_tmpb_box,%
-    l_tmpb_clist,l_tmpb_coffin,l_tmpb_dim,l_tmpb_fp,l_tmpb_int,%
-    l_tmpb_muskip,l_tmpb_prop,l_tmpb_regex,l_tmpb_seq,l_tmpb_skip,%
-    l_tmpb_str,l_tmpb_tl,legacy_if,legacy_if_gset,legacy_if_gset_false,%
+    l_text_math_delims_tl,l_text_titlecase_check_letter_bool,l__letgut_tmpa_bool,%
+    l__letgut_tmpa_box,l__letgut_tmpa_clist,l__letgut_tmpa_coffin,l__letgut_tmpa_dim,l__letgut_tmpa_fp,%
+    l__letgut_tmpa_int,l__letgut_tmpa_muskip,l__letgut_tmpa_prop,l__letgut_tmpa_regex,l__letgut_tmpa_seq,%
+    l__letgut_tmpa_skip,l__letgut_tmpa_str,l__letgut_tmpa_tl,l__letgut_tmpb_bool,l__letgut_tmpb_box,%
+    l__letgut_tmpb_clist,l__letgut_tmpb_coffin,l__letgut_tmpb_dim,l__letgut_tmpb_fp,l__letgut_tmpb_int,%
+    l__letgut_tmpb_muskip,l__letgut_tmpb_prop,l__letgut_tmpb_regex,l__letgut_tmpb_seq,l__letgut_tmpb_skip,%
+    l__letgut_tmpb_str,l__letgut_tmpb_tl,legacy_if,legacy_if_gset,legacy_if_gset_false,%
     legacy_if_gset_true,legacy_if_p,legacy_if_set,legacy_if_set_false,%
     legacy_if_set_true,lua_escape,lua_now,lua_shipout,lua_shipout_e,%
     mode_if_horizontal,mode_if_horizontal_p,mode_if_inner,%

Modified: branches/branch2023.final/Master/texmf-dist/tex/lualatex/letgut/letgut.cbx
===================================================================
--- branches/branch2023.final/Master/texmf-dist/tex/lualatex/letgut/letgut.cbx	2024-02-29 21:22:09 UTC (rev 70257)
+++ branches/branch2023.final/Master/texmf-dist/tex/lualatex/letgut/letgut.cbx	2024-02-29 21:22:20 UTC (rev 70258)
@@ -1,4 +1,4 @@
-\ProvidesFile{letgut.cbx}[2023-05-21 v0.9.7 letgut base citation style]
+\ProvidesFile{letgut.cbx}[2024-02-29 v0.9.8 letgut base citation style]
 \RequireCitationStyle{numeric}
 \DeclareFieldFormat[bookreview]{title}{\textbf{\emph{#1}}}
 \renewbibmacro*{title}{%

Modified: branches/branch2023.final/Master/texmf-dist/tex/lualatex/letgut/letgut.cls
===================================================================
--- branches/branch2023.final/Master/texmf-dist/tex/lualatex/letgut/letgut.cls	2024-02-29 21:22:09 UTC (rev 70257)
+++ branches/branch2023.final/Master/texmf-dist/tex/lualatex/letgut/letgut.cls	2024-02-29 21:22:20 UTC (rev 70258)
@@ -48,8 +48,8 @@
 }
 \ExplSyntaxOff
 \ProvidesExplClass{letgut}
-{2023-05-21}
-{0.9.7}
+{2024-02-29}
+{0.9.8}
 {
   Class for the newsletter “The GUTenberg Letter”
 }
@@ -318,7 +318,6 @@
 \seq_new:N \l__letgut_first_last_names_items_seq
 \seq_new:N \g__letgut_included_files_seq
 \seq_new:N \g__letgut_added_bib_resources_seq
-\RequirePackage{l3keys2e}
 \int_new:N \g__letgut_date_month_int
 \int_new:N \g__letgut_date_year_int
 
@@ -549,17 +548,17 @@
         \Huge
 % \color_fill:n {black!10}
 \color{black!10}
-\hbox_set:Nn \l_tmpa_box {
+\hbox_set:Nn \l__letgut_tmpa_box {
   \fontsize{0.25\paperwidth}{0.3\paperwidth}
   \selectfont
   \c__letgut_draftwatermark_text_tl
 }
-\hbox_set:Nn \l_tmpb_box {
+\hbox_set:Nn \l__letgut_tmpb_box {
   \hbox_overlap_center:n {
-    \box_use:N \l_tmpa_box
+    \box_use:N \l__letgut_tmpa_box
   }
 }
-\box_rotate:Nn \l_tmpb_box {
+\box_rotate:Nn \l__letgut_tmpb_box {
   \fp_eval:n {
     atand (
     \dim_to_fp:n {\paperheight}
@@ -568,7 +567,7 @@
     )
   }
 }
-\box_use:N \l_tmpb_box
+\box_use:N \l__letgut_tmpb_box
 }
 }
 }
@@ -579,7 +578,7 @@
 \pagecolor[rgb]{\c__letgut_default_pagecolor_screen_clist}
 \clist_set_eq:NN \g__letgut_pagecolor_clist
   \c__letgut_default_pagecolor_screen_clist
-\keys_define:nn { letgut }
+\DeclareKeys[ letgut ]
 {
   , for-readers  .bool_gset:N = \g__letgut_for_readers_bool
   , for-readers .initial:n = { true }
@@ -641,7 +640,7 @@
     }
   }
 }
-\ProcessKeysOptions { letgut }
+\ProcessKeyOptions[ letgut ]
 \AddToHook{begindocument/before}{
   \bool_lazy_and:nnTF {\g__letgut_for_readers_bool} {!\g__letgut_paper_bool}
   {
@@ -755,7 +754,9 @@
   \tl_if_empty:NTF {#1}{
     \phantomsection\addcontentsline{toc}{title}{#2}
   }{
-    \phantomsection\addcontentsline{toc}{title}{#1}
+    \tl_if_empty:NF {#2}{
+      \phantomsection\addcontentsline{toc}{title}{#1}
+    }
   }
 }
 \NewTColorBox{announcement}{ O{} m }
@@ -767,7 +768,8 @@
   overlay~ unbroken~ and~ first ={
     \node[color=\l__letgut_toc_color_announce_tl]~ at~ ([yshift=8pt]title.south)
     {\pgfornament[width=0.4\linewidth]{88}};
-    \node[color=white,anchor=north~ west]~ at~ (frame.north~ west) {\huge\bfseries\aldineright{}};
+    \node[color=white,anchor=north~ west]~ at~ (frame.north~ west)
+    {\huge\bfseries\aldineright{}};
   },
   #1,
   coltitle=\l__letgut_toc_color_announce_tl,
@@ -1238,17 +1240,17 @@
 }
 \cs_new_protected:Npn \__letgut_titlecase_name:n #1
 {
-  \seq_set_split:Nnn \l_tmpa_seq { - }  {#1}
-  \seq_set_map_x:NNn \l_tmpb_seq \l_tmpa_seq {
+  \seq_set_split:Nnn \l__letgut_tmpa_seq { - }  {#1}
+  \seq_set_map_x:NNn \l__letgut_tmpb_seq \l__letgut_tmpa_seq {
     \text_titlecase_first:n{ \text_lowercase:n {##1} }
   }
-  \tl_set:Nx \l_tmpa_tl {\seq_use:Nn \l_tmpb_seq {-}}
-  \seq_clear:N \l_tmpa_seq
-  \seq_set_split:NnV \l_tmpa_seq { ~ }  { \l_tmpa_tl }
-  \seq_set_map_x:NNn \l_tmpb_seq \l_tmpa_seq {
+  \tl_set:Nx \l__letgut_tmpa_tl {\seq_use:Nn \l__letgut_tmpb_seq {-}}
+  \seq_clear:N \l__letgut_tmpa_seq
+  \seq_set_split:NnV \l__letgut_tmpa_seq { ~ }  { \l__letgut_tmpa_tl }
+  \seq_set_map_x:NNn \l__letgut_tmpb_seq \l__letgut_tmpa_seq {
     \text_titlecase_first:n{##1}
   }
-  \seq_use:Nn \l_tmpb_seq {~}
+  \seq_use:Nn \l__letgut_tmpb_seq {~}
 }
 \cs_new_protected:Nn \__letgut_person_last_name:n
 {
@@ -1272,9 +1274,9 @@
 \cs_new_protected:Npn \__letgut_process_list:nn #1 #2
 {
   \seq_clear:N \l__letgut_items_seq
-  \seq_set_split:Nnn \l_tmpa_seq {~and~} {#2}
+  \seq_set_split:Nnn \l__letgut_tmpa_seq {~and~} {#2}
   \IfBooleanT{#1}{
-    \seq_sort:Nn \l_tmpa_seq
+    \seq_sort:Nn \l__letgut_tmpa_seq
     {
       \str_compare:nNnTF { ##1 } > { ##2 }
       { \sort_return_swapped: }
@@ -1281,11 +1283,11 @@
       { \sort_return_same: }
     }
   }
-  \seq_map_inline:Nn \l_tmpa_seq {
-    \seq_set_from_clist:Nn \l_tmpb_seq {##1}
-    \seq_pop_left:NN \l_tmpb_seq \l_letgut_last_name_tl
-    \seq_pop_left:NN \l_tmpb_seq \l_letgut_first_name_tl
-    \seq_pop_left:NN \l_tmpb_seq \l_letgut_title_tl
+  \seq_map_inline:Nn \l__letgut_tmpa_seq {
+    \seq_set_from_clist:Nn \l__letgut_tmpb_seq {##1}
+    \seq_pop_left:NN \l__letgut_tmpb_seq \l_letgut_last_name_tl
+    \seq_pop_left:NN \l__letgut_tmpb_seq \l_letgut_first_name_tl
+    \seq_pop_left:NN \l__letgut_tmpb_seq \l_letgut_title_tl
     \seq_put_right:Nx \l__letgut_items_seq {
       \quark_if_no_value:NTF \l_letgut_first_name_tl {
         \__letgut_person_last_name:n {
@@ -1377,13 +1379,13 @@
 }
 \cs_new_protected:Nn \__letgut_software:nn
 {
-\seq_set_split:Nnn \l_tmpa_seq { ~ } { #2 }
-  \seq_set_map:NNn \l_tmpb_seq \l_tmpa_seq {{\l__letgut_softwares_font_switch_tl ##1}}
+\seq_set_split:Nnn \l__letgut_tmpa_seq { ~ } { #2 }
+  \seq_set_map:NNn \l__letgut_tmpb_seq \l__letgut_tmpa_seq {{\l__letgut_softwares_font_switch_tl ##1}}
   \tl_if_empty:nTF {#1}
   {
-    \seq_use:Nn \l_tmpb_seq { ~ }
+    \seq_use:Nn \l__letgut_tmpb_seq { ~ }
   }{
-    \href{#1}{ \seq_use:Nn \l_tmpb_seq { ~ } }
+    \href{#1}{ \seq_use:Nn \l__letgut_tmpb_seq { ~ } }
   }
 }
 \cs_new_protected:Nn \__letgut_file:n
@@ -1486,14 +1488,14 @@
   \tl_if_empty:nTF {#1}{
     \int_use:N \g__letgut_number_int
   }{
-    \tl_set:Nx \l_tmpa_tl {\tl_head:n { #1 }}
-    \tl_set:Nn \l_tmpb_tl { #1 }
-    \tl_case:NnF \l_tmpa_tl {
-      {\c__letgut_plus_tl}  {\int_eval:n {\g__letgut_number_int\l_tmpa_tl\tl_range:Nnn \l_tmpb_tl { 2 } { -1 }}}
-      {\c__letgut_minus_tl} {\int_eval:n {\g__letgut_number_int\l_tmpa_tl\tl_range:Nnn \l_tmpb_tl { 2 } { -1 }}}
+    \tl_set:Nx \l__letgut_tmpa_tl {\tl_head:n { #1 }}
+    \tl_set:Nn \l__letgut_tmpb_tl { #1 }
+    \tl_case:NnF \l__letgut_tmpa_tl {
+      {\c__letgut_plus_tl}  {\int_eval:n {\g__letgut_number_int\l__letgut_tmpa_tl\tl_range:Nnn \l__letgut_tmpb_tl { 2 } { -1 }}}
+      {\c__letgut_minus_tl} {\int_eval:n {\g__letgut_number_int\l__letgut_tmpa_tl\tl_range:Nnn \l__letgut_tmpb_tl { 2 } { -1 }}}
       {\c__letgut_dot_tl}   {\int_use:N \g__letgut_number_int}
     }
-    {\l_tmpb_tl}
+    {\l__letgut_tmpb_tl}
   }
 }
 \NewDocumentCommand { \lettrenumber } { s O{} } {
@@ -1814,11 +1816,11 @@
   }{
 \clist_map_inline:Nn \Gin at extensions {
       \file_if_exist:nT{\g__letgut_bookreview_frontcover_tl##1}{
-        \bool_set_true:N \l_tmpa_bool
+        \bool_set_true:N \l__letgut_tmpa_bool
         \clist_map_break:
       }
     }
-    \bool_if:NTF \l_tmpa_bool {
+    \bool_if:NTF \l__letgut_tmpa_bool {
       \marginpar{
         \hspace*{\c__letgut_bookreview_frontcover_margin_sep_dim}
         % \raggedleft
@@ -1939,6 +1941,7 @@
 }
 \cs_new_protected:Npn \__letgut_input_article:nn #1 #2
 {
+  \FloatBarrier
   \lstset{ style=__letgut_reset_listings_styles }
   \acresetall%
   \input{#2}%
@@ -1978,7 +1981,7 @@
   \__letgut_input_article:nn { #1 } { #2 }
 }
 \NewCommandCopy {\__letgut_orig_includegraphics} {\includegraphics}
-\clist_set:Nx \l_tmpa_clist {\Gin at extensions}
+\clist_set:Nx \l__letgut_tmpa_clist {\Gin at extensions}
 \cs_new_protected:Npn \__letgut_includegraphics:nnn #1 #2 #3
 {
   \file_if_exist:nTF {#3} {
@@ -1998,8 +2001,8 @@
     }
     \__letgut_orig_includegraphics[#2]{#3}
   }{
-    \bool_gset_false:N \g_tmpa_bool
-    \clist_map_inline:Nn \l_tmpa_clist {%
+    \bool_gset_false:N \g__letgut_tmpa_bool
+    \clist_map_inline:Nn \l__letgut_tmpa_clist {%
       \file_if_exist:nTF {#3##1} {
         \clist_map_break:n {
           \bool_if:NT \g__letgut_included_files_attached_bool {
@@ -2014,14 +2017,14 @@
             }
           }
           \__letgut_orig_includegraphics[#2]{#3}
-          \bool_gset_true:N \g_tmpa_bool
+          \bool_gset_true:N \g__letgut_tmpa_bool
         }
       }
     }
-    \bool_if:NF \g_tmpa_bool {
+    \bool_if:NF \g__letgut_tmpa_bool {
       \@latex at error{File~ `#3'~ not~ found}%
       {I~ could~ not~ locate~ the~ file~ with~ any~ of~ these~ extensions:^^J%
-        \clist_use:Nn \l_tmpa_clist { ~ }^^J\@ehc}%
+        \clist_use:Nn \l__letgut_tmpa_clist { ~ }^^J\@ehc}%
     }
   }
 }
@@ -2199,9 +2202,9 @@
 }
 \cs_new_protected:Nn \__letgut_on_callout_page:nn
 {
-  \tl_set:Nn \l_tmpa_int {\getpagerefnumber{#1}}
-  \tl_set:Nn \l_tmpb_int {\thepage}
-  \int_compare:nNnF {\l_tmpa_int} = {\l_tmpb_int}
+  \tl_set:Nn \l__letgut_tmpa_int {\getpagerefnumber{#1}}
+  \tl_set:Nn \l__letgut_tmpb_int {\thepage}
+  \int_compare:nNnF {\l__letgut_tmpa_int} = {\l__letgut_tmpb_int}
   {#2}
 }
 \tl_set:Nn \l__letgut_reference_text_tl {
@@ -2245,17 +2248,17 @@
   \pgfkeysalso{floatplacement=ht}%
   \pgfkeysalso{float}%
   \pgfkeysalso{label={\g__letgut_label_ltx_example_str}}%
-  \tl_set:Nx \l_tmpa_tl {
+  \tl_set:Nx \l__letgut_tmpa_tl {
     \getpagerefnumber {
       \g__letgut_callout_label_ltx_example_str
     }
   }
-  \tl_set:Nx \l_tmpb_tl {
+  \tl_set:Nx \l__letgut_tmpb_tl {
     \getpagerefnumber {
       \g__letgut_label_ltx_example_str
     }
   }
-  \tl_if_eq:NNF \l_tmpa_tl \l_tmpb_tl
+  \tl_if_eq:NNF \l__letgut_tmpa_tl \l__letgut_tmpb_tl
   {
     \l__letgut_reference_text_tl
     \tl_set:Nn \l__letgut_reference_text_tl {
@@ -2337,17 +2340,17 @@
     \int_use:N \g__letgut_ltx_example_int
   }
   \label{\g__letgut_callout_label_ltx_example_str}
-  \tl_set:Nx \l_tmpa_tl {
+  \tl_set:Nx \l__letgut_tmpa_tl {
     \getpagerefnumber {
       \g__letgut_callout_label_ltx_example_str
     }
   }
-  \tl_set:Nx \l_tmpb_tl {
+  \tl_set:Nx \l__letgut_tmpb_tl {
     \getpagerefnumber {
       \g__letgut_label_ltx_example_str
     }
   }
-  \tl_if_eq:NNF \l_tmpa_tl \l_tmpb_tl
+  \tl_if_eq:NNF \l__letgut_tmpa_tl \l__letgut_tmpb_tl
   {
     \skip_set_eq:NN \intextsep \c__letgut_reduced_intextsep_skip
   }
@@ -2368,25 +2371,25 @@
     style=__letgut_reset_listings_styles,%
   }
   \tl_if_empty:nTF {#1} {
-    \tl_set:Nx \l_tmpa_tl {
+    \tl_set:Nx \l__letgut_tmpa_tl {
       alsolanguage={#2}
     }
     \exp_args:NV \__letgut_tcbset:n
     {
-      \l_tmpa_tl
+      \l__letgut_tmpa_tl
     }
   }{
-    \seq_set_from_clist:Nn \l_tmpa_seq {#1}
-    \seq_set_map_x:NNn \l_tmpb_seq \l_tmpa_seq {
+    \seq_set_from_clist:Nn \l__letgut_tmpa_seq {#1}
+    \seq_set_map_x:NNn \l__letgut_tmpb_seq \l__letgut_tmpa_seq {
       alsolanguage={[##1]#2}
     }
-    \tl_set:Nx \l_tmpa_tl
+    \tl_set:Nx \l__letgut_tmpa_tl
     {
-      \seq_use:Nn \l_tmpb_seq {,}
+      \seq_use:Nn \l__letgut_tmpb_seq {,}
     }
     \exp_args:NV \__letgut_tcbset:n
     {
-      \l_tmpa_tl
+      \l__letgut_tmpa_tl
     }
   }
 }
@@ -2513,7 +2516,7 @@
 }
 \cs_new_protected:Npn \__letgut_terminal:nnnn #1 #2 #3 #4
 {
-  \bool_set_false:N \l_tmpa_bool
+  \bool_set_false:N \l__letgut_tmpa_bool
   \tl_if_empty:nF {#3}{
       \tcbset{tempfile=\jobname-stdin.tex}
       \exp_args:Nx \scantokens
@@ -2534,7 +2537,7 @@
     }
     \tl_if_empty:nTF {#3}{
       \tl_if_empty:nTF {#4}{
-        \bool_set_true:N \l_tmpa_bool
+        \bool_set_true:N \l__letgut_tmpa_bool
       }{
         \tcbset{colback=__letgut_background_terminal_stdout}
       }
@@ -2550,7 +2553,7 @@
         }
       }
     }
-    \bool_if:NF \l_tmpa_bool {
+    \bool_if:NF \l__letgut_tmpa_bool {
       \begin{tcolorbox}[terminal={#1},#2]
         \lstset{aboveskip=0pt}
         \tl_if_empty:nF {#3}{
@@ -2597,6 +2600,7 @@
   ^^^^215b% for ⅛
   ^^^^2122% for ™
   ^^^^2019% for ’
+  ^^^^0153% for œ
   ^^00%
 }
 \lst at RestoreCatcodes

Modified: branches/branch2023.final/Master/texmf-dist/tex/lualatex/letgut/letgut.dbx
===================================================================
--- branches/branch2023.final/Master/texmf-dist/tex/lualatex/letgut/letgut.dbx	2024-02-29 21:22:09 UTC (rev 70257)
+++ branches/branch2023.final/Master/texmf-dist/tex/lualatex/letgut/letgut.dbx	2024-02-29 21:22:20 UTC (rev 70258)
@@ -1,4 +1,4 @@
-\ProvidesFile{letgut.dbx}[2023-05-21 v0.9.7 letgut data model macros]
+\ProvidesFile{letgut.dbx}[2024-02-29 v0.9.8 letgut data model macros]
 \DeclareBibliographyDriver{bookreview}{%
   \usebibmacro{bibindex}%
   \usebibmacro{begentry}%

Modified: branches/branch2023.final/Master/texmf-dist/tex/lualatex/letgut/letgut.lbx
===================================================================
--- branches/branch2023.final/Master/texmf-dist/tex/lualatex/letgut/letgut.lbx	2024-02-29 21:22:09 UTC (rev 70257)
+++ branches/branch2023.final/Master/texmf-dist/tex/lualatex/letgut/letgut.lbx	2024-02-29 21:22:20 UTC (rev 70258)
@@ -1,4 +1,4 @@
-\ProvidesFile{letgut.lbx}[2023-05-21 v0.9.7 letgut localization]
+\ProvidesFile{letgut.lbx}[2024-02-29 v0.9.8 letgut localization]
 \InheritBibliographyExtras{french}
 \DeclareBibliographyStrings{
   inherit          = {french},



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