\documentclass[English,Chinese,French,allowbf,puretext]{lebhart}

%%================================
%% Import toolkit
%%================================
\usepackage{ProjLib}
\usepackage{longtable}  % breakable tables
\usepackage{hologo}     % more TeX logo
\usepackage{multicol}
\setlength{\columnsep}{2em}
\setlength{\columnseprule}{.75pt}
\def\columnseprulecolor{\color{gray!55}}

\UseLanguage{French}

%%================================
%% For typesetting code
%%================================
\usepackage{listings}
\definecolor{lightergray}{gray}{0.99}
\lstset{language=[LaTeX]TeX,
    keywordstyle=\color{maintheme},
    basicstyle=\ttfamily,
    commentstyle=\color{forestgreen}\ttfamily,
    stringstyle=\rmfamily,
    showstringspaces=false,
    breaklines=true,
    frame=lines,
    backgroundcolor=\color{lightergray},
    flexiblecolumns=true,
    escapeinside={(*}{*)},
    % numbers=left,
    numberstyle=\scriptsize, stepnumber=1, numbersep=5pt,
    % firstnumber=last,
}
\providecommand{\meta}[1]{$\langle${\normalfont\itshape#1}$\rangle$}
\lstset{moretexcs=%
    {color,NameTheorem,CreateTheorem,proofideanameCN,proofideanameEN,proofideanameFR,cref,dnf,needgraph,UseLanguage,UseOtherLanguage,AddLanguageSetting,maketitle,address,curraddr,email,keywords,subjclass,thanks,dedicatory,PLdate,PJLdate,ProjLib,
    mathfrak,mf,frak,mfA,mathbb,bb,N,Z,Q,R,C,F,A,mathcal,mc,cal,mathscr,ms,scr,
    abs,norm,injection,surjection,bijection,legendre,tlegendre,dlegendre,pmod
    }
}
\lstnewenvironment{code}%
{\setkeys{lst}{columns=fullflexible,keepspaces=true}}{}
\lstnewenvironment{code*}%
{\setkeys{lst}{numbers=left,columns=fullflexible,keepspaces=true}}{}

%%================================
%% tip
%%================================
\newenvironment{tip}[1][Astuce]{%
    \begin{tcolorbox}[breakable,
        enhanced,
        width = \textwidth,
        colback = paper, colbacktitle = paper,
        colframe = gray!50, boxrule=0.2mm,
        coltitle = black,
        fonttitle = \sffamily,
        attach boxed title to top left = {yshift=-\tcboxedtitleheight/2, xshift=.5cm},
        boxed title style = {boxrule=0pt, colframe=paper},
        before skip = 0.3cm,
        after skip = 0.3cm,
        top = 3mm,
        bottom = 3mm,
        title={\scshape\sffamily #1}]%
}{\end{tcolorbox}}

%%================================
%% Names
%%================================
\providecommand{\ProjLibPackage}{\mbox{\textsf{ProjLib}}}
\providecommand{\PJLtoolkit}{\mbox{\textsf{PJLtoolkit}}}
\providecommand{\PJLauthor}{\mbox{\textsf{PJLauthor}}}
\providecommand{\PJLdatePackage}{\mbox{\textsf{PJLdate}}}
\providecommand{\PJLdraft}{\mbox{\textsf{PJLdraft}}}
\providecommand{\PJLlang}{\mbox{\textsf{PJLlang}}}
\providecommand{\PJLlogo}{\mbox{\textsf{PJLlogo}}}
\providecommand{\PJLmath}{\mbox{\textsf{PJLmath}}}
\providecommand{\PJLpaper}{\mbox{\textsf{PJLpaper}}}
\providecommand{\PJLthm}{\mbox{\textsf{PJLthm}}}

%%================================
%% Main text
%%================================
\begin{document}

\title{La boîte à outils~\,\ProjLib{}\\[.3\baselineskip]\normalsize Manuel d'utilisation}
\author{Jinwen XU}
\thanks{Correspondant à : \texttt{\ProjLib{}~2021/07/30}}
\email{\href{mailto:ProjLib@outlook.com}{ProjLib@outlook.com}}
\date{Juillet 2021, à Pékin}

\maketitle

\begin{abstract}
    La boîte à outils \ProjLib{} est conçue pour simplifier la préparation avant d'écrire des documents \LaTeX{}. Avec le package \ProjLibPackage{} ajouté, vous n'avez plus besoin de créer des environnements de type théorème, ni de configurer les paramètres multilingues. De plus, une série de fonctionnalités auxiliaires sont introduites.
\end{abstract}

\begin{multicols}{2}
    \small
    \tableofcontents
\end{multicols}

\medskip

\section*{Avant de commencer}
\addcontentsline{toc}{section}{Avant de commencer}

Pour utiliser la boîte à outils, vous devez :
\begin{itemize}
      \item installer TeX Live ou MikTeX de la dernière version possible, et vous assurer que \texttt{projlib} est correctement installé dans votre système \TeX{}.
      \item être familiarisé avec l'utilisation de base de \LaTeX{}, et savoir comment compiler vos documents avec \hologo{pdfLaTeX}, \hologo{XeLaTeX} ou \hologo{LuaLaTeX}.
\end{itemize}

\section{Introduction}

Le nom \ProjLib{} peut être considéré comme l'abréviation de \emph{Project Library} en anglais ou de \emph{Projet Libre} en français (l'auteur préfère l'interprétation française). Son objectif principal est de fournir un support multilingue et des environnements de type théorème avec des références intelligentes. De plus, certaines fonctionnalités supplémentaires sont fournies, telles que le bloc auteur amélioré, les marques de brouillon, les symboles mathématiques et les raccourcis, etc.

La boîte à outils \ProjLib{} est composée du package principal \ProjLibPackage{} et d'une série de composants dont les noms commencent par l'abréviation «~PJL~». Vous pouvez apprendre à l'utiliser à travers les exemples d'utilisation dans la section suivante.

\section{Exemple d'utilisation}

\subsection{Comment l'ajouter}

Ajoutez simplement la ligne suivante à votre préambule :

\begin{code}
   \usepackage{ProjLib}
\end{code}

\begin{tip}[Attention]
     Comme \textsf{cleveref} est utilisé en interne, \ProjLibPackage{} doit être placé après \textsf{varioref} et \textsf{hyperref}.
\end{tip}

\medskip
\subsection{Exemple - Un document complet}

Regardons d'abord un document complet.

\begin{code*}
\documentclass{article}
\usepackage[a4paper,margin=.75in]{geometry}
\usepackage[hidelinks]{hyperref}
\usepackage[palatino]{ProjLib} % Load the toolkit and use font Palatino

\UseLanguage{French} % Use French from here

\begin{document}

\title{(*\meta{title}*)}
\author{(*\meta{author}*)}
\date{\PLdate{2022-04-01}}

\maketitle

\begin{abstract}
    (*\meta{abstract text}*) \dnf<(*\meta{some hint}*)>
\end{abstract}

\section{Un théorème}

\begin{theorem}\label{thm:abc}
    Ceci est un théorème.
\end{theorem}

Référence du théorème: \cref{thm:abc} % It is recommended to use clever reference

\end{document}
\end{code*}

\bigskip

Si vous trouvez cela un peu compliqué, ne vous inquiétez pas. Examinons maintenant cet exemple pièce par pièce.

\clearpage
\subsubsection{Initialisation}

\begin{code}
\documentclass{article}
\usepackage[a4paper,margin=.75in]{geometry}
\usepackage[hidelinks]{hyperref}
\usepackage[palatino]{ProjLib}
\end{code}

Dans les classes standard, il suffit généralement de configurer la taille de la page, les liens hypertexte et d'ajouter \ProjLibPackage{} avant de commencer à écrire le document. L'option de police \texttt{palatino} de \ProjLibPackage{} est utilisée ici. Pour toutes les options disponibles de \ProjLibPackage{}, veuillez vous référer à la section suivante.

Bien sûr, vous pouvez également utiliser la classe de document \textsf{amsart}, les configurations sont les mêmes.

\subsubsection{Choisir la langue}

\begin{code}
\UseLanguage{French}
\end{code}

Cette ligne indique que le français sera utilisé dans le document (d'ailleurs, si seul l'anglais apparaît dans votre article, alors il n'est pas nécessaire de choisir la langue). Vous pouvez également changer de langue de la même manière plus tard au milieu du texte. Les langues prises en charge sont les suivantes : chinois simplifié, chinois traditionnel, japonais, anglais, français, allemand, espagnol, portugais, portugais brésilien et russe\footnote{Cependant, vous devez ajouter vous-même l'encodage et les polices de la langue correspondante. Par exemple, pour le chinois, vous devrez peut-être ajouter le package \textsf{ctex} et choisir les polices. Pour rappel, vous pouvez essayer les classes de documents \textsf{einfart} ou \textsf{lebhart} de l'auteur, dans lesquelles les paramètres correspondants ont été effectués. Pour les détails, exécutez \lstinline|texdoc minimalist| ou \lstinline|coloriste texdoc| en ligne de commande.}.

Pour une description détaillée de cette commande et d'autres commandes associées, veuillez vous référer à la section sur le support multilingue.

\subsubsection{Le titre et les informations de l'auteur}

\begin{code}
\title{(*\meta{title}*)}
\author{(*\meta{author}*)}
\date{\PLdate{2022-04-01}}
\end{code}

Cette partie est le titre et le bloc d'informations de l'auteur. L'exemple montre l'utilisation la plus fondamentale, mais en fait, vous pouvez également écrire comme :
\begin{code}
\author{(*\meta{author 1}*)}
\address{(*\meta{address 1}*)}
\email{(*\meta{email 1}*)}
\author{(*\meta{author 2}*)}
\address{(*\meta{address 2}*)}
\email{(*\meta{email 2}*)}
...
\end{code}

De plus, si la simulation d'\AmS{} est activée, alors vous pouvez également écrire à la manière \AmS{} (la manière originale fonctionne encore). Pour cela, vous devez ajouter l'option de package \texttt{amsfashion}\footnote{Étant donné que cette option modifie certaines macros internes de \LaTeX{}, elle peut entrer en conflit avec certains packages ou classes de documents, et n'est donc pas activée par défaut.}, c'est-à-dire que la ligne qui introduit \ProjLibPackage{} doit être écrite comme :
\begin{code}
\usepackage[amsfashion,palatino]{ProjLib}
\end{code}
Et en conséquence, vous pourrez également utiliser ces macros :
\begin{code}
\dedicatory{(*\meta{dedicatory}*)}
\subjclass{*****}
\keywords{(*\meta{keywords}*)}
\end{code}
De plus, vous pouvez également placé le résumé avant \lstinline|\maketitle|, comme requis dans les classes \AmS{} :
\begin{code}
\begin{abstract}
    (*\meta{abstract text}*)
\end{abstract}
\maketitle
\end{code}

\subsubsection{Marques de brouillon}
\begin{code}
\dnf<(*\meta{some hint}*)>
\end{code}
Lorsque vous avez des endroits qui ne sont pas encore finis, vous pouvez les marquer avec cette commande, ce qui est particulièrement utile lors de la phase de brouillon.

\subsubsection{Environnements de type théorème}
\begin{code}
\begin{theorem}\label{thm:abc}
    Ceci est un théorème.
\end{theorem}
Référence du théorème: \cref{thm:abc}
\end{code}

Les environnements de type théorème couramment utilisés ont été prédéfinis. De plus, lors du référencement d'un environnement de type théorème, il est recommandé d'utiliser \lstinline|\cref{|\meta{label}\texttt{\}} --- de cette manière, il ne serait pas nécessaire d'écrire explicitement le nom de l'environnement correspondant à chaque fois.

\section{Options du package principal}

\ProjLibPackage{} a les options suivantes :
\begin{itemize}
    \item \texttt{draft} ou \texttt{fast}
        \begin{itemize}
            \item Mode brouillon. La fonctionnalité sera réduite de manière appropriée pour obtenir une vitesse de compilation plus rapide, recommandée à utiliser pendant la phase de brouillon.
        \end{itemize}
    \item \texttt{palatino}, \texttt{times}, \texttt{garamond}, \texttt{noto}, \texttt{biolinum} ~$|$~ \texttt{useosf}
        \begin{itemize}
            \item Options de police. Comme les noms l'indiquent, la police avec le nom correspondant sera utilisée.
            \item L'option \texttt{useosf} est pour activer les chiffres à l'ancienne.
        \end{itemize}
    \item \texttt{nothms}, \texttt{nothmnum}, \texttt{thmnum} ou \texttt{thmnum=}\meta{counter}, \texttt{regionalref}, \texttt{originalref}
        \begin{itemize}
            \item Options du composant \PJLthm{} utilisé pour définir des environnements de type théorème, veuillez vous référer à la section sur ce package pour plus de détails.
        \end{itemize}
    \item \texttt{author}
        \begin{itemize}
            \item Utilisez le composant \PJLauthor{} pour enrichir le bloc d'informations sur l'auteur. Pour plus d'informations sur ses fonctionnalités, consultez la section sur ce package.
        \end{itemize}
    \item \texttt{amsfashion}
        \begin{itemize}
            \item Permet à l'utilisateur d'écrire à la manière \AmS{}. En attendant, l'option \texttt{author} sera automatiquement activée.
        \end{itemize}
\end{itemize}
De plus, il existe également certaines options des composants qui doivent être passées en tant qu'options globales de votre classe de document, telles que les options de langue de \PJLlang{} comme \texttt{EN} / \texttt{english} / \texttt{English}, \texttt{FR} / \texttt{french} / \texttt{French} etc., et les options de papier de \PJLpaper{} comme \texttt{paperstyle} et \texttt{preview}. Pour plus d'informations, veuillez vous référer aux sections correspondantes.

\clearpage

\section{Les composants}

\subsection{PJLauthor : bloc auteur amélioré}

\PJLauthor{} propose les macros \lstinline|\address|, \lstinline|\curraddr| et \lstinline|\email|, et vous permet de saisir plusieurs groupes d'informations sur l'auteur. L'utilisation standard est comme ceci :
\begin{code}
  \author{(*\meta{author 1}*)}
  \address{(*\meta{address 1}*)}
  \email{(*\meta{email 1}*)}
  \author{(*\meta{author 2}*)}
  \address{(*\meta{address 2}*)}
  \email{(*\meta{email 2}*)}
  ...
\end{code}
L'ordre mutuel de \lstinline|\address|, \lstinline|\curraddr| et \lstinline|\email| n'est pas important.

\medskip
De plus, vous pouvez utiliser l'option \texttt{amsfashion} pour écrire à la manière \AmS{}. Plus précisément, l'effet est :
\begin{itemize}
    \item Fournit les macros \lstinline|\dedicatory|, \lstinline|\keywords| et \lstinline|\subjclass|;
    \item \lstinline|\thanks| peut être écrit en dehors de la macro \lstinline|\author|;
    \item La environnement \lstinline|abstract| peut être placé avant \lstinline|\maketitle|.
\end{itemize}

\begin{tip}[Attention]
    Ces modifications n'auraient lieu que dans les classes standard. Dans les classes \AmS{}, \PJLauthor{} n'a aucun effet.
\end{tip}

\subsection{PJLdate : traitement de date-heure}

\PJLdatePackage{} propose la macro \lstinline|\PLdate|\meta{yyyy-mm-dd} (ou \lstinline|\PJLdate|\meta{yyyy-mm-dd}) pour convertir \meta{yyyy-mm-dd} dans le format de date de la langue actuellement sélectionnée. Par exemple, dans le contexte français actuel, \lstinline|\PLdate{2022-04-01}| deviendrait «~\PLdate{2022-04-01}~», tandis que dans le contexte anglais «~\UseOtherLanguage{English}{\PLdate{2022-04-01}}~».

Pour plus de détails sur la façon de sélectionner une langue, veuillez vous référer à la section sur \PJLlang{}.

\subsection{PJLdraft : marques de brouillon}

\PJLdraft{} propose les macros suivantes :
\begin{itemize}
    \item \lstinline|\dnf| ou \lstinline|\dnf<...>|. L'effet est : \dnf~ ou \dnf<...>. \\Le texte à l'intérieur changera en fonction de la langue actuelle. Par exemple, il sera affiché sous la forme \UseOtherLanguage{English}{\dnf} en mode anglais.
    \item \lstinline|\needgraph| ou \lstinline|\needgraph<...>|. L'effet est : \needgraph ou \needgraph<...>Le texte de l'invite change en fonction de la langue actuelle. Par exemple, en mode anglais, il sera affiché sous la forme \UseOtherLanguage{English}{\needgraph}
\end{itemize}

Pour plus de détails sur la façon de sélectionner une langue, veuillez vous référer à la section sur \PJLlang{}.

\subsection{PJLlang : support multilingue}

\PJLlang{} offre le support multilingue, notamment : chinois simplifié, chinois traditionnel, anglais, français, allemand, japonais et russe (parmi eux, le chinois, le japonais et le russe requièrent des moteurs \TeX{} et des polices appropriés).

\medskip
\PJLlang{} fournit des options de langue. Les noms de ces options ont trois types, qui sont des abréviations (comme \texttt{EN}), des minuscules (comme \texttt{english}) et des majuscules (comme \texttt{English}). Pour les noms d'options d'une langue spécifique, veuillez vous référer à \meta{language name} ci-dessous. Parmi eux, la première langue spécifiée \meta{first language} sera considérée comme langue par défaut, ce qui équivaut à spécifier \lstinline|\UseLanguage{|\meta{first language}\lstinline|}| au début de votre document.

\begin{tip}
    Il est recommandé d'utiliser ces options de langue et de les passer en tant qu'options globales. De cette façon, seules les langues spécifiées sont configurées, économisant ainsi la mémoire \TeX{} et améliorant considérablement la vitesse de compilation.
\end{tip}

\medskip
La langue peut être sélectionnée par les macros suivantes :

\begin{itemize}
    \item \lstinline|\UseLanguage{|\meta{language name}\lstinline|}| est utilisé pour spécifier la langue. Le réglage correspondant de la langue sera appliqué après celui-ci. Il peut être utilisé soit dans le préambule ou dans le texte. Lorsqu'aucune langue n'est spécifiée, « English » est sélectionné par défaut.
    \item \lstinline|\UseOtherLanguage{|\meta{language name}\lstinline|}{|\meta{content}\lstinline|}|, qui utilise les paramètres de langue spécifiés pour composer \meta{content}. Par rapport à \lstinline|\UseLanguage|, il ne modifiera pas l'interligne, donc l'interligne restera stable lorsque les textes CJK et occidentaux sont mélangés.
\end{itemize}

\medskip
\meta{language name} peut être (il n'est pas sensible à la casse, par exemple, \texttt{French} et \texttt{french} ont le même effet) :
\begin{itemize}
    \item chinois simplifié : \texttt{CN}, \texttt{Chinese}, \texttt{SChinese} ou \texttt{SimplifiedChinese}
    \item chinois traditionnel : \texttt{TC}, \texttt{TChinese} ou \texttt{TraditionalChinese}
    \item anglais : \texttt{EN} ou \texttt{English}
    \item français : \texttt{FR} ou \texttt{French}
    \item allemand : \texttt{DE}, \texttt{German} ou \texttt{ngerman}
    \item italien : \texttt{IT} ou \texttt{Italian}
    \item portugais : \texttt{PT} ou \texttt{Portuguese}
    \item portugais (brésilien) : \texttt{BR} ou \texttt{Brazilian}
    \item espagnol : \texttt{ES} ou \texttt{Spanish}
    \item japonais : \texttt{JP} ou \texttt{Japanese}
    \item russe : \texttt{RU} ou \texttt{Russian}
\end{itemize}

\medskip
De plus, vous pouvez également ajouter de nouveaux paramètres à la langue sélectionnée :
\begin{itemize}
    \item \lstinline|\AddLanguageSetting{|\meta{settings}\lstinline|}|
    \begin{itemize}
        \item Ajoutez \meta{settings} à toutes les langues prises en charge.
    \end{itemize}
    \item \lstinline|\AddLanguageSetting(|\meta{language name}\lstinline|){|\meta{settings}\lstinline|}|
    \begin{itemize}
        \item Ajoutez \meta{settings} à la langue \meta{language name} sélectionnée.
    \end{itemize}
\end{itemize}
Par exemple, \lstinline|\AddLanguageSetting(German){\color{orange}}| peut rendre tout le texte allemand affiché en orange (bien sûr, il faut alors ajouter \lstinline|\AddLanguageSetting{\color{black}}| afin de corriger la couleur du texte dans d'autres langues).

\subsection{PJLlogo : le logo \texorpdfstring{\ProjLib}{ProjLib}}

\PJLlogo{} propose la macro \lstinline|\ProjLib| pour dessiner le logo, qui ressemble à \ProjLib{}. Elle est similaire aux macros de texte ordinaires et peut être utilisée avec différentes macros de taille de texte :

\begin{center}
    \begin{tabular}{ll}
        \lstinline|\tiny|:& {\tiny\ProjLib}\\
        \lstinline|\scriptsize|:& {\scriptsize\ProjLib}\\
        \lstinline|\footnotesize|:& {\footnotesize\ProjLib}\\
        \lstinline|\normalsize|:& {\normalsize\ProjLib}\\
        \lstinline|\large|:& {\large\ProjLib}\\
        \lstinline|\Large|:& {\Large\ProjLib}\\
        \lstinline|\LARGE|:& {\LARGE\ProjLib}\\
        \lstinline|\huge|:& {\huge\ProjLib}\\
        \lstinline|\Huge|:& {\Huge\ProjLib}
    \end{tabular}
\end{center}

\subsection{PJLmath : symboles et raccourcis mathématiques}

\PJLmath{} propose les raccourcis suivants :
\begin{enumerate}[label=\roman*)]
    \item \lstinline|\mathfrak{|$\cdot$\lstinline|}| $\longrightarrow$ \lstinline|\mf|$\cdot$ ou \lstinline|\frak|$\cdot$ . Par exemple, \lstinline|\mfA| (ou \lstinline|\mf{A}|) a le même effet que \lstinline|\mathfrak{A}|. Cela fonctionne à la fois pour l'alphabet majuscule et minuscule, produisant :
    \begin{align*}
        \mfa\mfb\mfc\mfd\mfe\mff\mfg\mfh\mfi\mfj\mfk\mfl\mfm\mfn&\mfo\mfp\mfq\mfr\mfs\mft\mfu\mfv\mfw\mfx\mfy\mfz\\
        \mfA\mfB\mfC\mfD\mfE\mfF\mfG\mfH\mfI\mfJ\mfK\mfL\mfM\mfN&\mfO\mfP\mfQ\mfR\mfS\mfT\mfU\mfV\mfW\mfX\mfY\mfZ
    \end{align*}
    \item \lstinline|\mathbb{|$\cdot$\lstinline|}| \( \longrightarrow \) \lstinline|\bb|$\cdot$ . Cela ne fonctionne que pour l'alphabet majuscule et le nombre \( 1 \).
    \begin{equation*}
        \bbA\bbB\bbC\bbD\bbE\bbF\bbG\bbH\bbI\bbJ\bbK\bbL\bbM\bbN\bbO\bbP\bbQ\bbR\bbS\bbT\bbU\bbV\bbW\bbX\bbY\bbZ\bb1
    \end{equation*}
    Il y a aussi des commandes spéciales pour les structures algébriques bien connues : \lstinline|\N|, \lstinline|\Z|, \lstinline|\Q|, \lstinline|\R|, \lstinline|\C|, \lstinline|\F|, \lstinline|\A|.
    \[
        \N\Z\Q\R\C\F\A
    \]
    \item \lstinline|\mathcal{|$\cdot$\lstinline|}| \( \longrightarrow \) \lstinline|\mc|$\cdot$ or \lstinline|\cal|$\cdot$ . Cela ne fonctionne que pour l'alphabet majuscule.
    \begin{equation*}
        \mcA\mcB\mcC\mcD\mcE\mcF\mcG\mcH\mcI\mcJ\mcK\mcL\mcM\mcN\mcO\mcP\mcQ\mcR\mcS\mcT\mcU\mcV\mcW\mcX\mcY\mcZ
    \end{equation*}
    \item \lstinline|\mathscr{|$\cdot$\lstinline|}| \( \longrightarrow \) \lstinline|\ms|$\cdot$ or \lstinline|\scr|$\cdot$ . Cela ne fonctionne que pour l'alphabet majuscule.
    \begin{equation*}
        \msA\msB\msC\msD\msE\msF\msG\msH\msI\msJ\msK\msL\msM\msN\msO\msP\msQ\msR\msS\msT\msU\msV\msW\msX\msY\msZ
    \end{equation*}
\end{enumerate}

De plus, \PJLmath{} fournit également des symboles mathématiques qui ne sont pas inclus par défaut avec \LaTeX{}.

\begin{longtable}[l]{ p{4cm} p{6cm} p{6cm}}
\lstinline|\abs| & \lstinline|\abs{a}| $\rightarrow \abs{a}$ & symbole de valeur absolue \\
\lstinline|\norm| & \lstinline|\norm{a}| $\rightarrow \norm{a}$ & symbole de norme \\
\lstinline|\injection| & \lstinline|\injection| $\rightarrow ~\injection$ & symbole de flèche pour l'injection \\
\lstinline|\surjection| & \lstinline|\surjection| $\rightarrow ~\surjection$ & symbole de flèche pour la surjection \\
\lstinline|\bijection| & \lstinline|\bijection| $\rightarrow ~\bijection$ & symbole de flèche pour la bijection \\
\end{longtable}

\clearpage
\subsection{PJLpaper : configuration papier}

\PJLpaper{} est principalement utilisé pour ajuster la couleur du papier. Il a les options suivantes :

\vspace{-.3\baselineskip}
\begin{itemize}
    \item \texttt{paperstyle = \meta{paper style name}}
        \begin{itemize}
            \item Définit le style de couleur du papier. Les options disponibles pour \meta{paper style name} sont : \texttt{yellow}, \texttt{dark} et \texttt{nord}.
        \end{itemize}
    \item \texttt{yellowpaper}, \texttt{darkpaper}, \texttt{nordpaper}
        \begin{itemize}
            \item Identique à \texttt{paperstyle} avec le \meta{paper style name} correspondant spécifié.
        \end{itemize}
    \item \texttt{preview}
        \begin{itemize}
            \item Mode aperçu. Recadrez les bords blancs du fichier pdf pour faciliter la lecture.
        \end{itemize}
\end{itemize}
\vspace{-.3\baselineskip}

Il est recommandé de les passer comme options globales de la classe de document. De cette façon, les paramètres du papier seraient clairs en un coup d'œil.

\subsection{PJLthm : environnements de type théorème avec référence intelligente et support multilingue}

\PJLthm{} offre la configuration d'environnements de type théorème. Il a l'option suivante :

\vspace{-.3\baselineskip}
\begin{itemize}
    \item \texttt{nothms}
    \begin{itemize}
        \item Les environnements de type théorème ne seront pas définis. Vous pouvez utiliser cette option si vous souhaitez appliquer vos propres styles de théorème.
    \end{itemize}
    \item \texttt{nothmnum}, \texttt{thmnum} ou \texttt{thmnum=}\meta{counter}
    \begin{itemize}
        \item Les environnements de type théorème ne seront pas numérotés / numérotés dans l'ordre 1, 2, 3... / numérotés dans \meta{counter}. Ici, \meta{counter} doit être un compteur intégré (tel que \texttt{subsection}) ou un compteur défini dans le préambule. Si aucune option n'est utilisée, ils seront numérotés dans \texttt{chapter} (livre) ou \texttt{section} (article).
    \end{itemize}
    \item \texttt{regionalref}, \texttt{originalref}
    \begin{itemize}
        \item Lors du référencement, si le nom de l'environnement de type théorème change avec la langue actuelle. Par défaut \texttt{regionalref} est activé, c'est-à-dire que le nom correspondant à la langue courante est utilisé ; par exemple, lors du référencement d'un environnement de type théorème dans un contexte français, les noms «~Théorème, Définition ...~» seront utilisés quel que soit le contexte linguistique dans lequel se trouve l'environnement d'origine. Si \texttt{originalref} est activé, alors le nom restera toujours le même que l'environnement d'origine ; par exemple, lors du référencement d'un théorème écrit dans le contexte français, même si l'on est actuellement dans le contexte anglais, il sera toujours affiché comme «~Théorème~».
        \item En mode \texttt{fast}, l'option \texttt{originalref} n'aura aucun effet.
    \end{itemize}
\end{itemize}

\medskip
Les environnements prédéfinis incluent : \texttt{assumption}, \texttt{axiom}, \texttt{conjecture}, \texttt{convention}, \texttt{corollary}, \texttt{definition}, \texttt{definition-proposition}, \texttt{definition-theorem}, \texttt{example}, \texttt{exercise}, \texttt{fact}, \texttt{hypothesis}, \texttt{lemma}, \texttt{notation}, \texttt{observation}, \texttt{problem}, \texttt{property}, \texttt{proposition}, \texttt{question}, \texttt{remark}, \texttt{theorem}, et la version non numérotée correspondante avec un astérisque \lstinline|*| dans le nom. Les titres changeront avec la langue actuelle. Par exemple, \texttt{theorem} sera affiché comme «~Theorem~» en mode anglais et «~Théorème~» en mode français. Pour plus de détails sur la façon de sélectionner une langue, veuillez vous référer à la section sur \PJLlang{}.

\begin{tip}
    Lors du référencement d'un environnement de type théorème, il est recommandé d'utiliser \lstinline|\cref{|\meta{label}\texttt{\}}. De cette façon, il n'est pas nécessaire d'écrire explicitement le nom de l'environnement correspondant à chaque fois.
\end{tip}

\medskip
Si vous avez besoin de définir un nouvel environnement de type théorème, vous devez d'abord définir le nom de l'environnement dans le langage à utiliser :
\begin{itemize}
    \item \lstinline|\NameTheorem[|\meta{language name}\lstinline|]{|\meta{name of environment}\lstinline|}{|\meta{name string}\lstinline|}|
\end{itemize}
Pour \meta{language name}, veuillez vous référer à la section sur \PJLlang{}. Lorsque \meta{language name} n'est pas spécifié, le nom sera défini pour toutes les langues prises en charge. De plus, les environnements avec ou sans astérisque partagent le même nom, donc, \lstinline|\NameTheorem{envname*}{...}| a le même effet que \lstinline|\NameTheorem{envname}{...}| .

Ensuite, créez cet environnement de l'une des cinq manières suivantes :
\vspace{-.3\baselineskip}
\begin{itemize}
    \item \lstinline|\CreateTheorem*{|\meta{name of environment}\lstinline|}|
        \begin{itemize}
            \item Définir un environnement non numéroté \meta{name of environment}
        \end{itemize}
    \item \lstinline|\CreateTheorem{|\meta{name of environment}\lstinline|}|
        \begin{itemize}
            \item Définir un environnement numéroté \meta{name of environment}, numéroté dans l'ordre 1, 2, 3, \dots
        \end{itemize}
    \item \lstinline|\CreateTheorem{|\meta{name of environment}\lstinline|}[|\meta{numbered like}\lstinline|]|
        \begin{itemize}
            \item Définir un environnement numéroté \meta{name of environment}, qui partage le compteur \meta{numbered like}
        \end{itemize}
    \item \lstinline|\CreateTheorem{|\meta{name of environment}\lstinline|}<|\meta{numbered within}\lstinline|>|
        \begin{itemize}
            \item Définir un environnement numéroté \meta{name of environment}, numéroté dans le compteur \meta{numbered within}
        \end{itemize}
    \item \lstinline|\CreateTheorem{|\meta{name of environment}\lstinline|}(|\meta{existed environment}\lstinline|)|\\
    \lstinline|\CreateTheorem*{|\meta{name of environment}\lstinline|}(|\meta{existed environment}\lstinline|)|
        \begin{itemize}
            \item Identifiez \meta{name of environment} avec \meta{existed environment} ou \meta{existed environment}\lstinline|*|.
            \item Cette méthode est généralement utile dans les deux situations suivantes :
                \begin{enumerate}
                    \item Pour utiliser un nom plus concis. Par exemple, avec \lstinline|\CreateTheorem{thm}(theorem)|, on peut alors utiliser le nom \texttt{thm} pour écrire le théorème.
                    \item Pour supprimer la numérotation de certains environnements. Par exemple, on peut supprimer la numérotation de l'environnement \texttt{remark} avec \lstinline|\CreateTheorem{remark}(remark*)|.
                \end{enumerate}
        \end{itemize}
\end{itemize}

\begin{tip}
    Cette macro utilise la fonctionnalité de \textsf{amsthm} en interne, donc le traditionnel \texttt{theoremstyle} lui est également applicable. Il suffit de déclarer le style avant les définitions pertinentes.
\end{tip}

\NameTheorem[FR]{proofidea}{Idée}
\CreateTheorem*{proofidea*}
\CreateTheorem{proofidea}<subsection>

\bigskip
Voici un exemple. Le code suivant :
\begin{code}
  \NameTheorem[FR]{proofidea}{Idée}
  \CreateTheorem*{proofidea*}
  \CreateTheorem{proofidea}<subsection>
\end{code}
définit un environnement non numéroté \lstinline|proofidea*| et un environnement numéroté \lstinline|proofidea| (numérotés dans la sous-section) respectivement. Ils peuvent être utilisés dans le contexte français. L'effet est le suivant (le style réel est lié à votre classe de document) :

\begin{proofidea*}
    La environnement \lstinline|proofidea*| .
\end{proofidea*}

\begin{proofidea}
    La environnement \lstinline|proofidea| .
\end{proofidea}

\clearpage

\section{Problèmes connus}

\begin{itemize}[itemsep=.6em]
    \item \PJLauthor{} est encore à son stade préliminaire, son effet n'est pas aussi bon que le \textsf{authblk} qui est relativement mature.
    \item \PJLlang{} : C'est encore assez problématique avec la configuration de \textsf{polyglossia}, donc les fonctionnalités principales sont implémentées via \textsf{babel} pour le moment.
    \item \PJLpaper{} : l'option \texttt{preview} est principalement implémentée à l'aide du package \textsf{geometry}, elle ne fonctionne donc pas aussi bien dans les classes de documents \textsc{\textsf{Koma}}.
    \item \PJLthm{} : les paramètres de numérotation et de style théorème des environnements de type théorème ne sont actuellement pas accessibles à l'utilisateur.
    \item \PJLthm{} : la localisation de \textsf{cleveref} n'est pas encore finie pour toutes les langues prises en charge par \PJLlang{}, en particulier pour le chinois, le japonais et le russe.
    \item Le mécanisme de gestion des erreurs est incomplet : pas de messages correspondants lorsque certains problèmes surviennent.
    \item Il y a encore beaucoup de choses qui peuvent être optimisées dans le code. Certains codes prennent trop de temps à s'exécuter, en particulier la configuration d'environnements de type théorème dans \PJLthm{}.
\end{itemize}

\end{document}
\endinput
%%
%% End of file `ProjLib-doc-fr.tex'.
