summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2016-04-14 21:55:04 +0000
committerKarl Berry <karl@freefriends.org>2016-04-14 21:55:04 +0000
commit21060d422b62cbbd56d5c489a79ea824bcd6e4df (patch)
treed55ce56abd78a5ae7a0c84ef34fd0a2ec5ea81b4 /Master
parent6b756d21397d3b697fc51d31cc87747be1ad76e5 (diff)
nwejm (14apr16)
git-svn-id: svn://tug.org/texlive/trunk@40526 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r--Master/texmf-dist/doc/latex/nwejm/README.md21
-rw-r--r--Master/texmf-dist/doc/latex/nwejm/addons/completion/nwejm.cwl209
-rw-r--r--Master/texmf-dist/doc/latex/nwejm/addons/completion/nwejmart.cwl5
-rw-r--r--Master/texmf-dist/doc/latex/nwejm/documentation/french/fixed-footnotes.tex8
-rw-r--r--Master/texmf-dist/doc/latex/nwejm/documentation/french/notations.tex135
-rw-r--r--Master/texmf-dist/doc/latex/nwejm/documentation/french/nwejm-fr.tex1431
-rw-r--r--Master/texmf-dist/doc/latex/nwejm/documentation/french/packages-un-loaded.tex92
-rw-r--r--Master/texmf-dist/doc/latex/nwejm/documentation/french/todo.tex17
-rw-r--r--Master/texmf-dist/doc/latex/nwejm/documentation/latexmkrc17
-rw-r--r--Master/texmf-dist/doc/latex/nwejm/documentation/nwejm.bib66
-rw-r--r--Master/texmf-dist/doc/latex/nwejm/documentation/nwejm.pdfbin0 -> 647387 bytes
-rw-r--r--Master/texmf-dist/doc/latex/nwejm/documentation/nwejm.tex67
-rw-r--r--Master/texmf-dist/doc/latex/nwejm/examples/dutch.pdfbin0 -> 293059 bytes
-rw-r--r--Master/texmf-dist/doc/latex/nwejm/examples/dutch.tex36
-rw-r--r--Master/texmf-dist/doc/latex/nwejm/examples/english.pdfbin0 -> 285361 bytes
-rw-r--r--Master/texmf-dist/doc/latex/nwejm/examples/english.tex24
-rw-r--r--Master/texmf-dist/doc/latex/nwejm/examples/example.pdfbin0 -> 304513 bytes
-rw-r--r--Master/texmf-dist/doc/latex/nwejm/examples/example.tex187
-rw-r--r--Master/texmf-dist/doc/latex/nwejm/examples/french.pdfbin0 -> 358430 bytes
-rw-r--r--Master/texmf-dist/doc/latex/nwejm/examples/french.tex28
-rw-r--r--Master/texmf-dist/doc/latex/nwejm/examples/german.pdfbin0 -> 290076 bytes
-rw-r--r--Master/texmf-dist/doc/latex/nwejm/examples/german.tex23
-rw-r--r--Master/texmf-dist/doc/latex/nwejm/examples/issue.pdfbin0 -> 2978464 bytes
-rw-r--r--Master/texmf-dist/doc/latex/nwejm/examples/issue.tex23
-rw-r--r--Master/texmf-dist/doc/latex/nwejm/examples/sample.tex101
-rw-r--r--Master/texmf-dist/doc/latex/nwejm/examples/template.tex72
-rw-r--r--Master/texmf-dist/doc/latex/nwejm/latexmkrc.tex17
-rw-r--r--Master/texmf-dist/doc/latex/nwejm/ltxdoc.cfg11
-rw-r--r--Master/texmf-dist/doc/latex/nwejm/nwejm-logos-collection.tex41
-rw-r--r--Master/texmf-dist/doc/latex/nwejm/nwejm.cwl209
-rw-r--r--Master/texmf-dist/doc/latex/nwejm/nwejmart.cwl5
-rw-r--r--Master/texmf-dist/source/latex/nwejm/nwejm.drv45
-rw-r--r--Master/texmf-dist/source/latex/nwejm/nwejm.dtx5773
-rw-r--r--Master/texmf-dist/source/latex/nwejm/nwejm.ins101
-rw-r--r--Master/texmf-dist/tex/latex/nwejm/images/nwejm-federation-recherche-math-npdc-logo.pdfbin0 -> 4118 bytes
-rw-r--r--Master/texmf-dist/tex/latex/nwejm/images/nwejm-fields-institute-logo.pdfbin0 -> 146648 bytes
-rw-r--r--Master/texmf-dist/tex/latex/nwejm/images/nwejm-kwg-logo.pdfbin0 -> 1187857 bytes
-rw-r--r--Master/texmf-dist/tex/latex/nwejm/images/nwejm-logo-NB.pdfbin0 -> 147686 bytes
-rw-r--r--Master/texmf-dist/tex/latex/nwejm/images/nwejm-logo.pdfbin0 -> 479711 bytes
-rw-r--r--Master/texmf-dist/tex/latex/nwejm/images/nwejm-logos-collection.pdfbin0 -> 1960518 bytes
-rw-r--r--Master/texmf-dist/tex/latex/nwejm/images/nwejm-logos-collection.tex41
-rw-r--r--Master/texmf-dist/tex/latex/nwejm/images/nwejm-smf-logo.pdfbin0 -> 140012 bytes
-rw-r--r--Master/texmf-dist/tex/latex/nwejm/images/nwejm-sml-logo.pdfbin0 -> 9287 bytes
-rw-r--r--Master/texmf-dist/tex/latex/nwejm/nwejm-dutch.trsl39
-rw-r--r--Master/texmf-dist/tex/latex/nwejm/nwejm-english.trsl39
-rw-r--r--Master/texmf-dist/tex/latex/nwejm/nwejm-french.trsl39
-rw-r--r--Master/texmf-dist/tex/latex/nwejm/nwejm-german.trsl39
-rw-r--r--Master/texmf-dist/tex/latex/nwejm/nwejm.bbx116
-rw-r--r--Master/texmf-dist/tex/latex/nwejm/nwejm.cbx140
-rw-r--r--Master/texmf-dist/tex/latex/nwejm/nwejm.cfg94
-rw-r--r--Master/texmf-dist/tex/latex/nwejm/nwejm.cls2640
-rw-r--r--Master/texmf-dist/tex/latex/nwejm/nwejm.dbx34
-rw-r--r--Master/texmf-dist/tex/latex/nwejm/nwejm.lbx42
-rw-r--r--Master/texmf-dist/tex/latex/nwejm/nwejmart.cls1937
-rwxr-xr-xMaster/tlpkg/libexec/ctan2tds15
-rw-r--r--Master/tlpkg/tlpsrc/collection-publishers.tlpsrc1
-rw-r--r--Master/tlpkg/tlpsrc/nwejm.tlpsrc0
57 files changed, 13976 insertions, 4 deletions
diff --git a/Master/texmf-dist/doc/latex/nwejm/README.md b/Master/texmf-dist/doc/latex/nwejm/README.md
new file mode 100644
index 00000000000..6e81570bb05
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/nwejm/README.md
@@ -0,0 +1,21 @@
+nwejm - Support for the journal "North-Western European Journal of Mathematics"
+===============================================================================
+
+This bundle includes LaTeX classes and `biblatex` styles files dedicated to the
+new journal "North-Western European Journal of Mathematics".
+
+Follow development, submit issues, and suggest improvements at
+https://github.com/dbitouze/nwejm.
+
+Installation
+------------
+
+The classes are supplied in `.dtx` format. If you want to unpack the `.dtx`
+yourself, running `tex nwejm.dtx` will extract the package whereas
+`pdflatex nwejm` will typeset the documentation of the `nwejmart` class
+(currently only in French).
+
+Typesetting the documentation also requires a number of packages in addition to
+those needed to use the `nwejm` classes. To compile the documentation without
+error, you will need, among others, my personal (dirty) package `denisbdoc` for
+documenting the classes I've written.
diff --git a/Master/texmf-dist/doc/latex/nwejm/addons/completion/nwejm.cwl b/Master/texmf-dist/doc/latex/nwejm/addons/completion/nwejm.cwl
new file mode 100644
index 00000000000..f383b4ee744
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/nwejm/addons/completion/nwejm.cwl
@@ -0,0 +1,209 @@
+# mode: nwejm.cls
+# denisbitouze, 23.12.2015
+#
+#include:class-book
+#include:latex-document
+#include:latex-mathsymbols
+#include:tex
+#include:xparse
+#include:l3keys2e
+#include:l3sort
+#include:nag
+#include:fontenc
+#include:inputenc
+#include:fontspec
+#include:graphicx
+#include:adjustbox
+#include:draftwatermark
+#include:xspace
+#include:csquotes
+#include:biblatex
+#include:array
+#include:booktabs
+#include:varioref
+#include:mathtools
+#include:mathrsfs
+#include:esvect
+#include:kpfonts
+#include:translations
+#include:fmtcount
+#include:geometry
+#include:babel
+#include:tocvsec2
+#include:etoc
+#include:microtype
+#include:datetime2
+#include:enumitem
+#include:pagegrid
+#include:amsthm
+#include:thmtools
+#include:hyperref
+#include:hypcap
+#include:bookmark
+#include:glossaries
+#include:cleveref
+#
+# Document class
+#keyvals:\documentclass/nwejmart
+french
+english
+ngerman
+dutch
+#endkeyvals
+#
+# Cover and title pages
+#
+# Title, etc.
+\title{title}#n
+\title[short title]{title}#n
+\subtitle{%<subtitle%>}#n*
+\subtitle[%<short subtitle%>]{%<subtitle%>}#n*
+#
+# Author
+\author{%<Last name%>, %<First name%>}#n
+\author[affiliation={%<affiliation%>}]{%<Last name%>, %<First name%>}#n
+\author[affiliation=[%<affiliation's tag%>]{%<affiliation%>}]{%<Last name%>, %<First name%>}#n
+\author[affiliationtagged={%<affiliation's tag%>}]{%<Last name%>, %<First name%>}#n
+#
+# Dates
+\dates{received=%<yyyy%>-%<mm%>-%<dd%>,accepted=%<yyyy%>-%<mm%>-%<dd%>,online=%<yyyy%>-%<mm%>-%<dd%>}#n
+#
+# Math commands
+\N#m
+\Z#m
+\D#m
+\Q#m
+\R#m
+\C#m
+\K#m
+\arccosh#m
+\arcsin#m
+\arcsinh#m
+\arctan#m
+\arctanh#m
+\Argch#m
+\Argsh#m
+\Argth#m
+\ch#m
+\cotan#m
+\curl#m
+\dif#m
+\Div#m
+\grad#m
+\E#m
+\I#m
+\rot#m
+\sh#m
+\supp#m
+\th#m
+\norm#m
+\lnorm#m
+\llnorm#m
+\lpnorm#m
+\supnorm#m
+\abs#m
+\prt#m
+\brk#m
+\brc#m
+\leqgeq#m
+\lrangle#m
+\set{%<set self-contained definition%>}#m
+\set{%<set definition%>}[%<such that...%>]#m
+\begin{axiom}
+\begin{assertions}
+\begin{conjecture}
+\begin{corollary}
+\begin{definition}
+\begin{example}
+\begin{hypotheses}
+\begin{proposition}
+\begin{lemma}
+\begin{notation}
+\begin{proof}
+\begin{remark}
+\begin{theorem}
+#
+\begin{axiom*}
+\begin{assertions*}
+\begin{conjecture*}
+\begin{corollary*}
+\begin{definition*}
+\begin{example*}
+\begin{hypotheses*}
+\begin{proposition*}
+\begin{lemma*}
+\begin{notation*}
+\begin{proof*}
+\begin{remark*}
+\begin{theorem*}
+#
+\end{axiom}
+\end{assertions}
+\end{conjecture}
+\end{corollary}
+\end{definition}
+\end{example}
+\end{hypotheses}
+\end{proposition}
+\end{lemma}
+\end{notation}
+\end{proof}
+\end{remark}
+\end{theorem}
+#
+\end{axiom*}
+\end{assertions*}
+\end{conjecture*}
+\end{corollary*}
+\end{definition*}
+\end{example*}
+\end{hypotheses*}
+\end{proposition*}
+\end{lemma*}
+\end{notation*}
+\end{proof*}
+\end{remark*}
+\end{theorem*}
+#
+\begin{description*}
+\begin{enumerate*}
+\begin{itemize*}
+#
+\end{description*}
+\end{enumerate*}
+\end{itemize*}
+# Miscellaneous commands
+\keywords{%<list of keywords%>}#n
+\msc{%<list of MSCs%>}#n
+\nwejm#n
+\nwejm*#n*
+\century{%<(positive or negative) integer%>}#n
+\century*{%<(positive or negative) integer%>}#n*
+\aside{%<interpolated clause%>}#n
+\aside*{%<interpolated clause%>}#n
+\acknowledgements{%<acknowledgments%>}#n
+\ie#n
+\ie*#n*
+\Ie#n
+\Ie*#n*
+\NewPairedDelimiter#n
+\articlesetup#n
+\BinaryOperators#n
+#
+\editorinchief{%<Last name%>, %<First name%>}{%<affiliation%>}{%<country%>}{%<email%>}#n
+\editor{%<Last name%>, %<First name%>}{%<affiliation%>}{%<country%>}{%<email%>}#n
+\fieldseditor{%<Last name%>, %<First name%>}{%<affiliation%>}{%<country%>}{%<email%>}#n
+\managingeditor{%<Last name%>, %<First name%>}{%<affiliation%>}{%<country%>}{%<email%>}#n
+\classdesigner{%<Last name%>, %<First name%>}{%<affiliation%>}{%<country%>}{%<email%>}#n
+\computerengineer{%<Last name%>, %<First name%>}{%<affiliation%>}{%<country%>}{%<email%>}#n
+\classmaintainer{%<Last name%>, %<First name%>}{%<affiliation%>}{%<country%>}{%<email%>}#n
+\fontdesigner{%<Last name%>, %<First name%>}{%<affiliation%>}{%<country%>}{%<email%>}#n
+\printingservice{%<Last name%>, %<First name%>}{%<affiliation%>}{%<country%>}{%<email%>}#n
+\computerassistance{%<Last name%>, %<First name%>}{%<affiliation%>}{%<country%>}{%<email%>}#n
+\secretary{%<Last name%>, %<First name%>}{%<affiliation%>}{%<country%>}{%<email%>}#n
+\issuesetup{number=%<positive integer%>}#n
+\journalsetup {publisher=%<publisher%>,address={%<address%>},phone=%<phone%>,email=%<email%>,url=%<url%>,issn=%<issn%>,isbn=%<isbn%>}#n
+\inputarticle{file}#i
+\inputarticle[path]{file}#i
+\fontdesignertext{text}#n
+\printertext{text}#n
diff --git a/Master/texmf-dist/doc/latex/nwejm/addons/completion/nwejmart.cwl b/Master/texmf-dist/doc/latex/nwejm/addons/completion/nwejmart.cwl
new file mode 100644
index 00000000000..67175927679
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/nwejm/addons/completion/nwejmart.cwl
@@ -0,0 +1,5 @@
+# mode: nwejm.cls
+# denisbitouze, 23.12.2015
+#
+#include:nwejm
+
diff --git a/Master/texmf-dist/doc/latex/nwejm/documentation/french/fixed-footnotes.tex b/Master/texmf-dist/doc/latex/nwejm/documentation/french/fixed-footnotes.tex
new file mode 100644
index 00000000000..3f3417ac696
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/nwejm/documentation/french/fixed-footnotes.tex
@@ -0,0 +1,8 @@
+\DeclareFixedFootnote{\conseilslatex}{Et donne de façon subliminale quelques conseils
+ \LaTeX{}. On consultera \autocite{Ensenbach} pour un panorama plus complet des
+ commandes et extensions obsolètes (et autres erreurs).}
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: "nwejm.tex"
+%%% End:
diff --git a/Master/texmf-dist/doc/latex/nwejm/documentation/french/notations.tex b/Master/texmf-dist/doc/latex/nwejm/documentation/french/notations.tex
new file mode 100644
index 00000000000..5aaa71586e2
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/nwejm/documentation/french/notations.tex
@@ -0,0 +1,135 @@
+\subsection{Notations, syntaxe, terminologie et codes couleurs}\label{sec-synt-term-notat}
+
+Nous précisons ici les notations, syntaxe, terminologie et codes couleurs de
+la présente documentation.
+
+\subsubsection{Commandes, environnements, clés, valeurs}\label{sec-comm-envir-cles}
+
+Les commandes, environnements, clés et valeurs de clés sont systématiquement
+composés en fonte à chasse fixe. En outre, pour plus facilement les
+distinguer, ils figurent avec des couleurs propres :
+\begin{itemize}
+\item les commandes en bleu : \docAuxCommand*{commande} ;
+\item les environnements en \enquote{sarcelle} :
+ \docAuxEnvironment*{environnement} ;
+\item les clés en pourpre : \docAuxKey*{clé} ;
+\item les valeurs des clés en violet : \docValue*{valeur}.
+\end{itemize}
+
+\subsubsection{Arguments génériques}
+\label{sec-arguments-generiques}
+
+Pour expliquer le rôle d'une commande, il est parfois nécessaire d'indiquer
+à quoi celle-ci s'applique, autrement dit quel en est l'argument générique.
+Un tel argument est composé :
+\begin{itemize}
+\item en fonte à chasse fixe ;
+\item en italique ;
+\item entre chevrons simples ;
+\end{itemize}
+le tout en marron, ainsi : \meta{argument générique}.
+
+\subsubsection{Liens hypertextes}
+\label{sec-liens-hypertextes}
+
+Les liens hypertextes figurent en couleur, ainsi :
+\href{http://gte.univ-littoral.fr/members/dbitouze/pub/latex}{lien hypertexte}.
+La plupart des références aux commandes, environnements et clés définis dans la
+présente documentation, sont des liens hypertextes, surmontés du numéro de page
+où se trouve la cible correspondante (sauf si elle se situe sur la même page) :
+\begin{itemize}
+\item \refCom{author} ;
+\item \refEnv{abstract}.
+\end{itemize}
+
+
+\subsubsection{Éléments \enquote{obligatoires}}
+\label{sec-comm-oblig}
+
+L'icône \mandatory{}, figurant en regard de certains éléments (commandes ou
+environnements), indique que ceux-ci sont \enquote{obligatoires}.
+
+\subsubsection{Codes sources}
+\label{sec-codes-sources}
+
+Les exemples qui illustrent la présente documentation sont constitués de codes
+sources et, le cas échéant, des \enquote{copies d'écran} correspondantes.
+% Ceux-ci proviennent le plus souvent du spécimen de document composé avec la
+% \yatcl, fourni avec l'ensemble de la classe
+% (cf. \vref{sec-specimen-arborescence}).
+
+Ces codes sources figurent dans des cadres, pouvant comporter un titre, de
+couleur bleu :
+\begin{itemize}
+\item non ombrés s'ils doivent être saisis dans le corps du document ;
+\begin{bodycode}
+"\meta{code source}"
+\end{bodycode}
+\begin{bodycode}[title=\meta{titre}]
+"\meta{code source}"
+\end{bodycode}
+\item ombrés s'ils doivent être saisis en préambule du fichier.
+\begin{preamblecode}
+"\meta{code source à insérer en préambule}"
+\end{preamblecode}
+\begin{preamblecode}[title=\meta{titre}]
+"\meta{code source à insérer en préambule}"
+\end{preamblecode}
+\end{itemize}
+
+\subsubsection{Espaces dans les codes sources}
+\label{sec-espaces-dans-les}
+
+Pour éviter certaines confusions, les espaces dans les codes sources devant
+être saisis au clavier sont parfois matérialisés au moyen de la marque
+\lstinline[showspaces]+ +.
+
+\subsubsection{Options}
+\label{sec-options}
+
+La présente classe, ainsi que certaines de ses commandes et certains de ses
+environnements, peuvent être modulés au moyen d'options, ou listes d'options
+(séparées par des virgules). Ces options peuvent se présenter sous la forme
+\meta{clé}|=|\meta{valeur} et la \meta{valeur} passée à une \meta{clé} peut
+être :
+%^^A \begin{description}
+%^^A \item[ne prennent pas de valeur.] Une telle option, par exemple nommée
+%^^A \refKey{option}, est alors documentée selon la syntaxe suivante:
+%^^A \begin{docKey*}{option}{}{\meta{valeurs par défaut et initiale}}
+%^^A \meta{Description de \refKey{option}}
+%^^A \end{docKey*}
+%^^A \item[prennent des valeurs.] Une telle option se présente alors sous la forme
+%^^A \meta{clé}"="\meta{valeur}. Les valeurs passées à une clé peuvent être :
+\begin{description}
+\item[libre.] Si une telle \meta{clé} est (pour l'exemple) nommée
+ \refKey{freekey}, elle est alors documentée selon la syntaxe suivante :
+ \begin{docKey*}{freekey}{=\meta{valeur}}{\meta{valeurs par défaut et initiale}}
+ \meta{Description de \refKey{freekey}}
+ \end{docKey*}
+\item[imposée] (parmi une liste de valeurs possibles). Si une telle \meta{clé} est
+ (pour l'exemple) nommée \refKey{choicekey} et de valeurs imposées
+ \docValue*{valeur1}, \dots{}, \docValue*{valeurN}, elle est alors
+ documentée selon la syntaxe suivante\footnote{Comme souvent en informatique,
+ la barre verticale séparant les valeurs possibles signifie \enquote{ou}.} :
+ \begin{docKey*}{choicekey}{=\docValue*{valeur1}\textbar...\textbar\docValue*{valeurN}}{\meta{valeurs par défaut et initiale}}
+ \meta{Description de \refKey{choicekey} et de ses valeurs possibles}
+ \end{docKey*}
+\end{description}
+%^^A \end{description}
+
+Les \meta{valeurs par défaut et initiale} d'une clé sont souvent précisées
+(entre parenthèses en fin de ligne). Elles indiquent ce que la clé vaut :
+\begin{description}
+\item[par défaut] c'est-à-dire lorsque la clé \emph{est} employée, mais
+ \emph{seule} c'est-à-dire sans qu'une valeur explicite lui soit passée ;
+\item[initialement] c'est-à-dire lorsque la clé \emph{n'est pas} employée.
+\end{description}
+%
+\iffalse
+%%% Local Variables:
+%%% mode: latex
+%%% eval: (latex-mode)
+%%% ispell-local-dictionary: "fr_FR"
+%%% TeX-master: "nwejm.dtx"
+%%% End:
+\fi
diff --git a/Master/texmf-dist/doc/latex/nwejm/documentation/french/nwejm-fr.tex b/Master/texmf-dist/doc/latex/nwejm/documentation/french/nwejm-fr.tex
new file mode 100644
index 00000000000..8c51264c336
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/nwejm/documentation/french/nwejm-fr.tex
@@ -0,0 +1,1431 @@
+\section{Introduction}
+\label{sec-introduction}
+
+\begin{dbremark}{Documentation : travail en cours}{}
+ La présente documentation est un travail en cours. Nous prions les lecteurs
+ qui ont des remarques à formuler ou qui trouveront des erreurs de bien vouloir
+ nous les signaler à l'adresse courriel figurant en page de titre.
+\end{dbremark}
+
+La classe \LaTeX{} \nwejmauthor{} est destinée aux auteurs souhaitant publier un
+article dans le \href{http://math.univ-lille1.fr/~nwejm/}{\gls{nwejm}}. Cette
+classe a pour but :
+\begin{enumerate}
+\item de reproduire fidèlement la maquette de la \nwejm{}, permettant ainsi
+ aux auteurs de pouvoir travailler la mise en page de leur document dans des
+ conditions réelles ;
+\item de fournir un certain nombre d'outils (commandes et environnements)
+ destinés à faciliter la rédaction de documents, notamment ceux contenant des
+ formules de mathématiques.
+\end{enumerate}
+
+\begin{dbwarning}{Codage d'entrée \protect\lstinline+UTF-8+ obligatoire}{}
+ La \nwejmauthorcl{} du \nwejm{} repose de façon cruciale sur un codage
+ d'entrée en |UTF-8| :
+ \begin{itemize}
+ \item elle charge le \Package{inputenc}\footnote{%
+ Il convient donc de \emph{ne pas} charger ce package : on se reportera
+ à la \vref{sec-canevas-de-fichier} pour un canevas de fichier source
+ destiné à la \nwejm{} et notamment pour un préambule typique.%
+ %
+ }
+ %
+ avec l'option \docAuxKey{utf8} ;
+ \item elle suppose que les fichiers sources \file{.tex} sont effectivement
+ codés en |UTF-8| : on veillera donc à ce que l'éditeur utilisé soit réglé
+ sur ce codage d'entrée.
+ \end{itemize}
+\end{dbwarning}
+
+\begin{dbwarning}{Format et compilation \hologo{pdfLaTeX}}{}
+ La composition des numéros du \nwejm*{} met en œuvre :
+ \begin{itemize}
+ \item le format \hologo{LaTeX}\footnote{Sous sa version \hologo{LaTeXe}, la
+ plus courante de nos jours.}. On évitera donc les commandes des autres
+ formats tels que \hologo{plainTeX} ;
+ \item le compilateur privilégié est \hologo{pdfLaTeX}. En particulier, le
+ compilateur \hologo{LaTeX} n'étant \emph{a priori} pas utilisé, nous
+ préférons :
+ \begin{enumerate}
+ \item comme formats d'images : \format{jpg}, \format{png} et
+ \format{pdf}\footnote{Le format recommandé est \format{pdf} car il est
+ vectoriel si bien que la qualité des images n'est pas dégradée en cas de
+ redimensionnement.} ;
+ \item éviter l'usage de code \program{PostScript}, notamment via
+ \program{PSTricks} et, comme outil de dessin, privilégions par exemple le
+ \Package{TikZ}.
+ \end{enumerate}
+ \end{itemize}
+\end{dbwarning}
+
+\section{Configuration de l'article}
+
+\subsection{Langue de l'article}
+\label{sec:langue-de-larticle}
+
+Le \nwejm{} accepte des articles dans chacune des quatre langues
+\begin{itemize}
+\item anglais ;
+\item français ;
+\item allemand ;
+\item néerlandais ;
+\end{itemize}
+et la \nwejmauthorcl{} permet de spécifier la langue choisie\footnote{La gestion
+ des langues est assurée en sous-main par le \Package{babel}.} au moyen des
+options de classe suivantes.
+% \refKey{english}, \refKey{french}, \refKey{ngerman} \refKey{dutch}
+
+\begin{docKey}{english}{}{pas de valeur, option par défaut}
+ Cette option définit l'anglais comme langue de l'article.
+\end{docKey}
+\begin{docKey}{french}{}{}
+ Cette option définit le français comme langue de l'article.
+\end{docKey}
+\begin{docKey}{german}{}{}
+ Cette option définit l'allemand comme langue de l'article. Elle a pour alias
+ \docAuxKey{ngerman}.
+ \begin{dbremark}{Option de \package*{babel} sous-jacente à l'option
+ \protect\refKey{german}}{}
+ L'option de langue \refKey{german} de la \nwejmauthorcl{} appelle en
+ sous-main l'option \docAuxKey*{ngerman} du \Package*{babel}.
+ \end{dbremark}
+ \begin{docKey}{dutch}{}{}
+ Cette option définit le néerlandais comme langue de l'article.
+\end{docKey}
+\end{docKey}
+
+\begin{dbremark}{Langue par défaut de l'article}{}
+ Si aucune de ces options n'est spécifiée, la langue de l'article est par
+ défaut l'anglais.
+\end{dbremark}
+
+\subsection{Autres configurations}
+\label{sec:autr-conf}
+
+\begin{docCommand}{articlesetup}{\marg{options}}
+ Cette commande permet de configurer les \meta{options} de l'article en cours
+ sous la forme clés/valeurs. La seule clé fournie pour l'instant est
+ \refKey{gradient} (mais ceci peut être amené à changer).
+\end{docCommand}
+
+\begin{dbwarning}{Commande \protect\refCom{articlesetup} : pas en préambule !}{}
+ La commande \refCom{articlesetup} doit être utilisée \emph{exclusivement} dans
+ le corps du document (de préférence juste après |\begin{document}|) sans quoi
+ la configuration choisie, certes prise en compte dans l'article isolé,
+ risque de ne pas l'être dans le volume complet !
+\end{dbwarning}
+
+\section{Préparation du \enquote{titre} de l'article}
+\label{sec-prep-de-lart}
+
+Cette section liste les commandes, options et environnement permettant de
+\emph{préparer} le \enquote{titre} de l'article ainsi que son éventuelle partie
+finale.
+
+\subsection{Titre, sous-titre}
+\label{sec-titre}
+
+\begin{docCommand}[doc description=\mandatory]{title}{\oarg{titre court}\marg{titre}}
+ Cette commande définit le \meta{titre} de l'article qui apparaît :
+ \begin{itemize}
+ \item en début d'article ;
+ \item en titre courant\footnote{En entête.} sur les pages paires ;
+ \item comme métadonnée \enquote{Titre} du fichier \textsc{pdf} correspondant ;
+ \item dans la table des matières du volume où sera publié l'article.
+ \end{itemize}
+\end{docCommand}
+
+\begin{docCommand}{subtitle}{\oarg{sous-titre court}\marg{sous-titre}}
+ Cette commande définit l'éventuel \meta{sous-titre} de l'article. Celui-ci
+ est automatiquement ajouté au titre.
+\end{docCommand}
+
+Les commandes \refCom{title} et \refCom{subtitle} admettent un argument
+optionnel permettant de spécifier un \meta{(sous-)titre court} de l'article qui
+figure alors à la place du (sous-)titre \enquote{normal} en titre courant et
+dans la table des matières.
+
+\begin{bodycode}[listing options={deletekeywords={title,subtitle}}]
+\title[Le Traité du calcul des probabilités]{Le Traité du calcul des
+ probabilités et de ses applications}
+\subtitle[Étendue et limites d'un projet borélien]{Étendue et limites
+ d'un projet borélien de grande envergure (1921-1939)}
+\end{bodycode}
+
+\begin{dbremark}{Affichage des titre et sous-titre}{}
+ Pour que les titre et sous-titre soient affichés, il est nécessaire de
+ recourir à la commande habituelle \refCom{maketitle}.
+\end{dbremark}
+
+\subsection{Auteur(s)}
+\label{sec-auteurs}
+
+Un auteur d'article est spécifié au moyen de la commande \refCom{author}
+suivante. En cas d'auteurs multiples, il suffit de (et il faut) recourir
+à plusieurs occurrences de cette commande.
+
+\begin{docCommand}{author}{\oarg{options}\brackets{\meta{Nom}, \meta{Prénom}}}
+ Cette commande, facultative, définit un auteur d'article.
+\end{docCommand}
+%
+\begin{dbwarning}{Format des prénom et nom de l'auteur}{}
+ On veillera à ce que :
+ \begin{enumerate}
+ \item la saisie des prénom et nom de l'auteur soit conforme à la syntaxe
+ (identique à celle de \hologo{BibTeX} et \package{biblatex}) :
+ %
+\begin{bodycode}[listing options={showspaces}]
+"\meta{Nom}", "\meta{Prénom}"
+\end{bodycode}
+ %
+ \item les éventuels caractères diacritiques (accents, etc.) figurent dans les
+ \meta{Prénom} et \meta{Nom} ;
+ \item le \meta{Nom} \emph{ne} soit \emph{pas} saisi en capitales (sauf pour la
+ ou les majuscules)\footnote{Dans les articles en français, ce nom sera
+ automatiquement composé en petites capitales.}.
+ \end{enumerate}
+\end{dbwarning}
+
+\begin{dbremark}{Affichage des prénoms et noms du ou des auteurs}{}
+ Pour que les prénoms et noms du ou des auteurs soient affichés, il est
+ nécessaire de recourir à la commande habituelle \refCom{maketitle}.
+\end{dbremark}
+
+La commande \refCom{author} admet un argument optionnel permettant de spécifier
+la ou les affiliations de l'auteur au moyen d'une des clés \refKey{affiliation}
+et \refKey{affiliationtagged} suivantes.
+
+\begin{docKey}{affiliation}{={\oarg{tag}\marg{affiliation}}}{pas de valeur par défaut,
+ initialement vide}
+ Cette clé permet de définir une (unique) \meta{affiliation}. Pour un auteur
+ ayant plusieurs affiliations, cette clé est utilisée autant de fois que
+ nécessaire.
+
+ En outre, chaque affiliation peut recevoir un \meta{tag} en vue d'être
+ réutilisée pour un autre auteur.
+\end{docKey}
+
+\begin{docKey}{affiliationtagged}{={\marg{tag}}}{pas de valeur par défaut,
+ initialement vide}
+ Cette clé permet de spécifier une (unique) affiliation déjà définie et taguée
+ pour un auteur précédent.
+\end{docKey}
+
+% \begin{bodycode}
+% % Exemple où 2 auteurs partagent l'affiliation "\meta{affiliation$_3$}".
+% \author[%
+% affiliation="\marg{affiliation$_1$}",%
+% affiliation="\marg{affiliation$_2$}",%
+% affiliation="\oarg{tag de l'affiliation$_3$}\marg{affiliation$_3$}",%
+% ]{"\meta{Nom$_1$}", "\meta{Prénom$_1$}"}
+% \author[%
+% affiliationtagged="\oarg{tag de l'affiliation$_3$}",%
+% ]{"\meta{Nom$_2$}", "\meta{Prénom$_2$}"}
+% \end{bodycode}
+
+\begin{bodycode}[listing options={deletekeywords={author}}]
+\author[
+ affiliation={Laboratoire \textsc{sphere}, Université Paris Diderot}
+ ]{Bustamante, Martha-Cecilia}
+\author[
+ affiliation=[aff2]{\textsc{lpma}, Université Pierre et Marie Curie},
+ affiliation={\textsc{ghdso}, Université Paris-Sud}]{Cléry, Matthias}
+\author[
+ affiliationtagged={aff2}
+]{Mazliak, Laurent}
+\end{bodycode}
+
+\begin{dbwarning}{Paires d'accolades
+ % des clés \refKey{affiliation} et \refKey{minibio}
+ (relativement) obligatoires}{}
+ Au cas (probable) où une valeur \meta{affiliation} contienne une ou plusieurs
+ virgules, la paire d'accolades l'entourant est obligatoire.
+\end{dbwarning}
+
+\subsection{Résumé}
+\label{sec-resume}
+
+\begin{docEnvironment}[doc description=\mandatory,doclang/environment content=résumé]{abstract}{}
+ Cet environnement est destiné à recevoir le \meta{résumé} de l'article.
+\end{docEnvironment}
+
+\subsection{Mots clés}
+
+\begin{docCommand}[doc description=\mandatory]{keywords}{\marg{mot(s) clé(s)}}
+ Cette commande permet de spécifier le (ou les) \meta{mot(s) clé(s)} de
+ l'article sous la forme d'une liste séparée par des virgules.
+\end{docCommand}
+
+\subsection{\texorpdfstring{\acrfull{msc}}{MSC}}
+
+\begin{docCommand}[doc description=\mandatory]{msc}{\marg{\acrshort{msc}}}
+ Cette commande permet de spécifier le (ou les) \meta{\acrshort{msc}} de
+ l'article sous la forme d'une liste séparée par des virgules.
+\end{docCommand}
+
+\section{Production du titre de l'article}
+\label{sec-creation-du-titre}
+
+Le titre proprement dit de l'article, regroupant tous les éléments saisis à la
+\vref{sec-prep-de-lart}, est produit par la commande standard
+\refCom{maketitle}.
+
+\begin{docCommand}[doc description=\mandatory]{maketitle}{}
+ Cette commande \emph{produit} l'affichage du \enquote{titre} de l'article,
+ c'est-à-dire :
+ \begin{itemize}
+ \item son titre et son éventuel sous-titre (commandes \refCom{title} et
+ \refCom{subtitle}) ;
+ \item son ou ses auteurs, sous la forme de leurs noms et prénoms (commande(s)
+ \refCom{author}) et, en note de bas de page, leurs affiliations respectives ;
+ \item son éventuel résumé (environnement \refEnv{abstract}) ;
+ \item son ou ses mots clés (commande \refCom{keywords}) ;
+ \item son ou ses \acrshort{msc} (commande \refCom{msc}).
+ \end{itemize}
+\end{docCommand}
+
+\begin{bodycode}[listing options={deletekeywords={title,subtitle,author,keywords},deletekeywords={[2]{first}}}]
+\title[Le Traité du calcul des probabilités]{Le Traité du calcul des
+ probabilités et de ses applications}
+\subtitle[Étendue et limites d'un projet borélien]{Étendue et limites
+ d'un projet borélien de grande envergure (1921-1939)}
+%
+\author[
+ affiliation={Laboratoire \textsc{sphere}, Université Paris Diderot}
+ ]{Bustamante, Martha-Cecilia}
+\author[
+ affiliation=[aff2]{\textsc{lpma}, Université Pierre et Marie Curie},
+ affiliation={\textsc{ghdso}, Université Paris-Sud}]{Cléry, Matthias}
+\author[
+ affiliationtagged={aff2}
+]{Mazliak, Laurent}
+%
+\begin{abstract}
+ Cet article est consacré à l'étude détaillée du vaste projet [...]
+\end{abstract}
+%
+\keywords{Probabilités, statistiques, balistique, assurance, jeux,
+ Émile Borel, Institut Henri Poincaré}
+\msc{01A60, 01A74, 60-03, 60A05, 62-03}
+%
+\maketitle
+\end{bodycode}
+
+\section{Remerciements}
+\label{sec:remerciements}
+
+\begin{docCommand}{acknowledgements}{\marg{remerciements}}
+ Cette commande, facultative, permet de spécifier des \meta{remerciements} pour
+ un article.
+\end{docCommand}
+
+\begin{bodycode}[listing options={deletekeywords={author},deletekeywords={[2]{first,and}}}]
+\acknowledgments{%
+ The first author's research was supported by the Hungarian National
+ Science Foundation Grants K81658 and K104183. Research conducted
+ while the second author enjoyed the hospitality of the Alfréd Rényi
+ Institute of Mathematics, and benefited from the \textsc{otka}
+ grant K109789.%
+}
+\end{bodycode}
+
+\begin{dbremark}{Affichage des remerciements sur les auteurs}{}
+ Pour que les remerciements soient affichés, il est nécessaire de recourir à la
+ commande \refCom{printbibliography} destinée à être utilisée en fin d'article.
+\end{dbremark}
+
+\section{Bibliographie}
+\label{sec-bibliographie}
+
+Pour composer les bibliographies, la \nwejmauthorcl{} recourt aux outils
+modernes que sont le \Package*{biblatex} et le moteur \hologo{biber} dont
+l'usage peut être brièvement résumé comme suit\autocite[Pour plus de détails,
+cf. par exemple][en français]{Bitouze}.
+\begin{enumerate}
+\item Construire, dans un \meta{fichier bibliographique}\footnote{De tels
+ fichiers sont d'extension \file{.bib}.}, une base bibliographique.
+
+ Nous conseillons pour ce faire de recourir à un logiciel dédié, par exemple
+ \href{http://jabref.sourceforge.net/}{\program{JabRef}} à configurer en se
+ rendant dans le menu \menuentry{Options>Preferences} et, dans l'onglet :
+ \begin{itemize}
+ \item \menuentry{Général}\footnote{On pourra en profiter pour changer la langue de
+ l'interface dans la liste déroulante \menuentry{Language}.}, en choisissant
+ \menuentry{UTF8} dans la liste déroulante \menuentry{Default encoding} ;
+ \item \menuentry{Advanced}, en cochant l'option \menuentry{BibLaTeX mode} ;
+ \end{itemize}
+
+ On n'oubliera pas de donner à chaque référence bibliographique une \meta{clé}
+ permettant de l'identifier de façon unique dans la base
+ bibliographique\footnote{Sous \program{JabRef}, on pourra se faire aider pour
+ cela par l'icône en forme de \enquote{baguette magique} ou de clé.}.
+\item Dans le fichier source \file{.tex} :
+ \begin{enumerate}
+ \item \emph{En préambule}, utiliser la commande \docAuxCommand{addbibresource}
+ pour indiquer le \meta{fichier bibliographique} à considérer :
+\begin{preamblecode}
+\addbibresource{"\meta{fichier bibliographique}".bib}
+\end{preamblecode}
+ \item Dans le corps du document, utiliser la commande
+ \docAuxCommand{autocite}\footnote{De préférence à la commande
+ \docAuxCommand{cite}.}\footnote{La référence est alors détaillée en note
+ de bas de page.} ou, éventuellement, \docAuxCommand{textcite}\footnote{La
+ référence est alors affichée au fil du texte, mais avec moins de détails.}
+ du \Package*{biblatex} pour citer les références bibliographiques (pourvue
+ d'une \meta{clé}) :
+\begin{bodycode}
+\autocite{"\meta{clé}"}
+\textcite{"\meta{clé}"}
+\end{bodycode}
+ \item À la fin du document, faire figurer la liste des références
+ bibliographiques au moyen de la commande \refCom{printbibliography}.
+ \end{enumerate}
+\item Procéder à une suite de compilations \hologo{pdfLaTeX}, \hologo{biber} et
+ \hologo{pdfLaTeX}\footnote{Pour automatiser ces compilations, on pourra
+ recourir au \enquote{compilateur} \program{latexmk}, fourni par toute
+ distribution \TeX{} moderne, en s'aidant du fichier de configuration
+ \file{latexmkrc} joint à la présente classe.}.
+\end{enumerate}
+
+\begin{docCommand}{printbibliography}{}
+ Cette commande produit la liste des références bibliographiques saisies selon
+ la syntaxe du \Package*{biblatex}. Elle a été redéfinie de sorte
+ à automatiquement afficher, avant la liste des références, les éventuels
+ remerciements (commande \refCom{acknowledgements}).
+\end{docCommand}
+
+Par exemple, si le \File{.bib} contient :
+
+\begin{bodycode}[listing only,listing options={morekeywords={Book,Article}}]
+@Book{ har,
+ author = {Hartshorne, Robin},
+ title = {Algebraic geometry},
+ note = {Graduate Texts in Mathematics, No. 52},
+ publisher = {Springer-Verlag},
+ address = {New York},
+ year = {1977}
+}
+@Book{ laz1,
+ author = {Lazarsfeld, Robert},
+ title = {Positivity in algebraic geometry. {I}},
+ volume = {48},
+ note = {Classical setting: line bundles and linear series},
+ publisher = {Springer-Verlag},
+ address = {Berlin},
+ year = {2004}
+}
+@Article{ shin,
+ author = {Shin, Kil-Ho},
+ title = {{$3$}-dimensional {F}ano varieties with canonical
+ singularities},
+ journal = {Tokyo J. Math.},
+ volume = {12},
+ year = {1989},
+ number = {2},
+ pages = {375-385}
+}
+\end{bodycode}
+
+alors, le source \file{.tex} suivant :
+\begin{bodycode}[listing only,listing options={deletekeywords={[1]{theorem},[2]{first,and,see}}}]
+The first assertion is a direct consequence of the Riemann-Roch
+formula for threefolds\autocite[See e.g.][437]{har} and
+Kawamata-Viehweg vanishing\autocite[theorem~4.3.1]{laz1}. For the
+second assertion, see \textcite[theorem~(0.4)]{shin}.
+%
+\printbibliography
+\end{bodycode}
+
+donne le texte figurant dans l'encadré intitulé \enquote{Exemple de
+ bibliographie} \vpageref{biblio}.
+
+\begin{refsegment}
+ % \selectlanguage{english}
+\begin{bodycode}[text only,float,title={Exemple de bibliographie},label=biblio]
+The first assertion is a direct consequence of the Riemann-Roch formula for
+threefolds\autocite[See e.g.][437]{har} and Kawamata-Viehweg
+vanishing\autocite[theorem~4.3.1]{laz1}. For the second assertion, see
+\textcite[theorem~(0.4)]{shin}.
+%
+\printbibliography[segment=1]
+\end{bodycode}
+\end{refsegment}
+
+\section{Commandes propres aux mathématiques}
+\label{sec:comm-propr-aux}
+
+La \nwejmauthorcl{} :
+\begin{itemize}
+\item charge les packages :
+ \begin{itemize}
+ \item \package*{kpfonts} qui fournit tous les symboles standard, y compris
+ ceux du \Package{amssymb}, mais en propose également de nombreux autres ;
+ \item \package*{mathtools} qui lui-même charge \package*{amsmath} (mais en
+ l'étendant et en corrigeant certains de ses défauts), si bien que toutes les
+ commandes de ces deux packages sont disponibles ;
+ \item \package*{mathrsfs} qui fournit de jolies lettres calligraphiques (via
+ la commande \docAuxCommand{mathscr}) ;
+ \end{itemize}
+\item redéfinit certaines commandes et en fournit quelques nouvelles, listées
+ ci-dessous ;
+\item fournit (en s'appuyant sur les packages \package*{amsthm} et
+ \package*{thmtools}) des environnements de type \enquote{théorème} classiques,
+ listés ci-dessous.
+\end{itemize}
+
+\subsection{Constantes universelles et fonctions courantes}
+
+\begin{docCommand}{I}{}
+ Cette commande affiche l'unité imaginaire : \enquote{$\I$}.
+\end{docCommand}
+
+\begin{docCommand}{E}{\oarg{argument}}
+ Selon que son argument optionnel est utilisé ou pas, cette commande affiche :
+ \begin{itemize}
+ \item la fonction exponentielle appliquée à l'\meta{argument} ;
+ \item le nombre d'Euler \enquote{$\E$}.
+ \end{itemize}
+\end{docCommand}
+
+\begin{bodycode}[listing and text]
+\begin{align}
+ \E[\I\pi]+1 & = 0 \\
+ \E & = \sum_{n\geq 0} \frac{1}{n!}
+\end{align}
+\end{bodycode}
+
+\begin{dbremark}{Syntaxes équivalentes pour la fonction exponentielle}{}
+ Il y a équivalence entre les commandes :
+ \begin{itemize}
+ \item |\E[|\meta{argument}|]| qui est fournie par la classe ;
+ \item |\E^{|\meta{argument}|}| qui est plus habituelle.
+\end{itemize}
+\end{dbremark}
+
+\begin{docCommand}{log(*)}{}
+ Cette commande affiche, sous sa forme :
+ \begin{description}
+ \item[\emph{non} étoilée :] \enquote{$\log$} ;
+ \item[étoilée :] \enquote{$\log*$}.
+ \end{description}
+\end{docCommand}
+
+\begin{docCommand}{lg(*)}{}
+ Cette commande affiche, sous sa forme :
+ \begin{description}
+ \item[\emph{non} étoilée :] \enquote{$\lg$} ;
+ \item[étoilée :] \enquote{$\lg*$}.
+ \end{description}
+\end{docCommand}
+
+\subsection{Ensembles}
+
+\subsection{Ensembles courants}
+
+\begin{docCommand}{bbN}{}
+ Cette commande affiche l'ensemble des nombres entiers positifs :
+ \enquote{$\bbN$}.
+\end{docCommand}
+
+\begin{docCommand}{bbZ}{}
+ Cette commande affiche l'ensemble des nombres entiers relatifs :
+ \enquote{$\bbZ$}.
+\end{docCommand}
+
+\begin{docCommand}{bbD}{}
+ Cette commande affiche l'ensemble des nombres décimaux : \enquote{$\bbD$}.
+\end{docCommand}
+
+\begin{docCommand}{bbQ}{}
+ Cette commande affiche l'ensemble des nombres rationnels : \enquote{$\bbQ$}.
+\end{docCommand}
+
+\begin{docCommand}{bbR}{}
+ Cette commande affiche l'ensemble des nombres réels : \enquote{$\bbR$}.
+\end{docCommand}
+
+\begin{docCommand}{bbC}{}
+ Cette commande affiche l'ensemble des nombres complexes : \enquote{$\bbC$}.
+\end{docCommand}
+
+\begin{docCommand}{bbK}{}
+ Cette commande peut être utilisée pour dénoter un corps quelconque. Elle
+ affiche \enquote{$\bbK$}.
+\end{docCommand}
+
+\subsection{Ensembles définis}
+
+\begin{docCommand}{set}{\marg{définition}\oarg{caractérisation}}
+ Cette commande affiche l'ensemble défini par \meta{définition}, avec une
+ éventuelle \meta{caractérisation}\footnote{Partie suivant \enquote{tels
+ que}.}.
+\begin{bodycode}[listing and text]
+\begin{align}
+ \bbN & = \set{0,1,2,3,\dots} \\
+ \bbZ & = \bbN\cup\set{-n}[n\in\bbN] \\
+ \bbQ & = \set{p/q}[p\in\bbZ,\ q\in\bbN^*] \\
+ \bbQ & = \set{\frac{p}{q}}[p\in\bbZ,\ q\in\bbN^*]
+\end{align}
+\end{bodycode}
+\end{docCommand}
+
+\subsection[Fonctions trigonométriques circulaires et hyperboliques]{Fonctions
+ trigonométriques circulaires et hyperboliques, directes et réciproques}
+
+\begin{dbremark}{Commandes propres au français}{}
+ Les commandes de cette section ne sont définies (ou redéfinies) que pour les
+ articles en français.
+\end{dbremark}
+
+\begin{docCommand}{cot}{}
+ Cette commande affiche la cotangente : \enquote{$\cot$}. Elle a pour alias
+ \docAuxCommand{cotan}.
+\end{docCommand}
+
+\begin{docCommand}{arccos}{}
+ Cette commande affiche (la détermination principale de) l'arc cosinus :
+ \enquote{$\arccos$}.
+\end{docCommand}
+
+\begin{docCommand}{arcsin}{}
+ Cette commande affiche (la détermination principale de) l'arc sinus :
+ \enquote{$\arcsin$}.
+\end{docCommand}
+
+\begin{docCommand}{arctan}{}
+ Cette commande affiche (la détermination principale de) l'arc tangente :
+ \enquote{$\arctan$}.
+\end{docCommand}
+
+\begin{docCommand}{cosh}{}
+ Cette commande affiche le cosinus hyperbolique : \enquote{$\cosh$}. Elle a pour
+ alias \docAuxCommand{ch}.
+\end{docCommand}
+
+\begin{docCommand}{sinh}{}
+ Cette commande affiche le sinus hyperbolique : \enquote{$\sinh$}. Elle a pour
+ alias \docAuxCommand{sh}.
+\end{docCommand}
+
+\begin{docCommand}{tanh}{}
+ Cette commande affiche la tangente hyperbolique : \enquote{$\tanh$}.
+ \begin{dbremark}{Pas de commande \protect\docAuxCommand{th} pour la tangente hyperbolique}{}
+ La commande |\th| est déjà définie dans \LaTeX{} et ne peut donc pas être
+ utilisée pour la tangente hyperbolique.
+ \end{dbremark}
+\end{docCommand}
+
+\begin{docCommand}{arccosh}{}
+ Cette commande affiche l'argument cosinus hyperbolique :
+ \enquote{$\arccosh$}. Elle a pour alias \docAuxCommand{Argch}.
+\end{docCommand}
+
+\begin{docCommand}{arcsinh}{}
+ Cette commande affiche l'argument sinus hyperbolique :
+ \enquote{$\arcsinh$}. Elle a pour alias \docAuxCommand{Argsh}.
+\end{docCommand}
+
+\begin{docCommand}{arctanh}{}
+ Cette commande affiche l'argument tangente hyperbolique :
+ \enquote{$\arctanh$}. Elle a pour alias \docAuxCommand{Argth}.
+\end{docCommand}
+
+\subsection{Paires de délimiteurs}
+
+\subsubsection{Commandes prédéfinies}
+
+La classe offre un certain nombre de commandes listées dans le \vref{com-paired}
+facilitant la saisie de paires de délimiteurs courants, par exemple pour les
+normes, les valeurs absolues, etc.
+
+\begin{table}
+ \centering
+ \begin{tabular}{ll}
+ Commandes & Exemple \\\toprule
+ \docAuxCommand{norm} & $\norm{\cdot}$ \\\midrule
+ \docAuxCommand{lnorm} & $\lnorm{\cdot}$ \\\midrule
+ \docAuxCommand{llnorm} & $\llnorm{\cdot}$ \\\midrule
+ \docAuxCommand{lpnorm} & $\lpnorm{\cdot}$ \\\midrule
+ \docAuxCommand{supnorm} & $\supnorm{\cdot}$ \\\midrule
+ \docAuxCommand{abs} & $\abs{\cdot}$ \\\midrule
+ \docAuxCommand{prt} & $\prt{\cdot}$ \\\midrule
+ \docAuxCommand{brk} & $\brk{\cdot}$ \\\midrule
+ \docAuxCommand{brc} & $\brc{\cdot}$ \\\midrule
+ \docAuxCommand{leqgeq} & $\leqgeq{\cdot}$ \\\midrule
+ \docAuxCommand{lrangle} & $\lrangle{\cdot}$ \\\bottomrule
+ \end{tabular}
+ \caption{Commandes facilitant la saisie de paires de
+ délimiteurs courants}
+ \label{com-paired}
+\end{table}
+
+Ces commandes ayant toutes la même syntaxe, seule celle de la commande
+\docAuxCommand{norm} est détaillée.
+
+\begin{docCommand*}{norm}{\oarg{paramètre de taille}\marg{argument}}
+ Cette commande affiche la norme de l'\meta{argument}.
+
+ Par défaut, la hauteur des délimiteurs est automatiquement adaptée à celle de
+ l'\meta{argument} mais il est possible de spécifier en argument optionnel un
+ \meta{paramètre de taille} :
+ \begin{itemize}
+ \item \docValue{0} : taille par défaut du délimiteur\footnote{Taille du
+ délimiteur en mode texte.} ;
+ \item \docValue{1} ou \docAuxCommand{big} : taille du délimiteur plus grande
+ que la précédente ;
+ \item \docValue{2} ou \docAuxCommand{Big} : taille du délimiteur plus grande
+ que la précédente ;
+ \item \docValue{3} ou \docAuxCommand{bigg} : taille du délimiteur plus grande
+ que la précédente ;
+ \item \docValue{4} ou \docAuxCommand{Bigg} : taille du délimiteur plus grande
+ que la précédente.
+ \end{itemize}
+\end{docCommand*}
+
+\begin{docCommand}{norm*}{\marg{argument}}
+ Cette commande est équivalente à |\norm[0]{|\meta{argument}|}|.
+\end{docCommand}
+
+\begin{bodycode}[listing and text]
+\begin{equation}
+\supnorm{\frac{A}{2}}^k \quad
+\supnorm[0]{\frac{A}{2}}^k \quad
+\supnorm[1]{\frac{A}{2}}^k \quad
+\supnorm[2]{\frac{A}{2}}^k \quad
+\supnorm[3]{\frac{A}{2}}^k \quad
+\supnorm[4]{\frac{A}{2}}^k \quad
+\supnorm*{\frac{A}{2}}^k
+\end{equation}
+\end{bodycode}
+
+\begin{dbremark}{Indices des paires de délimiteurs qui n'en sont pas pourvues par défaut}{}
+ Il est toujours possible d'ajouter manuellement un indice à une commande de
+ paire de délimiteurs qui n'en est pas pourvue par défaut.
+\begin{bodycode}[listing and text]
+\begin{equation}
+\norm{\frac{A}{2}}_3
+\end{equation}
+\end{bodycode}
+\end{dbremark}
+
+\subsubsection{Commandes à définir}
+
+Il est possible de définir de nouvelles commandes facilitant la saisie de paires
+de délimiteurs au moyen de la commande \refCom{NewPairedDelimiter}.
+%
+\begin{docCommand}{NewPairedDelimiter}{\marg{commande}\marg{options}}
+ Cette commande définit une \meta{commande} similaire à la commande
+ \docAuxCommand{norm} mais dont les délimiteurs gauche et droit et l'indice
+ sont ceux spécifiés en \meta{options} au moyen des clés \refKey{left},
+ \refKey{right} et \refKey{subscript}.
+ \begin{docKey}{left}{=\meta{délimiteur}}{pas de valeur par défaut,
+ initialement vide}
+ Cette clé permet de spécifier le délimiteur gauche de la \meta{commande}
+ créée par \refCom{NewPairedDelimiter}.
+ \end{docKey}
+ \begin{docKey}{right}{=\meta{délimiteur}}{pas de valeur par défaut,
+ initialement vide}
+ Cette clé permet de spécifier le délimiteur droit de la \meta{commande}
+ créée par \refCom{NewPairedDelimiter}.
+ \end{docKey}
+ \begin{docKey}{subscript}{=\meta{indice}}{pas de valeur par défaut,
+ initialement vide}
+ Cette clé permet de spécifier l'indice de la \meta{commande} créée par
+ \refCom{NewPairedDelimiter}.
+ \end{docKey}
+\end{docCommand}
+
+\NewPairedDelimiter{\floor}{
+ left=\lfloor,
+ right=\rfloor,
+ subscript=\text{eff}
+}
+\begin{preamblecode}
+\NewPairedDelimiter{\floor}{
+ left=\lfloor,
+ right=\rfloor,
+ subscript=\text{eff}
+}
+\end{preamblecode}
+\begin{bodycode}[listing and text]
+\begin{equation}
+\floor{\frac{A}{2}}
+\end{equation}
+\end{bodycode}
+
+\subsection{Opérateurs}
+
+\subsubsection{Opérateurs prédéfinis}
+
+\begin{docCommand}{dif}{}
+ Cette commande affiche l'opérateur différentiel employé notamment dans les
+ intégrales : \enquote{$\dif$}.
+\begin{bodycode}[listing and text]
+\begin{equation}
+\iiint_T f(x,y,z)\dif x \dif y \dif z=0
+\end{equation}
+\end{bodycode}
+\end{docCommand}
+
+\begin{docCommand}{grad}{}
+ Cette commande affiche le gradient :
+ \begin{itemize}
+ \item sous la forme \enquote{$\grad$} par défaut ;
+ \item sous la forme \enquote{$\nabla$} si la valeur \docValue{nabla} est
+ passée à la clé \refKey{gradient} en argument de la commande
+ \refCom{articlesetup}.
+ \end{itemize}
+ \begin{docKey}{gradient}{=\docValue{grad}\textbar\docValue{nabla}}{pas
+ de valeur par défaut, initialement \docValue{grad}}
+ Cette clé permet de spécifier la façon dont est affiché le gradient grâce
+ à la commande \refCom{grad}.
+ \end{docKey}
+\end{docCommand}
+
+\begin{docCommand}{Div}{}
+ Cette commande affiche la divergence : \enquote{$\Div$}.
+ \begin{dbremark}{Pas de commande \protect\docAuxCommand{div} pour la divergence}{}
+ La commande |\div| est déjà définie dans \LaTeX{} et ne peut donc pas être
+ utilisée pour la divergence.
+ \end{dbremark}
+\end{docCommand}
+
+\begin{docCommand}{curl}{}
+ Cette commande affiche le rotationnel :
+ \enquote{$\curl$}. Elle a pour alias \docAuxCommand{rot}.
+\end{docCommand}
+
+\begin{bodycode}[listing and text]
+\begin{align}
+ \Div F & = \grad \cdot F \\
+ \curl F & = \grad \wedge F
+\end{align}
+\end{bodycode}
+
+\begin{docCommand}{supp}{}
+ Cette commande affiche le support (d'une fonction, d'une mesure, etc.) :
+ \enquote{$\supp$}.
+\end{docCommand}
+
+\subsubsection{Opérateurs à définir}
+
+Il est possible de définir de nouveaux noms d'opérateurs au moyen de la commande
+usuelle \refCom{DeclareMathOperator}.
+
+\begin{docCommand}{DeclareMathOperator}{\marg{commande}\marg{nom}}
+ Cette commande définit la \meta{commande} qui affiche l'opérateur nommé
+ \meta{nom}.
+\end{docCommand}
+
+\begin{preamblecode}
+\DeclareMathOperator{\cat}{Cat}
+\end{preamblecode}
+\begin{bodycode}[listing and text,listing options={deletekeywords={[1]{example}},deletekeywords={[2]{all}}}]
+A standard example is $\cat$, the $2$-category of all (small)
+categories.
+\end{bodycode}
+
+\subsubsection{(Usage avancé) Précautions en cas d'opérations binaires non
+ courantes}
+
+Si, dans des opérations binaires, un opérateur\footnote{Prédéfini ou défini au
+ moyen de la commande \protect\refCom{DeclareMathOperator}.} est suivi par un
+opérateur binaire courant de \LaTeX{} (\docAuxCommand{circ},
+\docAuxCommand{cdot}, \docAuxCommand{wedge}, etc.), les espaces horizontales les
+séparant seront correctes.
+
+En revanche, si l'opérateur binaire impliqué n'est pas courant, il convient de
+le déclarer au moyen de la commande \refCom{BinaryOperators}.
+
+\begin{docCommand}{BinaryOperators}{\marg{opérateurs binaires}}
+ Cette commande assure que les \meta{opérateurs binaires}\footnote{Séparés par
+ des virgules.} seront, dans des opérations binaires, correctement espacés
+ des opérateurs les précédant.
+\end{docCommand}
+
+\begin{preamblecode}
+\newcommand{\mybinop}{\mathbin{@}}
+\end{preamblecode}
+\begin{bodycode}[listing and text]
+\begin{tabular}{l@{ : }l}
+ $\grad \cdot F$ & bon \\
+ $\grad \mybinop F$ & mauvais \\
+ \BinaryOperators{\mybinop}%
+ $\grad \mybinop F$ & bon (grâce à \verb|\BinaryOperators{\mybinop}|)
+\end{tabular}
+\end{bodycode}
+
+\subsection{Divers}
+
+\begin{dbremark}{Commandes propres au français (bis)}{}
+ Les commandes suivantes ne sont définies redéfinies que pour les articles en
+ français.
+\end{dbremark}
+
+\begin{docCommand}{leq}{}
+ Cette commande affiche \enquote{$\leq$}.
+\end{docCommand}
+\begin{docCommand}{geq}{}
+ Cette commande affiche \enquote{$\geq$}.
+\end{docCommand}
+
+\subsection{Environnements de type \enquote{théorème}}
+
+Pour faciliter la composition des théorèmes et objets analogues, la
+\nwejmauthorcl{} fournit des environnements prêts à l'emploi et permet d'en
+créer de nouveaux si besoin est (cf. commande \refCom{newtheorem}).
+
+\subsubsection{Environnements de type \enquote{théorème} prédéfinis}
+\label{sec:envir-de-type}
+
+Le \vref{env-theorems} liste les théorèmes et objets analogues prédéfinis par la
+\nwejmauthorcl{} avec :
+\begin{description}
+\item[en colonne~1] le nom des environnements correspondants ;
+\item[en colonne~2] leurs titres récurrents (automatiquement traduits dans la
+ langue de l'article).
+\end{description}
+
+\begin{table}
+ \centering
+ \begin{tabular}{ll}
+ Environnement & Titre (ici en français) \\\toprule
+ \docAuxEnvironment{theorem} & Théorème \\\midrule
+ \docAuxEnvironment{corollary} & Corollaire \\\midrule
+ \docAuxEnvironment{conjecture} & Conjecture \\\midrule
+ \docAuxEnvironment{proposition} & Proposition \\\midrule
+ \docAuxEnvironment{lemma} & Lemme \\\midrule
+ \docAuxEnvironment{axiom} & Axiome \\\midrule[.75pt]
+ \docAuxEnvironment{definition} & Définition \\\midrule
+ \docAuxEnvironment{remark} & Remarque \\\midrule
+ \docAuxEnvironment{example} & Exemple \\\midrule
+ \docAuxEnvironment{notation} & Notation \\\midrule[.75pt]
+ \docAuxEnvironment{proof} & Preuve \\\bottomrule
+ \end{tabular}
+ \caption{Environnements de type \enquote{théorème} fournis}
+ \label{env-theorems}
+\end{table}
+
+\begin{dbremark}{\enquote{Théorèmes} non numérotés}{}
+ Chacun des environnements du \vref{env-theorems} admet une version étoilée
+ créant une version non numérotée de l'objet de type \enquote{théorème}
+ correspondant.
+\end{dbremark}
+
+\begin{bodycode}[listing and text]
+\begin{theorem}
+ Tout espace métrisable séquentiellement compact est compact.
+\end{theorem}
+\begin{definition}[congruence modulo $n$]
+ Soit $n$ un entier supérieur ou égal à $2$. Deux entiers $a$ et $b$
+ sont dits congruents modulo $n$ si $a - b \in n\bbZ$
+\end{definition}
+\begin{remark*}
+ Une des plus belles relations mathématiques est :
+ \[
+ e^{i\pi}+1=0.
+ \]
+\end{remark*}
+\begin{proof}
+ Tout ce qui est rare est cher. Or un cheval bon marché est rare.
+ Donc un cheval bon marché est cher.
+\end{proof}
+\end{bodycode}
+
+On remarque dans l'exemple précédent que les \enquote{théorèmes} ont des mises
+en forme variables. La \nwejmauthorcl{} fournit effectivement trois styles de
+\enquote{théorèmes}, \docValue{theorem}, \docValue{definition} et
+\docValue{proof}, dont les caractéristiques sont indiquées au
+\vref{env-theorems-styles}.
+
+\begin{table}
+ \centering
+ \setlength{\tymin}{\widthof{romain, terminé}}
+ \begin{tabulary}{\linewidth}{LLLL}
+Style & Titre récurrent & Contenu & \enquote{Théorèmes} concernés \\\toprule
+\docValue{theorem} & gras, romain, numéroté & italique
+ & théorèmes, corollaires, conjectures, propositions, lemmes, axiomes \\\midrule
+\docValue{definition} & gras, romain, numéroté & romain & définitions, remarques, exemples, notations \\\midrule
+\docValue{proof} & non gras, italique, non numéroté & romain, terminé par un carré blanc & preuves \\\bottomrule
+ \end{tabulary}
+ \caption{Styles de \enquote{théorèmes} fournis}
+ \label{env-theorems-styles}
+\end{table}
+
+\subsubsection{Environnements de type \enquote{théorème} personnels}
+\label{sec:envir-de-type-1}
+
+Si les environnements de \enquote{théorème} fournis par la classe ne suffisent
+pas, la commande \refCom{newtheorem} permet d'en créer de nouveaux.
+
+\begin{docCommand}{newtheorem}{\oarg{option(s)}\marg{nom}}
+ Cette commande crée un nouvel environnement \LaTeX{}, \meta{nom}, destiné à la
+ composition d'un \enquote{théorème} dont, par défaut :
+ \begin{itemize}
+ \item le titre récurrent est \meta{Nom}\footnote{\Ie*{}, quelle que soit la
+ langue de l'article, le \meta{nom} de l'environnement \LaTeX{} dont
+ l'initiale est en majuscule.} ;
+ \item le style est \docValue{theorem}.
+ \end{itemize}
+ Cette commande crée également l'environnement étoilé \meta{nom}|*| produisant
+ des occurrences \emph{non} numérotées de ce \enquote{théorème}.
+
+ Si les valeurs par défaut du titre récurrent (\meta{Nom}) ou du style
+ (\docValue{theorem}) ne conviennent pas, il suffit spécifier celles souhaitées
+ en \meta{option(s)} au moyen des clés \refKey{title} et \refKey{style}
+ suivantes.
+ \begin{docKey}{title}{={\meta{titre récurrent}}}{pas de
+ valeur par défaut, initialement vide}
+ Cette clé permet de spécifier un \meta{titre récurrent} différent de
+ \meta{Nom}, valable quelle que soit la langue de l'article.
+ \end{docKey}
+ \begin{docKey}{style}{=\docValue{theorem}\textbar\docValue{definition}\textbar\docValue{proof}}{pas
+ de valeur par défaut,\\initialement \docValue{theorem}}
+ Cette clé permet de spécifier le style du \enquote{théorème} à créer, au
+ moyen des valeurs \docValue{theorem}, \docValue{definition} et
+ \docValue{proof}.
+ \end{docKey}
+
+ Si besoin est, il est même possible de spécifier des titres récurrents
+ différents selon la langue utilisée au moyen des clés suivantes :
+ \begin{docKey}{title/english}{={\meta{titre récurrent en anglais}}}{pas de
+ valeur par défaut,\\initialement vide}
+ \end{docKey}
+ \begin{docKey}{title/french}{={\meta{titre récurrent en français}}}{pas de
+ valeur par défaut,\\initialement vide}
+ \end{docKey}
+ \begin{docKey}{title/german}{={\meta{titre récurrent en allemand}}}{pas de
+ valeur par défaut,\\initialement vide}
+ \end{docKey}
+ \begin{docKey}{title/dutch}{={\meta{titre récurrent en néerlandais}}}{pas de
+ valeur par défaut,\\initialement vide}
+ Ces clés permettent de spécifier un \meta{titre récurrent} différent
+ de \meta{Nom} pour la langue correspondante.
+ \end{docKey}
+
+\begin{preamblecode}[listing options={deletekeywords={[1]{title,subtitle,definition}},morekeywords={[2]{title,subtitle}},morekeywords={[3]{definition}}}]
+\newtheorem{article}
+\newtheorem[title/french=Fait,style=definition]{fact}
+\end{preamblecode}
+\begin{bodycode}[listing and text]
+\begin{article}[dit premier]
+Les hommes naissent et demeurent libres et égaux en droits [...]
+\end{article}
+\begin{fact*}
+Tout ce qui est rare est cher.
+\end{fact*}
+\begin{fact}
+Un cheval bon marché est rare.
+\end{fact}
+\end{bodycode}
+\end{docCommand}
+
+\subsection{Listes d'hypothèses ou d'assertions}
+\label{sec:list-dhyp-ou}
+
+Dans les articles en mathématiques, il est fréquent que les auteurs aient
+à lister des assertions ou des hypothèses et à s'y référer. Pour ce faire, la
+\nwejmauthorcl{} fournit deux environnements qui s'emploient comme l'habituel
+environnement \docAuxEnvironment{enumerate} de listes ordonnées (numérotées) :
+\refEnv{assertions} et \refEnv{hypotheses}, dans lesquels chaque assertion ou
+hypothèse est introduite par la commande \docAuxCommand{item}.
+
+\begin{docEnvironment}[doclang/environment content=assertions]{assertions}{}
+ Cet environnement compose une liste d'assertions.
+\end{docEnvironment}
+\begin{docEnvironment}[doclang/environment content=hypothèses]{hypotheses}{}
+ Cet environnement compose une liste d'hypothèses.
+\end{docEnvironment}
+
+\begin{bodycode}[listing and text,listing options={deletekeywords={[1]{label}}}]
+\begin{axiom}\label{mon-axiom}
+ Chaque assertion suivante est admise.
+ \begin{assertions}
+ \item\label{rare-cher} Tout ce qui est rare est cher.
+ \item\label{cheval} Un cheval bon marché est rare.
+ \end{assertions}
+\end{axiom}
+En vertu des \vref{rare-cher,cheval} de l'\vref{mon-axiom},
+un cheval bon marché est cher.
+\end{bodycode}
+
+\section{Commandes généralistes}
+\label{sec:comm-gener}
+
+En plus des commandes propres aux mathématiques, la \nwejmauthorcl{} fournit des
+commandes généralistes destinées à faciliter la saisie d'un article à paraître
+dans la \nwejm{}.
+
+\begin{docCommand}{ie(*)}{}
+ Cette commande affiche l'expression \enquote{\ie*{}} traduite dans la langue
+ de l'article, sous sa forme :
+ \begin{description}
+ \item[\emph{non} étoilée :] en version abrégée \enquote{\ie{}} ;
+ \item[étoilée :] en version \emph{non} abrégée \enquote{\ie*{}}.
+ \end{description}
+\end{docCommand}
+
+\begin{docCommand}{Ie(*)}{}
+ Cette commande affiche l'expression \enquote{\Ie*{}} traduite dans la langue
+ de l'article, sous sa forme :
+ \begin{description}
+ \item[\emph{non} étoilée :] en version abrégée \enquote{\Ie{}} ;
+ \item[étoilée :] en version \emph{non} abrégée \enquote{\Ie*{}}.
+ \end{description}
+\end{docCommand}
+
+\begin{docCommand}{century(*)}{\marg{numéro}}
+ Cette commande affiche l'ordinal du \meta{numéro}\footnote{Ce numéro doit être
+ un nombre entier non nul, le cas échéant négatif.}\footnote{En français et en
+ allemand, \meta{numéro} est composé en chiffre romain et en petites
+ capitales.} d'un siècle, suivi du mot \enquote{siècle} traduit dans la
+ langue de l'article et de la mention éventuelle qu'il s'agit d'un siècle
+ précédant notre ère. Ainsi :
+\begin{bodycode}[listing and text]
+Au \century{-1}, [...]. Plus tard, au \century{8}, [...]
+\end{bodycode}
+ Sa version étoilée n'affiche que l'ordinal (sauf si le \meta{numéro} est
+ négatif). Ainsi :
+\begin{bodycode}[listing and text]
+L'agriculture au \century*{-1} était [...].
+La poésie du \century*{19} aura marqué [...]
+\end{bodycode}
+\end{docCommand}
+
+\begin{docCommand}{aside(*)}{\marg{texte}}
+ Cette commande permet de composer du \meta{texte} entre tirets longs, pour une
+ \enquote{incise} (un peu à la manière de parenthèses).
+ \begin{description}
+ \item[Sous sa forme non étoilée,] elle insère le \meta{texte} entre deux
+ tirets longs.
+ \item[Sous sa forme étoilée,] elle fait (seulement) précéder le \meta{texte}
+ d'un tiret, ce qui est à utiliser en fin de phrase.
+ \end{description}
+ Ainsi :
+\begin{bodycode}[listing and text]
+Des expériences \aside{dans le monde \enquote{réel}} ont même été
+suscitées par des expériences numériques.
+\end{bodycode}
+ et :
+\begin{bodycode}[listing and text,listing options={deletekeywords={exemple}}]
+On soupçonne que non \aside*{par exemple on s'attend à ce que
+ $1/\pi$ ne soit pas une période}.
+\end{bodycode}
+\end{docCommand}
+
+\begin{docCommand}{nwejm}{}
+ Cette commande affiche, sous sa forme :
+ \begin{description}
+ \item[\emph{non} étoilée :] la version abrégée \enquote{\nwejm} ;
+ \item[étoilée :] la version \emph{non} abrégée \enquote{\nwejm*}.
+ \end{description}
+\end{docCommand}
+
+\section{Sélection d'outils fournis par des packages tiers}
+
+Cette section donne une liste d'outils (commandes et environnements) fournis par
+des packages automatiquement chargés par la \nwejmauthorcl\footnote{La
+ \vref{sec-packages-charges-ou-pas} liste ceux dont les fonctionnalités peuvent
+ être utiles aux auteurs.}.
+
+\begin{dbwarning}{Liste des fonctionnalités des packages tiers non exhaustive}{}
+ Cette liste est \emph{non exhaustive} :
+ \begin{itemize}
+ \item seule une infime partie des packages existants est chargée par la
+ classe ;
+ \item seuls certains packages chargés par la classe sont cités ;
+ \item seules certaines fonctionnalités des packages cités sont décrites. Le
+ lecteur souhaitant en savoir davantage est invité à lire la documentation de
+ ces packages.
+ \end{itemize}
+\end{dbwarning}
+
+\subsection{Références croisées}
+\label{sec-references-croisees}
+
+Le \Package*{cleveref}, utilisé conjointement avec le \Package*{varioref}, rend la
+commande \refCom{vref} de ce dernier très puissante.
+
+\begin{docCommand}{vref}{\marg{label}}
+ Cette commande affiche le numéro d'un objet\footnote{Section, équation,
+ théorème, figure, tableau, etc.} labellisé par la commande
+ \lstinline[deletekeywords={label}]+\label{+\meta{label}|}| et :
+ \begin{itemize}
+ \item affiche (ou pas selon le contexte) le numéro de la page où se situe cet
+ objet\footnote{Fonctionnalité fournie par le \Package{varioref}.} ;
+ \item détecte la nature de cet objet et fait précéder le numéro de celui-ci du
+ mot clé correspondant\footnote{Fonctionnalité fournie par le
+ \Package{cleveref}.} automatiquement traduit dans la langue de
+ l'article\footnote{Fonctionnalité fournie par la \nwejmauthorcl.} ;
+ \item fait de la référence à l'objet (numéro et éventuel numéro de page) un
+ lien hypertexte vers l'objet\footnote{Fonctionnalité fournie par le
+ \Package{hyperref}.}.
+ \end{itemize}
+\begin{bodycode}[listing and text]
+[...] on se reportera à la \vref{sec-canevas-de-fichier} pour un
+canevas de fichier source [...]
+\end{bodycode}
+\end{docCommand}
+
+% \begin{dbremark}{\docAuxCommand{ref} et \docAuxCommand{eqref} : clones de \protect\refCom{vref}}{}
+% Les traditionnelles commandes \docAuxCommand{ref} et \docAuxCommand{eqref} ont
+% été redéfinies par la \nwejmauthorcl pour fonctionner de façon identique
+% à \refCom{vref}.
+% \end{dbremark}
+
+\subsection{\enquote{Équations} (non-)numérotées}
+\label{sec:equat-non-numer}
+
+Pour les \enquote{équations}, le \Package*{amsmath} fournit les environnements
+mathématiques :
+\begin{itemize}
+\item |equation|, |align|, |gather|, |multline| et |flalign| qui numérotent
+ leur contenu ;
+\item |equation*|, |align*|, |gather*|, |multline*| et |flalign*| qui \emph{ne}
+ numérotent \emph{pas} leur contenu ;
+\end{itemize}
+les premiers étant à utiliser si (et seulement si, théoriquement) les contenus
+correspondants font l'objet de références croisées.
+
+Avoir à choisir entre les versions étoilées ou pas présente au moins deux
+inconvénients pour l'utilisateur :
+\begin{enumerate}
+\item cela l'oblige à se poser à chaque fois la question de la
+ numérotation de son équation ;
+\item son choix peut ultérieurement s'avérer caduc\footnote{Et donc nécessiter
+ de passer par exemple d'un environnement étoilé à un non-étoilé \aside*{donc
+ avec ajout d'un label}.}
+\end{enumerate}
+Pour pallier cela, le \Package{autonum} :
+\begin{enumerate}
+\item permet de ne recourir qu'aux environnements non-étoilés ;
+\item assure automatiquement que les \enquote{équations} effectivement
+ numérotées seront celles, et seulement celles, s'avérant faire l'objet de
+ références croisées au sein du document.
+\end{enumerate}
+
+\begin{bodycode}[listing and text,listing options={deletekeywords={label}}]
+L'\vref{euler-identy} mérite une référence croisée.
+\begin{equation}\label{euler-identy}
+ \E[\I\pi]+1=0
+\end{equation}
+C'est bien la seule ici.
+\begin{equation}\label{not-interesting}
+ 0=0
+\end{equation}
+Malheureusement.
+\begin{equation}
+ 1=1
+\end{equation}
+\end{bodycode}
+
+\subsection{Acronymes}
+\label{sec:acronymes}
+
+Il est fréquent que des acronymes doivent figurer dans un article de
+mathématiques et le \Package{glossaries} propose pour cela une fonctionnalité
+à la fois très efficace et très simple : il suffit de recourir à ses commandes :
+\begin{description}
+\item[\refCom{newacronym}] pour \emph{définir} un acronyme :
+\item[\refCom{gls} (ou \refCom{acrshort})] pour \emph{afficher} un acronyme.
+\end{description}
+
+\begin{docCommand}{newacronym}{\marg{clé}\marg{forme courte}\marg{forme longue}}
+ Cette commande, à utiliser de préférence en préambule, définit un acronyme
+ où :
+ \begin{enumerate}
+ \item \meta{clé} identifie l'acronyme de manière unique dans le
+ document\footnote{À l'auteur de veiller à ne pas utiliser deux fois la même
+ clé pour identifier des acronymes distincts.} ;
+ \item \meta{forme courte} est l'acronyme en lui-même ;
+ \item \meta{forme longue} est la signification de l'acronyme.
+ \end{enumerate}
+\begin{dbwarning}{Forme courte des acronymes : en bas de casse}{}
+ La \meta{forme courte} d'un acronyme est à saisir exclusivement en bas de
+ casse (en minuscules) car elle sera en fait composée en petites capitales.
+\end{dbwarning}
+\end{docCommand}
+
+\begin{docCommand}{gls}{\marg{clé}}
+ Cette commande affiche l'acronyme identifié par \marg{clé} selon le principe
+ suivant :
+ \begin{enumerate}
+ \item la 1\iere{} occurrence de cette commande dans le document affiche
+ l'acronyme sous sa forme \emph{complète}, \ie*{} sa \meta{forme longue}
+ suivie de sa \meta{forme courte} entre parenthèses ;
+ \item les occurrences suivantes affichent l'acronyme uniquement sous
+ \meta{forme courte}.
+ \end{enumerate}
+\end{docCommand}
+
+\begin{preamblecode}
+\newacronym{bap}{bap}{bounded approximation property}
+\end{preamblecode}
+\begin{bodycode}[listing and text]
+\begin{enumerate}
+\item \gls{bap},
+\item \gls{bap}.
+\end{enumerate}
+\end{bodycode}
+
+\begin{docCommand}{acrshort}{\marg{clé}}
+ Cette commande affiche la \meta{forme courte} (seule) de l'acronyme, quel que
+ soit le contexte\footnote{\Ie*{} même si c'est la 1\iere{} fois que l'acronyme
+ est utilisé dans le document.}.
+\end{docCommand}
+
+\begin{dbremark}{Commande \refCom{acrshort} : utile dans un titre}{}
+ La commande \refCom{acrshort} peut être utile notamment dans le titre d'un
+ article où l'on ne souhaite pas que soit détaillée la forme complète d'un
+ acronyme.
+\end{dbremark}
+
+Le \Package*{glossaries} fournit bien d'autres commandes et offre bien d'autres
+fonctionnalités\autocite[Pour plus de détails, cf. par exemple][]{Bitouze7}.
+
+\subsection{Guillemets, citations}
+\label{sec-guillemets-citations}
+
+Le \Package*{csquotes} est dédié aux citations, formelles et informelles,
+d'extraits de textes. Il propose notamment la commande \refCom{enquote}
+suivante, simple d'emploi.
+
+\begin{docCommand}{enquote}{\marg{texte}}
+ Cette commande compose le \meta{texte} entre guillemets, automatiquement
+ adaptés :
+ \begin{itemize}
+ \item aux standards typographiques de la langue en cours. On pourra donc
+ l'utiliser dès que du texte est à mettre entre guillemets ;
+ \item au niveau (1 ou 2) de \enquote{citation} en cas d'emboîtement. On
+ pourra donc également l'utiliser dès que du texte est à citer de façon
+ informelle.
+ \end{itemize}
+\begin{bodycode}[listing and text]
+Il lui répondit : \enquote{Courteline disait: \enquote{Passer
+ pour un idiot aux yeux d'un imbécile est une volupté de fin
+ gourmet.}}
+\end{bodycode}
+\end{docCommand}
+
+\begin{docCommand}{blockcquote}{\marg{clé}\marg{extrait}}
+ Cette commande permet de citer un \meta{extrait} de façon
+ formelle\footnote{\Ie*{} avec précision de la source.}, la référence
+ bibliographique correspondante devant figurer dans un des fichiers \file{.bib}
+ ajoutés\footnote{Au moyen de la commande \docAuxCommand{addbibresource}} et
+ y étant identifiée par la clé \meta{clé}.
+
+\begin{bodycode}[listing and text]
+\citeauthor{Bitouze} précise que :
+\blockcquote{Bitouze}{%
+ \textins{Cette} commande compose les citations en détachant
+ automatiquement du paragraphe courant celles qui sont
+ longues\footnote{Par défaut, ce sont celles
+ dépassant 3~lignes.}.%
+}.
+\end{bodycode}
+\end{docCommand}
+
+La commande \refCom{blockcquote} admet des arguments optionnels permettant
+d'ajouter du texte \meta{antérieur} et/ou \meta{postérieur} à la citation
+d'extrait\autocite[Pour plus de détails, cf. par exemple][]{Bitouze}.
+
+% (\textsc{À suivre...})
+
+\subsection{Adresses Web (\texorpdfstring{\acrshort{url}}{URL})}
+\label{sec-url}
+
+Le \Package*{hyperref} fournit (entre autres) la commande \refCom{url} qui
+permet de facilement afficher des adresses Web, aussi appelées
+\enquote{\gls{url}}, même si elles comportent des caractères spéciaux de \TeX{}
+(|#|,
+%
+\lstinline[commentstyle={}]+%+,
+%
+|_|, |~|, |&|, etc.) : ces caractères peuvent donc être saisis tels quels, sauf
+si la commande \refCom{url} est utilisée dans l'argument d'une autre
+commande\footnote{Par exemple \protect\docAuxCommand*{foonote}.} auquel cas les
+caractères |#| et
+%
+\lstinline[commentstyle={}]+%+
+%
+sont alors à faire précéder de la commande \enquote{d'échappement} |\|
+(contre-oblique).%
+
+\begin{docCommand}{url}{\marg{adresse Web}}
+ Cette commande affiche l'\meta{adresse Web} saisie \emph{telle quelle} et fait
+ d'elle un lien hypertexte.
+\begin{bodycode}[listing and text,listing options={deletekeywords={url,math,nwejm,exemple,pdf}}]
+Nous renvoyons aux instructions aux auteurs sur notre site Web
+\url{http://math.univ-lille1.fr/~nwejm/#Authors}.
+\end{bodycode}
+\end{docCommand}
+
+\subsection{Listes en ligne}
+\label{sec:listes-en-ligne}
+
+Le lecteur est certainement familier des environnements
+\docAuxEnvironment{itemize}, \docAuxEnvironment{enumerate} et
+\docAuxEnvironment{description} permettant de créer des listes respectivement
+non ordonnées\footnote{\enquote{À puces}.}, ordonnées\footnote{\Ie*{}
+ numérotées} et \enquote{de description}. Le \Package*{enumitem} fournit des
+versions étoilées de ces environnements qui composent ces listes \enquote{en
+ ligne}, c'est-à-dire au sein d'un même paragraphe\footnote{Le but premier de
+ ce package est de personnaliser les listes mais cela est déconseillé dans le
+ cadre du \nwejm{} car cela pourrait contrevenir à la marche typographique
+ qu'il a adoptée.}.
+
+\begin{docEnvironment}[doclang/environment content=liste]{itemize*}{}
+ Cet environnement compose une liste \enquote{à puces} en ligne.
+\end{docEnvironment}
+\begin{docEnvironment}[doclang/environment content=liste]{enumerate*}{}
+ Cet environnement compose une liste \enquote{numérotée} en ligne.
+\end{docEnvironment}
+\begin{docEnvironment}[doclang/environment content=liste]{description*}{}
+ Cet environnement compose une liste \enquote{de description} en ligne.
+\end{docEnvironment}
+
+\begin{bodycode}[listing and text,listing options={deletekeywords={url,math,url,pages}}]
+\begin{enumerate}
+\item Les données que j’ai rassemblées [...]
+\item Les données que j’ai recueillies sont
+ \begin{enumerate*}
+ \item disponibles publiquement sur internet : pages Web et CV des
+ conférenciers ;
+ \item accessibles par Wikipédia, par le précieux
+ \enquote{mathematics genealogy project}
+ (\url{http://genealogy.math.ndsu.nodak.edu/}) ;
+ \item pour 60 des conférenciers pour lesquelles mes informations
+ étaient trop lacunaires, [...].
+ \end{enumerate*}
+\end{enumerate}
+\end{bodycode}
+
+\section{Canevas de fichier source typique}
+\label{sec-canevas-de-fichier}
+
+Le lecteur souhaitant écrire un article pour le \nwejm*{} trouvera ci-dessous un
+canevas de fichier source qui est un modèle typique d'article standard où les
+commandes et environnement moins fréquents ont été mis en commentaire. Il est
+attaché au fichier \file{PDF} de la présente documentation\footnote{Il peut
+ également être copié-collé : la plupart des afficheurs \textsc{pdf}
+ permettent de sélectionner et de copier du texte.}.
+%
+\newcommand{\attachfilename}{template.tex}%
+\newcommand{\attachfiletextlink}{Canevas de fichier source typique}%
+\tcbinputlisting{%
+ samples,
+ fontupper=\scriptsize\ttfamily,
+ listing only,
+ listing file=../examples/\attachfilename,
+ title={\attachfiletextlink\ \attachfile{../examples/\attachfilename}},%
+ listing options={deletekeywords={title,subtitle,author,keywords},deletekeywords={[2]{first}}}
+}
+
+\iffalse
+%%% Local Variables:
+%%% mode: latex
+%%% eval: (latex-mode)
+%%% ispell-local-dictionary: "fr_FR"
+%%% TeX-master: "nwejm.tex"
+%%% End:
+\fi
diff --git a/Master/texmf-dist/doc/latex/nwejm/documentation/french/packages-un-loaded.tex b/Master/texmf-dist/doc/latex/nwejm/documentation/french/packages-un-loaded.tex
new file mode 100644
index 00000000000..50518ee5099
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/nwejm/documentation/french/packages-un-loaded.tex
@@ -0,0 +1,92 @@
+\subsection{Packages chargés (ou pas) par la
+ classe}\label{sec-packages-charges-ou-pas}
+
+\subsubsection{Packages chargés par la classe}\label{sec:packages-charges-par}
+
+On a vu que, pour plusieurs de ses fonctionnalités, la \nwejmauthorcl{} s'appuie
+sur des packages qu'elle charge automatiquement. Ceux dont les fonctionnalités
+peuvent être utiles aux auteurs d'articles du \nwejm{} sont répertoriés dans la
+liste suivante qui indique leur fonction et le cas échéant la ou les options
+avec lesquelles ils sont chargés.
+
+En sus des outils propres à la \nwejmauthorcl, tous ceux fournis par ces
+différents packages sont donc à disposition des auteurs de la \nwejm{}.
+
+\begin{description}
+\item[\package{nag} :] signalement\footnote{Sous forme de \emph{warnings}.} de
+ packages, commandes et environnements obsolètes :
+ \begin{description}
+ \item[options par défaut :] \docAuxKey{l2tabu}, \docAuxKey{orthodox} ;
+ \end{description}
+\item[\package{kpfonts} :] police principale du document :
+ \begin{description}
+ \item[option par défaut :] \docAuxKey{noDcommand} ;
+ \end{description}
+\item[\package{graphicx} :] inclusion d'images ;
+\item[\package{adjustbox} :] ajustement de la position de boîtes, par exemple
+ d'images ;
+\item[\package{xspace} :] définition de commandes qui ne \enquote{mangent} pas
+ l'espace qui suit ;
+\item[\package{array} :] extension (et corrections de bogues) des
+ environnements de tableaux ;
+\item[\package{booktabs} :] tableaux d'allure professionnelle ;
+\item[\package{csquotes} :] citations d'extraits informelles et
+ formelles\footnote{Avec citation des sources,
+ cf. \vref{sec-guillemets-citations}.} :
+ \begin{description}
+ \item[option par défaut :] \docAuxKey{autostyle} ;
+ \item[réglage par défaut] |\SetCiteCommand{\autocite}| ;
+ \end{description}
+\item[\package{biblatex} :] gestion puissante de la bibliographie ;
+\item[\package{datetime2} :] formats de dates et de (zones de) temps :
+ \begin{description}
+ \item[option par défaut :] \docAuxKey{useregional} ;
+ \end{description}
+\item[\package{hyperref} :] support pour les liens
+ hypertextes\footnote{Cf. \vref{sec-url}.} :
+ \begin{description}
+ \item[option par défaut :] \docAuxKey{hidelinks},
+ \docAuxKey{hypertexnames}(|=false|) ;
+ \end{description}
+\item[\package{glossaries} :] création de glossaires et (listes d')acronymes :
+ \begin{description}
+ \item[option par défaut :] \docAuxKey{nowarn} ;
+ \end{description}
+\item[\package{varioref} et \package{cleveref} :] références croisées
+ intelligentes\footnote{Cf. \vref{sec-references-croisees}.}.
+\end{description}
+
+\subsubsection{Packages non chargés par la classe}\label{sec:packages-non-charges}
+
+La liste suivante, loin d'être exhaustive, répertorie des packages non chargés
+par la \nwejmauthorcl{} mais pouvant se révéler utiles aux auteurs. En outre,
+lorsqu'ils sont chargés manuellement par l'utilisateur, certains d'entre eux se
+voient fixés par la \nwejmauthorcl{} des options ou réglages dont les plus
+notables sont précisés.
+
+\begin{description}
+\item[\package{tikz-cd} :] création simple de diagrammes commutatifs de très
+ haute qualité\footnote{Et offrant une syntaxe plus naturelle que le
+ \Package*{xymatrix}.} ;
+\item[\package{pgfplots} :] création simple de graphiques (de dimensions~$2$
+ ou~$3$) de très haute qualité pour représenter des fonctions ou des données
+ expérimentales ;
+\item[\package{siunitx} :] gestion des nombres, angles et unités, et alignement
+ vertical sur le séparateur décimal dans les tableaux :
+ \begin{description}
+ \item[option par défaut :]\
+ \begin{itemize}
+ \item \docAuxKey{detect-all} ;
+ \item \docAuxKey{locale}|=|\docValue{FR} ou \docValue{UK} ou \docValue{DE}
+ selon la langue de l'article ;
+ \end{itemize}
+ \end{description}
+\item[\package{listings} :] insertion de listings informatiques ;
+\item[\package{todonotes} :] insertion de \enquote{TODO}\footnote{Rappels de
+ points qu'il ne faut pas oublier d'ajouter, de compléter, de réviser, etc.}.
+\end{description}
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: "nwejm.tex"
+%%% End:
diff --git a/Master/texmf-dist/doc/latex/nwejm/documentation/french/todo.tex b/Master/texmf-dist/doc/latex/nwejm/documentation/french/todo.tex
new file mode 100644
index 00000000000..9a1c9eec1a8
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/nwejm/documentation/french/todo.tex
@@ -0,0 +1,17 @@
+\chapter{To do}
+\label{cha:do}
+
+% \begin{enumerate}
+% \item Revoir les pointillés de la 2\ieme{} de couverture avec le \Pkg{TikZ} (au
+% moyen de quelque chose comme :
+% \verb|\tikz \draw[dotted] (0pt,0pt) -- (50pt,0pt);|).
+% \end{enumerate}
+
+\iffalse
+%%% Local Variables:
+%%% mode: latex
+%%% eval: (latex-mode)
+%%% ispell-local-dictionary: "fr_FR"
+%%% TeX-master: "../gazette.dtx"
+%%% End:
+\fi
diff --git a/Master/texmf-dist/doc/latex/nwejm/documentation/latexmkrc b/Master/texmf-dist/doc/latex/nwejm/documentation/latexmkrc
new file mode 100644
index 00000000000..3e6b294ce0d
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/nwejm/documentation/latexmkrc
@@ -0,0 +1,17 @@
+$pdf_mode = 1;
+
+$bibtex_use = 1;
+$bibtex = 'biber %O %B';
+
+$makeindex = 'texindy -L french';
+
+add_cus_dep('idx', 'ind', 0, 'texindy');
+sub texindy{
+ system("texindy -L french \"$_[0].idx\"");
+}
+
+push @generated_exts, "aux", "idx", "ind", "lo*", "out", "toc", "acn", "acr",
+"alg", "bbl", "bcf", "fls", "gl*", "ist", "run.xml", "sbl*", "sl*", "sym*",
+"xdy", "unq", "mw", "*~" ;
+
+$clean_ext = "synctex.gz* run.xml tex.bak bbl bcf fdb_latexmk run tdo listing"
diff --git a/Master/texmf-dist/doc/latex/nwejm/documentation/nwejm.bib b/Master/texmf-dist/doc/latex/nwejm/documentation/nwejm.bib
new file mode 100644
index 00000000000..b871eadceb7
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/nwejm/documentation/nwejm.bib
@@ -0,0 +1,66 @@
+% This file was created with JabRef 2.10.
+% Encoding: UTF8
+
+
+@Online{Bitouze,
+ Title = {Conférence \LaTeX{} \no6},
+ Author = {Bitouzé, Denis},
+ Date = {2015-12-09},
+ Url = {http://gte.univ-littoral.fr/members/dbitouze/pub/latex/diapositives-cours-d/conference-n-6/downloadFile/file/en-ligne6.pdf},
+ Language = {french},
+ Organization = {Université du Littoral Côte d'Opale},
+ Subtitle = {Bibliographie (biber/biblatex), citations d’extraits},
+}
+
+@Online{Bitouze7,
+ Title = {Conférence \LaTeX{} \no7},
+ Author = {Bitouzé, Denis},
+ Date = {2015-10-22},
+ Url = {http://gte.univ-littoral.fr/members/dbitouze/pub/latex/diapositives-cours-d/conference-n-7/downloadFile/file/en-ligne7.pdf},
+ Language = {french},
+ Pages = {28-154},
+ Organization = {Université du Littoral Côte d'Opale},
+ Subtitle = {Index, glossaires, acronymes},
+}
+
+@Manual{Ensenbach,
+ Title = {Liste des péchés des utilisateurs de \LaTeXe},
+ Author = {Ensenbach, Marc and Trettin, Mark and Alfonsi, Bernard},
+ Date = {2011-09-20},
+ Language = {french},
+ Subtitle = {Commandes et extensions obsolètes, et autres erreurs},
+ Url = {http://mirrors.ctan.org/info/l2tabu/french/l2tabufr.pdf},
+
+ Owner = {bitouze},
+ Timestamp = {2015.03.18}
+}
+
+@Book{har,
+ author = {Hartshorne, Robin},
+ title = {Algebraic geometry},
+ note = {Graduate Texts in Mathematics, No. 52},
+ publisher = {Springer-Verlag},
+ address = {New York},
+ year = {1977}
+}
+
+@Book{ laz1,
+ author = {Lazarsfeld, Robert},
+ title = {Positivity in algebraic geometry. {I}},
+ volume = {48},
+ note = {Classical setting: line bundles and linear series},
+ publisher = {Springer-Verlag},
+ address = {Berlin},
+ year = {2004}
+}
+
+@Article{shin,
+ author = {Shin, Kil-Ho},
+ title = {{$3$}-dimensional {F}ano varieties with canonical
+ singularities},
+ journal = {Tokyo J. Math.},
+ volume = {12},
+ year = {1989},
+ number = {2},
+ pages = {375-385}
+}
diff --git a/Master/texmf-dist/doc/latex/nwejm/documentation/nwejm.pdf b/Master/texmf-dist/doc/latex/nwejm/documentation/nwejm.pdf
new file mode 100644
index 00000000000..ec36fc29b6d
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/nwejm/documentation/nwejm.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/nwejm/documentation/nwejm.tex b/Master/texmf-dist/doc/latex/nwejm/documentation/nwejm.tex
new file mode 100644
index 00000000000..e8a19dfd1c6
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/nwejm/documentation/nwejm.tex
@@ -0,0 +1,67 @@
+\documentclass[french,nolocaltoc]{nwejmart}
+\usepackage{denisbdoc}
+\usepackage[firstpage]{draftwatermark}
+%
+\indexsetup{level=\section*,toclevel=section,noclearpage}
+\makeindex[columns=2]
+\tcbset{index format=off}
+%
+\lstMakeShortInline[style=dbtex]|
+\tcbset{listing options={escapechar=+}}
+%
+\SetWatermarkColor{gray!10}%
+\SetWatermarkFontSize{20mm}%
+\SetWatermarkText{\MakeUppercase{travail en cours}}%
+%
+\addbibresource{nwejm.bib}
+%
+\newacronym{nwejm}{nwejm}{North-Western European Journal of Mathematics}
+\newacronym{bap}{bap}{bounded approximation property}
+\newacronym{msc}{msc}{Mathematical Subject Classification}
+\newacronym{url}{url}{Uniform Resource Locator}
+%
+\newtheorem{article}
+\newtheorem[title=Fait,style=definition]{fact}
+%
+\DeclareMathOperator{\cat}{Cat}
+\newcommand{\mybinop}{\mathbin{@}}
+%
+\begin{document}
+\title[Documentation de la classe \LaTeX{} du \texorpdfstring{\nwejm}{NWEJM}]{Documentation de la classe \LaTeX{} du \nwejm*{} destinée aux auteurs}
+%
+\author[%
+affiliation={%
+ Université du Littoral Côte d'Opale, Laboratoire de mathématiques pures et
+ appliquées (\nolinkurl{denis.bitouze@lmpa.univ-littoral.fr})%
+},%
+]{Bitouzé, Denis}
+%
+\maketitle
+%
+\etocarticlestylenomarks
+\localtableofcontents
+%
+\input{french/fixed-footnotes}
+\input{french/nwejm-fr}
+%
+\section{Annexes}
+\input{french/packages-un-loaded}
+\input{french/notations}
+%
+\printbibliography
+%
+% \tcblistof{dbwarninglist}{Table des
+% avertissements\addcontentsline{toc}{section}{Table des avertissements}}%
+% \tcblistof{dbremarklist}{Table des remarques\addcontentsline{toc}{section}{Table
+% des remarques}}%
+% \tcblistof[\chapter*]{dbexamplelist}{Table des exemples\addcontentsline{toc}{chapter}{Table des exemples}}%
+% \tcblistof[\chapter*]{dbfaqlist}{Table des
+% questions\addcontentsline{toc}{chapter}{Table des questions}
+%
+\printindex
+\end{document}
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: t
+%%% End:
diff --git a/Master/texmf-dist/doc/latex/nwejm/examples/dutch.pdf b/Master/texmf-dist/doc/latex/nwejm/examples/dutch.pdf
new file mode 100644
index 00000000000..186b7a0e9c3
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/nwejm/examples/dutch.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/nwejm/examples/dutch.tex b/Master/texmf-dist/doc/latex/nwejm/examples/dutch.tex
new file mode 100644
index 00000000000..3f968aa9b7c
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/nwejm/examples/dutch.tex
@@ -0,0 +1,36 @@
+\documentclass[dutch]{nwejmart}
+\usepackage{lipsum}
+\addbibresource{biblatex-examples.bib}
+\input{sample}
+%
+\begin{document}
+\title{Artikel Titel (dutch)}
+\author[affiliation={Affiliation 8}]{Last8, First8}
+\author[affiliation={Affiliation 9}]{Last9, First9}
+\author[affiliation={Affiliation 10}]{Last10, First10}
+\author[affiliation={Affiliation 11}]{Last11, First11}
+\author[affiliation={Affiliation 12}]{Last12, First12}
+\author[affiliation={Affiliation 13}]{Last13, First13}
+\author[affiliation={Affiliation 14}]{Last14, First14}
+\author[affiliation={Affiliation 15}]{Last15, First15}
+\author[affiliation={Affiliation 16}]{Last16, First16}
+\author[affiliation={Affiliation 17}]{Last17, First17}
+\author[affiliation={Affiliation 18}]{Last18, First18}
+\author[affiliation={Affiliation 19}]{Last19, First19}
+\author[affiliation={Affiliation 20}]{Last20, First20}
+%
+\sample{%
+ \begin{enumerate}
+ \item It\footnote{Foo bar.} is well known\autocite{gonzalez}
+ that... Moreover, it is well known\autocite{iliad} that...
+ \item \textcite{gonzalez} have proved... Moreover, \textcite{iliad}
+ have proved...
+ \end{enumerate}
+ \lipsum[1-5]
+}
+\end{document}
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: "issue"
+%%% End:
diff --git a/Master/texmf-dist/doc/latex/nwejm/examples/english.pdf b/Master/texmf-dist/doc/latex/nwejm/examples/english.pdf
new file mode 100644
index 00000000000..5c113aadbb5
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/nwejm/examples/english.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/nwejm/examples/english.tex b/Master/texmf-dist/doc/latex/nwejm/examples/english.tex
new file mode 100644
index 00000000000..d2c6dcb4677
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/nwejm/examples/english.tex
@@ -0,0 +1,24 @@
+\documentclass[english]{nwejmart}
+\usepackage{lipsum}
+\addbibresource{biblatex-examples.bib}
+\input{sample}
+%
+\begin{document}
+\title{Article's Title (english)}
+\author[affiliation={Affiliation 5}]{Last5, First5}
+\author[affiliation={Affiliation 6}]{Last6, First6}
+%
+\sample{%
+ \begin{enumerate}
+ \item It\footnote{Foo bar.} is well known\autocite{cotton}
+ that... Moreover, it is well known\autocite{coleridge} that...
+ \item \textcite{cotton} have proved... Moreover, \textcite{coleridge}
+ have proved...
+ \end{enumerate}
+}
+\end{document}
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: "issue"
+%%% End:
diff --git a/Master/texmf-dist/doc/latex/nwejm/examples/example.pdf b/Master/texmf-dist/doc/latex/nwejm/examples/example.pdf
new file mode 100644
index 00000000000..bfb81674483
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/nwejm/examples/example.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/nwejm/examples/example.tex b/Master/texmf-dist/doc/latex/nwejm/examples/example.tex
new file mode 100644
index 00000000000..a9fb4e6a766
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/nwejm/examples/example.tex
@@ -0,0 +1,187 @@
+% This is an example of the usage of the `nwejmart' class dedicated to articles
+% submitted to the North-Western European Journal of Mathematics.
+%
+% The language of the article is by default English. Should it be French, German
+% or Dutch instead, it would be specified as \documentclass' option.
+\documentclass[
+% french % If the language of the article will be French
+% german % If the language of the article will be German
+% dutch % If the language of the article will be Dutch
+]{nwejmart}
+%
+% The following package should not be used for a real article! ;)
+\usepackage{lipsum}
+%
+% Replace below `biblatex-examples.bib' by your own bibtex file, preferrably at
+% `biblatex' format (don't forget the `.bib' extension below). This will require
+% an extra `biber' compilation. See `glossaries' package's documentation for
+% more details.
+\addbibresource{biblatex-examples.bib}
+%
+% Should acronyms be used in the article, define them thanks to \newacronym
+% command from `glossaries' package as follows:
+% - 1st argument: ⟨label⟩ of the acronym (also called key),
+% - 2nd argument: ⟨short form⟩ of the acronym (lowercase!),
+% - 3rd argument: ⟨long form⟩ of the acronym,
+% and use them with \gls{⟨label⟩} (or, if needed, with \acrshort{⟨label⟩}).
+% See `glossaries' package's documentation for more details.
+\newacronym{nwejm}{nwejm}{North-Western European Journal of Mathematics}
+%
+\begin{document}
+%
+% Title of the article. A short form (that will be displayed in the headers and
+% in the volume's TOC) may be specified as optional argument.
+\title{Article's Title}
+%
+% Subtitle of the article, if any. A short form may be specified as optional
+% argument.
+% \subtitle{Article's Subtitle}
+%
+% Author(s) of the article:
+% - one \author command per author,
+% - mandatory argument entered as `⟨Last Name⟩, ⟨First Name⟩'.
+% Use the key-value `affiliation={⟨affiliation⟩}' optional argument to specify
+% one or more affiliations. An affiliation can be tagged
+% (`affiliation=[⟨tag⟩]{⟨affiliation⟩}') and reused later
+% (affiliationtagged={⟨tag⟩}).
+\author[affiliation={Affiliation 1}]{Last1, First1}
+\author[affiliation=[aff2]{Affiliation 2}]{Last2, First2}
+\author[affiliation={Affiliation 3},affiliation={Affiliation 3 bis}]{Last3, First3}
+\author[affiliation={Affiliation 4},affiliationtagged={aff2}]{Last4, First4}
+%
+% The abstract is entered as usually.
+\begin{abstract}
+ \lipsum[1]
+\end{abstract}
+%
+% The keywords are entered thanks to \keywords command, as a comma separated list.
+\keywords{foo,bar,baz}
+%
+% The Mathematical Subject Classification (MSC) are entered thanks to \msc
+% command,as a comma separated list.
+\msc{11B13,11B30,11P70}
+%
+\maketitle
+%
+% Acknowledgments, if any, are entered thanks to \acknowledgments command (and
+% will be displayed just before the bibliography, thanks to the
+% \printbibliography command).
+\acknowledgments{Thanks to mum, daddy and all my buddies.}
+%
+% Unnumbered sections, if needed, are entered as usually with the starred
+% version of the \section command. Note that:
+% - their titles will automatically be displayed in the headers (and in the
+% volume's TOC),
+% - no need to use the starred versions of the subsequent \subsection commands
+% (if any)
+\section*{Introduction}
+%
+\subsection{Citations tests}
+%
+% Use mainly the \autocite command (from `biblatex' package) to cite
+% references. Depending on the context, \textcite command (among others) may be
+% used. See `biblatex' package's documentation for more details.
+\begin{enumerate}
+\item It\footnote{Foo bar.} is well known\autocite{baez/article}
+ that... Moreover, it is well known\autocite{companion} that...
+\item \textcite{baez/article} have proved... Moreover, \textcite{companion}
+ have proved...
+\end{enumerate}
+%
+\subsection{Cross-references tests}
+%
+% The cross-references are entered thanks to the \vref command (from `varioref'
+% package) and the `cleveref' features. Note that:
+% - the name of the object referenced is automatically added,
+% - the page of the object referenced is automatically added (if not on the
+% same page).
+Cf. \vref{thm:bolzano-weierstrass} \& \vref{rmk:euler} \&
+\vref{eq:euler} \& \vref{sec:first-numbered}.
+%
+\subsection{Acronyms tests}
+%
+% As said above, use \gls{⟨label⟩} to display the acronym labelled ⟨label⟩. Note
+% that, automatically:
+% - the first occurrence of this command displays the /complete/ form of the
+% acronym (long form followed by the short one in parentheses),
+% - the subsequent occurrences of this command display only the short form of the
+% acronym,
+% - if an occurrence should be displayed as the short form of an acronym,
+% regardless it is the first one or not, the command \acrshort{⟨label⟩} is to
+% be used.
+\begin{enumerate}
+\item The present article is published in the \gls{nwejm}.
+\item Moreover, the present article is published in the \gls{nwejm}.
+\end{enumerate}
+%
+\subsection{Miscellaneaous}
+%
+% Use:
+% - the \century command to display centuries, even negative ones,
+% - the \aside command for interpolated clauses,
+% - the \ie command for "that is",
+% - the \acrlong when need to display (only) the long form of an acronym.
+\begin{itemize}
+\item It has been proved in the \century{19} \aside{more than 100 years ago}
+ that...
+\item This has been conceptualized in the \century{-3} \aside*{more than 2000
+ years ago}.
+\item \acrshort{nwejm} \ie{} \acrlong*{nwejm}.
+\item \acrshort{nwejm} \ie*{} \acrlong*{nwejm}.
+\end{itemize}
+%
+\subsection{Theorems tests}
+%
+% The theorems and the like are entered as usually. Note that, should one of
+% them be unnumbered, the environment used would be starred.
+\begin{theorem}[Bolzano–Weierstrass]\label{thm:bolzano-weierstrass}
+ A subset of $\bbR^n$ ($n\in\bbN^*$) is sequentially compact if and only if it is
+ closed and bounded.
+\end{theorem}
+\begin{proof}[not that easy!]
+ ...
+\end{proof}
+\begin{definition}
+ In Cartesian space $\bbR^n$ with the $p$-norm $L_p$, an open ball is the set
+ \[
+ B(r)=\set{x\in \bbR^n}[\sum _{i=1}^n\left|x_i\right|^p<r^p]
+ \]
+\end{definition}
+\begin{remark}[Euler's identity]\label{rmk:euler}
+ One of the most beautiful mathematical equation:
+ \begin{equation*}
+ \E[\I\pi]+1=0
+ \end{equation*}
+\end{remark}
+\begin{lemma*}[Zorn]
+ Suppose a partially ordered set $P$ has the property that every chain has an
+ upper bound in $P$. Then the set $P$ contains at least one maximal element.
+\end{lemma*}
+%
+\lipsum[2-6]
+%
+\begin{equation}\label{eq:euler}
+ \E[\I\pi]+1=0
+\end{equation}
+%
+\lipsum[8-15]
+%
+\section{First (numbered) section}\label{sec:first-numbered}
+\lipsum[2]
+\subsection{First subsection}
+\lipsum[3-8]
+\subsection{Second subsection}
+\lipsum[9-15]
+\section{Second (numbered) section}
+\lipsum[16-38]
+%
+% The \printbibliography command (from `biblatex' package) displays the list of
+% references (preceded by the acknowledgments, if any).
+\printbibliography
+%
+\end{document}
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: t
+%%% End:
diff --git a/Master/texmf-dist/doc/latex/nwejm/examples/french.pdf b/Master/texmf-dist/doc/latex/nwejm/examples/french.pdf
new file mode 100644
index 00000000000..c5155c48b7d
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/nwejm/examples/french.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/nwejm/examples/french.tex b/Master/texmf-dist/doc/latex/nwejm/examples/french.tex
new file mode 100644
index 00000000000..59da9672dc9
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/nwejm/examples/french.tex
@@ -0,0 +1,28 @@
+\documentclass[french]{nwejmart}
+\usepackage{lipsum}
+\addbibresource{biblatex-examples.bib}
+\input{sample}
+%
+\begin{document}
+\nocite{*}
+%
+\title{Titre de l'article (french)}
+\author[affiliation={Affiliation 1}]{Last1, First1}
+\author[affiliation=[aff2]{Affiliation 2}]{Last2, First2}
+\author[affiliation={Affiliation 3},affiliation={Affiliation 3 bis}]{Last3, First3}
+\author[affiliation={Affiliation 4},affiliationtagged={aff2}]{Last4, First4}
+%
+\sample{%
+ \begin{enumerate}
+ \item It\footnote{Foo bar.} is well known\autocite{baez/article}
+ that... Moreover, it is well known\autocite{companion} that...
+ \item \textcite{baez/article} have proved... Moreover, \textcite{companion}
+ have proved...
+ \end{enumerate}
+}
+\end{document}
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: "issue"
+%%% End:
diff --git a/Master/texmf-dist/doc/latex/nwejm/examples/german.pdf b/Master/texmf-dist/doc/latex/nwejm/examples/german.pdf
new file mode 100644
index 00000000000..fae586a8cb8
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/nwejm/examples/german.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/nwejm/examples/german.tex b/Master/texmf-dist/doc/latex/nwejm/examples/german.tex
new file mode 100644
index 00000000000..2b81f4eaafd
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/nwejm/examples/german.tex
@@ -0,0 +1,23 @@
+\documentclass[german]{nwejmart}
+\usepackage{lipsum}
+\addbibresource{biblatex-examples.bib}
+\input{sample}
+%
+\begin{document}
+\title{Beitragstitel (german)}
+\author[affiliation={Affiliation 7},affiliation={Affiliation 7 bis}]{Last7, First7}
+%
+\sample{%
+ \begin{enumerate}
+ \item It\footnote{Foo bar.} is well known\autocite{gerhardt}
+ that... Moreover, it is well known\autocite{hammond} that...
+ \item \textcite{gerhardt} have proved... Moreover, \textcite{hammond}
+ have proved...
+ \end{enumerate}
+}
+\end{document}
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: "issue"
+%%% End:
diff --git a/Master/texmf-dist/doc/latex/nwejm/examples/issue.pdf b/Master/texmf-dist/doc/latex/nwejm/examples/issue.pdf
new file mode 100644
index 00000000000..e28b086208c
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/nwejm/examples/issue.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/nwejm/examples/issue.tex b/Master/texmf-dist/doc/latex/nwejm/examples/issue.tex
new file mode 100644
index 00000000000..2b23aeb2a51
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/nwejm/examples/issue.tex
@@ -0,0 +1,23 @@
+\documentclass{nwejm}
+\usepackage{lipsum}
+\issuesetup{number=1}
+\geometry{%
+ % verbose%
+ % ,showframe%
+}
+%
+\addbibresource{biblatex-examples.bib}
+%
+\input{sample}
+%
+\begin{document}
+\inputarticle[french]{french}
+\inputarticle{english}
+\inputarticle[german]{german}
+\inputarticle[dutch]{dutch}
+\end{document}
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: t
+%%% End:
diff --git a/Master/texmf-dist/doc/latex/nwejm/examples/sample.tex b/Master/texmf-dist/doc/latex/nwejm/examples/sample.tex
new file mode 100644
index 00000000000..9fb33aee135
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/nwejm/examples/sample.tex
@@ -0,0 +1,101 @@
+\providecommand{\eulersidentity}{%
+ \begin{equation*}
+ \E[\I\pi]+1=0
+ \end{equation*}
+}
+\providecommand{\sample}[1]{%
+ %
+ \newacronym{nwejm-\languagename}{nwejm}{North-Western European Journal of Mathematics}
+ %
+ \begin{abstract}
+ \lipsum[1]
+ \end{abstract}
+ %
+ \keywords{foo,bar,baz}
+ %
+ \msc{11B13,11B30,11P70}
+ %
+ \acknowledgments{Thanks to mum, daddy and all my buddies.}
+ %
+ \maketitle
+ %
+ \section*{Introduction}
+ %
+ \subsection{Citations tests}
+ #1
+ %
+ \subsection{Cross-references tests}
+ Cf. \vref{thm:bolzano-weierstrass-\languagename,rmk:euler-\languagename} \&
+ \vref{eq:euler-\languagename} \& \vref{sec:first-numbered-\languagename}.
+ %
+ \subsection{Miscellaneaous}
+ \begin{itemize}
+ \item It has been proved in the \century{19} \aside{more than 100 years ago}
+ that...
+ \item This has been conceptualized in the \century{-3} \aside*{more than 2000
+ years ago}.
+ \item \acrshort{nwejm-\languagename} \ie{} \acrlong*{nwejm-\languagename}.
+ \item \acrshort{nwejm-\languagename} \ie*{} \acrlong*{nwejm-\languagename}.
+ \end{itemize}
+ %
+ \subsection{Acronyms tests}
+ \begin{enumerate}
+ \item The present article is published in the \gls{nwejm-\languagename}.
+ \item Moreover, the present article is published in the \gls{nwejm-\languagename}.
+ \end{enumerate}
+ %
+ \subsection{Theorems tests}
+ \begin{theorem}[Bolzano–Weierstrass]\label{thm:bolzano-weierstrass-\languagename}
+ A subset of $\bbR^n$ ($n\in\bbN^*$) is sequentially compact if and only if it is
+ closed and bounded.
+ \end{theorem}
+ \begin{proof}[not that easy!]
+ ...
+ \end{proof}
+ \begin{definition}
+ In Cartesian space $\bbR^n$ with the $p$-norm $L_p$, an open ball is the set
+ \[
+ B(r)=\set{x\in \bbR^n}[\sum _{i=1}^n\left|x_i\right|^p<r^p]
+ \]
+ \end{definition}
+ \begin{remark}[Euler's identity]\label{rmk:euler-\languagename}
+ One of the most beautiful mathematical equation:
+ \begin{equation}
+ \E[\I\pi]+1=0
+ \end{equation}
+ \end{remark}
+ \begin{lemma*}[Zorn]
+ Suppose a partially ordered set $P$ has the property that every chain has an
+ upper bound in $P$. Then the set $P$ contains at least one maximal element.
+ \end{lemma*}
+ \begin{axiom}\label{my-axiom-\languagename}
+ The following assertions are considered as true.
+ \begin{assertions}
+ \item\label{rare-expensive-\languagename} Anything that is scarce also is
+ expensive.
+ \item\label{cheap-horse-\languagename} A cheap horse is scarce.
+ \end{assertions}
+ \end{axiom}
+ According to \vref{rare-expensive-\languagename,cheap-horse-\languagename}
+ from \vref{my-axiom-\languagename}, a cheap horse is expensive.
+ %
+ \subsection{Dummy text and nice equation}
+ %
+ \lipsum[2-6]
+ %
+ \begin{equation}\label{eq:euler-\languagename}
+ \E[\I\pi]+1=0
+ \end{equation}
+ %
+ \lipsum[8-15]
+ %
+ \section{First (numbered) section}\label{sec:first-numbered-\languagename}
+ \lipsum[2]
+ \subsection{First subsection}
+ \lipsum[3-8]
+ \subsection{Second subsection}
+ \lipsum[9-15]
+ \section{Second (numbered) section}
+ \lipsum[16-38]
+ \printbibliography
+}
diff --git a/Master/texmf-dist/doc/latex/nwejm/examples/template.tex b/Master/texmf-dist/doc/latex/nwejm/examples/template.tex
new file mode 100644
index 00000000000..9050da57a53
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/nwejm/examples/template.tex
@@ -0,0 +1,72 @@
+% This is a template that may be used for the articles submitted to the
+% North-Western European Journal of Mathematics.
+%
+% The language of the article is by default English. Should it be French, German
+% or Dutch instead, it would be specified as \documentclass' option.
+\documentclass[
+% french % If the language of the article will be French
+% german % If the language of the article will be German
+% dutch % If the language of the article will be Dutch
+]{nwejmart}
+%
+% Specify your own bibtex file, preferrably at `biblatex' format (don't forget
+% the `.bib' extension below) in the argument of the \addbibresource command.
+\addbibresource{}
+%
+% Should acronyms be used in the article, define them thanks to \newacronym
+% command from `glossaries' package as follows:
+% - 1st argument: ⟨label⟩ of the acronym (also called key),
+% - 2nd argument: ⟨short form⟩ of the acronym (lowercase!),
+% - 3rd argument: ⟨long form⟩ of the acronym,
+% and use them with \gls{⟨label⟩} (or, if needed, with \acrshort{⟨label⟩}).
+% See `glossaries' package's documentation for more details.
+% \newacronym{}{}{}
+%
+\begin{document}
+%
+% Title of the article. A short form (that will be displayed in the headers and
+% in the volume's TOC) may be specified as optional argument.
+\title{}
+%
+% Subtitle of the article, if any. A short form may be specified as optional
+% argument.
+% \subtitle{}
+%
+% Author(s) of the article:
+% - one \author command per author,
+% - mandatory argument entered as `⟨Last Name⟩, ⟨First Name⟩'.
+% Use the key-value `affiliation={⟨affiliation⟩}' optional argument for each
+% affiliation of the author. An affiliation can be tagged
+% (`affiliation=[⟨tag⟩]{⟨affiliation⟩}') and reused later
+% (affiliationtagged={⟨tag⟩}).
+\author[affiliation={}]{, }
+% \author[affiliation={}]{, }
+%
+% The abstract is entered as usually.
+\begin{abstract}
+ ...
+\end{abstract}
+%
+% The keywords are entered thanks to \keywords command, as a comma separated list.
+\keywords{}
+%
+% The Mathematical Subject Classification (MSC) are entered thanks to \msc
+% command,as a comma separated list.
+\msc{}
+%
+% The title is made as usually.
+\maketitle
+%
+% Acknowledgments, if any, are entered thanks to \acknowledgments command (and
+% will be displayed just before the bibliography, thanks to the
+% \printbibliography command).
+% \acknowledgments{}
+%
+% Here comes the article's content.
+...
+%
+% The \printbibliography command (from `biblatex' package) displays the list of
+% references (preceded by the acknowledgments, if any)
+\printbibliography
+%
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/nwejm/latexmkrc.tex b/Master/texmf-dist/doc/latex/nwejm/latexmkrc.tex
new file mode 100644
index 00000000000..3e6b294ce0d
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/nwejm/latexmkrc.tex
@@ -0,0 +1,17 @@
+$pdf_mode = 1;
+
+$bibtex_use = 1;
+$bibtex = 'biber %O %B';
+
+$makeindex = 'texindy -L french';
+
+add_cus_dep('idx', 'ind', 0, 'texindy');
+sub texindy{
+ system("texindy -L french \"$_[0].idx\"");
+}
+
+push @generated_exts, "aux", "idx", "ind", "lo*", "out", "toc", "acn", "acr",
+"alg", "bbl", "bcf", "fls", "gl*", "ist", "run.xml", "sbl*", "sl*", "sym*",
+"xdy", "unq", "mw", "*~" ;
+
+$clean_ext = "synctex.gz* run.xml tex.bak bbl bcf fdb_latexmk run tdo listing"
diff --git a/Master/texmf-dist/doc/latex/nwejm/ltxdoc.cfg b/Master/texmf-dist/doc/latex/nwejm/ltxdoc.cfg
new file mode 100644
index 00000000000..42825d30887
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/nwejm/ltxdoc.cfg
@@ -0,0 +1,11 @@
+\AtBeginDocument{%
+ \OnlyDescription% Comment out for implementation details
+ \EnableCrossrefs%
+ \RecordChanges%
+ % \GlossaryPrologue{%
+ % }%
+ \CodelineIndex%
+}%
+\AtEndDocument{%
+ % \PrintIndex%
+}
diff --git a/Master/texmf-dist/doc/latex/nwejm/nwejm-logos-collection.tex b/Master/texmf-dist/doc/latex/nwejm/nwejm-logos-collection.tex
new file mode 100644
index 00000000000..b32baede8a4
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/nwejm/nwejm-logos-collection.tex
@@ -0,0 +1,41 @@
+\documentclass[tikz]{standalone}
+\usepackage{graphicx}
+\usepackage{tkz-berge}
+\makeatletter
+\newcommand*{\grWheelComplete}[2][]{%
+ \begingroup%
+ \setkeys[GR]{cl}{#1}%
+ \grStar[#1]{#2}%
+ \pgfmathsetcounter{tkz@gr@a}{#2-1}%
+ \edef\tkz@auxctp{\thetkz@gr@a}%
+ \foreach \ia in {0,...,\tkz@auxctp}%
+ {\foreach \ib in {\ia,...,\tkz@auxctp}%
+ {\Edge(\cmdGR@cl@prefix\ia)(\cmdGR@cl@prefix\ib)}%
+ }%
+ \endgroup%
+}
+\makeatother
+\begin{document}
+\begin{tikzpicture}[scale=.8]
+ \GraphInit[vstyle=Shade]%
+ \SetGraphShadeColor{blue!60!black!30}{blue}{white}%
+ \tikzset{%
+ VertexStyle/.style = {%
+ shape = circle,%
+ fill = white,%
+ minimum size = 3.5cm,%
+ draw%
+ }%
+ }%
+ \SetVertexNoLabel%
+ \grWheelComplete[RA=9]{6}%
+ \AssignVertexLabel{a}{%
+ \includegraphics[height=25mm]{nwejm-fields-institute-logo},%
+ \includegraphics[height=25mm]{nwejm-federation-recherche-math-npdc-logo},%
+ \includegraphics[height=10mm]{nwejm-kwg-logo},%
+ \includegraphics[height=20mm]{nwejm-smf-logo},%
+ \includegraphics[height=12mm]{nwejm-sml-logo},%
+ \includegraphics[height=25mm]{nwejm-logo}%
+ };%
+\end{tikzpicture}
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/nwejm/nwejm.cwl b/Master/texmf-dist/doc/latex/nwejm/nwejm.cwl
new file mode 100644
index 00000000000..f383b4ee744
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/nwejm/nwejm.cwl
@@ -0,0 +1,209 @@
+# mode: nwejm.cls
+# denisbitouze, 23.12.2015
+#
+#include:class-book
+#include:latex-document
+#include:latex-mathsymbols
+#include:tex
+#include:xparse
+#include:l3keys2e
+#include:l3sort
+#include:nag
+#include:fontenc
+#include:inputenc
+#include:fontspec
+#include:graphicx
+#include:adjustbox
+#include:draftwatermark
+#include:xspace
+#include:csquotes
+#include:biblatex
+#include:array
+#include:booktabs
+#include:varioref
+#include:mathtools
+#include:mathrsfs
+#include:esvect
+#include:kpfonts
+#include:translations
+#include:fmtcount
+#include:geometry
+#include:babel
+#include:tocvsec2
+#include:etoc
+#include:microtype
+#include:datetime2
+#include:enumitem
+#include:pagegrid
+#include:amsthm
+#include:thmtools
+#include:hyperref
+#include:hypcap
+#include:bookmark
+#include:glossaries
+#include:cleveref
+#
+# Document class
+#keyvals:\documentclass/nwejmart
+french
+english
+ngerman
+dutch
+#endkeyvals
+#
+# Cover and title pages
+#
+# Title, etc.
+\title{title}#n
+\title[short title]{title}#n
+\subtitle{%<subtitle%>}#n*
+\subtitle[%<short subtitle%>]{%<subtitle%>}#n*
+#
+# Author
+\author{%<Last name%>, %<First name%>}#n
+\author[affiliation={%<affiliation%>}]{%<Last name%>, %<First name%>}#n
+\author[affiliation=[%<affiliation's tag%>]{%<affiliation%>}]{%<Last name%>, %<First name%>}#n
+\author[affiliationtagged={%<affiliation's tag%>}]{%<Last name%>, %<First name%>}#n
+#
+# Dates
+\dates{received=%<yyyy%>-%<mm%>-%<dd%>,accepted=%<yyyy%>-%<mm%>-%<dd%>,online=%<yyyy%>-%<mm%>-%<dd%>}#n
+#
+# Math commands
+\N#m
+\Z#m
+\D#m
+\Q#m
+\R#m
+\C#m
+\K#m
+\arccosh#m
+\arcsin#m
+\arcsinh#m
+\arctan#m
+\arctanh#m
+\Argch#m
+\Argsh#m
+\Argth#m
+\ch#m
+\cotan#m
+\curl#m
+\dif#m
+\Div#m
+\grad#m
+\E#m
+\I#m
+\rot#m
+\sh#m
+\supp#m
+\th#m
+\norm#m
+\lnorm#m
+\llnorm#m
+\lpnorm#m
+\supnorm#m
+\abs#m
+\prt#m
+\brk#m
+\brc#m
+\leqgeq#m
+\lrangle#m
+\set{%<set self-contained definition%>}#m
+\set{%<set definition%>}[%<such that...%>]#m
+\begin{axiom}
+\begin{assertions}
+\begin{conjecture}
+\begin{corollary}
+\begin{definition}
+\begin{example}
+\begin{hypotheses}
+\begin{proposition}
+\begin{lemma}
+\begin{notation}
+\begin{proof}
+\begin{remark}
+\begin{theorem}
+#
+\begin{axiom*}
+\begin{assertions*}
+\begin{conjecture*}
+\begin{corollary*}
+\begin{definition*}
+\begin{example*}
+\begin{hypotheses*}
+\begin{proposition*}
+\begin{lemma*}
+\begin{notation*}
+\begin{proof*}
+\begin{remark*}
+\begin{theorem*}
+#
+\end{axiom}
+\end{assertions}
+\end{conjecture}
+\end{corollary}
+\end{definition}
+\end{example}
+\end{hypotheses}
+\end{proposition}
+\end{lemma}
+\end{notation}
+\end{proof}
+\end{remark}
+\end{theorem}
+#
+\end{axiom*}
+\end{assertions*}
+\end{conjecture*}
+\end{corollary*}
+\end{definition*}
+\end{example*}
+\end{hypotheses*}
+\end{proposition*}
+\end{lemma*}
+\end{notation*}
+\end{proof*}
+\end{remark*}
+\end{theorem*}
+#
+\begin{description*}
+\begin{enumerate*}
+\begin{itemize*}
+#
+\end{description*}
+\end{enumerate*}
+\end{itemize*}
+# Miscellaneous commands
+\keywords{%<list of keywords%>}#n
+\msc{%<list of MSCs%>}#n
+\nwejm#n
+\nwejm*#n*
+\century{%<(positive or negative) integer%>}#n
+\century*{%<(positive or negative) integer%>}#n*
+\aside{%<interpolated clause%>}#n
+\aside*{%<interpolated clause%>}#n
+\acknowledgements{%<acknowledgments%>}#n
+\ie#n
+\ie*#n*
+\Ie#n
+\Ie*#n*
+\NewPairedDelimiter#n
+\articlesetup#n
+\BinaryOperators#n
+#
+\editorinchief{%<Last name%>, %<First name%>}{%<affiliation%>}{%<country%>}{%<email%>}#n
+\editor{%<Last name%>, %<First name%>}{%<affiliation%>}{%<country%>}{%<email%>}#n
+\fieldseditor{%<Last name%>, %<First name%>}{%<affiliation%>}{%<country%>}{%<email%>}#n
+\managingeditor{%<Last name%>, %<First name%>}{%<affiliation%>}{%<country%>}{%<email%>}#n
+\classdesigner{%<Last name%>, %<First name%>}{%<affiliation%>}{%<country%>}{%<email%>}#n
+\computerengineer{%<Last name%>, %<First name%>}{%<affiliation%>}{%<country%>}{%<email%>}#n
+\classmaintainer{%<Last name%>, %<First name%>}{%<affiliation%>}{%<country%>}{%<email%>}#n
+\fontdesigner{%<Last name%>, %<First name%>}{%<affiliation%>}{%<country%>}{%<email%>}#n
+\printingservice{%<Last name%>, %<First name%>}{%<affiliation%>}{%<country%>}{%<email%>}#n
+\computerassistance{%<Last name%>, %<First name%>}{%<affiliation%>}{%<country%>}{%<email%>}#n
+\secretary{%<Last name%>, %<First name%>}{%<affiliation%>}{%<country%>}{%<email%>}#n
+\issuesetup{number=%<positive integer%>}#n
+\journalsetup {publisher=%<publisher%>,address={%<address%>},phone=%<phone%>,email=%<email%>,url=%<url%>,issn=%<issn%>,isbn=%<isbn%>}#n
+\inputarticle{file}#i
+\inputarticle[path]{file}#i
+\fontdesignertext{text}#n
+\printertext{text}#n
diff --git a/Master/texmf-dist/doc/latex/nwejm/nwejmart.cwl b/Master/texmf-dist/doc/latex/nwejm/nwejmart.cwl
new file mode 100644
index 00000000000..67175927679
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/nwejm/nwejmart.cwl
@@ -0,0 +1,5 @@
+# mode: nwejm.cls
+# denisbitouze, 23.12.2015
+#
+#include:nwejm
+
diff --git a/Master/texmf-dist/source/latex/nwejm/nwejm.drv b/Master/texmf-dist/source/latex/nwejm/nwejm.drv
new file mode 100644
index 00000000000..b22dccd5e62
--- /dev/null
+++ b/Master/texmf-dist/source/latex/nwejm/nwejm.drv
@@ -0,0 +1,45 @@
+%%
+%% This is file `nwejm.drv',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% nwejm.dtx (with options: `driver')
+%% -------:| -----------------------------------------------------------------
+%% nwejm:| Class for the journal "North-Western European Journal of Mathematics"
+%% Author:| Denis Bitouze
+%% E-mail:| denis.bitouze@lmpa.univ-littoral.fr
+%% License:| Released under the LaTeX Project Public License v1.3c or later
+%% See:| http://www.latex-project.org/lppl.txt
+%%
+\ProvidesFile{nwejm.dtx}
+\documentclass{ltxdoc}
+\usepackage[a4paper,margin=25mm,left=50mm,nohead]{geometry}
+\usepackage[numbered]{hypdoc}
+
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\begin{document}
+ \DocInput{\jobname.dtx}
+\end{document}
+%%
+%% Copyright (C) 2015, 2016 by Denis Bitouze <denis.bitouze@lmpa.univ-littoral.fr>
+%%
+%% This work 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 is "maintained" (as per LPPL maintenance status) by
+%% Denis Bitouze.
+%%
+%% This work consists of the file nwejm.dtx and a Makefile.
+%% Running "make" generates the derived files README, nwejm.pdf and nwejm.cls.
+%% Running "make inst" installs the files in the user's TeX tree.
+%% Running "make install" installs the files in the local TeX tree.
+%%
+%%
+%% End of file `nwejm.drv'.
diff --git a/Master/texmf-dist/source/latex/nwejm/nwejm.dtx b/Master/texmf-dist/source/latex/nwejm/nwejm.dtx
new file mode 100644
index 00000000000..0f66d98b509
--- /dev/null
+++ b/Master/texmf-dist/source/latex/nwejm/nwejm.dtx
@@ -0,0 +1,5773 @@
+% \iffalse meta-comment
+%<*internal>
+\iffalse
+%</internal>
+%<*readme>
+nwejm - Support for the journal "North-Western European Journal of Mathematics"
+===============================================================================
+
+This bundle includes LaTeX classes and `biblatex` styles files dedicated to the
+new journal "North-Western European Journal of Mathematics".
+
+Follow development, submit issues, and suggest improvements at
+https://github.com/dbitouze/nwejm.
+
+Installation
+------------
+
+The classes are supplied in `.dtx` format. If you want to unpack the `.dtx`
+yourself, running `tex nwejm.dtx` will extract the package whereas
+%
+`pdflatex nwejm` will typeset the documentation of the `nwejmart` class
+(currently only in French).
+
+Typesetting the documentation also requires a number of packages in addition to
+those needed to use the `nwejm` classes. To compile the documentation without
+error, you will need, among others, my personal (dirty) package `denisbdoc` for
+documenting the classes I've written.
+%</readme>
+%<*internal>
+\fi
+\def\nameofplainTeX{plain}
+\ifx\fmtname\nameofplainTeX\else
+ \expandafter\begingroup
+\fi
+%</internal>
+%<*install>
+\input l3docstrip.tex
+\Msg{********************************************************}
+\Msg{* Installation}
+\Msg{* Class: nwejm 2016/04/14 v0.96}
+\Msg{* for the journal}
+\Msg{* "North-Western European Journal of Mathematics" (DB)}
+\Msg{********************************************************}
+\keepsilent
+\askforoverwritefalse
+\preamble
+-------:| -----------------------------------------------------------------
+ nwejm:| Class for the journal "North-Western European Journal of Mathematics"
+ Author:| Denis Bitouze
+ E-mail:| denis.bitouze@lmpa.univ-littoral.fr
+License:| Released under the LaTeX Project Public License v1.3c or later
+ See:| http://www.latex-project.org/lppl.txt
+
+\endpreamble
+\postamble
+
+Copyright (C) 2015, 2016 by Denis Bitouze <denis.bitouze@lmpa.univ-littoral.fr>
+
+This work 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 is "maintained" (as per LPPL maintenance status) by
+Denis Bitouze.
+
+This work consists of the file nwejm.dtx and a Makefile.
+Running "make" generates the derived files README, nwejm.pdf and nwejm.cls.
+Running "make inst" installs the files in the user's TeX tree.
+Running "make install" installs the files in the local TeX tree.
+
+\endpostamble
+%
+\def\NWEJM@classname{\jobname}
+\def\NWEJM@addons{addons}
+\def\NWEJM@documentation{documentation}
+%
+\usedir{/}
+\generate{
+ \nopreamble\nopostamble
+ \file{README.md}{\from{\jobname.dtx}{readme}}
+}%
+\usedir{tex/latex/\NWEJM@classname}
+\generate{%
+ \file{\NWEJM@classname.cls}{\from{\jobname.dtx}{class}}
+ \file{\NWEJM@classname art.cls}{\from{\jobname.dtx}{class-article}}
+ \file{\NWEJM@classname.dbx}{\from{\jobname.dtx}{datamodel}}
+ \file{\NWEJM@classname.cbx}{\from{\jobname.dtx}{citestyle}}
+ \file{\NWEJM@classname.bbx}{\from{\jobname.dtx}{bibstyle}}
+ \file{\NWEJM@classname.lbx}{\from{\jobname.dtx}{languagemodel}}
+ \nopreamble\nopostamble
+ \file{\NWEJM@classname.cfg}{\from{\jobname.dtx}{configuration}}
+ \file{\NWEJM@classname-english.trsl}{\from{\jobname.dtx}{english}}
+ \file{\NWEJM@classname-french.trsl}{\from{\jobname.dtx}{french}}
+ \file{\NWEJM@classname-german.trsl}{\from{\jobname.dtx}{german}}
+ \file{\NWEJM@classname-dutch.trsl}{\from{\jobname.dtx}{dutch}}
+}%
+\usedir{tex/latex/\NWEJM@classname/images}
+\generate{%
+ \nopreamble\nopostamble
+ \file{\NWEJM@classname-logos-collection.tex}{\from{\jobname.dtx}{logos-collection}}
+}%
+%</install>
+%<install>\endbatchfile
+%<*internal>
+\usedir{source/latex/\NWEJM@classname}
+\generate{
+ \file{\NWEJM@classname.ins}{\from{\jobname.dtx}{install}}
+ \file{\NWEJM@classname.drv}{\from{\jobname.dtx}{driver}}%
+}%
+\nopreamble\nopostamble
+% \usedir{doc/latex/\NWEJM@classname}
+% \generate{
+% \file{README.md}{\from{\jobname.dtx}{readme}}
+% }
+\usedir{doc/latex/\NWEJM@classname/\NWEJM@documentation}
+\generate{
+ \file{latexmkrc}{\from{\jobname.dtx}{latexmkrc}}
+}
+\usedir{doc/latex/\NWEJM@classname/\NWEJM@addons/completion}
+\generate{%
+ \file{\NWEJM@classname.cwl}{\from{\jobname.dtx}{class-cwl}}
+ \file{\NWEJM@classname art.cwl}{\from{\jobname.dtx}{classart-cwl}}
+}%
+\ifx\fmtname\nameofplainTeX
+ \expandafter\endbatchfile
+\else
+ \expandafter\endgroup
+\fi
+%</internal>
+% \fi
+%
+% \iffalse
+%<*driver>
+\ProvidesFile{nwejm.dtx}
+\documentclass{ltxdoc}
+\usepackage[a4paper,margin=25mm,left=50mm,nohead]{geometry}
+\usepackage[numbered]{hypdoc}
+
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\begin{document}
+ \DocInput{\jobname.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \GetFileInfo{\jobname.dtx}
+% \DoNotIndex{\newcommand,\newenvironment}
+%
+%\title{\textsf{nwejm} --- Class for the journal "North-Western European Journal of Mathematics"\thanks{This file
+% describes version \fileversion, last revised \filedate.}
+%}
+%\author{Denis Bitouze\thanks{E-mail: denis.bitouze@lmpa.univ-littoral.fr}}
+%\date{Released \filedate}
+%
+%\maketitle
+%
+%\changes{v0.96}{2016/04/14}{Some improvements. Incompatible changes: big sets
+% macros prefixed with ×bb×, e.g. ×\bbR× instead of ×\R×.}
+% \changes{v0.92}{2015/12/10}{First usable release}
+% \changes{v0.9}{2015/09/30}{First public release}
+%
+% \begin{abstract}
+% ==== Put abstract text here. ====
+% \end{abstract}
+%
+% \section{Usage}
+%
+% ==== Put descriptive text here. ====
+%
+% \DescribeMacro{\dummyMacro}
+% This macro does nothing.\index{doing nothing|usage} It is merely an
+% example. If this were a real macro, you would put a paragraph here
+% describing what the macro is supposed to do, what its mandatory and
+% optional arguments are, and so forth.
+%
+% \DescribeEnv{dummyEnv}
+% This environment does nothing. It is merely an example.
+% If this were a real environment, you would put a paragraph here
+% describing what the environment is supposed to do, what its
+% mandatory and optional arguments are, and so forth.
+%
+%\StopEventually{^^A
+% \PrintChanges
+% \PrintIndex
+%}
+%
+% \section{Implementation}
+%
+% \begin{macrocode}
+%<*class|class-article>
+% \end{macrocode}
+%
+% We start by loading some packages that are required to define the \nwejmcl{}
+% (and its options). Since the latter 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{itemize}
+% \item A generic document command parser:
+% \begin{macrocode}
+\RequirePackage{xparse}
+% \end{macrocode}
+% \item \LaTeXe{} option processing using \LaTeX3 keys:
+% \begin{macrocode}
+\RequirePackage{l3keys2e}
+% \end{macrocode}
+% \item Sorting lists (since \Pkg{l3sort} is about to move from `experimental'
+% to `stable' status, the \File{l3sort.sty} will be removed soonish):
+% \begin{macrocode}
+\IfFileExists{l3sort.sty}{
+ \RequirePackage{l3sort}
+}{
+}
+% \item e-\TeX{} tools for \LaTeX:
+% \begin{macrocode}
+\RequirePackage{etoolbox}
+% \end{macrocode}
+% \end{itemize}
+%
+% In order to avoid ×_nwejm× 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}
+%<@@=nwejm>
+% \end{macrocode}
+%
+% \subsection{\LaTeX3 loading}
+%
+% For debugging purpose, \Pkg{expl3} could be loaded with its
+% \docAuxKey*{check-declarations} option.
+% \begin{macrocode}
+% \PassOptionsToPackage{check-declarations}{expl3}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+% \end{macrocode}
+%
+% The class is declared in the \LaTeX3{}'s way.
+% \begin{macrocode}
+\ProvidesExplClass
+%<class> {nwejm}
+%<class-article> {nwejmart}
+ {2015/09/30}
+ {1.00}
+ {
+ Class for the journal "North-Western European Journal of Mathematics".
+ }
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ExplSyntaxOn
+% \end{macrocode}
+%
+% \section{Messages}
+%
+% In this section, some messages are declared for future use.
+% \begin{macrocode}
+\msg_new:nnnn{nwejm}{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{nwejmart}{Unknown~choice}{Choice~`#3'~invalid!}
+{Please~specify~#1=#2.}%
+\msg_new:nnn{nwejmart}{Unknown~tag}{There~ isn't~ any~ affiliation~ tagged~
+ with~ `#1'.~ This~ one~ will~ be~ ignored.}%
+\msg_new:nnn{nwejmart}{Unknown~language}{The~ option~ `#1'~ you~ passed~ isn't~
+ a~ valid~ language~ name~ (only~ `english',~ `french',~ `ngerman',~ `german',~
+ `dutch'~ are~ accepted).~ `english'~ will~ be~ used~ instead.}%
+\msg_new:nnn{nwejmart}{No~keyword}{You~ haven't~ specify~ any~ keyword~ for~
+ this~ article!}%
+\msg_new:nnn{nwejmart}{No~MSC}{You~ haven't~ specify~ any~ Mathematical~
+ Subject~ Classification~ (MSC)~ for~ this~ article!}%
+\msg_new:nnn{nwejmart}{No~abstract}{You~ haven't~ specify~ any~ abstract~ for~
+ this~ article!}%
+\msg_new:nnn{nwejmart}{Starred~AMS~environments}{The~ starred~AMS~environment~
+ `#1*'~should~ be~ avoided.~ It~ will ~be ~ replaced ~ by its~ unstarred~ counterpart~ `#1'.}%
+\msg_new:nnn{
+%<class-article> nwejmart
+%<class> nwejm
+}{Command~restricted~to~document~body~used~in~preamble}{The~command~#1
+ can~be~used~only~in~document~body~and~not~in~preamble!}%
+\msg_new:nnn{nwejmart}{Article~setup~not~consistent}{The~ article~ setup~
+ concerning~ the~ option~ `#1'~ has~ changed~ after~ its~ 1st~ use.~ Please~
+ use~ \articlesetup~ command~ just~ once,~ just~ after~ the~ beginning~ of~
+ the~ document.}%
+\msg_new:nnn{nwejmart}{Wrong~paired~delimiter's~size~parameter}{The~
+ size~parameter~specified~ (`#1')~is~ not~ allowed:~ only~ `0',~`1'~(or~
+ `\string\big'),~`2'~(or~ `\string\Big'),~`3'~(or~ `\string\big'g)~and~`4'~(or~
+ `\string\Bigg')~ are ~ allowed. ~ It~ will~ be~ ignored.}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</class|class-article>
+% \end{macrocode}
+%
+% \subsection{Class options}
+%
+% \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 (most debugging purpose),
+% \item ...
+% \end{itemize}
+%
+% \begin{macrocode}
+\bool_new:N \g_@@_for_authors_bool
+\bool_new:N \g_@@_cover_bool
+\bool_new:N \g_@@_coverpage_bool
+\bool_new:N \g_@@_inside_pages_bool
+% \end{macrocode}
+%
+% \begin{macrocode}
+\keys_define:nn { nwejm }
+{
+ 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,
+ output .choice:,
+ output / frontcover .code:n = {%
+ \bool_gset_true:N \g_@@_for_printer_bool%
+ \bool_gset_true:N \g_@@_cover_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 = {%
+ },%
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</class>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*class-article>
+% \end{macrocode}
+%
+% \begin{macrocode}
+\bool_new:N \g_@@_language_specified_bool
+\cs_new_protected:Nn \_@@_language:n
+{
+ \bool_gset_true:N \g_@@_language_specified_bool%
+ \PassOptionsToPackage{main=#1}{babel}
+ \PassOptionsToPackage{#1}{varioref}
+ \AtBeginDocument{
+ \LoadDictionaryFor{#1}{nwejm}
+ }
+ \AtEndPreamble{%
+ \FCloadlang{#1}
+ }
+ \AfterEndPreamble{%
+ \selectlanguage{#1}
+ }
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</class-article>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*class|class-article>
+% \end{macrocode}
+%
+% \begin{macrocode}
+\keys_define:nn { nwejm }
+{
+ 10pt .code:n = {%
+ \PassOptionsToClass{10pt}{book}
+ },%
+ 11pt .code:n = {%
+ \PassOptionsToClass{11pt}{book}
+ },%
+ 12pt .code:n = {%
+ \PassOptionsToClass{12pt}{book}
+ },%
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</class|class-article>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*class-article>
+% \end{macrocode}
+%
+% \begin{macrocode}
+ english .code:n = {
+ \_@@_language:n {english}
+ },%
+ french .code:n = {
+ \_@@_language:n {french}
+ },%
+ german .code:n = {
+ \_@@_language:n {ngerman}
+ },%
+ ngerman .code:n = {
+ \_@@_language:n {ngerman}
+ },%
+ dutch .code:n = {
+ \_@@_language:n {dutch}
+ },%
+ % unknown .code:n = {
+ % \msg_warning:nnx{nwejmart}{Unknown~language}{\CurrentOption}
+ % \tl_gset:Nn \g_@@_language_tl {english}
+ % },
+% \end{macrocode}
+%
+% An option to prevent automatic local table of contents at the end of
+% independent articles.
+% \begin{macrocode}
+ nolocaltoc .code:n = {
+ \bool_gset_true:N \g_@@_nolocaltoc_bool
+ },%
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</class-article>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*class|class-article>
+% \end{macrocode}
+%
+% \begin{macrocode}
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ProcessKeysOptions { nwejm }
+% \end{macrocode}
+%
+% \subsection{Class loading}
+%
+% \begin{macrocode}
+% As subsequent class, the \Cls{book} is loaded.
+% \begin{macrocode}
+\LoadClass { book }
+\PassOptionsToPackage{export}{adjustbox}%
+\PassOptionsToPackage{fleqn}{mathtools}%
+\PassOptionsToPackage{french,ngerman,dutch,english,noabbrev}{cleveref}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</class|class-article>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*class-article>
+% \end{macrocode}
+%
+% We now treat the case where no language option is passed at ×\documentclass×
+% level (×english× is the default).
+% \begin{macrocode}
+\bool_if:NF {\g_@@_language_specified_bool} {
+ \_@@_language:n {english}
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</class-article>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*class>
+% \end{macrocode}
+%
+% We load the dictionaries containing the translations needed for theorems and
+% the like.
+% \begin{macrocode}
+\AtBeginDocument{
+ \LoadDictionaryFor{french}{nwejm}
+ \LoadDictionaryFor{english}{nwejm}
+ \LoadDictionaryFor{dutch}{nwejm}
+ \LoadDictionaryFor{german}{nwejm}
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\PassOptionsToPackage{french,ngerman,dutch,english}{babel}
+\PassOptionsToPackage{french,ngerman,dutch,english}{varioref}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</class>
+% \end{macrocode}
+%
+% \section{Packages loading}
+%
+% \begin{macrocode}
+%<*class|class-article>
+% \end{macrocode}
+%
+% Many of the \nwejmcl{} features are provided by third party packages. In this
+% section, we load them and outline their features interesting from the \nwejmcl{}
+% point of view.\todo{When possible, the list of loaded packages should be split
+% into two lists: one of the packages needed just by \nwejm{} (for both its logic
+% and its layout) and one of packages useful for the end user.}
+%
+% \begin{enumerate}
+% \item Selective filtering of error messages and warnings
+% \begin{macrocode}
+\RequirePackage{silence}
+% \end{macrocode}
+%
+% We filter harmless warnings (from \pkg{kpfonts}, \pkg{etex}, \pkg{etoc}).
+% \begin{macrocode}
+\WarningFilter[nwejm]{kpfonts}{With 'easyscsl' option, don't fit together}
+\WarningFilter[nwejm]{etex}{Extended allocation already in use}
+\WarningFilter[nwejm]{etoc}{package tocvsec2 detected and its modification of}
+\ActivateWarningFilters[nwejm]
+% \end{macrocode}
+%
+% \item Detecting and warning about obsolete \LaTeX{} commands:
+% \begin{macrocode}
+\RequirePackage[l2tabu,orthodox]{nag}
+% \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}
+\pdftex_if_engine:TF
+ {
+ \RequirePackage[T1]{fontenc}
+ \RequirePackage[utf8]{inputenc}
+ }{
+ \RequirePackage{fontspec}
+ }
+% \end{macrocode}
+%
+% \item Compile \TeX{} pictures stand-alone or as part of a document:
+% \begin{macrocode}
+%<class>\RequirePackage[group=false,subpreambles,sort]{standalone}%
+% \end{macrocode}
+%
+% \item Formatting both header and footers (pagestyle), and sections headers:
+% \begin{macrocode}
+\RequirePackage[pagestyles]{titlesec}%
+% \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 Put a grey textual watermark on document pages (loaded only if
+% "forauthors" \nwejm{}'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 A new reference scheme for \LaTeX{}, giving the total number of pages in
+% the document:
+% \begin{macrocode}
+%<class>\RequirePackage{zref-totpages}
+% \end{macrocode}
+%
+% \item A new reference scheme for \LaTeX{}, providing the facilities of the
+% \package{xr} and \package{xr-hyper} packages:
+% \begin{macrocode}
+%<class>\RequirePackage{zref-xr}%
+% \end{macrocode}
+%
+% \item A range of footnote options
+% \begin{macrocode}
+\RequirePackage[multiple]{footmisc}%
+% \end{macrocode}
+%
+% \item Extension of \LaTeX{}'s color facilities:
+% \begin{macrocode}
+\RequirePackage[svgnames]{xcolor}%
+% \end{macrocode}
+%
+% \item Define commands that appear not to eat spaces:
+% \begin{macrocode}
+\RequirePackage{xspace}%
+% \end{macrocode}
+%
+% \item Context sensitive quotation facilities:
+% \begin{macrocode}
+\RequirePackage[autostyle]{csquotes}%
+% \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 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. It has to be loaded before \pkg{datatool} and \pkg{kpfonts}.}:
+% \begin{macrocode}
+\RequirePackage{mathtools}
+% \end{macrocode}
+%
+% \item Extensions to theorem environments:
+% \begin{macrocode}
+\RequirePackage[thmmarks,amsmath]{ntheorem}
+% \end{macrocode}
+%
+% \item Support for using RSFS fonts in maths:
+% \begin{macrocode}
+\RequirePackage{mathrsfs}
+% \end{macrocode}
+%
+% \item Vector arrows:
+% \begin{macrocode}
+\RequirePackage{esvect}
+% \end{macrocode}
+%
+% Load of main font to be used:
+% \begin{macrocode}
+%<class>\RequirePackage[easyscsl,noDcommand]{kpfonts}
+%<class-article>\RequirePackage[noDcommand]{kpfonts}
+% \end{macrocode}
+%
+% % \item Hooks to do actions on every page or on the current page:
+% % \begin{macrocode}
+% \RequirePackage{everypage}
+% % \end{macrocode}
+%
+% \item Flexible and easy interface to page dimensions:
+% \begin{macrocode}
+\RequirePackage{geometry}
+% \end{macrocode}
+%
+% \item Internationalisation of \LaTeXe{} packages:
+% \begin{macrocode}
+\RequirePackage{translations}%
+% \end{macrocode}
+%
+% \item Display the value of a \LaTeX{} counter in a variety of formats
+% \begin{macrocode}
+\RequirePackage{fmtcount}%
+% \end{macrocode}
+%
+% \item Multilingual support for Plain TeX or LaTeX:
+% \begin{macrocode}
+\RequirePackage{babel}%
+% \end{macrocode}
+%
+% \item Intelligent page references:
+% \begin{macrocode}
+\RequirePackage{varioref}
+% \end{macrocode}
+%
+% \item Section numbering (and table of contents control but this is canceled
+% by \Package{etoc}):
+% \begin{macrocode}
+\RequirePackage{tocvsec2}
+% \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[useregional]{datetime2}%
+% \end{macrocode}
+%
+% \item Customization of lists:
+% \begin{macrocode}
+\RequirePackage[inline]{enumitem}%
+% \end{macrocode}
+%
+% \item A couple of things involving environments:
+% \begin{macrocode}
+\RequirePackage{environ}
+% \end{macrocode}
+%
+% \item Print page grid in background:
+% \begin{macrocode}
+%<class>\RequirePackage[foreground]{pagegrid}%
+% \end{macrocode}
+%
+% \item Tools to load and manipulate data:
+% \begin{macrocode}
+%<class>\RequirePackage{datatool}%
+% \end{macrocode}
+%
+% \item Control float placement:
+% \begin{macrocode}
+%<class>\RequirePackage{placeins}%
+% \end{macrocode}
+%
+% \item Improve on \LaTeX{}'s footnote handling (useful for its ×\savenotes× and
+% ×\spewnotes× commands added to theorems environment in order footnotes are
+% not trapped within them).
+% \begin{macrocode}
+\RequirePackage{footnote}%
+% \end{macrocode}
+%
+% \item Hypertext marks:
+% \begin{macrocode}
+\RequirePackage[hyperfootnotes=false,pdfencoding=unicode]{hyperref}%
+\AtBeginDocument{%
+ \hypersetup{hidelinks,hypertexnames=false}%
+}%
+% \end{macrocode}
+%
+% \item Adjusting the anchors of captions:
+% \begin{macrocode}
+\RequirePackage[all]{hypcap}
+% \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}
+%
+% \item Automatic equation references:
+% \begin{macrocode}
+\RequirePackage{autonum}
+% \end{macrocode}
+%
+% \item Programmable bibliographies and citations (loaded with a dedicated style):
+% \begin{macrocode}
+\RequirePackage[backend=biber,style=nwejm]{biblatex}%
+\ExecuteBibliographyOptions{defernumbers=true,dashed=false,uniquename=init,backref,safeinputenc}
+% \end{macrocode}
+%
+% \end{enumerate}
+%
+% Setings of the glossaries and acronyms.
+% \begin{macrocode}
+\makeglossaries
+%
+\setglossarystyle{indexhypergroup}
+\setacronymstyle{long-sc-short}
+\glsdisablehyper
+% \end{macrocode}
+%
+% \section{Counters}
+%
+% In this section, we define some counters for future use.
+%
+% \begin{macro}{\g_@@_articles_int}
+% 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}
+% \end{macro}
+%
+% \begin{macro}{\g_@@_counters_to_be_reset_clist}
+% We create a new comma list that will gather all the counters (in particular
+% the ones associated to the (numbered) theorem environments, defined either
+% by the or by the user), we want to be able to easily set to zero at the end
+% of each article input:
+% \begin{macrocode}
+\clist_new:N \g_@@_counters_to_be_reset_clist
+% \end{macrocode}
+% \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 { 1 }
+\int_const:Nn \c_@@_first_issue_year_int { 2016 }
+\int_const:Nn \c_@@_first_issue_month_int { 1 }
+\int_const:Nn \c_@@_interval_in_months_int { 6 }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Strings and keywords}
+%
+% We now declare some private string constants.
+%
+% \begin{macrocode}
+%</class|class-article>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*class>
+% \end{macrocode}
+%
+% For the backcover table of contents.
+% \begin{macrocode}
+\tl_const:Nn \c_@@_backcover_tableofcontents_string_tl {Volume's~Contents}
+% \end{macrocode}
+% For the editor in chief.
+% \begin{macrocode}
+\tl_const:Nn \c_@@_editorinchief_string_tl {Editor~in~Chief}
+% \end{macrocode}
+% For the associate editors.
+% \begin{macrocode}
+\tl_const:Nn \c_@@_associate_editors_string_tl {Associate~Editors}
+% \end{macrocode}
+% For the managing editor.
+% \begin{macrocode}
+\tl_const:Nn \c_@@_managing_editor_string_tl {Managing~Editor}
+% \end{macrocode}
+% For the field editor.
+% \begin{macrocode}
+\tl_const:Nn \c_@@_field_editor_string_tl {Field~Editor}
+% \end{macrocode}
+% For the editorial secretariat.
+% \begin{macrocode}
+\tl_const:Nn \c_@@_editorial_secretariat_string_tl {Secretariat}
+% \end{macrocode}
+% For the phone.
+% \begin{macrocode}
+\tl_const:Nn \c_@@_phone_string_tl {Tel.}
+% \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 {\LaTeX{}~class}
+% \end{macrocode}
+% For the computer engineering.
+% \begin{macrocode}
+\tl_const:Nn \c_@@_computer_engineering_string_tl {Computer~engineering~issues}
+% \end{macrocode}
+% For the printer.
+% \begin{macrocode}
+\tl_const:Nn \c_@@_printer_string_tl {Printing~service}
+% \end{macrocode}
+% For configuration file.
+% \begin{macrocode}
+\tl_const:Nn \c_@@_configuration_file_string_tl {nwejm.cfg}
+% \end{macrocode}
+% For the front cover header texts.
+% \begin{macrocode}
+\tl_const:Nn \c_@@_frontcover_header_left_string_tl {
+ \int_use:N\g_@@_issue_year_int%
+}
+\tl_const:Nn \c_@@_frontcover_header_right_string_tl {
+ Number\space\int_use:N\g_@@_issue_number_int%
+}
+% \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 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 authors' instructions file.
+% \begin{macrocode}
+\tl_const:Nn \c_@@_authors_instructions_file_extension_tl {ain}
+\tl_const:Nn \c_@@_authors_instructions_file_tl {\c_job_name_tl.\c_@@_authors_instructions_file_extension_tl}
+% \end{macrocode}
+% For the authors instructions.
+% \begin{macrocode}
+\tl_const:Nn \c_@@_authors_instructions_string_tl {Instructions~to~authors}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</class>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*class|class-article>
+% \end{macrocode}
+%
+% For the dates keywords.
+% \begin{macrocode}
+\tl_const:Nn \c_@@_date_received_tl {received}
+\tl_const:Nn \c_@@_date_accepted_tl {accepted}
+\tl_const:Nn \c_@@_date_online_tl {online}
+% \end{macrocode}
+% For the dates separators.
+% \begin{macrocode}
+\tl_const:Nn \c_@@_dates_separator_tl {/}
+% \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_@@_images_directory_string_tl}
+% \end{macrocode}
+% For the preliminary versions sent to authors for checking.
+% \begin{macrocode}
+\tl_const:Nn \c_@@_preliminary_version_string_tl {%
+ This~document~is~a~draft~that~lets~you~check~the~integrity~of~original~text~and
+ bibliography~of~your~article~to~appear~in~the~next~issue~of~the
+ \c_@@_journal_title_string_tl.~The~current~layout~may~not~be~the~final~one.%
+}
+% \end{macrocode}
+% For the \textsc{msc}.
+% \begin{macrocode}
+\tl_const:Nn \c_@@_msc_string_tl {\textsc{msc}}
+% \end{macrocode}
+%
+% For the colon, possibily preceded by the relevant space (in French).
+% \begin{macrocode}
+\tl_const:Nn \c_@@_colon_tl {
+ \ifcurrentbaselanguage{french}{\FBcolonspace}{}:
+ % \ifundef{\Fcolonspace}{\FBcolonspace}{\Fcolonspace}:
+}
+% \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 name of the file containing the bibliography of the current issue.
+% \begin{macrocode}
+\tl_const:Nn \c_@@_issue_bib_file_suffix_string_tl {@@}
+\tl_const:Nn \c_@@_issue_bib_file_string_tl {\c_job_name_tl\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}
+\tl_const:Nn \c_@@_issue_bib_key_tl {\int_use:N \g_@@_issue_number_int}
+% \end{macrocode}
+%
+% For the journal's short and long titles.
+% \begin{macrocode}
+\tl_const:Nn \c_@@_journal_short_title_string_tl {\textsc{nwejm}}
+\tl_const:Nn \c_@@_journal_title_string_tl {
+ North-Western~European~Journal~of~Mathematics%
+}
+\tl_const:Nn \c_@@_journal_front_cover_title_string_tl {
+ North-Western~European\\Journal\\of\\Mathematics%
+}
+% \end{macrocode}
+%
+% For the names of the underlying classes.
+% \begin{macrocode}
+\tl_const:Nn \c_@@_nwejm_class_name_tl {nwejm}
+\tl_const:Nn \c_@@_nwejmarticle_class_name_tl {nwejmart}
+% \end{macrocode}
+%
+% \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_@@_mainmatter_bool
+\bool_new:N \g_@@_backmatter_bool
+\bool_new:N \g_@@_backcover_bool
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macrocode}
+\bool_new:N \g_@@_date_specified_bool
+% \end{macrocode}
+%
+% \subsection{Dimensions}
+%
+% \subsubsection{Geometry of the page}
+%
+% \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 { 240mm}
+\dim_const:Nn \c_@@_layoutwidth_dim { 170mm}
+% \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}
+%
+% \begin{macrocode}
+%</class|class-article>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*class>
+% \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}
+\zexternaldocument[self]{\jobname}%
+\int_new:N \g_@@_total_pages_number_int%
+\int_new:N \g_@@_total_inside_pages_number_int%
+% \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}
+%
+% \begin{macrocode}
+%</class>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*class|class-article>
+% \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}
+%
+% \begin{macrocode}
+\dim_const:Nn \c_@@_topmargin_dim { 20mm}
+\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 { 9.5mm}
+\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 { 5mm }
+\dim_const:Nn \c_@@_botmargin_dim { 30mm}
+\dim_const:Nn \c_@@_footskip_dim { 10mm}
+\dim_const:Nn \c_@@_margin_frontcover_dim { 15mm }
+\dim_const:Nn \c_@@_bottom_frontcover_dim { 15mm }
+\dim_const:Nn \c_@@_left_minipage_frontcover_dim { .4\linewidth }
+\dim_const:Nn \c_@@_right_minipage_frontcover_dim { .6\linewidth }
+% \end{macrocode}
+%
+% \begin{macrocode}
+\dim_const:Nn \c_@@_innermargin_dim { 23mm }
+\dim_const:Nn \c_@@_outermargin_dim { 30mm }
+\dim_const:Nn \c_@@_inside_cover_box_width_dim { 150mm }%
+\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_@@_front_matter_extra_innermargin_dim { \c_zero_dim }
+\dim_const:Nn \c_@@_front_matter_extra_outermargin_dim { \c_zero_dim }
+\dim_const:Nn \c_@@_inside_cover_offset_dim { \c_zero_dim }%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% We set the default geometry of the page.
+% \begin{macrocode}
+\geometry{%
+ papersize={\c_@@_paperwidth_dim,\c_@@_paperheight_dim}
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</class|class-article>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*class>
+% \end{macrocode}
+%
+% We create a constant token list that contains the geometry of the front cover.
+% \begin{macrocode}
+\bool_if:NTF {\g_@@_cover_bool} {
+ \dim_show:N \c_@@_topmargin_frontcover_dim
+ \dim_show:N \c_@@_headsep_frontcover_dim
+ \dim_show:N \c_@@_headheight_dim
+ \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
+ ,top=\c_@@_topmargin_frontcover_dim
+ ,headsep=\c_@@_headsep_frontcover_dim
+ ,headheight=\c_@@_headheight_dim
+ ,bottom=\c_@@_bottom_frontcover_dim
+ ,footskip=\c_@@_footskip_dim
+ ,outer=\c_@@_margin_frontcover_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_@@_bottom_frontcover_dim
+ ,footskip=\c_@@_footskip_dim
+ ,hmargin=\c_@@_margin_frontcover_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=1cm
+ % ,outer=1cm
+ ,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 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
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</class>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*class|class-article>
+% \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
+ ,textwidth=\c_@@_layoutwidth_dim*3/4
+ ,textheight=\c_@@_layoutheight_dim*3/4
+ % ,marginratio={4\string :6,5\string :7}
+ ,inner=\c_@@_innermargin_dim
+ ,headheight=\c_@@_headheight_dim
+ ,footskip=\c_@@_footskip_dim
+ %
+ % ,layoutsize={\c_@@_layoutwidth_dim,\c_@@_layoutheight_dim}
+ % ,layoutoffset=\c_@@_potential_layoutoffset_dim
+ % % ,bindingoffset=\c_@@_potential_bindingoffset_dim
+ % ,top=\c_@@_topmargin_dim%
+ % ,headheight=\c_@@_headheight_dim
+ % ,headsep=\c_@@_headsep_dim
+ % ,bottom=\c_@@_botmargin_dim
+ % ,footskip=\c_@@_footskip_dim
+ % ,inner=\c_@@_innermargin_dim
+ % ,outer=\c_@@_outermargin_dim
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</class|class-article>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*class>
+% \end{macrocode}
+%
+% \section{Miscellaneous patches}
+%
+% 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 "\AtEndDocument" and "\preto\@enddocumenthook" should be used instead
+% (see \url{http://tex.stackexchange.com/q/240318/18401}).
+% \begin{macrocode}
+\bool_if:NF {\g_@@_coverpage_bool} {
+ \bool_if:NF {\g_@@_inside_pages_bool} {
+ \preto\@enddocumenthook{
+% \end{macrocode}
+%
+% The inside front cover and front cover pages are numbered \enquote{i} and
+% \enquote{ii} hence the inside back cover and back cover pages are numbered
+% \enquote{iii} and \enquote{iv}.
+% \begin{macrocode}
+ \cleardoublepage
+ \pagenumbering{roman}%
+ \setcounter{page}{3}
+% \end{macrocode}
+%
+% On the backcover, we want the table of contents (displayed as a chapter,
+% therefore by default starting on a right page) to be displayed on a left page.
+% \begin{macrocode}
+ \bool_gset_true:N \g_@@_backmatter_bool
+ \g_@@_display_inside_backcover_tl
+ \newpage
+ \@openrightfalse
+ \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 } {
+% \AtEndDocument{%
+% \prg_replicate:nn
+% { \int_mod:nn { 4 - \int_mod:nn { \getpagerefnumber{LastPage} } { 4 } } { 4 } }
+% { \thispagestyle{@@_blank_pages_ps}\null\clearpage }
+% }
+% }
+% }
+% }
+% % \end{macrocode}
+%
+% \section{Displaying the table of contents}
+%
+% \begin{macrocode}
+\bool_new:N \g_@@_tableofcontents_already_used_bool
+\renewcommand\etocbeforetitlehook
+{%
+ \DeclareNameAlias{labelname}{giveninits-last}
+ \bool_if:NF {\g_@@_for_authors_bool}{
+ \bool_if:NF {\g_@@_tableofcontents_already_used_bool}{
+ \g_@@_frontmatter_switch_tl
+ \phantomsection
+ \hypertarget{@@_toc}{}
+ \bookmark[dest=@@_toc,level=chapter]{\contentsname}
+ }
+ }
+}%
+\renewcommand\etocaftertochook
+{%
+ \bool_if:NF {\g_@@_for_authors_bool}{
+ \bool_if:NF {\g_@@_tableofcontents_already_used_bool}{
+ \normalsize%
+ \clearpage%
+ \bool_gset_false:N \g_@@_frontmatter_bool%
+ \g_@@_mainmatter_switch_tl
+ }
+ }
+ \bool_gset_true:N \g_@@_tableofcontents_already_used_bool
+}%
+% \end{macrocode}
+%
+% \section{Page styles}
+%
+% \subsection{Front cover page style}
+%
+% \begin{macrocode}
+ % \box_new:N \l_@@_journal_frontcover_logo_box
+ % \box_new:N \l_@@_journal_volume_box
+ % \AfterEndPreamble{%
+ % \hbox_set:Nn \l_@@_journal_volume_box
+ % {
+ % \color{Navy}
+ % \LARGE
+ % \bfseries
+ % \sffamily
+ % \adjustbox{stack=l}{%
+ % \c_@@_frontcover_header_left_string_tl
+ % \\\c_@@_frontcover_header_right_string_tl
+ % }
+ % }
+ % \hbox_set:Nn \l_@@_journal_frontcover_logo_box
+ % {
+ % \includegraphics[width=3cm]{ nwejm-logo }
+ % }
+ % \hbox_set_to_wd:Nnn \l_@@_journal_frontcover_logo_box { 1cm }
+ % {
+ % \box_move_down:nn
+ % {
+ % \box_ht:N \l_@@_journal_frontcover_logo_box / 2
+ % -
+ % \box_ht:N \l_@@_journal_volume_box / 2
+ % }
+ % {
+ % \box_use:N \l_@@_journal_frontcover_logo_box
+ % }
+ % }
+% \box_set_ht:Nn \l_@@_journal_frontcover_logo_box { \c_zero_dim }
+% \box_set_dp:Nn \l_@@_journal_frontcover_logo_box { \c_zero_dim }
+% }
+%
+\newpagestyle{@@_frontcover_ps}[]{%
+ \sethead
+ {
+ \color{Navy}
+ \Large
+ \bfseries
+ \sffamily
+ \adjustbox{stack=l}{%
+ \c_@@_frontcover_header_left_string_tl
+ \\\c_@@_frontcover_header_right_string_tl
+ }
+ }%
+ {}%
+ {%
+ % \l_@@_journal_frontcover_logo_box
+ {\includegraphics[width=1cm]{ nwejm-logo }}
+ }%
+ %
+ \setfoot%
+ {}%
+ {}%
+ {}%
+}%
+% \end{macrocode}
+%
+% \subsection{Inside front cover page style}
+%
+% \begin{macrocode}
+\newpagestyle{@@_inside_frontcover_ps}[]{%
+ \sethead%
+ {}%
+ {}%
+ {}%
+ %
+ \setfoot%
+ {}%
+ {}%
+ {}%
+}%
+% \end{macrocode}
+%
+% \subsection{Front matter page style}
+%
+% \begin{macrocode}
+\newpagestyle{@@_frontmatter_ps}[]{%
+ \sethead%
+ {}%
+ {}%
+ {}%
+ %
+ \setfoot%
+ {}%
+ {\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%
+ {}%
+ {\thepage}%
+ {}%
+}%
+% \end{macrocode}
+%
+% \subsection{Inside back cover page style}
+%
+% \begin{macrocode}
+\newpagestyle{@@_inside_backcover_ps}[]{%
+ \sethead%
+ {}%
+ {}%
+ {}%
+ %
+ \setfoot%
+ {}%
+ {}%
+ {}%
+}%
+% \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}
+%
+% \subsection{Main matter page style}
+%
+% \begin{macrocode}
+\tl_new:N \l_@@_section_header_tl
+\tl_set:Nn \l_@@_section_header_tl {
+ \ifthesection{%
+ \thesection.~%
+ }{%
+ }
+ \sectiontitle
+}%
+\newpagestyle{@@_mainmatter_ps}[]{%
+ \sethead%
+ [
+ \tl_if_exist:NT {\g_@@_short_title_tl}
+ {
+ \tl_if_empty:NF \g_@@_short_title_tl {%
+ \slshape\g_@@_short_title_tl
+ }
+ }
+ ]%
+ [%
+ ]%
+ [
+ \DeclareNameAlias{labelname}{giveninits-last}
+ \AtNextCitekey{\defcounter{maxnames}{2}}\citeauthor{\g_@@_article_bib_key_tl}
+ ]%
+ {
+ \slshape\l_@@_section_header_tl
+ }%
+ {%
+ }%
+ {
+ }%
+ %
+ \setfoot%
+ {}%
+ {\thepage}%
+ {}%
+}
+% \end{macrocode}
+%
+% \subsection{Article's title page style}
+%
+% \begin{macrocode}
+ \box_new:N \l_@@_journal_logo_box
+ \box_new:N \l_@@_journal_name_box
+ \AfterEndPreamble{%
+ \hbox_set:Nn \l_@@_journal_name_box
+ {
+ \bfseries%
+ \adjustbox{stack=l}{%
+ \c_@@_journal_title_string_tl
+%<class> \\\tl_mixed_case:n{\GetTranslation{volume-abbreviated}}\space\int_use:N \g_@@_issue_number_int
+%<class-article> \mbox{}
+}
+}
+\hbox_set:Nn \l_@@_journal_logo_box
+{
+ \includegraphics[width=1cm]{ nwejm-logo-NB }
+}
+\hbox_set_to_wd:Nnn \l_@@_journal_logo_box { 1cm }
+{
+ \box_move_down:nn
+ {
+ \box_ht:N \l_@@_journal_logo_box / 2
+ -
+ \box_ht:N \l_@@_journal_name_box / 2
+ }
+ {
+ \box_use:N \l_@@_journal_logo_box
+ }
+}
+\box_set_ht:Nn \l_@@_journal_logo_box { \c_zero_dim }
+\box_set_dp:Nn \l_@@_journal_logo_box { \c_zero_dim }
+}
+%
+\newpagestyle{@@_article_title_ps}[]{%
+ % \widenhead{\c_zero_dim}{\c_zero_dim}
+ \sethead%
+ {
+ \box_use:N \l_@@_journal_name_box
+ }%
+ {%
+ }%
+ {
+ \box_use:N \l_@@_journal_logo_box
+ }%
+ %
+ \setfoot%
+ {}%
+ {\thepage}%
+ {}%
+}
+% \end{macrocode}
+%
+% Patch needed in order entries of the framed TOC on back cover don't overlap
+% the page numbers.
+% \begin{macrocode}
+\def\@pnumwidth{\@tocrmarg}
+% \end{macrocode}
+%
+% \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 of the front cover and the inside front cover.
+% \end{itemize}
+%
+% \begin{macrocode}
+\AtBeginDocument{%
+ \graphicspath{{\c_@@_issue_images_path_string_tl//}{../\c_@@_issue_images_path_string_tl//}}
+ % \glsdisablehyper
+}
+% \end{macrocode}
+%
+% At the begin of document, we automatically switch to
+% \begin{itemize}
+% \item frontmatter\footnote{Mainly: page numbers in roman.} in the \enquote{issue}
+% version of the class (the first pages are for the table of contents which
+% was decided to be in frontmatter),
+% \item mainmatter\footnote{Page numbers in arabic, right page style, right
+% geometry of the page.} in the \enquote{article} version of the class.
+% \end{itemize}
+% \begin{macrocode}
+%<class-article> \AtBeginDocument{\g_@@_mainmatter_switch_tl}
+% \end{macrocode}
+%
+% \section{Options}
+%
+% In this section, options used by some of the document commands defined by the
+% class are treated.
+%
+% \begin{macrocode}
+%</class|class-article>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*class>
+% \end{macrocode}
+%
+% \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_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_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}{email}
+% \begin{macro}{url}
+% \begin{macro}{issn}
+% \begin{macro}{isbn}
+% The keys options are created.
+% \begin{macrocode}
+\keys_define:nn { nwejm/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,
+ 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:,
+ address .value_required:,
+ phone .value_required:,
+ email .value_required:,
+ url .value_required:,
+ issn .value_required:,
+ isbn .value_required:,
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macrocode}
+%</class>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*class|class-article>
+% \end{macrocode}
+%
+% \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}{volume}
+% The keys options are created.
+% \begin{macrocode}
+\keys_define:nn { nwejm/issuesetup }
+{
+ number .int_gset:N = \g_@@_issue_number_int,
+ volume .int_gset:N = \g_@@_issue_volume_int,
+% \end{macrocode}
+%
+% All these options, when used, must receive a value.
+% \begin{macrocode}
+ volume .value_required:,
+% \end{macrocode}
+%
+% If "number" option is not used, its initial value is set to $0$.
+% number.
+% \begin{macrocode}
+ volume .initial:n = 0,
+}
+% \end{macrocode}
+%
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Dates options}
+%
+% \begin{macro}{received}
+% \begin{macro}{accepted}
+% \begin{macro}{online}
+% Some keys options for article's dates are created:
+% \begin{macrocode}
+\keys_define:nn { nwejm/dates }
+{
+ received .code:n = {
+ \tl_gset:Nn \g_@@_reception_date_tl {#1}
+ \bool_gset_true:N \g_@@_date_specified_bool
+ },
+ accepted .code:n = {
+ \tl_gset:Nn \g_@@_acception_date_tl {#1}
+ \bool_gset_true:N \g_@@_date_specified_bool
+ },
+ online .code:n = {
+ \tl_gset:Nn \g_@@_online_date_tl {#1}
+ \bool_gset_true:N \g_@@_date_specified_bool
+ },
+% \end{macrocode}
+%
+% The following options, when used, must receive a value.
+% \begin{macrocode}
+ received .value_required:,
+ accepted .value_required:,
+ online .value_required:,
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Authors options}
+%
+% \begin{macrocode}
+\quark_new:N \q_@@
+\int_new:N \l_author_int
+\prop_new:N \g_authors_prop
+\prop_new:N \l_affiliations_tagged_prop
+\cs_generate_variant:Nn \prop_put_if_new:Nnn { NVn }
+\cs_generate_variant:Nn \prop_gput_if_new:Nnn { Nxn }
+\cs_generate_variant:Nn \prop_put_if_new:Nnn { NnV }
+% \end{macrocode}
+%
+% Currently, \Package{expl3} doesn't provide any command that counts the number
+% of items of property lists. It should be implemented soonish and, meanwhile,
+% Bruno Le Floch provided the following macros (see
+% \url{https://github.com/latex3/latex3/issues/293}).
+% \begin{macrocode}
+\cs_new:Npn \__@@_prop_count:nn #1#2 { + 1 }
+\cs_new:Npn \@@_prop_count:N #1
+{ \int_eval:n { 0 \prop_map_function:NN #1 \__@@_prop_count:nn } }
+% \end{macrocode}
+%
+% \begin{macro}{affiliation}
+% \begin{macro}{affiliationtagged}
+% The keys options are created.
+% \begin{macrocode}
+\NewDocumentCommand \@@_author_affiliation:ww { o u\q_@@ }
+{
+ \stepcounter{footnote}
+ \prop_put_if_new:NVn \l_tmpa_prop {\the\c@footnote} {#2}
+ \IfValueT{#1}{%
+ \prop_put_if_new:NnV \l_affiliations_tagged_prop {#1} {\the\c@footnote}
+ }
+}
+%
+\keys_define:nn { nwejm / authors }
+{
+ email .tl_gset:N = \g_@@_people_email_tl,
+ affiliation .code:n = {%
+ \@@_author_affiliation:ww #1 \q_@@
+ },
+ affiliationtagged .code:n = {%
+ \prop_get:NnNTF \l_affiliations_tagged_prop {#1} \l_tmpa_tl
+ {%
+ \prop_put_if_new:NVn \l_tmpa_prop {\l_tmpa_tl} {}
+ }{
+ \msg_error:nnn{@@}{Unknown~tag}{#1}
+ }
+ },
+% \end{macrocode}
+%
+% All these options, when used, must receive a value.
+% \begin{macrocode}
+ affiliation .value_required:,
+ affiliationtagged .value_required:,
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{New theorem options}
+%
+% \begin{macrocode}
+\tl_new:N \l_@@_newtheorem_style_tl
+\keys_define:nn { nwejm / newtheorem }
+{
+ title .tl_set:N = \l_@@_newtheorem_title_tl,
+ title / french .tl_set:N = \l_@@_newtheorem_french_title_tl,
+ title / english .tl_set:N = \l_@@_newtheorem_english_title_tl,
+ title / german .tl_set:N = \l_@@_newtheorem_german_title_tl,
+ title / dutch .tl_set:N = \l_@@_newtheorem_dutch_title_tl,
+ title .value_required:,
+ title / french .value_required:,
+ title / english .value_required:,
+ title / german .value_required:,
+ title / dutch .value_required:,
+ %
+ style .choice:,
+ style / theorem .code:n = {\_@@_theorem_style:n {theorem}},
+ style / definition .code:n = {\_@@_theorem_style:n {definition}},
+ style / proof .code:n = {\_@@_theorem_style:n {proof}},
+ style / unknown .code:n =
+ \msg_error:nnxxx { nwejm } { 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}
+%
+% \begin{macrocode}
+\bool_new:N \g_@@_gradient_nabla_bool
+\bool_new:N \g_@@_gradient_nabla_control_bool
+\keys_define:nn { nwejm/articlesetup }
+{
+ gradient .choice:,
+ gradient / nabla .code:n = {\bool_gset_true:N \g_@@_gradient_nabla_bool},
+ gradient / grad .code:n = {\bool_gset_false:N \g_@@_gradient_nabla_bool},
+ gradient / unknown .code:n =
+ \msg_error:nnxxx { nwejmart } { Unknown~choice }
+ { gradient } % Name of choice key
+ { nabla~or~grad } % Valid choices
+ { \exp_not:n {#1} } % Invalid choice given
+}
+% \end{macrocode}
+%
+% \section{Miscellaneous token lists}
+%
+% We define some token lists for the long and short forms of the journal.
+% \begin{macrocode}
+\tl_new:N \g_@@_nwejm_short_string_tl
+\tl_new:N \g_@@_nwejm_string_tl
+\tl_gset:Nn \g_@@_nwejm_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_gset:Nn \g_@@_nwejm_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 \l_@@_pdftitle_string_tl
+\tl_new:N \l_@@_pdfauthor_string_tl
+\tl_set:Nn \l_@@_pdftile_string_tl {
+ \c_@@_journal_title_string_tl\space--\space{}N°\int_use:N\g_@@_issue_number_int
+}
+\tl_set:Nn \l_@@_pdfauthor_string_tl {
+ \g_@@_nwejm_string_tl
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\cs_new_protected:Nn \_@@_email:n
+ {
+ \href{mailto:#1}{\nolinkurl{#1}}%
+ }
+% \end{macrocode}
+%
+% We create a control sequence that populates the bib file.
+% \begin{macrocode}
+\tl_new:N \l_@@_crossref_tl
+\cs_new_protected:Nn \_@@_populate_bib_file:nn
+{
+ \int_if_exist:cF {g_@@_#2_int}
+ {
+ \int_new:c {g_@@_#2_int}
+ }
+ \int_incr:c {g_@@_#2_int}
+ \tl_if_in:nnTF { #2 } { 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 -#2- \int_use:c {g_@@_#2_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}
+%
+% \begin{macrocode}
+%</class|class-article>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*class>
+% \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}
+\cs_new_protected:Nn \_@@_people:nnnnn
+{
+ \DTLnewrow{people}%
+ \DTLnewdbentry{people}{first-last-name}{#1}%
+ \DTLnewdbentry{people}{affiliation}{#2}%
+ \DTLnewdbentry{people}{country}{#3}%
+ \DTLnewdbentry{people}{email}{#4}%
+ \DTLnewdbentry{people}{role}{#5}%
+ \_@@_populate_bib_file:nn {#1}{#5}
+}
+% \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:nnnnn { nVnVx }
+% \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_country_tl=country%
+ ,\l_@@_people_email_tl=email%
+ ,\l_@@_people_role_tl=role%
+ }{%
+ \tl_if_in:NnTF \l_@@_people_role_tl { editor } {
+ \item[
+ \_@@_citeauthor_no_giveninits:n {\c_@@_issue_bib_key_tl -#1- \exp_not:V\DTLcurrentindex}%
+ ]
+ \l_@@_people_affiliation_tl%
+ \space%
+ (\l_@@_people_country_tl)%
+ % ,\space%
+ % \_@@_email:n {\l_@@_people_email_tl}
+ \DTLiflastrow{%
+ }{%
+ % \medskip%
+ }
+ }{
+ \tl_if_in:NnTF \l_@@_people_role_tl { author } {
+ \footnotesize%
+ \noindent%
+ \begin{description}[leftmargin=1em,style=nextline]
+ \item[%
+ \_@@_citeauthor_no_giveninits: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%
+ \_@@_email:n {\l_@@_people_email_tl}
+ }
+ \end{description}
+ \DTLiflastrow{%
+ }{
+ \DTLpar%
+ \medskip%
+ }
+ }{
+ \_@@_citeauthor_no_giveninits:n {\c_@@_issue_bib_key_tl -#1-
+ \exp_not:V\DTLcurrentindex}%
+ \tl_if_empty:NF \l_@@_people_email_tl
+ {
+ \space(\_@@_email:n {\l_@@_people_email_tl})
+ }
+ }
+ }
+ }
+}
+% \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
+ \pagestyle{@@_frontcover_ps}%
+ \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}
+ }
+ {
+ \mbox{}
+ \vfill
+ \begin{center}
+ \Huge%
+ \bfseries%
+ \sffamily%
+ \itshape%
+ \color{Navy}%
+ \c_@@_journal_front_cover_title_string_tl%
+ \end{center}
+ }
+ \vfill%
+ \clearpage%
+ \bool_gset_false:N \g_@@_frontcover_bool
+}
+% \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}%
+ \footnotesize%
+ \begin{multicols*}{2}
+ \setlength{\columnsep}{1mm}
+ \begin{description}[leftmargin=2em]
+ \item[\textsc{\c_@@_editorinchief_string_tl}] \
+ \begin{description}[leftmargin=1em]
+ \@@_display_people_by_role:n {editorinchief}
+ \end{description}
+ \bigskip
+ \par
+ \item[\textsc{\c_@@_associate_editors_string_tl}] \
+ \begin{description}[leftmargin=1em]
+ \@@_display_people_by_role:n {editor}
+ \end{description}
+ \bigskip
+ \par
+ \item[\textsc{\c_@@_field_editor_string_tl}] \
+ \begin{description}[leftmargin=1em]
+ \@@_display_people_by_role:n {fieldseditor}
+ \end{description}
+ \bigskip
+ \par
+ \item[\textsc{\c_@@_managing_editor_string_tl}] \
+ \begin{description}[leftmargin=1em]
+ \@@_display_people_by_role:n {managingeditor}
+ \end{description}
+ \end{description}
+ \end{multicols*}
+ \clearpage%
+ \bool_gset_false:N \g_@@_inside_frontcover_bool
+ \pagestyle{@@_frontmatter_ps}%
+ \exp_after:wN\newgeometry\exp_after:wN{\c_@@_main_geometry_tl}%
+}
+% \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%
+ \pagestyle{@@_inside_backcover_ps}%
+ % \exp_after:wN\newgeometry\exp_after:wN{\c_@@_inside_cover_geometry_tl}%
+ % \file_if_exist:nT { \c_@@_authors_instructions_file_tl } {%
+ \bool_if:NTF {\g_@@_no_inside_backcover_bool} {
+ \hbox{}
+ }{%
+ \small%
+ \file_if_exist:nT { \c_@@_authors_instructions_file_tl } {%
+ % \begin{multicols}{2}
+ % \setlength{\columnsep}{1mm}
+ \file_input:n {\c_@@_authors_instructions_file_tl}
+ % \end{multicols}
+ % \setlength{\columnseprule}{1pt}
+ }
+ \begin{description}[leftmargin=1em]
+ \item[\c_@@_editorial_secretariat_string_tl{}~:] \ \par%
+ % \l_@@_journal_publisher_tl%
+ % \par%
+ % \space\textendash{}\space%
+ \@@_display_people_by_role:n { secretary }\par
+ \l_@@_journal_address_tl\par%
+ \c_@@_phone_string_tl{}~:~\l_@@_journal_phone_tl{}\par%
+ \_@@_email:n {\l_@@_journal_email_tl}
+ \newline%
+ % \space\textendash{}\space
+ \url{\l_@@_journal_url_tl}
+ \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
+ }
+ \item[\c_@@_latexclass_string_tl{}~:]
+ \@@_display_people_by_role:n { classdesigner }
+ \item[\c_@@_computer_engineering_string_tl{}~:] %\g_@@_printer_text_tl
+ \@@_display_people_by_role:n { computerengineer }
+ \item[\c_@@_printer_string_tl{}~:] %\g_@@_printer_text_tl
+ \@@_display_people_by_role:n { printingservice }
+ \end{description}
+ \g_@@_font_designer_text_tl
+ }
+ % }{%
+ % \hbox{}
+ % }
+ \bool_gset_false:N \g_@@_inside_backcover_bool
+}
+% \end{macrocode}
+%
+% \section{Displaying the back cover}
+%
+% \begin{macrocode}
+\tl_new:N \g_@@_short_toc_tl%
+% \end{macrocode}
+%
+% The following code to get a framed TOC is borrowed from \pkg{etoc}'s
+% documentation.
+% \begin{macrocode}
+\tl_gset:Nn \g_@@_short_toc_tl {%
+ \begingroup
+ \etocstandardlines
+ \etocsetnexttocdepth{chapter}
+ \renewcommand{\etocbkgcolorcmd}{\color{Navy!5}}
+ \renewcommand{\etocbelowtocskip}{0pt\relax}
+ \fboxsep1ex
+ \etocframedstyle [1]{\fbox{\makebox[.5\linewidth]{\etocfontminusone\c_@@_backcover_tableofcontents_string_tl}}}
+ \tableofcontents
+ \endgroup
+}
+% \end{macrocode}
+%
+% We compute the height of this framed TOC to know the place left on the page
+% for the collection of logos that will be displayed below.
+% \begin{macrocode}
+% \newlength\toto
+% \setlength{\toto}{ \textheight - \heightof{\g_@@_short_toc_tl} }
+\tl_new:N \g_@@_display_backcover_tl%
+\tl_gset:Nn \g_@@_display_backcover_tl {%
+ \bool_gset_true:N \g_@@_backcover_bool
+% \end{macrocode}
+%
+% The following code is borrowed from \pkg{etoc}'s documentation.
+% \begin{macrocode}
+\g_@@_short_toc_tl
+\vfill{}
+ \begin{center}
+ \includegraphics[height=.4\textheight]{nwejm-logos-collection.pdf}
+ \end{center}
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</class>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*class|class-article>
+% \end{macrocode}
+%
+% \section{Displaying the dates}
+%
+% We create the variable that displays the dates.
+% \begin{macrocode}
+\cs_new_protected:Nn \_@@_date:nn
+{
+ \tl_if_exist:NT {#2}
+ {
+ \tl_if_empty:NF {#2}
+ {
+ \tl_if_eq:NNF {\c_@@_date_received_tl} {#1} { \c_@@_dates_separator_tl }
+ \tl_mixed_case:n { \exp_args:No \GetTranslation{#1} }
+ \c_@@_colon_tl\space
+ \DTMdate{#2}%
+ }
+ }
+}
+\tl_new:N \g_@@_display_dates_tl%
+\tl_gset:Nn \g_@@_display_dates_tl {%
+ \footnotesize%
+ \_@@_date:nn {\c_@@_date_received_tl}{\g_@@_reception_date_tl}
+ \_@@_date:nn {\c_@@_date_accepted_tl}{\g_@@_acception_date_tl}
+ \_@@_date:nn {\c_@@_date_online_tl} {\g_@@_online_date_tl}
+ \tl_gclear:N \g_@@_reception_date_tl
+ \tl_gclear:N \g_@@_acception_date_tl
+ \tl_gclear:N \g_@@_online_date_tl
+}
+% \end{macrocode}
+%
+% \section{Displaying the keywords}
+%
+% \begin{macro}{\keywords}
+% \begin{macro}{\l_@@_keywords_tl}
+% The command for article's keywords is defined: the article's keywords is
+% store in "\l_@@_keywords_tl" for later use.
+% \begin{macrocode}
+\seq_new:N \l_@@_keywords_seq
+\tl_new:N \l_@@_keywords_tl
+\NewDocumentCommand \keywords { m } {
+ \seq_clear:N \l_@@_keywords_seq
+ \tl_clear:N \l_@@_keywords_tl
+ \seq_set_from_clist:Nn \l_tmpa_seq {#1}
+ \seq_set_map:NNn \l_@@_keywords_seq \l_tmpa_seq {
+ ##1
+ }
+ \tl_set:Nn \l_@@_keywords_tl { \seq_use:Nn \l_@@_keywords_seq {,~} }
+%<class-article> \hypersetup{pdfkeywords=\l_@@_keywords_tl}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \section{Displaying the Mathematical Subject Classification (\textsc{msc})}
+%
+% \begin{macro}{\msc}
+% \begin{macro}{\l_@@_msc_tl}
+% The command for article's \textsc{msc} is defined: the article's \textsc{msc} is
+% store in "\l_@@_msc_tl" for later use.
+% \begin{macrocode}
+\seq_new:N \l_@@_msc_seq
+\tl_new:N \l_@@_msc_tl
+\NewDocumentCommand \msc { m } {
+ \seq_clear:N \l_@@_msc_seq
+ \tl_clear:N \l_@@_msc_tl
+ %
+ % does what the name suggests, set a sequence from the clist
+ \seq_set_from_clist:Nn \l_tmpa_seq {#1}
+ % applies final arg to each element of second seq and stores result in first seq
+ \seq_set_map:NNn \l_@@_msc_seq \l_tmpa_seq {
+ ##1
+ }
+ %
+ % \seq_use puts the items from the seq back in the input with ",~" as a separator
+ \tl_set:Nn \l_@@_msc_tl {\seq_use:Nn \l_@@_msc_seq {,~}}
+%%<class-article> \hypersetup{pdfmsc=\l_@@_msc_tl}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \section{User level commands}
+%
+% Here, we gather all the user level (public) commands.
+%
+% \begin{macrocode}
+%</class|class-article>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*class>
+% \end{macrocode}
+%
+% \subsection{Populating the people involved in the journal}
+%
+% \begin{macro}{\editorinchief}
+% \begin{macro}{\managingeditor}
+% \begin{macro}{\fieldseditor}
+% \begin{macro}{\editor}
+% \begin{macro}{\classdesigner}
+% \begin{macro}{\fontdesigner}
+% \begin{macro}{\classmaintainer}
+% \begin{macro}{\printingservice}
+% \begin{macro}{\computerengineer}
+% \begin{macro}{\secretary}
+% We define some document-level commands that let the user specify
+% respectively the editor(s) in chief, the fields editor, the managing editor,
+% the editors, the class designer and maintainer(s), etc.
+%% \enquote{R\'{e}dacteur(s) en chef}.
+% \begin{macrocode}
+\NewDocumentCommand \editorinchief {mmmm}
+{
+ \_@@_people:nnnnn {#1}{#2}{#3}{#4}{editorinchief}
+}
+\NewDocumentCommand \editor {mmmm}
+{
+ \_@@_people:nnnnn {#1}{#2}{#3}{#4}{editor}
+}
+\NewDocumentCommand \fieldseditor {mmmm}
+{
+ \_@@_people:nnnnn {#1}{#2}{#3}{#4}{fieldseditor}
+}
+\NewDocumentCommand \managingeditor {mmmm}
+{
+ \_@@_people:nnnnn {#1}{#2}{#3}{#4}{managingeditor}
+}
+\NewDocumentCommand \classdesigner {mmmm}
+{
+ \_@@_people:nnnnn {#1}{#2}{#3}{#4}{classdesigner}
+}
+\NewDocumentCommand \computerengineer {mmmm}
+{
+ \_@@_people:nnnnn {#1}{#2}{#3}{#4}{computerengineer}
+}
+\NewDocumentCommand \classmaintainer {mmmm}
+{
+ \_@@_people:nnnnn {#1}{#2}{#3}{#4}{classmaintainer}
+}
+\NewDocumentCommand \fontdesigner {mmmm}
+{
+ \_@@_people:nnnnn {#1}{#2}{#3}{#4}{fontdesigner}
+}
+\NewDocumentCommand \printingservice {mmmm}
+{
+ \_@@_people:nnnnn {#1}{#2}{#3}{#4}{printingservice}
+}
+\NewDocumentCommand \computerassistance {mmmm}
+{
+ \_@@_people:nnnnn {#1}{#2}{#3}{#4}{computerassistance}
+}
+\NewDocumentCommand \secretary {mmmm}
+{
+ \_@@_people:nnnnn {#1}{#2}{#3}{#4}{secretary}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \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).
+% \begin{macrocode}
+ \keys_set:nn { nwejm/issuesetup } {#1}
+% \end{macrocode}
+%
+% We fix some of the PDF's metadata .
+% \begin{macrocode}
+\hypersetup{pdftitle=\l_@@_pdftitle_string_tl}
+\hypersetup{pdfauthor=\l_@@_pdfauthor_string_tl}
+% \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 journal's
+% issue using the present class.} and a warning is emitted.
+% \begin{macrocode}
+ \int_compare:nNnT {\g_@@_issue_number_int}<{1}
+ {
+ \int_gset:Nn \g_@@_issue_number_int { \c_@@_first_issue_number_int }
+ \msg_warning:nnn{nwejm}{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{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", "email", "url"
+% and "issn" are relevant here).
+% \begin{macrocode}
+ \keys_set:nn { nwejm/journalsetup } { #1 }
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{\Pkg{Varioref}}
+%
+% We have to save the extra definitions of the \Pkg{varioref} which currently is
+% multilingual aware.
+% \begin{macrocode}
+\addto\extrasfrench{%
+ \def\reftextfaceafter {page~\reftextvario{ci-contre}{suivante}}%
+ \def\reftextfacebefore{page~\reftextvario{ci-contre}%
+ {pr\’ec\’edente}}%
+ \def\reftextafter
+ {page~suivante}%
+ \def\reftextbefore
+ {page~pr\’ec\’edente}%
+ \def\reftextcurrent
+ {de~la~pr\’esente~page}%
+ \def\reftextfaraway#1{page~\pageref{#1}}%
+ \def\reftextpagerange#1#2{pages~\pageref{#1}--\pageref{#2}}%
+ \def\reftextlabelrange#1#2{\ref{#1}~\‘a~\ref{#2}}%
+}
+\addto\extrasngerman{%
+ \def\reftextfaceafter {auf~der~n\"achsten~Seite}%
+ \def\reftextfacebefore{auf~der~vorherigen~Seite}%
+ \let\reftextafter \reftextfaceafter
+ \let\reftextbefore \reftextfacebefore
+ \def\reftextcurrent {auf~dieser~Seite}%
+ \def\reftextfaraway#1{auf~Seite~\pageref{#1}}%
+ \def\reftextpagerange#1#2{auf~den~Seiten~\pageref{#1}--\pageref{#2}}%
+ \def\reftextlabelrange#1#2{\ref{#1}~bis~\ref{#2}}%
+}
+\addto\extrasdutch{%
+ \def\refpagename{pagina}%
+ \def\reftextfaceafter {op~de~\reftextvario{rechter~\refpagename}%
+ {\refpagename\ hiernaast}}%
+ \def\reftextfacebefore{op~de~\reftextvario{linker~\refpagename}%
+ {\refpagename\ hiernaast}}%
+ \def\reftextafter {op~de~\reftextvario{volgende~\refpagename}%
+ {\refpagename\ hierna}}%
+ \def\reftextbefore {op~de~\reftextvario{vorige~\refpagename}%
+ {\refpagename\ hiervoor}}%
+ \def\reftextcurrent {op~deze~\refpagename}%
+ \def\reftextfaraway#1{op~\refpagename\space\pageref{#1}}
+}
+\addto\extrasenglish{%
+ \def\reftextfaceafter {on~the~\reftextvario{facing}{next}~page}%
+ \def\reftextfacebefore{on~the~\reftextvario{facing}{preceding}~page}%
+ \def\reftextafter {on~the~\reftextvario{following}{next}~page}%
+ \def\reftextbefore {on~the~\reftextvario{preceding}{previous}~page}%
+ \def\reftextcurrent {on~\reftextvario{this}{the~current}~page}%
+ \def\reftextfaraway#1{on~page~\pageref{#1}}%
+ \def\reftextpagerange#1#2{on~pages~\pageref{#1}--\pageref{#2}}%
+ \def\reftextlabelrange#1#2{\ref{#1}~to~\ref{#2}}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+%</class>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*class|class-article>
+% \end{macrocode}
+%
+% \subsection{Article setup}
+%
+% Some of the document commands will be restricted to document body, as the
+% following ×\articlesetup× command whose effects would otherwise be overriden
+% when, for the whole issue, preambles of each article will be gathered thanks
+% to \Pkg{standalone}.
+% \begin{macrocode}
+\cs_new_protected:Nn \_@@_command_only_in_body:n
+{
+ \cs_if_eq:NNF {\@onlypreamble} {\@notprerr} {
+ \msg_error:nnn{
+%<class-article> nwejmart
+%<class> nwejm
+ }{Command~restricted~to~document~body~used~in~preamble}{#1}
+ }
+}
+% \end{macrocode}
+%
+% \begin{macro}{\articlesetup}
+% We define the command that lets the user specify the article setup.
+% \begin{macrocode}
+\NewDocumentCommand \articlesetup { m } {
+ \_@@_command_only_in_body:n {\articlesetup}
+ \keys_set:nn { nwejm/articlesetup } {#1}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Dates setup}
+%
+% \begin{macro}{\dates}
+% We define the command that lets the user specify the issue setup.
+% \begin{macrocode}
+\NewDocumentCommand \dates { m } {
+ \keys_set:nn { nwejm/dates } { #1 }
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Input variant}
+%
+% We create a variant of the "\input" macro to be use for the input of each
+% article: it starts a new \package{biblatex}'s "refsection" and reset to zero
+% some counters.
+% \begin{macrocode}
+\NewDocumentCommand \inputarticle { O{english} m } {%
+ \newrefsection
+ \tl_if_eq:nnTF { #1 } { german } {%
+ \selectlanguage{ngerman}
+ }{
+ \selectlanguage{#1}
+ }%
+% \end{macrocode}
+%
+% Though we switch to \pkg{babel}'s ×french×, footnotes are not displayed as
+% French ones in the issue. The following fixes this trouble.
+% \begin{macrocode}
+ \tl_if_eq:nnTF { #1 } { french } {%
+ \FrenchFootnotes
+ }{%
+ \StandardFootnotes
+ }
+% \end{macrocode}
+%
+% We reset setup possibly chosen in previous articles.
+% \begin{macrocode}
+%<class> \bool_gset_false:N \g_@@_gradient_nabla_bool
+%<class> \bool_gset_false:N \g_@@_gradient_nabla_control_bool
+%<class> \bool_gset_false:N \g_@@_grad_used_bool
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \inputfrom{./}{#2}
+% \end{macrocode}
+% The list of counters we want to be able to easily set to zero doesn't contains
+% only the ones associated to the (numbered) theorem environments: it should
+% contain the following ones as well:
+% \begin{macrocode}
+ \clist_put_right:Nn \g_@@_counters_to_be_reset_clist {
+ footnote,
+ section,
+ figure,
+ table,
+ equation
+ }
+% \end{macrocode}
+% We set to zero the counters that should be at the end of each article input:
+% \begin{macrocode}
+ \clist_map_inline:Nn \g_@@_counters_to_be_reset_clist {
+ \@ifundefined{c@##1}{
+ }{
+ \setcounter{##1}{\c_zero}
+ }
+ }
+% \end{macrocode}
+% We reset all acronyms entries.
+% \begin{macrocode}
+ \glsresetall
+ \selectlanguage{english}
+}
+% \end{macrocode}
+%
+% \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 \nwejm{} journal.
+%
+% This can be done only at the beginning of the document, in order to know the
+% characteristics of the current issue.
+% \begin{macrocode}
+\AtBeginDocument{%
+% \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 don't want the (next) title to appear in the headers of the preceding
+% article.
+% \begin{macrocode}
+ \cleardoublepage
+% \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
+ %
+ \IfNoValueF {#1}
+ {
+ \tl_gset:Nn \g_@@_short_title_tl {#1}
+ }
+ \tl_gset:Nn \g_@@_title_tl {#2}
+ \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 } {
+ \IfNoValueF {#1}
+ {
+ \tl_gset:Nn \g_@@_short_subtitle_tl {#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 } {
+% \end{macrocode}
+%
+% We don't want the (next) authors to appear in the headers of the preceding
+% article.
+% \begin{macrocode}
+ \cleardoublepage
+% \end{macrocode}
+%
+ \int_incr:N \l_author_int
+ \prop_gput_if_new:Nxn \g_authors_prop {author_\int_use:c {l_author_int}} {#2}
+ \IfNoValueF {#1}
+ {
+ \keys_set:nn { nwejm/authors } { #1 }
+ }
+ \prop_set_eq:cN {l_author_ \int_use:c {l_author_int} _affiliations_prop} \l_tmpa_prop
+ \prop_clear:N \l_tmpa_prop
+ \_@@_populate_bib_file:nn {#2}{author-art-\int_use:N \g_@@_articles_int}
+ \tl_if_empty:NTF \l_@@_people_first_last_names_tl {%
+ \tl_put_right:Nn
+ \l_@@_people_first_last_names_tl
+ {#2}
+ }{
+ \tl_put_right:Nn
+ \l_@@_people_first_last_names_tl
+ {~and~#2}
+ }
+}
+% \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.
+% \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 front and main matter switches}
+%
+% A private "\_@@_frontmatter_switch_tl" switch is defined in order to
+% automatically insert some settings.
+% \begin{macrocode}
+\tl_new:N \g_@@_frontmatter_switch_tl%
+\tl_gset:Nn \g_@@_frontmatter_switch_tl {
+ \bool_gset_true:N \g_@@_frontmatter_bool
+ \frontmatter
+ \pagestyle{@@_frontmatter_ps}%
+ \exp_after:wN\newgeometry\exp_after:wN{\c_@@_main_geometry_tl}%
+}
+% \end{macrocode}
+%
+% 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
+ \mainmatter
+ % \SetParskip{\c_@@_mainmatter_parskip_skip}
+ \pagestyle{@@_mainmatter_ps}%
+ \exp_after:wN\newgeometry\exp_after:wN{\c_@@_main_geometry_tl}%
+}
+% \end{macrocode}
+%
+% \section{Definition of the acknowledgments}
+%
+% \begin{macrocode}
+\tl_new:N \g_@@_article_acknowledgments_tl%
+\cs_new_protected:Nn \@@_article_acknowledgments:n
+{
+ \tl_gset:Nn \g_@@_article_acknowledgments_tl { #1 }
+}
+\NewDocumentCommand \acknowledgments { m } {
+ \@@_article_acknowledgments:n {#1}
+}
+% \end{macrocode}
+%
+% \section{Definition of the title command}
+%
+% 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 \g__@@_citeauthor_no_giveninits%
+\tl_new:N \g_@@_citeauthor_tl%
+\int_new:N \g_@@_author_s_number_current_article_int%
+%
+\cs_new_protected:Nn \_@@_citeauthor_no_giveninits:n {%
+ \tl_gset:Nn \g_@@_citeauthor_tl {%
+ \DeclareNameAlias{labelname}{default}%
+ \group_begin:
+ \togglefalse{blx@giveninits}%
+ \citeauthor{#1}
+ \group_end:
+ }%
+ \cs_if_exist:cTF {texorpdfstring}
+ {
+ \texorpdfstring{\g_@@_citeauthor_tl}{}
+ }{%
+ \g_@@_citeauthor_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 \_@@_maketitle_citeauthor:n
+{
+ \restorecommand\mkbibnamelast
+ \def\multinamedelim {\hskip 1em \@plus.17fil}%
+ \cs_set_eq:NN \finalnamedelim \multinamedelim
+ \AtNextCitekey{\defcounter{maxnames}{100}}
+ \group_begin:
+ \DeclareNameAlias{labelname}{default}%
+ \togglefalse{blx@giveninits}%
+ \citeauthor{#1}
+ \group_end:
+ \cs_set_eq:NN \multinamedelim \_@@_orig_multinamedelim
+ \cs_set_eq:NN \finalnamedelim \_@@_orig_finalnamedelim
+ \protected\def\mkbibnamelast#1{%
+ \textsc{\textnohyphenation{#1}}}%
+}
+\cs_new_protected:Nn \@@_display_author:n
+{
+ \seq_clear:N \l_tmpa_seq
+ \prop_get:NnN \g_authors_prop {author_#1} \l_tmpa_tl
+ \prop_map_inline:cn {l_author_ #1 _affiliations_prop} {
+ \seq_put_right:Nx \l_tmpa_seq { ##1 }
+ }
+ \seq_sort:Nn \l_tmpa_seq
+ {
+ \int_compare:nNnTF { ##1 } > { ##2 }
+ { \sort_reversed: }
+ { \sort_ordered: }
+ }
+ \mbox{%
+ \_@@_citeauthor_no_giveninits:n {\c_@@_issue_bib_key_tl -author-art- \int_use:N \g_@@_articles_int-#1}
+ }
+ \seq_map_inline:Nn \l_tmpa_seq {
+ \prop_get:cnN {l_author_ #1 _affiliations_prop} {##1} \l_tmpb_tl
+ \footnotemark[##1]
+ \tl_if_empty:NF \l_tmpb_tl
+ {
+ \footnotetext[##1]{\l_tmpb_tl}
+ }
+ }
+ \hskip 1em plus .17fil
+}
+% \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
+\tl_new:N \g_@@_title_for_toc_tl
+% \end{macrocode}
+%
+% \begin{macro}{\maketitle}
+% The command that \emph{makes} the title is redefined.
+% \begin{macrocode}
+\RenewDocumentCommand \maketitle { } {
+% \end{macrocode}
+%
+% We enforce all the previous floats to be processed before a new article starts
+% (this is already done in "acknowledgments"environment but is repeated here if
+% what is before provides floats but not acknowledgments).
+% \begin{macrocode}
+%<class> \FloatBarrier%
+% \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).
+%
+% 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_clear:N \l_@@_people_first_last_names_tl
+}%
+%
+\tl_set:Nn \l_@@_authors_box_tl
+{%
+ \bool_if:nTF { \tl_if_empty_p:N \l_@@_people_first_last_names_tl }
+ {
+ \mbox{}
+ }
+ {
+ \int_set:Nn \l_tmpa_int { \@@_prop_count:N \g_authors_prop}
+ \normalsize%
+ \int_step_inline:nnnn {1}{1}{\l_tmpa_int} {
+ \@@_display_author:n {##1}
+ }
+ \prop_gclear:N \g_authors_prop
+ }
+}
+% \end{macrocode}
+%
+% We clear the tagged affiliations (henece their scope is the current article).
+% \begin{macrocode}
+\int_zero:N \l_author_int
+\prop_clear:N \l_affiliations_tagged_prop
+% \end{macrocode}
+%
+% \begin{macrocode}
+\tl_set:Nn \l_@@_dates_box_tl
+{%
+ \g_@@_display_dates_tl
+}
+%
+\tl_set:Nn \l_@@_keywords_box_tl
+{%
+ \noindent
+ {
+ \bfseries
+ \tl_mixed_case:n{
+ \GetTranslation{plural-keyword}
+ \c_@@_colon_tl
+ }
+ }
+ \space\l_@@_keywords_tl.
+}
+\tl_set:Nn \l_@@_msc_box_tl
+{%
+ \noindent\textbf{\c_@@_msc_string_tl}\c_@@_colon_tl\space\l_@@_msc_tl.
+}
+\tl_set:Nn \l_@@_abstract_box_tl
+{%
+ \mbox{}
+ \par%
+ \vskip .5em%
+ \tl_if_empty:NTF \g_@@_abstract_body_tl
+ {%
+ \msg_warning:nn{nwejmart}{No~abstract}
+ }%
+ {%
+ \small
+ \begin{center}%
+ {\bfseries \abstractname\vspace{-.5em}\vspace{\z@}}%
+ \end{center}%
+ \begin{quotation}
+ \g_@@_abstract_body_tl
+ \end{quotation}
+ }
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+\tl_set:Nn \g_@@_partial_title_for_toc_tl
+{
+ \tl_if_empty:NTF \g_@@_short_title_tl {%
+ \g_@@_title_tl%
+ }{
+ \g_@@_short_title_tl%
+ }
+ \bool_if:nF { \tl_if_empty_p:N \g_@@_short_subtitle_tl }
+ {
+ .\space\g_@@_short_subtitle_tl
+ }
+}
+% \end{macrocode}
+%
+% For the article's class, the article's title and (if any) subtitle are added
+% to the ×pdftitle× PDF's metadata.
+% \begin{macrocode}
+%<class-article> \hypersetup{pdftitle=\g_@@_partial_title_for_toc_tl}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\tl_set:Nn \g_@@_title_for_toc_tl
+{
+ \g_@@_partial_title_for_toc_tl
+ \bool_if:nF { \tl_if_empty_p:N \l_@@_people_first_last_names_tl }
+ {
+ \textsl{
+ \cs_if_exist:cTF {texorpdfstring}
+ {
+ \texorpdfstring{%
+ \AtNextCitekey{\defcounter{maxnames}{100}}
+ \space\textendash\space\citeauthor{\g_@@_article_bib_key_tl}
+ }{}
+ }{%
+ \space\textendash\space\citeauthor{\g_@@_article_bib_key_tl}
+ }%
+ }
+ }
+}
+% \end{macrocode}
+%
+% The article's titles are produced thanks to the ×\chapter× which is
+% unnumbered (otherwise the corresponding bookmark is numbered), but not through
+% the starred version of ×\chapter× (because we need its -- alternative title in
+% the TOC).
+% \begin{macrocode}
+ \setsecnumdepth{none}
+%<class-article> \bookmarksetup{depth=-2}
+ \chapter[\g_@@_title_for_toc_tl]{%
+ \LARGE%
+ \g_@@_title_tl
+ \tl_if_empty:NF \g_@@_subtitle_tl {%
+ \\[1ex]%
+ \Large%
+ \g_@@_subtitle_tl
+ }\\[2ex]%
+ \l_@@_authors_box_tl%
+ \bool_if:NT {\g_@@_date_specified_bool}
+ {
+ \\[2ex]
+ \l_@@_dates_box_tl
+ }
+ \\[-4ex]
+ }
+ \bool_gset_false:N \g_@@_date_specified_bool
+ \bookmarksetup{depth=subsection}
+ \setsecnumdepth{subsection}
+% \end{macrocode}
+%
+% We want header of the article's titles pages.
+% \begin{macrocode}
+ \thispagestyle{@@_article_title_ps}%
+%
+\l_@@_abstract_box_tl%
+\normalsize
+\tl_if_empty:NTF \l_@@_keywords_tl {
+ \msg_warning:nn{nwejmart}{No~keyword}
+}{
+ \l_@@_keywords_box_tl
+ \par%
+ \vskip .5em%
+}
+\tl_if_empty:NTF \l_@@_msc_tl {
+ \msg_warning:nn{nwejmart}{No~MSC}
+}{
+ \l_@@_msc_box_tl
+ \par%
+ \vskip .5em%
+}
+%<class-article> \hypersetup{pdfauthor=\l_@@_people_first_last_names_tl}
+%
+\tl_gclear:N \g_@@_title_tl
+\tl_gclear:N \g_@@_subtitle_tl
+\tl_gclear:N \g_@@_title_for_toc_tl
+\tl_gclear:N \g_@@_abstract_body_tl
+% \end{macrocode}
+%
+% We clear the authors database from the possible previous article.
+% \begin{macrocode}
+ \tl_gclear:N \g_@@_people_affiliation_tl
+ \tl_gclear:N \g_@@_people_email_tl
+ \tl_clear:N \l_@@_people_first_last_names_tl%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% We load the configuration file, 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}
+%<class>\AtEndPreamble{\file_input:n {\c_@@_configuration_file_string_tl}}
+% \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}{%
+ \addto\extrasenglish{\sisetup{locale = UK}}
+ \addto\extrasfrench{\sisetup{locale = FR}}
+ \addto\extrasngerman{\sisetup{locale = DE}}
+ \addto\extrasgerman{\sisetup{locale = DE}}
+ \addto\extrasdutch{%
+ \sisetup{%
+ exponent-product = \ensuremath { \times } ,
+ inter-unit-product = \, ,
+ output-decimal-marker = { , }
+ }%
+ }
+ \sisetup{detect-all}
+}
+% \end{macrocode}
+%
+% \subsection{Redefinition of heading commands}
+%
+% We redefine the heading commands (×\section× and ×\subsection×, not below as
+% the corresponding headings are not numbered) in order the starred versions
+% make use of ×\setsecnumdepth{none}× from \Pkg{tocvsec2} and hence save the
+% user from having to add the ugly ×\addcontentsline× trick. Here,
+% ×\AfterPreamble× is necessary to delay the redefinition when \Pkg{titlesec}
+% has done its own.
+%
+% \begin{macrocode}
+\cs_set_eq:NN \_@@_section \section
+\cs_set_eq:NN \_@@_subsection \subsection
+\cs_set_eq:NN \_@@_subsubsection \subsubsection
+\AfterPreamble{%
+ \RenewDocumentCommand \section { s o m } {%
+ \IfBooleanTF {#1}
+ {
+ \setsecnumdepth{none}%
+ }
+ {
+ \resetsecnumdepth*%
+ }
+ \IfNoValueTF{#2}{\_@@_section{#3}}{\_@@_section[#2]{#3}}
+ }
+ \RenewDocumentCommand \subsection { s o m } {%
+ \IfBooleanT {#1}
+ {
+ \setsecnumdepth{none}%
+ }
+ \IfNoValueTF{#2}{\_@@_subsection{#3}}{\_@@_subsection[#2]{#3}}
+ }
+ \RenewDocumentCommand \subsubsection { s o m } {%
+ \IfBooleanT {#1}
+ {
+ \setsecnumdepth{none}%
+ }
+ \IfNoValueTF{#2}{\_@@_subsubsection{#3}}{\_@@_subsubsection[#2]{#3}}
+ }
+}
+% \end{macrocode}
+%
+% \section{Miscellaneous private commands specific to the journal}
+%
+% We create miscellaneous private commands specific to the journal.
+%
+% Command for centuries.
+% \begin{macrocode}
+\int_new:N \l_@@_abs_int
+%
+\cs_new_protected:Nn \_@@_ordinalnum_suffix:n
+{
+ \int_set:Nn \l_@@_abs_int {\int_abs:n {#1}}
+ \ifcurrentbaselanguage{english}{
+ \int_use:N \l_@@_abs_int
+ \int_set:Nn \l_tmpa_int {\int_mod:nn {\l_@@_abs_int} {\c_one_hundred}}
+ \int_case:nnF
+ { \l_tmpa_int }
+ {
+ { \c_eleven } { \fmtord{th} }
+ { \c_twelve } { \fmtord{th} }
+ { \c_thirteen } { \fmtord{th} }
+ }{
+ \int_set:Nn \l_tmpb_int {\int_mod:nn {\l_@@_abs_int} {\c_ten}}
+ \int_case:nnF
+ { \l_tmpb_int }
+ {
+ { \c_zero } { \fmtord{th} }
+ { \c_one } { \fmtord{st} }
+ { \c_two } { \fmtord{nd} }
+ { \c_three } { \fmtord{rd} }
+ }{
+ \fmtord{th}
+ }
+ }
+ }{
+ \ifcurrentbaselanguage{dutch}{
+ \int_use:N \l_@@_abs_int
+ e
+ }{
+ \textsc{\int_to_roman:n {\int_abs:n {#1}}}
+ \ifcurrentbaselanguage{french}{
+ \int_compare:nNnTF { \l_@@_abs_int } = { 1 }{\fmtord{er}}{\fmtord{e}}
+ }{
+ \ifcurrentbaselanguage{german}{
+ .
+ }{
+ \ifcurrentbaselanguage{ngerman}{
+ .
+ }{
+ }
+ }
+ }
+ }
+ }
+}
+%
+\cs_new_protected:Nn \_@@_century_suffix:n
+{
+ \space{}
+ \GetTranslation{century}%
+ \int_compare:nNnT { #1 } < { 0 }{
+ \space
+ \GetTranslation{before-christ}
+ }{
+ }
+}
+% \end{macrocode}
+%
+% \section{Miscellaneous (re)definitions}
+%
+% We gather here miscellaneous redefinitions.
+%
+% \begin{macro}{\century}
+% In case of \enquote{before-christ} translation usually ending with a period
+% (in case of abbreviation), we add a period just after it, but only if the
+% character following the "\century" macro is not a period itself.
+% \begin{macrocode}
+\NewDocumentCommand \century { s m } {%
+ \_@@_ordinalnum_suffix:n {#2}%
+ \IfBooleanTF {#1}
+ {
+ \int_compare:nNnT { #2 } < { 0 }{
+ \_@@_century_suffix:n {#2}%
+ }
+ }{
+ \_@@_century_suffix:n {#2}%
+ }
+ \int_compare:nNnT { #2 } < { 0 }{
+ \ifcurrentbaselanguage{english}{%
+ }{
+ \@ifnextchar.%
+ {
+ }{
+ .\xspace
+ }%
+ }
+ }
+}
+% \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{macro}{\ie}
+% \begin{macro}{\Ie}
+% \begin{macrocode}
+\NewDocumentCommand \ie { s } {%
+ \IfBooleanTF {#1}
+ {
+ \GetTranslation{idest}
+ }
+ {
+ \GetTranslation{ie}
+ \@ifnextchar.%
+ {
+ }{
+ .\xspace
+ }%
+ }
+}
+\NewDocumentCommand \Ie { s } {%
+ \IfBooleanTF {#1}
+ {
+ \GetTranslation{Idest}
+ }
+ {
+ \GetTranslation{Ie}
+ \@ifnextchar.%
+ {
+ }{
+ .\xspace
+ }%
+ }
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Vectors}
+%
+% Vectors, even written with "\vec", are typeset with \pkg{esvect}'s "\vv":
+% \begin{macrocode}
+\RenewDocumentCommand \vec { m } {
+ \vv{#1}
+}
+% \end{macrocode}
+%
+% \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 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}
+%
+% Then, we define a public command, similar to "\newtheorem", based on
+% "\_@@_new_theorem", that lets the user define his own theorems:
+% \begin{macrocode}
+\bool_new:N \g_@@_no_numbered_theorem_bool
+\cs_new_protected:Nn \_@@_theorem_style:n
+{
+ \bool_gset_false:N \g_@@_no_numbered_theorem_bool
+ \str_case:nn
+ { #1 }
+ {
+ { theorem } {
+ \theoremstyle{plain}
+ \theoremheaderfont{\normalfont\bfseries}
+ \theorembodyfont{\itshape}
+ \theoremseparator{~--}
+ \theoremsymbol{}
+ }
+ { definition } {
+ \theoremstyle{plain}
+ \theoremheaderfont{\normalfont\bfseries}
+ \theorembodyfont{\normalfont}
+ \theoremseparator{~--}
+ \theoremsymbol{}
+ }
+ { proof } {
+ \theoremstyle{nonumberplain}
+ \bool_gset_true:N \g_@@_no_numbered_theorem_bool
+ \theoremheaderfont{\normalfont\itshape}
+ \theorembodyfont{\normalfont}
+ \theoremseparator{.}
+ \theoremsymbol{\ensuremath{\square}}
+ }
+ }
+}
+\cs_set_eq:NN \_@@_orig_newtheorem \newtheorem
+\cs_new_protected:Nn \_@@_new_theorem:nnnnn
+{
+ \AtBeginDocument{%
+ \IfTranslation{English}{#1}{%
+ }{%
+ \DeclareTranslation{English}{#1}{\tl_mixed_case:n{#2}}%
+ }
+ \IfTranslation{French}{#1}{%
+ }{%
+ \DeclareTranslation{French}{#1}{\tl_mixed_case:n{#3}}%
+ }
+ \IfTranslation{German}{#1}{%
+ }{%
+ \DeclareTranslation{German}{#1}{\tl_mixed_case:n{#4}}%
+ }
+ \IfTranslation{Dutch}{#1}{%
+ }{%
+ \DeclareTranslation{Dutch}{#1}{\tl_mixed_case:n{#5}}%
+ }
+ }
+ \_@@_orig_newtheorem{#1}{\protect\tl_mixed_case:n{ \protect\GetTranslation{#1} }}
+ \bool_if:NF {\g_@@_no_numbered_theorem_bool} {
+ \_@@_orig_newtheorem*{#1_@@_nonumbered}{\protect\tl_mixed_case:n{ \protect\GetTranslation{#1} }}
+ }
+}
+\cs_generate_variant:Nn \_@@_new_theorem:nnnnn { nVVVV }
+% \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_title_tl
+ \tl_clear:N \l_@@_newtheorem_french_title_tl
+ \tl_clear:N \l_@@_newtheorem_english_title_tl
+ \tl_clear:N \l_@@_newtheorem_german_title_tl
+ \tl_clear:N \l_@@_newtheorem_dutch_title_tl
+ %
+ \tl_set:Nn \l_@@_newtheorem_english_title_tl {
+ #2
+ }
+ \tl_set:Nf \l_@@_newtheorem_french_title_tl {
+ \l_@@_newtheorem_english_title_tl
+ }
+ \tl_set:Nf \l_@@_newtheorem_german_title_tl {
+ \l_@@_newtheorem_english_title_tl
+ }
+ \tl_set:Nf \l_@@_newtheorem_dutch_title_tl {
+ \l_@@_newtheorem_english_title_tl
+ }
+ \tl_set:Nn \l_@@_newtheorem_style_tl {
+ theorem
+ }
+ \_@@_theorem_style:n {theorem}
+ \IfNoValueF {#1}
+ {
+ \keys_set:nn { nwejm / newtheorem } { #1 }
+ \tl_if_empty:NF \l_@@_newtheorem_title_tl {%
+ \tl_set:Nf \l_@@_newtheorem_english_title_tl
+ {
+ \l_@@_newtheorem_title_tl
+ }
+ \tl_set:Nf \l_@@_newtheorem_french_title_tl
+ {
+ \l_@@_newtheorem_title_tl
+ }
+ \tl_set:Nf \l_@@_newtheorem_german_title_tl
+ {
+ \l_@@_newtheorem_title_tl
+ }
+ \tl_set:Nf \l_@@_newtheorem_dutch_title_tl
+ {
+ \l_@@_newtheorem_title_tl
+ }
+ }
+ }
+ %
+ \_@@_new_theorem:nVVVV
+ {#2}
+ {\l_@@_newtheorem_english_title_tl}
+ {\l_@@_newtheorem_french_title_tl}
+ {\l_@@_newtheorem_german_title_tl}
+ {\l_@@_newtheorem_dutch_title_tl}
+% \end{macrocode}
+% The following line ensures footnotes and, more specifically, autocitations
+% (which are in footnotes) are handled in theorems' notes (i.e. in their
+% optional argument).
+% \begin{macrocode}
+ \makesavenoteenv{#2}
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \bool_if:NF {\g_@@_no_numbered_theorem_bool} {
+ \ifcsmacro{#2*}{%
+ \RenewDocumentEnvironment{#2*}{o}
+ {
+ \IfNoValueTF {##1}
+ { \begin{#2_@@_nonumbered} }
+ { \begin{#2_@@_nonumbered}[##1] }
+ }{
+ \end{#2_@@_nonumbered}
+ }
+ }{
+ \NewDocumentEnvironment{#2*}{o}
+ {
+ \IfNoValueTF {##1}
+ { \begin{#2_@@_nonumbered} }
+ { \begin{#2_@@_nonumbered}[##1] }
+ }{
+ \end{#2_@@_nonumbered}
+ }
+ }
+ }
+% \end{macrocode}
+%
+% We add to the list of counters we want to be able to easily set to zero the
+% ones associated to the (numbered) theorem environments (defined either by the
+% class or by the user):
+% \begin{macrocode}
+ \clist_put_right:Nn \g_@@_counters_to_be_reset_clist {#2}
+}
+% \end{macrocode}
+%
+% Finally, we define some usual theorems:
+% \begin{macrocode}
+\newtheorem{theorem}
+\newtheorem{corollary}
+\newtheorem{conjecture}
+\newtheorem{proposition}
+\newtheorem{lemma}
+\newtheorem{axiom}
+%
+\newtheorem[style=definition]{definition}
+\newtheorem[style=definition]{remark}
+\newtheorem[style=definition]{example}
+\newtheorem[style=definition]{notation}
+%
+\newtheorem[style=proof]{proof}
+%
+\cs_new_protected:Nn \_@@_clone_theorem:nn
+{
+ \NewDocumentEnvironment{#1}{}
+ {
+ \begin{#2}
+ }{
+ \end{#2}
+ }
+ \NewDocumentEnvironment{#1*}{}
+ {
+ \begin{#2*}
+ }{
+ \end{#2*}
+ }
+}
+%
+\_@@_clone_theorem:nn {Theorem}{theorem}
+\_@@_clone_theorem:nn {Corollary}{corollary}
+\_@@_clone_theorem:nn {Conjecture}{conjecture}
+\_@@_clone_theorem:nn {Proposition}{proposition}
+\_@@_clone_theorem:nn {Lemma}{lemma}
+\_@@_clone_theorem:nn {Axiom}{axiom}
+\_@@_clone_theorem:nn {Definition}{definition}
+\_@@_clone_theorem:nn {Remark}{remark}
+\_@@_clone_theorem:nn {Example}{example}
+\_@@_clone_theorem:nn {Notation}{notation}
+\_@@_clone_theorem:nn {Proof}{proof}
+%
+\clist_set:Nn \l_tmpa_clist {%
+ theorem,
+ corollary,
+ conjecture,
+ proposition,
+ lemma,
+ axiom,
+ definition,
+ remark,
+ example,
+ notation,
+ proof%
+}
+\clist_map_inline:Nn \l_tmpa_clist {
+ \crefname{#1}{
+ \GetTranslation{#1}
+ }{%
+ \GetTranslation{plural-#1}
+ }
+ \Crefname{#1}{
+ \tl_mixed_case:n{ \protect
+ \GetTranslation{#1}
+ }
+ }{%
+ \tl_mixed_case:n{
+ \GetTranslation{plural-#1}
+ }
+ }
+}
+% \end{macrocode}
+%
+% \subsection{Assertions and hypotheses enumerations}
+%
+% An environment for assertions' and hypotheses enumerations are provided in
+% order to display them homogeneously:
+% \begin{macrocode}
+\clist_set:Nn \l_tmpa_clist {%
+ hypothesis,
+ assertion%
+}
+\clist_map_inline:Nn \l_tmpa_clist {
+ \newlist{#1}{enumerate}{1}
+ \setlist[#1]{%
+ label=
+ \normalfont
+ (
+ \textsf{
+ \tl_upper_case:n {\tl_head:f {\GetTranslation{#1}}}
+ }
+ $\c_math_subscript_token\mathsf{\arabic*}$),
+ ref=(
+ \textsf{
+ \tl_upper_case:n {\tl_head:f {\GetTranslation{#1}}}
+ }
+ $_\mathsf{\arabic*}$
+ )
+ }
+ \crefname{#1i}{
+ \GetTranslation{#1}
+ }{%
+ \GetTranslation{plural-#1}
+ }
+ \Crefname{#1i}{
+ \tl_mixed_case:n{
+ \GetTranslation{#1}
+ }
+ }{%
+ \tl_mixed_case:n{
+ \GetTranslation{plural-#1}
+ }
+ }
+}
+\NewDocumentEnvironment{hypotheses}{}
+{
+ \begin{hypothesis}
+ }{
+ \end{hypothesis}
+}
+\NewDocumentEnvironment{assertions}{}
+{
+ \begin{assertion}
+ }{
+ \end{assertion}
+}
+% \end{macrocode}
+%
+% We borrow the following code provided by Enrico Gregorio (see
+% \url{http://tex.stackexchange.com/q/289913/18401}) in order to improve the
+% operators defined with ×\DeclareMathOperator×.
+% \begin{macrocode}
+\RenewDocumentCommand{\DeclareMathOperator}{mm}
+{
+ \NewDocumentCommand{#1}{}
+ {
+ \operatorname{#2}
+ \peek_after:Nw \@@_opx_check:
+ }
+}
+\NewDocumentCommand{\BinaryOperators}{m}
+{
+ \clist_gput_right:Nn \g_@@_opx_binary_clist { #1 }
+}
+\clist_new:N \g_@@_opx_binary_clist
+\cs_new_protected:Nn \@@_opx_check:
+{
+ \clist_map_inline:Nn \g_@@_opx_binary_clist
+ {
+ \token_if_eq_meaning:NNT \l_peek_token ##1 { \clist_map_break:n { {\!} } }
+ }
+}
+\BinaryOperators{%
+ \amalg,%
+ \ast,%
+ \bigcirc,%
+ \bigtriangledown,%
+ \bigtriangleup,%
+ \bullet,%
+ \cap,%
+ \cdot,%
+ \circ,%
+ \cup,%
+ \dagger,%
+ \ddagger,%
+ \diamond,%
+ \div,%
+ \lhd,%
+ \mp,%
+ \odot,%
+ \ominus,%
+ \oplus,%
+ \oslash,%
+ \otimes,%
+ \pm,%
+ \rhd,%
+ \setminus,%
+ \sqcap,%
+ \sqcup,%
+ \star,%
+ \times,%
+ \triangleleft,%
+ \triangleright,%
+ \unlhd,%
+ \unrhd,%
+ \uplus,%
+ \vee,%
+ \wedge,%
+ \wr,%
+ \barwedge,%
+ \boxdot,%
+ \boxminus,%
+ \boxplus,%
+ \boxtimes,%
+ \Cap,%
+ \centerdot,%
+ \circledast,%
+ \circledcirc,%
+ \circleddash,%
+ \Cup,%
+ \curlyvee,%
+ \curlywedge,%
+ \divideontimes,%
+ \dotplus,%
+ \doublebarwedge,%
+ \intercal,%
+ \leftthreetimes,%
+ \ltimes,%
+ \rightthreetimes,%
+ \rtimes,%
+ \smallsetminus,%
+ \veebar%
+}
+% \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{\arccosh}{arccosh}
+\DeclareMathOperator{\arcsinh}{arcsinh}
+\DeclareMathOperator{\arctanh}{arctanh}
+\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
+\cs_set_eq:NN \_@@_orig_arccosh \arccosh
+\cs_set_eq:NN \_@@_orig_arcsinh \arcsinh
+\cs_set_eq:NN \_@@_orig_arctanh \arctanh
+\RenewDocumentCommand \arccos {} {
+ \ifcurrentbaselanguage{french}{\Arccos}{\_@@_orig_arccos}%
+}
+\RenewDocumentCommand \arcsin {} {
+ \ifcurrentbaselanguage {french}{\Arcsin}{\_@@_orig_arcsin}%
+}
+\RenewDocumentCommand \arctan {} {
+ \ifcurrentbaselanguage {french}{\Arctan}{\_@@_orig_arctan}%
+}
+\RenewDocumentCommand \arccosh {} {
+ \ifcurrentbaselanguage{french}{\Argch}{\_@@_orig_arccosh}%
+}
+\RenewDocumentCommand \arcsinh {} {
+ \ifcurrentbaselanguage {french}{\Argsh}{\_@@_orig_arcsinh}%
+}
+\RenewDocumentCommand \arctanh {} {
+ \ifcurrentbaselanguage {french}{\Argth}{\_@@_orig_arctanh}%
+}
+% \end{macrocode}
+%
+% Various other operators.
+% \begin{macrocode}
+\cs_set_eq:NN \_@@_orig_cot \cot
+\RenewDocumentCommand \cot {} {
+ \ifcurrentbaselanguage {french}{\cotan}{\_@@_orig_cot}%
+}
+\DeclareMathOperator{\ch}{ch}
+\DeclareMathOperator{\sh}{sh}
+\cs_set_eq:NN \_@@_orig_cosh \cosh
+\cs_set_eq:NN \_@@_orig_sinh \sinh
+\cs_set_eq:NN \_@@_orig_tanh \tanh
+\RenewDocumentCommand \cosh {} {
+ \ifcurrentbaselanguage {french}{\ch}{\_@@_orig_cosh}%
+}
+\RenewDocumentCommand \sinh {} {
+ \ifcurrentbaselanguage {french}{\sh}{\_@@_orig_sinh}%
+}
+\RenewDocumentCommand \tanh {} {
+ \ifcurrentbaselanguage {french}{\operatorname{th}}{\_@@_orig_tanh}%
+}
+\DeclareMathOperator{\Id}{Id}
+\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
+ }
+}
+% \end{macrocode}
+%
+% \subsection{Miscellaneous constants}
+%
+% We define here the constants $\exp(1)$ (and the function which derives from
+% it) and the complex number $i$/
+% \begin{macrocode}
+\NewDocumentCommand \E { O{} } {
+ \ensuremath{
+ \mathsf{e}
+ \tl_if_empty:nF {#1} {^{#1}}
+ }
+}
+\NewDocumentCommand \I { } {
+ \ensuremath{\mathsf{i}}
+}
+% \end{macrocode}
+%
+% \subsection{Miscellaneous operators}
+%
+% \begin{macrocode}
+\bool_new:N \g_@@_grad_used_bool
+\NewDocumentCommand \grad {} {%
+ \bool_if:NTF \g_@@_gradient_nabla_bool {
+ \operatorname{\nabla}
+ }{
+ \operatorname{grad}
+ }%
+ \peek_after:Nw \@@_opx_check:
+ \bool_if:NTF \g_@@_grad_used_bool {
+ \bool_if:nT { (\g_@@_gradient_nabla_bool && !\g_@@_gradient_nabla_control_bool)
+ || ( !\g_@@_gradient_nabla_bool && \g_@@_gradient_nabla_control_bool) } {
+ \msg_error:nnn{nwejmart}{Article~setup~not~consistent}{gradient}
+ }
+ }{
+ \bool_gset_eq:NN \g_@@_gradient_nabla_control_bool \g_@@_gradient_nabla_bool
+ \bool_gset_true:N \g_@@_grad_used_bool
+ }
+}
+\DeclareMathOperator{\Div}{div}
+\NewDocumentCommand \curl {} {%
+ \ifcurrentbaselanguage {english}{
+ \operatorname{curl}
+ }{
+ \operatorname{rot}
+ }%
+ \peek_after:Nw \@@_opx_check:
+}
+\NewDocumentCommand \supp {} {%
+ \ifcurrentbaselanguage {ngerman}{
+ \operatorname{Tr}
+ }{
+ \operatorname{supp}
+ }%
+ \peek_after:Nw \@@_opx_check:
+}
+% \end{macrocode}
+%
+% We define a command for the differential operator.
+% \begin{macrocode}
+\NewDocumentCommand \dif {}{\mathop{}\!\mathrm{d}}
+% \end{macrocode}
+%
+% \subsection{Various math utilities}
+%
+% \begin{macrocode}
+\cs_set_eq:NN \_@@_orig_leq \leq
+\cs_set_eq:NN \_@@_orig_geq \geq
+\RenewDocumentCommand \le {} {%
+ \ifcurrentbaselanguage {french}{\leqslant}{\_@@_orig_leq}%
+}
+\RenewDocumentCommand \leq {} {%
+ \ifcurrentbaselanguage {french}{\leqslant}{\_@@_orig_leq}%
+}
+\RenewDocumentCommand \ge {} {%
+ \ifcurrentbaselanguage {french}{\geqslant}{\_@@_orig_geq}%
+}
+\RenewDocumentCommand \geq {} {%
+ \ifcurrentbaselanguage {french}{\geqslant}{\_@@_orig_geq}%
+}
+% \end{macrocode}
+%
+% \subsection{(Big) Sets}
+%
+% \begin{macrocode}
+\NewDocumentCommand \bbN {} {\mathbb{N}}
+\NewDocumentCommand \bbZ {} {\mathbb{Z}}
+\NewDocumentCommand \bbD {} {\mathbb{D}}
+\NewDocumentCommand \bbQ {} {\mathbb{Q}}
+\NewDocumentCommand \bbR {} {\mathbb{R}}
+\NewDocumentCommand \bbC {} {\mathbb{C}}
+\NewDocumentCommand \bbK {} {\mathbb{K}}
+% \end{macrocode}
+%
+% We replace the ugly default ×\emptyset× by the much nicer ×\varnothing×.
+% \begin{macrocode}
+\cs_set_eq:NN \emptyset \varnothing
+% \end{macrocode}
+%
+% Now, a command for displaying the sets.
+% \begin{macrocode}
+\tl_new:N \l_@@_given_tl
+\tl_set:Nn \l_@@_given_tl {
+ \nonscript\:\delimsize\slash
+ \allowbreak
+ \nonscript\:
+ \mathopen{}
+}%
+\DeclarePairedDelimiterX\_@@_set[1]\{\}{%
+ #1
+}
+\NewDocumentCommand \set { m O{} } {
+ \if@display
+ \tl_if_empty:nTF {#2} {%
+ \__nwejm_set*{#1}
+ }{
+ \__nwejm_set*{#1\l__nwejm_given_tl #2}
+ }
+ \else
+ \tl_if_empty:nTF {#2} {%
+ \__nwejm_set{#1}
+ }{
+ \__nwejm_set{#1\l__nwejm_given_tl #2}
+ }
+ \fi
+}
+% \end{macrocode}
+%
+% \subsection{Paired delimiters}
+%
+% The following code is adapted from
+% \url{http://tex.stackexchange.com/a/136767/18401} which defines a variant to
+% \pkg{mathtools}' ×\DeclarePairedDelimiter× that improves it. Note that the
+% behaviour is reversed from \pkg{mathtools}' one: the starred versions of the
+% commands don't expand to the height of the contained material whereas the non
+% starred versions, if used without the optional argument, do expand to the
+% height of the contained material.
+% \begin{macrocode}
+\DeclareDocumentCommand{\NewPairedDelimiter}{mm}
+ {
+ \_@@_delimiter_clear_keys: % reset to the default
+ \keys_set:nn { nwejm/delimiters } { #2 }
+ \use:x % we want to expand the values of the token variables set with the keys
+ {
+ \exp_not:n {\NewDocumentCommand{#1}{sO{}m} }
+ {
+ \exp_not:n { \IfBooleanTF{##1} }
+ {
+ \exp_not:N \@@_paired_delimiter:nnnnn
+ { \exp_not:n { 0 } }
+ { \exp_not:V \l_@@_delimiter_left_tl }
+ { \exp_not:V \l_@@_delimiter_right_tl }
+ { \exp_not:n { ##3 } }
+ { \exp_not:V \l_@@_delimiter_subscript_tl }
+ }
+ {
+ \exp_not:N \@@_paired_delimiter:nnnnn
+ { \exp_not:n { ##2 } }
+ { \exp_not:V \l_@@_delimiter_left_tl }
+ { \exp_not:V \l_@@_delimiter_right_tl }
+ { \exp_not:n { ##3 } }
+ { \exp_not:V \l_@@_delimiter_subscript_tl }
+ }
+ }
+ }
+ }
+\keys_define:nn { nwejm/delimiters }
+ {
+ left .tl_set:N = \l@@_delimiter_left_tl,
+ right .tl_set:N = \l@@_delimiter_right_tl,
+ subscript .tl_set:N = \l@@_delimiter_subscript_tl,
+ }
+\cs_new_protected:Npn \_@@_delimiter_clear_keys:
+ {
+ \keys_set:nn { nwejm/delimiters } { left=.,right=.,subscript={} }
+ }
+\cs_new_protected:Npn \@@_paired_delimiter_expand:nnnn #1 #2 #3 #4
+ {% Fix the spacing issue with \left and \right (D. Arsenau, P. Stephani and H. Oberdiek)
+ \mathopen{}
+ \mathclose\c_group_begin_token
+ \left#1
+ #3
+ \group_insert_after:N \c_group_end_token
+ \right#2
+ \tl_if_empty:nF {#4} { \c_math_subscript_token {#4} }
+ }
+\cs_new_protected:Npn \@@_paired_delimiter_fixed:nnnnn #1 #2 #3 #4 #5
+ {
+ \mathopen{#1#2}#4\mathclose{#1#3}
+ \tl_if_empty:nF {#5} { \c_math_subscript_token {#5} }
+ }
+\cs_new_protected:Npn \@@_paired_delimiter:nnnnn #1 #2 #3 #4 #5
+ {
+ \str_case:nnF {#1}
+ {
+ { } { \@@_paired_delimiter_expand:nnnn {#2}{#3}{#4}{#5} }
+ {0} { \@@_paired_delimiter_fixed:nnnnn {}{#2}{#3}{#4}{#5} }
+ {1} { \@@_paired_delimiter_fixed:nnnnn { \big }{#2}{#3}{#4}{#5} }
+ {\big} { \@@_paired_delimiter_fixed:nnnnn { \big }{#2}{#3}{#4}{#5} }
+ {2} { \@@_paired_delimiter_fixed:nnnnn { \Big }{#2}{#3}{#4}{#5} }
+ {\Big} { \@@_paired_delimiter_fixed:nnnnn { \Big }{#2}{#3}{#4}{#5} }
+ {3} { \@@_paired_delimiter_fixed:nnnnn { \bigg }{#2}{#3}{#4}{#5} }
+ {\bigg} { \@@_paired_delimiter_fixed:nnnnn { \bigg }{#2}{#3}{#4}{#5} }
+ {4} { \@@_paired_delimiter_fixed:nnnnn { \Bigg }{#2}{#3}{#4}{#5} }
+ {\Bigg} { \@@_paired_delimiter_fixed:nnnnn { \Bigg }{#2}{#3}{#4}{#5} }
+ }
+ {
+ \msg_warning:nnn{nwejmart}{Wrong~paired~delimiter's~size~parameter}{#1}
+ \@@_paired_delimiter_expand:nnnn {#2}{#3}{#4}
+ }
+ }
+% \end{macrocode}
+%
+% Thanks to ×\NewPairedDelimiter×, we define various paired delimiters such
+% as norms, absolute value, etc.
+% \begin{macrocode}
+\NewPairedDelimiter{\norm}{
+ left=\lVert,
+ right=\rVert
+}
+\NewPairedDelimiter{\lnorm}{
+ left=\lVert,
+ right=\rVert,
+ subscript=1
+}
+\NewPairedDelimiter{\llnorm}{
+ left=\lVert,
+ right=\rVert,
+ subscript=2
+}
+\NewPairedDelimiter{\lpnorm}{
+ left=\lVert,
+ right=\rVert,
+ subscript=p
+}
+\NewPairedDelimiter{\supnorm}{
+ left=\lVert,
+ right=\rVert,
+ subscript=\infty
+}
+\NewPairedDelimiter{\abs}{
+ left=\lvert,
+ right=\rvert
+}
+\NewPairedDelimiter{\prt}{
+ left=(,
+ right=)
+}
+\NewPairedDelimiter{\brk}{
+ left=[,
+ right=]
+}
+\NewPairedDelimiter{\brc}{
+ left=\{,
+ right=\}
+}
+\NewPairedDelimiter{\lrangle}{
+ left=\langle,
+ right=\rangle
+}
+\NewPairedDelimiter{\leqgeq}{
+ left=<,
+ right=>
+}
+% \end{macrocode}
+%
+% \section{Packages settings, libraries loading, etc.}
+%
+% We gather here miscellaneous settings.
+%
+% \subsection{Related to \Pkg{autonum}}
+%
+% We add \pkg{autonum} support for ×\vref× referencing command:
+% \begin{macrocode}
+\AfterEndPreamble{
+ \autonum@generatePatchedReferenceCSL{vref}
+% \end{macrocode}
+%
+% The \Pkg{autonum} deletes the definitions of the starred versions of the
+% ×equation×, ×align×, ×gather×, ×multline×, ×flalign× environments and that
+% may be troubling for the user. Hence we redefine them to be the same as their
+% unstarred counterparts:
+% \begin{macrocode}
+ \clist_set:Nn \l_tmpa_clist {equation,align,gather,multline,flalign}
+ \clist_map_inline:Nn \l_tmpa_clist {
+ \cs_set_eq:cc {#1*} {#1}
+ \cs_set_eq:cc {end#1*} {end#1}
+ }
+ % \msg_warning:nnn{nwejmart}{Starred~AMS~environments}{#1}
+}
+% \end{macrocode}
+%
+% \subsection{Related to \Pkg{etoc}}
+%
+% TOC depth level is ×section×:
+% \begin{macrocode}
+%<class>\etocsettocdepth{section}
+%<class-article>\etocsettocdepth{subsection}
+% \end{macrocode}
+%
+% \subsection{Related to \Pkg{pgfplots}}
+%
+% (French) Numbers format:
+% \begin{macrocode}
+\@ifpackageloaded{pgfplots}{%
+ \ifcurrentbaselanguage{french}{%
+ \pgfplotsset{%
+ /pgf/number~format/.cd,
+ use~comma,
+ 1000~sep={\,},
+ min~exponent~for~1000~sep=4
+ }%
+ }{
+ }
+}
+% \end{macrocode}
+%
+% \subsection{Related to \Pkg{biblatex}}
+%
+% % Use the new French abbreviations
+% % \begin{macrocode}
+% \DeclareLanguageMapping{french}{nwejm}%
+% % \end{macrocode}
+%
+% Necessary setting (otherwise \textquote{REFERENCES} is displayed in both
+% header and footer on the page (and the following ones until the next article)
+% where the bibliography appears).
+% \begin{macrocode}
+\AtEndPreamble{%
+ \defbibheading{_@@_subbibliography}[\refname]{%
+ \section*{#1}
+ }%
+% \end{macrocode}
+%
+% For formal citations (cf. \Package{csquotes}):
+% \begin{macrocode}
+ \SetCiteCommand{\autocite}%
+}%
+% \end{macrocode}
+%
+% \begin{macro}{\printbibliography}
+% \begin{macrocode}
+\int_new:N \l_@@_section_int
+\cs_set_eq:NN \_@@_printbibliography \printbibliography
+\RenewDocumentCommand \printbibliography { O{} } {
+% \end{macrocode}
+% We force all the previous floats to be processed no later on the page
+% following the beginning of the bibliography.
+% \begin{macrocode}
+%<class> \FloatBarrier%
+% \end{macrocode}
+% We automatically insert the acknowledgments (if any) before the bibliography.
+% \begin{macrocode}
+ \tl_if_empty:NF {\g_@@_article_acknowledgments_tl}
+ {
+ \section*{\GetTranslation{Acknowledgments}}
+ \g_@@_article_acknowledgments_tl
+ \tl_gclear:N \g_@@_article_acknowledgments_tl
+ }
+ \_@@_printbibliography[heading=_@@_subbibliography,resetnumbers,#1]
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</class|class-article>
+% \end{macrocode}
+%
+% \subsection{Miscellaneous}
+%
+% \begin{macrocode}
+%<*class-article>
+% \end{macrocode}
+%
+% The independant articles contain their (local) table of contents at their end.
+% \begin{macrocode}
+ \bool_if:NF \g_@@_nolocaltoc_bool {
+ \newpage
+ \setcounter{page}{0}
+ \pagenumbering{roman}%
+ \etocarticlestylenomarks
+% \end{macrocode}
+%
+% We don't want the article's title (chapter's title) in the (local) table of
+% contents.
+% \begin{macrocode}
+ \etocsetlevel{chapter}{6}
+ \tableofcontents
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+%</class-article>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*class|class-article>
+% \end{macrocode}
+%
+% \begin{macrocode}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% 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}
+%
+% \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{hyperref}}
+%
+% We perform a workaround replacement macro for short form of acronyms in
+% headings title in order to let them smoothly appear in the bookmarks.
+% \begin{macrocode}
+\expandafter\def\expandafter\pdfstringdefPreHook
+\expandafter{%
+ \pdfstringdefPreHook
+ \renewcommand{\acrshort}[1]{\tl_upper_case:n {\glsentryshort{##1}}}%
+}
+% \end{macrocode}
+%
+% \subsection{Related to \Pkg{draftwatermark}}
+%
+% \begin{macrocode}
+\@ifpackageloaded{draftwatermark}{%
+ \SetWatermarkColor{gray!10}%
+ \SetWatermarkFontSize{30mm}%
+ \SetWatermarkText{\MakeUppercase{\c_@@_draftwatermark_string_tl}}%
+}{%
+}
+% \end{macrocode}
+%
+% In case of \hologo{pdfTeX} engine, the document makes use of the \pkg{lmodern}
+% for the \enquote{ttfamily} font.
+% \begin{macrocode}
+\pdftex_if_engine:T
+ {
+ \renewcommand{\ttdefault}{lmtt}
+ }
+% \end{macrocode}
+%
+% \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}
+%
+% \begin{macro}{\nwejm}
+% \begin{macrocode}
+\NewDocumentCommand \nwejm { s } {
+ \IfBooleanTF {#1}
+ {
+ \g_@@_nwejm_string_tl
+ }
+ {
+ \g_@@_nwejm_short_string_tl
+ }
+ \xspace
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+%</class|class-article>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*class>
+% \end{macrocode}
+%
+% \begin{macrocode}
+\AtBeginDocument{%
+ \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
+ }
+ \tableofcontents
+ }
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</class>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*class|class-article>
+% \end{macrocode}
+%
+% Because articles' title are displayed thanks to the ×\chapter× command, we
+% have to format its layout.
+% \begin{macrocode}
+\AfterEndPreamble{%
+ \titleformat{\chapter}[block]
+ {\normalfont\centering}{}{0pt}{}
+ \titlespacing*{\chapter}{0pt}{0pt}{0pt}
+}
+% \end{macrocode}
+%
+% We now leave the \LaTeX3{} programming environment.
+% \begin{macrocode}
+\ExplSyntaxOff
+% \end{macrocode}
+%
+% We get rid of useless overfull hbox warnings (due to ×fleqn× and
+% \Pkg{autonum}) by telling autonum to ignore overfull box messages when it does
+% its tentative math environment in order to establish some internal values (see
+% \url{http://tex.stackexchange.com/q/205393/18401}). But this patch works only
+% outside ×\ExplSyntaxOn×/×\ExplSyntaxOff×
+% \begin{macrocode}
+\patchcmd{\autonum@saveEnvironmentSubcommands}
+ {(0,0)\begin}
+ {(0,0)\hfuzz=\maxdimen\begin}
+ {}{}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</class|class-article>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*languagemodel>
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \ProvidesFile{nwejm.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}
+%
+% \section{Initial configuration file}
+%
+% \begin{macrocode}
+%<*configuration>
+% \end{macrocode}
+%
+% First, we create the new entry type "interview" and the new field
+% "interviewee".
+% \begin{macrocode}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Journal data
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\journalsetup{%
+ publisher = \nwejm,
+ address = UFR de Math\'{e}matiques -- B\^atiment M2 -- Bureau 10\newline
+ Universit\'{e} Lille 1 -- Cit\'{e} Scientifique\newline
+ 59655 Villeneuve d'Ascq,
+ phone = +33 (0)3 20 43 42 33,
+ email = aurore.smets@univ-lille1.fr,
+ url = http://math.univ-lille1.fr/~nwejm/,
+ issn =
+}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Editor in chief
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\editorinchief{Nicaise, Serge}{Universit\'{e} de Valenciennes et du Hainaut Cambr\'{e}sis
+}{France}{serge.nicaise@univ-valenciennes.fr}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Fields editor
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\fieldseditor{Craig, Walter}{McMaster University}{Canada}{craig@math.mcmaster.ca}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Managing editor
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\managingeditor{Wicker, Nicolas}{Universit\'{e} Lille 1}{France}{Nicolas.Wicker@math.univ-lille1.fr}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Editors
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\editor{Apel, Thomas}{Universit{\"a}t der Bundeswehr München}{Germany}{thomas.apel@unibw.de}
+\editor{Beauchard, Karine}{\textsc{ens} Rennes}{France}{Karine.Beauchard@math.polytechnique.fr}
+\editor{von Below, Joachim}{Universit\'{e} du Littoral C\^{o}te d'Opale}{France}{vonbelow@lmpa.univ-littoral.fr}
+\editor{Biernacki, Christophe}{Universit\'{e} de Lille 1}{France}{christophe.biernacki@math.univ-lille1.fr}
+\editor{Chainais-Hillairet, Claire}{Universit\'{e} de Lille 1}{France}{claire.chainais@math.univ-lille1.fr}
+\editor{Dauge, Monique}{Universit\'{e} de Rennes I}{France}{monique.dauge@univ-rennes1.fr}
+\editor{David, Sinnou}{Universit\'{e} Paris VI}{France}{david@math.jussieu.fr}
+\editor{Davydov, Youri}{Universit\'{e} de Lille 1}{France}{youri.davydov@math.univ-lille1.fr}
+\editor{D\`{e}bes, Pierre}{Universit\'{e} de Lille 1}{France}{pierre.debes@math.univ-lille1.fr}
+\editor{Demailly, Jean-Pierre}{Universit\'{e} de Grenoble 1}{France}{jean-pierre.demailly@ujf-grenoble.fr}
+\editor{Droniou, J\'{e}r\^{o}me}{Monash University}{Australia}{jerome.droniou@monash.edu}
+\editor{El Kacimi, Aziz}{Universit\'{e} de Valenciennes et du Hainaut Cambr\'{e}sis}{France}{aziz.elkacimi@univ-valenciennes.fr}
+\editor{Fleischmann, Peter}{University of Kent}{United Kingdom}{p.fleischmann@kent.ac.uk}
+\editor{Fresse, Benoît}{Universit\'{e} de Lille 1}{France}{benoit.fresse@math.univ-lille1.fr}
+\editor{Fricain, Emmanuel}{Universit\'{e} de Lille 1}{France}{emmanuel.fricain@math.univ-lille1.fr}
+\editor{Gaffney, Eamonn}{Oxford University}{United Kingdom}{gaffney@maths.ox.ac.uk}
+\editor{Gloria, Antoine}{Universit\'{e} Libre de Bruxelles}{Belgium}{antoine.gloria@ulb.ac.be}
+\editor{Godefroy, Gilles}{Universit\'{e} Paris VI}{France}{godefroy@math.jussieu.fr}
+\editor{Grosse-Erdmann, Karl}{Universit\'{e} de Mons}{Belgium}{kg.grosse-erdmann@umons.ac.be}
+\editor{Guo, Bao-Zhu}{Academy of Mathematics and Systems Science, Academia Sinica, Beijing}{China}{bzguo@iss.ac.cn}
+\editor{Lambrechts, Pascal}{Universit\'{e} Catholique de Louvain}{Belgium}{pascal.lambrechts@uclouvain.be}
+\editor{Lef\`{e}vre, Pascal}{Universit\'{e} d'Artois}{France}{pascal.lefevre@univ-artois.fr}
+\editor{Leroy, Andr\'{e}}{Universit\'{e} d'Artois}{France}{andreleroy55@gmail.com}
+\editor{Loeb, Jean-Jacques}{Universit\'{e} d'Angers}{France}{jean-jacques.loeb@univ-angers.fr}
+\editor{Luca, Florian}{University of Witwatersrand}{South-Africa}{florian.luca@wits.ac.za}
+\editor{Matom{\"a}ki Kaisa}{University of Turku}{Finland}{ksmato@utu.fi}
+\editor{Michaux, Christian}{Universit\'{e} de Mons}{Belgium}{christian.michaux@umons.ac.be}
+\editor{Moerdijk, Ieke}{Radboud University Nijmegen}{Netherlands}{i.moerdijk@math.ru.nl}
+\editor{Murua, Alejandro}{Universit\'{e} de Montr\'{e}al}{Canada}{murua@dms.umontreal.ca}
+\editor{Nakamura, Hiroaki}{Osaka University}{Japan}{nakamura@math.sci.osaka-u.ac.jp}
+\editor{van Neerven, Jan}{Delft University of Technology}{Netherlands}{j.m.a.m.vanneerven@tudelft.nl}
+\editor{Nicaise, Johannes}{Katholieke Universiteit Leuven}{Belgium}{Johannes.Nicaise@wis.kuleuven.be}
+\editor{Norvaisa, Rimas}{Vilnius University}{Lituany}{rimas.norvaisa@mii.vu.lt}
+\editor{Peccati, Giovanni}{University of Luxembourg}{Luxembourg}{giovanni.peccati@gmail.com}
+\editor{Pirashvili, Teimuraz}{University of Leicester}{United Kingdom}{tp59@le.ac.uk}
+\editor{Ramar\'{e}, Olivier}{Universit\'{e} de Lille 1}{France}{olivier.ramare@math.univ-lille1.fr}
+\editor{Roelly, Sylvie}{University of Potsdam}{Germany}{roelly@math.uni-potsdam.de}
+\editor{Stubbe, Isar}{Universit\'{e} du Littoral C\^{o}te d'Opale}{France}{isar.stubbe@lmpa.univ-littoral.fr}
+\editor{Suquet, Charles}{Universit\'{e} de Lille 1}{France}{charles.suquet@math.univ-lille1.fr}
+\editor{Tazzioli, Rossana}{Universit\'{e} de Lille 1}{France}{rossana.tazzioli@math.univ-lille1.fr}
+\editor{Tignol, Jean-Pierre}{Universit\'{e} Catholique de Louvain}{Belgium}{jean-pierre.tignol@uclouvain.be}
+\editor{Wu, Jie}{Institut Elie Cartan}{France}{jie.wu@univ-lorraine.fr}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Secretary
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\secretary{Smets, Aurore}{}{}{}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% LaTeX class designer (and maintainer(s))
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\classdesigner{Bitouz\'{e}, Denis}{Universit\'{e} du Littoral C\^{o}te d'Opale}{France}{denis.bitouze@lmpa.univ-littoral.fr}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Computer engineer
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\computerengineer{Huart, S\'{e}bastien}{Universit\'{e} de Lille 1}{France}{}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Font designer text
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\fontdesignertext{We make use of the set of fonts \href{http://ctan.org/pkg/kpfonts}{Kp-Fonts}, designed by Christophe Caignaert.}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Printer text
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\printingservice{Derycke, Jean-Jacques}{Universit\'{e} de Lille 1}{France}{}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Authors instructions
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \begin{authorsinstructions}
+% Bla bla bla.
+% \end{authorsinstructions}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</configuration>
+% \end{macrocode}
+%
+% \section{Dictionaries files}
+%
+% \begin{macrocode}
+%<*english>
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ProvideDictionaryFor{English}{nwejm}
+%
+\ProvideDictTranslation{theorem}{theorem}
+\ProvideDictTranslation{corollary}{corollary}
+\ProvideDictTranslation{conjecture}{conjecture}
+\ProvideDictTranslation{remark}{remark}
+\ProvideDictTranslation{axiom}{axiom}
+\ProvideDictTranslation{definition}{definition}
+\ProvideDictTranslation{example}{example}
+\ProvideDictTranslation{lemma}{lemma}
+\ProvideDictTranslation{notation}{notation}
+\ProvideDictTranslation{proposition}{proposition}
+\ProvideDictTranslation{proof}{proof}
+\ProvideDictTranslation{plural-theorem}{theorems}
+\ProvideDictTranslation{plural-corollary}{corollaries}
+\ProvideDictTranslation{plural-conjecture}{conjectures}
+\ProvideDictTranslation{plural-remark}{remarks}
+\ProvideDictTranslation{plural-axiom}{axioms}
+\ProvideDictTranslation{plural-definition}{definitions}
+\ProvideDictTranslation{plural-example}{examples}
+\ProvideDictTranslation{plural-lemma}{lemmas}
+\ProvideDictTranslation{plural-notation}{notations}
+\ProvideDictTranslation{plural-proposition}{propositions}
+\ProvideDictTranslation{plural-proof}{proofs}
+%
+\ProvideDictTranslation{volume-abbreviated}{vol.}
+%
+\ProvideDictTranslation{plural-keyword}{keywords}
+%
+\ProvideDictTranslation{received}{received}
+\ProvideDictTranslation{accepted}{accepted}
+\ProvideDictTranslation{online}{online}
+%
+\ProvideDictTranslation{hypothesis}{hypothesis}
+\ProvideDictTranslation{plural-hypothesis}{hypotheses}
+%
+\ProvideDictTranslation{assertion}{assertion}
+\ProvideDictTranslation{plural-assertion}{assertions}
+%
+\ProvideDictTranslation{century}{century}
+\ProvideDictTranslation{before-christ}{BC}
+%
+\ProvideDictTranslation{Acknowledgments}{Acknowledgments}
+%
+\ProvideDictTranslation{idest}{id~est}
+\ProvideDictTranslation{ie}{i.e}
+\ProvideDictTranslation{Idest}{Id~est}
+\ProvideDictTranslation{Ie}{I.e}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</english>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*french>
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ProvideDictionaryFor{French}{nwejm}
+%
+\ProvideDictTranslation{theorem}{th\'{e}or\`{e}me}
+\ProvideDictTranslation{corollary}{corollaire}
+\ProvideDictTranslation{conjecture}{conjecture}
+\ProvideDictTranslation{remark}{remarque}
+\ProvideDictTranslation{axiom}{axiome}
+\ProvideDictTranslation{definition}{d\'{e}finition}
+\ProvideDictTranslation{example}{exemple}
+\ProvideDictTranslation{lemma}{lemme}
+\ProvideDictTranslation{notation}{notation}
+\ProvideDictTranslation{proposition}{proposition}
+\ProvideDictTranslation{proof}{preuve}
+\ProvideDictTranslation{plural-theorem}{th\'{e}or\`{e}mes}
+\ProvideDictTranslation{plural-corollary}{corollaires}
+\ProvideDictTranslation{plural-conjecture}{conjectures}
+\ProvideDictTranslation{plural-remark}{remarques}
+\ProvideDictTranslation{plural-axiom}{axiomes}
+\ProvideDictTranslation{plural-definition}{d\'{e}finitions}
+\ProvideDictTranslation{plural-example}{exemples}
+\ProvideDictTranslation{plural-lemma}{lemmes}
+\ProvideDictTranslation{plural-notation}{notations}
+\ProvideDictTranslation{plural-proposition}{propositions}
+\ProvideDictTranslation{plural-proof}{preuves}
+%
+\ProvideDictTranslation{volume-abbreviated}{vol.}
+%
+\ProvideDictTranslation{plural-keyword}{mots-cl\'{e}s}
+%
+\ProvideDictTranslation{received}{re\c cu}
+\ProvideDictTranslation{accepted}{accept\'{e}}
+\ProvideDictTranslation{online}{en\space ligne}
+%
+\ProvideDictTranslation{hypothesis}{hypoth\`{e}se}
+\ProvideDictTranslation{plural-hypothesis}{hypoth\`{e}ses}
+%
+\ProvideDictTranslation{assertion}{assertion}
+\ProvideDictTranslation{plural-assertion}{assertions}
+%
+\ProvideDictTranslation{century}{si\`{e}cle}
+\ProvideDictTranslation{before-christ}{av.~J.-C}
+%
+\ProvideDictTranslation{Acknowledgments}{Remerciements}
+%
+\ProvideDictTranslation{idest}{c'est-\`{a}-dire}
+\ProvideDictTranslation{ie}{c.-\`{a}-d}
+\ProvideDictTranslation{Idest}{C'est-\`{a}-dire}
+\ProvideDictTranslation{Ie}{C.-\`{a}-d}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</french>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*german>
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ProvideDictionaryFor{German}{nwejm}
+%
+\ProvideDictTranslation{theorem}{Theorem}
+\ProvideDictTranslation{corollary}{Korollar}
+\ProvideDictTranslation{conjecture}{Vermutung}
+\ProvideDictTranslation{remark}{Bemerkung}
+\ProvideDictTranslation{axiom}{Axiom}
+\ProvideDictTranslation{definition}{Definition}
+\ProvideDictTranslation{example}{Beispiel}
+\ProvideDictTranslation{lemma}{Lemma}
+\ProvideDictTranslation{notation}{Bezeichnung}
+\ProvideDictTranslation{proposition}{Proposition}
+\ProvideDictTranslation{proof}{Beweis}
+\ProvideDictTranslation{plural-theorem}{Sätze}
+\ProvideDictTranslation{plural-corollary}{Korollare}
+\ProvideDictTranslation{plural-conjecture}{Vermutungen}
+\ProvideDictTranslation{plural-remark}{Bemerkungen}
+\ProvideDictTranslation{plural-axiom}{Axiome}
+\ProvideDictTranslation{plural-definition}{Definitionen}
+\ProvideDictTranslation{plural-example}{Beispiele}
+\ProvideDictTranslation{plural-lemma}{Lemmata}
+\ProvideDictTranslation{plural-notation}{Bezeichnungen}
+\ProvideDictTranslation{plural-proposition}{Propositionen}
+\ProvideDictTranslation{proofs}{Beweise}
+%
+\ProvideDictTranslation{volume-abbreviated}{Bd}
+%
+\ProvideDictTranslation{plural-keyword}{Schlüsselbegriffe}
+%
+\ProvideDictTranslation{received}{empfangen}
+\ProvideDictTranslation{accepted}{angenommen}
+\ProvideDictTranslation{online}{online}
+%
+\ProvideDictTranslation{hypothesis}{Hypothese}
+\ProvideDictTranslation{plural-hypothesis}{Hypothesen}
+%
+\ProvideDictTranslation{assertion}{Behauptung}
+\ProvideDictTranslation{plural-assertion}{Behauptungen}
+%
+\ProvideDictTranslation{century}{Jhdt}
+\ProvideDictTranslation{before-christ}{v.~Chr}
+%
+\ProvideDictTranslation{Acknowledgments}{Bestätigungen}
+%
+\ProvideDictTranslation{idest}{das~heißt}
+\ProvideDictTranslation{ie}{d.~h}
+\ProvideDictTranslation{Idest}{Das~heißt}
+\ProvideDictTranslation{Ie}{D~h}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</german>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*dutch>
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ProvideDictionaryFor{Dutch}{nwejm}
+%
+\ProvideDictTranslation{theorem}{stelling}
+\ProvideDictTranslation{corollary}{gevolg}
+\ProvideDictTranslation{conjecture}{vermoeden}
+\ProvideDictTranslation{remark}{opmerking}
+\ProvideDictTranslation{axiom}{axioma}
+\ProvideDictTranslation{definition}{definitie}
+\ProvideDictTranslation{example}{voorbeeld}
+\ProvideDictTranslation{lemma}{lemma}
+\ProvideDictTranslation{notation}{notatie}
+\ProvideDictTranslation{proposition}{eigenschap}
+\ProvideDictTranslation{proof}{bewijs}
+\ProvideDictTranslation{plural-theorem}{stellingen}
+\ProvideDictTranslation{plural-corollary}{gevolgen}
+\ProvideDictTranslation{plural-conjecture}{vermoedens}
+\ProvideDictTranslation{plural-remark}{opmerkingen}
+\ProvideDictTranslation{plural-axiom}{axioma's}
+\ProvideDictTranslation{plural-definition}{definities}
+\ProvideDictTranslation{plural-example}{voorbeelden}
+\ProvideDictTranslation{plural-lemma}{lemma's}
+\ProvideDictTranslation{plural-notation}{notaties}
+\ProvideDictTranslation{plural-proposition}{eigenschappen}
+\ProvideDictTranslation{plural-proof}{bewijzen}
+%
+\ProvideDictTranslation{volume-abbreviated}{deel}
+%
+\ProvideDictTranslation{plural-keyword}{trefwoorden}
+%
+\ProvideDictTranslation{received}{ontvangen}
+\ProvideDictTranslation{accepted}{aanvaard}
+\ProvideDictTranslation{online}{online}
+%
+\ProvideDictTranslation{hypothesis}{hypothese}
+\ProvideDictTranslation{plural-hypothesis}{hypotheses}
+%
+\ProvideDictTranslation{assertion}{aanname}
+\ProvideDictTranslation{plural-assertion}{aannames}
+%
+\ProvideDictTranslation{century}{eeuw}
+\ProvideDictTranslation{before-christ}{v.Chr}
+%
+\ProvideDictTranslation{Acknowledgments}{Dankwoord}
+%
+\ProvideDictTranslation{idest}{dat~wil~zeggen}
+\ProvideDictTranslation{ie}{d.w.z}
+\ProvideDictTranslation{Idest}{Dat~wil~zeggen}
+\ProvideDictTranslation{Ie}{D.w.z}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</dutch>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*logos-collection>
+% \end{macrocode}
+%
+% The following complete \File{.tex} draws a graph connecting the logo of the
+% current journal with the ones of its sponsors. The resulting image is inserted
+% on one of the cover pages.
+% \begin{macrocode}
+\documentclass[tikz]{standalone}
+\usepackage{graphicx}
+\usepackage{tkz-berge}
+\makeatletter
+\newcommand*{\grWheelComplete}[2][]{%
+ \begingroup%
+ \setkeys[GR]{cl}{#1}%
+ \grStar[#1]{#2}%
+ \pgfmathsetcounter{tkz@gr@a}{#2-1}%
+ \edef\tkz@auxctp{\thetkz@gr@a}%
+ \foreach \ia in {0,...,\tkz@auxctp}%
+ {\foreach \ib in {\ia,...,\tkz@auxctp}%
+ {\Edge(\cmdGR@cl@prefix\ia)(\cmdGR@cl@prefix\ib)}%
+ }%
+ \endgroup%
+}
+\makeatother
+%
+\begin{document}
+\begin{tikzpicture}[scale=.8]
+ \GraphInit[vstyle=Shade]%
+ \SetGraphShadeColor{blue!60!black!30}{blue}{white}%
+ \tikzset{%
+ VertexStyle/.style = {%
+ shape = circle,%
+ fill = white,%
+ minimum size = 3.5cm,%
+ draw%
+ }%
+ }%
+ \SetVertexNoLabel%
+ \grWheelComplete[RA=9]{6}%
+ \AssignVertexLabel{a}{%
+ \includegraphics[height=25mm]{nwejm-fields-institute-logo},%
+ \includegraphics[height=25mm]{nwejm-federation-recherche-math-npdc-logo},%
+ \includegraphics[height=10mm]{nwejm-kwg-logo},%
+ \includegraphics[height=20mm]{nwejm-smf-logo},%
+ \includegraphics[height=12mm]{nwejm-sml-logo},%
+ \includegraphics[height=25mm]{nwejm-logo}%
+ };%
+\end{tikzpicture}
+\end{document}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</logos-collection>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*bibstyle>
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ProvidesFile{nwejm.bbx}
+[2016/04/01 v 0.1 nwejm bibliographic style (DB)]
+
+\RequireBibliographyStyle{authoryear}
+
+% \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}
+\DeclareNameFormat{giveninits-last}{%
+ \nameparts{#1}
+ \usebibmacro{name:given-family}
+ {\namepartfamily}
+ {\namepartgiveni}
+ {\namepartprefix}
+ {\namepartsuffix}%
+ \usebibmacro{name:andothers}%
+}
+% \end{macrocode}
+%
+% The following is borrowed from Joseph Wright
+% (\url{http://tex.stackexchange.com/a/5795/18401}) in order to prevent
+% identical URL and DOI fields to be both displayed.
+% \begin{macrocode}
+\renewbibmacro*{doi+eprint+url}{%
+ \iftoggle{bbx:doi}%
+ {%
+ \iffieldundef{doi}%
+ {}%
+ {%
+ \begingroup%
+ \edef\URLorDOI{%
+ \detokenize{http://dx.doi.org/}%
+ \thefield{doi}%
+ }%
+ \iffieldequals{url}{\URLorDOI}%
+ {\endgroup}%
+ {%
+ \endgroup%
+ \printfield{doi}%
+ }%
+ }%
+ }%
+ {}%
+ \newunit\newblock%
+ \iftoggle{bbx:eprint}%
+ {\usebibmacro{eprint}}%
+ {}%
+ \newunit\newblock%
+ \iftoggle{bbx:url}%
+ {\usebibmacro{url+urldate}}%
+ {}%
+}
+% \end{macrocode}
+%
+% We perform some other modifications to ×authoryear× bib style.
+% \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*{\addnbthinspace}%
+ \printfield{number}%
+ \setunit{\addcomma\space}%
+ \printfield{eid}%
+}
+\DeclareFieldFormat[article]{volume}{\mkbibbold{#1}}
+\DeclareFieldFormat[book]{volume}{\mkbibbold{#1}}
+\DeclareFieldFormat[article]{number}{\mkbibparens{#1}}
+% \end{macrocode}
+%
+% We redefine the label date in order the pubstate is used in case no date is
+% provided (e.g. for references to appear).
+% \begin{macrocode}
+\DeclareLabeldate{%
+ \field{date}%
+ \field{eventdate}%
+ \field{origdate}%
+ \field{urldate}%
+ \field{pubstate}%
+ \literal{nodate}%
+}
+% \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}
+%</bibstyle>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*citestyle>
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ProvidesFile{nwejm.cbx}
+[2016/04/01 v 0.1 nwejm citation style (DB)]
+
+\RequireCitationStyle{authoryear}
+
+\ExecuteBibliographyOptions{giveninits,ibidtracker=constrict}
+
+% \end{macrocode}
+%
+% We redefine the ×\blx@mkbibfootnote× macro in order the footnote mark of
+% bibliographic citations are in bold, just by inserting a patch of
+% ×\@makefnmark×.
+% \begin{macrocode}
+\renewrobustcmd{\blx@mkbibfootnote}[2]{%
+ \iftoggle{blx@footnote}%
+ {\blx@warning{Nested notes}%
+ \addspace\mkbibparens{#2}}%
+ {\unspace%
+ \ifnum\blx@notetype=\tw@%
+ \expandafter\@firstoftwo%
+ \else%
+ \expandafter\@secondoftwo%
+ \fi%
+ {\csuse{blx@theendnote#1}{\protecting{\blxmkbibnote{end}{#2}}}}%
+ {%
+ \patchcmd\@makefnmark%
+ {\normalfont}%
+ {\normalfont\bfseries}%
+ {}{}%
+ \csuse{footnote#1}{\protecting{\blxmkbibnote{foot}{#2}}}%
+ }%
+ }%
+}
+% \end{macrocode}
+%
+% We also redefine the command that is responsible of the \pkg{csquotes}'
+% quotations without formal citations (e.g. ×displayquote× versus
+% ×displaycquote× environments).
+% \begin{macrocode}
+\renewcommand*{\mkcitation}[1]{%
+ \patchcmd\@makefnmark%
+ {\normalfont}%
+ {\normalfont\bfseries}%
+ {}{}%
+ \footnote{#1}%
+}
+% \end{macrocode}
+%
+% Because this cite style is a mix between ×authortitle× and ×authoryear× but is
+% mainly based upon ×authoryear× style, we need to define the bib macro
+% ×cite:title× defined in ×authortitle× but not in ×authoryear×.
+% \begin{macrocode}
+\newbibmacro*{cite:title}{%
+ \printtext[bibhyperref]{%
+ \printfield[citetitle]{labeltitle}}}
+% \end{macrocode}
+%
+% Because we want to replace autocite redundant consecutive citations by
+% \enquote{Ibid.}, we need to borrow some code from \pkg{biblatex}'s ×*-ibid* styles.
+% \begin{macrocode}
+\providecommand*{\mkibid}[1]{#1}
+\newbibmacro*{cite:ibid}{%
+ \printtext[bibhyperref]{\bibstring[\mkibid]{ibidem}}%
+}
+% \end{macrocode}
+%
+% We create the ×nwejm:cite× bib macro which emulates a mix between
+% ×authortitle× and ×authoryear× styles: it displays the label name (mainly
+% authors' names), then the year and finally the title.
+% \begin{macrocode}
+\newbibmacro*{nwejm:cite}{%
+ \iffieldundef{shorthand}{%
+ {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}%
+ {\usebibmacro{cite:ibid}}%
+ {%
+ \ifthenelse{%
+ \ifnameundef{labelname}%
+ }{%
+ \usebibmacro{cite:label}%
+ \setunit{\addcomma\space}%
+ }{%
+ \printnames{labelname}%
+ \ifthenelse{%
+ \iffieldundef{labelyear}%
+ }{%
+ }{%
+ \setunit{\addcomma\space}%
+ \usebibmacro{cite:labelyear+extrayear}%
+ \ifthenelse{%
+ \iffieldundef{labeltitle}%
+ }{%
+ }{%
+ \setunit{\addcomma\space}%
+ \usebibmacro{cite:title}%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }{%
+ \usebibmacro{cite:shorthand}%
+ }%
+}
+% \end{macrocode}
+%
+% We now declare the new cite command ×\nwejmfootcite× (and it multicite
+% counterpart) which is identical to ×\footcite× except it uses the ×nwejm:cite×
+% bib macro instead of the usual ×cite× one.
+% \begin{macrocode}
+\DeclareCiteCommand{\nwejmfootcite}[\mkbibfootnote]
+{\usebibmacro{prenote}}%
+{\usebibmacro{citeindex}%
+ \usebibmacro{nwejm:cite}}
+{%
+% \end{macrocode}
+%
+% Unique (auto)citations with multiple keys are displayed in footnotes but each
+% of the corresponding references is on its own line.
+% \begin{macrocode}
+ \ifcurrentbaselanguage{french}{%
+ \parindent=\parindentFFN%
+ \addtolength{\parindent}{\widthof{\dotFFN\kernFFN}}%
+ }{%
+ \parindent=\footnotemargin%
+ }%
+ \multicitedelim\newline\indent%
+}
+{\usebibmacro{postnote}}%
+\DeclareMultiCiteCommand{\nwejmfootcites}[\mkbibfootnote]{\nwejmfootcite}
+{\addsemicolon\space}
+% \end{macrocode}
+%
+% We now declare the definitions for the ×\autocite× and ×\autocites× commands
+% and we apply these definitions.
+% \begin{macrocode}
+\DeclareAutoCiteCommand{nwejmfootcite}{\nwejmfootcite}{\nwejmfootcites}
+
+\DeclareCiteCommand{\textcite}
+ {\boolfalse{cbx:parens}}
+ {\usebibmacro{citeindex}%
+ \iffirstcitekey
+ {\setcounter{textcitetotal}{1}}
+ {\stepcounter{textcitetotal}%
+ \textcitedelim}%
+ \iffootnote{\usebibmacro{nwejm:cite}}{\usebibmacro{textcite}}}
+ {\ifbool{cbx:parens}
+ {\bibcloseparen\global\boolfalse{cbx:parens}}
+ {}}
+ {\usebibmacro{textcite:postnote}}
+
+
+\ExecuteBibliographyOptions{autocite=nwejmfootcite}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</citestyle>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*latexmkrc>
+% \end{macrocode}
+%
+% \begin{macrocode}
+$pdf_mode = 1;
+
+$bibtex_use = 1;
+$bibtex = 'biber %O %B';
+
+$makeindex = 'texindy -L french';
+
+add_cus_dep('idx', 'ind', 0, 'texindy');
+sub texindy{
+ system("texindy -L french \"$_[0].idx\"");
+}
+
+push @generated_exts, "aux", "idx", "ind", "lo*", "out", "toc", "acn", "acr",
+"alg", "bbl", "bcf", "fls", "gl*", "ist", "run.xml", "sbl*", "sl*", "sym*",
+"xdy", "unq", "mw", "*~" ;
+
+$clean_ext = "synctex.gz* run.xml tex.bak bbl bcf fdb_latexmk run tdo listing"
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</latexmkrc>
+% \end{macrocode}
+%
+% \chapter{Completion files for TeXstudio and friends}
+% Now, the \file{nwejmart.cwl} and \file{nwejm.cwl} files for commands
+% completion and syntax checking:
+%
+% \begin{macrocode}
+%<*class-cwl>
+% \end{macrocode}
+%
+% \begin{macrocode}
+# mode: nwejm.cls
+# denisbitouze, 23.12.2015
+#
+#include:class-book
+#include:latex-document
+#include:latex-mathsymbols
+#include:tex
+#include:xparse
+#include:l3keys2e
+#include:l3sort
+#include:nag
+#include:fontenc
+#include:inputenc
+#include:fontspec
+#include:graphicx
+#include:adjustbox
+#include:draftwatermark
+#include:xspace
+#include:csquotes
+#include:biblatex
+#include:array
+#include:booktabs
+#include:varioref
+#include:mathtools
+#include:mathrsfs
+#include:esvect
+#include:kpfonts
+#include:translations
+#include:fmtcount
+#include:geometry
+#include:babel
+#include:tocvsec2
+#include:etoc
+#include:microtype
+#include:datetime2
+#include:enumitem
+#include:pagegrid
+#include:amsthm
+#include:thmtools
+#include:hyperref
+#include:hypcap
+#include:bookmark
+#include:glossaries
+#include:cleveref
+#
+# Document class
+#keyvals:\documentclass/nwejmart
+french
+english
+ngerman
+dutch
+#endkeyvals
+#
+# Cover and title pages
+#
+# Title, etc.
+\title{title}#n
+\title[short title]{title}#n
+\subtitle{%<subtitle%>}#n*
+\subtitle[%<short subtitle%>]{%<subtitle%>}#n*
+#
+# Author
+\author{%<Last name%>, %<First name%>}#n
+\author[affiliation={%<affiliation%>}]{%<Last name%>, %<First name%>}#n
+\author[affiliation=[%<affiliation's tag%>]{%<affiliation%>}]{%<Last name%>, %<First name%>}#n
+\author[affiliationtagged={%<affiliation's tag%>}]{%<Last name%>, %<First name%>}#n
+#
+# Dates
+\dates{received=%<yyyy%>-%<mm%>-%<dd%>,accepted=%<yyyy%>-%<mm%>-%<dd%>,online=%<yyyy%>-%<mm%>-%<dd%>}#n
+#
+# Math commands
+\N#m
+\Z#m
+\D#m
+\Q#m
+\R#m
+\C#m
+\K#m
+\arccosh#m
+\arcsin#m
+\arcsinh#m
+\arctan#m
+\arctanh#m
+\Argch#m
+\Argsh#m
+\Argth#m
+\ch#m
+\cotan#m
+\curl#m
+\dif#m
+\Div#m
+\grad#m
+\E#m
+\I#m
+\rot#m
+\sh#m
+\supp#m
+\th#m
+\norm#m
+\lnorm#m
+\llnorm#m
+\lpnorm#m
+\supnorm#m
+\abs#m
+\prt#m
+\brk#m
+\brc#m
+\leqgeq#m
+\lrangle#m
+\set{%<set self-contained definition%>}#m
+\set{%<set definition%>}[%<such that...%>]#m
+\begin{axiom}
+\begin{assertions}
+\begin{conjecture}
+\begin{corollary}
+\begin{definition}
+\begin{example}
+\begin{hypotheses}
+\begin{proposition}
+\begin{lemma}
+\begin{notation}
+\begin{proof}
+\begin{remark}
+\begin{theorem}
+#
+\begin{axiom*}
+\begin{assertions*}
+\begin{conjecture*}
+\begin{corollary*}
+\begin{definition*}
+\begin{example*}
+\begin{hypotheses*}
+\begin{proposition*}
+\begin{lemma*}
+\begin{notation*}
+\begin{proof*}
+\begin{remark*}
+\begin{theorem*}
+#
+\end{axiom}
+\end{assertions}
+\end{conjecture}
+\end{corollary}
+\end{definition}
+\end{example}
+\end{hypotheses}
+\end{proposition}
+\end{lemma}
+\end{notation}
+\end{proof}
+\end{remark}
+\end{theorem}
+#
+\end{axiom*}
+\end{assertions*}
+\end{conjecture*}
+\end{corollary*}
+\end{definition*}
+\end{example*}
+\end{hypotheses*}
+\end{proposition*}
+\end{lemma*}
+\end{notation*}
+\end{proof*}
+\end{remark*}
+\end{theorem*}
+#
+\begin{description*}
+\begin{enumerate*}
+\begin{itemize*}
+#
+\end{description*}
+\end{enumerate*}
+\end{itemize*}
+# Miscellaneous commands
+\keywords{%<list of keywords%>}#n
+\msc{%<list of MSCs%>}#n
+\nwejm#n
+\nwejm*#n*
+\century{%<(positive or negative) integer%>}#n
+\century*{%<(positive or negative) integer%>}#n*
+\aside{%<interpolated clause%>}#n
+\aside*{%<interpolated clause%>}#n
+\acknowledgements{%<acknowledgments%>}#n
+\ie#n
+\ie*#n*
+\Ie#n
+\Ie*#n*
+\NewPairedDelimiter#n
+\articlesetup#n
+\BinaryOperators#n
+#
+\editorinchief{%<Last name%>, %<First name%>}{%<affiliation%>}{%<country%>}{%<email%>}#n
+\editor{%<Last name%>, %<First name%>}{%<affiliation%>}{%<country%>}{%<email%>}#n
+\fieldseditor{%<Last name%>, %<First name%>}{%<affiliation%>}{%<country%>}{%<email%>}#n
+\managingeditor{%<Last name%>, %<First name%>}{%<affiliation%>}{%<country%>}{%<email%>}#n
+\classdesigner{%<Last name%>, %<First name%>}{%<affiliation%>}{%<country%>}{%<email%>}#n
+\computerengineer{%<Last name%>, %<First name%>}{%<affiliation%>}{%<country%>}{%<email%>}#n
+\classmaintainer{%<Last name%>, %<First name%>}{%<affiliation%>}{%<country%>}{%<email%>}#n
+\fontdesigner{%<Last name%>, %<First name%>}{%<affiliation%>}{%<country%>}{%<email%>}#n
+\printingservice{%<Last name%>, %<First name%>}{%<affiliation%>}{%<country%>}{%<email%>}#n
+\computerassistance{%<Last name%>, %<First name%>}{%<affiliation%>}{%<country%>}{%<email%>}#n
+\secretary{%<Last name%>, %<First name%>}{%<affiliation%>}{%<country%>}{%<email%>}#n
+\issuesetup{number=%<positive integer%>}#n
+\journalsetup {publisher=%<publisher%>,address={%<address%>},phone=%<phone%>,email=%<email%>,url=%<url%>,issn=%<issn%>,isbn=%<isbn%>}#n
+\inputarticle{file}#i
+\inputarticle[path]{file}#i
+\fontdesignertext{text}#n
+\printertext{text}#n
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</class-cwl>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*classart-cwl>
+% \end{macrocode}
+%
+% \begin{macrocode}
+# mode: nwejm.cls
+# denisbitouze, 23.12.2015
+#
+#include:nwejm
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<classart-cwl>
+% \end{macrocode}
+%
+% \begin{macrocode}
+\endinput
+% \end{macrocode}
+%
+% \Finale
+
+% Local Variables:
+% mode: doctex
+% ispell-local-dictionary: "english"
+% TeX-command-default: "TeX"
+% TeX-master: t
+% End:
diff --git a/Master/texmf-dist/source/latex/nwejm/nwejm.ins b/Master/texmf-dist/source/latex/nwejm/nwejm.ins
new file mode 100644
index 00000000000..c4bc74dc6e9
--- /dev/null
+++ b/Master/texmf-dist/source/latex/nwejm/nwejm.ins
@@ -0,0 +1,101 @@
+%%
+%% This is file `nwejm.ins',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% nwejm.dtx (with options: `install')
+%% -------:| -----------------------------------------------------------------
+%% nwejm:| Class for the journal "North-Western European Journal of Mathematics"
+%% Author:| Denis Bitouze
+%% E-mail:| denis.bitouze@lmpa.univ-littoral.fr
+%% License:| Released under the LaTeX Project Public License v1.3c or later
+%% See:| http://www.latex-project.org/lppl.txt
+%%
+\input l3docstrip.tex
+\Msg{********************************************************}
+\Msg{* Installation}
+\Msg{* Class: nwejm 2016/04/14 v0.96}
+\Msg{* for the journal}
+\Msg{* "North-Western European Journal of Mathematics" (DB)}
+\Msg{********************************************************}
+\keepsilent
+\askforoverwritefalse
+\preamble
+-------:| -----------------------------------------------------------------
+ nwejm:| Class for the journal "North-Western European Journal of Mathematics"
+ Author:| Denis Bitouze
+ E-mail:| denis.bitouze@lmpa.univ-littoral.fr
+License:| Released under the LaTeX Project Public License v1.3c or later
+ See:| http://www.latex-project.org/lppl.txt
+
+\endpreamble
+\postamble
+
+Copyright (C) 2015, 2016 by Denis Bitouze <denis.bitouze@lmpa.univ-littoral.fr>
+
+This work 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 is "maintained" (as per LPPL maintenance status) by
+Denis Bitouze.
+
+This work consists of the file nwejm.dtx and a Makefile.
+Running "make" generates the derived files README, nwejm.pdf and nwejm.cls.
+Running "make inst" installs the files in the user's TeX tree.
+Running "make install" installs the files in the local TeX tree.
+
+\endpostamble
+\def\NWEJM@classname{\jobname}
+\def\NWEJM@addons{addons}
+\def\NWEJM@documentation{documentation}
+\usedir{/}
+\generate{
+ \nopreamble\nopostamble
+ \file{README.md}{\from{\jobname.dtx}{readme}}
+}%
+\usedir{tex/latex/\NWEJM@classname}
+\generate{%
+ \file{\NWEJM@classname.cls}{\from{\jobname.dtx}{class}}
+ \file{\NWEJM@classname art.cls}{\from{\jobname.dtx}{class-article}}
+ \file{\NWEJM@classname.dbx}{\from{\jobname.dtx}{datamodel}}
+ \file{\NWEJM@classname.cbx}{\from{\jobname.dtx}{citestyle}}
+ \file{\NWEJM@classname.bbx}{\from{\jobname.dtx}{bibstyle}}
+ \file{\NWEJM@classname.lbx}{\from{\jobname.dtx}{languagemodel}}
+ \nopreamble\nopostamble
+ \file{\NWEJM@classname.cfg}{\from{\jobname.dtx}{configuration}}
+ \file{\NWEJM@classname-english.trsl}{\from{\jobname.dtx}{english}}
+ \file{\NWEJM@classname-french.trsl}{\from{\jobname.dtx}{french}}
+ \file{\NWEJM@classname-german.trsl}{\from{\jobname.dtx}{german}}
+ \file{\NWEJM@classname-dutch.trsl}{\from{\jobname.dtx}{dutch}}
+}%
+\usedir{tex/latex/\NWEJM@classname/images}
+\generate{%
+ \nopreamble\nopostamble
+ \file{\NWEJM@classname-logos-collection.tex}{\from{\jobname.dtx}{logos-collection}}
+}%
+\endbatchfile
+%%
+%% Copyright (C) 2015, 2016 by Denis Bitouze <denis.bitouze@lmpa.univ-littoral.fr>
+%%
+%% This work 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 is "maintained" (as per LPPL maintenance status) by
+%% Denis Bitouze.
+%%
+%% This work consists of the file nwejm.dtx and a Makefile.
+%% Running "make" generates the derived files README, nwejm.pdf and nwejm.cls.
+%% Running "make inst" installs the files in the user's TeX tree.
+%% Running "make install" installs the files in the local TeX tree.
+%%
+%%
+%% End of file `nwejm.ins'.
diff --git a/Master/texmf-dist/tex/latex/nwejm/images/nwejm-federation-recherche-math-npdc-logo.pdf b/Master/texmf-dist/tex/latex/nwejm/images/nwejm-federation-recherche-math-npdc-logo.pdf
new file mode 100644
index 00000000000..ddc8e34dcb3
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/nwejm/images/nwejm-federation-recherche-math-npdc-logo.pdf
Binary files differ
diff --git a/Master/texmf-dist/tex/latex/nwejm/images/nwejm-fields-institute-logo.pdf b/Master/texmf-dist/tex/latex/nwejm/images/nwejm-fields-institute-logo.pdf
new file mode 100644
index 00000000000..320d3c67a91
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/nwejm/images/nwejm-fields-institute-logo.pdf
Binary files differ
diff --git a/Master/texmf-dist/tex/latex/nwejm/images/nwejm-kwg-logo.pdf b/Master/texmf-dist/tex/latex/nwejm/images/nwejm-kwg-logo.pdf
new file mode 100644
index 00000000000..4f1b9c7e0c5
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/nwejm/images/nwejm-kwg-logo.pdf
Binary files differ
diff --git a/Master/texmf-dist/tex/latex/nwejm/images/nwejm-logo-NB.pdf b/Master/texmf-dist/tex/latex/nwejm/images/nwejm-logo-NB.pdf
new file mode 100644
index 00000000000..1e6c7c58732
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/nwejm/images/nwejm-logo-NB.pdf
Binary files differ
diff --git a/Master/texmf-dist/tex/latex/nwejm/images/nwejm-logo.pdf b/Master/texmf-dist/tex/latex/nwejm/images/nwejm-logo.pdf
new file mode 100644
index 00000000000..7162865ca50
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/nwejm/images/nwejm-logo.pdf
Binary files differ
diff --git a/Master/texmf-dist/tex/latex/nwejm/images/nwejm-logos-collection.pdf b/Master/texmf-dist/tex/latex/nwejm/images/nwejm-logos-collection.pdf
new file mode 100644
index 00000000000..5d8d781164c
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/nwejm/images/nwejm-logos-collection.pdf
Binary files differ
diff --git a/Master/texmf-dist/tex/latex/nwejm/images/nwejm-logos-collection.tex b/Master/texmf-dist/tex/latex/nwejm/images/nwejm-logos-collection.tex
new file mode 100644
index 00000000000..b32baede8a4
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/nwejm/images/nwejm-logos-collection.tex
@@ -0,0 +1,41 @@
+\documentclass[tikz]{standalone}
+\usepackage{graphicx}
+\usepackage{tkz-berge}
+\makeatletter
+\newcommand*{\grWheelComplete}[2][]{%
+ \begingroup%
+ \setkeys[GR]{cl}{#1}%
+ \grStar[#1]{#2}%
+ \pgfmathsetcounter{tkz@gr@a}{#2-1}%
+ \edef\tkz@auxctp{\thetkz@gr@a}%
+ \foreach \ia in {0,...,\tkz@auxctp}%
+ {\foreach \ib in {\ia,...,\tkz@auxctp}%
+ {\Edge(\cmdGR@cl@prefix\ia)(\cmdGR@cl@prefix\ib)}%
+ }%
+ \endgroup%
+}
+\makeatother
+\begin{document}
+\begin{tikzpicture}[scale=.8]
+ \GraphInit[vstyle=Shade]%
+ \SetGraphShadeColor{blue!60!black!30}{blue}{white}%
+ \tikzset{%
+ VertexStyle/.style = {%
+ shape = circle,%
+ fill = white,%
+ minimum size = 3.5cm,%
+ draw%
+ }%
+ }%
+ \SetVertexNoLabel%
+ \grWheelComplete[RA=9]{6}%
+ \AssignVertexLabel{a}{%
+ \includegraphics[height=25mm]{nwejm-fields-institute-logo},%
+ \includegraphics[height=25mm]{nwejm-federation-recherche-math-npdc-logo},%
+ \includegraphics[height=10mm]{nwejm-kwg-logo},%
+ \includegraphics[height=20mm]{nwejm-smf-logo},%
+ \includegraphics[height=12mm]{nwejm-sml-logo},%
+ \includegraphics[height=25mm]{nwejm-logo}%
+ };%
+\end{tikzpicture}
+\end{document}
diff --git a/Master/texmf-dist/tex/latex/nwejm/images/nwejm-smf-logo.pdf b/Master/texmf-dist/tex/latex/nwejm/images/nwejm-smf-logo.pdf
new file mode 100644
index 00000000000..3ab1a5ac68e
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/nwejm/images/nwejm-smf-logo.pdf
Binary files differ
diff --git a/Master/texmf-dist/tex/latex/nwejm/images/nwejm-sml-logo.pdf b/Master/texmf-dist/tex/latex/nwejm/images/nwejm-sml-logo.pdf
new file mode 100644
index 00000000000..3bd23456f80
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/nwejm/images/nwejm-sml-logo.pdf
Binary files differ
diff --git a/Master/texmf-dist/tex/latex/nwejm/nwejm-dutch.trsl b/Master/texmf-dist/tex/latex/nwejm/nwejm-dutch.trsl
new file mode 100644
index 00000000000..2c3fe6c3d10
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/nwejm/nwejm-dutch.trsl
@@ -0,0 +1,39 @@
+\ProvideDictionaryFor{Dutch}{nwejm}
+\ProvideDictTranslation{theorem}{stelling}
+\ProvideDictTranslation{corollary}{gevolg}
+\ProvideDictTranslation{conjecture}{vermoeden}
+\ProvideDictTranslation{remark}{opmerking}
+\ProvideDictTranslation{axiom}{axioma}
+\ProvideDictTranslation{definition}{definitie}
+\ProvideDictTranslation{example}{voorbeeld}
+\ProvideDictTranslation{lemma}{lemma}
+\ProvideDictTranslation{notation}{notatie}
+\ProvideDictTranslation{proposition}{eigenschap}
+\ProvideDictTranslation{proof}{bewijs}
+\ProvideDictTranslation{plural-theorem}{stellingen}
+\ProvideDictTranslation{plural-corollary}{gevolgen}
+\ProvideDictTranslation{plural-conjecture}{vermoedens}
+\ProvideDictTranslation{plural-remark}{opmerkingen}
+\ProvideDictTranslation{plural-axiom}{axioma's}
+\ProvideDictTranslation{plural-definition}{definities}
+\ProvideDictTranslation{plural-example}{voorbeelden}
+\ProvideDictTranslation{plural-lemma}{lemma's}
+\ProvideDictTranslation{plural-notation}{notaties}
+\ProvideDictTranslation{plural-proposition}{eigenschappen}
+\ProvideDictTranslation{plural-proof}{bewijzen}
+\ProvideDictTranslation{volume-abbreviated}{deel}
+\ProvideDictTranslation{plural-keyword}{trefwoorden}
+\ProvideDictTranslation{received}{ontvangen}
+\ProvideDictTranslation{accepted}{aanvaard}
+\ProvideDictTranslation{online}{online}
+\ProvideDictTranslation{hypothesis}{hypothese}
+\ProvideDictTranslation{plural-hypothesis}{hypotheses}
+\ProvideDictTranslation{assertion}{aanname}
+\ProvideDictTranslation{plural-assertion}{aannames}
+\ProvideDictTranslation{century}{eeuw}
+\ProvideDictTranslation{before-christ}{v.Chr}
+\ProvideDictTranslation{Acknowledgments}{Dankwoord}
+\ProvideDictTranslation{idest}{dat~wil~zeggen}
+\ProvideDictTranslation{ie}{d.w.z}
+\ProvideDictTranslation{Idest}{Dat~wil~zeggen}
+\ProvideDictTranslation{Ie}{D.w.z}
diff --git a/Master/texmf-dist/tex/latex/nwejm/nwejm-english.trsl b/Master/texmf-dist/tex/latex/nwejm/nwejm-english.trsl
new file mode 100644
index 00000000000..56300b39dd8
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/nwejm/nwejm-english.trsl
@@ -0,0 +1,39 @@
+\ProvideDictionaryFor{English}{nwejm}
+\ProvideDictTranslation{theorem}{theorem}
+\ProvideDictTranslation{corollary}{corollary}
+\ProvideDictTranslation{conjecture}{conjecture}
+\ProvideDictTranslation{remark}{remark}
+\ProvideDictTranslation{axiom}{axiom}
+\ProvideDictTranslation{definition}{definition}
+\ProvideDictTranslation{example}{example}
+\ProvideDictTranslation{lemma}{lemma}
+\ProvideDictTranslation{notation}{notation}
+\ProvideDictTranslation{proposition}{proposition}
+\ProvideDictTranslation{proof}{proof}
+\ProvideDictTranslation{plural-theorem}{theorems}
+\ProvideDictTranslation{plural-corollary}{corollaries}
+\ProvideDictTranslation{plural-conjecture}{conjectures}
+\ProvideDictTranslation{plural-remark}{remarks}
+\ProvideDictTranslation{plural-axiom}{axioms}
+\ProvideDictTranslation{plural-definition}{definitions}
+\ProvideDictTranslation{plural-example}{examples}
+\ProvideDictTranslation{plural-lemma}{lemmas}
+\ProvideDictTranslation{plural-notation}{notations}
+\ProvideDictTranslation{plural-proposition}{propositions}
+\ProvideDictTranslation{plural-proof}{proofs}
+\ProvideDictTranslation{volume-abbreviated}{vol.}
+\ProvideDictTranslation{plural-keyword}{keywords}
+\ProvideDictTranslation{received}{received}
+\ProvideDictTranslation{accepted}{accepted}
+\ProvideDictTranslation{online}{online}
+\ProvideDictTranslation{hypothesis}{hypothesis}
+\ProvideDictTranslation{plural-hypothesis}{hypotheses}
+\ProvideDictTranslation{assertion}{assertion}
+\ProvideDictTranslation{plural-assertion}{assertions}
+\ProvideDictTranslation{century}{century}
+\ProvideDictTranslation{before-christ}{BC}
+\ProvideDictTranslation{Acknowledgments}{Acknowledgments}
+\ProvideDictTranslation{idest}{id~est}
+\ProvideDictTranslation{ie}{i.e}
+\ProvideDictTranslation{Idest}{Id~est}
+\ProvideDictTranslation{Ie}{I.e}
diff --git a/Master/texmf-dist/tex/latex/nwejm/nwejm-french.trsl b/Master/texmf-dist/tex/latex/nwejm/nwejm-french.trsl
new file mode 100644
index 00000000000..26e7d8a1371
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/nwejm/nwejm-french.trsl
@@ -0,0 +1,39 @@
+\ProvideDictionaryFor{French}{nwejm}
+\ProvideDictTranslation{theorem}{th\'{e}or\`{e}me}
+\ProvideDictTranslation{corollary}{corollaire}
+\ProvideDictTranslation{conjecture}{conjecture}
+\ProvideDictTranslation{remark}{remarque}
+\ProvideDictTranslation{axiom}{axiome}
+\ProvideDictTranslation{definition}{d\'{e}finition}
+\ProvideDictTranslation{example}{exemple}
+\ProvideDictTranslation{lemma}{lemme}
+\ProvideDictTranslation{notation}{notation}
+\ProvideDictTranslation{proposition}{proposition}
+\ProvideDictTranslation{proof}{preuve}
+\ProvideDictTranslation{plural-theorem}{th\'{e}or\`{e}mes}
+\ProvideDictTranslation{plural-corollary}{corollaires}
+\ProvideDictTranslation{plural-conjecture}{conjectures}
+\ProvideDictTranslation{plural-remark}{remarques}
+\ProvideDictTranslation{plural-axiom}{axiomes}
+\ProvideDictTranslation{plural-definition}{d\'{e}finitions}
+\ProvideDictTranslation{plural-example}{exemples}
+\ProvideDictTranslation{plural-lemma}{lemmes}
+\ProvideDictTranslation{plural-notation}{notations}
+\ProvideDictTranslation{plural-proposition}{propositions}
+\ProvideDictTranslation{plural-proof}{preuves}
+\ProvideDictTranslation{volume-abbreviated}{vol.}
+\ProvideDictTranslation{plural-keyword}{mots-cl\'{e}s}
+\ProvideDictTranslation{received}{re\c cu}
+\ProvideDictTranslation{accepted}{accept\'{e}}
+\ProvideDictTranslation{online}{en\space ligne}
+\ProvideDictTranslation{hypothesis}{hypoth\`{e}se}
+\ProvideDictTranslation{plural-hypothesis}{hypoth\`{e}ses}
+\ProvideDictTranslation{assertion}{assertion}
+\ProvideDictTranslation{plural-assertion}{assertions}
+\ProvideDictTranslation{century}{si\`{e}cle}
+\ProvideDictTranslation{before-christ}{av.~J.-C}
+\ProvideDictTranslation{Acknowledgments}{Remerciements}
+\ProvideDictTranslation{idest}{c'est-\`{a}-dire}
+\ProvideDictTranslation{ie}{c.-\`{a}-d}
+\ProvideDictTranslation{Idest}{C'est-\`{a}-dire}
+\ProvideDictTranslation{Ie}{C.-\`{a}-d}
diff --git a/Master/texmf-dist/tex/latex/nwejm/nwejm-german.trsl b/Master/texmf-dist/tex/latex/nwejm/nwejm-german.trsl
new file mode 100644
index 00000000000..f22f5f9ad01
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/nwejm/nwejm-german.trsl
@@ -0,0 +1,39 @@
+\ProvideDictionaryFor{German}{nwejm}
+\ProvideDictTranslation{theorem}{Theorem}
+\ProvideDictTranslation{corollary}{Korollar}
+\ProvideDictTranslation{conjecture}{Vermutung}
+\ProvideDictTranslation{remark}{Bemerkung}
+\ProvideDictTranslation{axiom}{Axiom}
+\ProvideDictTranslation{definition}{Definition}
+\ProvideDictTranslation{example}{Beispiel}
+\ProvideDictTranslation{lemma}{Lemma}
+\ProvideDictTranslation{notation}{Bezeichnung}
+\ProvideDictTranslation{proposition}{Proposition}
+\ProvideDictTranslation{proof}{Beweis}
+\ProvideDictTranslation{plural-theorem}{S^^c3^^a4tze}
+\ProvideDictTranslation{plural-corollary}{Korollare}
+\ProvideDictTranslation{plural-conjecture}{Vermutungen}
+\ProvideDictTranslation{plural-remark}{Bemerkungen}
+\ProvideDictTranslation{plural-axiom}{Axiome}
+\ProvideDictTranslation{plural-definition}{Definitionen}
+\ProvideDictTranslation{plural-example}{Beispiele}
+\ProvideDictTranslation{plural-lemma}{Lemmata}
+\ProvideDictTranslation{plural-notation}{Bezeichnungen}
+\ProvideDictTranslation{plural-proposition}{Propositionen}
+\ProvideDictTranslation{proofs}{Beweise}
+\ProvideDictTranslation{volume-abbreviated}{Bd}
+\ProvideDictTranslation{plural-keyword}{Schl^^c3^^bcsselbegriffe}
+\ProvideDictTranslation{received}{empfangen}
+\ProvideDictTranslation{accepted}{angenommen}
+\ProvideDictTranslation{online}{online}
+\ProvideDictTranslation{hypothesis}{Hypothese}
+\ProvideDictTranslation{plural-hypothesis}{Hypothesen}
+\ProvideDictTranslation{assertion}{Behauptung}
+\ProvideDictTranslation{plural-assertion}{Behauptungen}
+\ProvideDictTranslation{century}{Jhdt}
+\ProvideDictTranslation{before-christ}{v.~Chr}
+\ProvideDictTranslation{Acknowledgments}{Best^^c3^^a4tigungen}
+\ProvideDictTranslation{idest}{das~hei^^c3^^9ft}
+\ProvideDictTranslation{ie}{d.~h}
+\ProvideDictTranslation{Idest}{Das~hei^^c3^^9ft}
+\ProvideDictTranslation{Ie}{D~h}
diff --git a/Master/texmf-dist/tex/latex/nwejm/nwejm.bbx b/Master/texmf-dist/tex/latex/nwejm/nwejm.bbx
new file mode 100644
index 00000000000..7a7eebff3ce
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/nwejm/nwejm.bbx
@@ -0,0 +1,116 @@
+%%
+%% This is file `nwejm.bbx',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% nwejm.dtx (with options: `bibstyle')
+%% -------:| -----------------------------------------------------------------
+%% nwejm:| Class for the journal "North-Western European Journal of Mathematics"
+%% Author:| Denis Bitouze
+%% E-mail:| denis.bitouze@lmpa.univ-littoral.fr
+%% License:| Released under the LaTeX Project Public License v1.3c or later
+%% See:| http://www.latex-project.org/lppl.txt
+%%
+\ProvidesFile{nwejm.bbx}
+[2016/04/01 v 0.1 nwejm bibliographic style (DB)]
+
+\RequireBibliographyStyle{authoryear}
+
+\DeclareNameFormat{giveninits-last}{%
+ \nameparts{#1}
+ \usebibmacro{name:given-family}
+ {\namepartfamily}
+ {\namepartgiveni}
+ {\namepartprefix}
+ {\namepartsuffix}%
+ \usebibmacro{name:andothers}%
+}
+\renewbibmacro*{doi+eprint+url}{%
+ \iftoggle{bbx:doi}%
+ {%
+ \iffieldundef{doi}%
+ {}%
+ {%
+ \begingroup%
+ \edef\URLorDOI{%
+ \detokenize{http://dx.doi.org/}%
+ \thefield{doi}%
+ }%
+ \iffieldequals{url}{\URLorDOI}%
+ {\endgroup}%
+ {%
+ \endgroup%
+ \printfield{doi}%
+ }%
+ }%
+ }%
+ {}%
+ \newunit\newblock%
+ \iftoggle{bbx:eprint}%
+ {\usebibmacro{eprint}}%
+ {}%
+ \newunit\newblock%
+ \iftoggle{bbx:url}%
+ {\usebibmacro{url+urldate}}%
+ {}%
+}
+\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*{\addnbthinspace}%
+ \printfield{number}%
+ \setunit{\addcomma\space}%
+ \printfield{eid}%
+}
+\DeclareFieldFormat[article]{volume}{\mkbibbold{#1}}
+\DeclareFieldFormat[book]{volume}{\mkbibbold{#1}}
+\DeclareFieldFormat[article]{number}{\mkbibparens{#1}}
+\DeclareLabeldate{%
+ \field{date}%
+ \field{eventdate}%
+ \field{origdate}%
+ \field{urldate}%
+ \field{pubstate}%
+ \literal{nodate}%
+}
+\renewcommand*\bibnamedelimc{\addnbspace}
+\renewcommand*\bibnamedelimd{\addnbspace}
+%%
+%% Copyright (C) 2015, 2016 by Denis Bitouze <denis.bitouze@lmpa.univ-littoral.fr>
+%%
+%% This work 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 is "maintained" (as per LPPL maintenance status) by
+%% Denis Bitouze.
+%%
+%% This work consists of the file nwejm.dtx and a Makefile.
+%% Running "make" generates the derived files README, nwejm.pdf and nwejm.cls.
+%% Running "make inst" installs the files in the user's TeX tree.
+%% Running "make install" installs the files in the local TeX tree.
+%%
+%%
+%% End of file `nwejm.bbx'.
diff --git a/Master/texmf-dist/tex/latex/nwejm/nwejm.cbx b/Master/texmf-dist/tex/latex/nwejm/nwejm.cbx
new file mode 100644
index 00000000000..3382d2d0112
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/nwejm/nwejm.cbx
@@ -0,0 +1,140 @@
+%%
+%% This is file `nwejm.cbx',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% nwejm.dtx (with options: `citestyle')
+%% -------:| -----------------------------------------------------------------
+%% nwejm:| Class for the journal "North-Western European Journal of Mathematics"
+%% Author:| Denis Bitouze
+%% E-mail:| denis.bitouze@lmpa.univ-littoral.fr
+%% License:| Released under the LaTeX Project Public License v1.3c or later
+%% See:| http://www.latex-project.org/lppl.txt
+%%
+\ProvidesFile{nwejm.cbx}
+[2016/04/01 v 0.1 nwejm citation style (DB)]
+
+\RequireCitationStyle{authoryear}
+
+\ExecuteBibliographyOptions{giveninits,ibidtracker=constrict}
+
+\renewrobustcmd{\blx@mkbibfootnote}[2]{%
+ \iftoggle{blx@footnote}%
+ {\blx@warning{Nested notes}%
+ \addspace\mkbibparens{#2}}%
+ {\unspace%
+ \ifnum\blx@notetype=\tw@%
+ \expandafter\@firstoftwo%
+ \else%
+ \expandafter\@secondoftwo%
+ \fi%
+ {\csuse{blx@theendnote#1}{\protecting{\blxmkbibnote{end}{#2}}}}%
+ {%
+ \patchcmd\@makefnmark%
+ {\normalfont}%
+ {\normalfont\bfseries}%
+ {}{}%
+ \csuse{footnote#1}{\protecting{\blxmkbibnote{foot}{#2}}}%
+ }%
+ }%
+}
+\renewcommand*{\mkcitation}[1]{%
+ \patchcmd\@makefnmark%
+ {\normalfont}%
+ {\normalfont\bfseries}%
+ {}{}%
+ \footnote{#1}%
+}
+\newbibmacro*{cite:title}{%
+ \printtext[bibhyperref]{%
+ \printfield[citetitle]{labeltitle}}}
+\providecommand*{\mkibid}[1]{#1}
+\newbibmacro*{cite:ibid}{%
+ \printtext[bibhyperref]{\bibstring[\mkibid]{ibidem}}%
+}
+\newbibmacro*{nwejm:cite}{%
+ \iffieldundef{shorthand}{%
+ {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}%
+ {\usebibmacro{cite:ibid}}%
+ {%
+ \ifthenelse{%
+ \ifnameundef{labelname}%
+ }{%
+ \usebibmacro{cite:label}%
+ \setunit{\addcomma\space}%
+ }{%
+ \printnames{labelname}%
+ \ifthenelse{%
+ \iffieldundef{labelyear}%
+ }{%
+ }{%
+ \setunit{\addcomma\space}%
+ \usebibmacro{cite:labelyear+extrayear}%
+ \ifthenelse{%
+ \iffieldundef{labeltitle}%
+ }{%
+ }{%
+ \setunit{\addcomma\space}%
+ \usebibmacro{cite:title}%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }{%
+ \usebibmacro{cite:shorthand}%
+ }%
+}
+\DeclareCiteCommand{\nwejmfootcite}[\mkbibfootnote]
+{\usebibmacro{prenote}}%
+{\usebibmacro{citeindex}%
+ \usebibmacro{nwejm:cite}}
+{%
+ \ifcurrentbaselanguage{french}{%
+ \parindent=\parindentFFN%
+ \addtolength{\parindent}{\widthof{\dotFFN\kernFFN}}%
+ }{%
+ \parindent=\footnotemargin%
+ }%
+ \multicitedelim\newline\indent%
+}
+{\usebibmacro{postnote}}%
+\DeclareMultiCiteCommand{\nwejmfootcites}[\mkbibfootnote]{\nwejmfootcite}
+{\addsemicolon\space}
+\DeclareAutoCiteCommand{nwejmfootcite}{\nwejmfootcite}{\nwejmfootcites}
+
+\DeclareCiteCommand{\textcite}
+ {\boolfalse{cbx:parens}}
+ {\usebibmacro{citeindex}%
+ \iffirstcitekey
+ {\setcounter{textcitetotal}{1}}
+ {\stepcounter{textcitetotal}%
+ \textcitedelim}%
+ \iffootnote{\usebibmacro{nwejm:cite}}{\usebibmacro{textcite}}}
+ {\ifbool{cbx:parens}
+ {\bibcloseparen\global\boolfalse{cbx:parens}}
+ {}}
+ {\usebibmacro{textcite:postnote}}
+
+\ExecuteBibliographyOptions{autocite=nwejmfootcite}
+%%
+%% Copyright (C) 2015, 2016 by Denis Bitouze <denis.bitouze@lmpa.univ-littoral.fr>
+%%
+%% This work 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 is "maintained" (as per LPPL maintenance status) by
+%% Denis Bitouze.
+%%
+%% This work consists of the file nwejm.dtx and a Makefile.
+%% Running "make" generates the derived files README, nwejm.pdf and nwejm.cls.
+%% Running "make inst" installs the files in the user's TeX tree.
+%% Running "make install" installs the files in the local TeX tree.
+%%
+%%
+%% End of file `nwejm.cbx'.
diff --git a/Master/texmf-dist/tex/latex/nwejm/nwejm.cfg b/Master/texmf-dist/tex/latex/nwejm/nwejm.cfg
new file mode 100644
index 00000000000..693a375a84e
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/nwejm/nwejm.cfg
@@ -0,0 +1,94 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Journal data
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\journalsetup{%
+ publisher = \nwejm,
+ address = UFR de Math\'{e}matiques -- B\^atiment M2 -- Bureau 10\newline
+ Universit\'{e} Lille 1 -- Cit\'{e} Scientifique\newline
+ 59655 Villeneuve d'Ascq,
+ phone = +33 (0)3 20 43 42 33,
+ email = aurore.smets@univ-lille1.fr,
+ url = http://math.univ-lille1.fr/~nwejm/,
+ issn =
+}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Editor in chief
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\editorinchief{Nicaise, Serge}{Universit\'{e} de Valenciennes et du Hainaut Cambr\'{e}sis
+}{France}{serge.nicaise@univ-valenciennes.fr}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Fields editor
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\fieldseditor{Craig, Walter}{McMaster University}{Canada}{craig@math.mcmaster.ca}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Managing editor
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\managingeditor{Wicker, Nicolas}{Universit\'{e} Lille 1}{France}{Nicolas.Wicker@math.univ-lille1.fr}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Editors
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\editor{Apel, Thomas}{Universit{\"a}t der Bundeswehr M^^c3^^bcnchen}{Germany}{thomas.apel@unibw.de}
+\editor{Beauchard, Karine}{\textsc{ens} Rennes}{France}{Karine.Beauchard@math.polytechnique.fr}
+\editor{von Below, Joachim}{Universit\'{e} du Littoral C\^{o}te d'Opale}{France}{vonbelow@lmpa.univ-littoral.fr}
+\editor{Biernacki, Christophe}{Universit\'{e} de Lille 1}{France}{christophe.biernacki@math.univ-lille1.fr}
+\editor{Chainais-Hillairet, Claire}{Universit\'{e} de Lille 1}{France}{claire.chainais@math.univ-lille1.fr}
+\editor{Dauge, Monique}{Universit\'{e} de Rennes I}{France}{monique.dauge@univ-rennes1.fr}
+\editor{David, Sinnou}{Universit\'{e} Paris VI}{France}{david@math.jussieu.fr}
+\editor{Davydov, Youri}{Universit\'{e} de Lille 1}{France}{youri.davydov@math.univ-lille1.fr}
+\editor{D\`{e}bes, Pierre}{Universit\'{e} de Lille 1}{France}{pierre.debes@math.univ-lille1.fr}
+\editor{Demailly, Jean-Pierre}{Universit\'{e} de Grenoble 1}{France}{jean-pierre.demailly@ujf-grenoble.fr}
+\editor{Droniou, J\'{e}r\^{o}me}{Monash University}{Australia}{jerome.droniou@monash.edu}
+\editor{El Kacimi, Aziz}{Universit\'{e} de Valenciennes et du Hainaut Cambr\'{e}sis}{France}{aziz.elkacimi@univ-valenciennes.fr}
+\editor{Fleischmann, Peter}{University of Kent}{United Kingdom}{p.fleischmann@kent.ac.uk}
+\editor{Fresse, Beno^^c3^^aet}{Universit\'{e} de Lille 1}{France}{benoit.fresse@math.univ-lille1.fr}
+\editor{Fricain, Emmanuel}{Universit\'{e} de Lille 1}{France}{emmanuel.fricain@math.univ-lille1.fr}
+\editor{Gaffney, Eamonn}{Oxford University}{United Kingdom}{gaffney@maths.ox.ac.uk}
+\editor{Gloria, Antoine}{Universit\'{e} Libre de Bruxelles}{Belgium}{antoine.gloria@ulb.ac.be}
+\editor{Godefroy, Gilles}{Universit\'{e} Paris VI}{France}{godefroy@math.jussieu.fr}
+\editor{Grosse-Erdmann, Karl}{Universit\'{e} de Mons}{Belgium}{kg.grosse-erdmann@umons.ac.be}
+\editor{Guo, Bao-Zhu}{Academy of Mathematics and Systems Science, Academia Sinica, Beijing}{China}{bzguo@iss.ac.cn}
+\editor{Lambrechts, Pascal}{Universit\'{e} Catholique de Louvain}{Belgium}{pascal.lambrechts@uclouvain.be}
+\editor{Lef\`{e}vre, Pascal}{Universit\'{e} d'Artois}{France}{pascal.lefevre@univ-artois.fr}
+\editor{Leroy, Andr\'{e}}{Universit\'{e} d'Artois}{France}{andreleroy55@gmail.com}
+\editor{Loeb, Jean-Jacques}{Universit\'{e} d'Angers}{France}{jean-jacques.loeb@univ-angers.fr}
+\editor{Luca, Florian}{University of Witwatersrand}{South-Africa}{florian.luca@wits.ac.za}
+\editor{Matom{\"a}ki Kaisa}{University of Turku}{Finland}{ksmato@utu.fi}
+\editor{Michaux, Christian}{Universit\'{e} de Mons}{Belgium}{christian.michaux@umons.ac.be}
+\editor{Moerdijk, Ieke}{Radboud University Nijmegen}{Netherlands}{i.moerdijk@math.ru.nl}
+\editor{Murua, Alejandro}{Universit\'{e} de Montr\'{e}al}{Canada}{murua@dms.umontreal.ca}
+\editor{Nakamura, Hiroaki}{Osaka University}{Japan}{nakamura@math.sci.osaka-u.ac.jp}
+\editor{van Neerven, Jan}{Delft University of Technology}{Netherlands}{j.m.a.m.vanneerven@tudelft.nl}
+\editor{Nicaise, Johannes}{Katholieke Universiteit Leuven}{Belgium}{Johannes.Nicaise@wis.kuleuven.be}
+\editor{Norvaisa, Rimas}{Vilnius University}{Lituany}{rimas.norvaisa@mii.vu.lt}
+\editor{Peccati, Giovanni}{University of Luxembourg}{Luxembourg}{giovanni.peccati@gmail.com}
+\editor{Pirashvili, Teimuraz}{University of Leicester}{United Kingdom}{tp59@le.ac.uk}
+\editor{Ramar\'{e}, Olivier}{Universit\'{e} de Lille 1}{France}{olivier.ramare@math.univ-lille1.fr}
+\editor{Roelly, Sylvie}{University of Potsdam}{Germany}{roelly@math.uni-potsdam.de}
+\editor{Stubbe, Isar}{Universit\'{e} du Littoral C\^{o}te d'Opale}{France}{isar.stubbe@lmpa.univ-littoral.fr}
+\editor{Suquet, Charles}{Universit\'{e} de Lille 1}{France}{charles.suquet@math.univ-lille1.fr}
+\editor{Tazzioli, Rossana}{Universit\'{e} de Lille 1}{France}{rossana.tazzioli@math.univ-lille1.fr}
+\editor{Tignol, Jean-Pierre}{Universit\'{e} Catholique de Louvain}{Belgium}{jean-pierre.tignol@uclouvain.be}
+\editor{Wu, Jie}{Institut Elie Cartan}{France}{jie.wu@univ-lorraine.fr}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Secretary
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\secretary{Smets, Aurore}{}{}{}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% LaTeX class designer (and maintainer(s))
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\classdesigner{Bitouz\'{e}, Denis}{Universit\'{e} du Littoral C\^{o}te d'Opale}{France}{denis.bitouze@lmpa.univ-littoral.fr}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Computer engineer
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\computerengineer{Huart, S\'{e}bastien}{Universit\'{e} de Lille 1}{France}{}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Font designer text
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\fontdesignertext{We make use of the set of fonts \href{http://ctan.org/pkg/kpfonts}{Kp-Fonts}, designed by Christophe Caignaert.}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Printer text
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\printingservice{Derycke, Jean-Jacques}{Universit\'{e} de Lille 1}{France}{}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Authors instructions
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/tex/latex/nwejm/nwejm.cls b/Master/texmf-dist/tex/latex/nwejm/nwejm.cls
new file mode 100644
index 00000000000..2c6687a3e62
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/nwejm/nwejm.cls
@@ -0,0 +1,2640 @@
+%%
+%% This is file `nwejm.cls',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% nwejm.dtx (with options: `class')
+%% -------:| -----------------------------------------------------------------
+%% nwejm:| Class for the journal "North-Western European Journal of Mathematics"
+%% Author:| Denis Bitouze
+%% E-mail:| denis.bitouze@lmpa.univ-littoral.fr
+%% License:| Released under the LaTeX Project Public License v1.3c or later
+%% See:| http://www.latex-project.org/lppl.txt
+%%
+\RequirePackage{xparse}
+\RequirePackage{l3keys2e}
+\IfFileExists{l3sort.sty}{
+ \RequirePackage{l3sort}
+}{
+}
+\RequirePackage{etoolbox}
+\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+\ProvidesExplClass
+ {nwejm}
+ {2015/09/30}
+ {1.00}
+ {
+ Class for the journal "North-Western European Journal of Mathematics".
+ }
+\ExplSyntaxOn
+\msg_new:nnnn{nwejm}{Issue~number~needed}{Option~`#1'~needed!}
+{Please~specify~`#1=<number>', ~otherwise~`<number>'~will~be~set~to
+ ~`\int_use:N\c__nwejm_first_issue_number_int'.}%
+\msg_new:nnnn{nwejmart}{Unknown~choice}{Choice~`#3'~invalid!}
+{Please~specify~#1=#2.}%
+\msg_new:nnn{nwejmart}{Unknown~tag}{There~ isn't~ any~ affiliation~ tagged~
+ with~ `#1'.~ This~ one~ will~ be~ ignored.}%
+\msg_new:nnn{nwejmart}{Unknown~language}{The~ option~ `#1'~ you~ passed~ isn't~
+ a~ valid~ language~ name~ (only~ `english',~ `french',~ `ngerman',~ `german',~
+ `dutch'~ are~ accepted).~ `english'~ will~ be~ used~ instead.}%
+\msg_new:nnn{nwejmart}{No~keyword}{You~ haven't~ specify~ any~ keyword~ for~
+ this~ article!}%
+\msg_new:nnn{nwejmart}{No~MSC}{You~ haven't~ specify~ any~ Mathematical~
+ Subject~ Classification~ (MSC)~ for~ this~ article!}%
+\msg_new:nnn{nwejmart}{No~abstract}{You~ haven't~ specify~ any~ abstract~ for~
+ this~ article!}%
+\msg_new:nnn{nwejmart}{Starred~AMS~environments}{The~ starred~AMS~environment~
+ `#1*'~should~ be~ avoided.~ It~ will ~be ~ replaced ~ by its~ unstarred~ counterpart~ `#1'.}%
+\msg_new:nnn{
+ nwejm
+}{Command~restricted~to~document~body~used~in~preamble}{The~command~#1
+ can~be~used~only~in~document~body~and~not~in~preamble!}%
+\msg_new:nnn{nwejmart}{Article~setup~not~consistent}{The~ article~ setup~
+ concerning~ the~ option~ `#1'~ has~ changed~ after~ its~ 1st~ use.~ Please~
+ use~ \articlesetup~ command~ just~ once,~ just~ after~ the~ beginning~ of~
+ the~ document.}%
+\msg_new:nnn{nwejmart}{Wrong~paired~delimiter's~size~parameter}{The~
+ size~parameter~specified~ (`#1')~is~ not~ allowed:~ only~ `0',~`1'~(or~
+ `\string\big'),~`2'~(or~ `\string\Big'),~`3'~(or~ `\string\big'g)~and~`4'~(or~
+ `\string\Bigg')~ are ~ allowed. ~ It~ will~ be~ ignored.}%
+\dim_const:Nn \c__nwejm_pagegrid_dim { 1mm}
+\bool_new:N \g__nwejm_for_authors_bool
+\bool_new:N \g__nwejm_cover_bool
+\bool_new:N \g__nwejm_coverpage_bool
+\bool_new:N \g__nwejm_inside_pages_bool
+\keys_define:nn { nwejm }
+{
+ pagegrid .dim_gset:N = \g__nwejm_pagegrid_dim,
+ pagegrid .default:n = {\c__nwejm_pagegrid_dim},
+ forauthors .code:n = {%
+ \bool_gset_true:N \g__nwejm_for_authors_bool%
+ \bool_gset_true:N \g__nwejm_inside_pages_bool%
+ },%
+ forprinter .bool_gset:N = \g__nwejm_for_printer_bool,
+ output .choice:,
+ output / frontcover .code:n = {%
+ \bool_gset_true:N \g__nwejm_for_printer_bool%
+ \bool_gset_true:N \g__nwejm_cover_bool%
+ },%
+ output / insidepages .code:n = {%
+ \bool_gset_true:N \g__nwejm_for_printer_bool%
+ \bool_gset_true:N \g__nwejm_inside_pages_bool%
+ },%
+ output / backcover .code:n = {%
+ \bool_gset_true:N \g__nwejm_for_printer_bool%
+ },%
+ output / web .code:n = {%
+ },%
+}%
+\keys_define:nn { nwejm }
+{
+ 10pt .code:n = {%
+ \PassOptionsToClass{10pt}{book}
+ },%
+ 11pt .code:n = {%
+ \PassOptionsToClass{11pt}{book}
+ },%
+ 12pt .code:n = {%
+ \PassOptionsToClass{12pt}{book}
+ },%
+}%
+\ProcessKeysOptions { nwejm }
+\LoadClass { book }
+\PassOptionsToPackage{export}{adjustbox}%
+\PassOptionsToPackage{fleqn}{mathtools}%
+\PassOptionsToPackage{french,ngerman,dutch,english,noabbrev}{cleveref}
+\AtBeginDocument{
+ \LoadDictionaryFor{french}{nwejm}
+ \LoadDictionaryFor{english}{nwejm}
+ \LoadDictionaryFor{dutch}{nwejm}
+ \LoadDictionaryFor{german}{nwejm}
+}
+\PassOptionsToPackage{french,ngerman,dutch,english}{babel}
+\PassOptionsToPackage{french,ngerman,dutch,english}{varioref}
+\RequirePackage{silence}
+\WarningFilter[nwejm]{kpfonts}{With 'easyscsl' option, don't fit together}
+\WarningFilter[nwejm]{etex}{Extended allocation already in use}
+\WarningFilter[nwejm]{etoc}{package tocvsec2 detected and its modification of}
+\ActivateWarningFilters[nwejm]
+\RequirePackage[l2tabu,orthodox]{nag}
+\pdftex_if_engine:TF
+ {
+ \RequirePackage[T1]{fontenc}
+ \RequirePackage[utf8]{inputenc}
+ }{
+ \RequirePackage{fontspec}
+ }
+\RequirePackage[group=false,subpreambles,sort]{standalone}%
+\RequirePackage[pagestyles]{titlesec}%
+\RequirePackage{graphicx}%
+\RequirePackage{import}%
+\bool_if:nT { \g__nwejm_for_authors_bool } {
+ \RequirePackage{draftwatermark}[2006/06/30]%
+}
+\RequirePackage{adjustbox}%
+\RequirePackage{zref-totpages}
+\RequirePackage{zref-xr}%
+\RequirePackage[multiple]{footmisc}%
+\RequirePackage[svgnames]{xcolor}%
+\RequirePackage{xspace}%
+\RequirePackage[autostyle]{csquotes}%
+\RequirePackage{array}
+\RequirePackage{booktabs}
+\RequirePackage{mathtools}
+\RequirePackage[thmmarks,amsmath]{ntheorem}
+\RequirePackage{mathrsfs}
+\RequirePackage{esvect}
+\RequirePackage[easyscsl,noDcommand]{kpfonts}
+\RequirePackage{geometry}
+\RequirePackage{translations}%
+\RequirePackage{fmtcount}%
+\RequirePackage{babel}%
+\RequirePackage{varioref}
+\RequirePackage{tocvsec2}
+\RequirePackage{etoc}%
+\RequirePackage[babel=true]{microtype}%
+\RequirePackage[useregional]{datetime2}%
+\RequirePackage[inline]{enumitem}%
+\RequirePackage{environ}
+\RequirePackage[foreground]{pagegrid}%
+\RequirePackage{datatool}%
+\RequirePackage{placeins}%
+\RequirePackage{footnote}%
+\RequirePackage[hyperfootnotes=false,pdfencoding=unicode]{hyperref}%
+\AtBeginDocument{%
+ \hypersetup{hidelinks,hypertexnames=false}%
+}%
+\RequirePackage[all]{hypcap}
+\RequirePackage[numbered]{bookmark}%
+\RequirePackage[nowarn]{glossaries}%
+\RequirePackage{cleveref}%
+\RequirePackage{autonum}
+\RequirePackage[backend=biber,style=nwejm]{biblatex}%
+\ExecuteBibliographyOptions{defernumbers=true,dashed=false,uniquename=init,backref,safeinputenc}
+\makeglossaries
+\setglossarystyle{indexhypergroup}
+\setacronymstyle{long-sc-short}
+\glsdisablehyper
+\int_new:N \g__nwejm_articles_int
+\clist_new:N \g__nwejm_counters_to_be_reset_clist
+\int_const:Nn \c__nwejm_first_issue_number_int { 1 }
+\int_const:Nn \c__nwejm_first_issue_year_int { 2016 }
+\int_const:Nn \c__nwejm_first_issue_month_int { 1 }
+\int_const:Nn \c__nwejm_interval_in_months_int { 6 }
+\tl_const:Nn \c__nwejm_backcover_tableofcontents_string_tl {Volume's~Contents}
+\tl_const:Nn \c__nwejm_editorinchief_string_tl {Editor~in~Chief}
+\tl_const:Nn \c__nwejm_associate_editors_string_tl {Associate~Editors}
+\tl_const:Nn \c__nwejm_managing_editor_string_tl {Managing~Editor}
+\tl_const:Nn \c__nwejm_field_editor_string_tl {Field~Editor}
+\tl_const:Nn \c__nwejm_editorial_secretariat_string_tl {Secretariat}
+\tl_const:Nn \c__nwejm_phone_string_tl {Tel.}
+\tl_const:Nn \c__nwejm_issn_string_tl {\textsc{issn}}
+\tl_const:Nn \c__nwejm_isbn_string_tl {\textsc{isbn}}
+\tl_const:Nn \c__nwejm_latexclass_string_tl {\LaTeX{}~class}
+\tl_const:Nn \c__nwejm_computer_engineering_string_tl {Computer~engineering~issues}
+\tl_const:Nn \c__nwejm_printer_string_tl {Printing~service}
+\tl_const:Nn \c__nwejm_configuration_file_string_tl {nwejm.cfg}
+\tl_const:Nn \c__nwejm_frontcover_header_left_string_tl {
+ \int_use:N\g__nwejm_issue_year_int%
+}
+\tl_const:Nn \c__nwejm_frontcover_header_right_string_tl {
+ Number\space\int_use:N\g__nwejm_issue_number_int%
+}
+\tl_const:Nn \c__nwejm_backmatter_directory_string_tl {backmatter}
+\tl_const:Nn \c__nwejm_issue_backcover_text_file_string_tl {backcover}
+\tl_const:Nn \c__nwejm_backcover_page_file_string_tl {\c__nwejm_backmatter_directory_string_tl/\c__nwejm_issue_backcover_text_file_string_tl}
+\tl_const:Nn \c__nwejm_authors_instructions_file_extension_tl {ain}
+\tl_const:Nn \c__nwejm_authors_instructions_file_tl {\c_job_name_tl.\c__nwejm_authors_instructions_file_extension_tl}
+\tl_const:Nn \c__nwejm_authors_instructions_string_tl {Instructions~to~authors}
+\tl_const:Nn \c__nwejm_date_received_tl {received}
+\tl_const:Nn \c__nwejm_date_accepted_tl {accepted}
+\tl_const:Nn \c__nwejm_date_online_tl {online}
+\tl_const:Nn \c__nwejm_dates_separator_tl {/}
+\tl_const:Nn \c__nwejm_images_directory_string_tl {images}
+\tl_const:Nn \c__nwejm_issue_images_path_string_tl {\c__nwejm_images_directory_string_tl}
+\tl_const:Nn \c__nwejm_preliminary_version_string_tl {%
+ This~document~is~a~draft~that~lets~you~check~the~integrity~of~original~text~and
+ bibliography~of~your~article~to~appear~in~the~next~issue~of~the
+ \c__nwejm_journal_title_string_tl.~The~current~layout~may~not~be~the~final~one.%
+}
+\tl_const:Nn \c__nwejm_msc_string_tl {\textsc{msc}}
+\tl_const:Nn \c__nwejm_colon_tl {
+ \ifcurrentbaselanguage{french}{\FBcolonspace}{}:
+ % \ifundef{\Fcolonspace}{\FBcolonspace}{\Fcolonspace}:
+}
+\tl_const:Nn \c__nwejm_aside_string_tl {--}
+\tl_const:Nn \c__nwejm_draftwatermark_string_tl {draft}
+\tl_const:Nn \c__nwejm_issue_bib_file_suffix_string_tl {__nwejm}
+\tl_const:Nn \c__nwejm_issue_bib_file_string_tl {\c_job_name_tl\c__nwejm_issue_bib_file_suffix_string_tl.bib}
+\tl_const:Nn \c__nwejm_issue_bib_path_string_tl {\c__nwejm_issue_bib_file_string_tl}
+\tl_const:Nn \c__nwejm_issue_bib_key_tl {\int_use:N \g__nwejm_issue_number_int}
+\tl_const:Nn \c__nwejm_journal_short_title_string_tl {\textsc{nwejm}}
+\tl_const:Nn \c__nwejm_journal_title_string_tl {
+ North-Western~European~Journal~of~Mathematics%
+}
+\tl_const:Nn \c__nwejm_journal_front_cover_title_string_tl {
+ North-Western~European\\Journal\\of\\Mathematics%
+}
+\tl_const:Nn \c__nwejm_nwejm_class_name_tl {nwejm}
+\tl_const:Nn \c__nwejm_nwejmarticle_class_name_tl {nwejmart}
+\bool_new:N \g__nwejm_frontcover_bool
+\bool_new:N \g__nwejm_inside_frontcover_bool
+\bool_new:N \g__nwejm_inside_backcover_bool
+\bool_new:N \g__nwejm_frontmatter_bool
+\bool_new:N \g__nwejm_mainmatter_bool
+\bool_new:N \g__nwejm_backmatter_bool
+\bool_new:N \g__nwejm_backcover_bool
+\bool_new:N \g__nwejm_date_specified_bool
+\dim_const:Nn \c__nwejm_layoutheight_dim { 240mm}
+\dim_const:Nn \c__nwejm_layoutwidth_dim { 170mm}
+\dim_const:Nn \c__nwejm_printer_layoutoffset_dim { 5mm}
+\bool_if:NTF {\g__nwejm_for_printer_bool} {
+ \dim_const:Nn \c__nwejm_potential_layoutoffset_dim { \c__nwejm_printer_layoutoffset_dim}
+}{
+ \dim_const:Nn \c__nwejm_potential_layoutoffset_dim {\c_zero_dim}
+}
+\int_const:Nn \c__nwejm_thresold_a_int {68}
+\int_const:Nn \c__nwejm_thresold_b_int {80}
+\int_const:Nn \c__nwejm_thresold_c_int {88}
+\int_const:Nn \c__nwejm_thresold_d_int {96}
+\int_const:Nn \c__nwejm_thresold_e_int {104}
+\int_const:Nn \c__nwejm_thresold_f_int {120}
+\dim_const:Nn \c__nwejm_bindingoffset_a_dim {3mm}
+\dim_const:Nn \c__nwejm_bindingoffset_b_dim {3.5mm}
+\dim_const:Nn \c__nwejm_bindingoffset_c_dim {3.9mm}
+\dim_const:Nn \c__nwejm_bindingoffset_d_dim {4.1mm}
+\dim_const:Nn \c__nwejm_bindingoffset_e_dim {4.5mm}
+\dim_const:Nn \c__nwejm_bindingoffset_f_dim {5mm}
+\zexternaldocument[self]{\jobname}%
+\int_new:N \g__nwejm_total_pages_number_int%
+\int_new:N \g__nwejm_total_inside_pages_number_int%
+\int_gset:Nn \g__nwejm_total_pages_number_int { \zref@extractdefault{selfLastPage}{abspage}{0} }
+\int_gset:Nn \g__nwejm_total_inside_pages_number_int { \g__nwejm_total_pages_number_int - 4 }
+\int_compare:nNnTF {\g__nwejm_total_inside_pages_number_int}<{\c__nwejm_thresold_a_int}
+{
+ \dim_const:Nn \c__nwejm_printer_bindingoffset_dim { \c_zero_dim }
+}{
+ \int_compare:nNnTF {\g__nwejm_total_inside_pages_number_int}<{\c__nwejm_thresold_b_int}
+ {
+ \dim_const:Nn \c__nwejm_printer_bindingoffset_dim { \c__nwejm_bindingoffset_a_dim }
+ }{
+ \int_compare:nNnTF {\g__nwejm_total_inside_pages_number_int}<{\c__nwejm_thresold_c_int}
+ {
+ \dim_const:Nn \c__nwejm_printer_bindingoffset_dim { \c__nwejm_bindingoffset_b_dim }
+ }{
+ \int_compare:nNnTF {\g__nwejm_total_inside_pages_number_int}<{\c__nwejm_thresold_d_int}
+ {
+ \dim_const:Nn \c__nwejm_printer_bindingoffset_dim { \c__nwejm_bindingoffset_c_dim }
+ }{
+ \int_compare:nNnTF {\g__nwejm_total_inside_pages_number_int}<{\c__nwejm_thresold_e_int}
+ {
+ \dim_const:Nn \c__nwejm_printer_bindingoffset_dim { \c__nwejm_bindingoffset_d_dim }
+ }{
+ \int_compare:nNnTF {\g__nwejm_total_inside_pages_number_int}<{\c__nwejm_thresold_f_int}
+ {
+ \dim_const:Nn \c__nwejm_printer_bindingoffset_dim { \c__nwejm_bindingoffset_e_dim }
+ }{
+ \dim_const:Nn \c__nwejm_printer_bindingoffset_dim { \c__nwejm_bindingoffset_f_dim }
+ }
+ }
+ }
+ }
+ }
+}
+\bool_if:NTF {\g__nwejm_cover_bool} {
+ \dim_const:Nn \c__nwejm_potential_bindingoffset_dim { \c__nwejm_printer_bindingoffset_dim }
+}{
+ \dim_const:Nn \c__nwejm_potential_bindingoffset_dim {\c_zero_dim}
+}
+\dim_const:Nn \c__nwejm_paperheight_dim { \c__nwejm_layoutheight_dim+2\c__nwejm_potential_layoutoffset_dim}
+\bool_if:NTF {\g__nwejm_cover_bool} {
+ \dim_const:Nn \c__nwejm_paperwidth_dim {
+ \c__nwejm_layoutwidth_dim
+ +
+ \c__nwejm_potential_layoutoffset_dim
+ +\c__nwejm_potential_bindingoffset_dim
+ }
+}{
+ \dim_const:Nn \c__nwejm_paperwidth_dim {
+ \c__nwejm_layoutwidth_dim
+ +
+ 2
+ \c__nwejm_potential_layoutoffset_dim
+ +\c__nwejm_potential_bindingoffset_dim
+ }
+}
+\dim_const:Nn \c__nwejm_topmargin_dim { 20mm}
+\dim_const:Nn \c__nwejm_topmargin_frontcover_dim {
+ \c__nwejm_topmargin_dim
+ % + 30mm
+}
+\dim_const:Nn \c__nwejm_topmargin_inside_cover_dim {
+ \c__nwejm_topmargin_dim
+ % +10mm
+}
+\dim_const:Nn \c__nwejm_topmargin_front_matter_dim {
+ \c__nwejm_topmargin_inside_cover_dim
+}
+\dim_const:Nn \c__nwejm_headsep_dim { 9.5mm}
+\dim_const:Nn \c__nwejm_headsep_frontcover_dim {
+ \c__nwejm_headsep_dim
+ % +31mm
+ % -\c__nwejm_potential_layoutoffset_dim
+}
+\dim_const:Nn \c__nwejm_headsep_inside_frontcover_dim {
+ \c__nwejm_headsep_dim
+ +7mm
+}
+\dim_const:Nn \c__nwejm_headsep_front_matter_dim {
+ \c__nwejm_headsep_inside_frontcover_dim
+}
+\dim_const:Nn \c__nwejm_headheight_dim { 5mm }
+\dim_const:Nn \c__nwejm_botmargin_dim { 30mm}
+\dim_const:Nn \c__nwejm_footskip_dim { 10mm}
+\dim_const:Nn \c__nwejm_margin_frontcover_dim { 15mm }
+\dim_const:Nn \c__nwejm_bottom_frontcover_dim { 15mm }
+\dim_const:Nn \c__nwejm_left_minipage_frontcover_dim { .4\linewidth }
+\dim_const:Nn \c__nwejm_right_minipage_frontcover_dim { .6\linewidth }
+\dim_const:Nn \c__nwejm_innermargin_dim { 23mm }
+\dim_const:Nn \c__nwejm_outermargin_dim { 30mm }
+\dim_const:Nn \c__nwejm_inside_cover_box_width_dim { 150mm }%
+\dim_const:Nn \c__nwejm_innermargin_inside_cover_dim {
+ (\c__nwejm_layoutwidth_dim - \c__nwejm_inside_cover_box_width_dim)/2
+ - \c__nwejm_potential_bindingoffset_dim
+ % + \c__nwejm_adjustmargin_dim
+}
+\dim_const:Nn \c__nwejm_outermargin_inside_cover_dim {
+ (\c__nwejm_layoutwidth_dim - \c__nwejm_inside_cover_box_width_dim)/2
+ % - \c__nwejm_adjustmargin_dim
+}
+\dim_const:Nn \c__nwejm_innermargin_backcover_dim { 10mm }
+\dim_const:Nn \c__nwejm_outermargin_backcover_dim { \c__nwejm_innermargin_backcover_dim }
+\dim_const:Nn \c__nwejm_topmargin_backcover_dim { \c__nwejm_innermargin_backcover_dim }
+\dim_const:Nn \c__nwejm_bottommargin_backcover_dim { \c__nwejm_innermargin_backcover_dim }
+\dim_const:Nn \c__nwejm_front_matter_extra_innermargin_dim { \c_zero_dim }
+\dim_const:Nn \c__nwejm_front_matter_extra_outermargin_dim { \c_zero_dim }
+\dim_const:Nn \c__nwejm_inside_cover_offset_dim { \c_zero_dim }%
+\geometry{%
+ papersize={\c__nwejm_paperwidth_dim,\c__nwejm_paperheight_dim}
+}
+\bool_if:NTF {\g__nwejm_cover_bool} {
+ \dim_show:N \c__nwejm_topmargin_frontcover_dim
+ \dim_show:N \c__nwejm_headsep_frontcover_dim
+ \dim_show:N \c__nwejm_headheight_dim
+ \tl_const:Nn \c__nwejm_frontcover_geometry_tl {%
+ ,layoutsize={\c__nwejm_layoutwidth_dim,\c__nwejm_layoutheight_dim}
+ ,layoutvoffset=\c__nwejm_potential_layoutoffset_dim
+ ,bindingoffset=\c__nwejm_potential_bindingoffset_dim
+ ,top=\c__nwejm_topmargin_frontcover_dim
+ ,top=\c__nwejm_topmargin_frontcover_dim
+ ,headsep=\c__nwejm_headsep_frontcover_dim
+ ,headheight=\c__nwejm_headheight_dim
+ ,bottom=\c__nwejm_bottom_frontcover_dim
+ ,footskip=\c__nwejm_footskip_dim
+ ,outer=\c__nwejm_margin_frontcover_dim
+ ,inner=\c__nwejm_potential_layoutoffset_dim
+ ,nomarginpar%
+ }%
+}{
+ \tl_const:Nn \c__nwejm_frontcover_geometry_tl {%
+ ,layoutsize={\c__nwejm_layoutwidth_dim,\c__nwejm_layoutheight_dim}
+ ,layoutoffset=\c__nwejm_potential_layoutoffset_dim
+ ,bindingoffset=\c__nwejm_potential_bindingoffset_dim
+ ,top=\c__nwejm_topmargin_frontcover_dim
+ ,headsep=\c__nwejm_headsep_frontcover_dim
+ ,headheight=\c__nwejm_headheight_dim
+ ,bottom=\c__nwejm_bottom_frontcover_dim
+ ,footskip=\c__nwejm_footskip_dim
+ ,hmargin=\c__nwejm_margin_frontcover_dim
+ ,nomarginpar%
+ }%
+}
+\bool_if:NTF {\g__nwejm_cover_bool} {
+ \tl_const:Nn \c__nwejm_inside_cover_geometry_tl {%
+ ,layoutsize={\c__nwejm_layoutwidth_dim,\c__nwejm_layoutheight_dim}
+ ,layoutvoffset=\c__nwejm_potential_layoutoffset_dim
+ ,bindingoffset=\c__nwejm_potential_bindingoffset_dim
+ ,top=\c__nwejm_topmargin_inside_cover_dim
+ ,headheight=\c__nwejm_headheight_dim
+ ,headsep=\c__nwejm_headsep_inside_frontcover_dim
+ ,bottom=\c__nwejm_botmargin_dim
+ ,footskip=\c__nwejm_footskip_dim
+ ,inner=\c__nwejm_innermargin_inside_cover_dim-\c__nwejm_potential_layoutoffset_dim
+ ,outer=\c__nwejm_outermargin_inside_cover_dim+\c__nwejm_potential_layoutoffset_dim
+ ,nomarginpar%
+ }%
+}{
+ \tl_const:Nn \c__nwejm_inside_cover_geometry_tl {%
+ ,layoutsize={\c__nwejm_layoutwidth_dim,\c__nwejm_layoutheight_dim}
+ ,layoutoffset=\c__nwejm_potential_layoutoffset_dim
+ ,bindingoffset=\c__nwejm_potential_bindingoffset_dim
+ ,top=\c__nwejm_topmargin_inside_cover_dim
+ ,headheight=\c__nwejm_headheight_dim
+ ,headsep=\c__nwejm_headsep_inside_frontcover_dim
+ ,bottom=\c__nwejm_botmargin_dim
+ ,footskip=\c__nwejm_footskip_dim
+ % ,inner=1cm
+ % ,outer=1cm
+ ,inner=\c__nwejm_innermargin_inside_cover_dim
+ ,outer=\c__nwejm_outermargin_inside_cover_dim
+ ,nomarginpar%
+ }%
+}
+\tl_const:Nn \c__nwejm_front_matter_geometry_tl {%
+ ,layoutsize={\c__nwejm_layoutwidth_dim,\c__nwejm_layoutheight_dim}
+ ,layoutoffset=\c__nwejm_potential_layoutoffset_dim
+ % ,bindingoffset=\c__nwejm_potential_bindingoffset_dim
+ ,top=\c__nwejm_topmargin_front_matter_dim%
+ ,headheight=\c__nwejm_headheight_dim
+ ,headsep=\c__nwejm_headsep_front_matter_dim
+ ,bottom=\c__nwejm_botmargin_dim
+ ,footskip=\c__nwejm_footskip_dim%
+ ,inner=\c__nwejm_innermargin_dim+\c__nwejm_front_matter_extra_innermargin_dim%
+ ,outer=\c__nwejm_outermargin_dim+\c__nwejm_front_matter_extra_outermargin_dim%
+ ,nomarginpar%
+}%
+\tl_const:Nn \c__nwejm_backcover_geometry_tl {%
+ ,layoutsize={\c__nwejm_layoutwidth_dim,\c__nwejm_layoutheight_dim}
+ ,layoutoffset=\c__nwejm_potential_layoutoffset_dim
+ % ,bindingoffset=\c__nwejm_potential_bindingoffset_dim
+ ,top=\c__nwejm_topmargin_backcover_dim%
+ % ,top=\c__nwejm_topmargin_dim-15mm%
+ % ,headheight=\c__nwejm_headheight_dim
+ % ,headsep=\c__nwejm_headsep_dim-18mm
+ ,bottom=\c__nwejm_bottommargin_backcover_dim
+ % ,footskip=\c__nwejm_footskip_dim
+ ,inner=\c__nwejm_innermargin_backcover_dim
+ ,outer=\c__nwejm_outermargin_backcover_dim
+}
+\tl_const:Nn \c__nwejm_main_geometry_tl {%
+ ,layoutsize={\c__nwejm_layoutwidth_dim,\c__nwejm_layoutheight_dim}
+ ,layoutoffset=\c__nwejm_potential_layoutoffset_dim
+ ,textwidth=\c__nwejm_layoutwidth_dim*3/4
+ ,textheight=\c__nwejm_layoutheight_dim*3/4
+ % ,marginratio={4\string :6,5\string :7}
+ ,inner=\c__nwejm_innermargin_dim
+ ,headheight=\c__nwejm_headheight_dim
+ ,footskip=\c__nwejm_footskip_dim
+ %
+ % ,layoutsize={\c__nwejm_layoutwidth_dim,\c__nwejm_layoutheight_dim}
+ % ,layoutoffset=\c__nwejm_potential_layoutoffset_dim
+ % % ,bindingoffset=\c__nwejm_potential_bindingoffset_dim
+ % ,top=\c__nwejm_topmargin_dim%
+ % ,headheight=\c__nwejm_headheight_dim
+ % ,headsep=\c__nwejm_headsep_dim
+ % ,bottom=\c__nwejm_botmargin_dim
+ % ,footskip=\c__nwejm_footskip_dim
+ % ,inner=\c__nwejm_innermargin_dim
+ % ,outer=\c__nwejm_outermargin_dim
+}%
+\bool_if:NF {\g__nwejm_coverpage_bool} {
+ \bool_if:NF {\g__nwejm_inside_pages_bool} {
+ \preto\@enddocumenthook{
+ \cleardoublepage
+ \pagenumbering{roman}%
+ \setcounter{page}{3}
+ \bool_gset_true:N \g__nwejm_backmatter_bool
+ \g__nwejm_display_inside_backcover_tl
+ \newpage
+ \@openrightfalse
+ \g__nwejm_display_backcover_tl
+ }%
+ }%
+}%
+\bool_new:N \g__nwejm_tableofcontents_already_used_bool
+\renewcommand\etocbeforetitlehook
+{%
+ \DeclareNameAlias{labelname}{giveninits-last}
+ \bool_if:NF {\g__nwejm_for_authors_bool}{
+ \bool_if:NF {\g__nwejm_tableofcontents_already_used_bool}{
+ \g__nwejm_frontmatter_switch_tl
+ \phantomsection
+ \hypertarget{__nwejm_toc}{}
+ \bookmark[dest=__nwejm_toc,level=chapter]{\contentsname}
+ }
+ }
+}%
+\renewcommand\etocaftertochook
+{%
+ \bool_if:NF {\g__nwejm_for_authors_bool}{
+ \bool_if:NF {\g__nwejm_tableofcontents_already_used_bool}{
+ \normalsize%
+ \clearpage%
+ \bool_gset_false:N \g__nwejm_frontmatter_bool%
+ \g__nwejm_mainmatter_switch_tl
+ }
+ }
+ \bool_gset_true:N \g__nwejm_tableofcontents_already_used_bool
+}%
+ % \box_new:N \l__nwejm_journal_frontcover_logo_box
+ % \box_new:N \l__nwejm_journal_volume_box
+ % \AfterEndPreamble{%
+ % \hbox_set:Nn \l__nwejm_journal_volume_box
+ % {
+ % \color{Navy}
+ % \LARGE
+ % \bfseries
+ % \sffamily
+ % \adjustbox{stack=l}{%
+ % \c__nwejm_frontcover_header_left_string_tl
+ % \\\c__nwejm_frontcover_header_right_string_tl
+ % }
+ % }
+ % \hbox_set:Nn \l__nwejm_journal_frontcover_logo_box
+ % {
+ % \includegraphics[width=3cm]{ nwejm-logo }
+ % }
+ % \hbox_set_to_wd:Nnn \l__nwejm_journal_frontcover_logo_box { 1cm }
+ % {
+ % \box_move_down:nn
+ % {
+ % \box_ht:N \l__nwejm_journal_frontcover_logo_box / 2
+ % -
+ % \box_ht:N \l__nwejm_journal_volume_box / 2
+ % }
+ % {
+ % \box_use:N \l__nwejm_journal_frontcover_logo_box
+ % }
+ % }
+\newpagestyle{__nwejm_frontcover_ps}[]{%
+ \sethead
+ {
+ \color{Navy}
+ \Large
+ \bfseries
+ \sffamily
+ \adjustbox{stack=l}{%
+ \c__nwejm_frontcover_header_left_string_tl
+ \\\c__nwejm_frontcover_header_right_string_tl
+ }
+ }%
+ {}%
+ {%
+ % \l__nwejm_journal_frontcover_logo_box
+ {\includegraphics[width=1cm]{ nwejm-logo }}
+ }%
+ %
+ \setfoot%
+ {}%
+ {}%
+ {}%
+}%
+\newpagestyle{__nwejm_inside_frontcover_ps}[]{%
+ \sethead%
+ {}%
+ {}%
+ {}%
+ %
+ \setfoot%
+ {}%
+ {}%
+ {}%
+}%
+\newpagestyle{__nwejm_frontmatter_ps}[]{%
+ \sethead%
+ {}%
+ {}%
+ {}%
+ %
+ \setfoot%
+ {}%
+ {\thepage}%
+ {}%
+}%
+\newpagestyle{__nwejm_blank_pages_ps}[]{%
+ \sethead
+ {}%
+ {}%
+ {}%
+ %
+ \setfoot%
+ {}%
+ {\thepage}%
+ {}%
+}%
+\newpagestyle{__nwejm_inside_backcover_ps}[]{%
+ \sethead%
+ {}%
+ {}%
+ {}%
+ %
+ \setfoot%
+ {}%
+ {}%
+ {}%
+}%
+\newpagestyle{__nwejm_backcover_ps}[]{%
+ \sethead
+ {}%
+ {}%
+ {}%
+ %
+ \setfoot%
+ {}%
+ {}%
+ {}%
+}%
+\tl_new:N \l__nwejm_section_header_tl
+\tl_set:Nn \l__nwejm_section_header_tl {
+ \ifthesection{%
+ \thesection.~%
+ }{%
+ }
+ \sectiontitle
+}%
+\newpagestyle{__nwejm_mainmatter_ps}[]{%
+ \sethead%
+ [
+ \tl_if_exist:NT {\g__nwejm_short_title_tl}
+ {
+ \tl_if_empty:NF \g__nwejm_short_title_tl {%
+ \slshape\g__nwejm_short_title_tl
+ }
+ }
+ ]%
+ [%
+ ]%
+ [
+ \DeclareNameAlias{labelname}{giveninits-last}
+ \AtNextCitekey{\defcounter{maxnames}{2}}\citeauthor{\g__nwejm_article_bib_key_tl}
+ ]%
+ {
+ \slshape\l__nwejm_section_header_tl
+ }%
+ {%
+ }%
+ {
+ }%
+ %
+ \setfoot%
+ {}%
+ {\thepage}%
+ {}%
+}
+ \box_new:N \l__nwejm_journal_logo_box
+ \box_new:N \l__nwejm_journal_name_box
+ \AfterEndPreamble{%
+ \hbox_set:Nn \l__nwejm_journal_name_box
+ {
+ \bfseries%
+ \adjustbox{stack=l}{%
+ \c__nwejm_journal_title_string_tl
+ \\\tl_mixed_case:n{\GetTranslation{volume-abbreviated}}\space\int_use:N \g__nwejm_issue_number_int
+}
+}
+\hbox_set:Nn \l__nwejm_journal_logo_box
+{
+ \includegraphics[width=1cm]{ nwejm-logo-NB }
+}
+\hbox_set_to_wd:Nnn \l__nwejm_journal_logo_box { 1cm }
+{
+ \box_move_down:nn
+ {
+ \box_ht:N \l__nwejm_journal_logo_box / 2
+ -
+ \box_ht:N \l__nwejm_journal_name_box / 2
+ }
+ {
+ \box_use:N \l__nwejm_journal_logo_box
+ }
+}
+\box_set_ht:Nn \l__nwejm_journal_logo_box { \c_zero_dim }
+\box_set_dp:Nn \l__nwejm_journal_logo_box { \c_zero_dim }
+}
+\newpagestyle{__nwejm_article_title_ps}[]{%
+ % \widenhead{\c_zero_dim}{\c_zero_dim}
+ \sethead%
+ {
+ \box_use:N \l__nwejm_journal_name_box
+ }%
+ {%
+ }%
+ {
+ \box_use:N \l__nwejm_journal_logo_box
+ }%
+ %
+ \setfoot%
+ {}%
+ {\thepage}%
+ {}%
+}
+\def\@pnumwidth{\@tocrmarg}
+\AtBeginDocument{%
+ \graphicspath{{\c__nwejm_issue_images_path_string_tl//}{../\c__nwejm_issue_images_path_string_tl//}}
+ % \glsdisablehyper
+}
+\tl_new:N \l__nwejm_journal_publisher_tl
+\tl_new:N \l__nwejm_journal_address_tl
+\tl_new:N \l__nwejm_journal_phone_tl
+\tl_new:N \l__nwejm_journal_email_tl
+\tl_new:N \l__nwejm_journal_url_tl
+\tl_new:N \l__nwejm_journal_issn_tl
+\tl_new:N \l__nwejm_journal_isbn_tl
+\keys_define:nn { nwejm/journalsetup }
+{
+ publisher .tl_set:N = \l__nwejm_journal_publisher_tl,
+ address .tl_set:N = \l__nwejm_journal_address_tl,
+ phone .tl_set:N = \l__nwejm_journal_phone_tl,
+ email .tl_set:N = \l__nwejm_journal_email_tl,
+ url .tl_set:N = \l__nwejm_journal_url_tl,
+ issn .tl_set:N = \l__nwejm_journal_issn_tl,
+ isbn .tl_set:N = \l__nwejm_journal_isbn_tl,
+ publisher .value_required:,
+ address .value_required:,
+ phone .value_required:,
+ email .value_required:,
+ url .value_required:,
+ issn .value_required:,
+ isbn .value_required:,
+}
+\int_new:N \g__nwejm_issue_number_int
+\int_new:N \g__nwejm_issue_month_int
+\int_new:N \g__nwejm_issue_year_int
+\tl_new:N \g__nwejm_frontcover_image_options_tl
+\keys_define:nn { nwejm/issuesetup }
+{
+ number .int_gset:N = \g__nwejm_issue_number_int,
+ volume .int_gset:N = \g__nwejm_issue_volume_int,
+ volume .value_required:,
+ volume .initial:n = 0,
+}
+\keys_define:nn { nwejm/dates }
+{
+ received .code:n = {
+ \tl_gset:Nn \g__nwejm_reception_date_tl {#1}
+ \bool_gset_true:N \g__nwejm_date_specified_bool
+ },
+ accepted .code:n = {
+ \tl_gset:Nn \g__nwejm_acception_date_tl {#1}
+ \bool_gset_true:N \g__nwejm_date_specified_bool
+ },
+ online .code:n = {
+ \tl_gset:Nn \g__nwejm_online_date_tl {#1}
+ \bool_gset_true:N \g__nwejm_date_specified_bool
+ },
+ received .value_required:,
+ accepted .value_required:,
+ online .value_required:,
+}
+\quark_new:N \q__nwejm
+\int_new:N \l_author_int
+\prop_new:N \g_authors_prop
+\prop_new:N \l_affiliations_tagged_prop
+\cs_generate_variant:Nn \prop_put_if_new:Nnn { NVn }
+\cs_generate_variant:Nn \prop_gput_if_new:Nnn { Nxn }
+\cs_generate_variant:Nn \prop_put_if_new:Nnn { NnV }
+\cs_new:Npn \__nwejm_prop_count:nn #1#2 { + 1 }
+\cs_new:Npn \__nwejm_prop_count:N #1
+{ \int_eval:n { 0 \prop_map_function:NN #1 \__nwejm_prop_count:nn } }
+\NewDocumentCommand \__nwejm_author_affiliation:ww { o u\q__nwejm }
+{
+ \stepcounter{footnote}
+ \prop_put_if_new:NVn \l_tmpa_prop {\the\c@footnote} {#2}
+ \IfValueT{#1}{%
+ \prop_put_if_new:NnV \l_affiliations_tagged_prop {#1} {\the\c@footnote}
+ }
+}
+\keys_define:nn { nwejm / authors }
+{
+ email .tl_gset:N = \g__nwejm_people_email_tl,
+ affiliation .code:n = {%
+ \__nwejm_author_affiliation:ww #1 \q__nwejm
+ },
+ affiliationtagged .code:n = {%
+ \prop_get:NnNTF \l_affiliations_tagged_prop {#1} \l_tmpa_tl
+ {%
+ \prop_put_if_new:NVn \l_tmpa_prop {\l_tmpa_tl} {}
+ }{
+ \msg_error:nnn{__nwejm}{Unknown~tag}{#1}
+ }
+ },
+ affiliation .value_required:,
+ affiliationtagged .value_required:,
+}
+\tl_new:N \l__nwejm_newtheorem_style_tl
+\keys_define:nn { nwejm / newtheorem }
+{
+ title .tl_set:N = \l__nwejm_newtheorem_title_tl,
+ title / french .tl_set:N = \l__nwejm_newtheorem_french_title_tl,
+ title / english .tl_set:N = \l__nwejm_newtheorem_english_title_tl,
+ title / german .tl_set:N = \l__nwejm_newtheorem_german_title_tl,
+ title / dutch .tl_set:N = \l__nwejm_newtheorem_dutch_title_tl,
+ title .value_required:,
+ title / french .value_required:,
+ title / english .value_required:,
+ title / german .value_required:,
+ title / dutch .value_required:,
+ %
+ style .choice:,
+ style / theorem .code:n = {\__nwejm_theorem_style:n {theorem}},
+ style / definition .code:n = {\__nwejm_theorem_style:n {definition}},
+ style / proof .code:n = {\__nwejm_theorem_style:n {proof}},
+ style / unknown .code:n =
+ \msg_error:nnxxx { nwejm } { Unknown~choice }
+ { style } % Name of choice key
+ { theorem~or~definition~or~proof } % Valid choices
+ { \exp_not:n {#1} } % Invalid choice given
+}
+\bool_new:N \g__nwejm_gradient_nabla_bool
+\bool_new:N \g__nwejm_gradient_nabla_control_bool
+\keys_define:nn { nwejm/articlesetup }
+{
+ gradient .choice:,
+ gradient / nabla .code:n = {\bool_gset_true:N \g__nwejm_gradient_nabla_bool},
+ gradient / grad .code:n = {\bool_gset_false:N \g__nwejm_gradient_nabla_bool},
+ gradient / unknown .code:n =
+ \msg_error:nnxxx { nwejmart } { Unknown~choice }
+ { gradient } % Name of choice key
+ { nabla~or~grad } % Valid choices
+ { \exp_not:n {#1} } % Invalid choice given
+}
+\tl_new:N \g__nwejm_nwejm_short_string_tl
+\tl_new:N \g__nwejm_nwejm_string_tl
+\tl_gset:Nn \g__nwejm_nwejm_short_string_tl {
+ \cs_if_exist:cTF {texorpdfstring}
+ {
+ \texorpdfstring{\emph{\c__nwejm_journal_short_title_string_tl}}{\c__nwejm_journal_short_title_string_tl}
+ }{%
+ \emph{\c__nwejm_journal_short_title_string_tl}
+ }%
+}
+\tl_gset:Nn \g__nwejm_nwejm_string_tl {
+ \cs_if_exist:cTF {texorpdfstring}
+ {
+ \texorpdfstring{\emph{\c__nwejm_journal_title_string_tl}}{\c__nwejm_journal_title_string_tl}
+ }{%
+ \emph{\c__nwejm_journal_title_string_tl}
+ }%
+}
+\tl_new:N \l__nwejm_pdftitle_string_tl
+\tl_new:N \l__nwejm_pdfauthor_string_tl
+\tl_set:Nn \l__nwejm_pdftile_string_tl {
+ \c__nwejm_journal_title_string_tl\space--\space{}N^^c2^^b0\int_use:N\g__nwejm_issue_number_int
+}
+\tl_set:Nn \l__nwejm_pdfauthor_string_tl {
+ \g__nwejm_nwejm_string_tl
+}
+\cs_new_protected:Nn \__nwejm_email:n
+ {
+ \href{mailto:#1}{\nolinkurl{#1}}%
+ }
+\tl_new:N \l__nwejm_crossref_tl
+\cs_new_protected:Nn \__nwejm_populate_bib_file:nn
+{
+ \int_if_exist:cF {g__nwejm_#2_int}
+ {
+ \int_new:c {g__nwejm_#2_int}
+ }
+ \int_incr:c {g__nwejm_#2_int}
+ \tl_if_in:nnTF { #2 } { author } {
+ \tl_set:Nn \l__nwejm_crossref_tl {%
+ \c__nwejm_issue_bib_key_tl
+ -art-
+ \int_use:N \g__nwejm_articles_int
+ }
+ } {
+ \tl_set:Nn \l__nwejm_crossref_tl {\c__nwejm_issue_bib_key_tl}
+ }
+ \tl_set:Nn \l__nwejm_people_first_last_name_tl {#1}
+ \iow_now:Nx \g__nwejm_bib_out_iow {%
+ @article{
+ \c__nwejm_issue_bib_key_tl -#2- \int_use:c {g__nwejm_#2_int},
+ \iow_newline:
+ author={\exp_not:V\l__nwejm_people_first_last_name_tl},
+ \iow_newline:
+ options={skipbib},
+ \iow_newline:
+ crossref = {\l__nwejm_crossref_tl}
+ \iow_newline:
+ }
+ \iow_newline:
+ }%
+}
+\DTLnewdb{people}
+\cs_new_protected:Nn \__nwejm_people:nnnnn
+{
+ \DTLnewrow{people}%
+ \DTLnewdbentry{people}{first-last-name}{#1}%
+ \DTLnewdbentry{people}{affiliation}{#2}%
+ \DTLnewdbentry{people}{country}{#3}%
+ \DTLnewdbentry{people}{email}{#4}%
+ \DTLnewdbentry{people}{role}{#5}%
+ \__nwejm_populate_bib_file:nn {#1}{#5}
+}
+\cs_generate_variant:Nn \__nwejm_people:nnnnn { nVnVx }
+\cs_new_protected:Nn \__nwejm_display_people_by_role:n
+{
+ \DTLforeach*[\DTLiseq{\l__nwejm_people_role_tl}{#1}]{people}{%
+ \l__nwejm_firstlastname_tl=first-last-name%
+ ,\l__nwejm_people_affiliation_tl=affiliation%
+ ,\l__nwejm_people_country_tl=country%
+ ,\l__nwejm_people_email_tl=email%
+ ,\l__nwejm_people_role_tl=role%
+ }{%
+ \tl_if_in:NnTF \l__nwejm_people_role_tl { editor } {
+ \item[
+ \__nwejm_citeauthor_no_giveninits:n {\c__nwejm_issue_bib_key_tl -#1- \exp_not:V\DTLcurrentindex}%
+ ]
+ \l__nwejm_people_affiliation_tl%
+ \space%
+ (\l__nwejm_people_country_tl)%
+ % ,\space%
+ % \__nwejm_email:n {\l__nwejm_people_email_tl}
+ \DTLiflastrow{%
+ }{%
+ % \medskip%
+ }
+ }{
+ \tl_if_in:NnTF \l__nwejm_people_role_tl { author } {
+ \footnotesize%
+ \noindent%
+ \begin{description}[leftmargin=1em,style=nextline]
+ \item[%
+ \__nwejm_citeauthor_no_giveninits:n {\c__nwejm_issue_bib_key_tl -#1- \exp_not:V\DTLcurrentindex}%
+ ]
+ \tl_if_empty:NF \l__nwejm_people_affiliation_tl
+ {%
+ \mbox{}%
+ \par%
+ \vspace{-2ex}%
+ \l__nwejm_people_affiliation_tl%
+ }
+ \tl_if_empty:NF \l__nwejm_people_email_tl
+ {%
+ \par%
+ \__nwejm_email:n {\l__nwejm_people_email_tl}
+ }
+ \end{description}
+ \DTLiflastrow{%
+ }{
+ \DTLpar%
+ \medskip%
+ }
+ }{
+ \__nwejm_citeauthor_no_giveninits:n {\c__nwejm_issue_bib_key_tl -#1-
+ \exp_not:V\DTLcurrentindex}%
+ \tl_if_empty:NF \l__nwejm_people_email_tl
+ {
+ \space(\__nwejm_email:n {\l__nwejm_people_email_tl})
+ }
+ }
+ }
+ }
+}
+\tl_new:N \g__nwejm_display_frontcover_tl%
+\tl_gset:Nn \g__nwejm_display_frontcover_tl {%
+ \bool_gset_true:N \g__nwejm_frontcover_bool
+ \pagestyle{__nwejm_frontcover_ps}%
+ \exp_after:wN\newgeometry\exp_after:wN{\c__nwejm_frontcover_geometry_tl}%
+ \noindent%
+ \bool_if:NTF {\g__nwejm_cover_bool} {
+ \hspace*{-\c__nwejm_potential_layoutoffset_dim}
+ }{
+ \hspace*{-2\c__nwejm_potential_layoutoffset_dim}
+ }
+ {
+ \mbox{}
+ \vfill
+ \begin{center}
+ \Huge%
+ \bfseries%
+ \sffamily%
+ \itshape%
+ \color{Navy}%
+ \c__nwejm_journal_front_cover_title_string_tl%
+ \end{center}
+ }
+ \vfill%
+ \clearpage%
+ \bool_gset_false:N \g__nwejm_frontcover_bool
+}
+\tl_new:N \g__nwejm_display_inside_frontcover_tl%
+\tl_gset:Nn \g__nwejm_display_inside_frontcover_tl {%
+ \bool_gset_true:N \g__nwejm_inside_frontcover_bool%
+ \pagestyle{__nwejm_inside_frontcover_ps}%
+ \exp_after:wN\newgeometry\exp_after:wN{\c__nwejm_inside_cover_geometry_tl}%
+ \footnotesize%
+ \begin{multicols*}{2}
+ \setlength{\columnsep}{1mm}
+ \begin{description}[leftmargin=2em]
+ \item[\textsc{\c__nwejm_editorinchief_string_tl}] \
+ \begin{description}[leftmargin=1em]
+ \__nwejm_display_people_by_role:n {editorinchief}
+ \end{description}
+ \bigskip
+ \par
+ \item[\textsc{\c__nwejm_associate_editors_string_tl}] \
+ \begin{description}[leftmargin=1em]
+ \__nwejm_display_people_by_role:n {editor}
+ \end{description}
+ \bigskip
+ \par
+ \item[\textsc{\c__nwejm_field_editor_string_tl}] \
+ \begin{description}[leftmargin=1em]
+ \__nwejm_display_people_by_role:n {fieldseditor}
+ \end{description}
+ \bigskip
+ \par
+ \item[\textsc{\c__nwejm_managing_editor_string_tl}] \
+ \begin{description}[leftmargin=1em]
+ \__nwejm_display_people_by_role:n {managingeditor}
+ \end{description}
+ \end{description}
+ \end{multicols*}
+ \clearpage%
+ \bool_gset_false:N \g__nwejm_inside_frontcover_bool
+ \pagestyle{__nwejm_frontmatter_ps}%
+ \exp_after:wN\newgeometry\exp_after:wN{\c__nwejm_main_geometry_tl}%
+}
+\tl_new:N \g__nwejm_display_inside_backcover_tl%
+\tl_gset:Nn \g__nwejm_display_inside_backcover_tl {%
+ \bool_gset_true:N \g__nwejm_inside_backcover_bool%
+ \pagestyle{__nwejm_inside_backcover_ps}%
+ % \exp_after:wN\newgeometry\exp_after:wN{\c__nwejm_inside_cover_geometry_tl}%
+ % \file_if_exist:nT { \c__nwejm_authors_instructions_file_tl } {%
+ \bool_if:NTF {\g__nwejm_no_inside_backcover_bool} {
+ \hbox{}
+ }{%
+ \small%
+ \file_if_exist:nT { \c__nwejm_authors_instructions_file_tl } {%
+ % \begin{multicols}{2}
+ % \setlength{\columnsep}{1mm}
+ \file_input:n {\c__nwejm_authors_instructions_file_tl}
+ % \end{multicols}
+ % \setlength{\columnseprule}{1pt}
+ }
+ \begin{description}[leftmargin=1em]
+ \item[\c__nwejm_editorial_secretariat_string_tl{}~:] \ \par%
+ % \l__nwejm_journal_publisher_tl%
+ % \par%
+ % \space\textendash{}\space%
+ \__nwejm_display_people_by_role:n { secretary }\par
+ \l__nwejm_journal_address_tl\par%
+ \c__nwejm_phone_string_tl{}~:~\l__nwejm_journal_phone_tl{}\par%
+ \__nwejm_email:n {\l__nwejm_journal_email_tl}
+ \newline%
+ % \space\textendash{}\space
+ \url{\l__nwejm_journal_url_tl}
+ \item[\c__nwejm_issn_string_tl{}~:] \l__nwejm_journal_issn_tl
+ \tl_if_empty:NF \l__nwejm_journal_isbn_tl
+ {%
+ \item[\c__nwejm_isbn_string_tl{}~:] \l__nwejm_journal_isbn_tl
+ }
+ \item[\c__nwejm_latexclass_string_tl{}~:]
+ \__nwejm_display_people_by_role:n { classdesigner }
+ \item[\c__nwejm_computer_engineering_string_tl{}~:] %\g__nwejm_printer_text_tl
+ \__nwejm_display_people_by_role:n { computerengineer }
+ \item[\c__nwejm_printer_string_tl{}~:] %\g__nwejm_printer_text_tl
+ \__nwejm_display_people_by_role:n { printingservice }
+ \end{description}
+ \g__nwejm_font_designer_text_tl
+ }
+ % }{%
+ % \hbox{}
+ % }
+ \bool_gset_false:N \g__nwejm_inside_backcover_bool
+}
+\tl_new:N \g__nwejm_short_toc_tl%
+\tl_gset:Nn \g__nwejm_short_toc_tl {%
+ \begingroup
+ \etocstandardlines
+ \etocsetnexttocdepth{chapter}
+ \renewcommand{\etocbkgcolorcmd}{\color{Navy!5}}
+ \renewcommand{\etocbelowtocskip}{0pt\relax}
+ \fboxsep1ex
+ \etocframedstyle [1]{\fbox{\makebox[.5\linewidth]{\etocfontminusone\c__nwejm_backcover_tableofcontents_string_tl}}}
+ \tableofcontents
+ \endgroup
+}
+\tl_new:N \g__nwejm_display_backcover_tl%
+\tl_gset:Nn \g__nwejm_display_backcover_tl {%
+ \bool_gset_true:N \g__nwejm_backcover_bool
+\g__nwejm_short_toc_tl
+\vfill{}
+ \begin{center}
+ \includegraphics[height=.4\textheight]{nwejm-logos-collection.pdf}
+ \end{center}
+}
+\cs_new_protected:Nn \__nwejm_date:nn
+{
+ \tl_if_exist:NT {#2}
+ {
+ \tl_if_empty:NF {#2}
+ {
+ \tl_if_eq:NNF {\c__nwejm_date_received_tl} {#1} { \c__nwejm_dates_separator_tl }
+ \tl_mixed_case:n { \exp_args:No \GetTranslation{#1} }
+ \c__nwejm_colon_tl\space
+ \DTMdate{#2}%
+ }
+ }
+}
+\tl_new:N \g__nwejm_display_dates_tl%
+\tl_gset:Nn \g__nwejm_display_dates_tl {%
+ \footnotesize%
+ \__nwejm_date:nn {\c__nwejm_date_received_tl}{\g__nwejm_reception_date_tl}
+ \__nwejm_date:nn {\c__nwejm_date_accepted_tl}{\g__nwejm_acception_date_tl}
+ \__nwejm_date:nn {\c__nwejm_date_online_tl} {\g__nwejm_online_date_tl}
+ \tl_gclear:N \g__nwejm_reception_date_tl
+ \tl_gclear:N \g__nwejm_acception_date_tl
+ \tl_gclear:N \g__nwejm_online_date_tl
+}
+\seq_new:N \l__nwejm_keywords_seq
+\tl_new:N \l__nwejm_keywords_tl
+\NewDocumentCommand \keywords { m } {
+ \seq_clear:N \l__nwejm_keywords_seq
+ \tl_clear:N \l__nwejm_keywords_tl
+ \seq_set_from_clist:Nn \l_tmpa_seq {#1}
+ \seq_set_map:NNn \l__nwejm_keywords_seq \l_tmpa_seq {
+ ##1
+ }
+ \tl_set:Nn \l__nwejm_keywords_tl { \seq_use:Nn \l__nwejm_keywords_seq {,~} }
+}
+\seq_new:N \l__nwejm_msc_seq
+\tl_new:N \l__nwejm_msc_tl
+\NewDocumentCommand \msc { m } {
+ \seq_clear:N \l__nwejm_msc_seq
+ \tl_clear:N \l__nwejm_msc_tl
+ %
+ % does what the name suggests, set a sequence from the clist
+ \seq_set_from_clist:Nn \l_tmpa_seq {#1}
+ % applies final arg to each element of second seq and stores result in first seq
+ \seq_set_map:NNn \l__nwejm_msc_seq \l_tmpa_seq {
+ ##1
+ }
+ %
+ % \seq_use puts the items from the seq back in the input with ",~" as a separator
+ \tl_set:Nn \l__nwejm_msc_tl {\seq_use:Nn \l__nwejm_msc_seq {,~}}
+%%<class-article> \hypersetup{pdfmsc=\l_@@_msc_tl}
+}
+%% \enquote{R\'{e}dacteur(s) en chef}.
+\NewDocumentCommand \editorinchief {mmmm}
+{
+ \__nwejm_people:nnnnn {#1}{#2}{#3}{#4}{editorinchief}
+}
+\NewDocumentCommand \editor {mmmm}
+{
+ \__nwejm_people:nnnnn {#1}{#2}{#3}{#4}{editor}
+}
+\NewDocumentCommand \fieldseditor {mmmm}
+{
+ \__nwejm_people:nnnnn {#1}{#2}{#3}{#4}{fieldseditor}
+}
+\NewDocumentCommand \managingeditor {mmmm}
+{
+ \__nwejm_people:nnnnn {#1}{#2}{#3}{#4}{managingeditor}
+}
+\NewDocumentCommand \classdesigner {mmmm}
+{
+ \__nwejm_people:nnnnn {#1}{#2}{#3}{#4}{classdesigner}
+}
+\NewDocumentCommand \computerengineer {mmmm}
+{
+ \__nwejm_people:nnnnn {#1}{#2}{#3}{#4}{computerengineer}
+}
+\NewDocumentCommand \classmaintainer {mmmm}
+{
+ \__nwejm_people:nnnnn {#1}{#2}{#3}{#4}{classmaintainer}
+}
+\NewDocumentCommand \fontdesigner {mmmm}
+{
+ \__nwejm_people:nnnnn {#1}{#2}{#3}{#4}{fontdesigner}
+}
+\NewDocumentCommand \printingservice {mmmm}
+{
+ \__nwejm_people:nnnnn {#1}{#2}{#3}{#4}{printingservice}
+}
+\NewDocumentCommand \computerassistance {mmmm}
+{
+ \__nwejm_people:nnnnn {#1}{#2}{#3}{#4}{computerassistance}
+}
+\NewDocumentCommand \secretary {mmmm}
+{
+ \__nwejm_people:nnnnn {#1}{#2}{#3}{#4}{secretary}
+}
+\NewDocumentCommand \issuesetup { m } {
+ \keys_set:nn { nwejm/issuesetup } {#1}
+\hypersetup{pdftitle=\l__nwejm_pdftitle_string_tl}
+\hypersetup{pdfauthor=\l__nwejm_pdfauthor_string_tl}
+ \int_compare:nNnT {\g__nwejm_issue_number_int}<{1}
+ {
+ \int_gset:Nn \g__nwejm_issue_number_int { \c__nwejm_first_issue_number_int }
+ \msg_warning:nnn{nwejm}{Issue~number~needed}{number}
+ }
+ \int_compare:nNnT {\g__nwejm_issue_month_int * \g__nwejm_issue_year_int}<{1}
+ {
+ \int_new:N \g__nwejm_issue_age_in_months_int%
+ \int_gset:Nn \g__nwejm_issue_age_in_months_int
+ {
+ \c__nwejm_first_issue_month_int
+ + \c__nwejm_interval_in_months_int
+ * ( \int_use:N \g__nwejm_issue_number_int - \c__nwejm_first_issue_number_int )
+ }
+ }
+ \int_compare:nNnT {\g__nwejm_issue_month_int}<{1}
+ {
+ \int_gset:Nn \g__nwejm_issue_month_int
+ {
+ \int_mod:nn { \g__nwejm_issue_age_in_months_int } { 12 }
+ }
+ }
+ \int_compare:nNnT {\g__nwejm_issue_year_int}<{1}
+ {
+ \int_new:N \g__nwejm_issue_age_in_years_int%
+ \int_gset:Nn \g__nwejm_issue_age_in_years_int
+ {%
+ \int_div_truncate:nn { \g__nwejm_issue_age_in_months_int } { 12 }
+ }%
+ \int_gset:Nn \g__nwejm_issue_year_int
+ {
+ \g__nwejm_issue_age_in_years_int + \c__nwejm_first_issue_year_int
+ }
+ }%
+}
+\NewDocumentCommand \journalsetup { m } {
+ \keys_set:nn { nwejm/journalsetup } { #1 }
+}
+\addto\extrasfrench{%
+ \def\reftextfaceafter {page~\reftextvario{ci-contre}{suivante}}%
+ \def\reftextfacebefore{page~\reftextvario{ci-contre}%
+ {pr\^^e2^^80^^99ec\^^e2^^80^^99edente}}%
+ \def\reftextafter
+ {page~suivante}%
+ \def\reftextbefore
+ {page~pr\^^e2^^80^^99ec\^^e2^^80^^99edente}%
+ \def\reftextcurrent
+ {de~la~pr\^^e2^^80^^99esente~page}%
+ \def\reftextfaraway#1{page~\pageref{#1}}%
+ \def\reftextpagerange#1#2{pages~\pageref{#1}--\pageref{#2}}%
+ \def\reftextlabelrange#1#2{\ref{#1}~\^^e2^^80^^98a~\ref{#2}}%
+}
+\addto\extrasngerman{%
+ \def\reftextfaceafter {auf~der~n\"achsten~Seite}%
+ \def\reftextfacebefore{auf~der~vorherigen~Seite}%
+ \let\reftextafter \reftextfaceafter
+ \let\reftextbefore \reftextfacebefore
+ \def\reftextcurrent {auf~dieser~Seite}%
+ \def\reftextfaraway#1{auf~Seite~\pageref{#1}}%
+ \def\reftextpagerange#1#2{auf~den~Seiten~\pageref{#1}--\pageref{#2}}%
+ \def\reftextlabelrange#1#2{\ref{#1}~bis~\ref{#2}}%
+}
+\addto\extrasdutch{%
+ \def\refpagename{pagina}%
+ \def\reftextfaceafter {op~de~\reftextvario{rechter~\refpagename}%
+ {\refpagename\ hiernaast}}%
+ \def\reftextfacebefore{op~de~\reftextvario{linker~\refpagename}%
+ {\refpagename\ hiernaast}}%
+ \def\reftextafter {op~de~\reftextvario{volgende~\refpagename}%
+ {\refpagename\ hierna}}%
+ \def\reftextbefore {op~de~\reftextvario{vorige~\refpagename}%
+ {\refpagename\ hiervoor}}%
+ \def\reftextcurrent {op~deze~\refpagename}%
+ \def\reftextfaraway#1{op~\refpagename\space\pageref{#1}}
+}
+\addto\extrasenglish{%
+ \def\reftextfaceafter {on~the~\reftextvario{facing}{next}~page}%
+ \def\reftextfacebefore{on~the~\reftextvario{facing}{preceding}~page}%
+ \def\reftextafter {on~the~\reftextvario{following}{next}~page}%
+ \def\reftextbefore {on~the~\reftextvario{preceding}{previous}~page}%
+ \def\reftextcurrent {on~\reftextvario{this}{the~current}~page}%
+ \def\reftextfaraway#1{on~page~\pageref{#1}}%
+ \def\reftextpagerange#1#2{on~pages~\pageref{#1}--\pageref{#2}}%
+ \def\reftextlabelrange#1#2{\ref{#1}~to~\ref{#2}}%
+}
+\cs_new_protected:Nn \__nwejm_command_only_in_body:n
+{
+ \cs_if_eq:NNF {\@onlypreamble} {\@notprerr} {
+ \msg_error:nnn{
+ nwejm
+ }{Command~restricted~to~document~body~used~in~preamble}{#1}
+ }
+}
+\NewDocumentCommand \articlesetup { m } {
+ \__nwejm_command_only_in_body:n {\articlesetup}
+ \keys_set:nn { nwejm/articlesetup } {#1}
+}
+\NewDocumentCommand \dates { m } {
+ \keys_set:nn { nwejm/dates } { #1 }
+}
+\NewDocumentCommand \inputarticle { O{english} m } {%
+ \newrefsection
+ \tl_if_eq:nnTF { #1 } { german } {%
+ \selectlanguage{ngerman}
+ }{
+ \selectlanguage{#1}
+ }%
+ \tl_if_eq:nnTF { #1 } { french } {%
+ \FrenchFootnotes
+ }{%
+ \StandardFootnotes
+ }
+ \bool_gset_false:N \g__nwejm_gradient_nabla_bool
+ \bool_gset_false:N \g__nwejm_gradient_nabla_control_bool
+ \bool_gset_false:N \g__nwejm_grad_used_bool
+ \inputfrom{./}{#2}
+ \clist_put_right:Nn \g__nwejm_counters_to_be_reset_clist {
+ footnote,
+ section,
+ figure,
+ table,
+ equation
+ }
+ \clist_map_inline:Nn \g__nwejm_counters_to_be_reset_clist {
+ \@ifundefined{c@##1}{
+ }{
+ \setcounter{##1}{\c_zero}
+ }
+ }
+ \glsresetall
+ \selectlanguage{english}
+}
+\AtBeginDocument{%
+\tl_new:N \g__nwejm_bib_issue_date_tl
+\tl_gset:Nn
+\g__nwejm_bib_issue_date_tl {
+ \int_use:N \g__nwejm_issue_year_int -
+ \int_compare:nNnT {\g__nwejm_issue_month_int}<{10}
+ {
+ 0
+ }
+ \int_use:N \g__nwejm_issue_month_int
+}
+ \iow_now:Nx \g__nwejm_bib_out_iow {%
+ @periodical{\c__nwejm_issue_bib_key_tl,\iow_newline:
+ issuetitle = {\exp_not:f\c__nwejm_journal_title_string_tl},\iow_newline:
+ date = {\g__nwejm_bib_issue_date_tl},\iow_newline:
+ number = \int_use:N \g__nwejm_issue_number_int,\iow_newline:
+ % issn = {\l__nwejm_journal_issn_tl},\iow_newline:
+ options = {skipbib}\iow_newline:
+ }
+ \iow_newline:
+ }%
+}
+\tl_new:N \g__nwejm_title_tl
+\RenewDocumentCommand \title { o m } {
+ \cleardoublepage
+ \int_gincr:N \g__nwejm_articles_int
+ \tl_gclear:N \g__nwejm_short_title_tl
+ \tl_gclear:N \g__nwejm_short_subtitle_tl
+ %
+ \IfNoValueF {#1}
+ {
+ \tl_gset:Nn \g__nwejm_short_title_tl {#1}
+ }
+ \tl_gset:Nn \g__nwejm_title_tl {#2}
+ \tl_if_empty:NT \g__nwejm_short_title_tl {%
+ \tl_gset_eq:NN \g__nwejm_short_title_tl \g__nwejm_title_tl
+ }
+}
+\tl_new:N \g__nwejm_subtitle_tl
+\NewDocumentCommand \subtitle { o m } {
+ \IfNoValueF {#1}
+ {
+ \tl_gset:Nn \g__nwejm_short_subtitle_tl {#1}
+ }
+ \tl_gset:Nn \g__nwejm_subtitle_tl {#2}
+ \tl_if_empty:NT \g__nwejm_short_subtitle_tl {%
+ \tl_gset_eq:NN \g__nwejm_short_subtitle_tl \g__nwejm_subtitle_tl
+ }
+}
+\RenewDocumentCommand \author { O{} m } {
+ \cleardoublepage
+ \int_incr:N \l_author_int
+ \prop_gput_if_new:Nxn \g_authors_prop {author_\int_use:c {l_author_int}} {#2}
+ \IfNoValueF {#1}
+ {
+ \keys_set:nn { nwejm/authors } { #1 }
+ }
+ \prop_set_eq:cN {l_author_ \int_use:c {l_author_int} _affiliations_prop} \l_tmpa_prop
+ \prop_clear:N \l_tmpa_prop
+ \__nwejm_populate_bib_file:nn {#2}{author-art-\int_use:N \g__nwejm_articles_int}
+ \tl_if_empty:NTF \l__nwejm_people_first_last_names_tl {%
+ \tl_put_right:Nn
+ \l__nwejm_people_first_last_names_tl
+ {#2}
+ }{
+ \tl_put_right:Nn
+ \l__nwejm_people_first_last_names_tl
+ {~and~#2}
+ }
+}
+\iow_new:N \g__nwejm_bib_out_iow
+\ior_new:N \g__nwejm_bib_out_ior
+\tl_new:N \g__nwejm_bib_out_tl
+\file_if_exist:nTF { \c__nwejm_issue_bib_path_string_tl }
+{
+ \ior_open:Nn \g__nwejm_bib_out_ior { \c__nwejm_issue_bib_path_string_tl }
+ \ior_str_map_inline:Nn \g__nwejm_bib_out_ior
+ { \tl_gput_right:Nn \g__nwejm_bib_out_tl {#1 \par } }
+ \ior_close:N \g__nwejm_bib_out_ior
+}{
+ \typeout{no file! rerun}
+}
+\iow_open:Nn \g__nwejm_bib_out_iow { \c__nwejm_issue_bib_path_string_tl }
+\tl_new:N \g__nwejm_abstract_body_tl
+\NewDocumentEnvironment{abstract}{}
+ {\CollectAbstract}
+ {\endCollectAbstract}
+\NewEnviron{CollectAbstract}
+ {
+ \tl_gset_eq:NN \g__nwejm_abstract_body_tl \BODY
+ }
+\tl_new:N \g__nwejm_frontmatter_switch_tl%
+\tl_gset:Nn \g__nwejm_frontmatter_switch_tl {
+ \bool_gset_true:N \g__nwejm_frontmatter_bool
+ \frontmatter
+ \pagestyle{__nwejm_frontmatter_ps}%
+ \exp_after:wN\newgeometry\exp_after:wN{\c__nwejm_main_geometry_tl}%
+}
+\tl_new:N \g__nwejm_mainmatter_switch_tl%
+\tl_gset:Nn \g__nwejm_mainmatter_switch_tl {
+ \bool_gset_false:N \g__nwejm_frontmatter_bool
+ \bool_gset_true:N \g__nwejm_mainmatter_bool
+ \mainmatter
+ % \SetParskip{\c__nwejm_mainmatter_parskip_skip}
+ \pagestyle{__nwejm_mainmatter_ps}%
+ \exp_after:wN\newgeometry\exp_after:wN{\c__nwejm_main_geometry_tl}%
+}
+\tl_new:N \g__nwejm_article_acknowledgments_tl%
+\cs_new_protected:Nn \__nwejm_article_acknowledgments:n
+{
+ \tl_gset:Nn \g__nwejm_article_acknowledgments_tl { #1 }
+}
+\NewDocumentCommand \acknowledgments { m } {
+ \__nwejm_article_acknowledgments:n {#1}
+}
+\tl_new:N \g__nwejm_article_bib_key_tl%
+\tl_new:N \l__nwejm_people_first_last_names_tl
+\tl_new:N \g__nwejm_authors_first_last_names_tl%
+\tl_new:N \g__nwejm_citeauthor_no_giveninits%
+\tl_new:N \g__nwejm_citeauthor_tl%
+\int_new:N \g__nwejm_author_s_number_current_article_int%
+\cs_new_protected:Nn \__nwejm_citeauthor_no_giveninits:n {%
+ \tl_gset:Nn \g__nwejm_citeauthor_tl {%
+ \DeclareNameAlias{labelname}{default}%
+ \group_begin:
+ \togglefalse{blx@giveninits}%
+ \citeauthor{#1}
+ \group_end:
+ }%
+ \cs_if_exist:cTF {texorpdfstring}
+ {
+ \texorpdfstring{\g__nwejm_citeauthor_tl}{}
+ }{%
+ \g__nwejm_citeauthor_tl
+ }%
+}
+\cs_set_eq:NN \__nwejm_orig_multinamedelim \multinamedelim
+\cs_set_eq:NN \__nwejm_orig_finalnamedelim \finalnamedelim
+\cs_new_protected:Nn \__nwejm_maketitle_citeauthor:n
+{
+ \restorecommand\mkbibnamelast
+ \def\multinamedelim {\hskip 1em \@plus.17fil}%
+ \cs_set_eq:NN \finalnamedelim \multinamedelim
+ \AtNextCitekey{\defcounter{maxnames}{100}}
+ \group_begin:
+ \DeclareNameAlias{labelname}{default}%
+ \togglefalse{blx@giveninits}%
+ \citeauthor{#1}
+ \group_end:
+ \cs_set_eq:NN \multinamedelim \__nwejm_orig_multinamedelim
+ \cs_set_eq:NN \finalnamedelim \__nwejm_orig_finalnamedelim
+ \protected\def\mkbibnamelast#1{%
+ \textsc{\textnohyphenation{#1}}}%
+}
+\cs_new_protected:Nn \__nwejm_display_author:n
+{
+ \seq_clear:N \l_tmpa_seq
+ \prop_get:NnN \g_authors_prop {author_#1} \l_tmpa_tl
+ \prop_map_inline:cn {l_author_ #1 _affiliations_prop} {
+ \seq_put_right:Nx \l_tmpa_seq { ##1 }
+ }
+ \seq_sort:Nn \l_tmpa_seq
+ {
+ \int_compare:nNnTF { ##1 } > { ##2 }
+ { \sort_reversed: }
+ { \sort_ordered: }
+ }
+ \mbox{%
+ \__nwejm_citeauthor_no_giveninits:n {\c__nwejm_issue_bib_key_tl -author-art- \int_use:N \g__nwejm_articles_int-#1}
+ }
+ \seq_map_inline:Nn \l_tmpa_seq {
+ \prop_get:cnN {l_author_ #1 _affiliations_prop} {##1} \l_tmpb_tl
+ \footnotemark[##1]
+ \tl_if_empty:NF \l_tmpb_tl
+ {
+ \footnotetext[##1]{\l_tmpb_tl}
+ }
+ }
+ \hskip 1em plus .17fil
+}
+\tl_new:N \l__nwejm_bullet_and_rule_tl
+\tl_new:N \l__nwejm_authors_box_tl
+\tl_new:N \l__nwejm_abstract_box_tl
+\tl_new:N \l__nwejm_bullet_and_rule_odd_tl
+\tl_new:N \l__nwejm_bullet_and_rule_even_tl
+\tl_new:N \l__nwejm_title_box_tl
+\tl_new:N \g__nwejm_title_for_toc_tl
+\RenewDocumentCommand \maketitle { } {
+ \FloatBarrier%
+\tl_gset:Nn \g__nwejm_article_bib_key_tl {%
+ \c__nwejm_issue_bib_key_tl
+ -art-
+ \int_use:N \g__nwejm_articles_int
+}
+\tl_if_empty:NF \g__nwejm_title_tl {%
+ \iow_now:Nx \g__nwejm_bib_out_iow {%
+ @article{
+ \g__nwejm_article_bib_key_tl,
+ \iow_newline:
+ title={\exp_not:V\g__nwejm_title_tl},
+ \iow_newline:
+ \tl_if_empty:NF \g__nwejm_subtitle_tl {%
+ subtitle={\exp_not:V\g__nwejm_subtitle_tl},
+ \iow_newline:
+ }
+ \tl_if_eq:NNF { \g__nwejm_short_title_tl } { \g__nwejm_title_tl } {%
+ shorttitle={\exp_not:V\g__nwejm_short_title_tl},
+ \iow_newline:
+ }%
+ \tl_if_empty:NF \l__nwejm_people_first_last_names_tl
+ {
+ author={\exp_not:V\l__nwejm_people_first_last_names_tl},
+ \iow_newline:
+ }
+ options={skipbib},
+ \iow_newline:
+ crossref = {\c__nwejm_issue_bib_key_tl}
+ }
+ \iow_newline:
+ }%
+ % \tl_clear:N \l__nwejm_people_first_last_names_tl
+}%
+\tl_set:Nn \l__nwejm_authors_box_tl
+{%
+ \bool_if:nTF { \tl_if_empty_p:N \l__nwejm_people_first_last_names_tl }
+ {
+ \mbox{}
+ }
+ {
+ \int_set:Nn \l_tmpa_int { \__nwejm_prop_count:N \g_authors_prop}
+ \normalsize%
+ \int_step_inline:nnnn {1}{1}{\l_tmpa_int} {
+ \__nwejm_display_author:n {##1}
+ }
+ \prop_gclear:N \g_authors_prop
+ }
+}
+\int_zero:N \l_author_int
+\prop_clear:N \l_affiliations_tagged_prop
+\tl_set:Nn \l__nwejm_dates_box_tl
+{%
+ \g__nwejm_display_dates_tl
+}
+\tl_set:Nn \l__nwejm_keywords_box_tl
+{%
+ \noindent
+ {
+ \bfseries
+ \tl_mixed_case:n{
+ \GetTranslation{plural-keyword}
+ \c__nwejm_colon_tl
+ }
+ }
+ \space\l__nwejm_keywords_tl.
+}
+\tl_set:Nn \l__nwejm_msc_box_tl
+{%
+ \noindent\textbf{\c__nwejm_msc_string_tl}\c__nwejm_colon_tl\space\l__nwejm_msc_tl.
+}
+\tl_set:Nn \l__nwejm_abstract_box_tl
+{%
+ \mbox{}
+ \par%
+ \vskip .5em%
+ \tl_if_empty:NTF \g__nwejm_abstract_body_tl
+ {%
+ \msg_warning:nn{nwejmart}{No~abstract}
+ }%
+ {%
+ \small
+ \begin{center}%
+ {\bfseries \abstractname\vspace{-.5em}\vspace{\z@}}%
+ \end{center}%
+ \begin{quotation}
+ \g__nwejm_abstract_body_tl
+ \end{quotation}
+ }
+}%
+\tl_set:Nn \g__nwejm_partial_title_for_toc_tl
+{
+ \tl_if_empty:NTF \g__nwejm_short_title_tl {%
+ \g__nwejm_title_tl%
+ }{
+ \g__nwejm_short_title_tl%
+ }
+ \bool_if:nF { \tl_if_empty_p:N \g__nwejm_short_subtitle_tl }
+ {
+ .\space\g__nwejm_short_subtitle_tl
+ }
+}
+\tl_set:Nn \g__nwejm_title_for_toc_tl
+{
+ \g__nwejm_partial_title_for_toc_tl
+ \bool_if:nF { \tl_if_empty_p:N \l__nwejm_people_first_last_names_tl }
+ {
+ \textsl{
+ \cs_if_exist:cTF {texorpdfstring}
+ {
+ \texorpdfstring{%
+ \AtNextCitekey{\defcounter{maxnames}{100}}
+ \space\textendash\space\citeauthor{\g__nwejm_article_bib_key_tl}
+ }{}
+ }{%
+ \space\textendash\space\citeauthor{\g__nwejm_article_bib_key_tl}
+ }%
+ }
+ }
+}
+ \setsecnumdepth{none}
+ \chapter[\g__nwejm_title_for_toc_tl]{%
+ \LARGE%
+ \g__nwejm_title_tl
+ \tl_if_empty:NF \g__nwejm_subtitle_tl {%
+ \\[1ex]%
+ \Large%
+ \g__nwejm_subtitle_tl
+ }\\[2ex]%
+ \l__nwejm_authors_box_tl%
+ \bool_if:NT {\g__nwejm_date_specified_bool}
+ {
+ \\[2ex]
+ \l__nwejm_dates_box_tl
+ }
+ \\[-4ex]
+ }
+ \bool_gset_false:N \g__nwejm_date_specified_bool
+ \bookmarksetup{depth=subsection}
+ \setsecnumdepth{subsection}
+ \thispagestyle{__nwejm_article_title_ps}%
+\l__nwejm_abstract_box_tl%
+\normalsize
+\tl_if_empty:NTF \l__nwejm_keywords_tl {
+ \msg_warning:nn{nwejmart}{No~keyword}
+}{
+ \l__nwejm_keywords_box_tl
+ \par%
+ \vskip .5em%
+}
+\tl_if_empty:NTF \l__nwejm_msc_tl {
+ \msg_warning:nn{nwejmart}{No~MSC}
+}{
+ \l__nwejm_msc_box_tl
+ \par%
+ \vskip .5em%
+}
+\tl_gclear:N \g__nwejm_title_tl
+\tl_gclear:N \g__nwejm_subtitle_tl
+\tl_gclear:N \g__nwejm_title_for_toc_tl
+\tl_gclear:N \g__nwejm_abstract_body_tl
+ \tl_gclear:N \g__nwejm_people_affiliation_tl
+ \tl_gclear:N \g__nwejm_people_email_tl
+ \tl_clear:N \l__nwejm_people_first_last_names_tl%
+}
+\AtEndPreamble{\file_input:n {\c__nwejm_configuration_file_string_tl}}
+\DeclarePlainStyle{^^c2^^ab~}{~^^c2^^bb}{`}{'}
+\setcounter{topnumber}{3}
+\renewcommand{\topfraction}{0.8}
+\addtolength{\skip\footins}{.25\baselineskip}
+\setlength{\columnsep}{7mm}%
+\renewcommand{\thesection}{\arabic{section}}%
+\@ifpackageloaded{siunitx}{%
+ \addto\extrasenglish{\sisetup{locale = UK}}
+ \addto\extrasfrench{\sisetup{locale = FR}}
+ \addto\extrasngerman{\sisetup{locale = DE}}
+ \addto\extrasgerman{\sisetup{locale = DE}}
+ \addto\extrasdutch{%
+ \sisetup{%
+ exponent-product = \ensuremath { \times } ,
+ inter-unit-product = \, ,
+ output-decimal-marker = { , }
+ }%
+ }
+ \sisetup{detect-all}
+}
+\cs_set_eq:NN \__nwejm_section \section
+\cs_set_eq:NN \__nwejm_subsection \subsection
+\cs_set_eq:NN \__nwejm_subsubsection \subsubsection
+\AfterPreamble{%
+ \RenewDocumentCommand \section { s o m } {%
+ \IfBooleanTF {#1}
+ {
+ \setsecnumdepth{none}%
+ }
+ {
+ \resetsecnumdepth*%
+ }
+ \IfNoValueTF{#2}{\__nwejm_section{#3}}{\__nwejm_section[#2]{#3}}
+ }
+ \RenewDocumentCommand \subsection { s o m } {%
+ \IfBooleanT {#1}
+ {
+ \setsecnumdepth{none}%
+ }
+ \IfNoValueTF{#2}{\__nwejm_subsection{#3}}{\__nwejm_subsection[#2]{#3}}
+ }
+ \RenewDocumentCommand \subsubsection { s o m } {%
+ \IfBooleanT {#1}
+ {
+ \setsecnumdepth{none}%
+ }
+ \IfNoValueTF{#2}{\__nwejm_subsubsection{#3}}{\__nwejm_subsubsection[#2]{#3}}
+ }
+}
+\int_new:N \l__nwejm_abs_int
+\cs_new_protected:Nn \__nwejm_ordinalnum_suffix:n
+{
+ \int_set:Nn \l__nwejm_abs_int {\int_abs:n {#1}}
+ \ifcurrentbaselanguage{english}{
+ \int_use:N \l__nwejm_abs_int
+ \int_set:Nn \l_tmpa_int {\int_mod:nn {\l__nwejm_abs_int} {\c_one_hundred}}
+ \int_case:nnF
+ { \l_tmpa_int }
+ {
+ { \c_eleven } { \fmtord{th} }
+ { \c_twelve } { \fmtord{th} }
+ { \c_thirteen } { \fmtord{th} }
+ }{
+ \int_set:Nn \l_tmpb_int {\int_mod:nn {\l__nwejm_abs_int} {\c_ten}}
+ \int_case:nnF
+ { \l_tmpb_int }
+ {
+ { \c_zero } { \fmtord{th} }
+ { \c_one } { \fmtord{st} }
+ { \c_two } { \fmtord{nd} }
+ { \c_three } { \fmtord{rd} }
+ }{
+ \fmtord{th}
+ }
+ }
+ }{
+ \ifcurrentbaselanguage{dutch}{
+ \int_use:N \l__nwejm_abs_int
+ e
+ }{
+ \textsc{\int_to_roman:n {\int_abs:n {#1}}}
+ \ifcurrentbaselanguage{french}{
+ \int_compare:nNnTF { \l__nwejm_abs_int } = { 1 }{\fmtord{er}}{\fmtord{e}}
+ }{
+ \ifcurrentbaselanguage{german}{
+ .
+ }{
+ \ifcurrentbaselanguage{ngerman}{
+ .
+ }{
+ }
+ }
+ }
+ }
+ }
+}
+\cs_new_protected:Nn \__nwejm_century_suffix:n
+{
+ \space{}
+ \GetTranslation{century}%
+ \int_compare:nNnT { #1 } < { 0 }{
+ \space
+ \GetTranslation{before-christ}
+ }{
+ }
+}
+\NewDocumentCommand \century { s m } {%
+ \__nwejm_ordinalnum_suffix:n {#2}%
+ \IfBooleanTF {#1}
+ {
+ \int_compare:nNnT { #2 } < { 0 }{
+ \__nwejm_century_suffix:n {#2}%
+ }
+ }{
+ \__nwejm_century_suffix:n {#2}%
+ }
+ \int_compare:nNnT { #2 } < { 0 }{
+ \ifcurrentbaselanguage{english}{%
+ }{
+ \@ifnextchar.%
+ {
+ }{
+ .\xspace
+ }%
+ }
+ }
+}
+\NewDocumentCommand \aside { s m } {%
+ \IfBooleanTF {#1}
+ {
+ \c__nwejm_aside_string_tl{}~#2
+ }
+ {
+ \c__nwejm_aside_string_tl{}~#2~\c__nwejm_aside_string_tl
+ }
+}
+\NewDocumentCommand \ie { s } {%
+ \IfBooleanTF {#1}
+ {
+ \GetTranslation{idest}
+ }
+ {
+ \GetTranslation{ie}
+ \@ifnextchar.%
+ {
+ }{
+ .\xspace
+ }%
+ }
+}
+\NewDocumentCommand \Ie { s } {%
+ \IfBooleanTF {#1}
+ {
+ \GetTranslation{Idest}
+ }
+ {
+ \GetTranslation{Ie}
+ \@ifnextchar.%
+ {
+ }{
+ .\xspace
+ }%
+ }
+}
+\RenewDocumentCommand \vec { m } {
+ \vv{#1}
+}
+\bool_new:N \g__nwejm_no_numbered_theorem_bool
+\cs_new_protected:Nn \__nwejm_theorem_style:n
+{
+ \bool_gset_false:N \g__nwejm_no_numbered_theorem_bool
+ \str_case:nn
+ { #1 }
+ {
+ { theorem } {
+ \theoremstyle{plain}
+ \theoremheaderfont{\normalfont\bfseries}
+ \theorembodyfont{\itshape}
+ \theoremseparator{~--}
+ \theoremsymbol{}
+ }
+ { definition } {
+ \theoremstyle{plain}
+ \theoremheaderfont{\normalfont\bfseries}
+ \theorembodyfont{\normalfont}
+ \theoremseparator{~--}
+ \theoremsymbol{}
+ }
+ { proof } {
+ \theoremstyle{nonumberplain}
+ \bool_gset_true:N \g__nwejm_no_numbered_theorem_bool
+ \theoremheaderfont{\normalfont\itshape}
+ \theorembodyfont{\normalfont}
+ \theoremseparator{.}
+ \theoremsymbol{\ensuremath{\square}}
+ }
+ }
+}
+\cs_set_eq:NN \__nwejm_orig_newtheorem \newtheorem
+\cs_new_protected:Nn \__nwejm_new_theorem:nnnnn
+{
+ \AtBeginDocument{%
+ \IfTranslation{English}{#1}{%
+ }{%
+ \DeclareTranslation{English}{#1}{\tl_mixed_case:n{#2}}%
+ }
+ \IfTranslation{French}{#1}{%
+ }{%
+ \DeclareTranslation{French}{#1}{\tl_mixed_case:n{#3}}%
+ }
+ \IfTranslation{German}{#1}{%
+ }{%
+ \DeclareTranslation{German}{#1}{\tl_mixed_case:n{#4}}%
+ }
+ \IfTranslation{Dutch}{#1}{%
+ }{%
+ \DeclareTranslation{Dutch}{#1}{\tl_mixed_case:n{#5}}%
+ }
+ }
+ \__nwejm_orig_newtheorem{#1}{\protect\tl_mixed_case:n{ \protect\GetTranslation{#1} }}
+ \bool_if:NF {\g__nwejm_no_numbered_theorem_bool} {
+ \__nwejm_orig_newtheorem*{#1__nwejm_nonumbered}{\protect\tl_mixed_case:n{ \protect\GetTranslation{#1} }}
+ }
+}
+\cs_generate_variant:Nn \__nwejm_new_theorem:nnnnn { nVVVV }
+\RenewDocumentCommand \newtheorem { O{} m }
+{
+ \tl_clear:N \l__nwejm_newtheorem_style_tl
+ \tl_clear:N \l__nwejm_newtheorem_title_tl
+ \tl_clear:N \l__nwejm_newtheorem_french_title_tl
+ \tl_clear:N \l__nwejm_newtheorem_english_title_tl
+ \tl_clear:N \l__nwejm_newtheorem_german_title_tl
+ \tl_clear:N \l__nwejm_newtheorem_dutch_title_tl
+ %
+ \tl_set:Nn \l__nwejm_newtheorem_english_title_tl {
+ #2
+ }
+ \tl_set:Nf \l__nwejm_newtheorem_french_title_tl {
+ \l__nwejm_newtheorem_english_title_tl
+ }
+ \tl_set:Nf \l__nwejm_newtheorem_german_title_tl {
+ \l__nwejm_newtheorem_english_title_tl
+ }
+ \tl_set:Nf \l__nwejm_newtheorem_dutch_title_tl {
+ \l__nwejm_newtheorem_english_title_tl
+ }
+ \tl_set:Nn \l__nwejm_newtheorem_style_tl {
+ theorem
+ }
+ \__nwejm_theorem_style:n {theorem}
+ \IfNoValueF {#1}
+ {
+ \keys_set:nn { nwejm / newtheorem } { #1 }
+ \tl_if_empty:NF \l__nwejm_newtheorem_title_tl {%
+ \tl_set:Nf \l__nwejm_newtheorem_english_title_tl
+ {
+ \l__nwejm_newtheorem_title_tl
+ }
+ \tl_set:Nf \l__nwejm_newtheorem_french_title_tl
+ {
+ \l__nwejm_newtheorem_title_tl
+ }
+ \tl_set:Nf \l__nwejm_newtheorem_german_title_tl
+ {
+ \l__nwejm_newtheorem_title_tl
+ }
+ \tl_set:Nf \l__nwejm_newtheorem_dutch_title_tl
+ {
+ \l__nwejm_newtheorem_title_tl
+ }
+ }
+ }
+ %
+ \__nwejm_new_theorem:nVVVV
+ {#2}
+ {\l__nwejm_newtheorem_english_title_tl}
+ {\l__nwejm_newtheorem_french_title_tl}
+ {\l__nwejm_newtheorem_german_title_tl}
+ {\l__nwejm_newtheorem_dutch_title_tl}
+ \makesavenoteenv{#2}
+ \bool_if:NF {\g__nwejm_no_numbered_theorem_bool} {
+ \ifcsmacro{#2*}{%
+ \RenewDocumentEnvironment{#2*}{o}
+ {
+ \IfNoValueTF {##1}
+ { \begin{#2__nwejm_nonumbered} }
+ { \begin{#2__nwejm_nonumbered}[##1] }
+ }{
+ \end{#2__nwejm_nonumbered}
+ }
+ }{
+ \NewDocumentEnvironment{#2*}{o}
+ {
+ \IfNoValueTF {##1}
+ { \begin{#2__nwejm_nonumbered} }
+ { \begin{#2__nwejm_nonumbered}[##1] }
+ }{
+ \end{#2__nwejm_nonumbered}
+ }
+ }
+ }
+ \clist_put_right:Nn \g__nwejm_counters_to_be_reset_clist {#2}
+}
+\newtheorem{theorem}
+\newtheorem{corollary}
+\newtheorem{conjecture}
+\newtheorem{proposition}
+\newtheorem{lemma}
+\newtheorem{axiom}
+\newtheorem[style=definition]{definition}
+\newtheorem[style=definition]{remark}
+\newtheorem[style=definition]{example}
+\newtheorem[style=definition]{notation}
+\newtheorem[style=proof]{proof}
+\cs_new_protected:Nn \__nwejm_clone_theorem:nn
+{
+ \NewDocumentEnvironment{#1}{}
+ {
+ \begin{#2}
+ }{
+ \end{#2}
+ }
+ \NewDocumentEnvironment{#1*}{}
+ {
+ \begin{#2*}
+ }{
+ \end{#2*}
+ }
+}
+\__nwejm_clone_theorem:nn {Theorem}{theorem}
+\__nwejm_clone_theorem:nn {Corollary}{corollary}
+\__nwejm_clone_theorem:nn {Conjecture}{conjecture}
+\__nwejm_clone_theorem:nn {Proposition}{proposition}
+\__nwejm_clone_theorem:nn {Lemma}{lemma}
+\__nwejm_clone_theorem:nn {Axiom}{axiom}
+\__nwejm_clone_theorem:nn {Definition}{definition}
+\__nwejm_clone_theorem:nn {Remark}{remark}
+\__nwejm_clone_theorem:nn {Example}{example}
+\__nwejm_clone_theorem:nn {Notation}{notation}
+\__nwejm_clone_theorem:nn {Proof}{proof}
+\clist_set:Nn \l_tmpa_clist {%
+ theorem,
+ corollary,
+ conjecture,
+ proposition,
+ lemma,
+ axiom,
+ definition,
+ remark,
+ example,
+ notation,
+ proof%
+}
+\clist_map_inline:Nn \l_tmpa_clist {
+ \crefname{#1}{
+ \GetTranslation{#1}
+ }{%
+ \GetTranslation{plural-#1}
+ }
+ \Crefname{#1}{
+ \tl_mixed_case:n{ \protect
+ \GetTranslation{#1}
+ }
+ }{%
+ \tl_mixed_case:n{
+ \GetTranslation{plural-#1}
+ }
+ }
+}
+\clist_set:Nn \l_tmpa_clist {%
+ hypothesis,
+ assertion%
+}
+\clist_map_inline:Nn \l_tmpa_clist {
+ \newlist{#1}{enumerate}{1}
+ \setlist[#1]{%
+ label=
+ \normalfont
+ (
+ \textsf{
+ \tl_upper_case:n {\tl_head:f {\GetTranslation{#1}}}
+ }
+ $\c_math_subscript_token\mathsf{\arabic*}$),
+ ref=(
+ \textsf{
+ \tl_upper_case:n {\tl_head:f {\GetTranslation{#1}}}
+ }
+ $_\mathsf{\arabic*}$
+ )
+ }
+ \crefname{#1i}{
+ \GetTranslation{#1}
+ }{%
+ \GetTranslation{plural-#1}
+ }
+ \Crefname{#1i}{
+ \tl_mixed_case:n{
+ \GetTranslation{#1}
+ }
+ }{%
+ \tl_mixed_case:n{
+ \GetTranslation{plural-#1}
+ }
+ }
+}
+\NewDocumentEnvironment{hypotheses}{}
+{
+ \begin{hypothesis}
+ }{
+ \end{hypothesis}
+}
+\NewDocumentEnvironment{assertions}{}
+{
+ \begin{assertion}
+ }{
+ \end{assertion}
+}
+\RenewDocumentCommand{\DeclareMathOperator}{mm}
+{
+ \NewDocumentCommand{#1}{}
+ {
+ \operatorname{#2}
+ \peek_after:Nw \__nwejm_opx_check:
+ }
+}
+\NewDocumentCommand{\BinaryOperators}{m}
+{
+ \clist_gput_right:Nn \g__nwejm_opx_binary_clist { #1 }
+}
+\clist_new:N \g__nwejm_opx_binary_clist
+\cs_new_protected:Nn \__nwejm_opx_check:
+{
+ \clist_map_inline:Nn \g__nwejm_opx_binary_clist
+ {
+ \token_if_eq_meaning:NNT \l_peek_token ##1 { \clist_map_break:n { {\!} } }
+ }
+}
+\BinaryOperators{%
+ \amalg,%
+ \ast,%
+ \bigcirc,%
+ \bigtriangledown,%
+ \bigtriangleup,%
+ \bullet,%
+ \cap,%
+ \cdot,%
+ \circ,%
+ \cup,%
+ \dagger,%
+ \ddagger,%
+ \diamond,%
+ \div,%
+ \lhd,%
+ \mp,%
+ \odot,%
+ \ominus,%
+ \oplus,%
+ \oslash,%
+ \otimes,%
+ \pm,%
+ \rhd,%
+ \setminus,%
+ \sqcap,%
+ \sqcup,%
+ \star,%
+ \times,%
+ \triangleleft,%
+ \triangleright,%
+ \unlhd,%
+ \unrhd,%
+ \uplus,%
+ \vee,%
+ \wedge,%
+ \wr,%
+ \barwedge,%
+ \boxdot,%
+ \boxminus,%
+ \boxplus,%
+ \boxtimes,%
+ \Cap,%
+ \centerdot,%
+ \circledast,%
+ \circledcirc,%
+ \circleddash,%
+ \Cup,%
+ \curlyvee,%
+ \curlywedge,%
+ \divideontimes,%
+ \dotplus,%
+ \doublebarwedge,%
+ \intercal,%
+ \leftthreetimes,%
+ \ltimes,%
+ \rightthreetimes,%
+ \rtimes,%
+ \smallsetminus,%
+ \veebar%
+}
+\DeclareMathOperator{\cotan}{cotan}
+\DeclareMathOperator{\Arccos}{Arccos}
+\DeclareMathOperator{\Arcsin}{Arcsin}
+\DeclareMathOperator{\Arctan}{Arctan}
+\DeclareMathOperator{\arccosh}{arccosh}
+\DeclareMathOperator{\arcsinh}{arcsinh}
+\DeclareMathOperator{\arctanh}{arctanh}
+\DeclareMathOperator{\Argch}{Argch}
+\DeclareMathOperator{\Argsh}{Argsh}
+\DeclareMathOperator{\Argth}{Argth}
+\cs_set_eq:NN \__nwejm_orig_arccos \arccos
+\cs_set_eq:NN \__nwejm_orig_arcsin \arcsin
+\cs_set_eq:NN \__nwejm_orig_arctan \arctan
+\cs_set_eq:NN \__nwejm_orig_arccosh \arccosh
+\cs_set_eq:NN \__nwejm_orig_arcsinh \arcsinh
+\cs_set_eq:NN \__nwejm_orig_arctanh \arctanh
+\RenewDocumentCommand \arccos {} {
+ \ifcurrentbaselanguage{french}{\Arccos}{\__nwejm_orig_arccos}%
+}
+\RenewDocumentCommand \arcsin {} {
+ \ifcurrentbaselanguage {french}{\Arcsin}{\__nwejm_orig_arcsin}%
+}
+\RenewDocumentCommand \arctan {} {
+ \ifcurrentbaselanguage {french}{\Arctan}{\__nwejm_orig_arctan}%
+}
+\RenewDocumentCommand \arccosh {} {
+ \ifcurrentbaselanguage{french}{\Argch}{\__nwejm_orig_arccosh}%
+}
+\RenewDocumentCommand \arcsinh {} {
+ \ifcurrentbaselanguage {french}{\Argsh}{\__nwejm_orig_arcsinh}%
+}
+\RenewDocumentCommand \arctanh {} {
+ \ifcurrentbaselanguage {french}{\Argth}{\__nwejm_orig_arctanh}%
+}
+\cs_set_eq:NN \__nwejm_orig_cot \cot
+\RenewDocumentCommand \cot {} {
+ \ifcurrentbaselanguage {french}{\cotan}{\__nwejm_orig_cot}%
+}
+\DeclareMathOperator{\ch}{ch}
+\DeclareMathOperator{\sh}{sh}
+\cs_set_eq:NN \__nwejm_orig_cosh \cosh
+\cs_set_eq:NN \__nwejm_orig_sinh \sinh
+\cs_set_eq:NN \__nwejm_orig_tanh \tanh
+\RenewDocumentCommand \cosh {} {
+ \ifcurrentbaselanguage {french}{\ch}{\__nwejm_orig_cosh}%
+}
+\RenewDocumentCommand \sinh {} {
+ \ifcurrentbaselanguage {french}{\sh}{\__nwejm_orig_sinh}%
+}
+\RenewDocumentCommand \tanh {} {
+ \ifcurrentbaselanguage {french}{\operatorname{th}}{\__nwejm_orig_tanh}%
+}
+\DeclareMathOperator{\Id}{Id}
+\cs_set_eq:NN \__nwejm_orig_log \log
+\cs_set_eq:NN \__nwejm_orig_lg \lg
+\RenewDocumentCommand \log { s } {
+ \IfBooleanTF {#1}
+ {
+ \__nwejm_orig_log
+ }
+ {
+ \ln
+ }
+}
+\RenewDocumentCommand \lg { s } {
+ \IfBooleanTF {#1}
+ {
+ \__nwejm_orig_lg
+ }
+ {
+ \ln
+ }
+}
+\NewDocumentCommand \E { O{} } {
+ \ensuremath{
+ \mathsf{e}
+ \tl_if_empty:nF {#1} {^{#1}}
+ }
+}
+\NewDocumentCommand \I { } {
+ \ensuremath{\mathsf{i}}
+}
+\bool_new:N \g__nwejm_grad_used_bool
+\NewDocumentCommand \grad {} {%
+ \bool_if:NTF \g__nwejm_gradient_nabla_bool {
+ \operatorname{\nabla}
+ }{
+ \operatorname{grad}
+ }%
+ \peek_after:Nw \__nwejm_opx_check:
+ \bool_if:NTF \g__nwejm_grad_used_bool {
+ \bool_if:nT { (\g__nwejm_gradient_nabla_bool && !\g__nwejm_gradient_nabla_control_bool)
+ || ( !\g__nwejm_gradient_nabla_bool && \g__nwejm_gradient_nabla_control_bool) } {
+ \msg_error:nnn{nwejmart}{Article~setup~not~consistent}{gradient}
+ }
+ }{
+ \bool_gset_eq:NN \g__nwejm_gradient_nabla_control_bool \g__nwejm_gradient_nabla_bool
+ \bool_gset_true:N \g__nwejm_grad_used_bool
+ }
+}
+\DeclareMathOperator{\Div}{div}
+\NewDocumentCommand \curl {} {%
+ \ifcurrentbaselanguage {english}{
+ \operatorname{curl}
+ }{
+ \operatorname{rot}
+ }%
+ \peek_after:Nw \__nwejm_opx_check:
+}
+\NewDocumentCommand \supp {} {%
+ \ifcurrentbaselanguage {ngerman}{
+ \operatorname{Tr}
+ }{
+ \operatorname{supp}
+ }%
+ \peek_after:Nw \__nwejm_opx_check:
+}
+\NewDocumentCommand \dif {}{\mathop{}\!\mathrm{d}}
+\cs_set_eq:NN \__nwejm_orig_leq \leq
+\cs_set_eq:NN \__nwejm_orig_geq \geq
+\RenewDocumentCommand \le {} {%
+ \ifcurrentbaselanguage {french}{\leqslant}{\__nwejm_orig_leq}%
+}
+\RenewDocumentCommand \leq {} {%
+ \ifcurrentbaselanguage {french}{\leqslant}{\__nwejm_orig_leq}%
+}
+\RenewDocumentCommand \ge {} {%
+ \ifcurrentbaselanguage {french}{\geqslant}{\__nwejm_orig_geq}%
+}
+\RenewDocumentCommand \geq {} {%
+ \ifcurrentbaselanguage {french}{\geqslant}{\__nwejm_orig_geq}%
+}
+\NewDocumentCommand \bbN {} {\mathbb{N}}
+\NewDocumentCommand \bbZ {} {\mathbb{Z}}
+\NewDocumentCommand \bbD {} {\mathbb{D}}
+\NewDocumentCommand \bbQ {} {\mathbb{Q}}
+\NewDocumentCommand \bbR {} {\mathbb{R}}
+\NewDocumentCommand \bbC {} {\mathbb{C}}
+\NewDocumentCommand \bbK {} {\mathbb{K}}
+\cs_set_eq:NN \emptyset \varnothing
+\tl_new:N \l__nwejm_given_tl
+\tl_set:Nn \l__nwejm_given_tl {
+ \nonscript\:\delimsize\slash
+ \allowbreak
+ \nonscript\:
+ \mathopen{}
+}%
+\DeclarePairedDelimiterX\__nwejm_set[1]\{\}{%
+ #1
+}
+\NewDocumentCommand \set { m O{} } {
+ \if@display
+ \tl_if_empty:nTF {#2} {%
+ \__nwejm_set*{#1}
+ }{
+ \__nwejm_set*{#1\l__nwejm_given_tl #2}
+ }
+ \else
+ \tl_if_empty:nTF {#2} {%
+ \__nwejm_set{#1}
+ }{
+ \__nwejm_set{#1\l__nwejm_given_tl #2}
+ }
+ \fi
+}
+\DeclareDocumentCommand{\NewPairedDelimiter}{mm}
+ {
+ \__nwejm_delimiter_clear_keys: % reset to the default
+ \keys_set:nn { nwejm/delimiters } { #2 }
+ \use:x % we want to expand the values of the token variables set with the keys
+ {
+ \exp_not:n {\NewDocumentCommand{#1}{sO{}m} }
+ {
+ \exp_not:n { \IfBooleanTF{##1} }
+ {
+ \exp_not:N \__nwejm_paired_delimiter:nnnnn
+ { \exp_not:n { 0 } }
+ { \exp_not:V \l__nwejm_delimiter_left_tl }
+ { \exp_not:V \l__nwejm_delimiter_right_tl }
+ { \exp_not:n { ##3 } }
+ { \exp_not:V \l__nwejm_delimiter_subscript_tl }
+ }
+ {
+ \exp_not:N \__nwejm_paired_delimiter:nnnnn
+ { \exp_not:n { ##2 } }
+ { \exp_not:V \l__nwejm_delimiter_left_tl }
+ { \exp_not:V \l__nwejm_delimiter_right_tl }
+ { \exp_not:n { ##3 } }
+ { \exp_not:V \l__nwejm_delimiter_subscript_tl }
+ }
+ }
+ }
+ }
+\keys_define:nn { nwejm/delimiters }
+ {
+ left .tl_set:N = \l__nwejm_delimiter_left_tl,
+ right .tl_set:N = \l__nwejm_delimiter_right_tl,
+ subscript .tl_set:N = \l__nwejm_delimiter_subscript_tl,
+ }
+\cs_new_protected:Npn \__nwejm_delimiter_clear_keys:
+ {
+ \keys_set:nn { nwejm/delimiters } { left=.,right=.,subscript={} }
+ }
+\cs_new_protected:Npn \__nwejm_paired_delimiter_expand:nnnn #1 #2 #3 #4
+ {% Fix the spacing issue with \left and \right (D. Arsenau, P. Stephani and H. Oberdiek)
+ \mathopen{}
+ \mathclose\c_group_begin_token
+ \left#1
+ #3
+ \group_insert_after:N \c_group_end_token
+ \right#2
+ \tl_if_empty:nF {#4} { \c_math_subscript_token {#4} }
+ }
+\cs_new_protected:Npn \__nwejm_paired_delimiter_fixed:nnnnn #1 #2 #3 #4 #5
+ {
+ \mathopen{#1#2}#4\mathclose{#1#3}
+ \tl_if_empty:nF {#5} { \c_math_subscript_token {#5} }
+ }
+\cs_new_protected:Npn \__nwejm_paired_delimiter:nnnnn #1 #2 #3 #4 #5
+ {
+ \str_case:nnF {#1}
+ {
+ { } { \__nwejm_paired_delimiter_expand:nnnn {#2}{#3}{#4}{#5} }
+ {0} { \__nwejm_paired_delimiter_fixed:nnnnn {}{#2}{#3}{#4}{#5} }
+ {1} { \__nwejm_paired_delimiter_fixed:nnnnn { \big }{#2}{#3}{#4}{#5} }
+ {\big} { \__nwejm_paired_delimiter_fixed:nnnnn { \big }{#2}{#3}{#4}{#5} }
+ {2} { \__nwejm_paired_delimiter_fixed:nnnnn { \Big }{#2}{#3}{#4}{#5} }
+ {\Big} { \__nwejm_paired_delimiter_fixed:nnnnn { \Big }{#2}{#3}{#4}{#5} }
+ {3} { \__nwejm_paired_delimiter_fixed:nnnnn { \bigg }{#2}{#3}{#4}{#5} }
+ {\bigg} { \__nwejm_paired_delimiter_fixed:nnnnn { \bigg }{#2}{#3}{#4}{#5} }
+ {4} { \__nwejm_paired_delimiter_fixed:nnnnn { \Bigg }{#2}{#3}{#4}{#5} }
+ {\Bigg} { \__nwejm_paired_delimiter_fixed:nnnnn { \Bigg }{#2}{#3}{#4}{#5} }
+ }
+ {
+ \msg_warning:nnn{nwejmart}{Wrong~paired~delimiter's~size~parameter}{#1}
+ \__nwejm_paired_delimiter_expand:nnnn {#2}{#3}{#4}
+ }
+ }
+\NewPairedDelimiter{\norm}{
+ left=\lVert,
+ right=\rVert
+}
+\NewPairedDelimiter{\lnorm}{
+ left=\lVert,
+ right=\rVert,
+ subscript=1
+}
+\NewPairedDelimiter{\llnorm}{
+ left=\lVert,
+ right=\rVert,
+ subscript=2
+}
+\NewPairedDelimiter{\lpnorm}{
+ left=\lVert,
+ right=\rVert,
+ subscript=p
+}
+\NewPairedDelimiter{\supnorm}{
+ left=\lVert,
+ right=\rVert,
+ subscript=\infty
+}
+\NewPairedDelimiter{\abs}{
+ left=\lvert,
+ right=\rvert
+}
+\NewPairedDelimiter{\prt}{
+ left=(,
+ right=)
+}
+\NewPairedDelimiter{\brk}{
+ left=[,
+ right=]
+}
+\NewPairedDelimiter{\brc}{
+ left=\{,
+ right=\}
+}
+\NewPairedDelimiter{\lrangle}{
+ left=\langle,
+ right=\rangle
+}
+\NewPairedDelimiter{\leqgeq}{
+ left=<,
+ right=>
+}
+\AfterEndPreamble{
+ \autonum@generatePatchedReferenceCSL{vref}
+ \clist_set:Nn \l_tmpa_clist {equation,align,gather,multline,flalign}
+ \clist_map_inline:Nn \l_tmpa_clist {
+ \cs_set_eq:cc {#1*} {#1}
+ \cs_set_eq:cc {end#1*} {end#1}
+ }
+ % \msg_warning:nnn{nwejmart}{Starred~AMS~environments}{#1}
+}
+\etocsettocdepth{section}
+\@ifpackageloaded{pgfplots}{%
+ \ifcurrentbaselanguage{french}{%
+ \pgfplotsset{%
+ /pgf/number~format/.cd,
+ use~comma,
+ 1000~sep={\,},
+ min~exponent~for~1000~sep=4
+ }%
+ }{
+ }
+}
+\AtEndPreamble{%
+ \defbibheading{__nwejm_subbibliography}[\refname]{%
+ \section*{#1}
+ }%
+ \SetCiteCommand{\autocite}%
+}%
+\int_new:N \l__nwejm_section_int
+\cs_set_eq:NN \__nwejm_printbibliography \printbibliography
+\RenewDocumentCommand \printbibliography { O{} } {
+ \FloatBarrier%
+ \tl_if_empty:NF {\g__nwejm_article_acknowledgments_tl}
+ {
+ \section*{\GetTranslation{Acknowledgments}}
+ \g__nwejm_article_acknowledgments_tl
+ \tl_gclear:N \g__nwejm_article_acknowledgments_tl
+ }
+ \__nwejm_printbibliography[heading=__nwejm_subbibliography,resetnumbers,#1]
+}
+\exp_after:wN\addbibresource\exp_after:wN{\c__nwejm_issue_bib_path_string_tl}
+\ifkp@easyscsl
+\DeclareRobustCommand{\itshape}{\not@math@alphabet\itshape\mathit%
+ \ifthenelse{\equal{\f@shape}{\scdefault}}{\fontshape{scsl}}{%
+ \fontshape\itdefault}\selectfont}
+\fi
+\DeclareMathAlphabet\mathfrak{U}{euf}{m}{n}
+\SetMathAlphabet\mathfrak{bold}{U}{euf}{b}{n}
+\expandafter\def\expandafter\pdfstringdefPreHook
+\expandafter{%
+ \pdfstringdefPreHook
+ \renewcommand{\acrshort}[1]{\tl_upper_case:n {\glsentryshort{##1}}}%
+}
+\@ifpackageloaded{draftwatermark}{%
+ \SetWatermarkColor{gray!10}%
+ \SetWatermarkFontSize{30mm}%
+ \SetWatermarkText{\MakeUppercase{\c__nwejm_draftwatermark_string_tl}}%
+}{%
+}
+\pdftex_if_engine:T
+ {
+ \renewcommand{\ttdefault}{lmtt}
+ }
+\tl_new:N \g__nwejm_font_designer_text_tl%
+\cs_new_protected:Nn \__nwejm_font_designer_text:n
+{
+ \tl_gset:Nn \g__nwejm_font_designer_text_tl { #1 }
+}
+\NewDocumentCommand \fontdesignertext {m}
+{
+ \__nwejm_font_designer_text:n {#1}%
+}
+\tl_new:N \g__nwejm_printer_text_tl%
+\cs_new_protected:Nn \__nwejm_printer_text:n
+{
+ \tl_gset:Nn \g__nwejm_printer_text_tl { #1 }
+}
+\NewDocumentCommand \printertext {m}
+{
+ \__nwejm_printer_text:n {#1}%
+}
+\NewDocumentCommand \nwejm { s } {
+ \IfBooleanTF {#1}
+ {
+ \g__nwejm_nwejm_string_tl
+ }
+ {
+ \g__nwejm_nwejm_short_string_tl
+ }
+ \xspace
+}
+\AtBeginDocument{%
+ \dim_if_exist:NTF \g__nwejm_pagegrid_dim {%
+ \pagegridsetup{%
+ enable,%
+ step=\g__nwejm_pagegrid_dim%
+ }
+ }{%
+ \pagegridsetup{%
+ disable%
+ }
+ }
+ \bool_if:NTF {\g__nwejm_for_authors_bool} {
+ \thispagestyle{empty}
+ \includegraphics{gzt-logo}
+ \hfill
+ \includegraphics[height=22.5mm]{\c__nwejm_smf_logo_file_string_tl}%
+ \par
+ \vfill
+ \begin{adjustbox}{valign=c,minipage=\linewidth}
+ \Large%
+ \c__nwejm_preliminary_version_string_tl%
+ \end{adjustbox}
+ \vfill
+ \newpage
+ }{
+ \bool_if:NF {\g__nwejm_inside_pages_bool} {
+ \g__nwejm_display_frontcover_tl
+ \g__nwejm_display_inside_frontcover_tl
+ }
+ \tableofcontents
+ }
+}
+\AfterEndPreamble{%
+ \titleformat{\chapter}[block]
+ {\normalfont\centering}{}{0pt}{}
+ \titlespacing*{\chapter}{0pt}{0pt}{0pt}
+}
+\ExplSyntaxOff
+\patchcmd{\autonum@saveEnvironmentSubcommands}
+ {(0,0)\begin}
+ {(0,0)\hfuzz=\maxdimen\begin}
+ {}{}
+%%
+%% Copyright (C) 2015, 2016 by Denis Bitouze <denis.bitouze@lmpa.univ-littoral.fr>
+%%
+%% This work 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 is "maintained" (as per LPPL maintenance status) by
+%% Denis Bitouze.
+%%
+%% This work consists of the file nwejm.dtx and a Makefile.
+%% Running "make" generates the derived files README, nwejm.pdf and nwejm.cls.
+%% Running "make inst" installs the files in the user's TeX tree.
+%% Running "make install" installs the files in the local TeX tree.
+%%
+%%
+%% End of file `nwejm.cls'.
diff --git a/Master/texmf-dist/tex/latex/nwejm/nwejm.dbx b/Master/texmf-dist/tex/latex/nwejm/nwejm.dbx
new file mode 100644
index 00000000000..f1e28a4e9fa
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/nwejm/nwejm.dbx
@@ -0,0 +1,34 @@
+%%
+%% This is file `nwejm.dbx',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% nwejm.dtx (with options: `datamodel')
+%% -------:| -----------------------------------------------------------------
+%% nwejm:| Class for the journal "North-Western European Journal of Mathematics"
+%% Author:| Denis Bitouze
+%% E-mail:| denis.bitouze@lmpa.univ-littoral.fr
+%% License:| Released under the LaTeX Project Public License v1.3c or later
+%% See:| http://www.latex-project.org/lppl.txt
+%%
+%%
+%% Copyright (C) 2015, 2016 by Denis Bitouze <denis.bitouze@lmpa.univ-littoral.fr>
+%%
+%% This work 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 is "maintained" (as per LPPL maintenance status) by
+%% Denis Bitouze.
+%%
+%% This work consists of the file nwejm.dtx and a Makefile.
+%% Running "make" generates the derived files README, nwejm.pdf and nwejm.cls.
+%% Running "make inst" installs the files in the user's TeX tree.
+%% Running "make install" installs the files in the local TeX tree.
+%%
+%%
+%% End of file `nwejm.dbx'.
diff --git a/Master/texmf-dist/tex/latex/nwejm/nwejm.lbx b/Master/texmf-dist/tex/latex/nwejm/nwejm.lbx
new file mode 100644
index 00000000000..d609bd329d4
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/nwejm/nwejm.lbx
@@ -0,0 +1,42 @@
+%%
+%% This is file `nwejm.lbx',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% nwejm.dtx (with options: `languagemodel')
+%% -------:| -----------------------------------------------------------------
+%% nwejm:| Class for the journal "North-Western European Journal of Mathematics"
+%% Author:| Denis Bitouze
+%% E-mail:| denis.bitouze@lmpa.univ-littoral.fr
+%% License:| Released under the LaTeX Project Public License v1.3c or later
+%% See:| http://www.latex-project.org/lppl.txt
+%%
+ \ProvidesFile{nwejm.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}},
+ }
+%%
+%% Copyright (C) 2015, 2016 by Denis Bitouze <denis.bitouze@lmpa.univ-littoral.fr>
+%%
+%% This work 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 is "maintained" (as per LPPL maintenance status) by
+%% Denis Bitouze.
+%%
+%% This work consists of the file nwejm.dtx and a Makefile.
+%% Running "make" generates the derived files README, nwejm.pdf and nwejm.cls.
+%% Running "make inst" installs the files in the user's TeX tree.
+%% Running "make install" installs the files in the local TeX tree.
+%%
+%%
+%% End of file `nwejm.lbx'.
diff --git a/Master/texmf-dist/tex/latex/nwejm/nwejmart.cls b/Master/texmf-dist/tex/latex/nwejm/nwejmart.cls
new file mode 100644
index 00000000000..d762c18f060
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/nwejm/nwejmart.cls
@@ -0,0 +1,1937 @@
+%%
+%% This is file `nwejmart.cls',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% nwejm.dtx (with options: `class-article')
+%% -------:| -----------------------------------------------------------------
+%% nwejm:| Class for the journal "North-Western European Journal of Mathematics"
+%% Author:| Denis Bitouze
+%% E-mail:| denis.bitouze@lmpa.univ-littoral.fr
+%% License:| Released under the LaTeX Project Public License v1.3c or later
+%% See:| http://www.latex-project.org/lppl.txt
+%%
+\RequirePackage{xparse}
+\RequirePackage{l3keys2e}
+\IfFileExists{l3sort.sty}{
+ \RequirePackage{l3sort}
+}{
+}
+\RequirePackage{etoolbox}
+\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+\ProvidesExplClass
+ {nwejmart}
+ {2015/09/30}
+ {1.00}
+ {
+ Class for the journal "North-Western European Journal of Mathematics".
+ }
+\ExplSyntaxOn
+\msg_new:nnnn{nwejm}{Issue~number~needed}{Option~`#1'~needed!}
+{Please~specify~`#1=<number>', ~otherwise~`<number>'~will~be~set~to
+ ~`\int_use:N\c__nwejm_first_issue_number_int'.}%
+\msg_new:nnnn{nwejmart}{Unknown~choice}{Choice~`#3'~invalid!}
+{Please~specify~#1=#2.}%
+\msg_new:nnn{nwejmart}{Unknown~tag}{There~ isn't~ any~ affiliation~ tagged~
+ with~ `#1'.~ This~ one~ will~ be~ ignored.}%
+\msg_new:nnn{nwejmart}{Unknown~language}{The~ option~ `#1'~ you~ passed~ isn't~
+ a~ valid~ language~ name~ (only~ `english',~ `french',~ `ngerman',~ `german',~
+ `dutch'~ are~ accepted).~ `english'~ will~ be~ used~ instead.}%
+\msg_new:nnn{nwejmart}{No~keyword}{You~ haven't~ specify~ any~ keyword~ for~
+ this~ article!}%
+\msg_new:nnn{nwejmart}{No~MSC}{You~ haven't~ specify~ any~ Mathematical~
+ Subject~ Classification~ (MSC)~ for~ this~ article!}%
+\msg_new:nnn{nwejmart}{No~abstract}{You~ haven't~ specify~ any~ abstract~ for~
+ this~ article!}%
+\msg_new:nnn{nwejmart}{Starred~AMS~environments}{The~ starred~AMS~environment~
+ `#1*'~should~ be~ avoided.~ It~ will ~be ~ replaced ~ by its~ unstarred~ counterpart~ `#1'.}%
+\msg_new:nnn{
+ nwejmart
+}{Command~restricted~to~document~body~used~in~preamble}{The~command~#1
+ can~be~used~only~in~document~body~and~not~in~preamble!}%
+\msg_new:nnn{nwejmart}{Article~setup~not~consistent}{The~ article~ setup~
+ concerning~ the~ option~ `#1'~ has~ changed~ after~ its~ 1st~ use.~ Please~
+ use~ \articlesetup~ command~ just~ once,~ just~ after~ the~ beginning~ of~
+ the~ document.}%
+\msg_new:nnn{nwejmart}{Wrong~paired~delimiter's~size~parameter}{The~
+ size~parameter~specified~ (`#1')~is~ not~ allowed:~ only~ `0',~`1'~(or~
+ `\string\big'),~`2'~(or~ `\string\Big'),~`3'~(or~ `\string\big'g)~and~`4'~(or~
+ `\string\Bigg')~ are ~ allowed. ~ It~ will~ be~ ignored.}%
+\bool_new:N \g__nwejm_language_specified_bool
+\cs_new_protected:Nn \__nwejm_language:n
+{
+ \bool_gset_true:N \g__nwejm_language_specified_bool%
+ \PassOptionsToPackage{main=#1}{babel}
+ \PassOptionsToPackage{#1}{varioref}
+ \AtBeginDocument{
+ \LoadDictionaryFor{#1}{nwejm}
+ }
+ \AtEndPreamble{%
+ \FCloadlang{#1}
+ }
+ \AfterEndPreamble{%
+ \selectlanguage{#1}
+ }
+}
+\keys_define:nn { nwejm }
+{
+ 10pt .code:n = {%
+ \PassOptionsToClass{10pt}{book}
+ },%
+ 11pt .code:n = {%
+ \PassOptionsToClass{11pt}{book}
+ },%
+ 12pt .code:n = {%
+ \PassOptionsToClass{12pt}{book}
+ },%
+ english .code:n = {
+ \__nwejm_language:n {english}
+ },%
+ french .code:n = {
+ \__nwejm_language:n {french}
+ },%
+ german .code:n = {
+ \__nwejm_language:n {ngerman}
+ },%
+ ngerman .code:n = {
+ \__nwejm_language:n {ngerman}
+ },%
+ dutch .code:n = {
+ \__nwejm_language:n {dutch}
+ },%
+ % unknown .code:n = {
+ % \msg_warning:nnx{nwejmart}{Unknown~language}{\CurrentOption}
+ % \tl_gset:Nn \g__nwejm_language_tl {english}
+ % },
+ nolocaltoc .code:n = {
+ \bool_gset_true:N \g__nwejm_nolocaltoc_bool
+ },%
+}%
+\ProcessKeysOptions { nwejm }
+\LoadClass { book }
+\PassOptionsToPackage{export}{adjustbox}%
+\PassOptionsToPackage{fleqn}{mathtools}%
+\PassOptionsToPackage{french,ngerman,dutch,english,noabbrev}{cleveref}
+\bool_if:NF {\g__nwejm_language_specified_bool} {
+ \__nwejm_language:n {english}
+}
+\RequirePackage{silence}
+\WarningFilter[nwejm]{kpfonts}{With 'easyscsl' option, don't fit together}
+\WarningFilter[nwejm]{etex}{Extended allocation already in use}
+\WarningFilter[nwejm]{etoc}{package tocvsec2 detected and its modification of}
+\ActivateWarningFilters[nwejm]
+\RequirePackage[l2tabu,orthodox]{nag}
+\pdftex_if_engine:TF
+ {
+ \RequirePackage[T1]{fontenc}
+ \RequirePackage[utf8]{inputenc}
+ }{
+ \RequirePackage{fontspec}
+ }
+\RequirePackage[pagestyles]{titlesec}%
+\RequirePackage{graphicx}%
+\RequirePackage{adjustbox}%
+\RequirePackage[multiple]{footmisc}%
+\RequirePackage[svgnames]{xcolor}%
+\RequirePackage{xspace}%
+\RequirePackage[autostyle]{csquotes}%
+\RequirePackage{array}
+\RequirePackage{booktabs}
+\RequirePackage{mathtools}
+\RequirePackage[thmmarks,amsmath]{ntheorem}
+\RequirePackage{mathrsfs}
+\RequirePackage{esvect}
+\RequirePackage[noDcommand]{kpfonts}
+\RequirePackage{geometry}
+\RequirePackage{translations}%
+\RequirePackage{fmtcount}%
+\RequirePackage{babel}%
+\RequirePackage{varioref}
+\RequirePackage{tocvsec2}
+\RequirePackage{etoc}%
+\RequirePackage[babel=true]{microtype}%
+\RequirePackage[useregional]{datetime2}%
+\RequirePackage[inline]{enumitem}%
+\RequirePackage{environ}
+\RequirePackage{footnote}%
+\RequirePackage[hyperfootnotes=false,pdfencoding=unicode]{hyperref}%
+\AtBeginDocument{%
+ \hypersetup{hidelinks,hypertexnames=false}%
+}%
+\RequirePackage[all]{hypcap}
+\RequirePackage[numbered]{bookmark}%
+\RequirePackage[nowarn]{glossaries}%
+\RequirePackage{cleveref}%
+\RequirePackage{autonum}
+\RequirePackage[backend=biber,style=nwejm]{biblatex}%
+\ExecuteBibliographyOptions{defernumbers=true,dashed=false,uniquename=init,backref,safeinputenc}
+\makeglossaries
+\setglossarystyle{indexhypergroup}
+\setacronymstyle{long-sc-short}
+\glsdisablehyper
+\int_new:N \g__nwejm_articles_int
+\clist_new:N \g__nwejm_counters_to_be_reset_clist
+\int_const:Nn \c__nwejm_first_issue_number_int { 1 }
+\int_const:Nn \c__nwejm_first_issue_year_int { 2016 }
+\int_const:Nn \c__nwejm_first_issue_month_int { 1 }
+\int_const:Nn \c__nwejm_interval_in_months_int { 6 }
+\tl_const:Nn \c__nwejm_date_received_tl {received}
+\tl_const:Nn \c__nwejm_date_accepted_tl {accepted}
+\tl_const:Nn \c__nwejm_date_online_tl {online}
+\tl_const:Nn \c__nwejm_dates_separator_tl {/}
+\tl_const:Nn \c__nwejm_images_directory_string_tl {images}
+\tl_const:Nn \c__nwejm_issue_images_path_string_tl {\c__nwejm_images_directory_string_tl}
+\tl_const:Nn \c__nwejm_preliminary_version_string_tl {%
+ This~document~is~a~draft~that~lets~you~check~the~integrity~of~original~text~and
+ bibliography~of~your~article~to~appear~in~the~next~issue~of~the
+ \c__nwejm_journal_title_string_tl.~The~current~layout~may~not~be~the~final~one.%
+}
+\tl_const:Nn \c__nwejm_msc_string_tl {\textsc{msc}}
+\tl_const:Nn \c__nwejm_colon_tl {
+ \ifcurrentbaselanguage{french}{\FBcolonspace}{}:
+ % \ifundef{\Fcolonspace}{\FBcolonspace}{\Fcolonspace}:
+}
+\tl_const:Nn \c__nwejm_aside_string_tl {--}
+\tl_const:Nn \c__nwejm_draftwatermark_string_tl {draft}
+\tl_const:Nn \c__nwejm_issue_bib_file_suffix_string_tl {__nwejm}
+\tl_const:Nn \c__nwejm_issue_bib_file_string_tl {\c_job_name_tl\c__nwejm_issue_bib_file_suffix_string_tl.bib}
+\tl_const:Nn \c__nwejm_issue_bib_path_string_tl {\c__nwejm_issue_bib_file_string_tl}
+\tl_const:Nn \c__nwejm_issue_bib_key_tl {\int_use:N \g__nwejm_issue_number_int}
+\tl_const:Nn \c__nwejm_journal_short_title_string_tl {\textsc{nwejm}}
+\tl_const:Nn \c__nwejm_journal_title_string_tl {
+ North-Western~European~Journal~of~Mathematics%
+}
+\tl_const:Nn \c__nwejm_journal_front_cover_title_string_tl {
+ North-Western~European\\Journal\\of\\Mathematics%
+}
+\tl_const:Nn \c__nwejm_nwejm_class_name_tl {nwejm}
+\tl_const:Nn \c__nwejm_nwejmarticle_class_name_tl {nwejmart}
+\bool_new:N \g__nwejm_frontcover_bool
+\bool_new:N \g__nwejm_inside_frontcover_bool
+\bool_new:N \g__nwejm_inside_backcover_bool
+\bool_new:N \g__nwejm_frontmatter_bool
+\bool_new:N \g__nwejm_mainmatter_bool
+\bool_new:N \g__nwejm_backmatter_bool
+\bool_new:N \g__nwejm_backcover_bool
+\bool_new:N \g__nwejm_date_specified_bool
+\dim_const:Nn \c__nwejm_layoutheight_dim { 240mm}
+\dim_const:Nn \c__nwejm_layoutwidth_dim { 170mm}
+\dim_const:Nn \c__nwejm_printer_layoutoffset_dim { 5mm}
+\bool_if:NTF {\g__nwejm_for_printer_bool} {
+ \dim_const:Nn \c__nwejm_potential_layoutoffset_dim { \c__nwejm_printer_layoutoffset_dim}
+}{
+ \dim_const:Nn \c__nwejm_potential_layoutoffset_dim {\c_zero_dim}
+}
+\bool_if:NTF {\g__nwejm_cover_bool} {
+ \dim_const:Nn \c__nwejm_potential_bindingoffset_dim { \c__nwejm_printer_bindingoffset_dim }
+}{
+ \dim_const:Nn \c__nwejm_potential_bindingoffset_dim {\c_zero_dim}
+}
+\dim_const:Nn \c__nwejm_paperheight_dim { \c__nwejm_layoutheight_dim+2\c__nwejm_potential_layoutoffset_dim}
+\bool_if:NTF {\g__nwejm_cover_bool} {
+ \dim_const:Nn \c__nwejm_paperwidth_dim {
+ \c__nwejm_layoutwidth_dim
+ +
+ \c__nwejm_potential_layoutoffset_dim
+ +\c__nwejm_potential_bindingoffset_dim
+ }
+}{
+ \dim_const:Nn \c__nwejm_paperwidth_dim {
+ \c__nwejm_layoutwidth_dim
+ +
+ 2
+ \c__nwejm_potential_layoutoffset_dim
+ +\c__nwejm_potential_bindingoffset_dim
+ }
+}
+\dim_const:Nn \c__nwejm_topmargin_dim { 20mm}
+\dim_const:Nn \c__nwejm_topmargin_frontcover_dim {
+ \c__nwejm_topmargin_dim
+ % + 30mm
+}
+\dim_const:Nn \c__nwejm_topmargin_inside_cover_dim {
+ \c__nwejm_topmargin_dim
+ % +10mm
+}
+\dim_const:Nn \c__nwejm_topmargin_front_matter_dim {
+ \c__nwejm_topmargin_inside_cover_dim
+}
+\dim_const:Nn \c__nwejm_headsep_dim { 9.5mm}
+\dim_const:Nn \c__nwejm_headsep_frontcover_dim {
+ \c__nwejm_headsep_dim
+ % +31mm
+ % -\c__nwejm_potential_layoutoffset_dim
+}
+\dim_const:Nn \c__nwejm_headsep_inside_frontcover_dim {
+ \c__nwejm_headsep_dim
+ +7mm
+}
+\dim_const:Nn \c__nwejm_headsep_front_matter_dim {
+ \c__nwejm_headsep_inside_frontcover_dim
+}
+\dim_const:Nn \c__nwejm_headheight_dim { 5mm }
+\dim_const:Nn \c__nwejm_botmargin_dim { 30mm}
+\dim_const:Nn \c__nwejm_footskip_dim { 10mm}
+\dim_const:Nn \c__nwejm_margin_frontcover_dim { 15mm }
+\dim_const:Nn \c__nwejm_bottom_frontcover_dim { 15mm }
+\dim_const:Nn \c__nwejm_left_minipage_frontcover_dim { .4\linewidth }
+\dim_const:Nn \c__nwejm_right_minipage_frontcover_dim { .6\linewidth }
+\dim_const:Nn \c__nwejm_innermargin_dim { 23mm }
+\dim_const:Nn \c__nwejm_outermargin_dim { 30mm }
+\dim_const:Nn \c__nwejm_inside_cover_box_width_dim { 150mm }%
+\dim_const:Nn \c__nwejm_innermargin_inside_cover_dim {
+ (\c__nwejm_layoutwidth_dim - \c__nwejm_inside_cover_box_width_dim)/2
+ - \c__nwejm_potential_bindingoffset_dim
+ % + \c__nwejm_adjustmargin_dim
+}
+\dim_const:Nn \c__nwejm_outermargin_inside_cover_dim {
+ (\c__nwejm_layoutwidth_dim - \c__nwejm_inside_cover_box_width_dim)/2
+ % - \c__nwejm_adjustmargin_dim
+}
+\dim_const:Nn \c__nwejm_innermargin_backcover_dim { 10mm }
+\dim_const:Nn \c__nwejm_outermargin_backcover_dim { \c__nwejm_innermargin_backcover_dim }
+\dim_const:Nn \c__nwejm_topmargin_backcover_dim { \c__nwejm_innermargin_backcover_dim }
+\dim_const:Nn \c__nwejm_bottommargin_backcover_dim { \c__nwejm_innermargin_backcover_dim }
+\dim_const:Nn \c__nwejm_front_matter_extra_innermargin_dim { \c_zero_dim }
+\dim_const:Nn \c__nwejm_front_matter_extra_outermargin_dim { \c_zero_dim }
+\dim_const:Nn \c__nwejm_inside_cover_offset_dim { \c_zero_dim }%
+\geometry{%
+ papersize={\c__nwejm_paperwidth_dim,\c__nwejm_paperheight_dim}
+}
+\tl_const:Nn \c__nwejm_main_geometry_tl {%
+ ,layoutsize={\c__nwejm_layoutwidth_dim,\c__nwejm_layoutheight_dim}
+ ,layoutoffset=\c__nwejm_potential_layoutoffset_dim
+ ,textwidth=\c__nwejm_layoutwidth_dim*3/4
+ ,textheight=\c__nwejm_layoutheight_dim*3/4
+ % ,marginratio={4\string :6,5\string :7}
+ ,inner=\c__nwejm_innermargin_dim
+ ,headheight=\c__nwejm_headheight_dim
+ ,footskip=\c__nwejm_footskip_dim
+ %
+ % ,layoutsize={\c__nwejm_layoutwidth_dim,\c__nwejm_layoutheight_dim}
+ % ,layoutoffset=\c__nwejm_potential_layoutoffset_dim
+ % % ,bindingoffset=\c__nwejm_potential_bindingoffset_dim
+ % ,top=\c__nwejm_topmargin_dim%
+ % ,headheight=\c__nwejm_headheight_dim
+ % ,headsep=\c__nwejm_headsep_dim
+ % ,bottom=\c__nwejm_botmargin_dim
+ % ,footskip=\c__nwejm_footskip_dim
+ % ,inner=\c__nwejm_innermargin_dim
+ % ,outer=\c__nwejm_outermargin_dim
+}%
+\tl_new:N \l__nwejm_section_header_tl
+\tl_set:Nn \l__nwejm_section_header_tl {
+ \ifthesection{%
+ \thesection.~%
+ }{%
+ }
+ \sectiontitle
+}%
+\newpagestyle{__nwejm_mainmatter_ps}[]{%
+ \sethead%
+ [
+ \tl_if_exist:NT {\g__nwejm_short_title_tl}
+ {
+ \tl_if_empty:NF \g__nwejm_short_title_tl {%
+ \slshape\g__nwejm_short_title_tl
+ }
+ }
+ ]%
+ [%
+ ]%
+ [
+ \DeclareNameAlias{labelname}{giveninits-last}
+ \AtNextCitekey{\defcounter{maxnames}{2}}\citeauthor{\g__nwejm_article_bib_key_tl}
+ ]%
+ {
+ \slshape\l__nwejm_section_header_tl
+ }%
+ {%
+ }%
+ {
+ }%
+ %
+ \setfoot%
+ {}%
+ {\thepage}%
+ {}%
+}
+ \box_new:N \l__nwejm_journal_logo_box
+ \box_new:N \l__nwejm_journal_name_box
+ \AfterEndPreamble{%
+ \hbox_set:Nn \l__nwejm_journal_name_box
+ {
+ \bfseries%
+ \adjustbox{stack=l}{%
+ \c__nwejm_journal_title_string_tl
+ \mbox{}
+}
+}
+\hbox_set:Nn \l__nwejm_journal_logo_box
+{
+ \includegraphics[width=1cm]{ nwejm-logo-NB }
+}
+\hbox_set_to_wd:Nnn \l__nwejm_journal_logo_box { 1cm }
+{
+ \box_move_down:nn
+ {
+ \box_ht:N \l__nwejm_journal_logo_box / 2
+ -
+ \box_ht:N \l__nwejm_journal_name_box / 2
+ }
+ {
+ \box_use:N \l__nwejm_journal_logo_box
+ }
+}
+\box_set_ht:Nn \l__nwejm_journal_logo_box { \c_zero_dim }
+\box_set_dp:Nn \l__nwejm_journal_logo_box { \c_zero_dim }
+}
+\newpagestyle{__nwejm_article_title_ps}[]{%
+ % \widenhead{\c_zero_dim}{\c_zero_dim}
+ \sethead%
+ {
+ \box_use:N \l__nwejm_journal_name_box
+ }%
+ {%
+ }%
+ {
+ \box_use:N \l__nwejm_journal_logo_box
+ }%
+ %
+ \setfoot%
+ {}%
+ {\thepage}%
+ {}%
+}
+\def\@pnumwidth{\@tocrmarg}
+\AtBeginDocument{%
+ \graphicspath{{\c__nwejm_issue_images_path_string_tl//}{../\c__nwejm_issue_images_path_string_tl//}}
+ % \glsdisablehyper
+}
+ \AtBeginDocument{\g__nwejm_mainmatter_switch_tl}
+\int_new:N \g__nwejm_issue_number_int
+\int_new:N \g__nwejm_issue_month_int
+\int_new:N \g__nwejm_issue_year_int
+\tl_new:N \g__nwejm_frontcover_image_options_tl
+\keys_define:nn { nwejm/issuesetup }
+{
+ number .int_gset:N = \g__nwejm_issue_number_int,
+ volume .int_gset:N = \g__nwejm_issue_volume_int,
+ volume .value_required:,
+ volume .initial:n = 0,
+}
+\keys_define:nn { nwejm/dates }
+{
+ received .code:n = {
+ \tl_gset:Nn \g__nwejm_reception_date_tl {#1}
+ \bool_gset_true:N \g__nwejm_date_specified_bool
+ },
+ accepted .code:n = {
+ \tl_gset:Nn \g__nwejm_acception_date_tl {#1}
+ \bool_gset_true:N \g__nwejm_date_specified_bool
+ },
+ online .code:n = {
+ \tl_gset:Nn \g__nwejm_online_date_tl {#1}
+ \bool_gset_true:N \g__nwejm_date_specified_bool
+ },
+ received .value_required:,
+ accepted .value_required:,
+ online .value_required:,
+}
+\quark_new:N \q__nwejm
+\int_new:N \l_author_int
+\prop_new:N \g_authors_prop
+\prop_new:N \l_affiliations_tagged_prop
+\cs_generate_variant:Nn \prop_put_if_new:Nnn { NVn }
+\cs_generate_variant:Nn \prop_gput_if_new:Nnn { Nxn }
+\cs_generate_variant:Nn \prop_put_if_new:Nnn { NnV }
+\cs_new:Npn \__nwejm_prop_count:nn #1#2 { + 1 }
+\cs_new:Npn \__nwejm_prop_count:N #1
+{ \int_eval:n { 0 \prop_map_function:NN #1 \__nwejm_prop_count:nn } }
+\NewDocumentCommand \__nwejm_author_affiliation:ww { o u\q__nwejm }
+{
+ \stepcounter{footnote}
+ \prop_put_if_new:NVn \l_tmpa_prop {\the\c@footnote} {#2}
+ \IfValueT{#1}{%
+ \prop_put_if_new:NnV \l_affiliations_tagged_prop {#1} {\the\c@footnote}
+ }
+}
+\keys_define:nn { nwejm / authors }
+{
+ email .tl_gset:N = \g__nwejm_people_email_tl,
+ affiliation .code:n = {%
+ \__nwejm_author_affiliation:ww #1 \q__nwejm
+ },
+ affiliationtagged .code:n = {%
+ \prop_get:NnNTF \l_affiliations_tagged_prop {#1} \l_tmpa_tl
+ {%
+ \prop_put_if_new:NVn \l_tmpa_prop {\l_tmpa_tl} {}
+ }{
+ \msg_error:nnn{__nwejm}{Unknown~tag}{#1}
+ }
+ },
+ affiliation .value_required:,
+ affiliationtagged .value_required:,
+}
+\tl_new:N \l__nwejm_newtheorem_style_tl
+\keys_define:nn { nwejm / newtheorem }
+{
+ title .tl_set:N = \l__nwejm_newtheorem_title_tl,
+ title / french .tl_set:N = \l__nwejm_newtheorem_french_title_tl,
+ title / english .tl_set:N = \l__nwejm_newtheorem_english_title_tl,
+ title / german .tl_set:N = \l__nwejm_newtheorem_german_title_tl,
+ title / dutch .tl_set:N = \l__nwejm_newtheorem_dutch_title_tl,
+ title .value_required:,
+ title / french .value_required:,
+ title / english .value_required:,
+ title / german .value_required:,
+ title / dutch .value_required:,
+ %
+ style .choice:,
+ style / theorem .code:n = {\__nwejm_theorem_style:n {theorem}},
+ style / definition .code:n = {\__nwejm_theorem_style:n {definition}},
+ style / proof .code:n = {\__nwejm_theorem_style:n {proof}},
+ style / unknown .code:n =
+ \msg_error:nnxxx { nwejm } { Unknown~choice }
+ { style } % Name of choice key
+ { theorem~or~definition~or~proof } % Valid choices
+ { \exp_not:n {#1} } % Invalid choice given
+}
+\bool_new:N \g__nwejm_gradient_nabla_bool
+\bool_new:N \g__nwejm_gradient_nabla_control_bool
+\keys_define:nn { nwejm/articlesetup }
+{
+ gradient .choice:,
+ gradient / nabla .code:n = {\bool_gset_true:N \g__nwejm_gradient_nabla_bool},
+ gradient / grad .code:n = {\bool_gset_false:N \g__nwejm_gradient_nabla_bool},
+ gradient / unknown .code:n =
+ \msg_error:nnxxx { nwejmart } { Unknown~choice }
+ { gradient } % Name of choice key
+ { nabla~or~grad } % Valid choices
+ { \exp_not:n {#1} } % Invalid choice given
+}
+\tl_new:N \g__nwejm_nwejm_short_string_tl
+\tl_new:N \g__nwejm_nwejm_string_tl
+\tl_gset:Nn \g__nwejm_nwejm_short_string_tl {
+ \cs_if_exist:cTF {texorpdfstring}
+ {
+ \texorpdfstring{\emph{\c__nwejm_journal_short_title_string_tl}}{\c__nwejm_journal_short_title_string_tl}
+ }{%
+ \emph{\c__nwejm_journal_short_title_string_tl}
+ }%
+}
+\tl_gset:Nn \g__nwejm_nwejm_string_tl {
+ \cs_if_exist:cTF {texorpdfstring}
+ {
+ \texorpdfstring{\emph{\c__nwejm_journal_title_string_tl}}{\c__nwejm_journal_title_string_tl}
+ }{%
+ \emph{\c__nwejm_journal_title_string_tl}
+ }%
+}
+\tl_new:N \l__nwejm_pdftitle_string_tl
+\tl_new:N \l__nwejm_pdfauthor_string_tl
+\tl_set:Nn \l__nwejm_pdftile_string_tl {
+ \c__nwejm_journal_title_string_tl\space--\space{}N^^c2^^b0\int_use:N\g__nwejm_issue_number_int
+}
+\tl_set:Nn \l__nwejm_pdfauthor_string_tl {
+ \g__nwejm_nwejm_string_tl
+}
+\cs_new_protected:Nn \__nwejm_email:n
+ {
+ \href{mailto:#1}{\nolinkurl{#1}}%
+ }
+\tl_new:N \l__nwejm_crossref_tl
+\cs_new_protected:Nn \__nwejm_populate_bib_file:nn
+{
+ \int_if_exist:cF {g__nwejm_#2_int}
+ {
+ \int_new:c {g__nwejm_#2_int}
+ }
+ \int_incr:c {g__nwejm_#2_int}
+ \tl_if_in:nnTF { #2 } { author } {
+ \tl_set:Nn \l__nwejm_crossref_tl {%
+ \c__nwejm_issue_bib_key_tl
+ -art-
+ \int_use:N \g__nwejm_articles_int
+ }
+ } {
+ \tl_set:Nn \l__nwejm_crossref_tl {\c__nwejm_issue_bib_key_tl}
+ }
+ \tl_set:Nn \l__nwejm_people_first_last_name_tl {#1}
+ \iow_now:Nx \g__nwejm_bib_out_iow {%
+ @article{
+ \c__nwejm_issue_bib_key_tl -#2- \int_use:c {g__nwejm_#2_int},
+ \iow_newline:
+ author={\exp_not:V\l__nwejm_people_first_last_name_tl},
+ \iow_newline:
+ options={skipbib},
+ \iow_newline:
+ crossref = {\l__nwejm_crossref_tl}
+ \iow_newline:
+ }
+ \iow_newline:
+ }%
+}
+\cs_new_protected:Nn \__nwejm_date:nn
+{
+ \tl_if_exist:NT {#2}
+ {
+ \tl_if_empty:NF {#2}
+ {
+ \tl_if_eq:NNF {\c__nwejm_date_received_tl} {#1} { \c__nwejm_dates_separator_tl }
+ \tl_mixed_case:n { \exp_args:No \GetTranslation{#1} }
+ \c__nwejm_colon_tl\space
+ \DTMdate{#2}%
+ }
+ }
+}
+\tl_new:N \g__nwejm_display_dates_tl%
+\tl_gset:Nn \g__nwejm_display_dates_tl {%
+ \footnotesize%
+ \__nwejm_date:nn {\c__nwejm_date_received_tl}{\g__nwejm_reception_date_tl}
+ \__nwejm_date:nn {\c__nwejm_date_accepted_tl}{\g__nwejm_acception_date_tl}
+ \__nwejm_date:nn {\c__nwejm_date_online_tl} {\g__nwejm_online_date_tl}
+ \tl_gclear:N \g__nwejm_reception_date_tl
+ \tl_gclear:N \g__nwejm_acception_date_tl
+ \tl_gclear:N \g__nwejm_online_date_tl
+}
+\seq_new:N \l__nwejm_keywords_seq
+\tl_new:N \l__nwejm_keywords_tl
+\NewDocumentCommand \keywords { m } {
+ \seq_clear:N \l__nwejm_keywords_seq
+ \tl_clear:N \l__nwejm_keywords_tl
+ \seq_set_from_clist:Nn \l_tmpa_seq {#1}
+ \seq_set_map:NNn \l__nwejm_keywords_seq \l_tmpa_seq {
+ ##1
+ }
+ \tl_set:Nn \l__nwejm_keywords_tl { \seq_use:Nn \l__nwejm_keywords_seq {,~} }
+ \hypersetup{pdfkeywords=\l__nwejm_keywords_tl}
+}
+\seq_new:N \l__nwejm_msc_seq
+\tl_new:N \l__nwejm_msc_tl
+\NewDocumentCommand \msc { m } {
+ \seq_clear:N \l__nwejm_msc_seq
+ \tl_clear:N \l__nwejm_msc_tl
+ %
+ % does what the name suggests, set a sequence from the clist
+ \seq_set_from_clist:Nn \l_tmpa_seq {#1}
+ % applies final arg to each element of second seq and stores result in first seq
+ \seq_set_map:NNn \l__nwejm_msc_seq \l_tmpa_seq {
+ ##1
+ }
+ %
+ % \seq_use puts the items from the seq back in the input with ",~" as a separator
+ \tl_set:Nn \l__nwejm_msc_tl {\seq_use:Nn \l__nwejm_msc_seq {,~}}
+%%<class-article> \hypersetup{pdfmsc=\l_@@_msc_tl}
+}
+\cs_new_protected:Nn \__nwejm_command_only_in_body:n
+{
+ \cs_if_eq:NNF {\@onlypreamble} {\@notprerr} {
+ \msg_error:nnn{
+ nwejmart
+ }{Command~restricted~to~document~body~used~in~preamble}{#1}
+ }
+}
+\NewDocumentCommand \articlesetup { m } {
+ \__nwejm_command_only_in_body:n {\articlesetup}
+ \keys_set:nn { nwejm/articlesetup } {#1}
+}
+\NewDocumentCommand \dates { m } {
+ \keys_set:nn { nwejm/dates } { #1 }
+}
+\NewDocumentCommand \inputarticle { O{english} m } {%
+ \newrefsection
+ \tl_if_eq:nnTF { #1 } { german } {%
+ \selectlanguage{ngerman}
+ }{
+ \selectlanguage{#1}
+ }%
+ \tl_if_eq:nnTF { #1 } { french } {%
+ \FrenchFootnotes
+ }{%
+ \StandardFootnotes
+ }
+ \inputfrom{./}{#2}
+ \clist_put_right:Nn \g__nwejm_counters_to_be_reset_clist {
+ footnote,
+ section,
+ figure,
+ table,
+ equation
+ }
+ \clist_map_inline:Nn \g__nwejm_counters_to_be_reset_clist {
+ \@ifundefined{c@##1}{
+ }{
+ \setcounter{##1}{\c_zero}
+ }
+ }
+ \glsresetall
+ \selectlanguage{english}
+}
+\AtBeginDocument{%
+\tl_new:N \g__nwejm_bib_issue_date_tl
+\tl_gset:Nn
+\g__nwejm_bib_issue_date_tl {
+ \int_use:N \g__nwejm_issue_year_int -
+ \int_compare:nNnT {\g__nwejm_issue_month_int}<{10}
+ {
+ 0
+ }
+ \int_use:N \g__nwejm_issue_month_int
+}
+ \iow_now:Nx \g__nwejm_bib_out_iow {%
+ @periodical{\c__nwejm_issue_bib_key_tl,\iow_newline:
+ issuetitle = {\exp_not:f\c__nwejm_journal_title_string_tl},\iow_newline:
+ date = {\g__nwejm_bib_issue_date_tl},\iow_newline:
+ number = \int_use:N \g__nwejm_issue_number_int,\iow_newline:
+ % issn = {\l__nwejm_journal_issn_tl},\iow_newline:
+ options = {skipbib}\iow_newline:
+ }
+ \iow_newline:
+ }%
+}
+\tl_new:N \g__nwejm_title_tl
+\RenewDocumentCommand \title { o m } {
+ \cleardoublepage
+ \int_gincr:N \g__nwejm_articles_int
+ \tl_gclear:N \g__nwejm_short_title_tl
+ \tl_gclear:N \g__nwejm_short_subtitle_tl
+ %
+ \IfNoValueF {#1}
+ {
+ \tl_gset:Nn \g__nwejm_short_title_tl {#1}
+ }
+ \tl_gset:Nn \g__nwejm_title_tl {#2}
+ \tl_if_empty:NT \g__nwejm_short_title_tl {%
+ \tl_gset_eq:NN \g__nwejm_short_title_tl \g__nwejm_title_tl
+ }
+}
+\tl_new:N \g__nwejm_subtitle_tl
+\NewDocumentCommand \subtitle { o m } {
+ \IfNoValueF {#1}
+ {
+ \tl_gset:Nn \g__nwejm_short_subtitle_tl {#1}
+ }
+ \tl_gset:Nn \g__nwejm_subtitle_tl {#2}
+ \tl_if_empty:NT \g__nwejm_short_subtitle_tl {%
+ \tl_gset_eq:NN \g__nwejm_short_subtitle_tl \g__nwejm_subtitle_tl
+ }
+}
+\RenewDocumentCommand \author { O{} m } {
+ \cleardoublepage
+ \int_incr:N \l_author_int
+ \prop_gput_if_new:Nxn \g_authors_prop {author_\int_use:c {l_author_int}} {#2}
+ \IfNoValueF {#1}
+ {
+ \keys_set:nn { nwejm/authors } { #1 }
+ }
+ \prop_set_eq:cN {l_author_ \int_use:c {l_author_int} _affiliations_prop} \l_tmpa_prop
+ \prop_clear:N \l_tmpa_prop
+ \__nwejm_populate_bib_file:nn {#2}{author-art-\int_use:N \g__nwejm_articles_int}
+ \tl_if_empty:NTF \l__nwejm_people_first_last_names_tl {%
+ \tl_put_right:Nn
+ \l__nwejm_people_first_last_names_tl
+ {#2}
+ }{
+ \tl_put_right:Nn
+ \l__nwejm_people_first_last_names_tl
+ {~and~#2}
+ }
+}
+\iow_new:N \g__nwejm_bib_out_iow
+\ior_new:N \g__nwejm_bib_out_ior
+\tl_new:N \g__nwejm_bib_out_tl
+\file_if_exist:nTF { \c__nwejm_issue_bib_path_string_tl }
+{
+ \ior_open:Nn \g__nwejm_bib_out_ior { \c__nwejm_issue_bib_path_string_tl }
+ \ior_str_map_inline:Nn \g__nwejm_bib_out_ior
+ { \tl_gput_right:Nn \g__nwejm_bib_out_tl {#1 \par } }
+ \ior_close:N \g__nwejm_bib_out_ior
+}{
+ \typeout{no file! rerun}
+}
+\iow_open:Nn \g__nwejm_bib_out_iow { \c__nwejm_issue_bib_path_string_tl }
+\tl_new:N \g__nwejm_abstract_body_tl
+\NewDocumentEnvironment{abstract}{}
+ {\CollectAbstract}
+ {\endCollectAbstract}
+\NewEnviron{CollectAbstract}
+ {
+ \tl_gset_eq:NN \g__nwejm_abstract_body_tl \BODY
+ }
+\tl_new:N \g__nwejm_frontmatter_switch_tl%
+\tl_gset:Nn \g__nwejm_frontmatter_switch_tl {
+ \bool_gset_true:N \g__nwejm_frontmatter_bool
+ \frontmatter
+ \pagestyle{__nwejm_frontmatter_ps}%
+ \exp_after:wN\newgeometry\exp_after:wN{\c__nwejm_main_geometry_tl}%
+}
+\tl_new:N \g__nwejm_mainmatter_switch_tl%
+\tl_gset:Nn \g__nwejm_mainmatter_switch_tl {
+ \bool_gset_false:N \g__nwejm_frontmatter_bool
+ \bool_gset_true:N \g__nwejm_mainmatter_bool
+ \mainmatter
+ % \SetParskip{\c__nwejm_mainmatter_parskip_skip}
+ \pagestyle{__nwejm_mainmatter_ps}%
+ \exp_after:wN\newgeometry\exp_after:wN{\c__nwejm_main_geometry_tl}%
+}
+\tl_new:N \g__nwejm_article_acknowledgments_tl%
+\cs_new_protected:Nn \__nwejm_article_acknowledgments:n
+{
+ \tl_gset:Nn \g__nwejm_article_acknowledgments_tl { #1 }
+}
+\NewDocumentCommand \acknowledgments { m } {
+ \__nwejm_article_acknowledgments:n {#1}
+}
+\tl_new:N \g__nwejm_article_bib_key_tl%
+\tl_new:N \l__nwejm_people_first_last_names_tl
+\tl_new:N \g__nwejm_authors_first_last_names_tl%
+\tl_new:N \g__nwejm_citeauthor_no_giveninits%
+\tl_new:N \g__nwejm_citeauthor_tl%
+\int_new:N \g__nwejm_author_s_number_current_article_int%
+\cs_new_protected:Nn \__nwejm_citeauthor_no_giveninits:n {%
+ \tl_gset:Nn \g__nwejm_citeauthor_tl {%
+ \DeclareNameAlias{labelname}{default}%
+ \group_begin:
+ \togglefalse{blx@giveninits}%
+ \citeauthor{#1}
+ \group_end:
+ }%
+ \cs_if_exist:cTF {texorpdfstring}
+ {
+ \texorpdfstring{\g__nwejm_citeauthor_tl}{}
+ }{%
+ \g__nwejm_citeauthor_tl
+ }%
+}
+\cs_set_eq:NN \__nwejm_orig_multinamedelim \multinamedelim
+\cs_set_eq:NN \__nwejm_orig_finalnamedelim \finalnamedelim
+\cs_new_protected:Nn \__nwejm_maketitle_citeauthor:n
+{
+ \restorecommand\mkbibnamelast
+ \def\multinamedelim {\hskip 1em \@plus.17fil}%
+ \cs_set_eq:NN \finalnamedelim \multinamedelim
+ \AtNextCitekey{\defcounter{maxnames}{100}}
+ \group_begin:
+ \DeclareNameAlias{labelname}{default}%
+ \togglefalse{blx@giveninits}%
+ \citeauthor{#1}
+ \group_end:
+ \cs_set_eq:NN \multinamedelim \__nwejm_orig_multinamedelim
+ \cs_set_eq:NN \finalnamedelim \__nwejm_orig_finalnamedelim
+ \protected\def\mkbibnamelast#1{%
+ \textsc{\textnohyphenation{#1}}}%
+}
+\cs_new_protected:Nn \__nwejm_display_author:n
+{
+ \seq_clear:N \l_tmpa_seq
+ \prop_get:NnN \g_authors_prop {author_#1} \l_tmpa_tl
+ \prop_map_inline:cn {l_author_ #1 _affiliations_prop} {
+ \seq_put_right:Nx \l_tmpa_seq { ##1 }
+ }
+ \seq_sort:Nn \l_tmpa_seq
+ {
+ \int_compare:nNnTF { ##1 } > { ##2 }
+ { \sort_reversed: }
+ { \sort_ordered: }
+ }
+ \mbox{%
+ \__nwejm_citeauthor_no_giveninits:n {\c__nwejm_issue_bib_key_tl -author-art- \int_use:N \g__nwejm_articles_int-#1}
+ }
+ \seq_map_inline:Nn \l_tmpa_seq {
+ \prop_get:cnN {l_author_ #1 _affiliations_prop} {##1} \l_tmpb_tl
+ \footnotemark[##1]
+ \tl_if_empty:NF \l_tmpb_tl
+ {
+ \footnotetext[##1]{\l_tmpb_tl}
+ }
+ }
+ \hskip 1em plus .17fil
+}
+\tl_new:N \l__nwejm_bullet_and_rule_tl
+\tl_new:N \l__nwejm_authors_box_tl
+\tl_new:N \l__nwejm_abstract_box_tl
+\tl_new:N \l__nwejm_bullet_and_rule_odd_tl
+\tl_new:N \l__nwejm_bullet_and_rule_even_tl
+\tl_new:N \l__nwejm_title_box_tl
+\tl_new:N \g__nwejm_title_for_toc_tl
+\RenewDocumentCommand \maketitle { } {
+\tl_gset:Nn \g__nwejm_article_bib_key_tl {%
+ \c__nwejm_issue_bib_key_tl
+ -art-
+ \int_use:N \g__nwejm_articles_int
+}
+\tl_if_empty:NF \g__nwejm_title_tl {%
+ \iow_now:Nx \g__nwejm_bib_out_iow {%
+ @article{
+ \g__nwejm_article_bib_key_tl,
+ \iow_newline:
+ title={\exp_not:V\g__nwejm_title_tl},
+ \iow_newline:
+ \tl_if_empty:NF \g__nwejm_subtitle_tl {%
+ subtitle={\exp_not:V\g__nwejm_subtitle_tl},
+ \iow_newline:
+ }
+ \tl_if_eq:NNF { \g__nwejm_short_title_tl } { \g__nwejm_title_tl } {%
+ shorttitle={\exp_not:V\g__nwejm_short_title_tl},
+ \iow_newline:
+ }%
+ \tl_if_empty:NF \l__nwejm_people_first_last_names_tl
+ {
+ author={\exp_not:V\l__nwejm_people_first_last_names_tl},
+ \iow_newline:
+ }
+ options={skipbib},
+ \iow_newline:
+ crossref = {\c__nwejm_issue_bib_key_tl}
+ }
+ \iow_newline:
+ }%
+ % \tl_clear:N \l__nwejm_people_first_last_names_tl
+}%
+\tl_set:Nn \l__nwejm_authors_box_tl
+{%
+ \bool_if:nTF { \tl_if_empty_p:N \l__nwejm_people_first_last_names_tl }
+ {
+ \mbox{}
+ }
+ {
+ \int_set:Nn \l_tmpa_int { \__nwejm_prop_count:N \g_authors_prop}
+ \normalsize%
+ \int_step_inline:nnnn {1}{1}{\l_tmpa_int} {
+ \__nwejm_display_author:n {##1}
+ }
+ \prop_gclear:N \g_authors_prop
+ }
+}
+\int_zero:N \l_author_int
+\prop_clear:N \l_affiliations_tagged_prop
+\tl_set:Nn \l__nwejm_dates_box_tl
+{%
+ \g__nwejm_display_dates_tl
+}
+\tl_set:Nn \l__nwejm_keywords_box_tl
+{%
+ \noindent
+ {
+ \bfseries
+ \tl_mixed_case:n{
+ \GetTranslation{plural-keyword}
+ \c__nwejm_colon_tl
+ }
+ }
+ \space\l__nwejm_keywords_tl.
+}
+\tl_set:Nn \l__nwejm_msc_box_tl
+{%
+ \noindent\textbf{\c__nwejm_msc_string_tl}\c__nwejm_colon_tl\space\l__nwejm_msc_tl.
+}
+\tl_set:Nn \l__nwejm_abstract_box_tl
+{%
+ \mbox{}
+ \par%
+ \vskip .5em%
+ \tl_if_empty:NTF \g__nwejm_abstract_body_tl
+ {%
+ \msg_warning:nn{nwejmart}{No~abstract}
+ }%
+ {%
+ \small
+ \begin{center}%
+ {\bfseries \abstractname\vspace{-.5em}\vspace{\z@}}%
+ \end{center}%
+ \begin{quotation}
+ \g__nwejm_abstract_body_tl
+ \end{quotation}
+ }
+}%
+\tl_set:Nn \g__nwejm_partial_title_for_toc_tl
+{
+ \tl_if_empty:NTF \g__nwejm_short_title_tl {%
+ \g__nwejm_title_tl%
+ }{
+ \g__nwejm_short_title_tl%
+ }
+ \bool_if:nF { \tl_if_empty_p:N \g__nwejm_short_subtitle_tl }
+ {
+ .\space\g__nwejm_short_subtitle_tl
+ }
+}
+ \hypersetup{pdftitle=\g__nwejm_partial_title_for_toc_tl}
+\tl_set:Nn \g__nwejm_title_for_toc_tl
+{
+ \g__nwejm_partial_title_for_toc_tl
+ \bool_if:nF { \tl_if_empty_p:N \l__nwejm_people_first_last_names_tl }
+ {
+ \textsl{
+ \cs_if_exist:cTF {texorpdfstring}
+ {
+ \texorpdfstring{%
+ \AtNextCitekey{\defcounter{maxnames}{100}}
+ \space\textendash\space\citeauthor{\g__nwejm_article_bib_key_tl}
+ }{}
+ }{%
+ \space\textendash\space\citeauthor{\g__nwejm_article_bib_key_tl}
+ }%
+ }
+ }
+}
+ \setsecnumdepth{none}
+ \bookmarksetup{depth=-2}
+ \chapter[\g__nwejm_title_for_toc_tl]{%
+ \LARGE%
+ \g__nwejm_title_tl
+ \tl_if_empty:NF \g__nwejm_subtitle_tl {%
+ \\[1ex]%
+ \Large%
+ \g__nwejm_subtitle_tl
+ }\\[2ex]%
+ \l__nwejm_authors_box_tl%
+ \bool_if:NT {\g__nwejm_date_specified_bool}
+ {
+ \\[2ex]
+ \l__nwejm_dates_box_tl
+ }
+ \\[-4ex]
+ }
+ \bool_gset_false:N \g__nwejm_date_specified_bool
+ \bookmarksetup{depth=subsection}
+ \setsecnumdepth{subsection}
+ \thispagestyle{__nwejm_article_title_ps}%
+\l__nwejm_abstract_box_tl%
+\normalsize
+\tl_if_empty:NTF \l__nwejm_keywords_tl {
+ \msg_warning:nn{nwejmart}{No~keyword}
+}{
+ \l__nwejm_keywords_box_tl
+ \par%
+ \vskip .5em%
+}
+\tl_if_empty:NTF \l__nwejm_msc_tl {
+ \msg_warning:nn{nwejmart}{No~MSC}
+}{
+ \l__nwejm_msc_box_tl
+ \par%
+ \vskip .5em%
+}
+ \hypersetup{pdfauthor=\l__nwejm_people_first_last_names_tl}
+\tl_gclear:N \g__nwejm_title_tl
+\tl_gclear:N \g__nwejm_subtitle_tl
+\tl_gclear:N \g__nwejm_title_for_toc_tl
+\tl_gclear:N \g__nwejm_abstract_body_tl
+ \tl_gclear:N \g__nwejm_people_affiliation_tl
+ \tl_gclear:N \g__nwejm_people_email_tl
+ \tl_clear:N \l__nwejm_people_first_last_names_tl%
+}
+\DeclarePlainStyle{^^c2^^ab~}{~^^c2^^bb}{`}{'}
+\setcounter{topnumber}{3}
+\renewcommand{\topfraction}{0.8}
+\addtolength{\skip\footins}{.25\baselineskip}
+\setlength{\columnsep}{7mm}%
+\renewcommand{\thesection}{\arabic{section}}%
+\@ifpackageloaded{siunitx}{%
+ \addto\extrasenglish{\sisetup{locale = UK}}
+ \addto\extrasfrench{\sisetup{locale = FR}}
+ \addto\extrasngerman{\sisetup{locale = DE}}
+ \addto\extrasgerman{\sisetup{locale = DE}}
+ \addto\extrasdutch{%
+ \sisetup{%
+ exponent-product = \ensuremath { \times } ,
+ inter-unit-product = \, ,
+ output-decimal-marker = { , }
+ }%
+ }
+ \sisetup{detect-all}
+}
+\cs_set_eq:NN \__nwejm_section \section
+\cs_set_eq:NN \__nwejm_subsection \subsection
+\cs_set_eq:NN \__nwejm_subsubsection \subsubsection
+\AfterPreamble{%
+ \RenewDocumentCommand \section { s o m } {%
+ \IfBooleanTF {#1}
+ {
+ \setsecnumdepth{none}%
+ }
+ {
+ \resetsecnumdepth*%
+ }
+ \IfNoValueTF{#2}{\__nwejm_section{#3}}{\__nwejm_section[#2]{#3}}
+ }
+ \RenewDocumentCommand \subsection { s o m } {%
+ \IfBooleanT {#1}
+ {
+ \setsecnumdepth{none}%
+ }
+ \IfNoValueTF{#2}{\__nwejm_subsection{#3}}{\__nwejm_subsection[#2]{#3}}
+ }
+ \RenewDocumentCommand \subsubsection { s o m } {%
+ \IfBooleanT {#1}
+ {
+ \setsecnumdepth{none}%
+ }
+ \IfNoValueTF{#2}{\__nwejm_subsubsection{#3}}{\__nwejm_subsubsection[#2]{#3}}
+ }
+}
+\int_new:N \l__nwejm_abs_int
+\cs_new_protected:Nn \__nwejm_ordinalnum_suffix:n
+{
+ \int_set:Nn \l__nwejm_abs_int {\int_abs:n {#1}}
+ \ifcurrentbaselanguage{english}{
+ \int_use:N \l__nwejm_abs_int
+ \int_set:Nn \l_tmpa_int {\int_mod:nn {\l__nwejm_abs_int} {\c_one_hundred}}
+ \int_case:nnF
+ { \l_tmpa_int }
+ {
+ { \c_eleven } { \fmtord{th} }
+ { \c_twelve } { \fmtord{th} }
+ { \c_thirteen } { \fmtord{th} }
+ }{
+ \int_set:Nn \l_tmpb_int {\int_mod:nn {\l__nwejm_abs_int} {\c_ten}}
+ \int_case:nnF
+ { \l_tmpb_int }
+ {
+ { \c_zero } { \fmtord{th} }
+ { \c_one } { \fmtord{st} }
+ { \c_two } { \fmtord{nd} }
+ { \c_three } { \fmtord{rd} }
+ }{
+ \fmtord{th}
+ }
+ }
+ }{
+ \ifcurrentbaselanguage{dutch}{
+ \int_use:N \l__nwejm_abs_int
+ e
+ }{
+ \textsc{\int_to_roman:n {\int_abs:n {#1}}}
+ \ifcurrentbaselanguage{french}{
+ \int_compare:nNnTF { \l__nwejm_abs_int } = { 1 }{\fmtord{er}}{\fmtord{e}}
+ }{
+ \ifcurrentbaselanguage{german}{
+ .
+ }{
+ \ifcurrentbaselanguage{ngerman}{
+ .
+ }{
+ }
+ }
+ }
+ }
+ }
+}
+\cs_new_protected:Nn \__nwejm_century_suffix:n
+{
+ \space{}
+ \GetTranslation{century}%
+ \int_compare:nNnT { #1 } < { 0 }{
+ \space
+ \GetTranslation{before-christ}
+ }{
+ }
+}
+\NewDocumentCommand \century { s m } {%
+ \__nwejm_ordinalnum_suffix:n {#2}%
+ \IfBooleanTF {#1}
+ {
+ \int_compare:nNnT { #2 } < { 0 }{
+ \__nwejm_century_suffix:n {#2}%
+ }
+ }{
+ \__nwejm_century_suffix:n {#2}%
+ }
+ \int_compare:nNnT { #2 } < { 0 }{
+ \ifcurrentbaselanguage{english}{%
+ }{
+ \@ifnextchar.%
+ {
+ }{
+ .\xspace
+ }%
+ }
+ }
+}
+\NewDocumentCommand \aside { s m } {%
+ \IfBooleanTF {#1}
+ {
+ \c__nwejm_aside_string_tl{}~#2
+ }
+ {
+ \c__nwejm_aside_string_tl{}~#2~\c__nwejm_aside_string_tl
+ }
+}
+\NewDocumentCommand \ie { s } {%
+ \IfBooleanTF {#1}
+ {
+ \GetTranslation{idest}
+ }
+ {
+ \GetTranslation{ie}
+ \@ifnextchar.%
+ {
+ }{
+ .\xspace
+ }%
+ }
+}
+\NewDocumentCommand \Ie { s } {%
+ \IfBooleanTF {#1}
+ {
+ \GetTranslation{Idest}
+ }
+ {
+ \GetTranslation{Ie}
+ \@ifnextchar.%
+ {
+ }{
+ .\xspace
+ }%
+ }
+}
+\RenewDocumentCommand \vec { m } {
+ \vv{#1}
+}
+\bool_new:N \g__nwejm_no_numbered_theorem_bool
+\cs_new_protected:Nn \__nwejm_theorem_style:n
+{
+ \bool_gset_false:N \g__nwejm_no_numbered_theorem_bool
+ \str_case:nn
+ { #1 }
+ {
+ { theorem } {
+ \theoremstyle{plain}
+ \theoremheaderfont{\normalfont\bfseries}
+ \theorembodyfont{\itshape}
+ \theoremseparator{~--}
+ \theoremsymbol{}
+ }
+ { definition } {
+ \theoremstyle{plain}
+ \theoremheaderfont{\normalfont\bfseries}
+ \theorembodyfont{\normalfont}
+ \theoremseparator{~--}
+ \theoremsymbol{}
+ }
+ { proof } {
+ \theoremstyle{nonumberplain}
+ \bool_gset_true:N \g__nwejm_no_numbered_theorem_bool
+ \theoremheaderfont{\normalfont\itshape}
+ \theorembodyfont{\normalfont}
+ \theoremseparator{.}
+ \theoremsymbol{\ensuremath{\square}}
+ }
+ }
+}
+\cs_set_eq:NN \__nwejm_orig_newtheorem \newtheorem
+\cs_new_protected:Nn \__nwejm_new_theorem:nnnnn
+{
+ \AtBeginDocument{%
+ \IfTranslation{English}{#1}{%
+ }{%
+ \DeclareTranslation{English}{#1}{\tl_mixed_case:n{#2}}%
+ }
+ \IfTranslation{French}{#1}{%
+ }{%
+ \DeclareTranslation{French}{#1}{\tl_mixed_case:n{#3}}%
+ }
+ \IfTranslation{German}{#1}{%
+ }{%
+ \DeclareTranslation{German}{#1}{\tl_mixed_case:n{#4}}%
+ }
+ \IfTranslation{Dutch}{#1}{%
+ }{%
+ \DeclareTranslation{Dutch}{#1}{\tl_mixed_case:n{#5}}%
+ }
+ }
+ \__nwejm_orig_newtheorem{#1}{\protect\tl_mixed_case:n{ \protect\GetTranslation{#1} }}
+ \bool_if:NF {\g__nwejm_no_numbered_theorem_bool} {
+ \__nwejm_orig_newtheorem*{#1__nwejm_nonumbered}{\protect\tl_mixed_case:n{ \protect\GetTranslation{#1} }}
+ }
+}
+\cs_generate_variant:Nn \__nwejm_new_theorem:nnnnn { nVVVV }
+\RenewDocumentCommand \newtheorem { O{} m }
+{
+ \tl_clear:N \l__nwejm_newtheorem_style_tl
+ \tl_clear:N \l__nwejm_newtheorem_title_tl
+ \tl_clear:N \l__nwejm_newtheorem_french_title_tl
+ \tl_clear:N \l__nwejm_newtheorem_english_title_tl
+ \tl_clear:N \l__nwejm_newtheorem_german_title_tl
+ \tl_clear:N \l__nwejm_newtheorem_dutch_title_tl
+ %
+ \tl_set:Nn \l__nwejm_newtheorem_english_title_tl {
+ #2
+ }
+ \tl_set:Nf \l__nwejm_newtheorem_french_title_tl {
+ \l__nwejm_newtheorem_english_title_tl
+ }
+ \tl_set:Nf \l__nwejm_newtheorem_german_title_tl {
+ \l__nwejm_newtheorem_english_title_tl
+ }
+ \tl_set:Nf \l__nwejm_newtheorem_dutch_title_tl {
+ \l__nwejm_newtheorem_english_title_tl
+ }
+ \tl_set:Nn \l__nwejm_newtheorem_style_tl {
+ theorem
+ }
+ \__nwejm_theorem_style:n {theorem}
+ \IfNoValueF {#1}
+ {
+ \keys_set:nn { nwejm / newtheorem } { #1 }
+ \tl_if_empty:NF \l__nwejm_newtheorem_title_tl {%
+ \tl_set:Nf \l__nwejm_newtheorem_english_title_tl
+ {
+ \l__nwejm_newtheorem_title_tl
+ }
+ \tl_set:Nf \l__nwejm_newtheorem_french_title_tl
+ {
+ \l__nwejm_newtheorem_title_tl
+ }
+ \tl_set:Nf \l__nwejm_newtheorem_german_title_tl
+ {
+ \l__nwejm_newtheorem_title_tl
+ }
+ \tl_set:Nf \l__nwejm_newtheorem_dutch_title_tl
+ {
+ \l__nwejm_newtheorem_title_tl
+ }
+ }
+ }
+ %
+ \__nwejm_new_theorem:nVVVV
+ {#2}
+ {\l__nwejm_newtheorem_english_title_tl}
+ {\l__nwejm_newtheorem_french_title_tl}
+ {\l__nwejm_newtheorem_german_title_tl}
+ {\l__nwejm_newtheorem_dutch_title_tl}
+ \makesavenoteenv{#2}
+ \bool_if:NF {\g__nwejm_no_numbered_theorem_bool} {
+ \ifcsmacro{#2*}{%
+ \RenewDocumentEnvironment{#2*}{o}
+ {
+ \IfNoValueTF {##1}
+ { \begin{#2__nwejm_nonumbered} }
+ { \begin{#2__nwejm_nonumbered}[##1] }
+ }{
+ \end{#2__nwejm_nonumbered}
+ }
+ }{
+ \NewDocumentEnvironment{#2*}{o}
+ {
+ \IfNoValueTF {##1}
+ { \begin{#2__nwejm_nonumbered} }
+ { \begin{#2__nwejm_nonumbered}[##1] }
+ }{
+ \end{#2__nwejm_nonumbered}
+ }
+ }
+ }
+ \clist_put_right:Nn \g__nwejm_counters_to_be_reset_clist {#2}
+}
+\newtheorem{theorem}
+\newtheorem{corollary}
+\newtheorem{conjecture}
+\newtheorem{proposition}
+\newtheorem{lemma}
+\newtheorem{axiom}
+\newtheorem[style=definition]{definition}
+\newtheorem[style=definition]{remark}
+\newtheorem[style=definition]{example}
+\newtheorem[style=definition]{notation}
+\newtheorem[style=proof]{proof}
+\cs_new_protected:Nn \__nwejm_clone_theorem:nn
+{
+ \NewDocumentEnvironment{#1}{}
+ {
+ \begin{#2}
+ }{
+ \end{#2}
+ }
+ \NewDocumentEnvironment{#1*}{}
+ {
+ \begin{#2*}
+ }{
+ \end{#2*}
+ }
+}
+\__nwejm_clone_theorem:nn {Theorem}{theorem}
+\__nwejm_clone_theorem:nn {Corollary}{corollary}
+\__nwejm_clone_theorem:nn {Conjecture}{conjecture}
+\__nwejm_clone_theorem:nn {Proposition}{proposition}
+\__nwejm_clone_theorem:nn {Lemma}{lemma}
+\__nwejm_clone_theorem:nn {Axiom}{axiom}
+\__nwejm_clone_theorem:nn {Definition}{definition}
+\__nwejm_clone_theorem:nn {Remark}{remark}
+\__nwejm_clone_theorem:nn {Example}{example}
+\__nwejm_clone_theorem:nn {Notation}{notation}
+\__nwejm_clone_theorem:nn {Proof}{proof}
+\clist_set:Nn \l_tmpa_clist {%
+ theorem,
+ corollary,
+ conjecture,
+ proposition,
+ lemma,
+ axiom,
+ definition,
+ remark,
+ example,
+ notation,
+ proof%
+}
+\clist_map_inline:Nn \l_tmpa_clist {
+ \crefname{#1}{
+ \GetTranslation{#1}
+ }{%
+ \GetTranslation{plural-#1}
+ }
+ \Crefname{#1}{
+ \tl_mixed_case:n{ \protect
+ \GetTranslation{#1}
+ }
+ }{%
+ \tl_mixed_case:n{
+ \GetTranslation{plural-#1}
+ }
+ }
+}
+\clist_set:Nn \l_tmpa_clist {%
+ hypothesis,
+ assertion%
+}
+\clist_map_inline:Nn \l_tmpa_clist {
+ \newlist{#1}{enumerate}{1}
+ \setlist[#1]{%
+ label=
+ \normalfont
+ (
+ \textsf{
+ \tl_upper_case:n {\tl_head:f {\GetTranslation{#1}}}
+ }
+ $\c_math_subscript_token\mathsf{\arabic*}$),
+ ref=(
+ \textsf{
+ \tl_upper_case:n {\tl_head:f {\GetTranslation{#1}}}
+ }
+ $_\mathsf{\arabic*}$
+ )
+ }
+ \crefname{#1i}{
+ \GetTranslation{#1}
+ }{%
+ \GetTranslation{plural-#1}
+ }
+ \Crefname{#1i}{
+ \tl_mixed_case:n{
+ \GetTranslation{#1}
+ }
+ }{%
+ \tl_mixed_case:n{
+ \GetTranslation{plural-#1}
+ }
+ }
+}
+\NewDocumentEnvironment{hypotheses}{}
+{
+ \begin{hypothesis}
+ }{
+ \end{hypothesis}
+}
+\NewDocumentEnvironment{assertions}{}
+{
+ \begin{assertion}
+ }{
+ \end{assertion}
+}
+\RenewDocumentCommand{\DeclareMathOperator}{mm}
+{
+ \NewDocumentCommand{#1}{}
+ {
+ \operatorname{#2}
+ \peek_after:Nw \__nwejm_opx_check:
+ }
+}
+\NewDocumentCommand{\BinaryOperators}{m}
+{
+ \clist_gput_right:Nn \g__nwejm_opx_binary_clist { #1 }
+}
+\clist_new:N \g__nwejm_opx_binary_clist
+\cs_new_protected:Nn \__nwejm_opx_check:
+{
+ \clist_map_inline:Nn \g__nwejm_opx_binary_clist
+ {
+ \token_if_eq_meaning:NNT \l_peek_token ##1 { \clist_map_break:n { {\!} } }
+ }
+}
+\BinaryOperators{%
+ \amalg,%
+ \ast,%
+ \bigcirc,%
+ \bigtriangledown,%
+ \bigtriangleup,%
+ \bullet,%
+ \cap,%
+ \cdot,%
+ \circ,%
+ \cup,%
+ \dagger,%
+ \ddagger,%
+ \diamond,%
+ \div,%
+ \lhd,%
+ \mp,%
+ \odot,%
+ \ominus,%
+ \oplus,%
+ \oslash,%
+ \otimes,%
+ \pm,%
+ \rhd,%
+ \setminus,%
+ \sqcap,%
+ \sqcup,%
+ \star,%
+ \times,%
+ \triangleleft,%
+ \triangleright,%
+ \unlhd,%
+ \unrhd,%
+ \uplus,%
+ \vee,%
+ \wedge,%
+ \wr,%
+ \barwedge,%
+ \boxdot,%
+ \boxminus,%
+ \boxplus,%
+ \boxtimes,%
+ \Cap,%
+ \centerdot,%
+ \circledast,%
+ \circledcirc,%
+ \circleddash,%
+ \Cup,%
+ \curlyvee,%
+ \curlywedge,%
+ \divideontimes,%
+ \dotplus,%
+ \doublebarwedge,%
+ \intercal,%
+ \leftthreetimes,%
+ \ltimes,%
+ \rightthreetimes,%
+ \rtimes,%
+ \smallsetminus,%
+ \veebar%
+}
+\DeclareMathOperator{\cotan}{cotan}
+\DeclareMathOperator{\Arccos}{Arccos}
+\DeclareMathOperator{\Arcsin}{Arcsin}
+\DeclareMathOperator{\Arctan}{Arctan}
+\DeclareMathOperator{\arccosh}{arccosh}
+\DeclareMathOperator{\arcsinh}{arcsinh}
+\DeclareMathOperator{\arctanh}{arctanh}
+\DeclareMathOperator{\Argch}{Argch}
+\DeclareMathOperator{\Argsh}{Argsh}
+\DeclareMathOperator{\Argth}{Argth}
+\cs_set_eq:NN \__nwejm_orig_arccos \arccos
+\cs_set_eq:NN \__nwejm_orig_arcsin \arcsin
+\cs_set_eq:NN \__nwejm_orig_arctan \arctan
+\cs_set_eq:NN \__nwejm_orig_arccosh \arccosh
+\cs_set_eq:NN \__nwejm_orig_arcsinh \arcsinh
+\cs_set_eq:NN \__nwejm_orig_arctanh \arctanh
+\RenewDocumentCommand \arccos {} {
+ \ifcurrentbaselanguage{french}{\Arccos}{\__nwejm_orig_arccos}%
+}
+\RenewDocumentCommand \arcsin {} {
+ \ifcurrentbaselanguage {french}{\Arcsin}{\__nwejm_orig_arcsin}%
+}
+\RenewDocumentCommand \arctan {} {
+ \ifcurrentbaselanguage {french}{\Arctan}{\__nwejm_orig_arctan}%
+}
+\RenewDocumentCommand \arccosh {} {
+ \ifcurrentbaselanguage{french}{\Argch}{\__nwejm_orig_arccosh}%
+}
+\RenewDocumentCommand \arcsinh {} {
+ \ifcurrentbaselanguage {french}{\Argsh}{\__nwejm_orig_arcsinh}%
+}
+\RenewDocumentCommand \arctanh {} {
+ \ifcurrentbaselanguage {french}{\Argth}{\__nwejm_orig_arctanh}%
+}
+\cs_set_eq:NN \__nwejm_orig_cot \cot
+\RenewDocumentCommand \cot {} {
+ \ifcurrentbaselanguage {french}{\cotan}{\__nwejm_orig_cot}%
+}
+\DeclareMathOperator{\ch}{ch}
+\DeclareMathOperator{\sh}{sh}
+\cs_set_eq:NN \__nwejm_orig_cosh \cosh
+\cs_set_eq:NN \__nwejm_orig_sinh \sinh
+\cs_set_eq:NN \__nwejm_orig_tanh \tanh
+\RenewDocumentCommand \cosh {} {
+ \ifcurrentbaselanguage {french}{\ch}{\__nwejm_orig_cosh}%
+}
+\RenewDocumentCommand \sinh {} {
+ \ifcurrentbaselanguage {french}{\sh}{\__nwejm_orig_sinh}%
+}
+\RenewDocumentCommand \tanh {} {
+ \ifcurrentbaselanguage {french}{\operatorname{th}}{\__nwejm_orig_tanh}%
+}
+\DeclareMathOperator{\Id}{Id}
+\cs_set_eq:NN \__nwejm_orig_log \log
+\cs_set_eq:NN \__nwejm_orig_lg \lg
+\RenewDocumentCommand \log { s } {
+ \IfBooleanTF {#1}
+ {
+ \__nwejm_orig_log
+ }
+ {
+ \ln
+ }
+}
+\RenewDocumentCommand \lg { s } {
+ \IfBooleanTF {#1}
+ {
+ \__nwejm_orig_lg
+ }
+ {
+ \ln
+ }
+}
+\NewDocumentCommand \E { O{} } {
+ \ensuremath{
+ \mathsf{e}
+ \tl_if_empty:nF {#1} {^{#1}}
+ }
+}
+\NewDocumentCommand \I { } {
+ \ensuremath{\mathsf{i}}
+}
+\bool_new:N \g__nwejm_grad_used_bool
+\NewDocumentCommand \grad {} {%
+ \bool_if:NTF \g__nwejm_gradient_nabla_bool {
+ \operatorname{\nabla}
+ }{
+ \operatorname{grad}
+ }%
+ \peek_after:Nw \__nwejm_opx_check:
+ \bool_if:NTF \g__nwejm_grad_used_bool {
+ \bool_if:nT { (\g__nwejm_gradient_nabla_bool && !\g__nwejm_gradient_nabla_control_bool)
+ || ( !\g__nwejm_gradient_nabla_bool && \g__nwejm_gradient_nabla_control_bool) } {
+ \msg_error:nnn{nwejmart}{Article~setup~not~consistent}{gradient}
+ }
+ }{
+ \bool_gset_eq:NN \g__nwejm_gradient_nabla_control_bool \g__nwejm_gradient_nabla_bool
+ \bool_gset_true:N \g__nwejm_grad_used_bool
+ }
+}
+\DeclareMathOperator{\Div}{div}
+\NewDocumentCommand \curl {} {%
+ \ifcurrentbaselanguage {english}{
+ \operatorname{curl}
+ }{
+ \operatorname{rot}
+ }%
+ \peek_after:Nw \__nwejm_opx_check:
+}
+\NewDocumentCommand \supp {} {%
+ \ifcurrentbaselanguage {ngerman}{
+ \operatorname{Tr}
+ }{
+ \operatorname{supp}
+ }%
+ \peek_after:Nw \__nwejm_opx_check:
+}
+\NewDocumentCommand \dif {}{\mathop{}\!\mathrm{d}}
+\cs_set_eq:NN \__nwejm_orig_leq \leq
+\cs_set_eq:NN \__nwejm_orig_geq \geq
+\RenewDocumentCommand \le {} {%
+ \ifcurrentbaselanguage {french}{\leqslant}{\__nwejm_orig_leq}%
+}
+\RenewDocumentCommand \leq {} {%
+ \ifcurrentbaselanguage {french}{\leqslant}{\__nwejm_orig_leq}%
+}
+\RenewDocumentCommand \ge {} {%
+ \ifcurrentbaselanguage {french}{\geqslant}{\__nwejm_orig_geq}%
+}
+\RenewDocumentCommand \geq {} {%
+ \ifcurrentbaselanguage {french}{\geqslant}{\__nwejm_orig_geq}%
+}
+\NewDocumentCommand \bbN {} {\mathbb{N}}
+\NewDocumentCommand \bbZ {} {\mathbb{Z}}
+\NewDocumentCommand \bbD {} {\mathbb{D}}
+\NewDocumentCommand \bbQ {} {\mathbb{Q}}
+\NewDocumentCommand \bbR {} {\mathbb{R}}
+\NewDocumentCommand \bbC {} {\mathbb{C}}
+\NewDocumentCommand \bbK {} {\mathbb{K}}
+\cs_set_eq:NN \emptyset \varnothing
+\tl_new:N \l__nwejm_given_tl
+\tl_set:Nn \l__nwejm_given_tl {
+ \nonscript\:\delimsize\slash
+ \allowbreak
+ \nonscript\:
+ \mathopen{}
+}%
+\DeclarePairedDelimiterX\__nwejm_set[1]\{\}{%
+ #1
+}
+\NewDocumentCommand \set { m O{} } {
+ \if@display
+ \tl_if_empty:nTF {#2} {%
+ \__nwejm_set*{#1}
+ }{
+ \__nwejm_set*{#1\l__nwejm_given_tl #2}
+ }
+ \else
+ \tl_if_empty:nTF {#2} {%
+ \__nwejm_set{#1}
+ }{
+ \__nwejm_set{#1\l__nwejm_given_tl #2}
+ }
+ \fi
+}
+\DeclareDocumentCommand{\NewPairedDelimiter}{mm}
+ {
+ \__nwejm_delimiter_clear_keys: % reset to the default
+ \keys_set:nn { nwejm/delimiters } { #2 }
+ \use:x % we want to expand the values of the token variables set with the keys
+ {
+ \exp_not:n {\NewDocumentCommand{#1}{sO{}m} }
+ {
+ \exp_not:n { \IfBooleanTF{##1} }
+ {
+ \exp_not:N \__nwejm_paired_delimiter:nnnnn
+ { \exp_not:n { 0 } }
+ { \exp_not:V \l__nwejm_delimiter_left_tl }
+ { \exp_not:V \l__nwejm_delimiter_right_tl }
+ { \exp_not:n { ##3 } }
+ { \exp_not:V \l__nwejm_delimiter_subscript_tl }
+ }
+ {
+ \exp_not:N \__nwejm_paired_delimiter:nnnnn
+ { \exp_not:n { ##2 } }
+ { \exp_not:V \l__nwejm_delimiter_left_tl }
+ { \exp_not:V \l__nwejm_delimiter_right_tl }
+ { \exp_not:n { ##3 } }
+ { \exp_not:V \l__nwejm_delimiter_subscript_tl }
+ }
+ }
+ }
+ }
+\keys_define:nn { nwejm/delimiters }
+ {
+ left .tl_set:N = \l__nwejm_delimiter_left_tl,
+ right .tl_set:N = \l__nwejm_delimiter_right_tl,
+ subscript .tl_set:N = \l__nwejm_delimiter_subscript_tl,
+ }
+\cs_new_protected:Npn \__nwejm_delimiter_clear_keys:
+ {
+ \keys_set:nn { nwejm/delimiters } { left=.,right=.,subscript={} }
+ }
+\cs_new_protected:Npn \__nwejm_paired_delimiter_expand:nnnn #1 #2 #3 #4
+ {% Fix the spacing issue with \left and \right (D. Arsenau, P. Stephani and H. Oberdiek)
+ \mathopen{}
+ \mathclose\c_group_begin_token
+ \left#1
+ #3
+ \group_insert_after:N \c_group_end_token
+ \right#2
+ \tl_if_empty:nF {#4} { \c_math_subscript_token {#4} }
+ }
+\cs_new_protected:Npn \__nwejm_paired_delimiter_fixed:nnnnn #1 #2 #3 #4 #5
+ {
+ \mathopen{#1#2}#4\mathclose{#1#3}
+ \tl_if_empty:nF {#5} { \c_math_subscript_token {#5} }
+ }
+\cs_new_protected:Npn \__nwejm_paired_delimiter:nnnnn #1 #2 #3 #4 #5
+ {
+ \str_case:nnF {#1}
+ {
+ { } { \__nwejm_paired_delimiter_expand:nnnn {#2}{#3}{#4}{#5} }
+ {0} { \__nwejm_paired_delimiter_fixed:nnnnn {}{#2}{#3}{#4}{#5} }
+ {1} { \__nwejm_paired_delimiter_fixed:nnnnn { \big }{#2}{#3}{#4}{#5} }
+ {\big} { \__nwejm_paired_delimiter_fixed:nnnnn { \big }{#2}{#3}{#4}{#5} }
+ {2} { \__nwejm_paired_delimiter_fixed:nnnnn { \Big }{#2}{#3}{#4}{#5} }
+ {\Big} { \__nwejm_paired_delimiter_fixed:nnnnn { \Big }{#2}{#3}{#4}{#5} }
+ {3} { \__nwejm_paired_delimiter_fixed:nnnnn { \bigg }{#2}{#3}{#4}{#5} }
+ {\bigg} { \__nwejm_paired_delimiter_fixed:nnnnn { \bigg }{#2}{#3}{#4}{#5} }
+ {4} { \__nwejm_paired_delimiter_fixed:nnnnn { \Bigg }{#2}{#3}{#4}{#5} }
+ {\Bigg} { \__nwejm_paired_delimiter_fixed:nnnnn { \Bigg }{#2}{#3}{#4}{#5} }
+ }
+ {
+ \msg_warning:nnn{nwejmart}{Wrong~paired~delimiter's~size~parameter}{#1}
+ \__nwejm_paired_delimiter_expand:nnnn {#2}{#3}{#4}
+ }
+ }
+\NewPairedDelimiter{\norm}{
+ left=\lVert,
+ right=\rVert
+}
+\NewPairedDelimiter{\lnorm}{
+ left=\lVert,
+ right=\rVert,
+ subscript=1
+}
+\NewPairedDelimiter{\llnorm}{
+ left=\lVert,
+ right=\rVert,
+ subscript=2
+}
+\NewPairedDelimiter{\lpnorm}{
+ left=\lVert,
+ right=\rVert,
+ subscript=p
+}
+\NewPairedDelimiter{\supnorm}{
+ left=\lVert,
+ right=\rVert,
+ subscript=\infty
+}
+\NewPairedDelimiter{\abs}{
+ left=\lvert,
+ right=\rvert
+}
+\NewPairedDelimiter{\prt}{
+ left=(,
+ right=)
+}
+\NewPairedDelimiter{\brk}{
+ left=[,
+ right=]
+}
+\NewPairedDelimiter{\brc}{
+ left=\{,
+ right=\}
+}
+\NewPairedDelimiter{\lrangle}{
+ left=\langle,
+ right=\rangle
+}
+\NewPairedDelimiter{\leqgeq}{
+ left=<,
+ right=>
+}
+\AfterEndPreamble{
+ \autonum@generatePatchedReferenceCSL{vref}
+ \clist_set:Nn \l_tmpa_clist {equation,align,gather,multline,flalign}
+ \clist_map_inline:Nn \l_tmpa_clist {
+ \cs_set_eq:cc {#1*} {#1}
+ \cs_set_eq:cc {end#1*} {end#1}
+ }
+ % \msg_warning:nnn{nwejmart}{Starred~AMS~environments}{#1}
+}
+\etocsettocdepth{subsection}
+\@ifpackageloaded{pgfplots}{%
+ \ifcurrentbaselanguage{french}{%
+ \pgfplotsset{%
+ /pgf/number~format/.cd,
+ use~comma,
+ 1000~sep={\,},
+ min~exponent~for~1000~sep=4
+ }%
+ }{
+ }
+}
+\AtEndPreamble{%
+ \defbibheading{__nwejm_subbibliography}[\refname]{%
+ \section*{#1}
+ }%
+ \SetCiteCommand{\autocite}%
+}%
+\int_new:N \l__nwejm_section_int
+\cs_set_eq:NN \__nwejm_printbibliography \printbibliography
+\RenewDocumentCommand \printbibliography { O{} } {
+ \tl_if_empty:NF {\g__nwejm_article_acknowledgments_tl}
+ {
+ \section*{\GetTranslation{Acknowledgments}}
+ \g__nwejm_article_acknowledgments_tl
+ \tl_gclear:N \g__nwejm_article_acknowledgments_tl
+ }
+ \__nwejm_printbibliography[heading=__nwejm_subbibliography,resetnumbers,#1]
+ \bool_if:NF \g__nwejm_nolocaltoc_bool {
+ \newpage
+ \setcounter{page}{0}
+ \pagenumbering{roman}%
+ \etocarticlestylenomarks
+ \etocsetlevel{chapter}{6}
+ \tableofcontents
+ }
+}
+\exp_after:wN\addbibresource\exp_after:wN{\c__nwejm_issue_bib_path_string_tl}
+\ifkp@easyscsl
+\DeclareRobustCommand{\itshape}{\not@math@alphabet\itshape\mathit%
+ \ifthenelse{\equal{\f@shape}{\scdefault}}{\fontshape{scsl}}{%
+ \fontshape\itdefault}\selectfont}
+\fi
+\DeclareMathAlphabet\mathfrak{U}{euf}{m}{n}
+\SetMathAlphabet\mathfrak{bold}{U}{euf}{b}{n}
+\expandafter\def\expandafter\pdfstringdefPreHook
+\expandafter{%
+ \pdfstringdefPreHook
+ \renewcommand{\acrshort}[1]{\tl_upper_case:n {\glsentryshort{##1}}}%
+}
+\@ifpackageloaded{draftwatermark}{%
+ \SetWatermarkColor{gray!10}%
+ \SetWatermarkFontSize{30mm}%
+ \SetWatermarkText{\MakeUppercase{\c__nwejm_draftwatermark_string_tl}}%
+}{%
+}
+\pdftex_if_engine:T
+ {
+ \renewcommand{\ttdefault}{lmtt}
+ }
+\tl_new:N \g__nwejm_font_designer_text_tl%
+\cs_new_protected:Nn \__nwejm_font_designer_text:n
+{
+ \tl_gset:Nn \g__nwejm_font_designer_text_tl { #1 }
+}
+\NewDocumentCommand \fontdesignertext {m}
+{
+ \__nwejm_font_designer_text:n {#1}%
+}
+\tl_new:N \g__nwejm_printer_text_tl%
+\cs_new_protected:Nn \__nwejm_printer_text:n
+{
+ \tl_gset:Nn \g__nwejm_printer_text_tl { #1 }
+}
+\NewDocumentCommand \printertext {m}
+{
+ \__nwejm_printer_text:n {#1}%
+}
+\NewDocumentCommand \nwejm { s } {
+ \IfBooleanTF {#1}
+ {
+ \g__nwejm_nwejm_string_tl
+ }
+ {
+ \g__nwejm_nwejm_short_string_tl
+ }
+ \xspace
+}
+\AfterEndPreamble{%
+ \titleformat{\chapter}[block]
+ {\normalfont\centering}{}{0pt}{}
+ \titlespacing*{\chapter}{0pt}{0pt}{0pt}
+}
+\ExplSyntaxOff
+\patchcmd{\autonum@saveEnvironmentSubcommands}
+ {(0,0)\begin}
+ {(0,0)\hfuzz=\maxdimen\begin}
+ {}{}
+%%
+%% Copyright (C) 2015, 2016 by Denis Bitouze <denis.bitouze@lmpa.univ-littoral.fr>
+%%
+%% This work 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 is "maintained" (as per LPPL maintenance status) by
+%% Denis Bitouze.
+%%
+%% This work consists of the file nwejm.dtx and a Makefile.
+%% Running "make" generates the derived files README, nwejm.pdf and nwejm.cls.
+%% Running "make inst" installs the files in the user's TeX tree.
+%% Running "make install" installs the files in the local TeX tree.
+%%
+%%
+%% End of file `nwejmart.cls'.
diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds
index 5f6a55f878b..db406071b46 100755
--- a/Master/tlpkg/libexec/ctan2tds
+++ b/Master/tlpkg/libexec/ctan2tds
@@ -1269,6 +1269,7 @@ chomp ($Build = `cd $Master/../Build/source && pwd`);
'musixtnt' => '&POSTmusixtnt',
'niceframe' => '&POST_rmsymlink',
'numericplots' => '&POSTnumericplots',
+ 'nwejm' => '&POSTnwejm',
'pas-cv' => '&POSTpas_vc',
'pedigree-perl' => '&POSTpedigreeperl',
'pgfornament' => '&POSTpgfornament',
@@ -1622,7 +1623,7 @@ $standardtex='\.(.bx|4ht|cfg|clo|cls|cmap|def|code\.tex|fd|fontspec|ldf|sty)$';
'msg', '-msg\.tex|' . $standardtex,
'msu-thesis', 'gb4e-compat\.tex|' . $standardtex,
'multirow', '^..[^s].*\.sty', # not miscdoc.sty
- 'musixtex', 'NULL', # leave musixdoc.sty
+ 'musixtex', 'NULL', # not musixdoc.sty
'musixtnt', 'musixtnt.tex',
'mycv', 'mycv.*\.tex|' . $standardtex,
'mylatexformat', '.*\.ltx',
@@ -1633,12 +1634,12 @@ $standardtex='\.(.bx|4ht|cfg|clo|cls|cmap|def|code\.tex|fd|fontspec|ldf|sty)$';
'notes', '[^s]\.(eps|pdf|png)|' . $standardtex, # not notes.pdf
'ntheorem', '\.sty|\.std',
'nucleardata', '\.(csv|hd|pytxcode)|' . $standardtex,
- 'nwejm', '\.(.bx|sty|[^c]\.cfg|cls|def|trsl)$', # omit ltxdoc.cfg
+ 'nwejm', '[^c]\.cfg$|\.(.bx|sty|cls|trsl)$', # not ltxdoc.cfg
'ocgx', 'tikz.*\.code\.tex|' . $standardtex,
'odsfile', '\.lua|' . $standardtex,
'ofs', '^ofs\.tex|ofsdef\.tex|ofs-.*\.tex|\.sty|a.*\.tex|.*fn\.tex',
- 'pageslts', '\.sty|[^c]\.cfg', # omit ltxdoc.cfg, would be system-wide
- 'papermas', '\.sty|[^c]\.cfg', # omit ltxdoc.cfg, would be system-wide
+ 'pageslts', '\.sty|[^c]\.cfg', # not ltxdoc.cfg
+ 'papermas', '\.sty|[^c]\.cfg', # not ltxdoc.cfg, would be system-wide
'passivetex', '\.xmt|' . $standardtex,
'patch', '\.tex',
'pdf-trans', 'pdf-trans.tex',
@@ -2356,6 +2357,7 @@ my $core_latex = "$Master/texmf-dist/tex/latex";
'minitoc' => 'latex', # requires interaction and 1000q instead of 10q
'mylatexformat'=> 'tex',
'nameauth' => 'pdflatex-preserve-pdf',
+ 'nwejm' => 'tex',
'nomentbl' => 'latex -translate-file=empty.tcx', # no 8-bit
'pbsheet' => 'latex', # requires interaction
'thumb' => 'latex -translate-file=empty.tcx', # no 8-bit
@@ -5906,6 +5908,11 @@ sub POSTnumericplots {
&SYSTEM ("$MV latex $DEST/tex/latex/$package");
}
+sub POSTnwejm {
+ print "POST$package - mv images subdir\n";
+ &SYSTEM ("$MV images $DEST/tex/latex/$package");
+}
+
sub POSTpas_vc {
print "POST$package - mv latex subdir, doc files\n";
&SYSTEM ("$MV latex $DEST/tex/latex/$package");
diff --git a/Master/tlpkg/tlpsrc/collection-publishers.tlpsrc b/Master/tlpkg/tlpsrc/collection-publishers.tlpsrc
index 583c5e9e003..7a5b2815067 100644
--- a/Master/tlpkg/tlpsrc/collection-publishers.tlpsrc
+++ b/Master/tlpkg/tlpsrc/collection-publishers.tlpsrc
@@ -85,6 +85,7 @@ depend mynsfc
depend nature
depend nddiss
depend ndsu-thesis
+depend nwejm
depend nih
depend nihbiosketch
depend nostarch
diff --git a/Master/tlpkg/tlpsrc/nwejm.tlpsrc b/Master/tlpkg/tlpsrc/nwejm.tlpsrc
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/Master/tlpkg/tlpsrc/nwejm.tlpsrc