%% %% This is file `annee-scolaire-fra.tex', %% generated with the docstrip utility. %% %% The original source files were: %% %% annee-scolaire.dtx (with options: `doc,FRA') %% %% Do not distribute this file without also distributing the %% source files specified above. %% %% Do not distribute a modified version of this file. %% %% File: annee-scolaire.dtx %% Copyright (C) 2020 Yvon Henel aka Le TeXnicien de surface %% %% It may be distributed and/or modified under the conditions of the %% LaTeX Project Public License (LPPL), either version 1.3c of this %% license or (at your option) any later version. The latest version %% of this license is in the file %% %% http://www.latex-project.org/lppl.txt %% \RequirePackage{expl3}[2013/03/12] \GetIdInfo$Id: annee-scolaire.dtx 1.6 2020-07-29 TdS $ {} \documentclass[full]{l3doc} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage[english,main=french]{babel} \usepackage{xparse} \usepackage[decalage=0]{annee-scolaire} \newcommand\BOP{\discretionary{}{}{}} \usepackage{xspace} \usepackage{csquotes} \usepackage{fancyvrb,fancyvrb-ex} \begin{document} \title{Guide de l'utilisateur de \pkg{annee-scolaire}\thanks{Ce fichier décrit la version~\ExplFileVersion, dernière révision~\ExplFileDate. Édition spéciale \emph{confinement}.}} \author{Yvon Henel\thanks{E-mail: \href{mailto:le.texnicien.de.surface@yvon-henel.fr} {le.texnicien.de.surface@yvon-henel.fr}}} \maketitle \noindent\hrulefill \begin{abstract} Une macro \cs{anneescolaire} pour écrire automatiquement l'année scolaire en fonction de la date du jour de compilation. \end{abstract} \noindent\hrulefill \begin{otherlanguage}{english} \begin{abstract} A macro \cs{anneescolaire} to automatically write academic year (French way) according to the date of compilation day. The English documentation for the final user of the package \pkg{annee-scolaire} is available in the file \texttt{annee-scolaire-eng}. \end{abstract} \end{otherlanguage} \noindent\hrulefill \vspace{\baselineskip} \section{Les macros} \label{sec:macros} L'extension \pkg{annee-scolaire} offre quatre macros de document: trois macros principales produisant du texte et une macro, qui ne devrait être utilisée que rarement et peut-être même jamais, qui permet de changer la présentation du texte écrit. \subsection{Macros principales} \label{sec:principales} Les trois macros principales de document sont les suivantes: \begin{function}{\anneescolaire} \begin{syntax} \cs{anneescolaire}\oarg{décalage} \end{syntax} où \meta{décalage} est un entier relatif qui vaut~\(0\) par défaut. C'est le nombre d'années dont l'année scolaire est décalée. Les deux autres macros ont le même argument optionnel. \end{function} \begin{function}{\debutanneescolaire} \begin{syntax} \cs{debutanneescolaire}\oarg{décalage} \end{syntax} \end{function} Comme son nom l'indique, cette macro donne l'année de début de l'année scolaire. \begin{function}{\finanneescolaire} \begin{syntax} \cs{finanneescolaire}\oarg{décalage} \end{syntax} \end{function} Celle-ci donne l'année de fin. Voir les exemples en page~\pageref{sec:ecrireannee}. \subsection{Changement de la présentation} \label{sec:presentation} La présentation des années obtenues à l'aide des trois macros précédentes peut être modifiée en redéfinissant la macro \cs{AnneeScolairePresentation}: \begin{function}{\AnneeScolairePresentation} \begin{syntax} \cs{AnneeScolairePresentation}\oarg{numéro}\marg{année} \end{syntax} où \meta{année} est un entier relatif (\texttt{\textit{int}} au sens de \LaTeX3), c'est le numéro de l'année à écrire dans le document. L'argument optionnel \meta{numéro} peut être utilisé pour traiter différemment la présentation suivant ce schéma \begin{description} \item[\textbf{1}] présentation de l'année de début dans le texte créé par la macro \cs{anneescolaire}; \item[\textbf{2}] présentation de l'année de fin dans le texte créé par la macro \cs{anneescolaire}; \item[\textbf{3}] présentation de l'année dans le texte créé par la macro \cs{debutanneescolaire}; \item[\textbf{4}] présentation de l'année dans le texte créé par la macro \cs{finanneescolaire}. \end{description} Par défaut, cette macro est définie comme un alias de \cs{int_to_arabic:n}. % Si l'on veut changer la présentation, il faut redéfinir cette commande à l'aide de \cs{RenewDocumentCommand}. \end{function} Voir les exemples en page~\pageref{sec:aspect}. \section{Les options de l'extension} \label{sec:clefs} L'extension utilise le système de clefs-valeurs pour ses options. Elle possède quatre clés: \texttt{premiermois}, \texttt{premierjour}, \texttt{decalage} et \texttt{separateur}. \begin{description} \item[\texttt{premiermois} (\textit{\texttt{int}})] contient le numéro du 1\ier mois de l'année scolaire. Par défaut sa valeur est~\(8\); \item[\texttt{premierjour} (\textit{\texttt{int}})] contient le numéro du 1\ier jour du 1\ier mois de l'année scolaire. Par défaut sa valeur est~\(1\). La date de début de l'année scolaire est donc le 1\ier aout; \emph{Attention: l'extension ne vérifie pas la validité de la date ainsi choisie --- choisir le 32 février ne provoquera pas d'erreur. L'utilisateur s'en assurera lui-même.} \item[\texttt{decalage} (\textit{\texttt{int}})] est un entier relatif qui vaut \(0\) par défaut. Il permet de décaler l'année scolaire. En donnant l'option \verb|decalage=1| à l'extension on force \cs{anneescolaire} à donner l'année scolaire prochaine; \item[\texttt{separateur} (\textit{\texttt{token list}})] est le texte utilisé entre les numéros des deux années civiles composant l'année scolaire. Par défaut sa valeur est \enquote{\texttt{-}}. \end{description} \section{Exemples} \label{sec:exemples} \subsection{Écrire l'année scolaire} \label{sec:ecrireannee} Le texte\\[0.5\baselineskip] \enquote{Aujourd'hui est le \today, année scolaire \anneescolaire, débutant en~\debutanneescolaire{} et finissant en~\finanneescolaire.}\\[0.5\baselineskip] est obtenu avec le code\\[0.5\baselineskip] \texttt{Aujourd'hui} \texttt{est} \texttt{le} \cs{today}\texttt{,} \texttt{année} \texttt{scolaire} \cs{anneescolaire}\texttt{,} \texttt{débutant} \texttt{en}\verb|~|\cs{de}\BOP{}\texttt{but}\BOP \texttt{an}\BOP \texttt{nee}\BOP \texttt{sco}\BOP \texttt{laire}\verb|{}| \texttt{et} \texttt{finissant} \texttt{en}\verb|~|\cs{finanneescolaire}. \medskip{} La suite illustre l'utilisation de l'argument optionnel des trois commandes. \vspace{\baselineskip} \framebox[0.85\textwidth]{\begin{minipage}{.65\linewidth} \vspace*{.5\baselineskip} Le \today{}: \vspace{.5\baselineskip} \noindent{} {\cs{anneescolaire[-1]}}: \anneescolaire[-1] \par\noindent{} {\cs{debutanneescolaire[-1]}}: \debutanneescolaire[-1] \par\noindent{} {\cs{finanneescolaire[-1]}}: \finanneescolaire[-1] \vspace{.5\baselineskip} \noindent{} {\cs{anneescolaire}}: \anneescolaire \par\noindent{} {\cs{debutanneescolaire}}: \debutanneescolaire \par\noindent{} {\cs{finanneescolaire}}: \finanneescolaire \vspace{.5\baselineskip} \noindent{} {\cs{anneescolaire[1]}}: \anneescolaire[1] \par\noindent{} {\cs{debutanneescolaire[1]}}: \debutanneescolaire[1] \par\noindent{} {\cs{finanneescolaire[1]}}: \finanneescolaire[1] \vspace*{.5\baselineskip} \end{minipage}} \subsection{Changer l'aspect} \label{sec:aspect} Avec le code suivant: \begin{Verbatim}[gobble=0, frame=lines, label={code}, labelposition=topline] \ExplSyntaxOn \RenewDocumentCommand{\AnneeScolairePresentation}{ o m } { \int_case:nn { #1 } { {1} { \textbf{ \int_to_arabic:n { #2 } } } {2} { \int_to_roman:n { #2 } } {3} { \textit{ \int_to_arabic:n { #2 } } } {4} { \int_to_Roman:n { #2 } } } } \ExplSyntaxOff \anneescolaire \quad \debutanneescolaire \quad \finanneescolaire \end{Verbatim} Nous obtenons: \bgroup{} \ExplSyntaxOn \RenewDocumentCommand{\AnneeScolairePresentation}{ o m } { \int_case:nn { #1 } { {1} { \textbf{ \int_to_arabic:n { #2 } } } {2} { \int_to_roman:n { #2 } } {3} { \textit{ \int_to_arabic:n { #2 } } } {4} { \int_to_Roman:n { #2 } } } } \ExplSyntaxOff \anneescolaire \quad \debutanneescolaire \quad \finanneescolaire \egroup{} \medskip{} Je n'ai pas besoin, je pense, d'insister sur le caractère de pur exemple du code qui précède. Il ne viendra à l'esprit de personne d'y voir un encouragement à la \emph{créativité typographique}! \vspace{\stretch{2}} \noindent\hspace*{0.2\textwidth}\hrulefill\hspace*{0.2\textwidth} \begin{center} \textsl{Le TeXnicien de Surface scripsit.} \end{center} \noindent\hspace*{0.2\textwidth}\hrulefill\hspace*{0.2\textwidth} \vspace*{\stretch{2}} \end{document} \endinput %% %% End of file `annee-scolaire-fra.tex'.