summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/gzt/source/latex/gzt/gzt.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/gzt/source/latex/gzt/gzt.dtx')
-rw-r--r--macros/latex/contrib/gzt/source/latex/gzt/gzt.dtx7511
1 files changed, 0 insertions, 7511 deletions
diff --git a/macros/latex/contrib/gzt/source/latex/gzt/gzt.dtx b/macros/latex/contrib/gzt/source/latex/gzt/gzt.dtx
deleted file mode 100644
index e490957478..0000000000
--- a/macros/latex/contrib/gzt/source/latex/gzt/gzt.dtx
+++ /dev/null
@@ -1,7511 +0,0 @@
-% \iffalse meta-comment
-%
-% File: gzt.dtx Copyright (C) 2014-2021 by
-% Denis Bitouz'e <denis.bitouze@univ-littoral.fr>
-%
-% It may be distributed and/or modified under the conditions of the
-% LaTeX Project Public License (LPPL), either version 1.3c of this
-% license or (at your option) any later version. The latest version
-% of this license is in the file
-%
-% http://www.latex-project.org/lppl.txt
-%
-% This work has the LPPL maintenance status `maintained'.
-%
-% The Current Maintainer of this work is Denis Bitouz'e.
-%
-% This work consists of the files gzt.dtx and gzt.ins
-% and the derived filebase gzt.cls.
-%
-%<*internal>
-\iffalse
-%</internal>
-%<*readme>
-This bundle provides two classes and BibLaTeX styles for the French journal [“La
-Gazette des Mathématiciens”](https://smf.emath.fr/les-publications/la-gazette):
-
-- `gzt` for the complete issues of the journal, aimed at the Gazette’s team,
-- `gztarticle`, intended for authors who wish to publish an article in the
- Gazette. This class’s goals are to
- - faithfully reproduce the layout of the Gazette, thus enabling the authors to
- be able to work their document in actual conditions, and
- - provide a number of tools (commands and environments) to facilitate the
- drafting of documents, in particular those containing mathematical formulas.
-%</readme>
-%<*internal>
-\fi
-\def\nameofplainTeX{plain}
-\ifx\fmtname\nameofplainTeX\else
- \expandafter\begingroup
-\fi
-%</internal>
-%<*class|class-article|install>
-\def\gztfileversion{1.0.1}
-\def\gztfiledate{2021-02-14}
-%</class|class-article|install>
-%<*install>
-\input l3docstrip.tex
-% \input docstrip.tex
-\Msg{**************************************************************}
-\Msg{* Installation}
-\Msg{* Class: gzt \gztfiledate\space v\gztfileversion}
-\Msg{* for the French journal "La Gazette des Math'ematiciens" (DB)}
-\Msg{**************************************************************}
-\keepsilent
-\askforoverwritefalse
-\preamble
------------------------------------------------------------------------------
-gzt --- SMF bundle of classes for the French journal "La Gazette des
- 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
------------------------------------------------------------------------------
-\endpreamble
-\postamble
-% Copyright (C) 2014-2021 by Denis Bitouz'e <denis.bitouze@univ-littoral.fr>
-----------------------------------------------------------------------------
-This work may be distributed and/or modified under the
-conditions of the LaTeX Project Public License, either version 1.3c
-of this license or (at your option) any later version.
-The latest version of this license is in
- http://www.latex-project.org/lppl.txt
-and version 1.3c or later is part of all distributions of LaTeX
-version 2005/12/01 or later.
-
-This work has the LPPL maintenance status `maintained'.
-
-The Current Maintainer of this work is Denis Bitouz'e.
-
-This work consists of the file gzt.dtx
- and the derived files gzt.cls,
- gztarticle.cls,
- gzt.ins,
- gzt.pdf,
- and a number of configuration files.
-\endpostamble
-%
-\def\GZT@classname{\jobname}
-\def\GZT@logo{\GZT@classname-logo}
-\def\GZT@addons{addons}
-\usedir{tex/latex/\GZT@classname}
-\generate{%
- \file{\GZT@classname.cls}{\from{\jobname.dtx}{class}}
- \file{\GZT@classname article.cls}{\from{\jobname.dtx}{class-article}}
- \file{\GZT@classname.dbx}{\from{\jobname.dtx}{datamodel}}
- \file{\GZT@classname.lbx}{\from{\jobname.dtx}{languagemodel}}
- \nopreamble\nopostamble
- \file{\GZT@classname.cfg}{\from{\jobname.dtx}{configuration}}
-}%
-\usedir{tex/latex/\GZT@classname/images}
-\generate{%
- \nopreamble\nopostamble
- \file{README-PICTOGRAMS.md}{\from{\jobname.dtx}{readme-pictograms}}
-}%
-%</install>
-%<install>\endbatchfile
-%<*internal>
-\usedir{source/latex/\GZT@classname}
-\generate{
- \file{\GZT@classname.ins}{\from{\jobname.dtx}{install}}
- \file{\GZT@classname.drv}{\from{\jobname.dtx}{driver}}%
- \nopreamble\nopostamble
- \file{\GZT@logo.tex}{\from{\jobname.dtx}{class-logo}}%
-}%
-\usedir{doc/latex/\GZT@classname}
-\generate{
- \nopreamble\nopostamble
- \file{README.md}{\from{\jobname.dtx}{readme}}
-}%
-\usedir{doc/latex/\GZT@classname}
-\generate{
- \nopreamble\nopostamble
- \file{CHANGELOG.md}{\from{\jobname.dtx}{changelog}}
-}%
-\usedir{doc/latex/\GZT@classname/french}
-\generate{
- \nopreamble\nopostamble
- \file{latexmkrc}{\from{\jobname.dtx}{latexmkrc}}
-}%
-% \usedir{doc/latex/\GZT@classname/\GZT@addons/completion}
-% \generate{%
-% \nopreamble\nopostamble
-% \file{\GZT@classname.cwl}{\from{\jobname.dtx}{class-cwl}}
-% }%
-\ifx\fmtname\nameofplainTeX
- \expandafter\endbatchfile
-\else
- \expandafter\endgroup
-\fi
-%</internal>
-%
-% \changes{v0.9}{2015/05/02}{First CTAN version}%
-% \changes{v0.95}{2016/04/03}{Second CTAN version}%
-% \changes{v0.95a}{2016/10/24}{Third CTAN version}%
-% \changes{v0.95b}{2016/10/24}{Fourth CTAN version}%
-% \changes{v0.96}{2017/01/01}{Fifth CTAN version}%
-% \changes{v0.97}{2017/02/15}{Sixth CTAN version}%
-% \changes{v0.98}{2018/04/07}{Seventh CTAN version. Implementation of special
-% editions.}%
-% \changes{v1.0.0}{2020-03-17}{Eighth CTAN version.}%
-% \changes{v1.0.1}{2021-02-14}{Nineth CTAN version.}%
-%
-% \CheckSum{4413}
-%
-% \CharacterTable
-% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-% Digits \0\1\2\3\4\5\6\7\8\9
-% Exclamation \! Double quote \" Hash (number) \#
-% Dollar \$ Percent \% Ampersand \&
-% Acute accent \' Left paren \( Right paren \)
-% Asterisk \* Plus \+ Comma \,
-% Minus \- Point \. Solidus \/
-% Colon \: Semicolon \; Less than \<
-% Equals \= Greater than \> Question mark \?
-% Commercial at \@ Left bracket \[ Backslash \\
-% Right bracket \] Circumflex \^ Underscore \_
-% Grave accent \` Left brace \{ Vertical bar \|
-% Right brace \} Tilde \~}
-%
-% \StopEventually{}
-%
-% \selectlanguage{english}
-% \chapter{Auxiliary files}
-%
-% \section{Gazette's logo}
-% \label{sec:gzts-logo}
-% Before the code of the \gztcl{} by itself, we give the begining of the
-% code of the source file of the Gazette's logo (to be compiled with "xelatex").
-% \begin{macrocode}
-%<*class-logo>
-% \end{macrocode}
-%
-% \begin{macrocode}
-\documentclass{standalone}
-\usepackage{fontspec}
-\usepackage[export]{adjustbox}
-\usepackage[cmyk]{xcolor}
-\usepackage{xparse}
-%
-\setmainfont{HelveticaNeueLTStd-ThEx}
-\newfontfamily\des{HelveticaNeueLTStd-Th}
-\newfontfamily\mathematiciens{HelveticaNeueLTStd-Lt}
-%
-\ExplSyntaxOn
-\tl_new:N \l__gzt_frontmatter_head_text_tl
-\tl_set:Nn \l__gzt_frontmatter_head_text_tl {%
- \adjustbox{stack=r}
- {%
- \addfontfeature{LetterSpace=10}
- \textcolor{__gzt_generic_light_color}{%
- \fontsize{21}{0}\selectfont%
- la\hspace{5mm}%
- \fontsize{45}{0}\selectfont%
- Gazette%
- }%
- \\[1.7mm]%
- \fontsize{15}{0}\selectfont%
- \textcolor{__gzt_generic_light_color}{%
- \des%
- \addfontfeature{LetterSpace=6}%
- des%
- }%
- \hspace{2.5mm}%
- \textcolor{__gzt_generic_dark_color}{%
- \mathematiciens%
- \addfontfeature{LetterSpace=6}%
- Math\'ematiciens%
- }%
- }%
-}
-%
-\NewDocumentCommand \frontmatterheadtext {} {
- \l__gzt_frontmatter_head_text_tl
-}
-% \end{macrocode}
-%
-% \begin{macrocode}
-%</class-logo>
-% \end{macrocode}
-%
-% \section{(\Pkg{biblatex}) Data model}
-% Before the code of the \gztcl{} by itself, we give the (\pkg{biblatex})
-% data model that enriches the default one for several purposes:
-% \begin{itemize}
-% \item the interviews,
-% \item the books reviews,
-% \item the books advertisements,
-% \item the tributes.
-% \end{itemize}
-%
-% \begin{macrocode}
-%<*languagemodel>
-% \end{macrocode}
-%
-% \begin{macrocode}
-\ProvidesFile{gzt.lbx}
-\InheritBibliographyExtras{french}% extras are inherited from French...
-\DeclareBibliographyStrings{%
- inherit = {french},% .... as well as all the keys
- number = {{\no}{\no}},
- volume = {{volume}{vol\adddot}},
- volumes = {{volumes}{vol\adddot}},
-}
-% \end{macrocode}
-%
-% \begin{macrocode}
-%</languagemodel>
-% \end{macrocode}
-%
-% \begin{macrocode}
-%<*datamodel>
-% \end{macrocode}
-%
-% \subsection{For the interviews}
-%
-% First, we create the new entry type "interview" and the new field
-% "interviewee".
-% \begin{macrocode}
-% \DeclareDatamodelEntrytypes{interview}
-\DeclareDatamodelFields[type=list,datatype=name]{interviewee}
-% \end{macrocode}
-%
-% Then, we declare the fields known by the entry type "interview": our new field
-% "interviewee" and the existing one "author".
-% \begin{macrocode}
-\DeclareDatamodelEntryfields[interview]{
- interviewee,
- author
-}
-% \end{macrocode}
-%
-% An finally, we create the bibliography driver for the "interview" (that seems to
-% create the corresponding new entry).
-% \begin{macrocode}
-\DeclareBibliographyDriver{interview}{%
- \printnames{author}~interviewent~\printnames{interviewee}%
- \usebibmacro{finentry}%
-}
-% \end{macrocode}
-% %
-% % \subsection{For the tributes}
-% %
-% % First, we create the new entry type "tribute" and the new field
-% % "honouree".
-% % \begin{macrocode}
-% % \DeclareDatamodelEntrytypes{tribute}
-% % \DeclareDatamodelFields[type=list,datatype=name]{honouree}
-% % \end{macrocode}
-% %
-% % Then, we declare the fields known by the entry type "tribute": our new field
-% % "honouree" and the existing one "author".
-% % \begin{macrocode}
-% \DeclareDatamodelEntryfields[tribute]{
-% honouree,
-% author
-% }
-% % \end{macrocode}
-% %
-% % An finally, we create the bibliography driver for the "tribute" (that seems to
-% % create the corresponding new entry).
-% % \begin{macrocode}
-% \DeclareBibliographyDriver{tribute}{%
-% \printnames{author}~rendent~hommage~\`a~\printnames{honouree}%
-% \usebibmacro{finentry}%
-% }
-% % \end{macrocode}
-%
-% \subsection{For the books reviews}
-%
-% First, we create the new bibliography driver "bookreview" (that seems to
-% create the corresponding new entry).
-% \begin{macrocode}
-\DeclareBibliographyDriver{bookreview}{%
- \usebibmacro{bibindex}%
- \usebibmacro{begentry}%
- \usebibmacro{maintitle+title}%
- \newline\nopunct\newblock
- \usebibmacro{author/editor+others/translator+others}%
- \setunit{\labelnamepunct}
- \newline\nopunct\newblock
- \usebibmacro{byauthor}%
- \newunit\newblock
- \usebibmacro{byeditor+others}%
- \newunit\newblock
- \printfield{edition}%
- \newunit
- \iffieldundef{maintitle}
- {\printfield{volume}%
- \printfield{part}}
- {}%
- \newunit
- \printfield{volumes}%
- \newunit\newblock
- \usebibmacro{series+number}%
- \newunit\newblock
- \printfield{note}%
- \newunit\newblock
- \usebibmacro{publisher+location+date}%
- \newunit\newblock
- \usebibmacro{chapter+pages}%
- \newunit
- \printfield{pagetotal}%
- \newunit\newblock
- \printlist{language}%
- \newunit\newblock
- \iftoggle{bbx:isbn}
- {\printfield{isbn}}
- {}%
- \newunit\newblock
- \usebibmacro{doi+eprint+url}%
- \newunit\newblock
- \usebibmacro{addendum+pubstate}%
- \setunit{\bibpagerefpunct}\newblock
- \usebibmacro{pageref}%
- \newunit\newblock
- \iftoggle{bbx:related}
- {\usebibmacro{related:init}%
- \usebibmacro{related}}
- {}%
- \usebibmacro{finentry}}
-% \end{macrocode}
-%
-% Then, we create the new fields "reviewer" and "reviewerinstitution" and make
-% them known by the entry type "bookreview".
-% \begin{macrocode}
-\DeclareDatamodelFields[type=list,datatype=name]{reviewer}
-\DeclareDatamodelFields[type=list,datatype=literal]{reviewerinstitution}
-\DeclareDatamodelEntryfields[bookreview]{
- reviewer,
- reviewerinstitution
-}
-% \end{macrocode}
-%
-% \subsection{For the books advertisements}
-%
-% We create some new fields make them known by the entry type
-% "bookadvertisement".
-% \begin{macrocode}
-\DeclareDatamodelFields[type=field,datatype=literal]{publicprice}
-\DeclareDatamodelFields[type=field,datatype=literal]{smfprice}
-\DeclareDatamodelFields[type=field,datatype=literal]{frenchabstract}
-\DeclareDatamodelFields[type=field,datatype=literal]{englishabstract}
-\DeclareDatamodelFields[type=list,datatype=literal]{copublisher}
-\DeclareDatamodelFields[type=field, datatype=verbatim]{thumbnail}
-\DeclareDatamodelEntryfields[bookadvertisement]{
- publicprice,
- smfprice,
- frenchabstract,
- englishabstract,
- copublisher,
- thumbnail
-}
-% \end{macrocode}
-%
-% Then, we create the new bibliography driver "bookadvertisement" (that seems to
-% create the corresponding new entry).
-% \begin{macrocode}
-\newcommand*{\insertbibimage}[1]{\includegraphics[width=45mm]{#1}}
-\DeclareBibliographyDriver{bookadvertisement}{%
- \begin{tcolorbox}[
- lefthand width=47.5mm
- ,sidebyside
- ,colback=white
- ,fontlower=\large
- ,flushleft lower
- ,boxrule=0mm
- ,frame hidden%
- ,leftright skip=0mm
- ,before skip=0mm
- ,lower separated=false
- ]
- \iffieldundef{thumbnail}
- {}
- {
- \usefield{\insertbibimage}{thumbnail}
- }
- \tcblower
- \xpatchfieldformat{title}{mkbibemph}{textbf}{}{}%
- \def\abx@str{abx@lstr}%
- \noindent
- \usebibmacro{bibindex}%
- \usebibmacro{begentry}%
- \textbf{\printfield{series}}%
- % \usebibmacro{series+number}%
- \bigskip\newline\nopunct\newblock
- {%
- \Large%
- \printfield{title}%
- \newunit\newblock
- }%
- \iffieldundef{volume}
- {}%
- {\textbf{\printfield{volume}}}
- \iffieldundef{titleaddon}
- {}%
- {%
- \newline\nopunct\newblock
- \textbf{\printfield{titleaddon}}%
- }
- \iffieldundef{subtitle}
- {}%
- {%
- \newline\nopunct\newblock
- \printfield{subtitle}%
- }
- \newline\nopunct\newblock
- \newline\nopunct\newblock
- \usebibmacro{author/editor+others/translator+others}%
- \setunit{\labelnamepunct}
- \newline\nopunct\newblock
- \usebibmacro{byauthor}%
- \newunit\newblock
- \usebibmacro{byeditor+others}%
- \newunit\newblock
- \printfield{edition}%
- \newunit\newblock
- \printfield{note}%
- \newunit\newblock
- \usebibmacro{publisher+location+date}%
- \newunit\newblock
- \usebibmacro{chapter+pages}%
- \newunit
- \printfield{pagetotal}%
- \newunit\newblock
- \printlist{language}%
- \iftoggle{bbx:isbn}
- {%
- \newline\nopunct\newblock
- \printfield{isbn}
- }
- {}%
- \newunit\newblock
- \usebibmacro{doi+eprint+url}%
- \newunit\newblock
- \usebibmacro{addendum+pubstate}%
- \setunit{\bibpagerefpunct}\newblock
- \usebibmacro{pageref}%
- \def\abx@str{abx@sstr}%
- \end{tcolorbox}
- \iflistundef{copublisher}
- {}%
- {%
- \bigskip
- % \newline\nopunct\newblock%
- \normalsize
- Publi\'e avec le concours de : \printlist{copublisher}%
- \par
- }
- \iffieldundef{frenchabstract}
- {}%
- {%
- \bigskip
- \printfield{frenchabstract}%
- \par
- \medskip
- %
- \begin{center}
- Prix~public~:\c_space_tl
- \EUR{\printfield{publicprice}}
- \c_space_tl\textendash\c_space_tl Prix~membre~\smf{}~:\c_space_tl
- \EUR{\printfield{smfprice}}
- \c_space_tl\textendash\c_space_tl Frais~de~port~non~compris
- \end{center}
- }
- \iffieldundef{englishabstract}
- {}%
- {%
- \par
- \bigskip
- \begin{otherlanguage}{english}
- \itshape
- \printfield{englishabstract}%
- %
- \par
- \medskip
- %
- \begin{center}
- Public~price:\c_space_tl
- \EUR{\printfield{publicprice}}
- \c_space_tl\textendash\c_space_tl \smf{}~member~price:\c_space_tl
- \EUR{\printfield{smfprice}}
- \c_space_tl\textendash\c_space_tl Shipping~costs~not~included
- \end{center}
- \end{otherlanguage}
- }
- \usebibmacro{finentry}
-}
-% \end{macrocode}
-%
-% \begin{macrocode}
-%</datamodel>
-% \end{macrocode}
-%
-% \chapter{Implementation of the \gztcl{}}
-%
-% Here comes the code of the \gztcl{}.
-% \begin{macrocode}
-%<*class>
-% \end{macrocode}
-%
-% \section{Removability of local customizations}
-%
-% We define two...
-% \begin{macrocode}
-\def\sectioncommandslist{}%
-\let\saved@ifdefinable\@ifdefinable%
-\let\saved@@ifdefinable\@@ifdefinable%
-\newcommand{\startcustomization}{%
- % Redefine \@ifdefinable
- \renewcommand{\@ifdefinable}[2]{%
- \listadd\sectioncommandslist##1%
- \saved@ifdefinable{##1}{##2}%
- }%
- \renewcommand{\@@ifdefinable}[2]{%
- \listadd\sectioncommandslist##1%
- \saved@@ifdefinable{##1}{##2}%
- }%
-}%
-\newcommand{\cleancustomization}{%
- \forlistloop{\undef}{\sectioncommandslist}%
- \def\sectioncommandslist{}%
- \let\@ifdefinable\saved@ifdefinable%
- \let\@@ifdefinable\saved@@ifdefinable%
-}%
-% \end{macrocode}
-%
-% \begin{macrocode}
-%</class>
-% \end{macrocode}
-%
-% \begin{macrocode}
-%<*class|class-article>
-% \end{macrocode}
-%
-% Selective filtering of error messages and warnings:
-% \begin{macrocode}
-\RequirePackage{silence}%
-\WarningFilter{kpfonts}{With 'easyscsl' option}
-% \end{macrocode}
-%
-% Extending \pkg{etoolbox}'s patching commands:
-% \begin{macrocode}
-\RequirePackage{xpatch}%
-% \end{macrocode}
-%
-% We alter the behaviour of the internals of "\usetikzlibrary" so that the
-% \LaTeXe{} push/pop filename system is used (see
-% \url{http://tex.stackexchange.com/a/57428/18401}).
-% \begin{macrocode}
-\patchcmd%
- {\use@@tikzlibrary}%
- {%
- \pgfutil@InputIfFileExists{tikzlibrary\pgf@temp.code.tex}{}{
- \pgfutil@IfFileExists{pgflibrary\pgf@temp.code.tex}{%
- \expandafter\usepgflibrary\expandafter{\pgf@temp}%
- }{%
- \tikzerror{I did not find the tikz library
- '\pgf@temp'. I looked for files named
- tikzlibrary\pgf@temp.code.tex and
- pgflibrary\pgf@temp.code.tex, but neither
- could be found in the current texmf trees.}
- }}%
- }%
- {%
- \@pushfilename
- \pgfutil@InputIfFileExists{tikzlibrary\pgf@temp.code.tex}{}{
- \pgfutil@IfFileExists{pgflibrary\pgf@temp.code.tex}{%
- \expandafter\usepgflibrary\expandafter{\pgf@temp}%
- }{%
- \tikzerror{I did not find the tikz library
- '\pgf@temp'. I looked for files named
- tikzlibrary\pgf@temp.code.tex and
- pgflibrary\pgf@temp.code.tex, but neither
- could be found in the current texmf trees.}
- }}%
- \@popfilename
- }%
- {}{}%
-\patchcmd
- {\tcb@input@library@in}
- {%
- \input\tcbpkgprefix#1\relax%
- }
- {%
- \@pushfilename
- \input\tcbpkgprefix#1\relax%
- \@popfilename
- }
- {}{}
-% \end{macrocode}
-%
-% In order to avoid "__gzt" in the name of each internal (i.e. private) function
-% and variable, we make use of the "@@" place holder provided by the
-% \Pkg{l3docstrip}.
-% \begin{macrocode}
-%<@@=gzt>
-% \end{macrocode}
-%
-% \section{\LaTeX3 loading}
-%
-% For debugging purpose, \Pkg{expl3} could be loaded with its
-% \docAuxKey*{check-declarations} option.
-% \begin{macrocode}
-% \PassOptionsToPackage{check-declarations}{expl3}
-% \end{macrocode}
-%
-% ^^AIn order to define class options, in key-value form, \Pkg{l3keys2e} is
-% ^^Aloaded. This have to be done at an early stage because options have to be
-% ^^Adefined before the (here `book') class loading.
-% \begin{macrocode}
-\RequirePackage{l3keys2e}
-% \end{macrocode}
-%
-% This \gztcl{} will make use of the \pkg{expl3} programming interface
-% (\LaTeX3). In order to load this package, it is enough to load the
-% \Pkg{xparse} which is anyway needed to produce document-level commands.
-% \begin{macrocode}
-\RequirePackage{xparse}
-\ExplSyntaxOn
-% \end{macrocode}
-%
-% The \gztcl{} is declared in the \LaTeX3{}'s way.
-% \begin{macrocode}
-\ProvidesExplClass
-%<class> {gzt}
-%<class-article> {gztarticle}
- {\gztfiledate}
- {\gztfileversion}
- {
- SMF~class~for~the~French~journal^^J
- "La~Gazette~des~Math'ematiciens".
-%<class-article>~(Author~version.)
- }
-% \end{macrocode}
-%
-% The needed \TeX{} format is specified.
-% \begin{macrocode}
-\NeedsTeXFormat{LaTeX2e}
-% \end{macrocode}
-%
-% \section{Class loading}
-%
-% \begin{macrocode}
-\bool_new:N \g_@@_moral_report_bool
-\bool_new:N \g_@@_special_edition_bool
-\bool_new:N \g_@@_for_authors_bool
-\bool_new:N \g_@@_for_printer_bool
-\bool_new:N \g_@@_cover_bool
-\bool_new:N \g_@@_coverpage_bool
-\bool_new:N \g_@@_inside_pages_bool
-%
-\bool_new:N \g_@@_no_inside_backcover_bool
-%<class-article>\bool_gset_true:N \g_@@_for_authors_bool%
-%<class-article>\bool_gset_true:N \g_@@_inside_pages_bool%
-% \end{macrocode}
-%
-% We define some common code to the "moralreport" global option of "gzt" and
-% "gztarticle".
-% \begin{macrocode}
-\tl_gset:Nn \g_@@_moral_report_common_option_tl {%
- \AddToHook{begindocument/before} {%
- \bool_gset_true:N \g_@@_moral_report_bool
- \bool_gset_true:N \g_@@_frontcover_without_minitoc_bool
- \title[short={\bfseries\c_@@_moralreport_rubric_string_tl}]{}
- \tl_gset:Nn \g_@@_rubric_title_tl {\c_@@_moralreport_rubric_string_tl}
- }
-}
-% \end{macrocode}
-%
-% \begin{macrocode}
-%</class|class-article>
-% \end{macrocode}
-%
-% \begin{macrocode}
-%<*class>
-% \end{macrocode}
-%
-% \begin{macro}{\c_@@_pagegrid_dim}
-% We declare the constant dimension of the pagegrid, when enabled.
-% \begin{macrocode}
-\dim_const:Nn \c_@@_pagegrid_dim { 1mm}
-% \end{macrocode}
-% \end{macro}
-%
-% We define some class options:
-% \begin{itemize}
-% \item "pagegrid" in order to draw a grid on each page, in order to check the
-% layout (mostly for debugging purpose),
-% \item ...
-% \end{itemize}
-%
-% \begin{macrocode}
-\tl_gset:Nn \g_@@_frontcover_image_file_tl {\c_@@_issue_frontcover_default_image_file_tl}
-\tl_gset:Nn \g_@@_special_edition_color_tl {@@_default_cover_color}
-\clist_new:N \g_@@_special_edition_logos_clist
-%
-\keys_define:nn { gzt }
-{
- pagegrid .dim_gset:N = \g_@@_pagegrid_dim,
- pagegrid .default:n = {\c_@@_pagegrid_dim},
- forauthors .code:n = {%
- \bool_gset_true:N \g_@@_for_authors_bool%
- \bool_gset_true:N \g_@@_inside_pages_bool%
- },%
- forprinter .bool_gset:N = \g_@@_for_printer_bool,
- frontcoverimagefile .tl_gset:N = \g_@@_frontcover_image_file_tl,
- frontcoverimagefile .default:n = {frontcover},
- output .choice:,
- output / frontcover .code:n = {%
- \bool_gset_true:N \g_@@_for_printer_bool%
- \bool_gset_true:N \g_@@_cover_bool%
- },%
- output / coverpage .code:n = {%
- \bool_gset_true:N \g_@@_coverpage_bool%
- },%
- output / insidepages .code:n = {%
- \bool_gset_true:N \g_@@_for_printer_bool%
- \bool_gset_true:N \g_@@_inside_pages_bool%
- },%
- output / backcover .code:n = {%
- \bool_gset_true:N \g_@@_for_printer_bool%
- },%
- output / web .code:n = {%
- },%
- specialedition .code:n = {
- \bool_gset_true:N \g_@@_special_edition_bool
- \bool_gset_true:N \g_@@_frontcover_without_minitoc_bool
- \keys_set:nn { gzt / specialedition } {#1}
- },
- specialedition / color .code:n = {%
- \tl_gset:Nn \g_@@_special_edition_color_tl {#1}
- },%
- specialedition / minitoc .code:n = {%
- \bool_gset_false:N \g_@@_frontcover_without_minitoc_bool
- },%
- specialedition / logos .code:n = {%
- \clist_gset:Nn \g_@@_special_edition_logos_clist {#1}
- },%
- specialedition / backcover~image .code:n = {%
- \tl_gset:Nn \g_@@_special_edition_backcover_image_tl {#1}
- },%
- specialedition / title .code:n = {%
- \tl_gset:Nn \g_@@_special_edition_title_tl {#1}
- },%
- specialedition / short~title .code:n = {%
- \tl_gset:Nn \g_@@_special_edition_short_title_tl {#1}
- },%
- specialedition / editorial~heading .code:n = {%
- \tl_gset:Nn \g_@@_special_edition_editorial_heading_tl {#1}
- },%
- specialedition / editorial~author .code:n = {%
- \_@@_people:nnnnnnnn {#1}{}{}{}{}{}{editorinchief}{}
- },%
- moralreport .code:n = {
- \g_@@_moral_report_common_option_tl
- \AddToHook{begindocument/before} {%
- \tl_gset:Nn \g_@@_pdftitle_string_tl {\c_@@_moralreport_rubric_string_tl}
- }
- },
-}%
-% \end{macrocode}
-%
-% \begin{macrocode}
-%</class>
-% \end{macrocode}
-%
-% \begin{macrocode}
-%<*class-article>
-% \end{macrocode}
-%
-% \begin{macrocode}
-\keys_define:nn { gztarticle }
-{
- editorial .code:n = {%
- \AddToHook{begindocument}{%
- \_@@_before_display_editorial:n {}%
- }
- \AddToHook{enddocument}{%
- \_@@_after_display_editorial: {}%
- }
- },%
- presidentmessage .code:n = {%
- \AddToHook{begindocument}{%
- \_@@_before_display_presidentmessage: {}%
- }
- \AddToHook{enddocument}{%
- \_@@_after_display_presidentmessage: {}%
- }
- },%
- moralreport .code:n = {
- \g_@@_moral_report_common_option_tl
- \keys_set:nn { gztarticle / moralreport } {#1}
- },
- moralreport / title .code:n = {%
- \tl_gset:Nn \g_@@_moral_report_title_tl {#1}
- },%
- moralreport / short~title .code:n = {%
- \tl_gset:Nn \g_@@_moral_report_short_title_tl {#1}
- },%
-}%
-% \end{macrocode}
-%
-% \begin{macrocode}
-%</class-article>
-% \end{macrocode}
-%
-% \begin{macrocode}
-%<*class>
-% \end{macrocode}
-%
-% If we want to disable the inside backcover.
-% \begin{macrocode}
-% \bool_gset_true:N \g_@@_no_inside_backcover_bool
-% \end{macrocode}
-%
-% \begin{macrocode}
-\ProcessKeysOptions { gzt }
-% \end{macrocode}
-%
-% \begin{macrocode}
-%</class>
-% \end{macrocode}
-%
-% \begin{macrocode}
-%<*class|class-article>
-% \end{macrocode}
-%
-% As subsequent class, the \Cls{book} is loaded, with "openany", "english" and
-% "french" options.
-% \begin{macrocode}
-\PassOptionsToClass{openany,english,french}{book}
-\LoadClass { book }
-\PassOptionsToPackage{table,cmyk}{xcolor}%
-\PassOptionsToPackage{export}{adjustbox}%
-\PassOptionsToPackage{english,french}{translator}
-\PassOptionsToPackage{english,french}{babel}
-\PassOptionsToPackage{english,french}{varioref}
-\PassOptionsToPackage{english,french}{cleveref}
-% \end{macrocode}
-%
-% \section{Packages loading}
-%
-% Many of the \gztcl{} features are provided by third party packages. In this
-% section, we load them and outline their features interesting from the \gztcl{}
-% point of view.\todo{When possible, the list of loaded packages should be split
-% into two lists: one of the packages needed just by \gzt{} (for both its logic
-% and its layout) and one of packages useful for the end user.}
-%
-% \begin{enumerate}
-% \item Compile \TeX{} pictures stand-alone or as part of a document:
-% \begin{macrocode}
-\RequirePackage[group=false]{standalone}%
-% \end{macrocode}
-%
-% \item Tools to load and manipulate data:
-% \begin{macrocode}
-\RequirePackage{datatool}%
-% \end{macrocode}
-%
-% \item In case of \hologo{pdfTeX} engine, we enforce \pkg{fontenc} to be loaded
-% with its \docAuxKey*{T1} option (usual for French and English documents) and
-% \pkg{inputenc} to be loaded with its \docAuxKey*{utf8} option. Otherwise
-% \pkg{fontspec}, convenient for both \hologo{XeLaTeX} and \hologo{LuaLaTeX},
-% is loaded, with ligatures à la \TeX{} by default enabled.
-% \begin{macrocode}
-\sys_if_engine_pdftex:TF
- {
- \RequirePackage[T1]{fontenc}
- \RequirePackage[utf8]{inputenc}
- }{
- \RequirePackage{fontspec}
- }
-% \end{macrocode}
-%
-% Load of main font to be used:
-% \begin{macrocode}
-\RequirePackage[sfmath,easyscsl,noDcommand]{kpfonts}
-% \end{macrocode}
-%
-% \item Formatting both header and footers (pagestyle), and sections headers:
-% \begin{macrocode}
-\RequirePackage[pagestyles]{titlesec}%
-% \end{macrocode}
-%
-% \item Multicolumn output:
-% \begin{macrocode}
-\RequirePackage{multicol}%
-% \end{macrocode}
-%
-% \item Graphics inclusion:
-% \begin{macrocode}
-\RequirePackage{graphicx}%
-% \end{macrocode}
-%
-% \item Establish input relative to a directory:
-% \begin{macrocode}
-%<class>\RequirePackage{import}%
-% \end{macrocode}
-%
-% \item Allow tables to flow over page boundaries:
-% \begin{macrocode}
-\RequirePackage{longtable}%
-% \end{macrocode}
-%
-% \item Put a grey textual watermark on document pages (loaded only if
-% "forauthors" \gzt{}'s option is on):
-% \begin{macrocode}
-%<class>\bool_if:nT { \g_@@_for_authors_bool } {
-%<class> \RequirePackage{draftwatermark}[2006/06/30]%
-%<class>}
-% \end{macrocode}
-%
-% \item Graphics package-alike macros for \enquote{general} boxes:
-% \begin{macrocode}
-\RequirePackage{adjustbox}%
-% \end{macrocode}
-%
-% \item Packages and image files for MWEs (used in case of missing pictograms):
-% \begin{macrocode}
-\RequirePackage{mwe}
-% \end{macrocode}
-%
-% \item A new reference scheme for \LaTeX{}, giving the total number of pages in
-% the document:
-% \begin{macrocode}
-\RequirePackage{zref-totpages}
-% \end{macrocode}
-%
-% \item Reference last page number (which is generally different from the total
-% number of pages in the document):
-% \begin{macrocode}
-%<class>\RequirePackage{lastpage}
-% \end{macrocode}
-%
-% \item A new reference scheme for \LaTeX{}, providing the facilities of the
-% \package{xr} and \package{xr-hyper} packages:
-% \begin{macrocode}
-\RequirePackage{zref-xr}%
-% \end{macrocode}
-%
-% \item Alternative versions of "ragged"-type commands:
-% \begin{macrocode}
-\RequirePackage{ragged2e}%
-% \end{macrocode}
-%
-% \item Define commands that appear not to eat spaces:
-% \begin{macrocode}
-\RequirePackage{xspace}%
-% \end{macrocode}
-%
-% \item ...:
-% \begin{macrocode}
-\RequirePackage{textcase}%
-% \end{macrocode}
-%
-% \item For typesetting epigraphs:
-% \begin{macrocode}
-\RequirePackage{epigraph}%
-% \end{macrocode}
-%
-% \item Context sensitive quotation facilities:
-% \begin{macrocode}
-\RequirePackage[autostyle]{csquotes}%
-% \end{macrocode}
-%
-% \item Programmable bibliographies and citations:
-% \begin{macrocode}
-\RequirePackage[backend=biber,datamodel=gzt,defernumbers=true,autolang=other]{biblatex}%
-\@ifpackagelater{biblatex}{2016/01/01}{%
- \ExecuteBibliographyOptions{giveninits}
-}{
- \ExecuteBibliographyOptions{firstinits}
-}
-% \end{macrocode}
-%
-% \item Extended implementation of the \LaTeX{} array and
-% tabular-environments:
-% \begin{macrocode}
-\RequirePackage{array}
-% \end{macrocode}
-%
-% \item Publication quality tables in \LaTeX{}:
-% \begin{macrocode}
-\RequirePackage{booktabs}
-% \end{macrocode}
-%
-% \item Tabulars with adjustable-width columns:
-% \begin{macrocode}
-\RequirePackage{tabularx}
-% \end{macrocode}
-%
-% % \item Set of tools for authors to typeset quantities in a consistent way
-% % (automated processing of numbers and units, and control of tabular alignment
-% % of numbers):
-% % \begin{macrocode}
-% \RequirePackage{siunitx}
-% % \end{macrocode}
-%
-% \item Modify skips between paragraphs:
-% \begin{macrocode}
-\RequirePackage{nccparskip}
-% \end{macrocode}
-%
-% \item Construction for table cells that span more than one row of the table:
-% \begin{macrocode}
-\RequirePackage{multirow}
-% \end{macrocode}
-%
-% \item Intelligent page references:
-% \begin{macrocode}
-\RequirePackage{varioref}
-% \end{macrocode}
-%
-% \item Extension to \Pkg{amsmath}: correct various bugs/defeciencies in amsmath
-% and useful tools for mathematical typesetting\footnote{The \Pkg{mathtools}
-% loads \pkg{amsmath}, hence it's not necessary to load the latter.}:
-% \begin{macrocode}
-\RequirePackage{mathtools}
-% \end{macrocode}
-%
-% \item Support for using RSFS fonts in maths:
-% \begin{macrocode}
-\RequirePackage{rsfso}
-% \end{macrocode}
-%
-% \item Vector arrows:
-% \begin{macrocode}
-\RequirePackage{esvect}
-% \end{macrocode}
-%
-% \item Hooks to do actions on every page or on the current page:
-% \begin{macrocode}
-% \RequirePackage{everypage}
-% \end{macrocode}
-%
-% \item For translating words in \LaTeX{}.
-% \begin{macrocode}
-\RequirePackage{translator}%
-% \end{macrocode}
-%
-% \item Flexible and easy interface to page dimensions:
-% \begin{macrocode}
-\RequirePackage{geometry}
-% \end{macrocode}
-%
-% \item Bilingual (French and English) documents, with French as default
-% language:
-% \begin{macrocode}
-\RequirePackage{babel}%
-% \end{macrocode}
-%
-% \item METAFONT and macros for Euro sign:
-% \begin{macrocode}
-\RequirePackage{eurosym}%
-% \end{macrocode}
-%
-% Expandable checks for the current language:
-% \begin{macrocode}
-\RequirePackage{iflang}[2007/11/11]%
-% \end{macrocode}
-%
-% \item Tagging tables of contents:
-% \begin{macrocode}
-%<class>\RequirePackage{tableof}%
-% \end{macrocode}
-%
-% \item Completely customisable TOCs:
-% \begin{macrocode}
-\RequirePackage{etoc}%
-% \end{macrocode}
-%
-% \item Subliminal refinements towards typographical perfection:
-% \begin{macrocode}
-\RequirePackage[babel=true]{microtype}%
-% \end{macrocode}
-%
-% \item Current date and time formatting:
-% \begin{macrocode}
-\RequirePackage[nodayofweek]{datetime}%
-% \end{macrocode}
-%
-% \item Customization of lists:
-% \begin{macrocode}
-\RequirePackage[inline]{enumitem}%
-% \end{macrocode}
-%
-% \item Execute command after the next page break:
-% \begin{macrocode}
-\RequirePackage{afterpage}
-% \end{macrocode}
-%
-% \item Extension of \LaTeX{}'s color facilities:
-% \begin{macrocode}
-\RequirePackage{xcolor}%
-% \end{macrocode}
-%
-% \item We need to avoid some macros from few of the following packages to be
-% added to "\@preamblecmds":
-% \begin{macrocode}
-%<class|class-article>\cs_set_eq:NN \_@@_orig_preamblecmds \@preamblecmds
-% \end{macrocode}
-%
-% Create PostScript and PDF graphics in \TeX:
-% \begin{macrocode}
-\RequirePackage{tikz}
-% \end{macrocode}
-%
-% Create normal/logarithmic plots in two and three dimensions:
-% \begin{macrocode}
-\RequirePackage{pgfplots}
-% \end{macrocode}
-%
-% \item Environments for colored and framed text boxes, e.g. theorems:
-% \begin{macrocode}
-\RequirePackage{tcolorbox}
-% \end{macrocode}
-%
-% \item A single TikZ node for the whole page:
-% \begin{macrocode}
-\RequirePackage{tikzpagenodes}
-% \end{macrocode}
-%
-% \item Print page grid in background:
-% \begin{macrocode}
-%<class>\RequirePackage[foreground]{pagegrid}%
-% \end{macrocode}
-%
-% \item Typesetting theorems (AMS style):
-% \begin{macrocode}
-\RequirePackage{amsthm}
-% \end{macrocode}
-%
-% \item Extensions to theorem environments:
-% \begin{macrocode}
-\RequirePackage{thmtools}
-% \end{macrocode}
-%
-% We restore "\@preamblecmds" as it was before:
-% \begin{macrocode}
-%<class|class-article>\cs_set_eq:NN \@preamblecmds \_@@_orig_preamblecmds
-% \end{macrocode}
-%
-% \item Control float placement:
-% \begin{macrocode}
-\RequirePackage{placeins}%
-% \end{macrocode}
-%
-% \item Hypertext marks:
-% \begin{macrocode}
-\RequirePackage[hidelinks,hypertexnames=false]{hyperref}%
-% \end{macrocode}
-%
-% \item A new bookmark (outline) organization for \Pkg{hyperref}:
-% \begin{macrocode}
-\RequirePackage[numbered]{bookmark}%
-% \end{macrocode}
-%
-% \item Create glossaries and lists of acronyms:
-% \begin{macrocode}
-\RequirePackage[nowarn]{glossaries}%
-% \end{macrocode}
-%
-% \item Intelligent cross-referencing:
-% \begin{macrocode}
-\RequirePackage{cleveref}%
-% \end{macrocode}
-% \end{enumerate}
-%
-% Setings of the glossaries and acronyms.
-% \begin{macrocode}
-\makeglossaries
-\setglossarystyle{indexhypergroup}
-\setacronymstyle{long-sc-short}
-% \end{macrocode}
-%
-% In case of \hologo{pdfTeX} engine, the document is by default in sans serif
-% and makes use of the \pkg{lmodern} for the \enquote{ttfamily} font.
-%
-% \begin{macrocode}
-\sys_if_engine_pdftex:T
- {
- \renewcommand\familydefault{\sfdefault}
- \renewcommand{\ttdefault}{lmtt}
- }
-% \end{macrocode}
-%
-% \section{Miscellaneous patches}
-%
-% We pop some commands from the "\@preamblecmds" list in order to allow
-% "\DeclareMathOperator" to be used after the preamble (see
-% \url{http://tex.stackexchange.com/q/223421/18401}).
-% \begin{macrocode}
-\tl_remove_all:Nn \@preamblecmds { \do \DeclareMathOperator }
-\tl_remove_all:Nn \@preamblecmds { \do \newacronym }
-\tl_remove_all:Nn \@preamblecmds { \do \@declmathop }
-\tl_remove_all:Nn \@preamblecmds { \do \usetikzlibrary }
-% \end{macrocode}
-%
-% \section{Messages}
-%
-% In this section, some messages are declared for future use.
-% \begin{macrocode}
-\msg_new:nnnn{gzt}{issue-number-needed}{Option~`#1'~needed!}
- {Please~specify~`#1=<number>',
- ~otherwise~`<number>'~will~be~set~to
- ~`\int_use:N\c_@@_first_issue_number_int'.}
-\msg_new:nnnn{gzt}{unknown-choice}{Choice~`#3'~invalid!}
- {Please~specify~#1=#2.}
-%<class>\msg_new:nnnn{gzt}{configuration-file-missing}{File~`\c_@@_configuration_file_string_tl'~missing!}
-%<class> {The~ whole~ issue~ may~ not~ be~ conform~ if~ `\c_@@_configuration_file_string_tl'~ is~ missing.}
-%<class>\msg_new:nnnn{gzt}{editorial-file-missing}{File~`\c_@@_editorial_file_string_tl'~missing!}
-%<class> {The~ whole~ issue~ requires~ the~ `\c_@@_editorial_file_string_tl'~ file.}
-% \end{macrocode}
-%
-% \section{Counters}
-%
-% In this section, we define some counters for future use.
-%
-% \begin{macro}{\g_@@_editors_in_chief_int}
-% \begin{macro}{\g_@@_articles_int}
-% \begin{macro}{\g_@@_questions_answers_int}
-%
-% The integer "\g_@@_editors_in_chief_int" will count the number of editors in
-% chief in order to use singular or plural form of the corresponding string
-% \enquote{Rédacteur(s) en chef}.
-% \begin{macrocode}
-\int_new:N \g_@@_editors_in_chief_int
-% \end{macrocode}
-%
-% The integer "\g_@@_item_in_rubric_int" will count the number of item in
-% a rubric in order to give a specific behavior of the first of them.
-% \begin{macrocode}
-\int_new:N \g_@@_item_in_rubric_int
-% \end{macrocode}
-%
-% The integer "\g_@@_articles_int" will count the number of articles in order to
-% provide for each of them a unique bibliographic key.
-% \begin{macrocode}
-\int_new:N \g_@@_articles_int
-% \end{macrocode}
-%
-% The integer "\g_@@_question_int" will count the number of questions
-% (and hence of answers) in order to provide distinguish between the first and
-% the subsequent questions/answers of an interview, the former being likely to
-% be typeset differently (e.g. the names of the interviewer and the interviewee
-% may appear only in the first question/answer).
-% \begin{macrocode}
-\int_new:N \g_@@_question_int
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \section{Constants}
-%
-% In this section, we declared some constants for future use.
-%
-% \subsection{Integers}
-%
-% \subsubsection{Issue numbers}
-%
-% \begin{macro}{\c_@@_first_issue_number_int}
-% \begin{macro}{\c_@@_first_issue_year_int}
-% \begin{macro}{\c_@@_first_issue_month_int}
-% \begin{macro}{\c_@@_interval_in_months_int}
-% The first issue number, month and year, and the interval (in months) between
-% two consecutive issues, are declared.
-% \begin{macrocode}
-\int_const:Nn \c_@@_first_issue_number_int { 143 }
-\int_const:Nn \c_@@_first_issue_year_int { 2015 }
-\int_const:Nn \c_@@_first_issue_month_int { 1 }
-\int_const:Nn \c_@@_interval_in_months_int { 3 }
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \subsection{Strings and keywords}
-%
-% We now declare some private string constants.
-%
-% \begin{macro}{\c_@@_journal_short_title_string_tl}
-% \begin{macro}{\c_@@_journal_title_string_tl}
-% \begin{macro}{\c_@@_editors_in_chief_string_tl}
-% \begin{macro}{\c_@@_editors_string_tl}
-% \begin{macro}{\c_@@_editorial_board_string_tl}
-% \begin{macro}{\c_@@_editorial_secretariat_string_tl}
-% \begin{macro}{\c_@@_phone_string_tl}
-% \begin{macro}{\c_@@_fax_string_tl}
-% \begin{macro}{\c_@@_informations_string_tl}
-% \begin{macro}{\c_@@_publishingdirector_string_tl}
-% \begin{macro}{\c_@@_issn_string_tl}
-% \begin{macro}{\c_@@_isbn_string_tl}
-% \begin{macro}{\c_@@_latexclass_string_tl}
-% \begin{macro}{\c_@@_font_string_tl}
-% \begin{macro}{\c_@@_configuration_file_string_tl}
-% \begin{macro}{\c_@@_cover_string_tl}
-% \begin{macro}{\c_@@_artistic_director_string_tl}
-% \begin{macro}{\c_@@_editorial_heading_string_tl}
-% \begin{macro}{\c_@@_toc_string_tl}
-% \begin{macro}{\c_@@_message_string_tl}
-% \begin{macro}{\c_@@_president_signatory_string_tl}
-% \begin{macro}{\c_@@_editorinchief_signatory_string_tl}
-% \begin{macro}{\c_@@_issue_bib_file_tl}
-% \begin{macro}{\c_@@_about_frontcover_string_tl}
-% \begin{macro}{\c_@@_credit_frontcover_string_tl}
-% \begin{macro}{\c_@@_authors_instructions_string_tl}
-% For the journal's short and long titles.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_journal_short_title_string_tl {Gazette}
-\tl_const:Nn \c_@@_journal_title_string_tl {
- \c_@@_journal_short_title_string_tl{}~des~Math\'ematiciens%
-}
-% \end{macrocode}
-%
-% For the names of the underlying classes.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_class_name_tl {gzt}
-\tl_const:Nn \c_@@_article_class_name_tl {gztarticle}
-% \end{macrocode}
-%
-% For the editor(s) in chief.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_editors_in_chief_string_tl
-{
- \int_compare:nNnTF { \g_@@_editors_in_chief_int } > { 1 }
- { \c_@@_editorsinchief_string_tl }
- { \c_@@_editorinchief_string_tl }
-}
-% \end{macrocode}
-% For the editor in chief.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_editorinchief_string_tl {R\'edacteur~en~chef }
-% \end{macrocode}
-% For the editors in chief (plural form of the previous one).
-% \begin{macrocode}
-\tl_const:Nn \c_@@_editorsinchief_string_tl {R\'edacteurs~en~chef }
-% \end{macrocode}
-% For the editors.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_editors_string_tl {R\'edacteurs }
-% \end{macrocode}
-% For the editorial board.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_editorial_board_string_tl {Comit\'e~de~r\'edaction}
-% \end{macrocode}
-% For the editorial board of special_edition.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_special_edition_editorial_board_string_tl {Num\'ero~sp\'ecial~de~la~Gazette~des~Math\'ematiciens~sous~la~direction~de~:}
-% \end{macrocode}
-% For the editorial_secretariat.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_editorial_secretariat_string_tl {Secr\'etariat~de~r\'edaction}
-% \end{macrocode}
-% For the phone.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_phone_string_tl {T\'el.}
-% \end{macrocode}
-% For the fax.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_fax_string_tl {Fax}
-% \end{macrocode}
-% For the informations.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_informations_string_tl {Renseignements}
-% \end{macrocode}
-% For the publishing director.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_publishingdirector_string_tl {Directeur~de~la~publication}
-% \end{macrocode}
-% For the \textsc{issn}.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_issn_string_tl {\textsc{issn}}
-% \end{macrocode}
-% For the \textsc{isbn}.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_isbn_string_tl {\textsc{isbn}}
-% \end{macrocode}
-% For "\LaTeX Class".
-% \begin{macrocode}
-\tl_const:Nn \c_@@_latexclass_string_tl {Classe~\LaTeX{}}
-% \end{macrocode}
-% For "Impression".
-% \begin{macrocode}
-\tl_const:Nn \c_@@_printer_string_tl {Impression}
-% \end{macrocode}
-% For configuration file.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_configuration_file_string_tl {gzt.cfg}
-% \end{macrocode}
-% For the artistic director.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_artistic_director_string_tl {Conception~graphique}
-% \end{macrocode}
-% For the editorial.
-% \begin{macrocode}
-\AddToHook{begindocument/before}{
- \bool_if:NTF {\g_@@_special_edition_bool} {
- \tl_const:Nn \c_@@_editorial_heading_string_tl {Avant-propos}
- }{
- \tl_const:Nn \c_@@_editorial_heading_string_tl {\'Editorial}
- }
-}
-% \end{macrocode}
-% For the editor in chief.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_editorinchief_signatory_string_tl {\c_@@_editorinchief_string_tl~de~la~\c_@@_journal_title_string_tl}
-% \end{macrocode}
-% For the table of contents.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_toc_string_tl {Sommaire}
-% \end{macrocode}
-% For the president message.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_president_message_string_tl {Mot~du~pr\'esident}
-% \end{macrocode}
-% For the president.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_president_signatory_string_tl {pr\'esident~de~la~\g_@@_smf_short_string_tl}
-% \end{macrocode}
-% For the date of the editor in chief's message.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_editorinchief_message_date_string_tl {Le~\displaydate{@@_editorinchief_message_date}}
-% \end{macrocode}
-% For the date of the president's message.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_president_message_date_string_tl {Le~}
-% \end{macrocode}
-% For the special editions.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_special_edition_string_tl {\c_space_tl{}sp{\'e}cial}
-\tl_const:Nn \c_@@_long_special_edition_string_tl {Numéro\c_@@_special_edition_string_tl}%
-\tl_const:Nn \c_@@_short_special_edition_string_tl {\No{}\c_@@_special_edition_string_tl}%
-% \end{macrocode}
-% For the front cover header text.
-% \begin{macrocode}
-\AddToHook{begindocument/before}{
- \tl_const:Nn \c_@@_frontcover_header_string_tl {
- \bool_if:NT {\g_@@_special_edition_bool} {
- \text_uppercase:n {\c_@@_long_special_edition_string_tl}
- \medskip
- \par
- \normalsize
- }
- \l_@@_uppercased_date_format\displaydate{@@_date}
- \bool_if:NF {\g_@@_special_edition_bool} {
- \c_space_tl
- \textendash{}
- \c_space_tl
- \No
- \int_use:N\g_@@_issue_number_int%
- }
- }
-}
-% \end{macrocode}
-% For the graphics extensions.
-% \begin{macrocode}
-\clist_const:Nn \c_@@__graphics_extensions_clist {png,PNG,jpg,JPG,jpeg,JPEG,pdf,PDF}
-% \end{macrocode}
-% For the pdftitle text.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_pdftitle_string_tl {
- \bool_if:NTF {\g_@@_moral_report_bool} {
- \c_@@_moralreport_rubric_string_tl
- }{
- \c_@@_journal_title_string_tl
- % \c_space_tl
- % \textendash{}
- % \c_space_tl
- % \l_@@_uppercased_date_format{\displaydate{@@_date}}
- \c_space_tl
- \textendash{}
- \c_space_tl
- N°
- \bool_if:NTF {\g_@@_special_edition_bool} {
- \c_@@_special_edition_string_tl
- \c_space_tl
- \g_@@_special_edition_title_tl
- }{
- \int_use:N\g_@@_issue_number_int
- }
- }
-}
-% \end{macrocode}
-% For the name of the directory containing the editorial and the president message.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_frontmatter_directory_string_tl {frontmatter}
-% \end{macrocode}
-% For the name of the directory containing the 3rd and 4th cover pages.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_backmatter_directory_string_tl {backmatter}
-% \end{macrocode}
-% For the name of the file containing the editorial.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_editorial_file_string_tl {\c_@@_frontmatter_directory_string_tl/editorial}
-% \end{macrocode}
-% For the name of the file containing the president message.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_president_message_file_string_tl {\c_@@_frontmatter_directory_string_tl/presidentmessage}
-% \end{macrocode}
-% For the path to the current issue's directory.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_issue_path_string_tl {\int_use:N \g_@@_issue_number_int}
-% \end{macrocode}
-% For the name and path of the images directory.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_images_directory_string_tl {images}
-\tl_const:Nn \c_@@_issue_images_path_string_tl {% \c_@@_issue_path_string_tl/
- \c_@@_images_directory_string_tl}
-% \end{macrocode}
-% For the name of the file containing the image of the current issue's front cover.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_issue_frontcover_default_image_file_tl {frontcover}
-% \end{macrocode}
-% For the name of the file containing the text of the current issue's back cover.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_issue_backcover_text_file_string_tl {backcover}
-\tl_const:Nn \c_@@_backcover_page_file_string_tl {\c_@@_backmatter_directory_string_tl/\c_@@_issue_backcover_text_file_string_tl}
-% \end{macrocode}
-% For the name of the file containing the text of the special issue's abstract back cover.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_special_edition_backcover_text_file_string_tl {abstract_backcover}
-\tl_const:Nn \c_@@_special_edition_backcover_page_file_string_tl {\c_@@_backmatter_directory_string_tl/\c_@@_special_edition_backcover_text_file_string_tl}
-% \end{macrocode}
-% For the name of the file of the special issue's picture back cover.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_special_edition_backcover_picture_string_tl {picture_backcover}
-\tl_const:Nn \c_@@_special_edition_backcover_page_picture_string_tl {\c_@@_backmatter_directory_string_tl/\c_@@_special_edition_backcover_picture_string_tl}
-% \end{macrocode}
-% For the name of the file containing the acronyms.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_acronyms_file_string_tl {\c_@@_class_name_tl acronyms}
-% \end{macrocode}
-% For authors' instructions file.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_authors_instructions_file_extension_tl {ain}
-\tl_const:Nn \c_@@_authors_instructions_file_tl {\c_sys_jobname_str.\c_@@_authors_instructions_file_extension_tl}
-% \end{macrocode}
-% For the few words about the front cover.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_about_frontcover_string_tl {\`A~propos~de~la~couverture.}
-% \end{macrocode}
-% For the credit of the front cover.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_credit_frontcover_string_tl {cr\'edit}
-% \end{macrocode}
-% For the authors instructions.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_authors_instructions_string_tl {Instructions~aux~auteurs}
-% \end{macrocode}
-% For the preliminary versions sent to authors for checking.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_preliminary_version_string_tl {%
- Ce~document~est~une~{\'e}preuve~vous~permettant~de~contr{\^o}ler~l'int{\'e}grit{\'e}~du~
- texte~d'origine~(et~de~la~bibliographie~s'il~y~en~a~une)~de~votre~article~
- {\`a}~para{\^\i}tre~dans~le~prochain~num{\'e}ro~de~la~\gzt*{}.~La~mise~en~page~
- actuelle~n'est~pas~d{\'e}finitive\,:~votre~article~pourra~en~particulier~ne~pas~
- d{\'e}buter~en~haut~d'une~page.%
-}
-% \end{macrocode}
-% For the string that preceeds the title in the \enquote{Tell me} rubric.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_tellme_extra_title_string_tl {...\c_space_tl}
-% \end{macrocode}
-% For the separator between a rubric and an article's title in the minitoc.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_minitoc_rubric_title_separator_string_tl {\c_space_tl\textendash}
-% \end{macrocode}
-% Names of the pictogram files.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_mathematics_pictogram_file_name_tl {picto-mathematics}
-\tl_const:Nn \c_@@_dossier_pictogram_file_name_tl {picto-dossier}
-\tl_const:Nn \c_@@_community_pictogram_file_name_tl {picto-hands}
-\tl_const:Nn \c_@@_interview_pictogram_file_name_tl {picto-interview}
-\tl_const:Nn \c_@@_teaching_pictogram_file_name_tl {picto-teaching}
-\tl_const:Nn \c_@@_parity_pictogram_file_name_tl {picto-parity}
-\tl_const:Nn \c_@@_tellme_pictogram_file_name_tl {picto-tellme}
-\tl_const:Nn \c_@@_information_pictogram_file_name_tl {picto-information}
-\tl_const:Nn \c_@@_rearviewmirror_pictogram_file_name_tl {picto-rearviewmirror}
-\tl_const:Nn \c_@@_tribute_pictogram_file_name_tl {picto-tribute}
-\tl_const:Nn \c_@@_books_pictogram_file_name_tl {picto-books}
-\tl_const:Nn \c_@@_forum_pictogram_file_name_tl {picto-forum}
-% \end{macrocode}
-% For the miscellaneous rubrics.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_mathematics_rubric_string_tl {Math\'ematiques}
-\tl_const:Nn \c_@@_dossier_rubric_string_tl {Dossier}
-\tl_const:Nn \c_@@_community_rubric_string_tl {Vie~de~la~communaut\'e}
-\tl_const:Nn \c_@@_interview_rubric_string_tl {Entretien}
-\tl_const:Nn \c_@@_teaching_rubric_string_tl {Diffusion~des~savoirs}
-\tl_const:Nn \c_@@_parity_rubric_string_tl {Parit\'e}
-\tl_const:Nn \c_@@_tellme_rubric_string_tl {Raconte-moi}
-\tl_const:Nn \c_@@_information_rubric_string_tl {Information}
-\tl_const:Nn \c_@@_rearviewmirror_rubric_string_tl {R\'etroviseur}
-\tl_const:Nn \c_@@_tribute_rubric_string_tl {Carnet}
-% \tl_const:Nn \c_@@_books_rubric_string_tl {Recension}
-\tl_const:Nn \c_@@_books_rubric_string_tl {Livres}
-\tl_const:Nn \c_@@_latex_rubric_string_tl {Astuces~\LaTeX{}}
-\tl_const:Nn \c_@@_forum_rubric_string_tl {Tribune~libre}
-\tl_const:Nn \c_@@_published_with_help_of_string_tl {Publi\'e~avec~le~concours~de~:}
-\tl_const:Nn \c_@@_advertisement_directory_string_tl {advertisement/}
-\tl_const:Nn \c_@@_advertisement_string_tl {Publicit\'e}
-\tl_const:Nn \c_@@_moralreport_rubric_string_tl {Rapport~moral}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% For the long and short forms of \textsc{smf}.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_smf_short_string_tl {\textsc{smf}}
-\tl_const:Nn \c_@@_smf_short_pdf_string_tl {SMF}
-\tl_const:Nn \c_@@_smf_string_tl {Soci\'et\'e~Math\'ematique~de~France}
-% \end{macrocode}
-% For the long and short forms of \enquote{c'est-à-dire} and
-% \enquote{C'est-à-dire} (\enquote{that is} and \enquote{That is}).
-% \begin{macrocode}
-\tl_const:Nn \c_@@_cad_short_string_tl {c.-\`a-d.}
-\tl_const:Nn \c_@@_cad_string_tl {c'est-\`a-dire}
-\tl_const:Nn \c_@@_Cad_short_string_tl {C.-\`a-d.}
-\tl_const:Nn \c_@@_Cad_string_tl {C'est-\`a-dire}
-% \end{macrocode}
-% For the footer text.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_footer_string_tl {
- \c_@@_footer_size_font_tl
- \textcolor{@@_smf_number_color}{\text_uppercase:n {\c_@@_smf_short_string_tl}}
- \c_space_tl
- \textcolor{@@_date_color}{
- \textendash{}\c_space_tl
- \bool_if:NTF {\g_@@_moral_report_bool} {
- \text_uppercase:n { \c_@@_moralreport_rubric_string_tl }
- }{
- \text_uppercase:n {\c_@@_journal_short_title_string_tl}
- \bool_if:nF { \g_@@_inside_frontcover_bool || \g_@@_backmatter_bool || {\int_compare_p:nNn {\g_@@_issue_number_int}={0}} }
- {
- \c_space_tl\textendash{}\c_space_tl
- \l_@@_uppercased_date_format\displaydate{@@_date}
- \bool_if:NF {\g_@@_special_edition_bool} {
- \c_space_tl
- \textendash{}\c_space_tl
- \textcolor{@@_smf_number_color}{\No\int_use:N\g_@@_issue_number_int}
- }
- }
- }
- }
-}
-% \end{macrocode}
-% For the name of the file containing the \textsc{smf} logo.
-% \begin{macrocode}
- \file_if_exist:nTF { logo_SMF.pdf }{%
- \tl_const:Nn \c_@@_smf_logo_file_string_tl {logo_SMF}
- }{
- \tl_const:Nn \c_@@_smf_logo_file_string_tl {example-image}
- }
-% \end{macrocode}
-% For the name of the file containing the bibliography of the current issue.
-% \begin{macrocode}
-% \tl_const:Nn \c_@@_issue_bib_file_string_tl {issue-\c_sys_jobname_str.bib}
-\tl_const:Nn \c_@@_issue_bib_file_suffix_string_tl {@@}
-\tl_const:Nn \c_@@_issue_bib_file_string_tl {\c_sys_jobname_str\c_@@_issue_bib_file_suffix_string_tl.bib}
-\tl_const:Nn \c_@@_issue_bib_path_string_tl {\c_@@_issue_bib_file_string_tl}
-% \end{macrocode}
-% For the prefix of the bibliographic key of each article.
-% \begin{macrocode}
-\bool_if:NTF {\g_@@_special_edition_bool} {
- \tl_const:Nn \c_@@_issue_bib_key_tl {special-edition}
-}{
- \tl_const:Nn \c_@@_issue_bib_key_tl {\int_use:N \g_@@_issue_number_int}
-}
-% \end{macrocode}
-% For the interview title.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_interview_title_string_tl {En~apart\'e~avec~}
-% \end{macrocode}
-% For the asides opening and eventuelly closing punctuation marks.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_aside_string_tl {--}
-% \end{macrocode}
-% For the draft watermark.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_draftwatermark_string_tl {draft}
-% \end{macrocode}
-% For the text accompagnying the date displayed in the footer of the authors' versions.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_compiled_string_tl {
- \int_compare:nNnT {\g_@@_issue_number_int}={0} {
- \c_@@_footer_size_font_tl
- \IfLanguageName{french}{
- Compil\'e~le~
- }{
- Compiled~on~
- }
- \today
- }
-}
-% \end{macrocode}
-%
-% % \begin{macro}{smf}
-% % \begin{macro}{issn}
-% % \begin{macro}{isbn}
-% % \begin{macro}{cv}
-% % \begin{macrocode}
-% \newacronym{smf}{smf}{\c_@@_smf_string_tl}%
-% \newacronym{issn}{issn}{International Standard Serial Number}%
-% \newacronym{isbn}{isbn}{International Standard Book Number}%
-% \newacronym{cv}{cv}{curriculum vit\ae}%
-% \end{macrocode}
-% % \end{macro}
-% % \end{macro}
-% % \end{macro}
-% % \end{macro}
-%
-% \subsection{Booleans}
-%
-% We now declare the booleans that will be used.
-%
-% \begin{macro}{\g_@@_frontcover_bool}
-% \begin{macro}{\g_@@_inside_frontcover_bool}
-% \begin{macro}{\g_@@_inside_backcover_bool}
-% \begin{macro}{\g_@@_frontmatter_bool}
-% \begin{macro}{\g_@@_rubric_bool}
-% \begin{macro}{\g_@@_interview_rubric_bool}
-% \begin{macro}{\g_@@_mainmatter_bool}
-% \begin{macro}{\g_@@_backmatter_bool}
-% \begin{macro}{\g_@@_backcover_bool}
-% The following booleans will be used to test wheter we are respectively in the
-% front cover, in the inside front cover, in the frontmatter, in (first page
-% of) a rubric, in the mainmatter.
-% \begin{macrocode}
-\bool_new:N \g_@@_frontcover_bool
-\bool_new:N \g_@@_inside_frontcover_bool
-\bool_new:N \g_@@_inside_backcover_bool
-\bool_new:N \g_@@_frontmatter_bool
-\bool_new:N \g_@@_rubric_bool
-\bool_new:N \g_@@_interview_rubric_bool
-\bool_new:N \g_@@_tellme_rubric_bool
-\bool_new:N \g_@@_rearviewmirror_rubric_bool
-\bool_new:N \g_@@_books_rubric_bool
-\bool_new:N \g_@@_mainmatter_bool
-\bool_new:N \g_@@_backmatter_bool
-\bool_new:N \g_@@_backcover_bool
-\bool_new:N \g_@@_frontcover_without_minitoc_bool
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\g_@@_previous_article_with_bibliography_or_minibio_bool}
-% The following boolean will be used to test, for a given (not first) article
-% of a rubric, whether the previous article ends with a bibliography or
-% a minibio, in order to adjust the vertical space before its \enquote{bullet
-% and rule}.
-% \begin{macrocode}
-\bool_new:N \g_@@_previous_article_with_bibliography_or_minibio_bool
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\g_@@_advertisement_bool}
-% The following boolean will be used to test wheter we are inside
-% an advertisement page.
-% \begin{macrocode}
-\bool_new:N \g_@@_advertisement_bool
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\g_@@_multicols_bool}
-% The following boolean will be used to test wheter we are inside
-% a \pkg{multicol}'s "multicols" environment.
-% \begin{macrocode}
-\bool_new:N \g_@@_multicols_bool
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\g_@@_refsection_bool}
-% The following boolean will be used to test wheter we are inside
-% a \pkg{biblatex}'s "refsection" environment.
-% \begin{macrocode}
-\bool_new:N \g_@@_refsection_bool
-% \end{macrocode}
-% \end{macro}
-%
-% \subsection{Dimensions}
-%
-% \subsubsection{Geometry of the page}
-%
-% \begin{macro}{\c_@@_rubrics_abstract_width_dim}
-% \begin{macro}{\c_@@_rubrics_head_text_abstract_width_dim}
-% \begin{macro}{\c_@@_rubrics_head_text_no_abstract_width_dim}
-% \begin{macro}{\l_@@_rubrics_head_text_width_dim}
-% We declare the constant (default) dimensions of the boxes containing the
-% abstract and head text rubrics.
-% \begin{macrocode}
-\dim_const:Nn \c_@@_rubrics_abstract_width_dim { 85mm}
-\dim_const:Nn \c_@@_rubrics_head_text_abstract_width_dim { 50mm}
-\dim_const:Nn \c_@@_rubrics_head_text_no_abstract_width_dim
-{ \c_@@_rubrics_abstract_width_dim + \c_@@_rubrics_head_text_abstract_width_dim}
-\dim_new:N \l_@@_rubrics_head_text_width_dim
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\c_@@_offset_dim}
-% \begin{macro}{\c_@@_paperheight_dim}
-% \begin{macro}{\c_@@_paperwidth_dim}
-% \begin{macro}{\c_@@_topmargin_dim}
-% \begin{macro}{\c_@@_headsep_dim}
-% \begin{macro}{\c_@@_botmargin_dim}
-% \begin{macro}{\c_@@_innermargin_dim}
-% \begin{macro}{\c_@@_outermargin_dim}
-% \begin{macro}{\c_@@_footskip_dim}
-% \begin{macro}{\c_@@_header_line_width_dim}
-% \begin{macro}{\c_@@_header_line_yshift_dim}
-% We first declare the default page layout constant dimensions.
-% \begin{macrocode}
-\dim_const:Nn \c_@@_layoutheight_dim { 270mm}
-\dim_const:Nn \c_@@_layoutwidth_dim { 210mm}
-% \end{macrocode}
-%
-% We define a \enquote{printer} layout offset dimension
-% "\c_@@_printer_layoutoffset_dim", fixed by the printer to be \SI{5}{\mm}.
-% \begin{macrocode}
-\dim_const:Nn \c_@@_printer_layoutoffset_dim { 5mm}
-% \end{macrocode}
-%
-% We define a \enquote{potential} layout offset dimension which is non-zero (and
-% the equal to \enquote{printer} layout offset dimension) iff the output is
-% prepared for the printer ("\g_@@_for_printer_bool" flag equals true).
-% \begin{macrocode}
-\bool_if:NTF {\g_@@_for_printer_bool} {
- \dim_const:Nn \c_@@_potential_layoutoffset_dim { \c_@@_printer_layoutoffset_dim}
-}{
- \dim_const:Nn \c_@@_potential_layoutoffset_dim {\c_zero_dim}
-}
-% \end{macrocode}
-%
-% We define a \enquote{printer} binding dimension
-% "\c_@@_printer_bindingoffset_dim", fixed by the printer to have different
-% values depending on some total pages thresholds. If the binding dimension is
-% denoted by $b$ (and expressed in millimeters) and the total page number of the
-% document\footnote{Except cover pages, that is the \enquote{real} total page
-% number minus $4$.} is denoted by $N$, the thresholds are as follows:
-% \begin{equation}\label{binding}
-% b=
-% \begin{cases}
-% 0 & \text{ si } N < 68 \\
-% 3 & \text{ si } 68\leq N<80 \\
-% 3.5 & \text{ si } 80\leq N<88 \\
-% 3.9 & \text{ si } 88\leq N<96 \\
-% 4.1 & \text{ si } 96\leq N<104 \\
-% 4.5 & \text{ si } 104\leq N<120 \\
-% 5 & \text{ si } N\geq 120
-% \end{cases}
-% \end{equation}
-%
-% We define the thresholds:
-% \begin{macrocode}
-\int_const:Nn \c_@@_thresold_a_int {68}
-\int_const:Nn \c_@@_thresold_b_int {80}
-\int_const:Nn \c_@@_thresold_c_int {88}
-\int_const:Nn \c_@@_thresold_d_int {96}
-\int_const:Nn \c_@@_thresold_e_int {104}
-\int_const:Nn \c_@@_thresold_f_int {120}
-% \end{macrocode}
-% and the corresponding binding dimensions:
-% \begin{macrocode}
-\dim_const:Nn \c_@@_bindingoffset_a_dim {3mm}
-\dim_const:Nn \c_@@_bindingoffset_b_dim {3.5mm}
-\dim_const:Nn \c_@@_bindingoffset_c_dim {3.9mm}
-\dim_const:Nn \c_@@_bindingoffset_d_dim {4.1mm}
-\dim_const:Nn \c_@@_bindingoffset_e_dim {4.5mm}
-\dim_const:Nn \c_@@_bindingoffset_f_dim {5mm}
-% \end{macrocode}
-%
-% In order to know the total pages number of the document (store in
-% "\g_@@_total_page_number_int"), we need first to specify the
-% \enquote{external} document whom \File{.aux} will be read.
-% \begin{macrocode}
-\int_new:N \g_@@_total_pages_number_int%
-\int_new:N \g_@@_total_inside_pages_number_int%
-\zexternaldocument[self]{\jobname}%
-% \end{macrocode}
-%
-% We extract the total pages number thanks to "\zref@extractdefault" from
-% \Package{zref-totpages}.
-% \begin{macrocode}
-\int_gset:Nn \g_@@_total_pages_number_int { \zref@extractdefault{selfLastPage}{abspage}{0} }
-\int_gset:Nn \g_@@_total_inside_pages_number_int { \g_@@_total_pages_number_int - 4 }
-% \end{macrocode}
-%
-% The \enquote{printer} binding dimension is now store in
-% "\c_@@_printer_bindingoffset_dim" following \vref{binding}.
-%
-% \begin{macrocode}
-\int_compare:nNnTF {\g_@@_total_inside_pages_number_int}<{\c_@@_thresold_a_int}
-{
- \dim_const:Nn \c_@@_printer_bindingoffset_dim { \c_zero_dim }
-}{
- \int_compare:nNnTF {\g_@@_total_inside_pages_number_int}<{\c_@@_thresold_b_int}
- {
- \dim_const:Nn \c_@@_printer_bindingoffset_dim { \c_@@_bindingoffset_a_dim }
- }{
- \int_compare:nNnTF {\g_@@_total_inside_pages_number_int}<{\c_@@_thresold_c_int}
- {
- \dim_const:Nn \c_@@_printer_bindingoffset_dim { \c_@@_bindingoffset_b_dim }
- }{
- \int_compare:nNnTF {\g_@@_total_inside_pages_number_int}<{\c_@@_thresold_d_int}
- {
- \dim_const:Nn \c_@@_printer_bindingoffset_dim { \c_@@_bindingoffset_c_dim }
- }{
- \int_compare:nNnTF {\g_@@_total_inside_pages_number_int}<{\c_@@_thresold_e_int}
- {
- \dim_const:Nn \c_@@_printer_bindingoffset_dim { \c_@@_bindingoffset_d_dim }
- }{
- \int_compare:nNnTF {\g_@@_total_inside_pages_number_int}<{\c_@@_thresold_f_int}
- {
- \dim_const:Nn \c_@@_printer_bindingoffset_dim { \c_@@_bindingoffset_e_dim }
- }{
- \dim_const:Nn \c_@@_printer_bindingoffset_dim { \c_@@_bindingoffset_f_dim }
- }
- }
- }
- }
- }
-}
-% \end{macrocode}
-%
-% The binding offset is applied iff the front cover is required ("frontcover"
-% option), which implies the output is prepared for the printer, with non-zero
-% offset ("\g_@@_for_printer_bool" flag equals true).
-% \begin{macrocode}
-\bool_if:NTF {\g_@@_cover_bool} {
- \dim_const:Nn \c_@@_potential_bindingoffset_dim { \c_@@_printer_bindingoffset_dim }
-}{
- \dim_const:Nn \c_@@_potential_bindingoffset_dim {\c_zero_dim}
-}
-% \end{macrocode}
-%
-% The paper height is rather simple: it is always the layout height dimension
-% plus 2 times (top and bottom) the layout offset dimension (which turns to be
-% non-zero iff the output is prepared for the printer).
-% \begin{macrocode}
-\dim_const:Nn \c_@@_paperheight_dim { \c_@@_layoutheight_dim+2\c_@@_potential_layoutoffset_dim}
-% \end{macrocode}
-%
-% The paper width is more complicated: it is the layout width dimension plus:
-% \begin{itemize}
-% \item the \enquote{potential} binding offset (which turns to be non-zero iff
-% only the cover page is output),
-% \item the layout offset dimension (which turns to be non-zero iff the output
-% is prepared for the printer):
-% \begin{description}
-% \item[if for the cover pages] just 1 time,
-% \item[if for the other pages] 2 times.
-% \end{description}
-% \end{itemize}
-% \begin{macrocode}
-\bool_if:NTF {\g_@@_cover_bool} {
- \dim_const:Nn \c_@@_paperwidth_dim {
- \c_@@_layoutwidth_dim
- +
- \c_@@_potential_layoutoffset_dim
- +\c_@@_potential_bindingoffset_dim
- }
-}{
- \dim_const:Nn \c_@@_paperwidth_dim {
- \c_@@_layoutwidth_dim
- +
- 2
- \c_@@_potential_layoutoffset_dim
- +\c_@@_potential_bindingoffset_dim
- }
-}
-% \end{macrocode}
-%
-% The image width is the layout width plus the (non-zero) printer layout offset
-% dimension:
-% \begin{macrocode}
-\dim_const:Nn \c_@@_frontcover_image_width_dim {
- \c_@@_layoutwidth_dim
- +
- \c_@@_printer_layoutoffset_dim
-}
-\dim_const:Nn \c_@@_topmargin_dim { 31mm}
-\dim_const:Nn \c_@@_topmargin_frontcover_dim {
- \c_@@_topmargin_dim
- + 30mm
-}
-\dim_const:Nn \c_@@_topmargin_inside_cover_dim {
- \c_@@_topmargin_dim
- +10mm
-}
-\dim_const:Nn \c_@@_topmargin_front_matter_dim {
- \c_@@_topmargin_inside_cover_dim
-}
-% \dim_const:Nn \c_@@_topmargin_backcover_dim {
-% \c_@@_topmargin_frontcover_dim
-% }
-\dim_const:Nn \c_@@_headsep_dim { 24mm}
-\dim_const:Nn \c_@@_headsep_frontcover_dim {
- \c_@@_headsep_dim
- +31mm
- % -\c_@@_potential_layoutoffset_dim
-}
-\dim_const:Nn \c_@@_headsep_inside_frontcover_dim {
- \c_@@_headsep_dim
- +7mm
-}
-\dim_const:Nn \c_@@_headsep_front_matter_dim {
- \c_@@_headsep_inside_frontcover_dim
-}
-\dim_const:Nn \c_@@_headheight_dim { \c_zero_dim }
-\dim_const:Nn \c_@@_botmargin_dim { 30mm}
-\dim_const:Nn \c_@@_footskip_dim { 26mm}
-% \end{macrocode}
-%
-% Inner margins of the initial issue (\#~143) were too small. We make them
-% definitively bigger as of \SI{5}{\milli\meter} ("\c_@@_extra_margin_dim") and
-% make the outer margins smaller of the same dimension.
-% \begin{macrocode}
-\dim_const:Nn \c_@@_extra_margin_dim { 5mm }
-\dim_const:Nn \c_@@_innermargin_dim { 15mm - \c_@@_potential_bindingoffset_dim + \c_@@_extra_margin_dim}
-\dim_const:Nn \c_@@_outermargin_dim { 30mm - \c_@@_extra_margin_dim }
-\dim_const:Nn \c_@@_inside_cover_box_width_dim { 165mm }%
-\dim_const:Nn \c_@@_innermargin_inside_cover_dim {
- (\c_@@_layoutwidth_dim - \c_@@_inside_cover_box_width_dim)/2
- - \c_@@_potential_bindingoffset_dim
- % + \c_@@_adjustmargin_dim
-}
-\dim_const:Nn \c_@@_outermargin_inside_cover_dim {
- (\c_@@_layoutwidth_dim - \c_@@_inside_cover_box_width_dim)/2
- % - \c_@@_adjustmargin_dim
-}
-\dim_const:Nn \c_@@_innermargin_backcover_dim { 10mm }
-\dim_const:Nn \c_@@_outermargin_backcover_dim { \c_@@_innermargin_backcover_dim }
-\dim_const:Nn \c_@@_topmargin_backcover_dim { \c_@@_innermargin_backcover_dim }
-\dim_const:Nn \c_@@_bottommargin_backcover_dim { \c_@@_innermargin_backcover_dim }
-\dim_const:Nn \c_@@_frontcover_image_height_dim { 160mm}
-\dim_const:Nn \c_@@_radius_arc_dim { 85mm }%
-\dim_const:Nn \c_@@_frontmatter_headtext_xshift_dim { 19mm }%
-\dim_const:Nn \c_@@_frontmatter_headtext_o_xshift_dim {
- -\c_@@_frontmatter_headtext_xshift_dim -\c_@@_potential_layoutoffset_dim%
-}%
-\dim_const:Nn \c_@@_frontmatter_headtext_e_xshift_dim {
- \c_@@_frontmatter_headtext_xshift_dim +\c_@@_potential_layoutoffset_dim%
-}%
-\dim_const:Nn \c_@@_frontmatter_headtext_yshift_dim { -6.5mm-\c_@@_potential_layoutoffset_dim }%
-\dim_const:Nn \c_@@_header_line_width_dim { 0.25mm}
-\dim_const:Nn \c_@@_header_line_yshift_dim { -1mm-\c_@@_header_line_width_dim}%
-\dim_const:Nn \c_@@_footer_background_height_dim { 10mm + \c_@@_potential_layoutoffset_dim }
-\dim_const:Nn \c_@@_front_matter_extra_innermargin_dim { 28mm }
-\dim_const:Nn \c_@@_front_matter_extra_outermargin_dim { 7mm }
-\dim_const:Nn \c_@@_inside_cover_offset_dim { \c_zero_dim }%
-% \dim_const:Nn \c_@@_inside_cover_offset_dim { 7.5mm }%
-\dim_const:Nn \c_@@_pictogram_width_dim { 23mm }%
-\dim_const:Nn \c_@@_header_xshift_dim { \c_@@_pictogram_width_dim-6mm }%
-\dim_const:Nn \c_@@_header_yshift_dim { 5mm }%
-\dim_const:Nn \c_@@_xshift_arccircle_A_dim { \c_@@_rubrics_abstract_width_dim+\c_@@_innermargin_dim+10mm+\c_@@_potential_layoutoffset_dim }%
-\dim_const:Nn \c_@@_yshift_arccircle_A_dim { -22mm-\c_@@_potential_layoutoffset_dim }%
-\dim_const:Nn \c_@@_xshift_arccircle_B_dim {%
- (\c_@@_rubrics_abstract_width_dim+\c_@@_innermargin_dim)/2%
- % \c_@@_innermargin_dim+(\c_@@_rubrics_abstract_width_dim/2)%
- % \c_@@_xshift_arccircle_A_dim/2
-}%
-\dim_const:Nn \c_@@_yshift_arccircle_B_dim { -\c_@@_potential_layoutoffset_dim }%
-\dim_const:Nn \c_@@_xshift_arccircle_C_dim { \c_@@_potential_layoutoffset_dim-5mm }%
-\dim_const:Nn \c_@@_yshift_arccircle_C_dim { -19.75mm-\c_@@_potential_layoutoffset_dim }%
-\dim_const:Nn \c_@@_book_review_frontcover_extend_dim { 12mm }%
-\dim_const:Nn \c_@@_tcb_left_dim { 4mm }%
-\dim_const:Nn \c_@@_tcb_boxsep_dim { 1mm }%
-\dim_const:Nn \c_@@_tikz_dot_diameter_dim { 0.33mm }%
-\dim_const:Nn \c_@@_tikz_dot_spacing_dim { 1.05mm }%
-\dim_const:Nn \c_@@_rubric_extra_xoffset_dim { -\c_@@_innermargin_dim/2 }%
-\dim_const:Nn \c_@@_rubric_xoffset_dim { 14.5mm }%
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\c_@@_boxed_issue_number_width_dim}
-% \begin{macro}{\c_@@_boxed_issue_number_height_dim}
-% We declare the constant dimensions of the box containing the issue number.
-% \begin{macrocode}
-\dim_const:Nn \c_@@_boxed_issue_number_width_dim { 30mm}
-\dim_const:Nn \c_@@_boxed_issue_number_height_dim { 8mm}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\l_thumbnail_width_dim}
-% We declare the width of the possible thumbnail glued to the box containing
-% the issue number.
-% \begin{macrocode}
-\dim_new:N \l_@@_thumbnail_width_dim
-\dim_set:Nn \l_@@_thumbnail_width_dim {30mm}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\g_@@_abstract_box_width_dim}
-% \begin{macrocode}
-\dim_new:N \g_@@_abstract_box_width_dim
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\c_@@_original_parindent_dim}
-% \begin{macrocode}
-\dim_new:N \c_@@_original_parindent_dim
-\dim_gset_eq:NN \c_@@_original_parindent_dim \parindent
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\l_@@_between_rubric_head_text_and_abstract_dim}
-% \begin{macrocode}
-\dim_new:N \l_@@_between_rubric_head_text_and_abstract_dim
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\g_@@_minitoc_circle_diameter_dim}
-% \begin{macro}{\g_@@_minitoc_textwidth_dim}
-% \begin{macro}{\g_@@_minitoc_xshift_dim}
-% \begin{macro}{\g_@@_minitoc_yshift_dim}
-% \begin{macro}{\c_@@_minitoc_from_circle_xshift_dim}
-% \begin{macro}{\c_@@_minitoc_from_circle_yshift_dim}
-% \begin{macrocode}
-\dim_new:N \g_@@_minitoc_circle_diameter_dim
-\dim_new:N \g_@@_minitoc_textwidth_dim
-\dim_new:N \g_@@_minitoc_xshift_dim
-\dim_new:N \g_@@_minitoc_yshift_dim
-\dim_gset:Nn \g_@@_minitoc_circle_diameter_dim {142mm}
-\dim_gset:Nn \g_@@_minitoc_textwidth_dim {65mm}
-\dim_gset:Nn \g_@@_minitoc_xshift_dim {-22mm}
-\dim_gset:Nn \g_@@_minitoc_yshift_dim {30mm}
-\dim_const:Nn \c_@@_minitoc_from_circle_xshift_dim {-15mm}
-\dim_const:Nn \c_@@_minitoc_from_circle_yshift_dim {-\c_@@_minitoc_from_circle_xshift_dim}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\c_@@_footer_height_font_dim}
-% We declare the height of the font displayed in the footer.
-% \begin{macrocode}
-\dim_const:Nn \c_@@_footer_height_font_dim {3mm}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\c_@@_minitoc_list_labelsep_dim}
-% \begin{macrocode}
-\dim_const:Nn \c_@@_minitoc_list_labelsep_dim {1em}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\c_@@_authors_photos_width_dim}
-% \begin{macrocode}
-\dim_const:Nn \c_@@_authors_photos_width_dim {16mm}
-\dim_const:Nn \c_@@_authors_photos_box_width_dim {\c_@@_authors_photos_width_dim
- + 2mm}
-\dim_new:N \l_@@_minibio_width_dim
-% \end{macrocode}
-% \end{macro}
-%
-% We set the default geometry of the page.
-% \begin{macrocode}
-\geometry{%
- papersize={\c_@@_paperwidth_dim,\c_@@_paperheight_dim}
-}
-% \end{macrocode}
-%
-% We create a constant token list that contains the geometry of the front cover.
-% \begin{macrocode}
-\bool_if:NTF {\g_@@_cover_bool} {
- \tl_const:Nn \c_@@_frontcover_geometry_tl {%
- ,layoutsize={\c_@@_layoutwidth_dim,\c_@@_layoutheight_dim}
- ,layoutvoffset=\c_@@_potential_layoutoffset_dim
- ,bindingoffset=\c_@@_potential_bindingoffset_dim
- ,top=\c_@@_topmargin_frontcover_dim
- ,headsep=\c_@@_headsep_frontcover_dim
- ,headheight=\c_@@_headheight_dim
- % ,bottom=\c_zero_dim
- ,bottom=11mm
- ,footskip=\c_zero_dim
- ,outer=\c_zero_dim
- ,inner=\c_@@_potential_layoutoffset_dim
- ,nomarginpar%
- }%
-}{
- \tl_const:Nn \c_@@_frontcover_geometry_tl {%
- ,layoutsize={\c_@@_layoutwidth_dim,\c_@@_layoutheight_dim}
- ,layoutoffset=\c_@@_potential_layoutoffset_dim
- ,bindingoffset=\c_@@_potential_bindingoffset_dim
- ,top=\c_@@_topmargin_frontcover_dim
- ,headsep=\c_@@_headsep_frontcover_dim
- ,headheight=\c_@@_headheight_dim
- % ,bottom=\c_zero_dim
- ,bottom=11mm
- ,footskip=\c_zero_dim
- ,hmargin=\c_@@_potential_layoutoffset_dim
- ,nomarginpar%
- }%
-}
-% \end{macrocode}
-%
-% We create a constant token list that contains the geometry of the inside front
-% and back covers.
-% \begin{macrocode}
-\bool_if:NTF {\g_@@_cover_bool} {
- \tl_const:Nn \c_@@_inside_cover_geometry_tl {%
- ,layoutsize={\c_@@_layoutwidth_dim,\c_@@_layoutheight_dim}
- ,layoutvoffset=\c_@@_potential_layoutoffset_dim
- ,bindingoffset=\c_@@_potential_bindingoffset_dim
- ,top=\c_@@_topmargin_inside_cover_dim
- ,headheight=\c_@@_headheight_dim
- ,headsep=\c_@@_headsep_inside_frontcover_dim
- ,bottom=\c_@@_botmargin_dim
- ,footskip=\c_@@_footskip_dim
- ,inner=\c_@@_innermargin_inside_cover_dim-\c_@@_potential_layoutoffset_dim
- ,outer=\c_@@_outermargin_inside_cover_dim+\c_@@_potential_layoutoffset_dim
- ,nomarginpar%
- }%
-}{
- \tl_const:Nn \c_@@_inside_cover_geometry_tl {%
- ,layoutsize={\c_@@_layoutwidth_dim,\c_@@_layoutheight_dim}
- ,layoutoffset=\c_@@_potential_layoutoffset_dim
- ,bindingoffset=\c_@@_potential_bindingoffset_dim
- ,top=\c_@@_topmargin_inside_cover_dim
- ,headheight=\c_@@_headheight_dim
- ,headsep=\c_@@_headsep_inside_frontcover_dim
- ,bottom=\c_@@_botmargin_dim
- ,footskip=\c_@@_footskip_dim
- ,inner=\c_@@_innermargin_inside_cover_dim
- ,outer=\c_@@_outermargin_inside_cover_dim
- ,nomarginpar%
- }%
-}
-% \end{macrocode}
-%
-% We create a constant token list that contains the geometry of the front matter.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_front_matter_geometry_tl {%
- ,layoutsize={\c_@@_layoutwidth_dim,\c_@@_layoutheight_dim}
- ,layoutoffset=\c_@@_potential_layoutoffset_dim
- % ,bindingoffset=\c_@@_potential_bindingoffset_dim
- ,top=\c_@@_topmargin_front_matter_dim%
- ,headheight=\c_@@_headheight_dim
- ,headsep=\c_@@_headsep_front_matter_dim
- ,bottom=\c_@@_botmargin_dim
- ,footskip=\c_@@_footskip_dim%
- ,inner=\c_@@_innermargin_dim+\c_@@_front_matter_extra_innermargin_dim%
- ,outer=\c_@@_outermargin_dim+\c_@@_front_matter_extra_outermargin_dim%
- ,nomarginpar%
-}%
-% \end{macrocode}
-%
-% We create a constant token list that contains the geometry of the main pages.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_main_geometry_tl {%
- ,layoutsize={\c_@@_layoutwidth_dim,\c_@@_layoutheight_dim}
- ,layoutoffset=\c_@@_potential_layoutoffset_dim
- % ,bindingoffset=\c_@@_potential_bindingoffset_dim
- ,top=\c_@@_topmargin_dim-15mm%
- ,headheight=\c_@@_headheight_dim
- ,headsep=\c_@@_headsep_dim-18mm
- ,bottom=\c_@@_botmargin_dim
- ,footskip=\c_@@_footskip_dim
- ,inner=\c_@@_innermargin_dim
- ,outer=\c_@@_outermargin_dim
-}%
-% \end{macrocode}
-%
-% We create a constant token list that contains the geometry of the back cover.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_backcover_geometry_tl {%
- ,layoutsize={\c_@@_layoutwidth_dim,\c_@@_layoutheight_dim}
- ,layoutoffset=\c_@@_potential_layoutoffset_dim
- % ,bindingoffset=\c_@@_potential_bindingoffset_dim
- ,top=\c_@@_topmargin_backcover_dim%
- % ,top=\c_@@_topmargin_dim-15mm%
- % ,headheight=\c_@@_headheight_dim
- % ,headsep=\c_@@_headsep_dim-18mm
- ,bottom=\c_@@_bottommargin_backcover_dim
- % ,footskip=\c_@@_footskip_dim
- ,inner=\c_@@_innermargin_backcover_dim
- ,outer=\c_@@_outermargin_backcover_dim
- ,nomarginpar
- ,hcentering
- ,twoside=false
-}
-% \end{macrocode}
-%
-% \subsection{Skips}
-%
-% \begin{macrocode}
-\skip_const:Nn \c_@@_editorial_presidentmessage_parskip_skip { 12pt plus 2pt minus .8pt }%
-\skip_const:Nn \c_@@_mainmatter_parskip_skip { 2pt plus .5pt minus .2pt }%
-% \end{macrocode}
-%
-% \section{Options}
-%
-% In this section, options used by some of the document commands defined by the
-% class are treated.
-%
-% \subsection{Issues options}
-%
-% \begin{macro}{\g_@@_issue_number_int}
-% \begin{macro}{\g_@@_issue_month_int}
-% \begin{macro}{\g_@@_issue_year_int}
-% Some variables which are involved in options are created.
-% \begin{macrocode}
-\int_new:N \g_@@_issue_number_int
-\int_new:N \g_@@_issue_month_int
-\int_new:N \g_@@_issue_year_int
-\tl_new:N \g_@@_frontcover_image_options_tl
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{number}
-% \begin{macro}{month}
-% \begin{macro}{year}
-% The keys options are created.
-% \begin{macrocode}
-\keys_define:nn { gzt/issuesetup }
-{
- number .int_gset:N = \g_@@_issue_number_int,
- month .int_gset:N = \g_@@_issue_month_int,
- year .int_gset:N = \g_@@_issue_year_int,
-% \end{macrocode}
-%
-% All these options, when used, must receive a value.
-% \begin{macrocode}
- number .value_required:n = true,
- month .value_required:n = true,
- year .value_required:n = true,
-% \end{macrocode}
-%
-% If "number" option is not used, its initial value is set to $0$.
-% number.
-% \begin{macrocode}
- number .initial:n = 0,
-% \end{macrocode}
-%
-% The options of the front cover image could be set within "\issuesetup"'s
-% argument.
-% \begin{macrocode}
- frontcoverimageoptions .tl_gset:N = \g_@@_frontcover_image_options_tl
-}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \subsection{Journal options}
-%
-% \begin{macro}{\l_@@_journal_publisher_tl}
-% \begin{macro}{\l_@@_journal_address_tl}
-% \begin{macro}{\l_@@_journal_phone_tl}
-% \begin{macro}{\l_@@_journal_fax_tl}
-% \begin{macro}{\l_@@_journal_email_tl}
-% \begin{macro}{\l_@@_journal_url_tl}
-% \begin{macro}{\l_@@_journal_issn_tl}
-% \begin{macro}{\l_@@_journal_isbn_tl}
-% Some variables which are involved in options are created.
-% \begin{macrocode}
-\tl_new:N \l_@@_journal_publisher_tl
-\tl_new:N \l_@@_journal_address_tl
-\tl_new:N \l_@@_journal_phone_tl
-\tl_new:N \l_@@_journal_fax_tl
-\tl_new:N \l_@@_journal_email_tl
-\tl_new:N \l_@@_journal_url_tl
-\tl_new:N \l_@@_journal_issn_tl
-\tl_new:N \l_@@_journal_isbn_tl
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{publisher}
-% \begin{macro}{address}
-% \begin{macro}{phone}
-% \begin{macro}{fax}
-% \begin{macro}{email}
-% \begin{macro}{url}
-% \begin{macro}{issn}
-% \begin{macro}{isbn}
-% The keys options are created.
-% \begin{macrocode}
-\keys_define:nn { gzt/journalsetup }
-{
- publisher .tl_set:N = \l_@@_journal_publisher_tl,
- address .tl_set:N = \l_@@_journal_address_tl,
- phone .tl_set:N = \l_@@_journal_phone_tl,
- fax .tl_set:N = \l_@@_journal_fax_tl,
- email .tl_set:N = \l_@@_journal_email_tl,
- url .tl_set:N = \l_@@_journal_url_tl,
- issn .tl_set:N = \l_@@_journal_issn_tl,
- isbn .tl_set:N = \l_@@_journal_isbn_tl,
-% \end{macrocode}
-%
-% All these options, when used, must receive a value.
-% \begin{macrocode}
- publisher .value_required:n = true,
- address .value_required:n = true,
- phone .value_required:n = true,
- fax .value_required:n = true,
- email .value_required:n = true,
- url .value_required:n = true,
- issn .value_required:n = true,
- isbn .value_required:n = true,
-}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \subsection{Titles options}
-%
-% \begin{macro}{shorttitle}
-% \begin{macro}{minishorttitle}
-% \begin{macro}{notintoc}
-% Some keys options for article's title are created:
-% \begin{itemize}
-% \item "shorttitle" for the possible alternative title to appear in the table
-% of contents and in the headers,
-% \item "minishorttitle" for the possible alternative title to appear in the
-% mini table of contents of the front cover,
-% \item "notintoc", a flag that, if true, prevents the title to appear in the
-% table of contents.
-% \end{itemize}
-%
-% \begin{macrocode}
-\keys_define:nn { gzt/title }
-{
- short .tl_gset:N = \g_@@_short_title_tl,
- minishort .tl_gset:N = \g_@@_mini_short_title_tl,
- notintoc .bool_gset:N = \g_@@_title_not_in_toc_bool,
-% \end{macrocode}
-%
-% The following options, when used, must receive a value.
-% \begin{macrocode}
- short .value_required:n = true,
- minishort .value_required:n = true,
-}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \subsection{Subtitles options}
-%
-% \begin{macro}{shortsubtitle}
-% \begin{macro}{minishortsubtitle}
-% \begin{macro}{notintoc}
-% Some keys options for article's title are created:
-% \begin{itemize}
-% \item "shorttitle" for the possible alternative title to appear in the table
-% of contents and in the headers,
-% \item "minishorttitle" for the possible alternative title to appear in the
-% mini table of contents of the front cover,
-% \item "notintoc", a flag that, if true, prevents the title to appear in the
-% table of contents.
-% \end{itemize}
-%
-% \begin{macrocode}
-\keys_define:nn { gzt/subtitle }
-{
- short .tl_gset:N = \g_@@_short_subtitle_tl,
- minishort .tl_gset:N = \g_@@_mini_short_subtitle_tl,
- notintoc .bool_gset:N = \g_@@_subtitle_not_in_toc_bool,
-% \end{macrocode}
-%
-% The following options, when used, must receive a value.
-% \begin{macrocode}
- short .value_required:n = true,
- minishort .value_required:n = true,
-}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \subsection{Rubrics options}
-%
-% \begin{macrocode}
-\keys_define:nn { gzt/rubric }
-{
- abstract .tl_gset:N = \g_@@_rubric_abstract_tl,
- title .tl_gset:N = \g_@@_rubric_title_tl,
- pictogram .tl_gset:N = \g_@@_rubric_pictofile_tl,
-% \end{macrocode}
-%
-% The following options, when used, must receive a value.
-% \begin{macrocode}
- abstract .value_required:n = true,
- title .value_required:n = true,
- pictogram .value_required:n = true,
-}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \subsection{Minitoc options}
-%
-% \begin{macro}{list}
-% A "list" (boolean) key option for "minitoc" environment is created: if true,
-% "minitoc" should contains "\item" just as a list and the resulting list will be
-% typeset in a special way.
-%
-% \begin{macrocode}
-\keys_define:nn { gzt/minitoc }
-{
- list .bool_gset:N = \g_@@_minitoc_list_bool,
- help .bool_gset:N = \g_@@_minitoc_help_bool,
- diameter .dim_gset:N = \g_@@_minitoc_circle_diameter_dim,
- textwidth .dim_gset:N = \g_@@_minitoc_textwidth_dim,
- xshift .dim_gset:N = \g_@@_minitoc_xshift_dim,
- yshift .dim_gset:N = \g_@@_minitoc_yshift_dim,
-% \end{macrocode}
-%
-% The following options, when used, must receive a value.
-% \begin{macrocode}
- diameter .value_required:n = true,
- textwidth .value_required:n = true,
- xshift .value_required:n = true,
- yshift .value_required:n = true,
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsection{Authors options}
-%
-% \begin{macro}{affiliation}
-% \begin{macro}{email}
-% \begin{macro}{minibio}
-% \begin{macro}{photo}
-% \begin{macro}{webpage}
-% The keys options are created.
-% \begin{macrocode}
-\keys_define:nn { gzt/authors }
-{
- affiliation .tl_gset:N = \g_@@_people_affiliation_tl,
- email .tl_gset:N = \g_@@_people_email_tl,
- minibio .tl_gset:N = \g_@@_people_minibio_tl,
- photo .tl_gset:N = \g_@@_people_photo_tl,
- webpage .tl_gset:N = \g_@@_people_webpage_tl,
-% \end{macrocode}
-%
-% All these options, when used, must receive a value.
-% \begin{macrocode}
- affiliation .value_required:n = true,
- email .value_required:n = true,
- minibio .value_required:n = true,
- photo .value_required:n = true,
- webpage .value_required:n = true,
-}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \subsection{Interviewee options}
-%
-% \begin{macro}{\g_@@_interviewee_minibio_tl}
-% \begin{macro}{\g_@@_interviewee_photo_tl}
-% \begin{macro}{\g_@@_interviewee_first_last_name_tl}
-% Some variables which are involved in options are created.
-% \begin{macrocode}
-\tl_new:N \g_@@_interviewee_minibio_tl
-\tl_new:N \g_@@_interviewee_photo_tl
-\tl_new:N \g_@@_interviewee_first_last_name_tl
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{minibio}
-% \begin{macro}{photo}
-% The keys options are created.
-% \begin{macrocode}
-\keys_define:nn { gzt/interviewees }
-{
- minibio .tl_gset:N = \g_@@_interviewee_minibio_tl,
- photo .tl_gset:N = \g_@@_interviewee_photo_tl,
-% \end{macrocode}
-%
-% All these options, when used, must receive a value.
-% \begin{macrocode}
- minibio .value_required:n = true,
- photo .value_required:n = true,
-}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \subsection{Book review options}
-%
-% \begin{macro}{\g_@@_bookreview_frontcover_tl}
-% \begin{macro}{\g_@@_bookreview_bibkey_tl}
-% Some variables which are involved in books reviews are created.
-% \begin{macrocode}
-\tl_new:N \g_@@_bookreview_frontcover_tl
-\tl_new:N \g_@@_bookreview_bibkey_tl
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{frontcover}
-% \begin{macro}{bibkey}
-% The keys options are created.
-% \begin{macrocode}
-\keys_define:nn { gzt/bookreview }
-{
- frontcover .tl_gset:N = \g_@@_bookreview_frontcover_tl,
- bibkey .tl_gset:N = \g_@@_bookreview_bibkey_tl,
-% \end{macrocode}
-%
-% All these options, when used, must receive a value.
-% \begin{macrocode}
- frontcover .value_required:n = true,
- bibkey .value_required:n = true,
-}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \subsection{Book advertisement options}
-%
-% \begin{macro}{\g_@@_bookadvertisement_frontcover_tl}
-% \begin{macro}{\g_@@_bookadvertisement_bibkey_tl}
-% Some variables which are involved in books advertisements are created.
-% \begin{macrocode}
-\tl_new:N \g_@@_bookadvertisement_frontcover_tl
-\tl_new:N \g_@@_bookadvertisement_bibkey_tl
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{frontcover}
-% \begin{macro}{bibkey}
-% The keys options are created.
-% \begin{macrocode}
-\keys_define:nn { gzt/bookadvertisement }
-{
- frontcover .tl_gset:N = \g_@@_bookadvertisement_frontcover_tl,
- bibkey .tl_gset:N = \g_@@_bookadvertisement_bibkey_tl,
-% \end{macrocode}
-%
-% All these options, when used, must receive a value.
-% \begin{macrocode}
- frontcover .value_required:n = true,
- bibkey .value_required:n = true,
-}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \subsection{New theorem options}
-%
-% \begin{macrocode}
-\tl_new:N \l_@@_newtheorem_style_tl
-\keys_define:nn { gzt/newtheorem }
-{
- frenchtitle .tl_set:N = \l_@@_newtheorem_frenchtitle_tl,
- englishtitle .tl_set:N = \l_@@_newtheorem_englishtitle_tl,
- frenchtitle .value_required:n = true,
- englishtitle .value_required:n = true,
- %
- style .choice:,
- style / theorem .code:n = {\tl_set:Nn \l_@@_newtheorem_style_tl {theorem}},
- style / definition .code:n = {\tl_set:Nn \l_@@_newtheorem_style_tl {definition}},
- style / proof .code:n = {\tl_set:Nn \l_@@_newtheorem_style_tl {proof}},
- style / unknown .code:n =
- \msg_error:nnxxx { gzt } { unknown-choice }
- { style } % Name of choice key
- { theorem~or~definition~or~proof } % Valid choices
- { \exp_not:n {#1} } % Invalid choice given
-}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \section{Colors}
-%
-% In this section, we define the colors that will be used by the class and by
-% the source file of the logo.
-%
-% \begin{macrocode}
-%</class|class-article>
-% \end{macrocode}
-%
-% \begin{macrocode}
-%<*class|class-article|class-logo>
-% \end{macrocode}
-%
-% \begin{macrocode}
-\definecolorset{cmyk}{@@_}{_color}{
- generic_dark,1,.60,.10,0; % kind of blue (!)
- light_generic_dark,1,.35,0,0 % kind of blue (!), light
-}
-\colorlet{@@_generic_light_color}{black!50}
-\colorlet{@@_dark_generic_light_color}{black!60}
-\colorlet{@@_description_label_light_color}{@@_dark_generic_light_color}
-\colorlet{@@_minitoc_color}{@@_generic_light_color}
-\colorlet{@@_cover_itemize_label_color}{@@_light_generic_dark_color}
-\colorlet{@@_default_text_color}{black}
-\colorlet{@@_head_text_color}{black!65}
-\colorlet{@@_rubric_head_text_color}{@@_head_text_color}
-\colorlet{@@_bibliography_minibios_acknowledgements_bg_color}{black!10}
-\colorlet{@@_headrule_color}{@@_generic_light_color!65}
-\colorlet{@@_circlerule_color}{@@_generic_dark_color!65}
-\colorlet{@@_frontmatter_text_color}{black!75}
-\colorlet{@@_people_color}{@@_generic_dark_color}
-\colorlet{@@_arrayrule_color}{@@_generic_dark_color}
-\colorlet{@@_acknowledgements_color}{@@_generic_dark_color}
-\colorlet{@@_question_color}{@@_generic_dark_color}
-\colorlet{@@_boxed_issue_number_bg_color}{@@_generic_dark_color}
-\colorlet{@@_rule_in_toc_color}{@@_generic_dark_color}
-\colorlet{@@_rubric_in_toc_color}{@@_generic_dark_color}
-\colorlet{@@_article_in_toc_color}{@@_frontmatter_text_color}
-\colorlet{@@_rubric_title_color}{@@_generic_light_color}
-\colorlet{@@_article_title_color}{@@_generic_dark_color}
-\colorlet{@@_section_color}{@@_generic_dark_color}
-\colorlet{@@_subsection_color}{@@_generic_dark_color!90}
-\colorlet{@@_subsubsection_color}{@@_generic_dark_color!80}
-\colorlet{@@_rubric_abstract_color}{@@_generic_dark_color}
-\colorlet{@@_article_abstract_color}{@@_generic_light_color}
-\colorlet{@@_dotfill_color}{@@_generic_dark_color}
-\colorlet{@@_about_frontcover_title_color}{@@_generic_dark_color}
-\colorlet{@@_reflected_text_color}{@@_generic_dark_color}
-\colorlet{@@_inside_frontcover_frame_bg_color}{@@_generic_dark_color!8}
-\colorlet{@@_inside_frontcover_frame_title_color}{@@_generic_dark_color}
-\colorlet{@@_footer_bg_color}{black!10}
-\colorlet{@@_float_title_color}{@@_generic_dark_color}
-\colorlet{@@_float_title_bg_color}{@@_generic_dark_color!10}
-\colorlet{@@_float_frame_color}{@@_generic_dark_color!20}
-\colorlet{@@_chapter_color}{@@_generic_dark_color}
-\colorlet{@@_smf_number_color}{@@_generic_dark_color}
-\colorlet{@@_date_color}{@@_generic_light_color}
-\colorlet{@@_table_head_color}{@@_generic_dark_color!25}
-\colorlet{@@_book_review_frame_bg_color}{@@_generic_dark_color!8}
-\colorlet{@@_book_advertisement_bg_color}{white}
-\colorlet{@@_book_advertisement_frame_color}{@@_generic_dark_color}
-\colorlet{@@_default_cover_color}{white}
-% \end{macrocode}
-%
-% \begin{macrocode}
-%</class|class-article|class-logo>
-% \end{macrocode}
-%
-% \begin{macrocode}
-%<*class|class-article>
-% \end{macrocode}
-%
-% \section{Miscellaneous patches}
-%
-% We patch the \pkg{biblatex}'s "refsection" environment definition by adding
-% a flag that will be used to test wheter we are inside such an environment or
-% not.
-% \begin{macrocode}
-\AddToHook{env/multicols/begin}{
- \bool_gset_true:N \g_@@_multicols_bool
-}
-\AddToHook{env/multicols/end}{
- \bool_gset_false:N \g_@@_multicols_bool
-}
-\AddToHook{env/refsection/begin}{
- \bool_gset_true:N \g_@@_refsection_bool
-}
-\AddToHook{env/refsection/end}{
- \bool_gset_false:N \g_@@_refsection_bool
-}
-% \end{macrocode}
-%
-% \section{Miscellaneous token lists}
-%
-% We define a token list that will display the font of footer at the right size.
-% \begin{macrocode}
-\tl_const:Nn \c_@@_footer_size_font_tl {
- \fontsize{\c_@@_footer_height_font_dim}{\c_zero_dim}\selectfont%
-}
-% \end{macrocode}
-%
-% We define some token lists for the long and short forms of \textsc{smf}.
-% \begin{macrocode}
-\tl_new:N \g_@@_smf_short_string_tl
-\tl_new:N \g_@@_smf_string_tl
-\tl_gset:Nn \g_@@_smf_short_string_tl {
- % \cs_if_exist:cTF {texorpdfstring}
- % {
- \texorpdfstring{\c_@@_smf_short_string_tl}{\c_@@_smf_short_pdf_string_tl}
- % }{%
- % \c_@@_smf_short_pdf_string_tl
- % }%
-}
-\tl_gset:Nn \g_@@_smf_string_tl {
- % \cs_if_exist:cTF {texorpdfstring}
- % {
- % \texorpdfstring{Soci\'et\'e~Math\'ematique~de~France}{\c_@@_smf_string_tl}
- \c_@@_smf_string_tl
- % }{%
- % \acrlong*{smf}
- % }%
-}
-% \end{macrocode}
-%
-% We define some token lists for the long and short forms of \gzt.
-% \begin{macrocode}
-\tl_new:N \l_@@_gzt_short_string_tl
-\tl_new:N \l_@@_gzt_string_tl
-\tl_set:Nn \l_@@_gzt_short_string_tl {
- \cs_if_exist:cTF {texorpdfstring}
- {
- \texorpdfstring{\emph{\c_@@_journal_short_title_string_tl}}{\c_@@_journal_short_title_string_tl}
- }{%
- \emph{\c_@@_journal_short_title_string_tl}
- }%
-}
-\tl_set:Nn \l_@@_gzt_string_tl {
- \cs_if_exist:cTF {texorpdfstring}
- {
- \texorpdfstring{\emph{\c_@@_journal_title_string_tl}}{\c_@@_journal_title_string_tl}
- }{%
- \emph{\c_@@_journal_title_string_tl}
- }%
-}
-% \end{macrocode}
-%
-% We fix some strings for the PDF's metadata.
-% \begin{macrocode}
-\tl_new:N \g_@@_pdftitle_string_tl
-\tl_new:N \g_@@_pdfauthor_string_tl
-\tl_gset:Nn \g_@@_pdftitle_string_tl {
- \c_@@_pdftitle_string_tl
-}
-\tl_gset:Nn \g_@@_pdfauthor_string_tl {
- \g_@@_smf_string_tl
-}
-\AddToHook{begindocument/before}{%
- \hypersetup{%
- pdftitle=\g_@@_pdftitle_string_tl,
- pdfauthor=\g_@@_pdfauthor_string_tl%
- }
-}
-% \end{macrocode}
-%
-% \begin{macrocode}
-\cs_new_protected:Nn \_@@_email:n
- {
- \href{mailto:#1}{\nolinkurl{#1}}%
- }
-% \end{macrocode}
-%
-% We create a function that displays the author(s) of an article with
-% a peticular layout.
-% \begin{macrocode}
-\cs_new_protected:Nn \@@_display_author:nnnnn
-{
- \begin{tabular}[t]{p{\c_@@_authors_photos_box_width_dim}p{0.75\linewidth}}
- \tl_if_empty:nF {#5}
- {%
- \begin{adjustbox}{valign=t}
- \includegraphics[width=\c_@@_authors_photos_width_dim]{#5}
- \end{adjustbox}%
- }
- &
- \begin{description}[leftmargin=1em,style=nextline,nosep]
- \item[\textcolor{@@_people_color}{\DeclareNameAlias{labelname}{default}\citeauthor{#1}}]
- \tl_if_empty:nF {#2}
- {%
- #2%
- \par%
- \smallskip%
- }
- \tl_if_empty:nF {#3}
- {%
- \href{mailto:#3}{\nolinkurl{#3}}%
- \par%
- \smallskip%
- }
- \tl_if_empty:nF {#4}
- {%
- #4
- }
- \end{description}
- \end{tabular}
-}
-% \end{macrocode}
-%
-% We create a variant of this control sequence that passes the \emph{values} of the
-% variables involved (see \url{http://tex.stackexchange.com/a/214284/18401}).
-% \begin{macrocode}
-\cs_generate_variant:Nn \@@_display_author:nnnnn { VVVVV }
-% \end{macrocode}
-%
-% \section{Functions for specifiying the people involved in the journal}
-%
-% For this, and thanks to \Pkg{datatool}, we create a database of
-% \enquote{people} involved in the journal.
-% \begin{macrocode}
-\DTLnewdb{people}
-% \end{macrocode}
-%
-% Then we create the internal "\_@@_people" function that let us populate the
-% "_@@_people" database. Each people will be identified by some identifiers:
-% speciality (optional), firstname, lastname, affiliation, email, role.
-% \begin{macrocode}
-\tl_new:N \l_@@_crossref_tl
-\cs_new_protected:Nn \_@@_people:nnnnnnnn
-{
- \DTLnewrow{people}%
- \DTLnewdbentry{people}{first-last-name}{#1}%
- \DTLnewdbentry{people}{affiliation}{#2}%
- \DTLnewdbentry{people}{email}{#3}%
- \DTLnewdbentry{people}{minibio}{#4}%
- \DTLnewdbentry{people}{photo}{#5}%
- \DTLnewdbentry{people}{speciality}{#6}%
- \DTLnewdbentry{people}{role}{#7}%
- \DTLnewdbentry{people}{webpage}{#8}%
-% \end{macrocode}
-%
-% \begin{macrocode}
- \int_if_exist:cF {g_@@_#7_int}
- {
- \int_new:c {g_@@_#7_int}
- }
- \int_incr:c {g_@@_#7_int}
- \tl_if_in:nnTF { #7 } { author } {
- \tl_set:Nn \l_@@_crossref_tl {\c_@@_issue_bib_key_tl -art-\int_use:N \g_@@_articles_int}
- } {
- \tl_set:Nn \l_@@_crossref_tl {\c_@@_issue_bib_key_tl}
- }
- \tl_set:Nn \l_@@_people_first_last_name_tl {#1}
- \iow_now:Nx \g_@@_bib_out_iow {%
- @article{
- \c_@@_issue_bib_key_tl -#7- \int_use:c {g_@@_#7_int},
- \iow_newline:
- author={\exp_not:V\l_@@_people_first_last_name_tl},
- \iow_newline:
- options={skipbib},
- \iow_newline:
- crossref = {\l_@@_crossref_tl}
- \iow_newline:
- }
- \iow_newline:
- }%
-}
-% \end{macrocode}
-%
-% We create a variant of this control sequence that passes the \emph{values} of
-% the variables involved (see
-% \url{http://tex.stackexchange.com/a/214284/18401}).
-% \begin{macrocode}
-\cs_generate_variant:Nn \_@@_people:nnnnnnnn { nVVVVnxV }
-% \end{macrocode}
-%
-% \section{Functions for displaying \enquote{academic} signatures of articles
-% without \enquote{real} author(s)}
-%
-% We create a function that displays an \enquote{academic} signature for articles
-% without \enquote{real} author(s).
-% \begin{macrocode}
-\cs_new_protected:Nn \@@_display_academic_signature:n
-{
- \bigskip
- \begin{_@@_minibiographies_acknowledgements_tcbox}
- #1
- \end{_@@_minibiographies_acknowledgements_tcbox}
-}
-% \end{macrocode}
-%
-% \section{Functions for displaying people involved in the journal by role}
-%
-% We create the function that displays firstname and lastname of people involved
-% in the journal by role.
-% \begin{macrocode}
-\cs_new_protected:Nn \@@_display_people_by_role:n
-{
- \DTLforeach*[\DTLiseq{\l_@@_people_role_tl}{#1}]{people}{%
- \l_@@_firstlastname_tl=first-last-name%
- ,\l_@@_people_affiliation_tl=affiliation%
- ,\l_@@_people_email_tl=email%
- ,\l_@@_people_minibio_tl=minibio%
- ,\l_@@_people_photo_tl=photo%
- ,\l_@@_people_speciality=speciality%
- ,\l_@@_people_role_tl=role%
- ,\l_@@_people_webpage_tl=webpage%
- }{%
- \tl_if_in:NnTF \l_@@_people_role_tl { editor } {
- \item[
- \textcolor{@@_people_color}{%
- \_@@_citeauthor_no_firstinits:n {\c_@@_issue_bib_key_tl -#1- \exp_not:V\DTLcurrentindex}%
- }
- \tl_if_in:NnF \l_@@_people_speciality { NoValue } { ~(\l_@@_people_speciality) }
- ]
- \leavevmode
- \vbox_top:n {%
- \l_@@_people_affiliation_tl%
- \newline%
- \href{mailto:\l_@@_people_email_tl}{\nolinkurl{\l_@@_people_email_tl}}%
- }
- \medskip%
- }{
- \tl_if_in:NnTF \l_@@_people_role_tl { author } {
- \tl_if_empty:NF \l_@@_firstlastname_tl {
- \footnotesize%
- % \noindent%
- \DTLiffirstrow{%
- }{
- \DTLpar%
- \medskip%
- }
- \dim_set:Nn \l_@@_minibio_width_dim {\linewidth-1em - \c_@@_authors_photos_box_width_dim}
- \tl_if_empty:NTF \l_@@_people_photo_tl
- {%
- \dim_add:Nn \l_@@_minibio_width_dim {\c_@@_authors_photos_box_width_dim}
- }{%
- \begin{adjustbox}{valign=t,minipage=\c_@@_authors_photos_box_width_dim}
- \includegraphics[width=\c_@@_authors_photos_width_dim]{\l_@@_people_photo_tl}
- \end{adjustbox}%
- \quad%
- }
- \begin{adjustbox}{valign=t,minipage=\l_@@_minibio_width_dim}
- \begin{description}[leftmargin=1em,style=nextline]
- \item[%
- \textcolor{@@_people_color}{%
- \_@@_citeauthor_no_firstinits:n {\c_@@_issue_bib_key_tl -#1- \exp_not:V\DTLcurrentindex}%
- }%
- ]
- \tl_if_empty:NF \l_@@_people_affiliation_tl
- {%
- \mbox{}%
- \par%
- \vspace{-2ex}%
- \l_@@_people_affiliation_tl%
- }
- \tl_if_empty:NF \l_@@_people_email_tl
- {%
- \par%
- \href{mailto:\l_@@_people_email_tl}{\nolinkurl{\l_@@_people_email_tl}}%
- }
- \tl_if_empty:NF \l_@@_people_webpage_tl
- {%
- \par%
- \url{\l_@@_people_webpage_tl}%
- }
- \tl_if_empty:NF \l_@@_people_minibio_tl
- {%
- \par%
- \smallskip%
- \l_@@_people_minibio_tl
- }
- \end{description}
- \end{adjustbox}
- }
- }{
- \_@@_citeauthor_no_firstinits:n {\c_@@_issue_bib_key_tl -#1-
- \exp_not:V\DTLcurrentindex}%
- \tl_if_empty:NF \l_@@_people_email_tl
- {
- \c_space_tl(\href{mailto:\l_@@_people_email_tl}{\nolinkurl{\l_@@_people_email_tl}})
- }
- }
- }
- }
-}
-% \end{macrocode}
-%
-% \section{Function for displaying a reflected text}
-%
-% We create the function that displays a reflected text.
-% \begin{macrocode}
-\cs_new_protected:Nn \@@_reflected_text:n
-{
- \begin{tikzpicture}
- \tikzset{@@_reflect_node/.style={%
- anchor=base,%
- inner~sep=0,%
- line~width=0,%
- font=\Huge,
- color=@@_reflected_text_color%
- }%
- }%
- \node[@@_reflect_node]{#1};
- \node[scope~fading=south,opacity=0.2,yscale=-1,@@_reflect_node]{#1};
- \end{tikzpicture}
-}
-% \end{macrocode}
-%
-% \section{Displaying the front cover}
-%
-% We create the variable that displays the front cover.
-% \begin{macrocode}
-\tl_new:N \g_@@_display_frontcover_tl%
-\tl_gset:Nn \g_@@_display_frontcover_tl {%
- \bool_gset_true:N \g_@@_frontcover_bool
- \pagenumbering{roman}%
- \pagestyle{@@_frontcover_ps}%
- \pagecolor{\g_@@_special_edition_color_tl}
- \exp_after:wN\newgeometry\exp_after:wN{\c_@@_frontcover_geometry_tl}%
- \noindent%
- \bool_if:NTF {\g_@@_cover_bool} {
- \hspace*{-\c_@@_potential_layoutoffset_dim}
- }{
- \hspace*{-2\c_@@_potential_layoutoffset_dim}
- }
- \exp_after:wN\includegraphics\exp_after:wN[\g_@@_frontcover_image_options_tl]{\g_@@_frontcover_image_file_tl}
- \begin{tikzpicture}[remember~picture, overlay]
- \coordinate (@@_circle_minitoc_center) at
- ([xshift=\g_@@_minitoc_xshift_dim-\c_@@_potential_layoutoffset_dim,yshift=\g_@@_minitoc_yshift_dim+\c_@@_potential_layoutoffset_dim]current~page.south~east) ;
- \node[name=@@_circle_minitoc,shape=circle,inner~sep=\c_zero_dim,fill=\g_@@_special_edition_color_tl,text~width=\g_@@_minitoc_circle_diameter_dim] at
- (@@_circle_minitoc_center) {};
- \node[text~width=\g_@@_minitoc_textwidth_dim,anchor=north~west] at
- ([xshift=\c_@@_minitoc_from_circle_xshift_dim,yshift=\c_@@_minitoc_from_circle_yshift_dim]$ (@@_circle_minitoc.north)!.5!(@@_circle_minitoc.west) $)
- {
- \bool_if:NF {\g_@@_frontcover_without_minitoc_bool} {
- \large
- \color{@@_minitoc_color}
- \g_@@_frontcover_minitoc_tl
- }
- };
- \bool_if:NT {\g_@@_minitoc_help_bool} {
- \fill[red] (@@_circle_minitoc_center) circle (2pt);
- }
- \end{tikzpicture}
- \bool_if:NT {\g_@@_cover_bool} {
- \small
- \begin{tikzpicture}[remember~picture, overlay]
- \node[name=@@_binding_sw,inner~sep=\c_zero_dim,fill=\g_@@_special_edition_color_tl,rotate=90,anchor=west] at
- ([xshift=0.45\c_@@_potential_bindingoffset_dim,yshift=15mm+\c_@@_potential_layoutoffset_dim]current~page.south~west) {
- \No
- \bool_if:NTF {\g_@@_special_edition_bool} {
- \c_@@_special_edition_string_tl
- }{
- \int_use:N\g_@@_issue_number_int
- }
- };
- \node[name=@@_binding_w,inner~sep=\c_zero_dim,fill=\g_@@_special_edition_color_tl,rotate=90] at
- ([xshift=0.45\c_@@_potential_bindingoffset_dim]current~page.west) {
- \bool_if:NTF {\g_@@_special_edition_bool} {
- \tl_if_exist:NTF \g_@@_special_edition_short_title_tl {%
- \g_@@_special_edition_short_title_tl
- }{
- \g_@@_special_edition_title_tl
- }
- }{
- \text_uppercase:n {\c_@@_journal_title_string_tl}
- }
- };
- \node[name=@@_binding_nw,inner~sep=\c_zero_dim,fill=\g_@@_special_edition_color_tl,rotate=90,anchor=east] at
- ([xshift=0.45\c_@@_potential_bindingoffset_dim,yshift=-15mm-\c_@@_potential_layoutoffset_dim]current~page.north~west) {
- \l_@@_uppercased_date_format\displaydate{@@_date}
- };
- \end{tikzpicture}
- }
- \vfill%
- \noindent%
- \hspace*{10mm}%
- \hspace*{-\c_@@_potential_layoutoffset_dim}
- \includegraphics[height=22.5mm]{\c_@@_smf_logo_file_string_tl}%
- \bool_if:NT {\g_@@_special_edition_bool} {
- \hfill
- \includegraphics[scale=1.2]{gzt-logo}
- \hspace*{10mm}
- }
- % \vfill%
- \clearpage%
- \bool_gset_false:N \g_@@_frontcover_bool
- \nopagecolor
-}
-% \end{macrocode}
-%
-% \section{Displaying the inside front cover}
-%
-% We create the variable that displays the inside front cover.
-% \begin{macrocode}
-\tl_new:N \g_@@_display_inside_frontcover_tl%
-\tl_gset:Nn \g_@@_display_inside_frontcover_tl {%
- \bool_gset_true:N \g_@@_inside_frontcover_bool%
- \pagestyle{@@_inside_frontcover_ps}%
- \exp_after:wN\newgeometry\exp_after:wN{\c_@@_inside_cover_geometry_tl}%
- \small%
- \setlength{\columnseprule}{2pt}
- \renewcommand{\columnseprulecolor}{\color{white}}
- \begin{_@@_inside_cover_tcb}[_@@_tcb_inside_frontcover_style]
- \begin{multicols}{2}
- \setlength{\columnsep}{1mm}
- \bool_if:NTF {\g_@@_special_edition_bool} {
- \begin{description}[leftmargin=1em,style=nextline,labelindent=\c_zero_dim]
- \@@_display_people_by_role:n {editor}
- \end{description}
- }{%
- \begin{description}[leftmargin=1em]
- \item[\c_@@_editors_in_chief_string_tl] \
- \begin{description}[leftmargin=1em,style=nextline,labelindent=\c_zero_dim]
- \@@_display_people_by_role:n {editorinchief}
- \end{description}
- \bigskip
- \par
- \item[\c_@@_editors_string_tl] \
- \begin{description}[leftmargin=1em,style=nextline,labelindent=\c_zero_dim]
- \@@_display_people_by_role:n {editor}
- \end{description}
- \end{description}
- }
- \end{multicols}
- \setlength{\columnseprule}{1pt}
- \tcblower
- \begin{tabular}{@{}m{.75\c_@@_inside_cover_box_width_dim}@{}m{.2\c_@@_inside_cover_box_width_dim-2\tabcolsep}@{}}
- \begin{description}[leftmargin=1em]
- \item[\c_@@_editorial_secretariat_string_tl{}~:] \ \par%
- \l_@@_journal_publisher_tl%
- % \par%
- \c_space_tl\textendash{}\c_space_tl%
- \@@_display_people_by_role:n { secretary }\par
- \l_@@_journal_address_tl\par%
- \c_@@_phone_string_tl{}~:~\l_@@_journal_phone_tl{} \c_space_tl\textendash{}\c_space_tl
- \c_@@_fax_string_tl{}~:~\l_@@_journal_fax_tl\par%
- \href{mailto:\l_@@_journal_email_tl}{\nolinkurl{\l_@@_journal_email_tl}}%
- % \newline%
- \c_space_tl\textendash{}\c_space_tl
- \url{\l_@@_journal_url_tl}
- \item[\c_@@_publishingdirector_string_tl{}~:]
- \@@_display_people_by_role:n { president }
- \item[\c_@@_issn_string_tl{}~:] \l_@@_journal_issn_tl
- \tl_if_empty:NF \l_@@_journal_isbn_tl
- {%
- \item[\c_@@_isbn_string_tl{}~:] \l_@@_journal_isbn_tl
- }
- \bool_if:NT {\g_@@_no_inside_backcover_bool} {
- \item[\c_@@_latexclass_string_tl{}~:]
- \@@_display_people_by_role:n { classdesigner }
- \item[\c_@@_artistic_director_string_tl{}~:]
- \@@_display_people_by_role:n { graphicdesigner }
- \item[\c_@@_printer_string_tl{}~:] \g_@@_printer_text_tl
- }
- \end{description}
- \bool_if:NT {\g_@@_no_inside_backcover_bool} {
- \g_@@_font_designer_text_tl
- }
- &
- \hspace*{\fill}%
- \includegraphics[height=20mm]{\c_@@_smf_logo_file_string_tl}%
- \end{tabular}
- % \\
- % \c_@@_font_string_tl
- \bigskip
- \tl_if_empty:NF \g_@@_about_frontcover_tl
- {%
- \\
- \begin{adjustbox}{valign=t,minipage=.75\c_@@_inside_cover_box_width_dim+.2\c_@@_inside_cover_box_width_dim-2\tabcolsep}
- \begin{description}[leftmargin=1em,font=\color{@@_about_frontcover_title_color}]
- \item[\g_@@_about_frontcover_string_tl] \g_@@_about_frontcover_tl
- \bool_if:NT {\g_@@_credit_frontcover_bool} {
- \c_space_tl(\c_@@_credit_frontcover_string_tl{}~:~%
- \DTLforeach*[\DTLiseq{\l_@@_people_role_tl}{frontcovercredit}]{people}{%
- \l_@@_firstlastname_tl=first-last-name%
- ,\l_@@_people_role_tl=role%
- }{%
- \_@@_citeauthor_no_firstinits:n
- {\c_@@_issue_bib_key_tl -frontcovercredit- \exp_not:V\DTLcurrentindex}%
- }%
- ).%
- }
- \end{description}
- \end{adjustbox}
- }
- \end{_@@_inside_cover_tcb}
- \clearpage%
- \pagenumbering{arabic}%
- \bool_gset_false:N \g_@@_inside_frontcover_bool
-}
-% \end{macrocode}
-%
-% \section{Displaying the inside back cover}
-%
-% We create the variable that displays the inside back cover.
-% \begin{macrocode}
-\tl_new:N \g_@@_display_inside_backcover_tl%
-\tl_gset:Nn \g_@@_display_inside_backcover_tl {%
- \bool_gset_true:N \g_@@_inside_backcover_bool%
- \cleardoublepage%
- \pagestyle{@@_inside_backcover_ps}%
- \exp_after:wN\newgeometry\exp_after:wN{\c_@@_inside_cover_geometry_tl}%
- \bool_if:NTF {\g_@@_no_inside_backcover_bool} {
- \hbox{}
- }{%
- \small%
- \begin{_@@_inside_cover_tcb}[_@@_tcb_inside_backcover_style]
- \bool_if:NF {\g_@@_special_edition_bool} {
- % \begin{multicols}{2}
- % \setlength{\columnsep}{1mm}
- \file_if_exist_input:n {\c_@@_authors_instructions_file_tl}
- % \end{multicols}
- % \setlength{\columnseprule}{1pt}
- \tcblower
- }
- \begin{description}[leftmargin=1em]
- \item[\c_@@_latexclass_string_tl{}~:]
- \@@_display_people_by_role:n { classdesigner }
- \item[\c_@@_artistic_director_string_tl{}~:]
- \@@_display_people_by_role:n { graphicdesigner }
- \item[\c_@@_printer_string_tl{}~:] \g_@@_printer_text_tl
- \end{description}
- \g_@@_font_designer_text_tl
- \end{_@@_inside_cover_tcb}
- }
- \bool_gset_false:N \g_@@_inside_backcover_bool
-}
-% \end{macrocode}
-%
-% \section{Displaying the back cover}
-%
-% We create the variable that displays the back cover.
-% \begin{macrocode}
-\tl_new:N \g_@@_display_backcover_tl%
-\tl_gset:Nn \g_@@_display_backcover_tl {%
- \bool_gset_true:N \g_@@_backcover_bool
- \pagestyle{@@_backcover_ps}%
- \pagecolor{\g_@@_special_edition_color_tl}
- \exp_after:wN\newgeometry\exp_after:wN{\c_@@_backcover_geometry_tl}%
- \bool_if:NTF {\g_@@_special_edition_bool} {
- \mbox{}
- \vfill
- \clist_map_inline:Nn \c_@@__graphics_extensions_clist{
- \file_if_exist:nT {\c_@@_issue_images_path_string_tl/\g_@@_special_edition_backcover_image_tl.#1} {
- \begin{center}
- \includegraphics[width=.25\linewidth]{\g_@@_special_edition_backcover_image_tl}
- \end{center}
- \bigskip
- \clist_map_break:
- }
- }
- \group_begin:
- \leftskip.125\linewidth
- \rightskip\leftskip
- \file_if_exist_input:nF {\c_@@_special_edition_backcover_page_file_string_tl}
- {%
- \c_empty_box
- }
- \par
- \group_end:
- \vfill
- \clist_if_empty:NF \g_@@_special_edition_logos_clist {
- \vfill
- \noindent
- \clist_map_inline:Nn \g_@@_special_edition_logos_clist {
- \hfill
- \includegraphics[height=2cm]{#1}
- \hfill
- }
- \mbox{}
- }
- }{
- \file_if_exist_input:nF {\c_@@_backcover_page_file_string_tl}
- {%
- \hbox{}
- }
- }
-}
-% \end{macrocode}
-%
-% \section{User level commands}
-%
-% Here, we gather all the user level (public) commands.
-%
-% \subsection{Populating the people involved in the journal}
-%
-% \begin{macro}{\editorinchief}
-% \begin{macro}{\editor}
-% \begin{macro}{\president}
-% \begin{macro}{\classdesigner}
-% \begin{macro}{\fontdesigner}
-% \begin{macro}{\classmaintainer}
-% \begin{macro}{\graphicdesigner}
-% We define some document-level commands that let the user specify
-% respectively the editor(s) in chief, the editors, the (\textsc{smf})
-% president, the class designer and maintainer(s), and the graphic designer.
-%
-% For the editor(s) in chief, we increment the "\g_@@_editors_in_chief_int"
-% counter in order to use singular or plural form of the corresponding string
-% \enquote{Rédacteur(s) en chef}.
-% \begin{macrocode}
-\NewDocumentCommand \editorinchief {ommm}
-{
- \int_incr:N \g_@@_editors_in_chief_int
- \_@@_people:nnnnnnnn {#2}{#3}{#4}{}{}{#1}{editorinchief}{}
-}
-\NewDocumentCommand \editor {ommm}
-{
- \_@@_people:nnnnnnnn {#2}{#3}{#4}{}{}{#1}{editor}{}
-}
-
-\NewDocumentCommand \president {ommm}
-{
- \_@@_people:nnnnnnnn {#2}{#3}{#4}{}{}{#1}{president}{}
-}
-\NewDocumentCommand \classdesigner {ommm}
-{
- \_@@_people:nnnnnnnn {#2}{#3}{#4}{}{}{#1}{classdesigner}{}
-}
-\NewDocumentCommand \classmaintainer {ommm}
-{
- \_@@_people:nnnnnnnn {#2}{#3}{#4}{}{}{#1}{classmaintainer}{}
-}
-\NewDocumentCommand \fontdesigner {ommm}
-{
- \_@@_people:nnnnnnnn {#2}{#3}{#4}{}{}{#1}{fontdesigner}{}
-}
-\NewDocumentCommand \graphicdesigner {ommm}
-{
- \_@@_people:nnnnnnnn {#2}{#3}{#4}{}{}{#1}{graphicdesigner}{}
-}
-\NewDocumentCommand \secretary {ommm}
-{
- \_@@_people:nnnnnnnn {#2}{#3}{#4}{}{}{#1}{secretary}{}
-}
-% \NewDocumentCommand \frontcovercredit {om}
-% {
-% \_@@_people:nnnnnnnn {#2}{}{}{}{}{#1}{frontcovercredit}{}
-% }
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \subsection{Issue setup}
-%
-% \begin{macro}{\issuesetup}
-% We define the command that lets the user specify the issue setup.
-% \begin{macrocode}
-\NewDocumentCommand \issuesetup { m } {
-% \end{macrocode}
-%
-% Its keys are set (only "number", "month" and "year" are relevant here).
- \keys_set:nn { gzt/issuesetup } {frontcoverimageoptions={width=\c_@@_frontcover_image_width_dim},#1}
-% \end{macrocode}
-%
-% We use here the fact that, if the "number", "month" or "year" options are not
-% used, their corresponding "\g_@@_issue_number_int", "\g_@@_issue_month_int" or
-% "\g_@@_issue_year_int" variables are equal to $0$ ($<1$).
-%
-% First, if "number" is not used, its "\g_@@_issue_number_int" variable is set
-% to "\c_@@_first_issue_number_int"\footnote{The number of the first Gazette's
-% issue using the present class.} and a warning is emitted.
-% \begin{macrocode}
- \int_compare:nNnT {\g_@@_issue_number_int}<{1}
- {
- \int_set:Nn \g_@@_issue_number_int { \c_@@_first_issue_number_int }
- \msg_warning:nnn{gzt}{issue-number-needed}{number}
- }
-% \end{macrocode}
-%
-% If not specified as \refCom{issuesetup}'s key-value options, issue's month and
-% year are computed from issue number (which defaults to
-% "\c_@@_first_issue_month_int").
-%
-% \begin{macro}{\c_@@_issue_age_in_months_int}
-% First, if "month" or "year" option is not used (one of the previous
-% variables is $0$ hence their product is $0$ ($<1$)), we compute the issue
-% age in months, useful for both month and year computation.
-% \begin{macrocode}
- \int_compare:nNnT {\g_@@_issue_month_int * \g_@@_issue_year_int}<{1}
- {
- \int_new:N \g_@@_issue_age_in_months_int%
- \int_gset:Nn \g_@@_issue_age_in_months_int
- {
- \c_@@_first_issue_month_int
- + \c_@@_interval_in_months_int
- * ( \int_use:N \g_@@_issue_number_int - \c_@@_first_issue_number_int )
- }
- }
-% \end{macrocode}
-% \end{macro}
-%
-% If the "month" is not used, we replace "\g_@@_issue_month_int" ($=0$) by its
-% computed value from the issue number.
-% \begin{macrocode}
- \int_compare:nNnT {\g_@@_issue_month_int}<{1}
- {
- \int_gset:Nn \g_@@_issue_month_int
- {
- \int_mod:nn { \g_@@_issue_age_in_months_int } { 12 }
- }
- }
-% \end{macrocode}
-%
-% If the "year" is not used, we replace "\g_@@_issue_year_int" ($=0$) by its
-% computed value from the issue number.
-% \begin{macrocode}
- \int_compare:nNnT {\g_@@_issue_year_int}<{1}
- {
- \int_new:N \g_@@_issue_age_in_years_int%
- \int_gset:Nn \g_@@_issue_age_in_years_int
- {%
- \int_div_truncate:nn { \g_@@_issue_age_in_months_int } { 12 }
- }%
- \int_gset:Nn \g_@@_issue_year_int
- {
- \g_@@_issue_age_in_years_int + \c_@@_first_issue_year_int
- }
- }%
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsection{Special edition setup}
-%
-% \begin{macro}{\specialeditionsetup}
-% We define the command that lets the user specify the special edition setup.
-% \begin{macrocode}
-\NewDocumentCommand \specialeditionsetup { m } {
- \bool_gset_true:N \g_@@_special_edition_bool
- \bool_gset_true:N \g_@@_frontcover_without_minitoc_bool
- \keys_set:nn { gzt/specialedition } {#1}
-}
-% \end{macrocode}
-%
-% \subsection{Moral report setup}
-%
-% \begin{macro}{\moralreportsetup}
-% We define the command that lets the user specify the moral report setup.
-% \begin{macrocode}
-\NewDocumentCommand \moralreportsetup { m } {
- \bool_gset_true:N \g_@@_moral_report_bool
- \bool_gset_true:N \g_@@_frontcover_without_minitoc_bool
- \keys_set:nn { gzt/moralreport } {#1}
-}
-% \end{macrocode}
-%
-% \subsection{Journal setup}
-%
-% \begin{macro}{\journalsetup}
-% We define the command that lets the user specify the
-% journal setup. This setup is likely to be rarely changed.
-% \begin{macrocode}
-\NewDocumentCommand \journalsetup { m } {
-% \end{macrocode}
-%
-% Its keys are set (only "publisher", "address", "phone", "fax", "email", "url"
-% and "issn" are relevant here).
-% \begin{macrocode}
- \keys_set:nn { gzt/journalsetup } { #1 }
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsection{Date of the president's message}
-%
-% \begin{macro}{\date}
-% We redefine the "\date" for the date of the president's message. It takes
-% 3 arguments, each of them being a number: the day, the month and the year.
-% \begin{macrocode}
-\RenewDocumentCommand \date { mmm } {
- \newdate{@@_president_message_date}{#1}{#2}{#3}%
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsection{Interviews}
-%
-% \begin{macro}{\interviewee}
-% \begin{macrocode}
-% \NewDocumentCommand\interviewer { o m } {
-% }
-\NewDocumentCommand \interviewee { om } {
- \tl_if_empty:nT \g_@@_title_tl {
- \tl_gset:Nn \g_@@_title_tl {
- \c_@@_interview_title_string_tl
- \DeclareNameAlias{labelname}{default}\citeauthor{\c_@@_issue_bib_key_tl -art-\int_use:N
- \g_@@_articles_int}
- }
- }
- \IfNoValueF {#1}
- {
- \keys_set:nn { gzt/interviewees } { #1 }
- }
- \tl_set:Nn \l_@@_people_first_last_name_tl {#2}
- \_@@_people:nVVVVnxV
- {#2}
- {\g_@@_people_affiliation_tl}
- {\g_@@_people_email_tl}
- {\g_@@_people_minibio_tl}
- {\g_@@_people_photo_tl}
- {}
- {interviewee-art-\int_use:N \g_@@_articles_int}
- {}
- % \maketitle
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsection{Miscellaneous}
-%
-% \begin{macro}{\academicsignature}
-% \begin{macrocode}
-\NewDocumentCommand \academicsignature { m } {
- \@@_display_academic_signature:n {#1}
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \section{Definition of the footer of the pages}
-%
-% \begin{macro}{@@_date}
-% \begin{macro}{\l_@@_uppercased_date_format}
-% Thanks to \Pkg{datetime}, we create the new date "@@_date" and define the
-% date format to be used in the journal. As this date has to be displayed
-% uppercased, we first define a function that displays uppercased months.
-% \begin{macrocode}
-\cs_new_protected:Nn \_@@_uppercased_monthname_french:n
-{
- \@orgargctr=#1\relax
- \ifcase\@orgargctr
- \PackageError{datetime}{Invalid~month~number~\the\@orgargctr}{%
- Month~numbers~should~go~from~1~(janvier)~to~12~(decembre)}%
- \or JANVIER%
- \or F\'EVRIER%
- \or MARS%
- \or AVRIL%
- \or MAI%
- \or JUIN%
- \or JUILLET%
- \or AO\^UT%
- \or SEPTEMBRE%
- \or OCTOBRE%
- \or NOVEMBRE%
- \or D\'ECEMBRE%
- \else
- \PackageError{datetime}{Invalid~month~number~\the\@orgargctr}{%
- Month~numbers~should~go~from~1~(janvier)~to~12~(decembre)}%
- \fi
-}
-\newdate{@@_date}
- {1}
- {\int_use:N \g_@@_issue_month_int}
- {\int_use:N \g_@@_issue_year_int}
-\newdateformat{l_@@_uppercased_date_format}{
- \_@@_uppercased_monthname_french:n {\THEMONTH}~\THEYEAR
-}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \section{(Re)Definition of document commands that identify the article}
-%
-% The names of the authors of the different articles will appear at several
-% places, and notably in the table of contents where first and middle names have to
-% be rendered as initials. Because automatically rendering initials is a complex task
-% already provided by \Pkg{biblatex}, we will create a \file{.bib} file
-% containing "article" entries for each article of the \gzt{} journal.
-%
-% This can be done only at the beginning of the document, in order to know the
-% characteristics of the current issue.
-% \begin{macrocode}
-\AddToHook{begindocument}{%
-% \end{macrocode}
-%
-% We first create a token list containing the date of the current issue formated
-% as required by \pkg{biblatex} (the month issue needs a leading zero if it is
-% $<10$).
-% \begin{macrocode}
-\tl_new:N \g_@@_bib_issue_date_tl
-\tl_gset:Nn \g_@@_bib_issue_date_tl {
- \int_use:N \g_@@_issue_year_int-
- \int_compare:nNnT {\g_@@_issue_month_int}<{10}
- {
- 0
- }
- \int_use:N \g_@@_issue_month_int
-}
-% \end{macrocode}
-%
-% We will populate the bibiliographic file of the current issue with the current
-% issue (as "@periodical" entry type).
-% \begin{macrocode}
- \iow_now:Nx \g_@@_bib_out_iow {%
- @periodical{\c_@@_issue_bib_key_tl,\iow_newline:
- issuetitle = {\exp_not:f\c_@@_journal_title_string_tl},\iow_newline:
- date = {\g_@@_bib_issue_date_tl},\iow_newline:
- number = \int_use:N \g_@@_issue_number_int,\iow_newline:
- % issn = {\l_@@_journal_issn_tl},\iow_newline:
- options = {skipbib}\iow_newline:
- }
- \iow_newline:
- }%
-}
-% \end{macrocode}
-%
-% \begin{macro}{\title}
-% \begin{macro}{\g_@@_title_tl}
-% The command for article's title is redefined: the full \enquote{article's
-% title} is store in "\g_@@_title_tl" for later use.
-% \begin{macrocode}
-\tl_new:N \g_@@_title_tl
-\RenewDocumentCommand \title { o m } {
-% \end{macrocode}
-% We increment the "\g_@@_articles_int" integer that counts the number of
-% articles in order to provide for each of them a unique bibliographic key.
-% \begin{macrocode}
- \int_gincr:N \g_@@_articles_int
- \tl_gclear:N \g_@@_short_title_tl
- \tl_gclear:N \g_@@_short_subtitle_tl
- \bool_gset_false:N \g_@@_title_not_in_toc_bool
- %
- \IfNoValueF {#1}
- {
- \keys_set:nn { gzt/title } { #1 }
- }
- \tl_gset:Nn \g_@@_title_tl {#2}
- \bool_if:nT \g_@@_tellme_rubric_bool
- {
- \tl_put_left:Nx \g_@@_title_tl {\c_@@_tellme_extra_title_string_tl}
- }
- \tl_if_empty:NT \g_@@_short_title_tl {%
- \tl_gset_eq:NN \g_@@_short_title_tl \g_@@_title_tl
- }
-}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\subtitle}
-% \begin{macro}{\g_@@_subtitle_tl}
-% The command for article's subtitle is redefined: the full and short
-% \enquote{article's subtitles} are store in "\g_@@_subtitle_tl" and
-% "\g_@@_short_subtitle_tl" for later use.
-% \begin{macrocode}
-\tl_new:N \g_@@_subtitle_tl
-\NewDocumentCommand \subtitle { o m } {
- \bool_gset_false:N \g_@@_subtitle_not_in_toc_bool
- %
- \IfNoValueF {#1}
- {
- \keys_set:nn { gzt/subtitle } { #1 }
- }
- \tl_gset:Nn \g_@@_subtitle_tl {#2}
- \tl_if_empty:NT \g_@@_short_subtitle_tl {%
- \tl_gset_eq:NN \g_@@_short_subtitle_tl \g_@@_subtitle_tl
- }
-}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\author}
-% The command for article's author (including its affiliation) is redefined.
-% \begin{macrocode}
-\RenewDocumentCommand \author { o m } {
- \IfNoValueF {#1}
- {
- \keys_set:nn { gzt/authors } { #1 }
- }
- \tl_gset:Nn \l_@@_people_first_last_name_tl {#2}
- \_@@_people:nVVVVnxV
- {#2}
- {\g_@@_people_affiliation_tl}
- {\g_@@_people_email_tl}
- {\g_@@_people_minibio_tl}
- {\g_@@_people_photo_tl}
- {}
- {author-art-\int_use:N \g_@@_articles_int}
- {\g_@@_people_webpage_tl}
-}
-% \end{macrocode}
-% \end{macro}
-%
-% We create a stream in order to write a bibliographic file
-% \begin{macrocode}
-\iow_new:N \g_@@_bib_out_iow
-\ior_new:N \g_@@_bib_out_ior
-\tl_new:N \g_@@_bib_out_tl
-\file_if_exist:nTF { \c_@@_issue_bib_path_string_tl }
-{
- \ior_open:Nn \g_@@_bib_out_ior { \c_@@_issue_bib_path_string_tl }
- \ior_str_map_inline:Nn \g_@@_bib_out_ior
- { \tl_gput_right:Nn \g_@@_bib_out_tl {#1 \par } }
- \ior_close:N \g_@@_bib_out_ior
-}{
- \typeout{no file! rerun}
-}
-\iow_open:Nn \g_@@_bib_out_iow { \c_@@_issue_bib_path_string_tl }
-% \end{macrocode}
-%
-% \begin{environment}{abstract}
-% The environment for article's abstract or, more precisely, for its lead
-% paragraph (\enquote{chapô} in French typography) is (re)defined.
-% \begin{macrocode}
-\tl_new:N \g_@@_abstract_body_tl
-\NewDocumentEnvironment{abstract}{}
- {\CollectAbstract}
- {\endCollectAbstract}
-\NewEnviron{CollectAbstract}
- {
- \tl_gset_eq:NN \g_@@_abstract_body_tl \BODY
- }
-% \end{macrocode}
-% \end{environment}
-%
-% \section{Definition of a private main matter switch}
-%
-% A private "\_@@_mainmatter_switch_tl" switch is defined in order to automatically insert
-% some settings.
-% \begin{macrocode}
-\tl_new:N \g_@@_mainmatter_switch_tl%
-\tl_gset:Nn \g_@@_mainmatter_switch_tl {
- \bool_gset_false:N \g_@@_frontmatter_bool
- \bool_gset_true:N \g_@@_mainmatter_bool
- \SetParskip{\c_@@_mainmatter_parskip_skip}
- \pagestyle{@@_mainmatter_ps}%
-}
-% \end{macrocode}
-%
-% \begin{macrocode}
-\tl_new:N \l_@@_article_acknowledgements_tl%
-\cs_new_protected:Nn \@@_article_acknowledgements:n
-{
- \tl_set:Nn \l_@@_article_acknowledgements_tl { #1 }
-}
-% \end{macrocode}
-%
-% \begin{macrocode}
-%</class|class-article>
-% \end{macrocode}
-%
-% \begin{macrocode}
-%<*class>
-% \end{macrocode}
-%
-% \begin{macro}{\_@@_about_frontcover}
-% We define the internal function than let us tell a few words about the front
-% cover.
-% \begin{macrocode}
-\tl_new:N \g_@@_about_frontcover_tl%
-\bool_new:N \g_@@_credit_frontcover_bool%
-\tl_new:N \g_@@_about_frontcover_string_tl%
-\cs_new_protected:Nn \_@@_about_frontcover:nnn
-{
- \tl_if_empty:nF {#1}{%
- \bool_gset_true:N \g_@@_credit_frontcover_bool
- \_@@_people:nnnnnnnn {#1}{}{}{}{}{}{frontcovercredit}{}
- }
- \tl_gset:Nn \g_@@_about_frontcover_string_tl { #2 }
- \tl_gset:Nn \g_@@_about_frontcover_tl { #3 }
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\_@@_rubric}
-% We define the internal function than defines and sets the layouts of rubrics.
-% \begin{macrocode}
-% \tl_new:N \g_@@_rubric_title_tl%
-% \tl_new:N \g_@@_rubric_pictofile_tl%
-% \tl_new:N \g_@@_rubric_abstract_tl%
-\tl_new:N \g_@@_rubric_abstract_box_tl%
-\tl_new:N \l_@@_rubric_head_text_box_tl%
-%
-\cs_new_protected:Nn \_@@_rubric:nnn
-{
- \newpage%
- \tl_gclear:N \g_@@_rubric_abstract_tl
- \tl_gset:Nn \g_@@_rubric_title_tl {#2}
- \file_if_exist:nTF { #3.pdf }{%
- \tl_gset:Nn \g_@@_rubric_pictofile_tl {#3}
- }{
- \tl_gset:Nn \g_@@_rubric_pictofile_tl {example-image}
- }
- \IfNoValueF {#1}
- {
- \keys_set:nn { gzt/rubric } { #1 }
- }
- \g_@@_mainmatter_switch_tl
- \bool_gset_true:N \g_@@_mainmatter_bool
- \clearpage
-% \end{macrocode}
-%
-% We reinitialize the items counter in this new rubric.
-% \begin{macrocode}
- \bool_gset_true:N \g_@@_rubric_bool%
- \bool_gset_false:N \g_@@_interview_rubric_bool
- \bool_gset_false:N \g_@@_tellme_rubric_bool
- \bool_gset_false:N \g_@@_rearviewmirror_rubric_bool
- \bool_gset_false:N \g_@@_books_rubric_bool
- \bool_gset_false:N \g_@@_previous_article_with_bibliography_or_minibio_bool
- \bool_if:nF { \g_@@_for_authors_bool } {
- \int_zero:N \g_@@_item_in_rubric_int
- \phantomsection
- \par
- \bool_if:NF {\g_@@_special_edition_bool} {
- \addcontentsline{toc}{part}{\g_@@_rubric_title_tl}
- }
- \thispagestyle{@@_rubric_ps}
- \exp_after:wN\newgeometry\exp_after:wN{\c_@@_main_geometry_tl}%
- \tl_if_empty:NTF \g_@@_rubric_abstract_tl
- {
- \dim_set:Nn \l_@@_rubrics_head_text_width_dim { \c_@@_rubrics_head_text_no_abstract_width_dim }
- }
- {
- \dim_set:Nn \l_@@_rubrics_head_text_width_dim { \c_@@_rubrics_head_text_abstract_width_dim }
- \tl_gset:Nn \g_@@_rubric_abstract_box_tl {
- \begin{adjustbox}{valign=t,minipage=\c_@@_rubrics_abstract_width_dim}
- \raggedright%
- \large%
- \color{@@_rubric_abstract_color}%
- \g_@@_rubric_abstract_tl%
- \end{adjustbox}
- }
- }
- \tl_set:Nn \l_@@_rubric_head_text_box_tl {
- \begin{adjustbox}{valign=t,minipage=\l_@@_rubrics_head_text_width_dim}
- \mbox{}%
- \checkoddpage%
- \ifoddpage%
- \raggedleft%
- \else
- \raggedright%
- \fi%
- \color{@@_rubric_title_color}%
- \fontsize{20}{20}\fontseries{bx}\fontshape{sc}\selectfont%
- \g_@@_rubric_title_tl%
- \end{adjustbox}
- }
- \noindent%
- \mbox{}%
- \checkoddpage%
- \ifoddpage%
- \hspace*{\c_@@_rubric_extra_xoffset_dim}
- \tl_if_empty:NF \g_@@_rubric_abstract_tl
- {
- \g_@@_rubric_abstract_box_tl
- }
- \hfill%
- \l_@@_rubric_head_text_box_tl
- \hspace*{\c_@@_rubric_xoffset_dim}%
- \else%
- \hspace*{\c_@@_rubric_xoffset_dim}%
- \l_@@_rubric_head_text_box_tl
- \tl_if_empty:NF \g_@@_rubric_abstract_tl
- {
- \hfill%
- \g_@@_rubric_abstract_box_tl
- \hspace*{\c_@@_rubric_extra_xoffset_dim}
- }
- \fi%
- }
- \afterpage{%
- \bool_gset_false:N \g_@@_rubric_bool%
- }
-% \end{macrocode}
-% We suppress any spurious space in case of lack of "%" at the end of the
-% public macros built on "\_@@_rubric":
-% \begin{macrocode}
- \ignorespaces
-% \end{macrocode}
-% End of the definition of the private command "\_@@_rubric":
-% \begin{macrocode}
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macrocode}
-%</class>
-% \end{macrocode}
-%
-% \begin{macrocode}
-%<*class|class-article>
-% \end{macrocode}
-%
-% We create a command for local (to a given article) tables of contents
-% \begin{macrocode}
-\cs_new_protected:Nn \_@@_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 {}
-{
- \_@@_display_localtoc: {}
-}
-% \end{macrocode}
-%
-% We create two token lists that will contain:
-% \begin{enumerate}
-% \item the unique bibliographic key,
-% \item the "author" value of the bibliographic entry,
-% \end{enumerate}
-% of the current article.
-% \begin{macrocode}
-\tl_new:N \g_@@_article_bib_key_tl%
-\tl_new:N \l_@@_people_first_last_names_tl
-\tl_new:N \g_@@_authors_first_last_names_tl%
-\tl_new:N \l_@@_interviewees_first_last_names_tl%
-\tl_new:N \g__@@_citeauthor_no_firstinits%
-\tl_new:N \g_@@_citeauthor_tl%
-\tl_new:N \g_@@_citeinterviewee_tl%
-%
-\tl_new:N \g_@@_blx_given_first_inits_tl%
-\@ifpackagelater{biblatex}{2016/01/01}{%
- \tl_gset:Nn \g_@@_blx_given_first_inits_false_tl
- {%
- \togglefalse{abx@bool@giveninits}%
- }
-}{
- \tl_set:Nn \g_@@_blx_given_first_inits_false_tl
- {%
- \togglefalse{blx@firstinits}%
- }
-}
-%
-\cs_new_protected:Nn \_@@_citeauthor_no_firstinits:n {%
- \tl_gset:Nn \g_@@_citeauthor_tl {%
- \DeclareNameAlias{labelname}{default}%
- \group_begin:
- \g_@@_blx_given_first_inits_false_tl
- \citeauthor{#1}
- \group_end:
- }%
- \cs_if_exist:cTF {texorpdfstring}
- {
- \texorpdfstring{\g_@@_citeauthor_tl}{}
- }{%
- \g_@@_citeauthor_tl
- }%
-}
-% \@ifpackageloaded{hyperref}{%
-% \tl_gset:No \g_@@_citeauthor_tl {%
-% \texorpdfstring{\citeauthor{\g_@@_article_bib_key_tl}}{}
-% }
-% }{%
-% \tl_gset:Nn \g_@@_citeauthor_tl {%
-% \citeauthor{\g_@@_article_bib_key_tl}
-% }%
-% }%
-% \@ifpackageloaded{hyperref}{%
-% \tl_gset:No \g_@@_citeinterviewee_tl {%
-% \texorpdfstring{\citeauthor{\g_@@_article_bib_key_tl}}{}
-% }
-% }{%
-% \tl_gset:Nn \g_@@_citeinterviewee_tl {%
-% \citeinterviewee{\g_@@_article_bib_key_tl}
-% }%
-% }%
-% \end{macrocode}
-%
-% In the following "\maketitle" document level macro, we will need to display
-% the list the authors of the current article, not as a comma separated list
-% (default "\citeauthor" \pkg{biblatex}'s macro behavior), but as an itemized
-% list. For this, we create the "\_@@_itemized_citeauthor" internal function
-% that will make use of "\citeauthor" where "\multinamedelim" and
-% "\finalnamedelim" will be patched into "\item". As we don't want to globally
-% alter the behavior of these macros, we first store their original meanings in
-% some private control sequence:
-% \begin{macrocode}
-\cs_set_eq:NN \_@@_orig_multinamedelim \multinamedelim
-\cs_set_eq:NN \_@@_orig_finalnamedelim \finalnamedelim
-\cs_new_protected:Nn \_@@_itemized_citeauthor:n
-{
- \cs_set_eq:NN \multinamedelim \item
- \cs_set_eq:NN \finalnamedelim \multinamedelim
- \AtNextCitekey{\defcounter{maxnames}{100}}
- \begin{itemize}[label=\textbullet,noitemsep]
- \item \citeauthor{#1}
- \end{itemize}
- \cs_set_eq:NN \multinamedelim \_@@_orig_multinamedelim
- \cs_set_eq:NN \finalnamedelim \_@@_orig_finalnamedelim
-}
-% \end{macrocode}
-%
-% We declare two token list which will used in the next (re)definition.
-% \begin{macrocode}
-\tl_new:N \l_@@_bullet_and_rule_tl
-\tl_new:N \l_@@_authors_box_tl
-\tl_new:N \l_@@_abstract_box_tl
-\tl_new:N \l_@@_bullet_and_rule_odd_tl
-\tl_new:N \l_@@_bullet_and_rule_even_tl
-\tl_new:N \l_@@_title_box_tl
-%
-% \end{macrocode}
-%
-% \begin{macro}{\_@@_maketitle}
-% The command that \enquote{makes} the title is redefined.
-% \begin{macrocode}
-\RenewDocumentCommand \maketitle { s } {
-% \end{macrocode}
-%
-% We force all the previous floats to be processed before a new article starts
-% (this is already done in "bibliography_minibiographies_acknowledgements"
-% environment but is repeated here if what is before provides floats but neither
-% bibliography, \textsc{cv} nor acknowledgements).
-% \begin{macrocode}
- \FloatBarrier%
-% \end{macrocode}
-%
-% We increment the item number in the current rubric.
-% \begin{macrocode}
-\int_gincr:N \g_@@_item_in_rubric_int
-% \end{macrocode}
-%
-% We restore the original length for "\parindent" that has been set to zero in
-% a possible previous \enquote{Interview} rubric.
-% \begin{macrocode}
-\dim_set_eq:NN \parindent \c_@@_original_parindent_dim
-% \end{macrocode}
-%
-% We reset all acronyms entries.
-% \begin{macrocode}
-\glsresetall
-% \end{macrocode}
-%
-% We reset to zero some counters at each new article.
-% \begin{macrocode}
-\setcounter{section}{0}
-\setcounter{figure}{0}
-\setcounter{table}{0}
-\setcounter{footnote}{0}
-%
-\setcounter{equation}{0}
-%
-\setcounter{theorem}{0}
-% \setcounter{theoreme}{0}
-\setcounter{corollary}{0}
-% \setcounter{corollaire}{0}
-\setcounter{conjecture}{0}
-\setcounter{proposition}{0}
-\setcounter{lemma}{0}
-% \setcounter{lemme}{0}
-\setcounter{axiom}{0}
-% \setcounter{axiome}{0}
-%
-\setcounter{definition}{0}
-\setcounter{remark}{0}
-% \setcounter{remarque}{0}
-\setcounter{example}{0}
-% \setcounter{exemple}{0}
-\setcounter{notation}{0}
-% \end{macrocode}
-%
-% We store the unique bibliographic key of the current article in the
-% "\g_@@_article_bib_key_tl" token list.
-% \begin{macrocode}
-\tl_gset:Nn \g_@@_article_bib_key_tl {%
- \c_@@_issue_bib_key_tl
- -art-
- \int_use:N \g_@@_articles_int
-}
-% \end{macrocode}
-%
-% We will populate the bibiliographic file of the current issue with the current
-% article (title, author(s) and a fixed part giving by the issue number, journal
-% title and date).
-%
-% Then, we iterate through each row of the authors database in order to get
-% a token list containing the (list of the) author(s) of the current article
-% formated as required by \pkg{biblatex} (\enquote{Last1, First1 [and Last2,
-% First2 [and ...]]}).
-% \begin{macrocode}
-\DTLforeach*[\DTLiseq{\l_@@_people_role_tl}{author-art-\int_use:N \g_@@_articles_int}]{people}{%
- \l_@@_people_first_last_name_tl=first-last-name%
- ,\l_@@_people_role_tl=role%
-}{%
- \tl_if_in:NnT \l_@@_people_role_tl { author } {
- \DTLiffirstrow{%
- \tl_put_right:Nx
- \l_@@_people_first_last_names_tl
- {\exp_not:V\l_@@_people_first_last_name_tl}
- }{
- \tl_put_right:Nx
- \l_@@_people_first_last_names_tl
- {~and~\exp_not:V\l_@@_people_first_last_name_tl}
- }
- }
-}
-\DTLforeach*[\DTLiseq{\l_@@_people_role_tl}{interviewee-art-\int_use:N \g_@@_articles_int}]{people}{%
- \l_@@_people_first_last_name_tl=first-last-name%
- ,\l_@@_people_role_tl=role%
-}{%
- \tl_if_in:NnT \l_@@_people_role_tl { interviewee } {
- \DTLiffirstrow{%
- \tl_put_right:Nx
- \l_@@_people_first_last_names_tl
- {\exp_not:V\l_@@_people_first_last_name_tl}
- }{
- \tl_put_right:Nx
- \l_@@_people_first_last_names_tl
- {~and~\exp_not:V\l_@@_people_first_last_name_tl}
- }
- }
-}
-% \end{macrocode}
-%
-% We now populate the bibiliographic file.
-% \begin{macrocode}
-\tl_if_empty:NF \g_@@_title_tl {%
- \iow_now:Nx \g_@@_bib_out_iow {%
- @article{
- \g_@@_article_bib_key_tl,
- \iow_newline:
- title={\exp_not:V\g_@@_title_tl},
- \iow_newline:
- \tl_if_empty:NF \g_@@_subtitle_tl {%
- subtitle={\exp_not:V\g_@@_subtitle_tl},
- \iow_newline:
- }
- \tl_if_eq:NNF { \g_@@_short_title_tl } { \g_@@_title_tl } {%
- shorttitle={\exp_not:V\g_@@_short_title_tl},
- \iow_newline:
- }%
- \tl_if_empty:NF \l_@@_people_first_last_names_tl
- {
- author={\exp_not:V\l_@@_people_first_last_names_tl},
- \iow_newline:
- }
- options={skipbib},
- \iow_newline:
- crossref = {\c_@@_issue_bib_key_tl}
- }
- \iow_newline:
- }%
-}%
-%
-\tl_set:Nn \l_@@_bullet_and_rule_odd_tl
-{%
- \begin{tikzpicture}[remember~picture,overlay]
- \draw[fill=@@_circlerule_color,draw=@@_circlerule_color,line~width=0.7mm]
- ([xshift=-\c_@@_innermargin_dim-\c_@@_potential_layoutoffset_dim]0,0 -| current~page.west) -- (\linewidth,0);%
- \fill[@@_circlerule_color] (\linewidth-2\pgflinewidth,0) circle [radius=2.75mm];
- \end{tikzpicture}%
-}%
-\tl_set:Nn \l_@@_bullet_and_rule_even_tl
-{%
- \begin{tikzpicture}[remember~picture,overlay]
- \draw[fill=@@_circlerule_color,draw=@@_circlerule_color,line~width=0.7mm]
- (0,0 -| current~page.east) -- (0,0);%
- \fill[@@_circlerule_color] (0,0) circle [radius=2.75mm];
- \end{tikzpicture}%
-}%
-\tl_set:Nn \l_@@_title_box_tl
-{%
- \noindent%
- \hspace*{18mm}%
- \begin{adjustbox}{minipage=\linewidth-18mm,valign=t}
- \raggedright%
- \color{@@_article_title_color}%
- \fontsize{20}{25}\selectfont%
- \bfseries%
- \g_@@_title_tl
- \tl_if_empty:NF \g_@@_subtitle_tl {%
- \par%
- \g_@@_subtitle_tl
- }
- \phantomsection
- \par%
- \bool_if:NTF {\g_@@_title_not_in_toc_bool} {
- \bookmark[page=\thepage,level=chapter]{\g_@@_short_title_tl}
- }{
- \addcontentsline{toc}{chapter}{%
- \tl_if_empty:NTF \g_@@_short_title_tl {%
- \g_@@_title_tl%
- }{
- \g_@@_short_title_tl%
- }
- \bool_if:NF {\g_@@_subtitle_not_in_toc_bool} {
- \bool_if:nF { \tl_if_empty_p:N \g_@@_short_subtitle_tl || \g_@@_interview_rubric_bool || \g_@@_rearviewmirror_rubric_bool }
- {
- \c_space_tl\textendash{}\c_space_tl\g_@@_short_subtitle_tl
- }
- }
- \bool_if:nF { \tl_if_empty_p:N \l_@@_people_first_last_names_tl || \g_@@_interview_rubric_bool || \g_@@_rearviewmirror_rubric_bool }
- {
- \textsl{
- \cs_if_exist:cTF {texorpdfstring}
- {
- \texorpdfstring{%
- \c_space_tl\textendash{}\c_space_tl\citeauthor{\g_@@_article_bib_key_tl}
- }{}
- }{%
- \c_space_tl\textendash{}\c_space_tl\citeauthor{\g_@@_article_bib_key_tl}
- }%
- }
- }
- }
- }
- \end{adjustbox}
-}
- \dim_gset:Nn \g_@@_abstract_box_width_dim {0.75\linewidth}
- % \bool_if:nT { \tl_if_empty_p:N \l_@@_people_first_last_names_tl }
- % {
- % \dim_gset:Nn \g_@@_abstract_box_width_dim {\linewidth}
- % }
- \tl_set:Nn \l_@@_abstract_box_tl
- {%
- \begin{adjustbox}{minipage=\g_@@_abstract_box_width_dim,max~width=\g_@@_abstract_box_width_dim,valign=t}
- \mbox{}
- \tl_if_exist:NT \g_@@_abstract_body_tl
- {%
- \raggedright%
- \bfseries%
- \color{@@_article_abstract_color}%
- \g_@@_abstract_body_tl
- }%
- \end{adjustbox}
- }%
- \tl_set:Nn \l_@@_authors_box_tl
- {%
- \begin{adjustbox}{minipage=0.3\linewidth,min~width=0.3\linewidth,valign=t}
- \bool_if:nTF { \tl_if_empty_p:N \l_@@_people_first_last_names_tl || \g_@@_interview_rubric_bool }
- {
- \mbox{}
- }
- {
- \color{@@_people_color}%
- \_@@_itemized_citeauthor:n {\g_@@_article_bib_key_tl}
- }
- \end{adjustbox}
- }
- \bool_if:nTF {
- \int_compare_p:nNn { \g_@@_item_in_rubric_int } = { 1 }
- }
- {
- \mbox{}
- \par
- \bool_if:nTF {
- \tl_if_empty_p:N \g_@@_rubric_abstract_tl
- }{
- \xleaders\vbox {
- \bigskip%
- }%
- \vskip\bigskipamount%
- }{
- \xleaders\vbox {
- \smallskip%
- }%
- \vskip\smallskipamount%
- }
- }
- {
- \bool_if:NTF {\g_@@_previous_article_with_bibliography_or_minibio_bool}
- {
- \xleaders\vbox {
- \mbox{}
- \par
- \medskip%
- }%
- \vskip\medskipamount%
- }
- {
- \xleaders\vbox {
- \mbox{}
- \par
- \smallskip%
- }%
- \vskip\smallskipamount%
- }
- }
- \bool_gset_false:N \g_@@_previous_article_with_bibliography_or_minibio_bool
-% \end{macrocode}
-%
-% \begin{macrocode}
-%<class-article>\hypersetup{pdftitle=\g_@@_short_title_tl,pdfauthor=\l_@@_people_first_last_names_tl}
-% \end{macrocode}
-%
-% \begin{macrocode}
-%</class|class-article>
-% \end{macrocode}
-%
-% \begin{macrocode}
-%<*class>
-% \end{macrocode}
-%
-% We fix some of the PDF's metadata .
-% \begin{macrocode}
-\bool_if:NT {\g_@@_for_authors_bool} {
- \hypersetup{%
- pdftitle=\g_@@_short_title_tl,
- pdfauthor=\l_@@_people_first_last_names_tl
- }
-}
-% \end{macrocode}
-%
-% Here, we put the \pkg{TikZ}'s picture of the \enquote{bullet and rule}
-% (contained in the "\l_@@_bullet_and_rule_tl" token list) in a "\vbox" that
-% follows a "\cleaders" that makes the whole vanishes at pages boundaries
-% (cf. \url{http://tex.stackexchange.com/a/31615/18401}).
-% \begin{macrocode}
- \bool_if:nF { \g_@@_for_authors_bool } {
- % \xleaders\vbox {
- % \bigskip%
- % }%
- % \vskip\bigskipamount%
- \noindent%
- \checkoddpage%
- \ifoddpage%
- \l_@@_bullet_and_rule_odd_tl
- \else%
- \l_@@_bullet_and_rule_even_tl
- \fi%
- \bigskip%
- }%
- \par
- \nopagebreak[4]
-% \end{macrocode}
-%
-% \begin{macrocode}
-%</class>
-% \end{macrocode}
-%
-% \begin{macrocode}
-%<*class|class-article>
-% \end{macrocode}
-%
-% \begin{macrocode}
- \l_@@_title_box_tl
- \normalsize%
- \nopagebreak[3]
- \bool_if:nF { \tl_if_empty_p:N \g_@@_abstract_body_tl && (\tl_if_empty_p:N \l_@@_people_first_last_names_tl || \g_@@_interview_rubric_bool || \g_@@_rearviewmirror_rubric_bool)}
- {%
- \par%
- \bigskip
- \bigskip
- \large%
- \mbox{}%
- \checkoddpage%
- \ifoddpage%
- \l_@@_abstract_box_tl
- \hspace*{11mm}%
- \l_@@_authors_box_tl
- \else%
- \hspace*{-.85\c_@@_outermargin_dim}%
- \l_@@_authors_box_tl
- \hspace*{11mm}%
- \l_@@_abstract_box_tl
- \fi%
- }
- \tl_gclear:N \g_@@_title_tl
- \tl_gclear:N \g_@@_subtitle_tl
- \tl_gclear:N \g_@@_abstract_body_tl
- \normalsize%
- \bigskip
- \tl_if_empty:NF \g_@@_abstract_body_tl
- % {%
- % \tl_if_empty:NF \l_@@_people_first_last_names_tl
- % {%
- % \bigskip
- % }
- % }
- {
- \bigskip
- }
- \bool_if:nT \g_@@_interview_rubric_bool
- {
-% \end{macrocode}
-%
-% We set "\parindent" to zero in \enquote{Interview} rubric.
-% \begin{macrocode}
- \dim_zero:N \parindent
- % \tl_if_empty:NF \l_@@_people_photo_tl
- % {
- % \begin{adjustbox}{center}
- % \includegraphics[height=50mm]{\l_@@_people_photo_tl}
- % \end{adjustbox}
- % }
- }
- \color{@@_default_text_color}%
- \IfBooleanF {#1}%
- {
- \bool_if:nF { \g_@@_multicols_bool || \g_@@_rearviewmirror_rubric_bool }
- {
- \begin{multicols}{2}%
- }
- }
- }
-% \end{macrocode}
-% \end{macro}
-%
-% We load the file where acronyms are defined.
-% \begin{macrocode}
-\file_if_exist:nT { \c_@@_acronyms_file_string_tl } {%
- \AddToHook{begindocument/before}{\loadglsentries{\c_@@_acronyms_file_string_tl}}
-}
-% \end{macrocode}
-%
-% \begin{macrocode}
-%</class|class-article>
-% \end{macrocode}
-%
-% \begin{macrocode}
-%<*class>
-% \end{macrocode}
-%
-% In case of "forauthors" option, we close the "multicols" environment in case
-% it isn't closed (which happens if neither "\printbibliography" nor
-% "\printauthorsdetails" is used). This should fix issue
-% \url{https://github.com/dbitouze/gzt/issues/36}.
-% \begin{macrocode}
-\bool_if:nT { \g_@@_for_authors_bool }
-{
- \AddToHook{enddocument}{%
- \bool_if:NT {\g_@@_multicols_bool} {
- \end{multicols}%
- }
- }
-}
-% \end{macrocode}
-%
-% We load the configuration file (only for the issue's class), which has to be
-% located in the \TeX{} search path: at least one such a file is provided by the
-% class and located in the same directory as the class file. This file is loaded
-% at the end of preamble instead of begin of the document in order some settings
-% needed in preamble are taken in account.
-% \begin{macrocode}
-\AddToHook{begindocument/before}{
- \file_if_exist_input:nF {\c_@@_configuration_file_string_tl}
- {
- \msg_error:nn { gzt } { configuration-file-missing }
- }
-}
-% \end{macrocode}
-%
-% We make use of \pkg{etoc} to perform the special layout of the table of
-% contents. For convenience, it is included in a (long)table (from
-% \Pkg{longtable}) and the following code mainly comes from the \pkg{etoc}'s
-% documentation.
-% \begin{macrocode}
-\@ifpackageloaded{etoc}{%
- \newif\ifShowPartPageInToc % used before \part{Livres}
-% cf etoc manual section Typesetting the TOC as a table
-% we use "\unexpanded" rather than more cumbersome but Knuthian "\toks" registers
- \newtoks\toctabletok
- \newcommand*\appendtotok[2]{% #1=toks variable, #2=macro, expands only once #2
- #1\expandafter\expandafter\expandafter {\expandafter\the\expandafter #1#2}}
- \newcommand*\PreparePart{%
- \edef\toctablepiece {%
- \ExceptFirstPart {\noexpand\\[-1.5mm]}%
- \unexpanded{%
- \color{@@_rubric_in_toc_color}\scshape\fontseries{bx}\selectfont%
- }%
- \unexpanded\expandafter{\etocthelinkedname}&
- % \ifShowPartPageInToc
- \unexpanded{\bfseries\color{@@_rubric_in_toc_color}}%
- \unexpanded\expandafter{\etocthelinkedpage}%
- % \fi
- \noexpand\\}%
- \gdef\ExceptFirstPart ##1{##1}%
- }
- \newcommand*\PrepareChapter{%
- \edef\toctablepiece {%
- \unexpanded{\color{@@_article_in_toc_color}\small}%
- \unexpanded\expandafter{\etocthelinkedname}&
- \unexpanded{\color{@@_article_in_toc_color}\small}
- \unexpanded\expandafter{\etocthelinkedpage}%
- \noexpand\\[1mm]}%
- }
- \etocsetstyle{part}{}{}
- {\PreparePart \appendtotok\toctabletok\toctablepiece}
- {}
- \etocsetstyle{chapter}{}{}
- {\PrepareChapter \appendtotok\toctabletok\toctablepiece}
- {}
- \etocsettocstyle
- {%
- \setlength\LTleft{\c_zero_dim}
- \setlength\LTright{\c_zero_dim}
- \gdef\ExceptFirstPart ##1{}%
- \toctabletok {%\hypersetup{hidelinks}%
- \begin{longtable}{@{\extracolsep{\fill}}p{115mm}@{\quad}!{\color{@@_rule_in_toc_color}\vrule width 0.2mm}@{}r@{}}}%
- }
- {\global\toctabletok\expandafter{%
- \the\toctabletok\end{longtable}
- }
- }
- }{}
-% \end{macrocode}
-%
-% \begin{macrocode}
-%</class>
-% \end{macrocode}
-%
-% \begin{macrocode}
-%<*class|class-article>
-% \end{macrocode}
-%
-% \section{Special tools common to the editorial, the table of contents and the
-% president message}
-%
-% We create an internal function that displays the box containing the issue
-% number, with possible image on its left, followed below by an arbitrary text
-% with a reflection effect.
-% \begin{macrocode}
-\tl_new:N \g_@@_boxed_issue_number_tl%
-\tl_gset:Nn \g_@@_boxed_issue_number_tl {%
- \tcbox{\Large\No\g_@@_issue_number_int}
-}
-\cs_new_protected:Nn \@@_boxed_issue_number:nn
-{
- \noindent%
- \raisebox{\baselineskip}{%
- \tl_if_empty:nF {#1} {%
- \makebox[\c_zero_dim][r]{%
- % \hspace*{\l_@@_thumbnail_width_dim}%
- \begin{adjustbox}{valign=t}
- \includegraphics[width=\l_@@_thumbnail_width_dim]{#1}%
- \end{adjustbox}%
- }%
- }%
- \bool_if:NTF {\g_@@_special_edition_bool} {
- \tl_set:Nn \l_tmpa_tl {\c_@@_short_special_edition_string_tl}
- }{
- \tl_set:Nn \l_tmpa_tl {\No\int_use:N\g_@@_issue_number_int}
- }
- \begin{adjustbox}{valign=t}
- \begin{tcolorbox}[%
- enhanced,%
- title=\l_tmpa_tl,%\int_use:N \g_@@_issue_number_int,%
- fonttitle=\Large,%
- colback=white,%
- sharp~corners=all,%
- height=33mm,%
- boxrule=\c_zero_dim,%
- % frame~hidden,%
- attach~boxed~title~to~top~left,%
- tikznode~boxed~title={minimum~width=\c_@@_boxed_issue_number_width_dim},%
- boxed~title~style={%
- size=minimal,%
- height=\c_@@_boxed_issue_number_height_dim,%
- center~upper,%
- before={},%
- colback=@@_boxed_issue_number_bg_color,%
- sharp~corners=all,%
- frame~hidden,%
- valign=center,%
- }%
- ]
- \@@_reflected_text:n { #2 }%
- \end{tcolorbox}
- \end{adjustbox}%
- }%
- \par%
-}
-% \end{macrocode}
-%
-% \begin{macrocode}
-\cs_new_protected:Nn \_@@_before_frontmatter_stuff:
-{
- \bool_gset_true:N \g_@@_frontmatter_bool%
- \pagestyle{@@_frontmatter_ps}%
- \exp_after:wN\newgeometry\exp_after:wN{\c_@@_front_matter_geometry_tl}%
-}
-\cs_new_protected:Nn \_@@_after_frontmatter_stuff:
-{
- \color{@@_default_text_color}
- \normalsize%
- \clearpage%
- \bool_gset_false:N \g_@@_frontmatter_bool%
-}
-% \end{macrocode}
-%
-% \begin{macrocode}
-\cs_new_protected:Nn \_@@_before_editorial_presidentmessage:nn
-{
- \_@@_before_frontmatter_stuff: {}
- \@@_boxed_issue_number:nn {#1}{#2}
- \color{@@_frontmatter_text_color}%
- \fontsize{11}{13.6}\selectfont
- \RaggedRight
-}
-\cs_new_protected:Nn \_@@_after_editorial_presidentmessage:
-{
- \justifying
- \bigskip
- \par
-}
-% \end{macrocode}
-%
-% \section{Displaying the editorial}
-%
-% We create an internal function that displays the editorial.
-% \begin{macrocode}
-\cs_new_protected:Nn \_@@_before_display_editorial:n
-{
- \_@@_before_editorial_presidentmessage:nn {}{#1}
-}
-\cs_new_protected:Nn \_@@_after_display_editorial:
-{
- \_@@_after_editorial_presidentmessage: {}
- \hspace*{\fill}%
- \bool_if:NTF {\g_@@_special_edition_bool} {
- \AtNextCitekey{\defcounter{maxnames}{100}}
- \_@@_citeauthor_no_firstinits:n {\c_@@_issue_bib_key_tl -editorinchief- 1}
- }{
- \DTLforeach*[\DTLiseq{\l_@@_people_role_tl}{editorinchief}]{people}{%
- \l_@@_firstlastname_tl=first-last-name%
- ,\l_@@_people_role_tl=role%
- }{%
- \_@@_citeauthor_no_firstinits:n {\c_@@_issue_bib_key_tl -editorinchief- \exp_not:V\DTLcurrentindex}%
- }
- }
- %
- \_@@_after_frontmatter_stuff: {}
-}
-\cs_new_protected:Nn \_@@_display_editorial:n
-{
- \_@@_before_display_editorial:n {#1}
- \file_if_exist_input:nF {\c_@@_editorial_file_string_tl}
- {%
- \msg_error:nn { gzt } { editorial-file-missing }
- }
- \_@@_after_display_editorial: {}
-}
-\AddToHook{begindocument/before}{%
- \tl_set_eq:NN \g_@@_editorial_heading_tl \c_@@_editorial_heading_string_tl
- \bool_if:NT {\g_@@_special_edition_bool} {
- \tl_if_empty:NF \g_@@_special_edition_editorial_heading_tl {%
- \tl_set_eq:NN \g_@@_editorial_heading_tl \g_@@_special_edition_editorial_heading_tl
- }
- }
- \NewDocumentCommand \editorial { O{\g_@@_editorial_heading_tl} }
- {
- \bool_if:NF {\g_@@_for_authors_bool} {
- \_@@_display_editorial:n {#1}
- }
- }
-}
-% \end{macrocode}
-%
-% \begin{macrocode}
-%</class|class-article>
-% \end{macrocode}
-%
-% \begin{macrocode}
-%<*class>
-% \end{macrocode}
-%
-% \section{Displaying the table of contents}
-%
-% We create an internal function that displays the table of contents.
-% \begin{macrocode}
-\cs_new_protected:Nn \_@@_display_toc:
-{
- \_@@_before_frontmatter_stuff: {}
- \@@_boxed_issue_number:nn {\g_@@_frontcover_image_file_tl}{\c_@@_toc_string_tl}
- \phantomsection
- \hypertarget{@@_toc}{}
- \bool_if:NTF {\g_@@_special_edition_bool} {
- \bookmark[dest=@@_toc,level=chapter]{\c_@@_toc_string_tl}
- }{
- \bookmark[dest=@@_toc,level=part]{\c_@@_toc_string_tl}
- }
- \etocsettocdepth.toc{chapter}%
- \tableofcontents
- \the\toctabletok
- \_@@_after_frontmatter_stuff: {}
-}
-\NewDocumentCommand \gzttableofcontents {}
-{
- \bool_if:NF {\g_@@_for_authors_bool} {
- \_@@_display_toc: {}
- }
-}
-% \end{macrocode}
-%
-% \section{Displaying the mini table of contents of the front cover}
-%
-% We create an internal function that displays the president's message.
-% \begin{macrocode}
-\tl_new:N \g_@@_frontcover_minitoc_tl%
-\tl_new:N \l_@@_minitoc_label_tl%
-\cs_new_protected:Nn \_@@_frontcover_minitoc:n
-{
- \tl_gset:Nn \g_@@_frontcover_minitoc_tl {#1}
-}
-\NewDocumentCommand \minitoc { O{} m }
-{
- \keys_set:nn { gzt/minitoc } { #1 }
- \_@@_frontcover_minitoc:n {#2}
-}
-%
-\newlist{@@_minitoc_list}{itemize}{1}
-\setlist[@@_minitoc_list]{itemsep=2ex,label=\textcolor{@@_cover_itemize_label_color}\textbullet}
-%
-\NewDocumentEnvironment{minitoclist}{}
-{%
- \cs_set_eq:NN \_@@_orig_item \item
- \RenewDocumentCommand \item { s O{} }{%
- \tl_set:Nn \l_@@_minitoc_label_tl {##2}
- \_@@_orig_item\textbf{##2}
- \IfBooleanT {##1}
- {
- \c_@@_minitoc_rubric_title_separator_string_tl
- }
- }
- \begin{@@_minitoc_list}
-}{
- \end{@@_minitoc_list}
- \cs_set_eq:NN \item \_@@_orig_item
-}
-% \end{macrocode}
-%
-% \begin{macrocode}
-%</class>
-% \end{macrocode}
-%
-% \begin{macrocode}
-%<*class|class-article>
-% \end{macrocode}
-%
-% \section{Displaying the president's message}
-%
-% We create an internal function that displays the president's message.
-% \begin{macrocode}
-\cs_new_protected:Nn \_@@_before_display_presidentmessage:
-{
- \_@@_before_editorial_presidentmessage:nn {\c_@@_smf_logo_file_string_tl}{\c_@@_president_message_string_tl}
- \phantomsection
- \par%
- \addcontentsline{toc}{part}{\g_@@_smf_short_string_tl}%
- \addcontentsline{toc}{chapter}{\c_@@_president_message_string_tl}%
-}
-\cs_new_protected:Nn \_@@_after_display_presidentmessage:
-{
- \_@@_after_editorial_presidentmessage: {}
- %
- \hspace*{\fill}%
- \c_@@_president_message_date_string_tl%
- \displaydate{@@_president_message_date}%
- \\[1.5mm]
- \hspace*{\fill}%
- \@@_display_people_by_role:n { president }%
- ,\c_space_tl
- \c_@@_president_signatory_string_tl
- %
- \_@@_after_frontmatter_stuff: {}
-}
-\cs_new_protected:Nn \_@@_display_president_message:
-{
- \_@@_before_display_presidentmessage: {}
- \file_input:n {\c_@@_president_message_file_string_tl}
- \_@@_after_display_presidentmessage: {}
-}
-\NewDocumentCommand \presidentmessage {}
-{
- \bool_if:NF {\g_@@_for_authors_bool} {
- \_@@_display_president_message: {}
- }
-}
-% \end{macrocode}
-%
-% \section{Chapter, sections, etc. customization}
-%
-% Thanks to \Pkg{titlesec}, the chapter, section, subsection and subsubsection
-% formats are customized.
-%
-% \begin{description}
-% \item[Chapter] has a \enquote{block} shape, is typeset in huge and bold face,
-% without any number, with a null distance between the (missing) number and
-% the title, with a title in enforced lower case but small caps.
-% \begin{macrocode}
-\titleformat{\chapter}%
-[block]
-{\Huge\bfseries}
-{}
-{\c_zero_dim}
-{\scshape}%
-% \end{macrocode}
-%
-% \item[Section] has a \enquote{frame} shape, is typeset in bold face, left
-% justified and in color, with number typeset in huge, with a negative
-% distance between the number and the title, with a title in 12.5pt.
-% \begin{macrocode}
-\titleformat{\section}
-{%
- \raggedright%
- \bfseries%
- \color{@@_section_color}
-}
-{\fontsize{20}{15}\selectfont\thesection.\enspace}
-{-3pt}
-{\fontsize{13}{15}\selectfont}
-% \end{macrocode}
-%
-% \item[Subsection:]
-% \begin{macrocode}
-\titleformat{\subsection}
-% [frame]
-{%
- \fontsize{11}{16}\selectfont%
- \bfseries%
- \color{@@_subsection_color}%
-}
-{\thesubsection\ \textendash{}\ }
-{\c_zero_dim}
-{}
-% \end{macrocode}
-%
-% \item[Subsubsection:]
-% \begin{macrocode}
-\titleformat{\subsubsection}
-% [frame]
-{%
- \fontsize{11}{16}\selectfont%
- \bfseries%
- \color{@@_subsubsection_color}%
-}
-{}
-{\c_zero_dim}
-{}
-% \end{macrocode}
-% \end{description}
-%
-% \section{First pages}
-%
-% At begin of the document, we automatically :
-% \begin{itemize}
-% \item set the graphic path,
-% \item set the page grid if the corresponding option has been passed,
-% \item display the front cover and the inside front cover.
-% \end{itemize}
-%
-% \begin{macrocode}
-\AddToHook{begindocument}{%
- \graphicspath{{\c_@@_issue_images_path_string_tl//}{../\c_@@_issue_images_path_string_tl//}}
- % \glsdisablehyper
- \g_@@_mainmatter_switch_tl
- % \bool_gset_false:N \g_@@_frontmatter_bool
- % \bool_gset_true:N \g_@@_mainmatter_bool
- % \SetParskip{\c_@@_mainmatter_parskip_skip}
- % \pagestyle{@@_mainmatter_ps}%
- \exp_after:wN\newgeometry\exp_after:wN{\c_@@_main_geometry_tl}%
-}
-% \end{macrocode}
-%
-% \begin{macrocode}
-%</class|class-article>
-% \end{macrocode}
-%
-% \begin{macrocode}
-%<*class>
-% \end{macrocode}
-%
-% \begin{macrocode}
-\AddToHook{begindocument}{%
- \dim_if_exist:NTF \g_@@_pagegrid_dim {%
- \pagegridsetup{%
- enable,%
- step=\g_@@_pagegrid_dim%
- }
- }{%
- \pagegridsetup{%
- disable%
- }
- }
- % \bool_if:NTF {\g_@@_for_authors_bool} {
- % \thispagestyle{empty}
- % \includegraphics{gzt-logo}
- % \hfill
- % \includegraphics[height=22.5mm]{\c_@@_smf_logo_file_string_tl}%
- % \par
- % \vfill
- % \begin{adjustbox}{valign=c,minipage=\linewidth}
- % \Large%
- % \c_@@_preliminary_version_string_tl%
- % \end{adjustbox}
- % \vfill
- % \newpage
- % }{
- % \bool_if:NF {\g_@@_inside_pages_bool} {
- % \g_@@_display_frontcover_tl
- % \g_@@_display_inside_frontcover_tl
- % }
- % }
- \bool_if:NF {\g_@@_for_authors_bool} {
- \bool_if:NF {\g_@@_inside_pages_bool} {
- \g_@@_display_frontcover_tl
- \bool_if:NTF {\g_@@_coverpage_bool} {
- \AddToHook{begindocument/end}{\end{document}}
- }{
- \g_@@_display_inside_frontcover_tl
- }
- }
- }
-}
-% \end{macrocode}
-%
-% \begin{macrocode}
-%</class>
-% \end{macrocode}
-%
-% \begin{macrocode}
-%<*class|class-article>
-% \end{macrocode}
-%
-% \section{Page styles}
-%
-% Thanks to \Pkg{titleps} loaded by \pkg{titlesec}'s "pagestyles" option, we define
-% some page styles.
-%
-% \subsection{Common tools}
-%
-% Here, we define some tools shared by sevral pages styles.
-%
-% The background footer:
-% \begin{macrocode}
-\tl_new:N \g_@@_background_footer_tl
-\tl_gset:Nn \g_@@_background_footer_tl {%
- \draw [@@_footer_bg_color,fill]
- (current~page.south~west)
- rectangle ([yshift=\c_@@_footer_background_height_dim]current~page.south~east)
- ;
-}
-% \end{macrocode}
-%
-% The frontmatter head text:
-% \begin{macrocode}
-\tl_new:N \l_@@_frontmatter_head_text_tl
-\tl_set:Nn \l_@@_frontmatter_head_text_tl {%
- \bool_if:NTF {\g_@@_special_edition_bool} {
- \g_@@_special_edition_title_tl
- }{
- \includegraphics{gzt-logo}
- }
-}
-% \end{macrocode}
-%
-% The rubric head text:
-% \begin{macrocode}
-% \tl_new:N \l_@@_rubric_head_text_tl
-% \tl_set:Nn \l_@@_rubric_head_text_tl {%
-% \color{@@_rubric_head_text_color}%
-% \fontsize{20}{20}\fontseries{bx}\fontshape{sc}\selectfont%
-% \g_@@_rubric_title_tl%
-% }
-% \end{macrocode}
-%
-% The frontmatter page head rule:
-% \begin{macrocode}
-\tl_new:N \g_@@_frontmatter_page_headrule_tl
-\tl_gset:Nn \g_@@_frontmatter_page_headrule_tl {%
- \draw [@@_headrule_color,line~width=\c_@@_header_line_width_dim]
- ([yshift=\c_@@_header_line_yshift_dim]current~page~header~area.south~west -| current~page.north~west)
- --
- ([yshift=\c_@@_header_line_yshift_dim]current~page~header~area.south~east -| current~page.north~east)
- ;%
-}
-% \end{macrocode}
-%
-% The frontmatter page head text:
-% \begin{macrocode}
-\tl_new:N \g_@@_frontmatter_headtext_tl
-\tl_gset:Nn \g_@@_frontmatter_headtext_tl {%
- \mbox{}%
- \checkoddpage%
- \ifoddpage%
- \node[
- anchor=north~east,%
- align=center,%
- fill=white,%
- inner~xsep=3.5mm,%
- outer~sep=\c_zero_dim,%
- ] at
- ([%
- xshift=\c_@@_frontmatter_headtext_o_xshift_dim,%
- yshift=\c_@@_frontmatter_headtext_yshift_dim%
- ]current~page.north~east) {%
- \Large
- \bool_if:NT {\g_@@_special_edition_bool} {
- \c_@@_short_special_edition_string_tl
- \c_space_tl
- }
- \l_@@_frontmatter_head_text_tl
- }%
- ;
- \else%
- \node[%
- anchor=north~west,%
- align=center,%
- fill=white,%
- inner~xsep=3.5mm,%
- outer~sep=\c_zero_dim,%
- ] at
- ([%
- xshift=\c_@@_frontmatter_headtext_e_xshift_dim,%
- yshift=\c_@@_frontmatter_headtext_yshift_dim%
- ]current~page.north~west) {%
- \Large
- \bool_if:NT {\g_@@_special_edition_bool} {
- \c_@@_short_special_edition_string_tl
- \c_space_tl
- }
- \l_@@_frontmatter_head_text_tl
- }%
- ;
- \fi%
-}
-% \end{macrocode}
-%
-% The mainmatter odd page head rule:
-% \begin{macrocode}
-\tl_new:N \g_@@_mainmatter_oddpage_headrule_tl
-\tl_gset:Nn \g_@@_mainmatter_oddpage_headrule_tl {%
- \draw [@@_headrule_color,line~width=\c_@@_header_line_width_dim]
- ([yshift=\c_@@_header_line_yshift_dim]current~page~header~area.south~east)
- --
- ([yshift=\c_@@_header_line_yshift_dim]current~page~header~area.south~west -| current~page.north~west)
- ;
-}
-% \end{macrocode}
-%
-% The mainmatter even page head rule:
-% \begin{macrocode}
-\tl_new:N \g_@@_mainmatter_evenpage_headrule_tl
-\tl_gset:Nn \g_@@_mainmatter_evenpage_headrule_tl {%
- \draw [@@_headrule_color,line~width=\c_@@_header_line_width_dim]
- ([yshift=\c_@@_header_line_yshift_dim]current~page~header~area.south~west)
- --
- ([yshift=\c_@@_header_line_yshift_dim]current~page~header~area.south~east -| current~page.north~east)
- ;
-}
-% \end{macrocode}
-%
-% We momentarily switch to a \enquote{normal} category code régime in which the
-% colon (:) is treated as \enquote{letter}, which is necessary where (here
-% \pkg{TikZ} and \pkg{tcolorbox}) code makes use of colon.
-% \begin{macrocode}
-\ExplSyntaxOff
-\tcbuselibrary{breakable,skins,hooks,xparse,theorems,listingsutf8}
-\usetikzlibrary{babel,fadings,positioning,calc}
-% \end{macrocode}
-%
-% We create a \enquote{minus} version of each of the previous styles for floats
-% with number (and keywords) but without any caption: in such cases, the number
-% should not be followed by any separator.
-% \begin{macrocode}
-\tcbset{%
- new/blend into/tables-/.style={%
- use counter*=table,%
- /tcb/code={\appto\tcb@new@colopt{,before title={\fnum@table}}}},%
- new/blend into/figures-/.style={%
- use counter*=figure,%
- /tcb/code={\appto\tcb@new@colopt{,before title={\fnum@figure}}}},%
-}
-% \end{macrocode}
-%
-% \begin{macrocode}
-%</class|class-article>
-% \end{macrocode}
-%
-% \begin{macrocode}
-%<*class>
-% \end{macrocode}
-%
-% \begin{macrocode}
-\newcommand\gzt@arcthroughthreepoints[4][]%
-{
- % \NoAutoSpacing%
- \coordinate (middle1) at ($(#2)!.5!(#3)$);
- \coordinate (middle2) at ($(#3)!.5!(#4)$);
- \coordinate (aux1) at ($(middle1)!1!90:(#3)$);
- \coordinate (aux2) at ($(middle2)!1!90:(#4)$);
- \coordinate (center) at ($(intersection of middle1--aux1 and middle2--aux2)$);
- \filldraw[fill=white,draw=@@_headrule_color,line width=0.25mm,#1]
- let \p1=($(#2)-(center)$),
- \p2=($(#4)-(center)$),
- \n0={veclen(\p1)}, % Radius
- \n1={atan2(\y1,\x1)}, % angles
- \n2={atan2(\y2,\x2)},
- \n3={\n2>\n1?\n2:\n2+360}
- in (#2) arc(\n1:\n3:\n0);
- % \foreach \p in {#2,#3,#4,center}
- % \fill[red] (\p) circle(2pt);
-}
-% \end{macrocode}
-%
-% \begin{macrocode}
-%</class>
-% \end{macrocode}
-%
-% \begin{macrocode}
-%<*class|class-article>
-% \end{macrocode}
-%
-% \begin{macrocode}
-\ExplSyntaxOn
-% \end{macrocode}
-%
-% \begin{macrocode}
-%</class|class-article>
-% \end{macrocode}
-%
-% \begin{macrocode}
-%<*class>
-% \end{macrocode}
-%
-% The rubric page head rule:
-% \begin{macrocode}
-\tl_new:N \g_@@_rubric_page_head_tl
-\tl_gset:Nn \g_@@_rubric_page_head_tl {%
- \bool_if:nF { \g_@@_for_authors_bool } {
- \tikz[remember~picture,overlay] {
- \path (current~page.north~west |- current~page~header~area.south~west) coordinate (_@@_pwest);
- \path (current~page.north~east |- current~page~header~area.south~east) coordinate (_@@_peast);
- \draw [@@_headrule_color,line~width=\c_@@_header_line_width_dim]
- ([yshift=\c_@@_header_line_yshift_dim]_@@_pwest)
- --
- ([yshift=\c_@@_header_line_yshift_dim]_@@_peast)
- ;%
- \tl_if_empty:NF \g_@@_rubric_abstract_tl {%
- \mbox{}%
- \checkoddpage%
- \ifoddpage%
- \coordinate (@@_A) at ([xshift=\c_@@_xshift_arccircle_A_dim,yshift=\c_@@_yshift_arccircle_A_dim]current~page.north~west);
- \coordinate (@@_B) at ([xshift=\c_@@_xshift_arccircle_B_dim,yshift=\c_@@_yshift_arccircle_B_dim]current~page.north~west) ;
- \coordinate (@@_C) at ([xshift=\c_@@_xshift_arccircle_C_dim,yshift=\c_@@_yshift_arccircle_C_dim]current~page.north~west) ;
- \gzt@arcthroughthreepoints{@@_A}{@@_B}{@@_C};
- \else%
- \coordinate (@@_A) at ([xshift=-\c_@@_xshift_arccircle_A_dim,yshift=\c_@@_yshift_arccircle_A_dim]current~page.north~east);
- \coordinate (@@_B) at ([xshift=-\c_@@_xshift_arccircle_B_dim,yshift=\c_@@_yshift_arccircle_B_dim]current~page.north~east) ;
- \coordinate (@@_C) at ([xshift=-\c_@@_xshift_arccircle_C_dim,yshift=\c_@@_yshift_arccircle_C_dim]current~page.north~east) ;
- \gzt@arcthroughthreepoints{@@_C}{@@_B}{@@_A};
- \fi%
- }
- }
- }
-}
-% \end{macrocode}
-%
-% \subsection{Front cover page style}
-%
-% \begin{macrocode}
-\newpagestyle{@@_frontcover_ps}[]{%
- \sethead
- {}%
- {%
- \adjustbox{stack=c}{
- {\Large
- \c_@@_frontcover_header_string_tl
- }\\[7mm]
- \adjustbox{scale=2.08}{
- \huge
- \bool_if:NT {\g_@@_special_edition_bool} {
- \color{@@_generic_dark_color}
- }
- \l_@@_frontmatter_head_text_tl
- }%
- }%
- }%
- {}%
- %
- \setfoot%
- {}%
- {}%
- {}%
-}%
-% \end{macrocode}
-%
-% \subsection{Inside front cover page style}
-%
-% \begin{macrocode}
-\newpagestyle{@@_inside_frontcover_ps}[]{%
- \sethead%
- [
- \tikz[remember~picture,overlay] {%
- \g_@@_frontmatter_page_headrule_tl%
- \g_@@_frontmatter_headtext_tl%
- }%
- ]%
- []%
- []%
- {}%
- {
- \tikz[remember~picture,overlay] {%
- \g_@@_frontmatter_page_headrule_tl%
- \g_@@_frontmatter_headtext_tl%
- }%
- }%
- {}%
- %
- \setfoot%
- []%
- [%
- \c_@@_footer_string_tl
- ]%
- []%
- {}%
- {%
- \c_@@_footer_string_tl%
- }%
- {}%
-}%
-% \end{macrocode}
-%
-% \begin{macrocode}
-%</class>
-% \end{macrocode}
-%
-% \begin{macrocode}
-%<*class|class-article>
-% \end{macrocode}
-%
-% \subsection{Front matter page style}
-%
-% \begin{macrocode}
-\newpagestyle{@@_frontmatter_ps}[]{%
- \widenhead*{\c_@@_front_matter_extra_innermargin_dim}{\c_@@_front_matter_extra_outermargin_dim}
- \sethead%
- [
- \tikz[remember~picture,overlay] {%
- \g_@@_frontmatter_page_headrule_tl%
- \g_@@_frontmatter_headtext_tl%
- }%
- ]%
- []%
- []%
- {}%
- {
- \tikz[remember~picture,overlay] {%
- \g_@@_frontmatter_page_headrule_tl%
- \g_@@_frontmatter_headtext_tl%
- }%
- }%
- {}%
- %
- \setfoot%
- [\c_@@_footer_size_font_tl\thepage]%
- [%
- \c_@@_footer_string_tl
- ]%
- [
-%<class-article>\c_@@_compiled_string_tl
- ]%
- {
-%<class-article>\c_@@_compiled_string_tl
- }%
- {%
- \c_@@_footer_string_tl%
- }%
- {\c_@@_footer_size_font_tl\thepage}%
-}%
-% \end{macrocode}
-%
-% \begin{macrocode}
-%</class|class-article>
-% \end{macrocode}
-%
-% \begin{macrocode}
-%<*class>
-% \end{macrocode}
-%
-% \subsection{Rubric first page style}
-%
-% \begin{macrocode}
-\newpagestyle{@@_rubric_ps}[]{%
- \widenhead{\c_zero_dim}{\c_zero_dim}
- \sethead%
- [
- ]%
- [
- ]%
- [
- \g_@@_rubric_page_head_tl%
- \bool_if:nF { \g_@@_for_authors_bool } {
- \adjustbox{raise={\c_@@_header_yshift_dim}{\height},lap=-\c_@@_header_xshift_dim-\linewidth}{%
- \includegraphics[width=\c_@@_pictogram_width_dim]{\g_@@_rubric_pictofile_tl}%
- }%
- }%
- ]%
- {
- \g_@@_rubric_page_head_tl%
- }%
- {}%
- {%
- \bool_if:nF { \g_@@_for_authors_bool } {
- \adjustbox{raise={\c_@@_header_yshift_dim}{\height},lap=\c_@@_header_xshift_dim}{%
- \includegraphics[width=\c_@@_pictogram_width_dim]{\g_@@_rubric_pictofile_tl}%
- }%
- }%
- }%
- %
- \setfoot%
- [\c_@@_footer_size_font_tl\thepage]%
- [%
- \c_@@_footer_string_tl
- ]%
- []%
- {}%
- {%
- \c_@@_footer_string_tl%
- }%
- {\c_@@_footer_size_font_tl\thepage}%
-}%
-% \end{macrocode}
-%
-% \subsection{Advertisement page style}
-%
-% \begin{macrocode}
-\newpagestyle{@@_advertisement_ps}[]{%
- \widenhead{\c_zero_dim}{\c_zero_dim}
- \sethead%
- [
- \tikz[remember~picture,overlay] {\g_@@_mainmatter_evenpage_headrule_tl}
- ]%
- [%
- \adjustbox{raise={\c_@@_header_yshift_dim}{\height}}{%
- \large\bfseries\scshape\color{@@_head_text_color}\c_@@_advertisement_string_tl%
- }%
- ]%
- []%
- {}%
- {%
- \adjustbox{raise={\c_@@_header_yshift_dim}{\height}}{%
- \large\bfseries\scshape\color{@@_head_text_color}\c_@@_advertisement_string_tl%
- }
- }%
- {
- \tikz[remember~picture,overlay] {\g_@@_mainmatter_oddpage_headrule_tl}
- }%
- %
- \setfoot%
- [\c_@@_footer_size_font_tl\thepage]%
- [%
- \c_@@_footer_string_tl
- ]%
- []%
- {}%
- {%
- \c_@@_footer_string_tl%
- }%
- {\c_@@_footer_size_font_tl\thepage}%
-}
-% \end{macrocode}
-%
-% \subsection{For blank pages added in order to ensure document total page
-% numbers is a multiple of four}
-%
-% \begin{macrocode}
-\newpagestyle{@@_blank_pages_ps}[]{%
- \sethead
- {}%
- {}%
- {}%
- %
- \setfoot%
- [\c_@@_footer_size_font_tl\thepage]%
- [%
- \c_@@_footer_string_tl
- ]%
- []%
- {}%
- {%
- \c_@@_footer_string_tl%
- }%
- {\c_@@_footer_size_font_tl\thepage}%
-}%
-% \end{macrocode}
-%
-% \subsection{Inside back cover page style}
-%
-% \begin{macrocode}
-\newpagestyle{@@_inside_backcover_ps}[]{%
- \sethead%
- [
- \tikz[remember~picture,overlay] {%
- \g_@@_frontmatter_page_headrule_tl%
- \g_@@_frontmatter_headtext_tl%
- }%
- ]%
- []%
- []%
- {}%
- {
- \tikz[remember~picture,overlay] {%
- \g_@@_frontmatter_page_headrule_tl%
- \g_@@_frontmatter_headtext_tl%
- }%
- }%
- {}%
- %
- \setfoot%
- []%
- [%
- \c_@@_footer_string_tl
- ]%
- []%
- {}%
- {%
- \c_@@_footer_string_tl%
- }%
- {}%
-}%
-% \end{macrocode}
-%
-% \subsection{Back cover page style}
-%
-% \begin{macrocode}
-\newpagestyle{@@_backcover_ps}[]{%
- \sethead
- {}%
- {}%
- {}%
- %
- \setfoot%
- {}%
- {}%
- {}%
-}%
-% \end{macrocode}
-%
-% We define crop marks.
-% \begin{macrocode}
-% \bool_if:NT {\g_@@_for_printer_bool} {%
-% \AddEverypageHook{%
-% \tikz[remember~picture,overlay] {%
-% \draw ([yshift=\c_@@_potential_layoutoffset_dim]current~page.south~west) -- +(0.25,0);
-% \draw ([xshift=\c_@@_potential_layoutoffset_dim]current~page.south~west) -- +(0,0.25);
-% %% lower right
-% \draw ([yshift=\c_@@_potential_layoutoffset_dim]current~page.south~east) -- +(-0.25,0);
-% \draw ([xshift=-\c_@@_potential_layoutoffset_dim-\c_@@_potential_bindingoffset_dim]current~page.south~east) -- +(0,0.25);
-% %% upper left
-% \draw ([yshift=-\c_@@_potential_layoutoffset_dim]current~page.north~west) -- +(0.25,0);
-% \draw ([xshift=\c_@@_potential_layoutoffset_dim]current~page.north~west) -- +(0,-0.25);
-% %% upper right
-% \draw ([yshift=-\c_@@_potential_layoutoffset_dim]current~page.north~east) -- +(-0.25,0);
-% \draw ([xshift=-\c_@@_potential_layoutoffset_dim-\c_@@_potential_bindingoffset_dim]current~page.north~east) -- +(0,-0.25);
-% }%
-% }%
-% }
-% \end{macrocode}
-%
-% \begin{macrocode}
-%</class>
-% \end{macrocode}
-%
-% \begin{macrocode}
-%<*class|class-article>
-% \end{macrocode}
-%
-% We draw a gray background at the bottom of each page, but the first one.
-% \begin{macrocode}
-\AddToHook{shipout/background}{
-%<class> \bool_if:nF { \g_@@_frontcover_bool || \g_@@_backcover_bool }{
- \bool_if:NF {\g_@@_advertisement_bool} {
- \tikz[remember~picture,overlay] { \g_@@_background_footer_tl }%
- }%
-%<class> }%
-}
-% \end{macrocode}
-%
-% \subsection{Main matter page style}
-%
-% \begin{macrocode}
-\newpagestyle{@@_mainmatter_ps}[]{%
- \widenhead{\c_zero_dim}{\c_zero_dim}
- \sethead%
- [
- \tikz[remember~picture,overlay] {\g_@@_mainmatter_evenpage_headrule_tl}
- ]%
- [%
- \adjustbox{raise={\c_@@_header_yshift_dim}{\height}}{%
- \large\bfseries\scshape\color{@@_head_text_color}\g_@@_rubric_title_tl%
- }%
- ]%
- []%
- {}%
- {%
- \bool_if:nF {
- \g_@@_rearviewmirror_rubric_bool || \g_@@_books_rubric_bool
- }{
- \adjustbox{raise={\c_@@_header_yshift_dim}{\height}}{%
- \bfseries\color{@@_head_text_color}\g_@@_short_title_tl%
- }
- }
- }%
- {
- \tikz[remember~picture,overlay] {\g_@@_mainmatter_oddpage_headrule_tl}
- }%
- %
-\bool_if:nTF { \g_@@_for_authors_bool } {
- \setfoot%
- [\c_@@_footer_size_font_tl\thepage]%
- [%
- \c_@@_footer_string_tl
- ]%
- [\c_@@_compiled_string_tl]%
- {\c_@@_compiled_string_tl}%
- {%
- \c_@@_footer_string_tl%
- }%
- {\c_@@_footer_size_font_tl\thepage}%
- }{
- \setfoot%
- [\c_@@_footer_size_font_tl\thepage]%
- [%
- \c_@@_footer_string_tl
- ]%
- []%
- {}%
- {%
- \c_@@_footer_string_tl%
- }%
- {\c_@@_footer_size_font_tl\thepage}%
- }
-}
-% \end{macrocode}
-%
-% We define a public macro for possible acknowledgements to be used by author(s)
-% of articles.
-% \begin{macrocode}
-\NewDocumentCommand \acknowledgements { +m } {
- \@@_article_acknowledgements:n {#1}%
-}
-% \end{macrocode}
-%
-% \begin{macro}{\printminibios}
-% \begin{macro}{\printauthorsdetails}
-% We define the public command which displays
-% \begin{itemize}
-% \item the affiliation(s), email(s) and minibiographie(s) of the authors,
-% \item the acknowledgements if not empty.
-% \end{itemize}
-% \begin{macrocode}
-\NewDocumentCommand \printminibios {} {
- \bool_if:NT {\g_@@_multicols_bool} {
- \end{multicols}%
- }
-% \end{macrocode}
-% We force all the previous floats to be processed no later on the page
-% following the beginning of the bibliography, \textsc{cv} or
-% acknowledgements.
-% \begin{macrocode}
- \FloatBarrier%
- \begin{_@@_minibiographies_acknowledgements_tcbox}
- \@@_display_people_by_role:n { author-art-\int_use:N \g_@@_articles_int }
- \DTLsavelastrowcount{\_@@_authors_number}
- \tl_if_empty:NF \l_@@_article_acknowledgements_tl
- {%
- \footnotesize
- \int_compare:nNnT {\_@@_authors_number}>{0}
- {
- \par%
- \bigskip%
- }
- \begin{adjustbox}{valign=t,minipage=\linewidth}
- \color{@@_acknowledgements_color}%
- \setlength{\parskip}{\c_@@_mainmatter_parskip_skip}
- \l_@@_article_acknowledgements_tl
- \end{adjustbox}
- }
- \bool_gset_true:N \g_@@_previous_article_with_bibliography_or_minibio_bool
- \end{_@@_minibiographies_acknowledgements_tcbox}
-}
-% \end{macrocode}
-% \end{macro}
-% We define "\printauthorsdetails" as an alias of "\printminibios".
-% \begin{macrocode}
-\let\printauthorsdetails\printminibios
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\printbibliography}
-% The command for bibliography printing production is redefined in order to let
-% it silently:
-% \begin{itemize}
-% \item beforehand quit the multicolumn environment and enter in the
-% "_@@_bibliography_tcbox" environment (which gives a special layout to
-% bibliographies, \textsc{cv} and acknowledgements),
-% \item afterwards quit the "bibliography_minibiographies_acknowledgements" environment and enter in
-% the multicolumn environment.
-% \end{itemize}
-% \begin{macrocode}
-\cs_set_eq:NN \_@@_printbibliography \printbibliography
-\RenewDocumentCommand \printbibliography { s O{} } {
- \bool_if:NT {\g_@@_multicols_bool} {
- \end{multicols}%
- }
-% \end{macrocode}
-% We force all the previous floats to be processed no later on the page
-% following the beginning of the bibliography, \textsc{cv} or
-% acknowledgements.
-% \begin{macrocode}
-% \afterpage{%
- \FloatBarrier%
-% }%
- \begin{_@@_bibliography_tcbox}
- \_@@_printbibliography[heading=subbibliography,resetnumbers,#2]
- \end{_@@_bibliography_tcbox}
- %
- \IfBooleanF {#1}
- {
- \nopagebreak[0]
- \printauthorsdetails
- }
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \section{Miscellaneous private commands specific to the journal}
-%
-% We create miscellaneous private commands specific to the journal.
-%
-% Command for centuries.
-% \begin{macrocode}
-\deftranslation[to=French]{_@@_century}{si\`ecle}%
-\deftranslation[to=English]{_@@_century}{century}%
-\deftranslation[to=French]{_@@_first}{\ier}%
-\deftranslation[to=English]{_@@_first}{\up{st}\xspace}%
-\deftranslation[to=French]{_@@_nth}{\ieme}%
-\deftranslation[to=English]{_@@_nth}{\up{th}\xspace}%
-\deftranslation[to=French]{_@@_bc}{avant~J.-C}%
-\deftranslation[to=English]{_@@_bc}{BC}%
-\cs_new_protected:Nn \_@@_century:n
-{
- \textsc{
- \int_to_roman:n {\int_abs:n {#1}}
- }%
- \int_compare:nNnTF { \int_abs:n {#1} } > { 1 }{\translate{_@@_nth}}{\translate{_@@_first}}
-}
-\cs_new_protected:Nn \_@@_century_suffix:n
-{
- \translate{_@@_century}%
- \int_compare:nNnT { #1 } < { 0 }{
- \c_space_tl
- \translate{_@@_bc}
-% \end{macrocode}
-% In case of French language, we add a period just after \enquote{avant~J.-C},
-% but only if the character following the "\century" macro is not a period
-% itself.
-% \begin{macrocode}
- \IfLanguageName {french}{
- \@ifnextchar.%
- {
- }{
- .\xspace
- }%
- }
- }{
- }
-}
-% \end{macrocode}
-%
-% \begin{macrocode}
-%</class|class-article>
-% \end{macrocode}
-%
-% \begin{macrocode}
-%<*class>
-% \end{macrocode}
-%
-% \section{Miscellaneous public commands specific to the journal}
-%
-% We create miscellaneous public commands specific to the journal.
-%
-% \begin{macro}{\advertisement}
-% For a (not full page) advertisement.
-% \begin{macrocode}
-\cs_new_protected:Nn \_@@_advertisement:nn
- {
- \vfill
- \begin{center}
- \dim_set:Nn \fboxsep {\c_zero_dim}
- \fbox{%
- \includegraphics[max~size={\linewidth}{\textheight},#1]{#2}
- }
- \end{center}
- \vfill
- }
-\NewDocumentCommand \advertisement { O{} m }
- {
- \_@@_advertisement:nn {#1}{#2}
- }
-% \end{macro}
-%
-% \begin{macro}{\fullpageadvertisement}
-% For a full page advertisement.
-% \begin{macrocode}
-\cs_new_protected:Nn \_@@_fullpageadvertisement:nn
- {
- \newpage
- \thispagestyle{@@_advertisement_ps}
- \begin{minipage}[c][\textheight][c]{\textwidth}%
- \centering\includegraphics[max~size={\linewidth}{\textheight},#1]{#2}%
- \end{minipage}%
- }
-\NewDocumentCommand \fullpageadvertisement { O{} m }
-{
- \_@@_fullpageadvertisement:nn {#1}{#2}
-}
-% \end{macro}
-%
-% \begin{macro}{\aboutfrontcover}
-% For a few words about the front cover.
-% \begin{macrocode}
-\NewDocumentCommand \aboutfrontcover { O{} O{\c_@@_about_frontcover_string_tl} m }
-{
- \_@@_about_frontcover:nnn {#1}{#2}{#3}%
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macrocode}
-\cs_new_protected:Nn \_@@_prepare_rubric:nnn {%
- \newpage%
- \tl_gclear:N \g_@@_rubric_abstract_tl
- \tl_gset:Nn \g_@@_rubric_title_tl {#2}
- \tl_gset:Nn \g_@@_rubric_pictofile_tl {#3}
- \IfNoValueF {#1}
- {
- \keys_set:nn { gzt/rubric } { #1 }
- }
- \_@@_rubric:nnn
- {\g_@@_rubric_abstract_tl}{\g_@@_rubric_title_tl}{\g_@@_rubric_pictofile_tl}%
-}
-% \end{macrocode}
-%
-% \begin{macro}{\rubric}
-% For a \enquote{free} rubric. In case of special edition, we set the rubric
-% title first as empty and then as the special edition's title plus a constant
-% string. Otherwise, this title is freely set.
-% \begin{macrocode}
-\NewDocumentCommand \rubric {O{}mm}
-{
- \bool_if:NTF {\g_@@_special_edition_bool} {
- \_@@_rubric:nnn {#1}{#2}{#3}%
- \tl_gset:Nn \g_@@_rubric_title_tl {%
- \c_@@_short_special_edition_string_tl
- \c_space_tl
- \g_@@_special_edition_title_tl
- }
- }{
- \_@@_rubric:nnn {#1}{#2}{#3}%
- }
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macrocode}
-\NewDocumentCommand \mathematics {O{}}
-{
- \_@@_rubric:nnn {#1}{\c_@@_mathematics_rubric_string_tl}{\c_@@_mathematics_pictogram_file_name_tl}
-}
-\NewDocumentCommand \dossier {O{}}
-{
- \_@@_rubric:nnn {#1}{\c_@@_dossier_rubric_string_tl}{\c_@@_dossier_pictogram_file_name_tl}
-}
-\NewDocumentCommand \community {O{}}
-{
- \_@@_rubric:nnn {#1}{\c_@@_community_rubric_string_tl}{\c_@@_hands_pictogram_file_name_tl}
-}
-\NewDocumentCommand \interview {O{}}
-{
- \_@@_rubric:nnn {#1}{\c_@@_interview_rubric_string_tl}{\c_@@_interview_pictogram_file_name_tl}
- \bool_gset_true:N \g_@@_interview_rubric_bool
-}
-\NewDocumentCommand \teaching {O{}}
-{
- \_@@_rubric:nnn {#1}{\c_@@_teaching_rubric_string_tl}{\c_@@_teaching_pictogram_file_name_tl}
-}
-\NewDocumentCommand \parity {O{}}
-{
- \_@@_rubric:nnn {#1}{\c_@@_parity_rubric_string_tl}{\c_@@_parity_pictogram_file_name_tl}
-}
-\NewDocumentCommand \tellme {O{}}
-{
- \_@@_rubric:nnn {#1}{\c_@@_tellme_rubric_string_tl}{\c_@@_tellme_pictogram_file_name_tl}
- \bool_gset_true:N \g_@@_tellme_rubric_bool
-}
-\NewDocumentCommand \information {O{}}
-{
- \_@@_rubric:nnn {#1}{\c_@@_information_rubric_string_tl}{\c_@@_information_pictogram_file_name_tl}
-}
-\NewDocumentCommand \rearviewmirror {O{}}
-{
- \_@@_rubric:nnn {#1}{\c_@@_rearviewmirror_rubric_string_tl}{\c_@@_rearviewmirror_pictogram_file_name_tl}
- \bool_gset_true:N \g_@@_rearviewmirror_rubric_bool
-}
-\NewDocumentCommand \tribute {O{}}
-{
- \_@@_rubric:nnn {#1}{\c_@@_tribute_rubric_string_tl}{\c_@@_tribute_pictogram_file_name_tl}
-}
-\NewDocumentCommand \books {O{}}
-{
- \_@@_rubric:nnn {#1}{\c_@@_books_rubric_string_tl}{\c_@@_books_pictogram_file_name_tl}
- \bool_gset_true:N \g_@@_books_rubric_bool
- \vspace{1.5\c_@@_book_review_frontcover_extend_dim}
-}
-\NewDocumentCommand \latextips {O{}}
-{
- \_@@_rubric:nnn {#1}{\c_@@_latex_rubric_string_tl}{}
-}
-\NewDocumentCommand \forum {O{}}
-{
- \_@@_rubric:nnn {#1}{\c_@@_forum_rubric_string_tl}{\c_@@_forum_pictogram_file_name_tl}
-}
-\NewDocumentCommand \moralreport {O{}}
-{
- \_@@_rubric:nnn {#1}{\c_@@_moralreport_rubric_string_tl}{\c_@@_smf_logo_file_string_tl}
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macrocode}
-%</class>
-% \end{macrocode}
-%
-% \begin{macrocode}
-%<*class|class-article>
-% \end{macrocode}
-%
-% \begin{macro}{\email}
-% \begin{macrocode}
-\DeclareCiteCommand{\citeinterviewee}{}{%
- \printnames{interviewee}%
-}
-{}{}
-\DeclareCiteCommand{\citereviewer}{}{%
- \g_@@_blx_given_first_inits_false_tl
- \printnames{reviewer}%
-}
-{}{}
-\DeclareCiteCommand{\citereviewerinstitution}{}{%
- \printlist{reviewerinstitution}%
-}
-{}{}
-\DeclareCiteCommand{\_@@_cite_public_price}{}{%
- \printfield{publicprice}%
-}
-{}{}
-\DeclareCiteCommand{\_@@_cite_smf_price}{}{%
- \printfield{smfprice}%
-}
-{}{}
-\DeclareCiteCommand{\citecopublisher}{}{%
- \printlist{copublisher}%
-}
-{}{}
-\DeclareCiteCommand{\citefrenchabstract}{}{%
- \printfield{frenchabstract}%
-}
-{}{}
-\DeclareCiteCommand{\_@@_cite_englishabstract}{}{%
- \printfield{englishabstract}%
-}
-{}{}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\email}
-% For typesetting an email.
-% \begin{macrocode}
-\NewDocumentCommand \email {m}
-{
- \_@@_email:n {#1}%
-}
-% \end{macro}
-%
-% \begin{macro}{\question}
-% We define a private function for the questions/answers of interviews.
-% \begin{macrocode}
-\cs_new_protected:Nn \_@@_question:n
-{
- \int_incr:N \g_@@_question_int
- {%
- \par%
- \bigskip%
- \color{@@_question_color}
- #1%
- \par%
- }%
-}
-\NewDocumentCommand \question {m}
-{
- \_@@_question:n {#1}%
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\smf}
-% \begin{macrocode}
-\NewDocumentCommand \smf { s } {
- \IfBooleanTF {#1}
- {
- \g_@@_smf_string_tl
- }
- {
- \g_@@_smf_short_string_tl
- }
- \xspace
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\surname}
-% \begin{macrocode}
-\DeclareExpandableDocumentCommand \surname { m } {
- \textsc{#1}
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\cad}
-% \begin{macro}{\Cad}
-% \begin{macrocode}
-\NewDocumentCommand \cad { s } {
- \IfBooleanTF {#1}
- {
- \c_@@_cad_string_tl
- }
- {
- \c_@@_cad_short_string_tl
- }
- \xspace
-}
-\NewDocumentCommand \Cad { s } {
- \IfBooleanTF {#1}
- {
- \c_@@_Cad_string_tl
- }
- {
- \c_@@_Cad_short_string_tl
- }
- \xspace
-}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\gzt}
-% \begin{macrocode}
-\NewDocumentCommand \gzt { s } {
- \IfBooleanTF {#1}
- {
- \l_@@_gzt_string_tl
- }
- {
- \l_@@_gzt_short_string_tl
- }
- \xspace
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\gztcl}
-% \begin{macro}{\gztarticle}
-% \begin{macrocode}
-\NewDocumentCommand \gztcl {}
-{%
- \textsl{\texttt{\c_@@_class_name_tl}}
- \xspace
-}
-\NewDocumentCommand \gztarticlecl {}
-{%
- \textsl{\texttt{\c_@@_article_class_name_tl}}
- \xspace
-}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\century}
-% \begin{macrocode}
-\NewDocumentCommand \century { s m } {%
- \_@@_century:n {#2}%
- \IfBooleanTF {#1}
- {
- \int_compare:nNnT { #2 } < { 0 }{
- \_@@_century_suffix:n {#2}%
- }
- }
- {
- \_@@_century_suffix:n {#2}%
- }
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\aside}
-% \begin{macrocode}
-\NewDocumentCommand \aside { s m } {%
- \IfBooleanTF {#1}
- {
- \c_@@_aside_string_tl{}~#2
- }
- {
- \c_@@_aside_string_tl{}~#2~\c_@@_aside_string_tl
- }
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macrocode}
-\tl_new:N \g_@@_font_designer_text_tl%
-\cs_new_protected:Nn \@@_font_designer_text:n
-{
- \tl_gset:Nn \g_@@_font_designer_text_tl { #1 }
-}
-\NewDocumentCommand \fontdesignertext {m}
-{
- \_@@_font_designer_text:n {#1}%
-}
-% \end{macrocode}
-%
-% \begin{macrocode}
-\tl_new:N \g_@@_printer_text_tl%
-\cs_new_protected:Nn \@@_printer_text:n
-{
- \tl_gset:Nn \g_@@_printer_text_tl { #1 }
-}
-\NewDocumentCommand \printertext {m}
-{
- \_@@_printer_text:n {#1}%
-}
-% \end{macrocode}
-%
-% Command for epigraphs.
-% \begin{macrocode}
-\renewcommand{\textflush}{flushepinormal}
-\cs_set_eq:NN \_@@_orig_epigraph \epigraph
-\cs_new_protected:Nn \_@@_epigraph:nn
-{
- \bool_if:nTF { \tl_if_empty_p:n {#2} }
- {
- \setlength{\epigraphrule}{\c_zero_dim}
- }
- {
- \setlength{\epigraphrule}{.4\p@}
- }
- \_@@_orig_epigraph{%
- \emph{%
- \enquote{%
- #1%
- }%
- }%
- }%
- {%
- #2
- }
-}
-\RenewDocumentCommand \epigraph { m m }
-{
- \_@@_epigraph:nn {#1}{#2}%
-}
-% \end{macrocode}
-%
-% \begin{macrocode}
-\NewDocumentEnvironment{authorsinstructions}{}
-{%
- \begingroup
- \tcbverbatimwrite{\c_@@_authors_instructions_file_tl}
-}%
-{
- \endtcbverbatimwrite
- \endgroup
-}
-% \end{macrocode}
-%
-% We provide some public commands and environments to be used for displaying
-% (mainly \LaTeX{}) code.
-% \begin{macrocode}
-\lstdefinestyle{@@_lst_style}{%
- escapechar=+,
- language=[LaTeX]TeX,
- texcsstyle=*\bfseries,
- breaklines=true,
- basicstyle=\normalfont\ttfamily,
- columns=flexible,
- inputencoding=utf8/latin1
-}%
-\DeclareTotalTCBox{\gztverb}{ v }{verbatim,blank,fuzzy~halo=0pt~with~@@_light_generic_dark_color!8}{#1}
-% \end{macrocode}
-%
-% The optional argument declaration must be prefixed with an "!" (see
-% \url{https://github.com/T-F-S/tcolorbox/issues/43}).
-% \begin{macrocode}
-\NewTCBListing{gztcode}{ !O{} }{%
- listing~style=@@_lst_style,
- listing~only,
- enlarge~top~by=\medskipamount,
- breakable,
- #1%
-}
-% \end{macrocode}
-%
-% We provide public environments "gztfigure" and "gzttable" (and friends) for
-% the usual floats. Their layout is based upon \pkg{tcolorbox} features.
-% \begin{macrocode}
-\DeclareTColorBox[blend~into=figures]{gztfigure}{ O{} }
-{
- ,width=\linewidth%
- ,blend~before~title=dash%
- ,_@@_tcb_floats_style%
- ,#1%
- ,code={\ifdefempty{\kvtcb@title}{\tcbset{_@@_tcb_notitle}}{}}%
-}
-\DeclareTColorBox[blend~into=figures]{gztfigure*}{ O{} }
-{
- ,float*
- ,blend~before~title=dash%
- ,width=\textwidth%
- ,_@@_tcb_floats_style%
- ,#1%
- ,code={\ifdefempty{\kvtcb@title}{\tcbset{_@@_tcb_notitle}}{}}%
-}
-\DeclareTColorBox[blend~into=tables]{gzttable}{ O{} }
-{
- ,width=\linewidth%
- ,blend~before~title=dash%
- ,_@@_tcb_floats_style%
- ,#1%
- ,code={\ifdefempty{\kvtcb@title}{\tcbset{_@@_tcb_notitle}}{}}%
-}
-\DeclareTColorBox[blend~into=tables]{gzttable*}{ O{} }
-{
- ,float*
- ,blend~before~title=dash%
- ,width=\textwidth%
- ,_@@_tcb_floats_style%
- ,#1%
- ,code={\ifdefempty{\kvtcb@title}{\tcbset{_@@_tcb_notitle}}{}}%
-}
-\DeclareTColorBox{gztframe}{ O{} }
-{
- ,width=\linewidth%
- ,_@@_tcb_floats_style%
- ,#1%
-}
-\DeclareTColorBox{gztframe*}{ O{} }
-{
- ,float*
- ,width=\textwidth%
- ,_@@_tcb_floats_style%
- ,#1%
-}
-%
-\DeclareTColorBox{gztscan}{ O{} }
-{
- #1%
- ,width=\textwidth%
- ,_@@_tcb_floats_style%
- ,size=tight%
-}
-\DeclareTColorBox{_@@_book_review}{ O{} }
-{
- overlay~unbroken~and~first={%
- \node at (frame.north~west) {
- {
- \makebox[\c_zero_dim][l]{%
- \adjustbox{raise={-2\height+\c_@@_book_review_frontcover_extend_dim}{\c_zero_dim}}{%
- \includegraphics[width=20mm]{\g_@@_bookreview_frontcover_tl}%
- }%
- }
- }
- };
- },
- _@@_tcb_book_review_box_style,
- #1
-}
-\DeclareTColorBox{_@@_bibliography_tcbox}{ O{} }
-{
- _@@_tcb_bibliography_style,
- #1
-}
-\DeclareTColorBox{_@@_minibiographies_acknowledgements_tcbox}{ O{} }
-{
- _@@_tcb_minibiographies_acknowledgements_style,
- #1
-}
-% \end{macrocode}
-%
-% We provide a public environment "inset" for insets that has the same layout as
-% minibiographies and acknowledgements. Its layout is based upon \pkg{tcolorbox}
-% features.
-% \begin{macrocode}
-\DeclareTColorBox{inset}{ O{} }
-{
- _@@_tcb_minibiographies_acknowledgements_style,
- #1
-}
-% \end{macrocode}
-%
-% We create a "bookreview" environment for the book reviews.
-% \begin{macrocode}
-\NewDocumentEnvironment{bookreview}{ O{} m }
-{
- \keys_set:nn { gzt/bookreview } { #2 }
- \begin{_@@_book_review}[#1]
- \xpatchfieldformat{title}{mkbibemph}{textbf}{}{}%
- \xpretonameformat{author}{\color{@@_people_color}}{}{}%
- \g_@@_blx_given_first_inits_false_tl
- \noindent%
- \parbox[][21.5mm][l]{\linewidth}{\fullcite{\g_@@_bookreview_bibkey_tl}}
- \tcblower
-}{
- \begin{flushright}
- % \g_@@_reviewer_tl
- \bigskip
- \citereviewer{\g_@@_bookreview_bibkey_tl}\\
- \citereviewerinstitution{\g_@@_bookreview_bibkey_tl}
- \end{flushright}
- % \vspace*{10mm}
- \mbox{}
- \end{_@@_book_review}
-}
-% \end{macrocode}
-%
-% \begin{macrocode}
-\DeclareTColorBox{_@@_book_advertisement}{ O{} }
-{
- _@@_tcb_book_advertisement_box_style,
- #1
-}
-\DeclareTColorBox{_@@_inside_cover_tcb}{ O{} }
-{
- #1
-}
-% \end{macrocode}
-%
-% We create a "bookadvertisement" environment for the book advertisements.
-% \begin{macrocode}
-\NewDocumentCommand \bookadvertisement {O{} m}
-{
- \newpage{}
- \mbox{}
- \vfill
- \begin{_@@_book_advertisement}[#1]
- \fullcite{#2}
- \par
- \bigskip
- \tcblower
- \includegraphics[height=22.5mm]{\c_@@_smf_logo_file_string_tl}%
- \par{}
- \smallskip%
- \url{\l_@@_journal_url_tl}
- \end{_@@_book_advertisement}
- \vfill
- \newpage
- \bool_gset_false:N \g_@@_advertisement_bool
- \bool_gset_true:N \g_@@_mainmatter_bool
-}
-% \end{macrocode}
-%
-% \begin{macrocode}
-%</class|class-article>
-% \end{macrocode}
-%
-% \begin{macrocode}
-%<*class>
-% \end{macrocode}
-%
-% We create a variant of the "\input" macro which cleans the local
-% customizations if any and, if necessary open and close the "refsection" and
-% "multicols" environments.
-% \begin{macrocode}
-\NewDocumentCommand \gztinput { m m } {%
- \tl_gclear:N \g_@@_people_affiliation_tl
- \tl_gclear:N \g_@@_people_email_tl
- \tl_gclear:N \g_@@_people_minibio_tl
- \tl_gclear:N \g_@@_people_photo_tl
- \tl_gclear:N \g_@@_people_webpage_tl
- \tl_clear:N \l_@@_article_acknowledgements_tl
- \startcustomization%
- \bool_if:NF {\g_@@_refsection_bool} {
- \begin{refsection}
- }
- \bool_if:NF { \g_@@_backcover_bool } {
- \tl_if_in:NnT
- { \c_@@_advertisement_directory_string_tl } { #1 } {%
- \newpage
- \thispagestyle{@@_advertisement_ps}
- }
- }
- \inputfrom{#1}{#2}
- \bool_if:NT {\g_@@_multicols_bool} {
- \end{multicols}%
- }
- \bool_if:NT {\g_@@_refsection_bool} {
- \end{refsection}
- }
- \cleancustomization%
-}
-% \end{macrocode}
-%
-% If we don't ask the cover page (only), the inside back cover and back cover
-% pages are automatically included at the end of the document, the former
-% containing some condensed instructions to authors. But, this cannot be done
-% within "\AddToHook{enddocument}" and "\preto\@enddocumenthook" should be used instead
-% (see \url{http://tex.stackexchange.com/q/240318/18401}). (Update (2021-02-14):
-% we now rely on the new ×\AddToHook{env/document/end}×.)
-% \begin{macrocode}
-\bool_if:NF {\g_@@_coverpage_bool} {
- \bool_if:NF {\g_@@_inside_pages_bool} {
- \AddToHook{enddocument/end}{
- \bool_gset_true:N \g_@@_backmatter_bool
- \g_@@_display_inside_backcover_tl
- \newpage
- \g_@@_display_backcover_tl
- }%
- }%
-}%
-% \end{macrocode}
-%
-% If we don't ask the cover page (only), the document total page numbers should
-% be a multiple of four and we add the necessary and sufficient number of blank
-% pages if it isn't the case (code borrowed from
-% \url{http://tex.stackexchange.com/a/83498/18401}).
-% \begin{macrocode}
-\bool_if:NF {\g_@@_coverpage_bool} {
- \bool_if:nF { \g_@@_for_authors_bool } {
- \bool_if:nT { \g_@@_inside_pages_bool } {
- \AddToHook{enddocument}{%
- \prg_replicate:nn
- { \int_mod:nn { 4 - \int_mod:nn { \getpagerefnumber{LastPage} } { 4 } } { 4 } }
- { \thispagestyle{@@_blank_pages_ps}\null\clearpage }
- }
- }
- }
-}
-% \end{macrocode}
-%
-% \begin{macrocode}
-%</class>
-% \end{macrocode}
-%
-% \begin{macrocode}
-%<*class-article>
-% \end{macrocode}
-%
-% \begin{macrocode}
-\ProcessKeysOptions { gztarticle }
-% \end{macrocode}
-%
-% \begin{macrocode}
-\AddToHook{enddocument}{%
- \bool_if:NT {\g_@@_multicols_bool} {
- \end{multicols}%
- }
- \bool_if:NT {\g_@@_refsection_bool} {
- \end{refsection}
- }
-}
-% \end{macrocode}
-%
-% \begin{macrocode}
-%</class-article>
-% \end{macrocode}
-%
-% \begin{macrocode}
-%<*class|class-article>
-% \end{macrocode}
-%
-% \section{Miscellaneous settings}
-%
-% We gather here miscellaneous settings.
-%
-% \subsection{Related to \Pkg{pgfplots}}
-%
-% (French) Numbers format:
-% \begin{macrocode}
-\pgfplotsset{%
- /pgf/number~format/.cd,
- use~comma,
- 1000~sep={\,},
- min~exponent~for~1000~sep=4
-}%
-% \end{macrocode}
-%
-% \subsection{Related to \Pkg{biblatex}}
-%
-% \begin{macrocode}
-\defbibheading{bibassection}[\bibname]{\section*{#1}}%
-\renewcommand{\bibfont}{\normalfont\footnotesize}
-% \end{macrocode}
-%
-% As bibiliographic resource, we add the file of the current issue.
-% \begin{macrocode}
-\exp_after:wN\addbibresource\exp_after:wN{\c_@@_issue_bib_path_string_tl}
-% \end{macrocode}
-%
-% We create a name format that prints the initial(s) of the first name(s) before
-% last name of a cited author.
-% \begin{macrocode}
-\@ifpackagelater{biblatex}{2016/01/01}{%
- \DeclareNameFormat{giveninits-last}{%
- \nameparts{#1}
- \usebibmacro{name:given-family}
- {\namepartfamily}
- {\namepartgiveni}
- {\namepartprefix}
- {\namepartsuffix}%
- \usebibmacro{name:andothers}%
- }
-}{
- \DeclareNameFormat{giveninits-last}{%
- \usebibmacro{name:first-last}{#1}{#4}{#5}{#7}%
- \usebibmacro{name:andothers}%
- }
-}
-\DeclareNameAlias{labelname}{giveninits-last}
-% \end{macrocode}
-%
-% We ensure the space between initial(s) and last name is unbreakable.
-% \begin{macrocode}
-\renewcommand*\bibnamedelimc{\addnbspace}
-\renewcommand*\bibnamedelimd{\addnbspace}
-% \end{macrocode}
-%
-% \begin{macrocode}
-\renewbibmacro{in:}{%
- \ifentrytype{article}{}{\printtext{\bibstring{in}\intitlepunct}}}
-\renewbibmacro*{journal}{%
- \iffieldundef{shortjournal}%
- {%
- \iffieldundef{journaltitle}
- {}
- {%
- \printtext[journaltitle]%
- {%
- \printfield[titlecase]{journaltitle}%
- \setunit{\subtitlepunct}%
- \printfield[titlecase]{journalsubtitle}%
- }%
- }%
- }%
- {\printtext[journaltitle]{\printfield[titlecase]{shortjournal}}}%
-}
-\renewbibmacro*{volume+number+eid}{%
- \printfield{volume}%
- \setunit{\addcomma\c_space_tl}%
- \printfield{number}%
- \setunit{\addcomma\c_space_tl}%
- \printfield{eid}}
-\DeclareFieldFormat[article]{volume}{\mkbibbold{#1}}
-\DeclareFieldFormat[book]{volume}{\mkbibbold{#1}}
-\DeclareFieldFormat[article]{number}{\bibstring{number}#1}
-\DeclareLanguageMapping{french}{gzt}% use the new abbreviations
-% \end{macrocode}
-%
-% \subsection{Related to \Pkg{kpfonts}}
-%
-% We robustify the "\itshape" redefinition (in case of "easyscsl" option), that
-% is not robust in \pkg{kpfonts} code
-% (cf. \url{https://groups.google.com/d/msg/fr.comp.text.tex/hIi97ipK5qA/WJoPwvH-p1UJ}).
-% \begin{macrocode}
-\ifkp@easyscsl
-\DeclareRobustCommand{\itshape}{\not@math@alphabet\itshape\mathit%
- \ifthenelse{\equal{\f@shape}{\scdefault}}{\fontshape{scsl}}{%
- \fontshape\itdefault}\selectfont}
-\fi
-% \end{macrocode}
-%
-% We replace the \pkg{kpfonts}' \enquote{mathfrak} by the one from
-% \enquote{eufrak}, as the former doesn't provide Euler Fraktur digits.
-% \begin{macrocode}
-\DeclareMathAlphabet\mathfrak{U}{euf}{m}{n}
-\SetMathAlphabet\mathfrak{bold}{U}{euf}{b}{n}
-% \end{macrocode}
-%
-% \subsection{Related to \Pkg{draftwatermark}}
-%
-% \begin{macrocode}
-\@ifpackageloaded{draftwatermark}{%
- \SetWatermarkColor{gray!10}%
- \SetWatermarkFontSize{30mm}%
- \SetWatermarkText{\text_uppercase:n{\c_@@_draftwatermark_string_tl}}%
-}{%
-}
-% \end{macrocode}
-%
-% \subsection{Related to \Pkg{TikZ}}
-%
-% \begin{macrocode}
-\tikzset{
- _@@_dots/.style={
- line~width=\c_@@_tikz_dot_diameter_dim,
- line~cap=round,
- dash~pattern=on~0pt~off~\c_@@_tikz_dot_spacing_dim
- },
- _@@_tcb_segmentation_style/.style={
- _@@_dots,
- draw=@@_dotfill_color,
- shorten~>=~\c_@@_tcb_left_dim+\c_@@_tcb_boxsep_dim,
- shorten~<=~\c_@@_tcb_left_dim+\c_@@_tcb_boxsep_dim,
- }
-}
-% \end{macrocode}
-%
-% \subsection{Related to \Pkg{tcolorbox}}
-%
-% We set some styles for
-% \begin{itemize}
-% \item the two public environments "gztfigure(*)" and "gzttable(*)" for the
-% usual floats,
-% \item the book reviews,
-% \item the book advertisements,
-% \item the inside frontcover,
-% \end{itemize}
-% whom layout is based upon \pkg{tcolorbox} features.
-% \begin{macrocode}
-\tcbset{
- copyright/.style={%
- overlay={%
- \node[rotate=90,anchor=south~west,font=\tiny] at (frame.south~east) {%
- \begin{minipage}[t]{\tcbtextheight}
- \copyright{}~#1%
- \end{minipage}
- };%
- }%
- }%
-}
-\tcbset{%
- _@@_tcb_floats_style/.style={%
- enhanced%
- ,every~float=\centering%
- ,coltitle=@@_generic_dark_color%
- ,colbacktitle=@@_float_title_bg_color%
- ,colback=white%
- ,colframe=@@_float_frame_color%
- ,center~upper%
- ,sharp~corners=all%
- ,boxrule=0.3mm%
- }%
-}
-\tcbset{%
- _@@_tcb_notitle/.style={%
- blend~before~title~code={##1}
- ,title={\c_space_tl}%
- }%
-}
-\tcbset{%
- _@@_tcb_book_review_box_style/.style={%
- enhanced,%
- colback=@@_book_review_frame_bg_color,%
- breakable,%
- % height=50mm,%
- boxrule=\c_zero_dim,
- sharp~corners=all,%
- skin=enhancedlast,
- leftupper=25mm,
- enlarge~bottom~finally~by=-1mm,
- middle=4mm,
- segmentation~style={_@@_tcb_segmentation_style}%
- }
-}
-\tcbset{%
- _@@_tcb_book_advertisement_box_style/.style={%
- enhanced,%
- colframe=@@_book_advertisement_frame_color,%
- colback=@@_book_advertisement_bg_color,%
- center~lower,
- sharp~corners=all,%
- % skin=enhancedlast,
- % middle=4mm,
- lower~separated=false,
- % segmentation~style={_@@_tcb_segmentation_style}%
- }
-}
-\tcbset{%
- _@@_tcb_inside_cover_style/.style={%
- % split=0.6,%
- colback=@@_inside_frontcover_frame_bg_color,%
- colbacktitle=@@_inside_frontcover_frame_bg_color,%
- sharp~corners=all,%
- center~title,%
- coltitle=@@_inside_frontcover_frame_title_color,%
- fonttitle=\bfseries\large,%
- boxrule=\c_zero_dim,%
- toptitle=3mm,%
- bottomtitle=4mm,%
- frame~hidden,%
- enhanced,%
- height=\c_@@_layoutheight_dim-\c_@@_topmargin_inside_cover_dim-\c_@@_botmargin_dim,
- width=\c_@@_inside_cover_box_width_dim,
- middle=4mm,
- segmentation~style={_@@_tcb_segmentation_style}%
- },
- _@@_tcb_inside_frontcover_style/.style={%
- _@@_tcb_inside_cover_style,
- enlarge~left~by=-\c_@@_inside_cover_offset_dim,
- },
- _@@_tcb_inside_backcover_style/.style={%
- _@@_tcb_inside_cover_style,
- enlarge~left~by=\c_@@_inside_cover_offset_dim,
- }
-}
-\AddToHook{begindocument/before}{%
- \bool_if:NTF {\g_@@_special_edition_bool} {
- \tcbset{
- _@@_tcb_inside_frontcover_style/.append~style={%
- title=\c_@@_special_edition_editorial_board_string_tl
- },
- _@@_tcb_inside_backcover_style/.append~style={%
- notitle
- },
- }
- }{
- \tcbset{
- _@@_tcb_inside_frontcover_style/.append~style={%
- title=\c_@@_editorial_board_string_tl
- },
- _@@_tcb_inside_backcover_style/.append~style={%
- title=\file_if_exist:nT { \c_@@_authors_instructions_file_tl } {%
- \c_@@_authors_instructions_string_tl
- }
- },
- }
- }
-}
-\tcbset{%
- _@@_tcb_bibliography_style/.style={%
- colback=@@_bibliography_minibios_acknowledgements_bg_color,
- breakable,
- boxrule=\c_zero_dim,
- sharp~corners=all,%
- enhanced
- }
-}
-\tcbset{%
- _@@_tcb_minibiographies_acknowledgements_style/.style={%
- colback=@@_bibliography_minibios_acknowledgements_bg_color,
- breakable,
- boxrule=\c_zero_dim,
- extras~unbroken~and~last={drop~lifted~shadow},
- sharp~corners=all,%
- skin=enhancedlast,
- height~fixed~for=middle,
- }
-}
-\tcbset{%
- enlargepage~flexible=\baselineskip,
- left=\c_@@_tcb_left_dim,
- boxsep=\c_@@_tcb_boxsep_dim,
-}
-% \end{macrocode}
-%
-% \subsection{Lists}
-%
-% We now set the lists layout in order to benefit from \Pkg{enumitem}'s features
-% and preserve the layout from \pkg{frenchb}.
-% \begin{macrocode}
-\setlist[1]{labelindent=\parindent}
-\setlist[itemize]{label=\textendash{}, nosep}
-\setlist{%
- labelwidth=\widthof{\textendash},
- itemsep=0.4ex plus 0.2ex minus 0.2ex,
- parsep=0.4ex plus 0.2ex minus 0.2ex,
- topsep=0.8ex plus 0.4ex minus 0.4ex,
- partopsep=0.4ex plus 0.2ex minus 0.2ex,
- leftmargin=!%
-}
-% \end{macrocode}
-%
-% \begin{macrocode}
-\setlist[description]{
- font=
- \bool_if:nTF { \g_@@_books_rubric_bool || \g_@@_inside_frontcover_bool || \g_@@_inside_backcover_bool }
- {
- \color{black}
- }{
- \color{@@_description_label_light_color}
- }
- \bfseries
-}
-% \end{macrocode}
-%
-% \subsection{Miscellaneous}
-%
-% We fix the \pkg{csquotes}' quotes for PDF strings.
-% \begin{macrocode}
-\DeclarePlainStyle{«~}{~»}{`}{'}
-% \end{macrocode}
-%
-% We change the default settings of the floats placement.
-% \begin{macrocode}
-\setcounter{topnumber}{3}
-\renewcommand{\topfraction}{0.8}
-% \end{macrocode}
-%
-% We change the default vertical space between text and footnotes.
-% \begin{macrocode}
-\addtolength{\skip\footins}{.25\baselineskip}
-% \end{macrocode}
-%
-% We change the default horizontal space between columns in multicolumn mode.
-% \begin{macrocode}
-\setlength{\columnsep}{7mm}%
-% \end{macrocode}
-%
-% We change the way the section counter is displayed (the chapter should not appear).
-% \begin{macrocode}
-\renewcommand{\thesection}{\arabic{section}}%
-% \end{macrocode}
-%
-% In case \Pkg{siunitx} is loaded, we make it follow the French rules.
-% \begin{macrocode}
-\@ifpackageloaded{siunitx}{%
- \sisetup{locale=FR}
-}
-% \end{macrocode}
-%
-% We change the color of the table rules.
-% \begin{macrocode}
-\arrayrulecolor{@@_arrayrule_color}%
-% \end{macrocode}
-%
-% We change the floating table name (as translated by the \pkg{frenchb}
-% module from \Pkg{babel}) from \enquote{Table} to \enquote{Tableau}.
-% \begin{macrocode}
-\addto\captionsfrench{\def\tablename{{\scshape Tableau}}}%
-% \end{macrocode}
-%
-% \section{Miscellaneous (re)definitions}
-%
-% We gather here miscellaneous redefinitions.
-%
-% \subsection{Vectors}
-%
-% Vectors, even written with "\vec", are typeset with \pkg{esvect}'s "\vv":
-% \begin{macrocode}
-\RenewDocumentCommand \vec { m } {
- \vv{#1}
-}
-% \end{macrocode}
-%
-% \begin{macro}{\usetikzlibrary}
-% The "\usetikzlibrary" switch is redefined in order to get rid of the bug
-% reported here: \url{https://sourceforge.net/p/pgf/bugs/353/}.
-% \begin{macrocode}
-\cs_set_eq:NN \_@@_orig_usetikzlibrary \usetikzlibrary
-\RenewDocumentCommand \usetikzlibrary { m } {
- \shorthandoff{:}%
- \_@@_orig_usetikzlibrary{#1}
- \shorthandon{:}%
- % \begingroup
- % \NoAutoSpacing
- % \_@@_orig_usetikzlibrary{#1}
- % \endgroup
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsection{Usual theorems and the like}
-%
-% Some usual theorems and the like are defined, thanks to \Pkg{thmtools}. First,
-% we define a private function "\_@@_new_theorem" that defines:
-% \begin{enumerate}
-% \item a new (private, \pkg{thmtools}) theorem with 4 arguments:
-% \begin{enumerate}
-% \item possible additional options to the style "_@@_tcb_alltheorems_style"
-% defined earlier for all \enquote{theorems},
-% \item name of the (private) \pkg{thmtools} theorem,
-% \item French title for this theorem,
-% \item English title for this theorem.
-% \end{enumerate}
-% \item a public environment based on this private theorem with a the usual
-% syntax of \pkg{amsthm} theorems, except it has an optional argument for
-% possible additional options to the default styles ("theorem" or
-% "definition").
-% \end{enumerate}
-%
-% \begin{macro}{\bilingual}
-% \begin{macrocode}
-\cs_new_protected:Nn \_@@_bilingual:nnn
-{
- \deftranslation[to=French]{#1}{#2}%
- \deftranslation[to=English]{#1}{#3}%
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macrocode}
-\cs_new_protected:Nn \_@@_new_theorem:nnnn
-{
- % \_@@_bilingual:nnn {#2}{#3}{#4}
- \deftranslation[to=French]{#2}{#3}%
- \deftranslation[to=English]{#2}{#4}%
- \declaretheorem[%
- #1,%
- name=\translate{#2}
- ]{#2}
- \declaretheorem[%
- #1,%
- name=\translate{#2},
- numbered=no
- ]{#2*}
-}
-\cs_generate_variant:Nn \_@@_new_theorem:nnnn { nnVV }
-\declaretheoremstyle[spaceabove=3pt,notefont=\bfseries,bodyfont=\itshape]{theorem}
-\declaretheoremstyle[spaceabove=3pt,notefont=\bfseries,bodyfont=\normalfont]{definition}
-\declaretheoremstyle[spaceabove=3pt,bodyfont=\normalfont,qed=\ensuremath{\qedsymbol},headfont=\normalfont\itshape,numbered=no]{proof}
-% \end{macrocode}
-%
-% Then, we define a public command, similar to "\newtheorem", based on
-% "\_@@_new_theorem", that lets the user define his own theorems:
-% \begin{macrocode}
-\RenewDocumentCommand \newtheorem { O{} m }
-{
- \tl_clear:N \l_@@_newtheorem_style_tl
- \tl_clear:N \l_@@_newtheorem_frenchtitle_tl
- \tl_clear:N \l_@@_newtheorem_englishtitle_tl
- \tl_set:Nn \l_@@_newtheorem_englishtitle_tl {
- \text_titlecase:n {#2}
- }
- \tl_set:Nf \l_@@_newtheorem_frenchtitle_tl {
- \l_@@_newtheorem_englishtitle_tl
- }
- \tl_set:Nn \l_@@_newtheorem_style_tl {
- theorem
- }
- \IfNoValueF {#1}
- {
- \keys_set:nn { gzt/newtheorem } { #1 }
- }
- % \tl_if_eq:VVF { \l_@@_newtheorem_englishtitle_tl } { \MakeUppercase #2 }
- % {%
- % \tl_if_eq:NNF { \l_@@_newtheorem_frenchtitle_tl } { \l_@@_newtheorem_englishtitle_tl }
- % {%
- % \tl_set:Nf \l_@@_newtheorem_frenchtitle_tl {
- % \l_@@_newtheorem_englishtitle_tl
- % }
- % }
- % }
- \_@@_new_theorem:nnVV {style=\l_@@_newtheorem_style_tl}{#2}{\l_@@_newtheorem_frenchtitle_tl}{\l_@@_newtheorem_englishtitle_tl}
-}
-% \end{macrocode}
-%
-% Finally, we define some usual theorems:
-% \begin{macrocode}
-\newtheorem[frenchtitle=Th\'eor\`eme]{theorem}
-% \newtheorem[frenchtitle=Th\'eor\`eme,englishtitle=Theorem]{theoreme}
-\newtheorem[frenchtitle=Corollaire]{corollary}
-% \newtheorem[englishtitle=corollary]{corollaire}
-\newtheorem{conjecture}
-\newtheorem{proposition}
-\newtheorem[frenchtitle=Lemme]{lemma}
-% \newtheorem[englishtitle=Lemma]{lemme}
-\newtheorem[frenchtitle=Axiome]{axiom}
-% \newtheorem[englishtitle=Axiom]{axiome}
-%
-\newtheorem[style=definition,frenchtitle=D\'efinition]{definition}
-\newtheorem[style=definition,frenchtitle=Remarque]{remark}
-\newtheorem[style=definition,frenchtitle=Exemple]{example}
-\newtheorem[style=definition]{notation}
-%
-\let\proof\relax
-\newtheorem[style=proof,frenchtitle=Preuve]{proof}
-%
-\cs_new_protected:Nn \_@@_clone_theorem:nn
-{
- \NewDocumentEnvironment{#1}{}
- {
- \begin{#2}
- }
- {
- \end{#2}
- }
- \NewDocumentEnvironment{#1*}{}
- {
- \begin{#2*}
- }
- {
- \end{#2*}
- }
-}
-\_@@_clone_theorem:nn {theoreme} {theorem}
-\_@@_clone_theorem:nn {corollaire}{corollary}
-\_@@_clone_theorem:nn {lemme}{lemma}
-\_@@_clone_theorem:nn {axiome}{axiom}
-\_@@_clone_theorem:nn {remarque}{remark}
-\_@@_clone_theorem:nn {exemple}{example}
-\_@@_clone_theorem:nn {preuve}{proof}
-% \end{macrocode}
-%
-% \subsection{(Reciprocal) Trigonometric and hyperbolic functions}
-%
-% Reciprocal trigonometric functions, even written with usual "\arccos",
-% "\arcsin", "\arctan", etc. are typeset with an uppercase \enquote{A}:
-% \begin{macrocode}
-\DeclareMathOperator{\cotan}{cotan}
-\DeclareMathOperator{\Arccos}{Arccos}
-\DeclareMathOperator{\Arcsin}{Arcsin}
-\DeclareMathOperator{\Arctan}{Arctan}
-\DeclareMathOperator{\Argch}{Argch}
-\DeclareMathOperator{\Argsh}{Argsh}
-\DeclareMathOperator{\Argth}{Argth}
-\cs_set_eq:NN \_@@_orig_arccos \arccos
-\cs_set_eq:NN \_@@_orig_arcsin \arcsin
-\cs_set_eq:NN \_@@_orig_arctan \arctan
-\RenewDocumentCommand \arccos {} {
- \IfLanguageName {french}{\Arccos}{\_@@_orig_arccos}%
-}
-\RenewDocumentCommand \arcsin {} {
- \IfLanguageName {french}{\Arcsin}{\_@@_orig_arcsin}%
-}
-\RenewDocumentCommand \arctan {} {
- \IfLanguageName {french}{\Arctan}{\_@@_orig_arctan}%
-}
-\DeclareMathOperator{\ch}{ch}
-\DeclareMathOperator{\sh}{sh}
-\cs_set_eq:NN \_@@_orig_tanh \tanh
-\RenewDocumentCommand \tanh {} {
- \IfLanguageName {french}{\operatorname{th}}{\_@@_orig_tanh}%
-}
-\cs_set_eq:NN \_@@_orig_log \log
-\cs_set_eq:NN \_@@_orig_lg \lg
-\RenewDocumentCommand \log { s } {
- \IfBooleanTF {#1}
- {
- \_@@_orig_log
- }
- {
- \ln
- }
-}
-\RenewDocumentCommand \lg { s } {
- \IfBooleanTF {#1}
- {
- \_@@_orig_lg
- }
- {
- \ln
- }
-}
-\cs_set_eq:NN \_@@_orig_leq \leq
-\cs_set_eq:NN \_@@_orig_geq \geq
-\RenewDocumentCommand \le {} {%
- \IfLanguageName {french}{\leqslant}{\_@@_orig_leq}%
-}
-\RenewDocumentCommand \leq {} {%
- \IfLanguageName {french}{\leqslant}{\_@@_orig_leq}%
-}
-\RenewDocumentCommand \ge {} {%
- \IfLanguageName {french}{\geqslant}{\_@@_orig_geq}%
-}
-\RenewDocumentCommand \geq {} {%
- \IfLanguageName {french}{\geqslant}{\_@@_orig_geq}%
-}
-\NewDocumentCommand \N {} {\mathbb{N}}
-\NewDocumentCommand \Z {} {\mathbb{Z}}
-\NewDocumentCommand \D {} {\mathbb{D}}
-\NewDocumentCommand \Q {} {\mathbb{Q}}
-\NewDocumentCommand \R {} {\mathbb{R}}
-\NewDocumentCommand \C {} {\mathbb{C}}
-\NewDocumentCommand \K {} {\mathbb{K}}
-% \end{macrocode}
-%
-% We define a token list variable that contains the color of the description
-% labels because it won't be constant but will be:
-% \begin{itemize}
-% \item black in the front matter and in the books rubric
-% \end{itemize}
-%
-% We now leave the \LaTeX3{} programming environment.
-% \begin{macrocode}
-\ExplSyntaxOff
-% \end{macrocode}
-%
-% \begin{macrocode}
-%</class|class-article>
-% \end{macrocode}
-%
-% \section{Initial configuration file}
-% Before the code of the \gztcl{} by itself, we give the initial configuration
-% file.
-%
-% \begin{macrocode}
-%<*configuration>
-% \end{macrocode}
-%
-% \begin{macrocode}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% Journal data
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\journalsetup{%
- publisher = \smf,
- address = Institut Henri Poincar\'e\newline
- 11 rue Pierre et Marie Curie\newline
- 75231 Paris cedex 05,
- phone = 01 44 27 67 96,
- fax = 01 40 46 90 96,
- email = gazette@dma.ens.fr,
- url = http://smf.emath.fr,
- issn = 0224-8999
-}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% SMF President
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\president{Seuret, Stéphane}{}{}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% Editor in chief
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\editorinchief{Adamczewski, Boris}{Institut de Mathématiques de Marseille}{boris.adamczewski@math.cnrs.fr}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% Editors
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\editor{Colin, Vincent}{Université de Nantes}{vincent.colin@math.univ-nantes.fr}
-\editor{Ehrhardt, Caroline}{Université Vincennes Saint-Denis}{caroline.ehrhardt@inrp.fr}
-\editor{Gayet, Damien}{Institut Fourier, Grenoble}{damien.gayet@ujf-grenoble.fr}
-\editor{Gouëzel, Sébastien}{Université Rennes 1}{sebastien.gouezel@univ-rennes1.fr}
-\editor{Helffer, Bernard}{Université Paris-Sud}{bernard.helffer@math.u-psud.fr}
-\editor{Loidreau, Pierre}{Université Rennes 1}{pierre.loidreau@univ-rennes1.fr}
-\editor{Planchon, Fabrice}{Université de Nice}{fab@unice.fr}
-\editor{Queffélec, Martine}{Université Lille 1}{Martine.Queffelec@univ-lille1.fr}
-\editor{Seuret, Stéphane}{Université Paris Est Créteil}{seuret@u-pec.fr}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% Graphic designer
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\graphicdesigner{Lozanne, Nathalie}{}{n.lozanne@free.fr}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% Secretary
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\secretary{Ropartz, Claire}{}{}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% LaTeX class designer (and maintainer(s))
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\classdesigner{Bitouzé, Denis}{Université du Littoral Côte d'Opale}{denis.bitouze@univ-littoral.fr}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% Font designer text
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\fontdesignertext{Nous utilisons la police \href{http://ctan.org/pkg/kpfonts}{Kp-Fonts} créée par Christophe \textsc{Caignaert}.}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% Printer text
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\printertext{Jouve \aside*{1 rue du docteur Sauvé 53100 Mayenne}}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% Authors instructions
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\begin{authorsinstructions}
- \begin{description}
- \item[Objectifs de la \gzt*{}.] Bulletin interne de la \smf{}, la \gzt{} est
- un support privilégié d'expression au sein de la communauté
- mathématique. À ce titre, elle informe de l'actualité des mathématiques, de
- leur enseignement, de leur histoire, de leur relations avec d'autres
- sciences (physique, informatique, biologie, etc.).
-
- On y trouve donc des articles scientifiques de présentation, ainsi que des
- récensions de parutions mathématiques récentes. Elle contient aussi des
- informations sur tout ce qui concerne la vie professionnelle d'un
- mathématicien (recrutements, conditions de travail, publications
- scientifiques, etc.) et aussi des témoignages ou des tribunes libres.
-
- La \gzt{} paraît à raison de quatre numéros par an avec, optionnellement, un
- numéro spécial consacré à un sujet particulier de mathématiques ou bien à un
- grand mathématicien.
-
- Elle est envoyée gratuitement à chaque adhérent. Les numéros actuel et
- anciens sont disponibles en ligne
- (\url{http://smf4.emath.fr/Publications/Gazette/}).
-
- \item[Soumission d'article.] Les articles doivent être envoyés au secrétariat,
- de préférence par courrier électronique (\email{gazette@dma.ens.fr}), pour
- être examinés par le comité de rédaction. Si un article est accepté, son
- fichier source doit alors être fourni, de préférence sous forme d'un fichier
- \TeX{} ou, à l'extrême rigueur, LibreOffice, OpenOffice ou
- Word\textregistered{} ; une saisie de manuscrits est cependant possible pour
- des textes courts.
-
- Les fichiers \TeX{} doivent :
- \begin{itemize}
- \item de préférence recourir au format \LaTeXe{} : éviter les commandes des
- autres formats (tels que plain \TeX{}) ;
- \item être si possible \enquote{encodés} en \texttt{UTF-8} ;
- \item être le plus \enquote{pur} possible : éviter les macros
- \enquote{exotiques} ainsi que les insertions manuelles d'espacements
- horizontaux ou verticaux (\gztverb{\hspace}, \gztverb{\hskip},
- \gztverb{\vspace}, \gztverb{\vskip}, \gztverb{\enlargethispage}, etc.).
- \end{itemize}
- Les illustrations qui ne sont pas directement codées en \TeX{} doivent être
- fournies aux formats \texttt{.pdf} (à privilégier) ou, avec un bonne
- définition (300~\textsc{dpi} minimum), \texttt{.png} ou \texttt{.jpg}. Le
- format \texttt{.eps}, quoique indirectement supporté, est déconseillé.
-
- Pour faciliter la composition de textes destinés à la \gzt{}, la \smf{}
- propose la classe \LaTeX{} \gztarticlecl{} fournie par les distributions
- \TeX{} courantes (\TeX{} Live et Mac\TeX{} \aside{à partir de leur version
- 2015} ainsi que MiK\TeX{}), et sinon téléchargeable depuis la page
- \url{http://ctan.org/pkg/gzt}. Sa documentation détaillée se trouve à la
- page \url{http://mirrors.ctan.org/macros/latex/contrib/gzt/doc/gzt-fr.pdf}.
- On prendra garde au fait que l'usage de cette classe nécessite une
- distribution \TeX{} à jour.
-
- Pour plus de détails, consulter la page
- \url{http://smf.emath.fr/content/la-gazette-des-mathematiciens}.
- %
- % \item[Rubrique \enquote{Mathématiques}] La \gzt{} publie des articles de
- % mathématiques et d'interactions ou applications des mathématiques,
- % chargés
- % de présenter un résultat, exposer une notion ou de commenter une
- % actualité.
- %
- % Ils s'adressent à un public étendu. Les textes privilégiés sont courts,
- % pédagogiques et illustrés par des exemples.
- %
- % La bibliographie ne vise pas à l'exhaustivité et se concentre sur les
- % textes
- % introductifs et de référence.
- %
- % Les articles d'histoire des mathématiques ou contenant des vues
- % historiques
- % ou épistémologiques sont également bienvenus et doivent être conçus dans
- % le
- % même esprit.
- %
- % \item[Rubrique \enquote{Livres}] La rubrique \enquote{Livres} publie des
- % recensions s'attachant à présenter des ouvrages de mathématiques et des
- % ouvrages sur les mathématiques (leur histoire, leur philosophie, et plus
- % généralement tout ce qui a trait aux mathématiques et aux
- % mathématiciens).
- %
- % Quelques recommendations :
- % \begin{itemize}
- % \item Commencez la recension en donnant quelques informations sur le
- % livre
- % (titre, nom l'auteur, collection à laquelle il appartient, nom de
- % l'éditeur, ville de la maison d'édition, année de la publication,
- % nombre
- % de pages, \textsc{isbn} et prix en euros ou en dollars).
- % \item Précisez à quel public (de quel niveau) s'adresse le livre.
- % \item Vous êtes libre de dire ce que vous pensez (dans les limites de la
- % politesse et de la correction). Le comité de rédaction se réserve la
- % décision finale de publication après relecture de votre recension.
- % \item Les recensions doivent être brèves (une ou deux pages, trois au
- % maximum) et synthétiser l'apport original d'un ouvrage. Dans le cas
- % des
- % ouvrages de mathématiques, elles n'ont pas pour objectif de rendre
- % compte
- % d'une théorie et d'en donner un exposé ; la recension proprement dite
- % peut
- % toutefois être précédée, à titre d'introduction à l'analyse de
- % l'ouvrage,
- % d'un bref exposé panoramique et historique des idées générales du
- % domaine.
- % \item N'insérez pas de bibliographie.
- % \item Signez de vos nom et prénom et indiquez les noms de
- % l'établissement et
- % de la ville où vous exercez.
- % \end{itemize}
- \end{description}
-\end{authorsinstructions}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% Font designer
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\fontdesigner{Caignaert, Christophe}{}{}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% Réglages divers
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\pgfplotsset{compat=1.12}%
-% \end{macrocode}
-%
-% \begin{macrocode}
-%</configuration>
-% \end{macrocode}
-%
-% We now give the rest of the code of the source file of the Gazette's logo.
-% \begin{macrocode}
-%<*class-logo>
-% \end{macrocode}
-%
-% \begin{macrocode}
-\ExplSyntaxOff
-%
-\begin{document}
-\frontmatterheadtext
-\end{document}
-% \end{macrocode}
-%
-% \begin{macrocode}
-%</class-logo>
-% \end{macrocode}
-%
-% \begin{macrocode}
-%<*readme-pictograms>
-% \end{macrocode}
-%
-% \begin{macrocode}
-# Pictograms possibly missing
-
-The current directory is supposed to contain the (files of the) logos and
-pictograms that illustrate the Gazette whole issues compiled by the SMF. As non
-free materials, they are likely to miss here and, in such a case, the `gzt`
-class will be replace them by a dummy image (borrowed from the `mwe` package).
-% \end{macrocode}
-%
-% \begin{macrocode}
-%</readme-pictograms>
-% \end{macrocode}
-%
-% \begin{macrocode}
-%<*changelog>
-% \end{macrocode}
-# [Unreleased]
-
-# [1.0.1] - 2021-02-14
-
-## Added
-- Option to create moral reports (`gzt` class only).
-- Local (to a given article) table of contents
-
-## Changed
-- The class now relies on the new LaTeX core hooks.
-- Documentation revised.
-- Various improvements.
-
-## Fixed
-- Superflous uppercases removed (cont.).
-- `gztcode` environments partially gobble their content under certain
- conditions.
-- Various other small bugs.
-
-# [1.0.0] - 2020-03-17
-
-## Added
-- CHANGELOG file (following https://keepachangelog.com/en/1.0.0/).
-- Semantic versionning (following https://semver.org/).
-
-## Changed
-- Compilation date displayed only if the issue number is not specified
- (`gztarticle` class only).
-- Prevent column breaks within items of "Comité de rédaction" (at the price of
- unbalanced columns).
-
-## Fixed
-- Track changes in `expl3`.
-- Superflous uppercases removed.
-- Index directive in `latexmk` config file modernized.
-
-# [0.98] - 2018-04-09
-
-## Changed
-- Support for `biblatex` 3.8 changes.
-- Track changes in `expl3`.
-- Special editions implemented.
-
-## Fixed
-- Several bug fixes.
-
-# [0.96] - 2017-04-07
-
-## Changed
-- Figures and tables:
- - with recurrent label and number but without any caption,
- - with caption but without any recurrent label nor numbered,
- implemented.
-- Frames without any label, number nor caption implemented.
-- Track changes in `expl3`.
-
-# [0.9] - 2015-05-02
-
-- Initial CTAN release of the `gzt` bundle.
-% \begin{macrocode}
-%</changelog>
-% \end{macrocode}
-%
-% \begin{macrocode}
-%<*latexmkrc>
-% \end{macrocode}
-%
-% \begin{macrocode}
-$pdf_mode = 1;
-
-$bibtex_use = 1;
-$bibtex = 'biber %O %B';
-
-add_cus_dep('glo', 'gls', 0, 'makeglossaries');
-add_cus_dep('acn', 'acr', 0, 'makeglossaries');
-add_cus_dep('slo', 'sls', 0, 'makeglossaries');
-sub makeglossaries{
- system( "makeglossaries \"$_[0]\"" );
-}
-
-$makeindex = 'texindy -L french -C utf8';
-
-push @generated_exts, 'acn', 'acr', 'alg', 'bcf', 'fls', 'gl*', 'sbl*', 'sl*', 'sym*' ;
-
-$clean_ext .= 'synctex.gz* run.xml tex.bak ind idx out bbl bcf fdb_latexmk run
- tdo listing *~ lo* unq mw tcbtemp ins drv atfi db* ain' ;
-
-$quote_filenames = 0;
-% \end{macrocode}
-%
-% \begin{macrocode}
-%</latexmkrc>
-% \end{macrocode}
-%
-% \begin{macrocode}
-\endinput
-% \end{macrocode}
-%
-% \Finale
-
-%%% Local Variables:
-%%% mode: doctex
-%%% ispell-local-dictionary: "english"
-%%% TeX-command-default: "TeX"
-%%% TeX-master: t
-%%% End: