From 4ffe448c72373378e2a6320248f24d613eefc3bc Mon Sep 17 00:00:00 2001 From: Karl Berry 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/gzt.cls | 258 ++++++++++++---------- Master/texmf-dist/tex/latex/gzt/gzt.dbx | 2 +- Master/texmf-dist/tex/latex/gzt/gzt.lbx | 2 +- Master/texmf-dist/tex/latex/gzt/gztarticle.cls | 284 ++++++++++++++----------- 4 files changed, 304 insertions(+), 242 deletions(-) (limited to 'Master/texmf-dist/tex/latex') diff --git a/Master/texmf-dist/tex/latex/gzt/gzt.cls b/Master/texmf-dist/tex/latex/gzt/gzt.cls index f0292631f35..7c43454ca06 100644 --- a/Master/texmf-dist/tex/latex/gzt/gzt.cls +++ b/Master/texmf-dist/tex/latex/gzt/gzt.cls @@ -7,12 +7,14 @@ %% gzt.dtx (with options: `class') %% ----------------------------------------------------------------------------- %% 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} \def\sectioncommandslist{}% \let\saved@ifdefinable\@ifdefinable% \let\saved@@ifdefinable\@@ifdefinable% @@ -81,13 +83,14 @@ \ExplSyntaxOn \ProvidesExplClass {gzt} - {2020-03-17} - {1.0.0} + {\gztfiledate} + {\gztfileversion} { SMF~class~for~the~French~journal^^J "La~Gazette~des~Math'ematiciens". } \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 @@ -95,6 +98,14 @@ \bool_new:N \g__gzt_coverpage_bool \bool_new:N \g__gzt_inside_pages_bool \bool_new:N \g__gzt_no_inside_backcover_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} + } +} \dim_const:Nn \c__gzt_pagegrid_dim { 1mm} \tl_gset:Nn \g__gzt_frontcover_image_file_tl {\c__gzt_issue_frontcover_default_image_file_tl} \tl_gset:Nn \g__gzt_special_edition_color_tl {__gzt_default_cover_color} @@ -156,6 +167,12 @@ specialedition / editorial~author .code:n = {% \__gzt_people:nnnnnnnn {#1}{}{}{}{}{}{editorinchief}{} },% + moralreport .code:n = { + \g__gzt_moral_report_common_option_tl + \AddToHook{begindocument/before} {% + \tl_gset:Nn \g__gzt_pdftitle_string_tl {\c__gzt_moralreport_rubric_string_tl} + } + }, }% \ProcessKeysOptions { gzt } \PassOptionsToClass{openany,english,french}{book} @@ -209,7 +226,6 @@ \RequirePackage{mathtools} \RequirePackage{rsfso} \RequirePackage{esvect} -\RequirePackage{everypage} \RequirePackage{translator}% \RequirePackage{geometry} \RequirePackage{babel}% @@ -294,7 +310,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} }{ @@ -310,7 +326,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} @@ -330,21 +346,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} @@ -419,15 +439,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} + } } } } @@ -441,9 +465,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 {--} @@ -961,16 +985,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 { @@ -1021,28 +1045,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}} @@ -1075,15 +1087,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 @@ -1126,12 +1129,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% @@ -1153,26 +1158,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}% @@ -1203,10 +1211,6 @@ } \end{description} \end{adjustbox} - \DTLiflastrow{% - }{ - \DTLpar% - \medskip% } }{ \__gzt_citeauthor_no_firstinits:n {\c__gzt_issue_bib_key_tl -#1- @@ -1391,7 +1395,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 @@ -1559,6 +1563,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 } } @@ -1622,7 +1631,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- @@ -1720,10 +1729,10 @@ \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 } } \tl_new:N \g__gzt_about_frontcover_tl% \bool_new:N \g__gzt_credit_frontcover_bool% @@ -1828,6 +1837,26 @@ } \ignorespaces } +\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 \tl_new:N \g__gzt_authors_first_last_names_tl% @@ -2179,17 +2208,17 @@ } } \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}} } \bool_if:nT { \g__gzt_for_authors_bool } { - \AtEndDocument{% + \AddToHook{enddocument}{% \bool_if:NT {\g__gzt_multicols_bool} { \end{multicols}% } } } -\AtEndPreamble{ +\AddToHook{begindocument/before}{ \file_if_exist_input:nF {\c__gzt_configuration_file_string_tl} { \msg_error:nn { gzt } { configuration-file-missing } @@ -2331,7 +2360,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}% @@ -2349,7 +2378,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 {% @@ -2482,7 +2511,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 @@ -2492,7 +2521,7 @@ % \pagestyle{__gzt_mainmatter_ps}% \exp_after:wN\newgeometry\exp_after:wN{\c__gzt_main_geometry_tl}% } -\AtBeginDocument{% +\AddToHook{begindocument}{% \dim_if_exist:NTF \g__gzt_pagegrid_dim {% \pagegridsetup{% enable,% @@ -2526,7 +2555,7 @@ \bool_if:NF {\g__gzt_inside_pages_bool} { \g__gzt_display_frontcover_tl \bool_if:NTF {\g__gzt_coverpage_bool} { - \AfterEndPreamble{\end{document}} + \AddToHook{begindocument/end}{\end{document}} }{ \g__gzt_display_inside_frontcover_tl } @@ -2900,7 +2929,7 @@ {}% {}% }% -\AddEverypageHook{% +\AddToHook{shipout/background}{ \bool_if:nF { \g__gzt_frontcover_bool || \g__gzt_backcover_bool }{ \bool_if:NF {\g__gzt_advertisement_bool} { \tikz[remember~picture,overlay] { \g__gzt_background_footer_tl }% @@ -2969,26 +2998,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 @@ -3344,7 +3370,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, @@ -3487,6 +3513,12 @@ \bool_gset_true:N \g__gzt_mainmatter_bool } \NewDocumentCommand \gztinput { m m } {% + \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_clear:N \l__gzt_article_acknowledgements_tl \startcustomization% \bool_if:NF {\g__gzt_refsection_bool} { \begin{refsection} @@ -3509,7 +3541,7 @@ } \bool_if:NF {\g__gzt_coverpage_bool} { \bool_if:NF {\g__gzt_inside_pages_bool} { - \preto\@enddocumenthook{ + \AddToHook{enddocument/end}{ \bool_gset_true:N \g__gzt_backmatter_bool \g__gzt_display_inside_backcover_tl \newpage @@ -3520,7 +3552,7 @@ \bool_if:NF {\g__gzt_coverpage_bool} { \bool_if:nF { \g__gzt_for_authors_bool } { \bool_if:nT { \g__gzt_inside_pages_bool } { - \AtEndDocument{% + \AddToHook{enddocument}{% \prg_replicate:nn { \int_mod:nn { 4 - \int_mod:nn { \getpagerefnumber{LastPage} } { 4 } } { 4 } } { \thispagestyle{__gzt_blank_pages_ps}\null\clearpage } @@ -3696,7 +3728,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={% @@ -3818,7 +3850,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 diff --git a/Master/texmf-dist/tex/latex/gzt/gzt.dbx b/Master/texmf-dist/tex/latex/gzt/gzt.dbx index 44f875497c3..3850451c9e8 100644 --- a/Master/texmf-dist/tex/latex/gzt/gzt.dbx +++ b/Master/texmf-dist/tex/latex/gzt/gzt.dbx @@ -7,7 +7,7 @@ %% gzt.dtx (with options: `datamodel') %% ----------------------------------------------------------------------------- %% 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 diff --git a/Master/texmf-dist/tex/latex/gzt/gzt.lbx b/Master/texmf-dist/tex/latex/gzt/gzt.lbx index d23410ea7fd..4ad100fa06a 100644 --- a/Master/texmf-dist/tex/latex/gzt/gzt.lbx +++ b/Master/texmf-dist/tex/latex/gzt/gzt.lbx @@ -7,7 +7,7 @@ %% gzt.dtx (with options: `languagemodel') %% ----------------------------------------------------------------------------- %% 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 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