From 4ffe448c72373378e2a6320248f24d613eefc3bc Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Tue, 16 Feb 2021 22:12:37 +0000
Subject: gzt (16feb21)

git-svn-id: svn://tug.org/texlive/trunk@57765 c570f23f-e606-0410-a88d-b1316a301751
---
 Master/texmf-dist/tex/latex/gzt/gztarticle.cls | 284 ++++++++++++++-----------
 1 file changed, 157 insertions(+), 127 deletions(-)

(limited to 'Master/texmf-dist/tex/latex/gzt/gztarticle.cls')

diff --git a/Master/texmf-dist/tex/latex/gzt/gztarticle.cls b/Master/texmf-dist/tex/latex/gzt/gztarticle.cls
index 9ddb63cade8..78173f28dd8 100644
--- a/Master/texmf-dist/tex/latex/gzt/gztarticle.cls
+++ b/Master/texmf-dist/tex/latex/gzt/gztarticle.cls
@@ -7,12 +7,14 @@
 %% gzt.dtx  (with options: `class-article')
 %% -----------------------------------------------------------------------------
 %% gzt --- SMF bundle of classes for the French journal "La Gazette des
-%%         Math'ematiciens", version 1.0.0
+%%         Math'ematiciens"
 %% 
 %% E-mail: denis.bitouze@univ-littoral.fr
 %% Released under the LaTeX Project Public License v1.3c or later
 %% See http://www.latex-project.org/lppl.txt
 %% -----------------------------------------------------------------------------
+\def\gztfileversion{1.0.1}
+\def\gztfiledate{2021-02-14}
 \RequirePackage{silence}%
 \WarningFilter{kpfonts}{With 'easyscsl' option}
 \RequirePackage{xpatch}%
@@ -61,14 +63,15 @@
 \ExplSyntaxOn
 \ProvidesExplClass
   {gztarticle}
-  {2020-03-17}
-  {1.0.0}
+  {\gztfiledate}
+  {\gztfileversion}
   {
     SMF~class~for~the~French~journal^^J
     "La~Gazette~des~Math'ematiciens".
 ~(Author~version.)
   }
 \NeedsTeXFormat{LaTeX2e}
+\bool_new:N \g__gzt_moral_report_bool
 \bool_new:N \g__gzt_special_edition_bool
 \bool_new:N \g__gzt_for_authors_bool
 \bool_new:N \g__gzt_for_printer_bool
@@ -78,6 +81,43 @@
 \bool_new:N \g__gzt_no_inside_backcover_bool
 \bool_gset_true:N \g__gzt_for_authors_bool%
 \bool_gset_true:N \g__gzt_inside_pages_bool%
+\tl_gset:Nn \g__gzt_moral_report_common_option_tl {%
+  \AddToHook{begindocument/before} {%
+    \bool_gset_true:N \g__gzt_moral_report_bool
+    \bool_gset_true:N \g__gzt_frontcover_without_minitoc_bool
+    \title[short={\bfseries\c__gzt_moralreport_rubric_string_tl}]{}
+    \tl_gset:Nn \g__gzt_rubric_title_tl {\c__gzt_moralreport_rubric_string_tl}
+  }
+}
+\keys_define:nn { gztarticle }
+{
+  editorial .code:n = {%
+    \AddToHook{begindocument}{%
+      \__gzt_before_display_editorial:n {}%
+    }
+    \AddToHook{enddocument}{%
+      \__gzt_after_display_editorial: {}%
+    }
+  },%
+  presidentmessage .code:n = {%
+    \AddToHook{begindocument}{%
+      \__gzt_before_display_presidentmessage: {}%
+    }
+    \AddToHook{enddocument}{%
+      \__gzt_after_display_presidentmessage: {}%
+    }
+  },%
+  moralreport .code:n = {
+    \g__gzt_moral_report_common_option_tl
+    \keys_set:nn { gztarticle / moralreport } {#1}
+  },
+  moralreport / title .code:n = {%
+    \tl_gset:Nn \g__gzt_moral_report_title_tl {#1}
+  },%
+  moralreport / short~title .code:n = {%
+    \tl_gset:Nn \g__gzt_moral_report_short_title_tl {#1}
+  },%
+}%
 \PassOptionsToClass{openany,english,french}{book}
 \LoadClass { book }
 \PassOptionsToPackage{table,cmyk}{xcolor}%
@@ -124,7 +164,6 @@
 \RequirePackage{mathtools}
 \RequirePackage{rsfso}
 \RequirePackage{esvect}
-\RequirePackage{everypage}
 \RequirePackage{translator}%
 \RequirePackage{geometry}
 \RequirePackage{babel}%
@@ -203,7 +242,7 @@
 \tl_const:Nn \c__gzt_printer_string_tl {Impression}
 \tl_const:Nn \c__gzt_configuration_file_string_tl {gzt.cfg}
 \tl_const:Nn \c__gzt_artistic_director_string_tl {Conception~graphique}
-\AtEndPreamble{
+\AddToHook{begindocument/before}{
   \bool_if:NTF {\g__gzt_special_edition_bool} {
     \tl_const:Nn \c__gzt_editorial_heading_string_tl {Avant-propos}
   }{
@@ -219,7 +258,7 @@
 \tl_const:Nn \c__gzt_special_edition_string_tl {\c_space_tl{}sp{\'e}cial}
 \tl_const:Nn \c__gzt_long_special_edition_string_tl {Numéro\c__gzt_special_edition_string_tl}%
 \tl_const:Nn \c__gzt_short_special_edition_string_tl {\No{}\c__gzt_special_edition_string_tl}%
-\AtEndPreamble{
+\AddToHook{begindocument/before}{
   \tl_const:Nn \c__gzt_frontcover_header_string_tl {
     \bool_if:NT {\g__gzt_special_edition_bool} {
       \text_uppercase:n {\c__gzt_long_special_edition_string_tl}
@@ -239,21 +278,25 @@
 }
 \clist_const:Nn \c__gzt__graphics_extensions_clist {png,PNG,jpg,JPG,jpeg,JPEG,pdf,PDF}
 \tl_const:Nn \c__gzt_pdftitle_string_tl {
-  \c__gzt_journal_title_string_tl
-  % \c_space_tl
-  % \textendash{}
-  % \c_space_tl
-  % \l__gzt_uppercased_date_format{\displaydate{__gzt_date}}
-  \c_space_tl
-  \textendash{}
-  \c_space_tl
-  N°
-  \bool_if:NTF {\g__gzt_special_edition_bool} {
-    \c__gzt_special_edition_string_tl
-    \c_space_tl
-    \g__gzt_special_edition_title_tl
+  \bool_if:NTF {\g__gzt_moral_report_bool} {
+    \c__gzt_moralreport_rubric_string_tl
   }{
-    \int_use:N\g__gzt_issue_number_int
+    \c__gzt_journal_title_string_tl
+    % \c_space_tl
+    % \textendash{}
+    % \c_space_tl
+    % \l__gzt_uppercased_date_format{\displaydate{__gzt_date}}
+    \c_space_tl
+    \textendash{}
+    \c_space_tl
+    N°
+    \bool_if:NTF {\g__gzt_special_edition_bool} {
+      \c__gzt_special_edition_string_tl
+      \c_space_tl
+      \g__gzt_special_edition_title_tl
+    }{
+      \int_use:N\g__gzt_issue_number_int
+    }
   }
 }
 \tl_const:Nn \c__gzt_frontmatter_directory_string_tl {frontmatter}
@@ -328,15 +371,19 @@
   \c_space_tl
   \textcolor{__gzt_date_color}{
     \textendash{}\c_space_tl
-    \text_uppercase:n {\c__gzt_journal_short_title_string_tl}
-    \bool_if:nF { \g__gzt_inside_frontcover_bool || \g__gzt_backmatter_bool || {\int_compare_p:nNn {\g__gzt_issue_number_int}={0}} }
-    {
-      \c_space_tl\textendash{}\c_space_tl
-      \l__gzt_uppercased_date_format\displaydate{__gzt_date}
-      \bool_if:NF {\g__gzt_special_edition_bool} {
-        \c_space_tl
-        \textendash{}\c_space_tl
-        \textcolor{__gzt_smf_number_color}{\No\int_use:N\g__gzt_issue_number_int}
+    \bool_if:NTF {\g__gzt_moral_report_bool} {
+      \text_uppercase:n { \c__gzt_moralreport_rubric_string_tl }
+    }{
+      \text_uppercase:n {\c__gzt_journal_short_title_string_tl}
+      \bool_if:nF { \g__gzt_inside_frontcover_bool || \g__gzt_backmatter_bool || {\int_compare_p:nNn {\g__gzt_issue_number_int}={0}} }
+      {
+        \c_space_tl\textendash{}\c_space_tl
+        \l__gzt_uppercased_date_format\displaydate{__gzt_date}
+        \bool_if:NF {\g__gzt_special_edition_bool} {
+          \c_space_tl
+          \textendash{}\c_space_tl
+          \textcolor{__gzt_smf_number_color}{\No\int_use:N\g__gzt_issue_number_int}
+        }
       }
     }
   }
@@ -350,9 +397,9 @@
 \tl_const:Nn \c__gzt_issue_bib_file_string_tl {\c_sys_jobname_str\c__gzt_issue_bib_file_suffix_string_tl.bib}
 \tl_const:Nn \c__gzt_issue_bib_path_string_tl {\c__gzt_issue_bib_file_string_tl}
 \bool_if:NTF {\g__gzt_special_edition_bool} {
-  \tl_const:Nn \c__gzt_issue_bib_key_tl {\int_use:N \g__gzt_issue_number_int}
-}{
   \tl_const:Nn \c__gzt_issue_bib_key_tl {special-edition}
+}{
+  \tl_const:Nn \c__gzt_issue_bib_key_tl {\int_use:N \g__gzt_issue_number_int}
 }
 \tl_const:Nn \c__gzt_interview_title_string_tl {En~apart\'e~avec~}
 \tl_const:Nn \c__gzt_aside_string_tl {--}
@@ -870,16 +917,16 @@
 \colorlet{__gzt_book_advertisement_bg_color}{white}
 \colorlet{__gzt_book_advertisement_frame_color}{__gzt_generic_dark_color}
 \colorlet{__gzt_default_cover_color}{white}
-\AtBeginEnvironment{multicols}{
+\AddToHook{env/multicols/begin}{
   \bool_gset_true:N \g__gzt_multicols_bool
 }
-\AtEndEnvironment{multicols}{
+\AddToHook{env/multicols/end}{
   \bool_gset_false:N \g__gzt_multicols_bool
 }
-\AtBeginEnvironment{refsection}{
+\AddToHook{env/refsection/begin}{
   \bool_gset_true:N \g__gzt_refsection_bool
 }
-\AtEndEnvironment{refsection}{
+\AddToHook{env/refsection/end}{
   \bool_gset_false:N \g__gzt_refsection_bool
 }
 \tl_const:Nn \c__gzt_footer_size_font_tl {
@@ -930,28 +977,16 @@
 \tl_gset:Nn \g__gzt_pdfauthor_string_tl {
   \g__gzt_smf_string_tl
 }
-\AtEndPreamble{%
+\AddToHook{begindocument/before}{%
   \hypersetup{%
     pdftitle=\g__gzt_pdftitle_string_tl,
     pdfauthor=\g__gzt_pdfauthor_string_tl%
   }
 }
-\DTLnewdb{__gzt_authors}
-\cs_new_protected:Nn \__gzt_authors:nnnnnn
-  {
-    \DTLnewrow{__gzt_authors}%
-    \DTLnewdbentry{__gzt_authors}{first-last-name}{#1}%
-    \DTLnewdbentry{__gzt_authors}{affiliation}{#2}%
-    \DTLnewdbentry{__gzt_authors}{email}{#3}%
-    \DTLnewdbentry{__gzt_authors}{minibio}{#4}%
-    \DTLnewdbentry{__gzt_authors}{photo}{#5}%
-    \DTLnewdbentry{__gzt_authors}{webpage}{#6}%
-  }
 \cs_new_protected:Nn \__gzt_email:n
   {
     \href{mailto:#1}{\nolinkurl{#1}}%
   }
-\cs_generate_variant:Nn \__gzt_authors:nnnnnn { nVVVVV }
 \cs_new_protected:Nn \__gzt_display_author:nnnnn
 {
   \begin{tabular}[t]{p{\c__gzt_authors_photos_box_width_dim}p{0.75\linewidth}}
@@ -984,15 +1019,6 @@
   \end{tabular}
 }
 \cs_generate_variant:Nn \__gzt_display_author:nnnnn { VVVVV }
-\DTLnewdb{__gzt_interviewees}
-\cs_new_protected:Nn \__gzt_interviewees:nnn
-  {
-    \DTLnewrow{__gzt_interviewees}%
-    \DTLnewdbentry{__gzt_interviewees}{first-last-name}{#1}%
-    \DTLnewdbentry{__gzt_interviewees}{minibio}{#2}%
-    \DTLnewdbentry{__gzt_interviewees}{photo}{#3}%
-  }
-\cs_generate_variant:Nn \__gzt_interviewees:nnn { nVV }
 \DTLnewdb{people}
 \tl_new:N \l__gzt_crossref_tl
 \cs_new_protected:Nn \__gzt_people:nnnnnnnn
@@ -1035,12 +1061,14 @@
 \cs_new_protected:Nn \__gzt_display_academic_signature:n
 {
   \bigskip
+  \begin{__gzt_minibiographies_acknowledgements_tcbox}
     #1
+  \end{__gzt_minibiographies_acknowledgements_tcbox}
 }
 \cs_new_protected:Nn \__gzt_display_people_by_role:n
 {
   \DTLforeach*[\DTLiseq{\l__gzt_people_role_tl}{#1}]{people}{%
-    \l__gzt_firstlastname=first-last-name%
+    \l__gzt_firstlastname_tl=first-last-name%
     ,\l__gzt_people_affiliation_tl=affiliation%
     ,\l__gzt_people_email_tl=email%
     ,\l__gzt_people_minibio_tl=minibio%
@@ -1062,26 +1090,29 @@
         \newline%
         \href{mailto:\l__gzt_people_email_tl}{\nolinkurl{\l__gzt_people_email_tl}}%
       }
-      \DTLiflastrow{%
-      }{%
-        \medskip%
-      }
+      \medskip%
     }{
       \tl_if_in:NnTF \l__gzt_people_role_tl { author } {
-        \footnotesize%
-        % \noindent%
-        \dim_set:Nn \l__gzt_minibio_width_dim {\linewidth-1em - \c__gzt_authors_photos_box_width_dim}
-        \tl_if_empty:NTF \l__gzt_people_photo_tl
-        {%
-          \dim_add:Nn \l__gzt_minibio_width_dim {\c__gzt_authors_photos_box_width_dim}
-        }{%
-          \begin{adjustbox}{valign=t,minipage=\c__gzt_authors_photos_box_width_dim}
-            \includegraphics[width=\c__gzt_authors_photos_width_dim]{\l__gzt_people_photo_tl}
-          \end{adjustbox}%
-          \quad%
-        }
-        \begin{adjustbox}{valign=t,minipage=\l__gzt_minibio_width_dim}
-          \begin{description}[leftmargin=1em,style=nextline]
+        \tl_if_empty:NF \l__gzt_firstlastname_tl {
+          \footnotesize%
+          % \noindent%
+          \DTLiffirstrow{%
+          }{
+            \DTLpar%
+            \medskip%
+          }
+          \dim_set:Nn \l__gzt_minibio_width_dim {\linewidth-1em - \c__gzt_authors_photos_box_width_dim}
+          \tl_if_empty:NTF \l__gzt_people_photo_tl
+          {%
+            \dim_add:Nn \l__gzt_minibio_width_dim {\c__gzt_authors_photos_box_width_dim}
+          }{%
+            \begin{adjustbox}{valign=t,minipage=\c__gzt_authors_photos_box_width_dim}
+              \includegraphics[width=\c__gzt_authors_photos_width_dim]{\l__gzt_people_photo_tl}
+            \end{adjustbox}%
+            \quad%
+          }
+          \begin{adjustbox}{valign=t,minipage=\l__gzt_minibio_width_dim}
+            \begin{description}[leftmargin=1em,style=nextline]
             \item[%
               \textcolor{__gzt_people_color}{%
                 \__gzt_citeauthor_no_firstinits:n {\c__gzt_issue_bib_key_tl -#1- \exp_not:V\DTLcurrentindex}%
@@ -1112,10 +1143,6 @@
               }
             \end{description}
           \end{adjustbox}
-        \DTLiflastrow{%
-        }{
-          \DTLpar%
-          \medskip%
         }
       }{
         \__gzt_citeauthor_no_firstinits:n {\c__gzt_issue_bib_key_tl -#1-
@@ -1300,7 +1327,7 @@
           \bool_if:NT {\g__gzt_credit_frontcover_bool} {
             \c_space_tl(\c__gzt_credit_frontcover_string_tl{}~:~%
             \DTLforeach*[\DTLiseq{\l__gzt_people_role_tl}{frontcovercredit}]{people}{%
-              \l__gzt_firstlastname=first-last-name%
+              \l__gzt_firstlastname_tl=first-last-name%
               ,\l__gzt_people_role_tl=role%
             }{%
               \__gzt_citeauthor_no_firstinits:n
@@ -1468,6 +1495,11 @@
   \bool_gset_true:N \g__gzt_frontcover_without_minitoc_bool
   \keys_set:nn { gzt/specialedition } {#1}
 }
+\NewDocumentCommand \moralreportsetup { m } {
+  \bool_gset_true:N \g__gzt_moral_report_bool
+  \bool_gset_true:N \g__gzt_frontcover_without_minitoc_bool
+  \keys_set:nn { gzt/moralreport } {#1}
+}
 \NewDocumentCommand \journalsetup { m } {
   \keys_set:nn { gzt/journalsetup } { #1 }
 }
@@ -1531,7 +1563,7 @@
 \newdateformat{l__gzt_uppercased_date_format}{
   \__gzt_uppercased_monthname_french:n {\THEMONTH}~\THEYEAR
 }
-\AtBeginDocument{%
+\AddToHook{begindocument}{%
 \tl_new:N \g__gzt_bib_issue_date_tl
 \tl_gset:Nn \g__gzt_bib_issue_date_tl {
   \int_use:N \g__gzt_issue_year_int-
@@ -1629,10 +1661,30 @@
   \SetParskip{\c__gzt_mainmatter_parskip_skip}
   \pagestyle{__gzt_mainmatter_ps}%
 }
-\tl_new:N \g__gzt_article_acknowledgements_tl%
+\tl_new:N \l__gzt_article_acknowledgements_tl%
 \cs_new_protected:Nn \__gzt_article_acknowledgements:n
 {
-  \tl_gset:Nn \g__gzt_article_acknowledgements_tl { #1 }
+  \tl_set:Nn \l__gzt_article_acknowledgements_tl { #1 }
+}
+\cs_new_protected:Nn \__gzt_display_localtoc:
+{
+  \etocsettocstyle{\section*{\contentsname}}{}%
+  \etocsetstyle {section}
+  {}
+  {\leavevmode\leftskip 0cm\relax}
+  {\bfseries\normalsize\makebox[.6cm][l]{\etocnumber}%
+    \etocname\nobreak\hfill\nobreak%
+    \makebox[.5cm][r]{%
+      \etocpage%
+    }%
+    \par%
+  }
+  {\medskip}
+  \localtableofcontentswithrelativedepth{+1}
+}
+\NewDocumentCommand \gztlocaltableofcontents {}
+{
+  \__gzt_display_localtoc: {}
 }
 \tl_new:N \g__gzt_article_bib_key_tl%
 \tl_new:N \l__gzt_people_first_last_names_tl
@@ -1964,7 +2016,7 @@
     }
   }
 \file_if_exist:nT { \c__gzt_acronyms_file_string_tl } {%
-  \AtEndPreamble{\loadglsentries{\c__gzt_acronyms_file_string_tl}}
+  \AddToHook{begindocument/before}{\loadglsentries{\c__gzt_acronyms_file_string_tl}}
 }
 \tl_new:N \g__gzt_boxed_issue_number_tl%
 \tl_gset:Nn \g__gzt_boxed_issue_number_tl {%
@@ -2056,7 +2108,7 @@
     \__gzt_citeauthor_no_firstinits:n {\c__gzt_issue_bib_key_tl -editorinchief- 1}
   }{
     \DTLforeach*[\DTLiseq{\l__gzt_people_role_tl}{editorinchief}]{people}{%
-      \l__gzt_firstlastname=first-last-name%
+      \l__gzt_firstlastname_tl=first-last-name%
       ,\l__gzt_people_role_tl=role%
     }{%
       \__gzt_citeauthor_no_firstinits:n {\c__gzt_issue_bib_key_tl -editorinchief- \exp_not:V\DTLcurrentindex}%
@@ -2074,7 +2126,7 @@
   }
   \__gzt_after_display_editorial: {}
 }
-\AtEndPreamble{%
+\AddToHook{begindocument/before}{%
   \tl_set_eq:NN \g__gzt_editorial_heading_tl \c__gzt_editorial_heading_string_tl
   \bool_if:NT {\g__gzt_special_edition_bool} {
     \tl_if_empty:NF \g__gzt_special_edition_editorial_heading_tl {%
@@ -2156,7 +2208,7 @@
 {}
 {\c_zero_dim}
 {}
-\AtBeginDocument{%
+\AddToHook{begindocument}{%
   \graphicspath{{\c__gzt_issue_images_path_string_tl//}{../\c__gzt_issue_images_path_string_tl//}}
   % \glsdisablehyper
   \g__gzt_mainmatter_switch_tl
@@ -2299,7 +2351,7 @@
   }%
   {\c__gzt_footer_size_font_tl\thepage}%
 }%
-\AddEverypageHook{%
+\AddToHook{shipout/background}{
     \bool_if:NF {\g__gzt_advertisement_bool} {
       \tikz[remember~picture,overlay] { \g__gzt_background_footer_tl }%
     }%
@@ -2366,26 +2418,23 @@
   \FloatBarrier%
   \begin{__gzt_minibiographies_acknowledgements_tcbox}
     \__gzt_display_people_by_role:n { author-art-\int_use:N \g__gzt_articles_int }
-    \tl_if_empty:NF \g__gzt_article_acknowledgements_tl
+    \DTLsavelastrowcount{\__gzt_authors_number}
+    \tl_if_empty:NF \l__gzt_article_acknowledgements_tl
     {%
-      \par%
-      \bigskip%
+      \footnotesize
+      \int_compare:nNnT {\__gzt_authors_number}>{0}
+      {
+        \par%
+        \bigskip%
+      }
       \begin{adjustbox}{valign=t,minipage=\linewidth}
         \color{__gzt_acknowledgements_color}%
-        \g__gzt_article_acknowledgements_tl
+        \setlength{\parskip}{\c__gzt_mainmatter_parskip_skip}
+        \l__gzt_article_acknowledgements_tl
       \end{adjustbox}
-  }
+    }
+    \bool_gset_true:N \g__gzt_previous_article_with_bibliography_or_minibio_bool
   \end{__gzt_minibiographies_acknowledgements_tcbox}
-  \bool_gset_true:N \g__gzt_previous_article_with_bibliography_or_minibio_bool
-  %
-  \tl_gclear:N \g__gzt_people_affiliation_tl
-  \tl_gclear:N \g__gzt_people_email_tl
-  \tl_gclear:N \g__gzt_people_minibio_tl
-  \tl_gclear:N \g__gzt_people_photo_tl
-  \tl_gclear:N \g__gzt_people_webpage_tl
-  \tl_gclear:N \g__gzt_article_acknowledgements_tl
-  \DTLgcleardb{__gzt_authors}
-  \DTLgcleardb{__gzt_interviewees}
 }
 \let\printauthorsdetails\printminibios
 \cs_set_eq:NN \__gzt_printbibliography \printbibliography
@@ -2624,7 +2673,7 @@
   inputencoding=utf8/latin1
 }%
 \DeclareTotalTCBox{\gztverb}{ v }{verbatim,blank,fuzzy~halo=0pt~with~__gzt_light_generic_dark_color!8}{#1}
-\NewTCBListing{gztcode}{ O{} }{%
+\NewTCBListing{gztcode}{ !O{} }{%
   listing~style=__gzt_lst_style,
   listing~only,
   enlarge~top~by=\medskipamount,
@@ -2766,27 +2815,8 @@
   \bool_gset_false:N \g__gzt_advertisement_bool
   \bool_gset_true:N \g__gzt_mainmatter_bool
 }
-\keys_define:nn { gztarticle }
-{
-  editorial .code:n = {%
-    \AtBeginDocument{%
-      \__gzt_before_display_editorial:n {}%
-    }
-    \AtEndDocument{%
-      \__gzt_after_display_editorial: {}%
-    }
-  },%
-  presidentmessage .code:n = {%
-    \AtBeginDocument{%
-      \__gzt_before_display_presidentmessage: {}%
-    }
-    \AtEndDocument{%
-      \__gzt_after_display_presidentmessage: {}%
-    }
-  },%
-}%
 \ProcessKeysOptions { gztarticle }
-\AtEndDocument{%
+\AddToHook{enddocument}{%
   \bool_if:NT {\g__gzt_multicols_bool} {
   \end{multicols}%
   }
@@ -2962,7 +2992,7 @@
     enlarge~left~by=\c__gzt_inside_cover_offset_dim,
   }
 }
-\AtEndPreamble{%
+\AddToHook{begindocument/before}{%
   \bool_if:NTF {\g__gzt_special_edition_bool} {
     \tcbset{
       __gzt_tcb_inside_frontcover_style/.append~style={%
@@ -3084,7 +3114,7 @@
   \tl_clear:N \l__gzt_newtheorem_frenchtitle_tl
   \tl_clear:N \l__gzt_newtheorem_englishtitle_tl
   \tl_set:Nn \l__gzt_newtheorem_englishtitle_tl {
-    \text_uppercase:n {#2}
+    \text_titlecase:n {#2}
   }
   \tl_set:Nf \l__gzt_newtheorem_frenchtitle_tl {
     \l__gzt_newtheorem_englishtitle_tl
-- 
cgit v1.2.3

