diff options
Diffstat (limited to 'Master/texmf-dist/doc/lualatex/letgut/letgut.tex')
-rw-r--r-- | Master/texmf-dist/doc/lualatex/letgut/letgut.tex | 1435 |
1 files changed, 1435 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/lualatex/letgut/letgut.tex b/Master/texmf-dist/doc/lualatex/letgut/letgut.tex new file mode 100644 index 00000000000..4d8c219baa4 --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/letgut/letgut.tex @@ -0,0 +1,1435 @@ +\documentclass{letgut} + +% On compose la présente documentation en Kp-Fonts, sauf en ce qui concerne la +% fonte à chasse fixe qui n'est pas ce qu'il y a de plus réussi chez elle. +\setmainfont{KpRoman} +\setsansfont{KpSans} +% \setmonofont{TeX Gyre Cursor} +\setmonofont[Scale = MatchLowercase]{RobotoMono} + +% On ne veut pas d'éditorial dans cette « Lettre » et on veut que sa couleur de +% fond ne soit pas la couleur ivoire par défaut, mais du blanc. +\letgutsetup{ + , editorial=false + , pagecolor= {1,1,1} + % ,final +} + +\lstset{ + language=TeX,% + alsolanguage=[geometry]TeX,% + alsolanguage=[LaTeX]TeX,% + alsolanguage=[plain]TeX,% + alsolanguage=[common]TeX,% + alsolanguage=[primitive]TeX,% + alsolanguage=[xcolor]TeX,% + alsolanguage=[listings]TeX,% + alsolanguage=[biblatex]TeX,% + alsolanguage=[hyperref]TeX,% + alsolanguage=[extLaTeX]TeX,% + alsolanguage=[letgut]TeX,% + alsolanguage=[hologo]TeX,% + alsolanguage=[acro]TeX,% + alsolanguage=[tcolorbox]TeX,% + alsolanguage=[csquotes]TeX,% + alsolanguage=[varioref]TeX,% + alsolanguage=[babel-french]TeX,% +} + +% Bibliographie +\addbibresource{letgut.bib} + +% On définit quelques commandes (utiles seulement pour la présente +% documentation), par exemple celle permettant d'accéder à la couleur de fond du +% papier lorsque l'option `paper' n'est pas employée. +\ExplSyntaxOn +\NewDocumentCommand { \letgutdefaultpagecolor } { } { + \c__letgut_default_pagecolor_screen_clist +} +\definecolor{letgutdefaultpagecolor}{rgb}{\c__letgut_default_pagecolor_screen_clist} + +\NewDocumentCommand { \letgutalertboxdefaultcolor } { } { + \c__letgut_default_alert_box_color_tl +} + +\NewDocumentCommand { \letgutallcolorslinks } { } { + \c__letgut_default_allcolors_links_color_tl +} + +\NewDocumentCommand { \docker } { s } { + \IfBooleanTF{#1}% + {\software{docker}}% + {\software[https://docs.docker.com/]{Docker}}% +} + +\pdfstringdefDisableCommands{% + \def\docker{Docker} +} +\ExplSyntaxOff + +% Acronymes +\letgutacro[tag=thisdocument]{LD}{\LaTeX{} dépendant} +\letgutacro[tag=thisdocument]{CD}{Compact Disc}[] +\letgutacro[tag=thisdocument]{TLMGR}{\TeX~Live Manager}[gestionnaire \TeX~Live] +\letgutacro[tag=thisdocument,short=no-op,short-format=\upshape] % Désactive les petites capitales +{NOOP} +{No Operation} +[instruction nulle] +\letgutacro{CPGÉ}{Classes Préparatoires aux Grandes Écoles} + +% Éléments du titre +\title{% + Documentation de la + \texorpdfstring{% + \letgutcls% + }{% + classe letgut% + }% +} +\author{Association GUTenberg} +\date{% + Version 0.9 en date du \today% + \texorpdfstring{% + \\ + \url{https://framagit.org/gutenberg/classe-lettre-gut}% + }{% + }% +} + +% \tcbset{index command name=\jobname-commands} +% \makeindex[name=\jobname-commands,title=Index des commandes,extout=odx,extin=ond,columnseprule] +% \makeindex[title=Index des concepts,extout=pdx,extin=pnd,columnseprule] +\begin{document} + +\title{Introduction} +\label{sec:introduction} +L'association \gutenberg{} publie la \lettregut{}, son bulletin irrégulomestriel, +depuis février 1993 \autocite{AssociationGUTenbergLettreGUTenberg}. + +Pour ce faire, une classe \hologo{(La)TeX} dédiée, maison, a peu à peu vu le +jour\footnote{Notamment grâce au concours de \person{André, Jacques}, + \person{Flipo, Daniel} et \person{Chupin, Maxime}.} mais, au gré des +nouveaux besoins et des personnes qui ont assuré la publication de la \lettre{}, +son développement a été quelque peu erratique ; il n'aurait notamment pas été +possible de publier son code en l'état. En outre, sa documentation était +inexistante. + +Le \ca{} de l'association élu en novembre 2020 a souhaité fournir une classe +mieux structurée, davantage pérenne et documentée, à même d'être publiée sur le +\ctan{}. C'est désormais chose faite avec la présente \letgutcls\footnote{À + cette occasion, la classe a été légèrement renommée de \class[]{let-gut} en + \letgut{}.}. + +\title{Usage de la classe \letgut} +\label{sec:usage-de-la} + +\section{Compilation} +\label{sec:compilation} + +\begin{dbwarning}{\hologo{LuaLaTeX} (récent) et UTF-8 nécessaires}{lualatex-recent} + Les documents recourant à la \letgutcls{} doivent : + \begin{itemize} + \item être compilés avec le moteur \hologo{LuaLaTeX}\footnote{Dans une version + au minimum \texttt{1.13.2}, le format \software{lualatex} devant être dans + une version au minimum \texttt{2021.6.6}.} ; + \item avoir (de ce fait) comme codage d'entrée l'UTF-8\footnote{Y compris les + fichiers sources auxiliaires tels que les \file{.bib}.}. + \end{itemize} +\end{dbwarning} + +La section \enquote{\nameref{recours-docker}}, \vpageref{recours-docker}, +détaille un moyen de de disposer d'une telle version de \hologo{LuaLaTeX} sans +risque de perturber une installation de \hologo{(La)TeX} déjà existante. + +\section{Options} +\label{sec:options} + +La \letgutcls{} fournit deux types d'\meta{options} : + +\begin{description} +\item[\foreignloc{load-time} :] à spécifier \emph{exclusivement} au chargement + de la classe, selon la syntaxe usuelle + ×\documentclass[×\meta{options}×]{letgut}× +\item[\emph{non} \foreignloc{load-time} :] à spécifier \emph{exclusivement} en + argument de la commande dédiée \refCom{letgutsetup}. +\end{description} + +\subsection{Options \foreignloc{load-time}} +\label{sec:fore-time-meta} + +Ces options, au nombre de deux, sont \enquote{contraires} l'une de l'autre. + +\begin{docKeys} + { + { + doc name = for-readers, + doc description = {\valinitdef[\docValue*{true}][\docValue*{true}]}, + }, + { + doc name = for-authors, + doc description = {\valinitdef[\docValue*{false}][\docValue*{true}]}, + }, + }% + % + Ces clés booléennes, contraires l'une de l'autre, activent les versions + respectivement \enquote{pour lecteurs} (par défaut) et \enquote{pour auteurs} + de la \lettre{}. Celles-ci mettent en page la \lettre{} respectivement : + \begin{itemize} + \item telle que les lecteurs finaux la liront ; + \item telle que les auteurs d'articles de la \lettre{} peuvent le souhaiter au + cours de leur rédaction, notamment sans : + \begin{itemize} + \item titre ; + \item (r)appel à cotisation (cf. clé \refKey{membership-reminder}) ; + \item éditorial\footnote{Ou avertissement s'il n'est pas trouvé.} (cf. clé + \refKey{editorial}) ; + \item informations sur \gut{}\footnote{Ou avertissement si elles ne sont pas + trouvées.} (cf. clé \refKey{informations}). + \end{itemize} + \end{itemize} +\end{docKeys} + +\subsection{Options non \foreignloc{load-time}} +\label{sec:emphn-fore-time} + +\begin{docCommand}{letgutsetup}{\marg{options}} + \index{configuration}% + Cette commande permet de spécifier les \meta{options} \emph{non} \foreignloc{load-time} de la \letgutcls{}. +\end{docCommand} + +Ces \meta{options} sont les suivantes : + +\begin{docKeys} + { + { + doc name = draft, + doc description = {\valinitdef[\docValue*{true}][\docValue*{true}]}, + }, + { + doc name = final, + doc description = {\valinitdef[\docValue*{false}][\docValue*{true}]}, + }, + }% + % + Ces clés booléennes, contraires l'une de l'autre, activent les versions + respectivement \enquote{brouillon} (par défaut) et \enquote{final} de la + \lettre{}. + + En version \enquote{brouillon}, et seulement dans cette version% \footnote{Avec + % la version actuelle, une conséquence supplémentaire mais temporaire est + % que } + : + \begin{enumerate} + \item le \package*{lua-typo} est chargé\footnote{En fait, cela est + momentanément désactivé car le \package*{luacolor}, chargé en sous-main + par \package{lua-typo}, ne fonctionne actuellement pas bien avec une + fonctionnalité du noyau \hologo{LaTeX} utilisée par la classe (plus de + détails + \href{https://github.com/ho-tex/luacolor/issues/4}{ici}.)}. Celui-ci met + en lumière, par un changement de couleur, les lignes typographiquement + imparfaites d’un fichier \pdf*{} produit par \hologo{LuaLaTeX} ; + \item le mot \enquote{Brouillon} figure en filigrane sur chaque page ; + \item les boîtes trop pleines (\foreignloc{Overfull \docAuxCommand*{hbox}}) + sont mises en évidence comme avec les classes standards. + \end{enumerate} +\end{docKeys} + +\begin{docKeys} + { + { + doc name = screen, + doc description = {\valinitdef[\docValue*{true}][\docValue*{true}]}, + }, + { + doc name = paper, + doc description = {\valinitdef[\docValue*{false}][\docValue*{true}]}, + }, + }% + % + Ces clés booléennes, contraires l'une de l'autre, activent les formats de + sortie respectivement \enquote{écran} (par défaut) et \enquote{papier} de la + \lettre{}. + + En version \enquote{écran}, et seulement dans cette version, la couleur de + fond du papier est par défaut non pas le blanc mais celle spécifiée (et + modifiable) par \refKey{pagecolor}. +\end{docKeys} + +\begin{docKey}{number}{=\meta{numéro}}{\valinitdef} + Cette clé permet de spécifier le \meta{numéro} de la \lettre{}. +\end{docKey} + +{% + % \tcbset{before lower=\vspace*{.5\baselineskip}\par} + \begin{docKey}{date}{=\meta{année}\texttt{-}\meta{mois} ou \meta{texte}}{\valinitdef[année et mois en cours]} + Cette clé permet de spécifier la date de la \lettre{}. Celle-ci est affichée sous + la forme : + \begin{itemize} + \item \enquote{\meta{Mois} \meta{année}} dans les cas où l'option : + \begin{itemize} + \item n'est pas employée (les mois et année en cours sont alors + utilisés) ; + \item est employée sous la forme \refKey*{date}×=×\meta{année}×-×\meta{mois} + où \meta{année} et \meta{mois} doivent être des nombres entiers + positifs. Les garde-fous suivants sont mis en place : + \begin{itemize} + \item si \meta{année} n'est pas celle en cours ou la suivante, elle est + remplacée par l'année en cours ; + \item si \meta{mois} n'est pas entre $1$ et $12$, il est remplacé par le + mois en cours ; + \end{itemize} + \end{itemize} + \item \enquote{\meta{texte}} si l'option est employée sous la forme + \refKey*{date}×=×\meta{texte}. + \end{itemize} + \end{docKey} +} + +\begin{docKey}{pagecolor}{=\marg{couleur}}{\valinitdef[\docValue*{letgut_pagecolor}]} + Cette clé permet, si (et seulement) l'option \refKey{paper} \emph{n'}est + \emph{pas} employée, de spécifier (selon le modèle \enquote{rgb}) une + \meta{couleur} de fond du papier autre que celle appliquée par + défaut\footnote{C'est-à-dire \colorbox{letgutdefaultpagecolor}{celle-ci}% , dont + % la valeur \enquote{rgb} est \docValue*{\letgutdefaultpagecolor} + .}. +\end{docKey} + +\begin{docKey}{allcolorslinks}{=\meta{couleur}}{\valinitdef[\docValue*{letgut_allcolors_links}]} + Cette clé permet de spécifier (selon le modèle \enquote{\foreignloc{named}}) + une \meta{couleur} pour (tous) les liens hypertextes autre que celle + \docColor{letgut_allcolors_links} par défaut\footnote{C'est-à-dire + \textcolor{letgut_allcolors_links}{celle-ci}% , égale + % à \docValue*{\letgutallcolorslinks} + .}. +\end{docKey} + +\begin{docKey}{membership-reminder}{}{\valinitdef[\docValue*{true}][\docValue*{true}]} + Cette clé booléenne affiche automatiquement un (r)appel à cotisation en bas de + 1\iere{} page de la \lettre{}. +\end{docKey} + +\begin{docKey}{editorial}{}{\valinitdef[\docValue*{true}][\docValue*{true}]} + Cette clé booléenne importe automatiquement en tout début de la \lettre{} + (néanmoins après le titre et le sommaire) le \file*{editorial.tex} contenant + l'éditorial. Si aucun \file*{editorial.tex} n'est trouvé dans le répertoire + courant, un avertissement est émis lors de la compilation et une boîte + d'alerte est affichée en 1\iere{} page. +\end{docKey} + +\begin{docKey}{informations}{}{\valinitdef[\docValue*{true}][\docValue*{true}]} + Cette clé booléenne importe automatiquement en dernière page de la \lettre{} + le \file*{informations-gut.tex} contenant toutes les informations sur + \gut{}. Si aucun \file*{informations-gut.tex} n'est trouvé dans le + répertoire courant, un avertissement est émis lors de la compilation et une + boîte d'alerte est affichée en dernière page. +\end{docKey} + +\section{Titre et titres courants} +\label{sec:titre} +Si la commande \docAuxCommand{title}\marg{titre} est +\begin{description} +\item[\emph{non} utilisée :] le titre du document est construit à partir du + \meta{numéro} et de la \meta{date} spécifiés (cf. clés \refKey{number} et + \refKey{date}). Il figure alors automatiquement en 1\iere{} page sous la forme + \enquote{Numéro \meta{numéro} -- \meta{date}}. Le titre courant est alors + \enquote{La \lettregut{}, \meta{date}} ; +\item[\phantom{\emph{non}} utilisée\footnotemark{} :]\footnotetext{Ainsi que les + habituelles commandes \docAuxCommand{author} et \docAuxCommand{date}.} et + ce, \emph{avant \lstinline+\\begin\{document\}+}, le \meta{titre} du document + figure alors automatiquement en 1\iere{} page sous sa forme habituelle et est + suivie d'un changement de page. Le titre courant est alors + \enquote{\meta{titre}, \meta{date}}. +\end{description} + +\begin{dbwarning}{\docAuxCommand{title} et \docAuxCommand{author} + $\neq$ avant et après \lstinline+\\begin\{document\}+}{} + Les commandes \docAuxCommand{title} et \docAuxCommand{author} ne se comportent + pas de la même façon avant et après \lstinline+\begin{document}+ (cf. sections + \nameref{sec:structuration} \vpageref{sec:structuration} et + \nameref{sec:sign-des-articl} \vpageref{sec:sign-des-articl}). +\end{dbwarning} + +\begin{dbwarning}{Commande \docAuxCommand{maketitle} à \emph{ne pas} employer}{} + La commande \docAuxCommand{maketitle} est à \emph{ne pas} employer car elle + l'est en sous-main par la classe. +\end{dbwarning} + +\section{Structuration} +\label{sec:structuration} + +\begin{docCommands}[ + doc parameter = \oarg{intitulé alternatif}\marg{intitulé} + ] + { + { doc name = title }, + { doc name = subtitle }, + { doc name = section }, + { doc name = subsection }, + { doc name = subsubsection }, + { doc name = paragraph }, + { doc name = subparagraph }, + } + % + Ces commandes permettent de structurer le contenu de la \lettre{} : + \begin{itemize} + \item \refCom{title} est celle de plus haut niveau, introduisant + l'\meta{intitulé} de chaque article (automatiquement composé en grandes + capitales et précédé de l'ornement \aldineleft) ; + \item \refCom{subtitle}, de niveau suivant et facultative, introduisant un + \meta{intitulé} d'éventuel sous-titre d'article (automatiquement composé en + grandes capitales). Ceci peut être utile par exemple pour distinguer des + parties indépendantes d'un même article ; + \item celles de niveaux suivants sont les habituelles commandes de + structuration fournies par la \class*{article}. + \end{itemize} +\end{docCommands} + +\begin{dbremark}{Structure non numérotée}{} + Les titres, sous-titres, sections, sous-sections, etc. de la \lettre{} ne sont + pas numérotés. Aussi pourra-t-on, pour faire référence à l'une de ces + rubriques, recourir aux commandes : + \begin{itemize} + \item \docAuxCommand{nameref} pour en citer l'\meta{intitulé} ; + \item \docAuxCommand{vpageref} pour en citer la page ; + \item \docAuxCommand{enquote} pour, le cas échéant, faire figurer + l'\meta{intitulé} entre guillemets ; + % \item \docAuxCommand{namecref} (fournie par le \package*{cleveref}, chargé par + % \letgut{}) pour en citer la nature (le cas échéant). + \end{itemize} + ces trois commandes étant directement utilisables puisque fournies par les + packages respectivement \package{hyperref}, \package{varioref} et + \package{csquotes}, chargés en sous-main par la \letgutcls{}. +\end{dbremark} + +\bgroup +\lstset{deletekeywords=[3]{section,nameref}} +\begin{ltx-code-result}[title addon=références croisées aux rubriques] +On lira avec intérêt la section \enquote{\nameref{sec:acronymes}} +\vpageref{sec:acronymes}. +\end{ltx-code-result} +\egroup + +\section[Personnes et auteurs]{Noms de personnes et d'auteurs d'articles} +\label{sec:sign-des-articl} + +% Les prénom, nom et titre d'une personne peuvent être affichés au moyen de la +% commande \refCom{person} suivante. + +\begin{docCommands}[ + doc name = person, + doc name = author, + ] + { + { + doc name = person, + doc parameter = \marg{données} + }, + { + doc name = person, + doc parameter = \brackets{\meta{données$_1$} and \meta{données$_2$}[ and ...]} + }, + { + doc name = author, + doc parameter = \marg{données} + }, + { + doc name = author, + doc parameter = \brackets{\meta{données$_1$} and \meta{données$_2$}[ and ...]} + }, + } + \index{auteur} + \index{personne} + % + Ces commandes affichent\footnote{Au fer à droite pour \refCom{author}.} les + \meta{données} (noms et éventuels prénoms et titres) d'une ou plusieurs + personnes ou d'un ou plusieurs auteurs d'articles, ces \meta{données} + étant spécifiées : + \begin{description} + \item[pour un individu unique] selon l'un des formats suivants : + \begin{itemize} + \item \meta{nom} + \item \meta{nom}×, ×\meta{prénom} + \item \meta{nom}×, ×\meta{prénom}×, ×\meta{titre} + \end{itemize} +\item[pour des individus multiples :]\leavevmode + \begin{itemize} + \item selon le même schéma que pour un individu unique ; + \item les \meta{données} de chacun des individus étant séparées par le mot clé + \lstinline+and+. + \end{itemize} + \end{description} +\end{docCommands} + +Indépendamment de la casse utilisée en entrée, pour chaque \meta{nom} et +\meta{prénom} : +\begin{itemize} +\item chacune des initiales et des premières lettres après un espace ou un tiret + est affiché en grande capitale ; +\item le reste est affiché en : + \begin{itemize} + \item petites capitales pour un \meta{nom} ; + \item bas de casse pour un \meta{prénom}. + \end{itemize} +\end{itemize} + +\begin{ltx-code-result}[title addon=personnes] +On peut dire merci à +\person{Knuth, Donald E., dieu and Lamport, Leslie} ! +\end{ltx-code-result} + +\bgroup +\lstset{deletekeywords=[3]{author},deletekeywords=[4]{TeX,},deletekeywords=[5]{e}} +\begin{ltx-code-result}[title addon=auteur] +\begin{displayquote} % Fourni par `csquotes' chargé par `letgut' + Wait, wait, I never said that. + \author{knuth, dONALD e.} +\end{displayquote} +\end{ltx-code-result} + % The \TeX{} family of programs seems to be nice and healthy + % as it continues to approach perfection. +\egroup + +\section{Aide à la saisie et homogénéisation de la mise en forme} +\label{sec:aide-la-saisie} + +Les articles de la \lettre{} sont émaillés de concepts (packages ou classes +\hologo{(La)TeX}, logiciels, etc.) et de termes et expressions +(\enquote{\gut{}}, \enquote{\lettre{}}, etc.) employés de façon +récurrente. Aussi des commandes spécifiques sont-elles prévues de façon à en +faciliter la saisie et à en homogénéiser la mise en forme. + +\subsection{Packages et classes, logiciels, fichiers, locutions étrangères} +\label{sec:classes-packages-et} + +\begin{docCommands} + { + { + doc name = package, + doc parameter = \oarg{URL}\marg{nom}, + }, + { + doc name = package*, + doc parameter = \oarg{URL}\marg{nom}\oarg{préfixe}, + }, + { + doc name = class, + doc parameter = \oarg{URL}\marg{nom}, + }, + { + doc name = class*, + doc parameter = \oarg{URL}\marg{nom}\oarg{préfixe}, + }, + } + % + Ces commandes affichent le \meta{nom} d'un package ou d'une classe + \hologo{(La)TeX}. Le \meta{nom} affiché est un lien hypertexte si et seulement + si l'argument optionnel est : + \begin{description} + \item[\emph{non} employé] la cible étant alors + \url{https://ctan.org/pkg/}\meta{nom} ; + \item[\phantom{\emph{non}} employé] mais non vide, la cible étant alors + \meta{URL}. + \end{description} + Pour que le \meta{nom} affiché ne soit pas un lien hypertexte, il suffit + d'employer un argument optionnel vide. + + Les versions étoilées font précéder le \meta{nom} d'un \meta{préfixe} qui, par + défaut, est respectivement \enquote{package} et \enquote{classe}. +\end{docCommands} + +\bgroup +\lstset{deletekeywords=[4]{tables,}} +\begin{ltx-code-result}[title addon=packages et classes] +La \class*{letgut} s'appuie entre autres sur le \package*{etoc} +(qui permet de personnaliser les tables des matières). + +Une des classes s'appuyant sur le \package*[]{etoc} est +\class[https://framagit.org/gutenberg/classe-lettre-gut]{letgut}. +\end{ltx-code-result} +\egroup + +\begin{docCommands} + { + { + doc name = software, + doc parameter = \oarg{URL}\marg{nom}, + }, + { + doc name = software*, + doc parameter = \oarg{URL}\marg{nom}\oarg{préfixe}, + }, + } + % + Ces commandes affichent le \meta{nom} d'un logiciel qui est optionnellement un + lien hypertexte vers \meta{URL}. La version étoilée fait précéder le + \meta{nom} d'un \meta{préfixe} qui, par défaut, est \enquote{logiciel}. +\end{docCommands} + +\begin{docCommands} + { + { + doc name = file, + doc parameter = \marg{nom}, + }, + { + doc name = file*, + doc parameter = \marg{nom}\oarg{préfixe}, + }, + } + % + Ces commandes affichent le \meta{nom} d'un fichier. La version étoilée fait + précéder le \meta{nom} d'un \meta{préfixe} qui, par défaut, est + \enquote{fichier}. +\end{docCommands} + +\bgroup +\lstset{deletekeywords=[3]{file,plus,l}} +\begin{ltx-code-result}[title addon=logiciels et fichiers] +Le \file*{test.tex} a été ouvert dans le +\software*[https://www.gnu.org/software/emacs/]{Emacs}, plus +précisément dans \software*{Emacs}[l'éditeur de texte]. +\end{ltx-code-result} +\egroup + +\begin{dbwarning}{Commandes pas toutes bienvenues en \docAuxCommand{title} et + \docAuxCommand{subtitle}}{} + Lorsqu'elles sont employées en argument des commandes \refCom{title} et + \refCom{subtitle}, les versions étoilées de ces commandes ont des effets + indésirables (préfixes pas en grandes capitales et signets non conformes). +\end{dbwarning} + +\begin{docCommand}{foreignloc}{\marg{locution}} + Cette commande est conçue pour afficher une \meta{locution} étrangère. +\end{docCommand} + +\begin{docCommand}{latinloc}{\marg{locution}} + Cette commande est conçue pour afficher une \meta{locution} latine. +\end{docCommand} + +\bgroup +\lstset{deletekeywords=[3]{options}} +\begin{ltx-code-result}[title addon=locutions étrangères] +Ce ne sont pas toutes des \foreignloc{load-time options} : +\latinloc{errare humanum est} ! +\end{ltx-code-result} +\egroup + +\subsection{Termes et expressions} +\label{sec:termes} + +\begin{docCommands} + { + { doc name = gutenberg }, + { doc name = gut }, + { doc name = lettre }, + { doc name = lettregut }, + { doc name = Cahier }, + { doc name = Cahiers }, + { doc name = letgut }, + { doc name = letgutcls }, + { doc name = knuth }, + { doc name = lamport }, + { doc name = tugboat }, + } + % + Ce que ces commandes affichent est répertorié dans le \vref{tab:raccourcis}. +\end{docCommands} + +\begin{table}[htb] + \centering + \begin{tabular}{ll} + \toprule + \refCom{gutenberg} & \gutenberg \\ + \refCom{gut} & \gut \\ + \refCom{lettre} & \lettre \\ + \refCom{lettregut} & \lettregut \\ + \refCom{Cahier} & \Cahier \\ + \refCom{Cahiers} & \Cahiers \\ \midrule + \refCom{letgut} & \letgut \\ + \refCom{letgutcls} & \letgutcls \\ \midrule + \refCom{knuth} & \knuth \\ + \refCom{lamport} & \lamport \\ + \refCom{tugboat} & \tugboat \\ \bottomrule + \end{tabular} + \caption{Effet des commandes de raccourcis} + \label{tab:raccourcis} +\end{table} + +Par homogénéité avec les commandes \refCom{class} et \refCom{class*}, on aurait +pu souhaiter que les terme et expression \enquote{\letgut} et +\enquote{\letgutcls} soient produits par \refCom{letgut} et +\docAuxCommand*{letgut*}. Mais cette dernière commande, étoilée, a dû être +remplacée par une commande non étoilée (\refCom{letgutcls}), sans quoi un +problème technique aurait empêché l'utilisation de \refCom{letgut} en argument +de \docAuxCommand{section}% +\footnote{Plus de détails + \href{https://tex.stackexchange.com/q/493017/18401}{ici}.}. + +\begin{dbwarning}{Commande \refCom{letgutcls} pas bienvenue en \docAuxCommand{title} et + \docAuxCommand{subtitle}}{} + Lorsqu'elle est employée en argument des commandes \refCom{title} et + \refCom{subtitle}, la commande \refCom{letgutcls} a un effet indésirable + (préfixe pas en grandes capitales). +\end{dbwarning} + +\section{Exemples de codes \hologo{(La)TeX}, possiblement avec résultats} +\label{sec:exemples-de-codes} + +Afin de présenter aisément et de façon homogène les exemples de codes +\hologo{(La)TeX}, possiblement avec leurs résultats, la \letgutcls{} fournit les +environnements \enquote{verbatim} suivants. + +\begin{docEnvironments}[ + doc parameter = \oarg{options}, + doclang/environment content = code, + ]{ + { + doc name = ltx-code, + % doc description = code (seulement), + }, + { + doc name = ltx-code-result, + % doc description = % code + % $+$ résultat (interne), + }, + { + doc name = ltx-code-external-result, + doc parameter = \oarg{options}\marg{fichier}, + % doc description = % code + % $+$ résultat (externe), + }, + } + Ces environnements affichent le \meta{code} \hologo{(La)TeX} qui y est inséré et + pour : + \begin{description} + \item[\refEnv{ltx-code}] seulement ce \meta{code} ; + \item[\refEnv{ltx-code-result}] également le résultat, compilé en même temps + que la \lettre{} ; + \item[\refEnv{ltx-code-external-result}] également le résultat, compilé + indépendamment de la \lettre{} et dont le \meta{fichier} image est spécifié. + \end{description} +\end{docEnvironments} + +\begin{dbremark}{Mise en page des exemples de codes}{} + \begin{enumerate} + \item Les exemples de codes (avec ou sans résultats) sont par défaut + automatiquement coupés en frontière de page. + \item Les exemples de codes avec résultats (environnements + \refEnv{ltx-code-result} et \refEnv{ltx-code-external-result}), présentent + ces codes et résulats : + \begin{itemize} + \item l'un sous l'autre par défaut ; + \item l'un à gauche de l'autre si l'option \lstinline+sidebyside+ est + employée. + \end{itemize} + \end{enumerate} +\end{dbremark} + +\begin{dbwarning}{Exemples de codes avec résultats : possiblement + flottants}{exemples-flottants} + Si l'option \lstinline+sidebyside+ est passée à l'un ou l'autre des + environnements \refEnv{ltx-code-result} et \refEnv{ltx-code-external-result}, + l'exemple : + \begin{itemize} + \item présente ses code et résultat en regard ce qui rend impossible sa + coupure en frontière de page ; + \item est alors automatiquement flottant. + \end{itemize} + Dans le cas où cet exemple (\no\meta{n}) s'avère se trouver sur une page + (\meta{q}) autre que celle (\meta{p}) de son point d'insertion, deux + références croisées sont automatiquement insérées : + \begin{description} + \item[une \enquote{avant} :] au point d'insertion de l'exemple pour indiquer + qu'il est à consulter plus loin ; son texte, \emph{par défaut} + \enquote{Cf. exemple \meta{n} page \meta{q}.}, peut être surchargé au moyen + de l'option \refKey{reference text} ; + \item[une \enquote{arrière} :] à la fin du titre de l'exemple ; son texte est + \enquote{ (cf. page \meta{p})}. + \end{description} +\end{dbwarning} + +Ces trois environnements admettent des \meta{options} : +\begin{itemize} +\item (toutes) celles acceptées par l'environnement + \docAuxEnvironment{tcblisting} et la commande \docAuxCommand{newtcblisting} + fournis par la bibliothèque \lstinline+listings+ du + \package*{tcolorbox}\footnote{Et, aussi, les commandes + \docAuxCommand{DeclareTCBListing} et assimilées fournies par la bibliothèque + \lstinline+xparse+ de ce package.}. Elles permettent notamment de surcharger + les réglages par défaut, par exemple : + \begin{itemize} + \item de faire figurer l'éventuel résultat, non pas sous le code comme c'est + le cas par défaut, mais en regard (à droite) au moyen de l'option + \lstinline+sidebyside+ ; + \item de supprimer les numéros de ligne au moyen de l'option +\bgroup +\lstset{deletekeywords=[3]{none},morekeywords=[4]{none},morekeywords=[3]{listing}} +\begin{ltx-code} +listing options={numbers=none} +\end{ltx-code} +\egroup + \end{itemize} +\item trois spécifiques à ces environnements : + \begin{docKey*}{title addon}{=\meta{supplément au titre}}{\valinitdef} + Cette option permet d'adjoindre un \meta{supplément au titre} de ces + exemples, qui sont par défaut et automatiquement \enquote{Exemple \meta{n}}. + \end{docKey*} + \begin{docKey*}{result width}{=\meta{longueur}}{\valinitdef[\docAuxCommand*{linewidth}]} + Cette option, utile seulement pour l'environnement + \refEnv{ltx-code-external-result}, permet de spécifier une largeur autre que + celle initiale pour le fichier image du résultat, compilé indépendamment de + la \lettre{}. + \end{docKey*} + \begin{docKey*}{reference text}{=\meta{texte}}{\valinitdef[Cf. exemple \meta{n} page \meta{q}.]} + Cette option n'a d'effet que : + \begin{itemize} + \item avec l'un ou l'autre des environnements \refEnv{ltx-code-result} et + \refEnv{ltx-code-external-result} ; + \item lorsque l'option \lstinline+sidebyside+ leur est passée ; + \item lorsque l'exemple s'avère se trouver sur une page autre que + celle de son point d'insertion. + \end{itemize} + Elle permet alors de surcharger le texte \enquote{Cf. exemple \meta{n} page + \meta{q}.} automatiquement inséré au point d'insertion de l'exemple + (cf.~\vref{wa-exemples-flottants})\footnote{Il est par exemple possible de + s'affranchir de ce texte en recourant à \lstinline+reference text=\{\}+.}. + \begin{dbwarning}{\refKey{reference text} avant \lstinline+sidebyside+}{} + Pour qu'elle soit prise en compte, l'option \refKey{reference text} doit + être passée \emph{avant} l'option \lstinline+sidebyside+. + \end{dbwarning} + \end{docKey*} +\end{itemize} + +\begin{dbwarning}{Caractère d'échappement}{} + \lstset{escapechar=}% + La \letgutcls{} définit ×£× comme caractère d'échappement dans \LaTeX{} au + sein d'un code \LaTeX{}. +\end{dbwarning} + +\section{Nouveautés apparues sur le \ctan} +\label{sec:rubr-cons-aux} + +Afin de pouvoir plus aisément lister les nouveautés (packages et classes +\hologo{(La)TeX}, etc.) apparues sur le \ctan{}, la \letgutcls{} fournit le +nouvel environnement de liste \refEnv{ctannews}, similaire à l'environnement +\docAuxEnvironment{description}. +% +\begin{docEnvironment}[doclang/environment content=liste des nouveautés]{ctannews}{} + Cet environnement permet de dresser la \meta{liste des nouveautés} apparues + sur le \ctan{}. +\end{docEnvironment} +% +Chaque \meta{nouveauté} est introduite au moyen de la commande \refCom{item} +suivante. +\begin{docCommands}[ + doc parameter = \oarg{nom}, + ] + { + { doc name = item }, + { doc name = item* }, + } + % + Cette commande affiche le \meta{nom} de la \meta{nouveauté} comme ce serait le + cas pour le \enquote{label} d'une liste de description, ce qui permet ensuite + de décrire la \meta{nouveauté} en question. Le \meta{nom} est en outre un lien + hypertexte vers sa page sur le \ctan{} + (\url{https://ctan.org/pkg/}\meta{nom}). + + La version étoilée \refCom{item*} est dédiée aux nouveautés œuvres de + contributeurs francophones et le logo de la francophonie, alors + automatiquement situé en regard dans la marge, les signale comme telles. +\end{docCommands} + +\bgroup +\lstset{deletekeywords=[3]{l},deletekeywords=[6]{hologo,matapli}} +\begin{ltx-code-external-result}[title addon=nouveautés]{exemple-nouveautes} +\begin{ctannews} +\item[nl-interval] vise à simplifier le processus de représentation + graphique des intervalles de l'axe réel. +\item*[matapli] classe \hologo{LaTeX} destinée à la composition + de la revue Matapli (conçue par \person{Chupin, Maxime}, + secrétaire adjoint de \gutenberg{}). +\end{ctannews} +\end{ltx-code-external-result} +\egroup + +\begin{docCommand}{francophony}{} + Cette commande affiche le logo de la francophonie, ainsi : \francophony. +\end{docCommand} + +\section{Fiches de lecture} +\label{sec:fiches-de-lecture} + +Les fiches de lecture d'un livre sont créées au moyen de l'environnement +\refEnv{bookreview} suivant. + +\begin{docEnvironment}[doclang/environment content=fiche de lecture]{bookreview}{\marg{caractéristiques}} + Cet environnement permet de mettre en page une \meta{fiche de lecture} + caractérisée par les \meta{caractéristiques} suivantes qui sont, selon les + cas : + \begin{description} + \item[obligatoires :] + \begin{docKey}{title}{=\meta{titre}}{\valinitdef} + Cette clé permet de spécifier le \meta{titre} introductif de la fiche. + \end{docKey} + \begin{docKey}{reviewer}{=\meta{rapporteur}}{\valinitdef} + Cette clé permet de spécifier le \meta{rapporteur} de la fiche, à spécifier + selon la syntaxe de la commande \refCom{author}. + \end{docKey} + \begin{docKey}{bibkey}{=\meta{clé}}{\valinitdef} + Cette clé permet de spécifier la \meta{clé} identifiant l'entrée d'un + \file*{.bib} contenant les données bibliographiques du document rapporté. + \end{docKey} + \item[fortement conseillée :] + \begin{docKey}{frontcover}{=\meta{fichier}}{\valinitdef} + Cette clé permet de spécifier le \meta{fichier} image de la couverture du + document rapporté. + \end{docKey} + \item[facultative :] + \begin{docKey}{price}{=\meta{prix}}{\valinitdef} + Cette clé permet le cas échéant de spécifier le \meta{prix} du document rapporté. + \end{docKey} + \end{description} +\end{docEnvironment} + +\section{Acronymes} +\label{sec:acronymes} + +Nombreux sont les articles de la \lettre{} susceptibles de contenir des +acronymes peut-être pas connus de tous. Aussi est-il opportun que, lors de leur +première occurrence, ceux-ci soient explicités. + +Pour automatiser cela, la \letgutcls{} s'appuie sur le \package*{acro} ; +toutefois, pour à la fois simplifier la création desdits acronymes et étendre +(légèrement) les fonctionnalités offertes par \package{acro}, elle fournit la +commande dédiée \refCom{letgutacro}. + +\begin{docCommand}{letgutacro}{\oarg{options}\marg{COURT}\marg{long}\oarg{traduction + française}} + \index{acronyme}% + Cette commande permet de créer un nouvel acronyme en spécifiant : + \begin{itemize} + \item sa forme courte \meta{COURT}, \emph{obligatoirement en grandes + capitales} ; + \item sa forme longue \meta{long}. + \end{itemize} + En outre, le 1\ier{} et 2\ieme{} arguments \emph{optionnels} permettent de, + respectivement : + \begin{itemize} + \item passer à la commande \docAuxCommand{DeclareAcronym} (de création + d'acronymes du \package*{acro} agissant en sous-main) des \meta{options} qui + lui sont propres, permettant ainsi de surcharger les options par défaut + passées à cette commande par \refCom{letgutacro} ; + \item signaler que l'acronyme provient de l'anglais et d'en spécifier la + \meta{traduction française} (éventuellement vide si celle-ci n'est pas + pertinente). + \end{itemize} + + L'acronyme ainsi créé a pour identifiant \meta{court}, c'est-à-dire + la version \emph{en bas de casse} de \meta{COURT}, et peut donc + être employé au moyen des commandes fournies par le \package*{acro}, par + exemple : + \begin{itemize} + \item ×\ac{×\meta{court}×}×\footnote{Acronyme automatiquement affiché sous sa + forme complète à sa 1\iere{} occurrence, sous sa forme courte à ses + occurrences suivantes.} ; + \item ×\acs{×\meta{court}×}×\footnote{Acronyme affiché sous sa forme courte + seulement.}. + \end{itemize} + Toutefois, pour simplifier l'usage de ces acronymes, la \letgutcls{} crée + alors automatiquement une commande \docAuxCommand{\meta{court}}% + \footnote{% + Sauf si elle existe déjà, auquel cas la création d'une telle commande est + silencieusement escamotée. Ainsi par exemple, l'acronyme + % + \lstinline!\\letgutacro[...]\{TIKZ\}\{...\}[...]! + % + fourni par \letgut{} (cf. \vpageref{liste-acronymes}) ne surcharge-t-il + pas la commande \docAuxCommand{tikz} fournie notamment par le + \package*{tikz}.% + } + % + qui agit comme : + \begin{itemize} + \item ×\ac{×\meta{court}×}× en version non étoilée ; + \item ×\acs{×\meta{court}×}× en version étoilée. + \end{itemize} +\end{docCommand} +Ainsi, l'acronyme utilisé via \docAuxCommand{\meta{court}} figure, pour ses +occurrences : +\begin{description} +\item[première :] sous la forme \meta{\textsc{court}}\footnote{C'est-à-dire + \meta{court} en petites capitales.} suivi d'une note de bas de + page contenant \enquote{\meta{long}.} ; +\item[suivantes :] sous la forme \meta{\textsc{court}}. +\end{description} + +En outre : +\begin{itemize} +\item cette commande peut être utilisée sans restriction en argument des + commandes \refCom{title}, \refCom{subtitle}, \refCom{section}, + \refCom{subsection}, etc. et l'acronyme figure sous sa forme \meta{COURT} dans + les \foreignloc{bookmarks} (signets) ; +\item un copié de \meta{\textsc{court}} colle \meta{COURT}. +\end{itemize} + +\begin{dbwarning}{\refCom{letgutacro} : uniquement en préambule}{} + La définition d'acronymes au moyen de \refCom{letgutacro} ne peut se faire + qu'en préambule. +\end{dbwarning} + +Ainsi, avec les définitions suivantes en préambule : + +\bgroup +\lstset{deletekeywords={and},deletekeywords=[3]{and,emph,n,german},deletekeywords=[4]{and,TeX}} +\begin{ltx-code}[title addon=définition d'acronymes,drop lifted shadow] +% Acronyme français +\letgutacro{LD}{\LaTeX{} dépendant} + +% Acronyme anglais avec traduction française +\letgutacro{TLMGR}{\TeX~Live Manager}[gestionnaire \TeX~Live] + +% Acronyme anglais sans traduction française +\letgutacro{CD}{Compact Disc}[] + +% Acronyme anglais avec surcharge : +% - `short=no-op` : l'acronyme est « no-op » (en bas de casse) +% et le nom de la commande sous-jacente ne peut être \no-op +% (tiret interdit) +% - `short-format=\upshape` : les petites capitales sont +% désactivées +\letgutacro[short=no-op,short-format=\upshape] +{NOOP} +{No Operation} +[instruction nulle] + +% Acronyme en allemand : +\letgutacro[ + short=\emph{Ti\emph{k}Z}, + short-format=\em, + foreign-babel=german, + foreign-locale=allemand] +{TIKZ} +{Ti\emph{k}Z ist \emph{kein} Zeichenprogramm} +[Ti\emph{k}Z \emph{n'}est \emph{pas} un programme de dessin] +\end{ltx-code} +\egroup + +a-t-on : + +\bgroup +\lstset{deletekeywords=[3]{cd,tikz,on},deletekeywords=[4]{on},deletekeywords=[6]{cd}} +\begin{ltx-code-result}[title addon=utilisation d'acronymes] +On dispose désormais pour \enquote{\LaTeX{} dépendant} +d'un acronyme qu'on peut utiliser par exemple +\begin{itemize} +\item ainsi : \ac{ld} ou \acs{ld} ; +\item ou bien ainsi : \ld{} ou \ld*{}. +\end{itemize} + +On peut également employer les acronymes : +\begin{itemize} +\item \cd{}, \cd{} ; +\item \tlmgr{}, \tlmgr{} ; +\item \noop{}, \noop{} ; +\item \ac{tikz}, \ac{tikz}. % Noter le non emploi de `\tikz' +\end{itemize} +\end{ltx-code-result} +\egroup + +Les noms des commandes sous-jacentes ne doivent contenir que des lettres, mais +celles-ci peuvent être accentuées. Ainsi, avec la définition suivante en +préambule : + +\bgroup +\lstset{deletekeywords=[3]{and}} +\begin{ltx-code}[title addon=définition d'acronyme avec lettres + accentuées,drop lifted shadow] +\letgutacro{CPGÉ}{Classes Préparatoires aux Grandes Écoles} +\end{ltx-code} +\egroup + +a-t-on : + +\bgroup +\lstset{deletekeywords=[3]{l}} +\begin{ltx-code-result}[title addon=utilisation d'acronyme avec lettres accentuées] +On peut également employer l'acronyme \cpgé{}, \cpgé{}. +\end{ltx-code-result} +\egroup + +La \letgutcls{} fournit un \file*{letgut-acronyms.tex} dans lequel sont définis +plusieurs acronymes anglais et français, directement utilisables. Ceux-ci sont +répertoriés \vpageref{liste-acronymes}. + +\section{Séparateurs} +\label{sec:filets} + +Il est parfois utile d'accentuer la séparation entre les articles de la +\lettre. Ceci peut se faire au moyen de la commande \refCom{separator} qui +insère un filet horizontal. + +\begin{docCommand}{separator}{} + \index{séparateur}% + Cette commande permet d'accentuer la séparation entre deux articles. +\end{docCommand} + +\section{Boîtes d'alertes} +\label{sec:boites-dalertes} + +\begin{docCommand}{alertbox}{ \oarg{couleur}\marg{texte} } + \index{alerte}% + Cette commande insère une boîte d'alerte : + \begin{itemize} + \item optionnellement de \meta{couleur} de fond (à spécifier selon le modèle + \enquote{\foreignloc{named}}) autre que celle par défaut\footnote{C'est-à-dire + \colorbox{letgut_default_alert_box_color}{celle-ci}% , nommée + % \docColor{letgut_default_alert_box_color} et égale + % à \docValue*{\letgutalertboxdefaultcolor} + .} ; + \item contenant le \meta{texte} (qui peut contenir plusieurs paragraphes). + \end{itemize} +\end{docCommand} + +\bgroup +\lstset{deletekeywords=[5]{en}} +\begin{ltx-code-result}[title addon=boîtes d'alertes] +\alertbox{% + Adhérez, adhérez, il en restera toujours quelque chose !% +} +\alertbox[yellow]{% + Adhérez, adhérez ! + + Il en restera toujours quelque chose...% +} +\end{ltx-code-result} +\egroup + +\section{Fichier local de configuration} +\label{sec:fichier-local-de} + +Chaque numéro de la \lettre{} nécessite certaines configurations locales : +configuration dédiée au numéro en question, packages particuliers utilisés dans +les articles, configurations propres du \package*{listings}, etc. Afin de ne pas +encombrer le \file*{.tex} principal de la \lettre{}, un fichier de configuration +locale nommé +% +\ExplSyntaxOn +\file{ + \tl_use:N \c__letgut_local_config_file_tl.tex +}~ +\ExplSyntaxOff +% +est, si présent dans le répertoire courant, automatiquement inclus à la fin +du préambule. + +\title{Aspects de la 1\iere{} page} +\label{sec:mise-en-page} + +La première page de la \lettre{} comporte : +\begin{itemize} +\item une bannière sous forme d'un très grand \enquote{L} en noir sur lequel + figurent de la couleur de fond de la page, en gras, dans sa partie : + \begin{itemize} + \item verticale, \enquote{La} puis, chacune sur une ligne, les lettres du mot + \enquote{Lettre} en grandes capitales ; + \item horizontale, \enquote{\gut}. + \end{itemize} +\item un très grand \enquote{g}, en filigrane et en gris clair. +\end{itemize} +La fonte de ces deux éléments est la principale utilisée (spécifiée au moyen de +\docAuxCommand{setmainfont}). + +Pour ce faire, la classe charge le package maison \package{letgut-banner} qui +n'est pas décrit ici. + +\title{Les dinosaures, leur écosystème et \letgut} +\label{recours-docker} + +Pour à la fois : +\begin{itemize} +\item disposer d'une version suffisamment récente de \hologo{LuaLaTeX} + pour la présente \letgutcls{} (cf. \vref{wa-lualatex-recent}) ; +\item éviter de perturber une installation existante de \hologo{(La)TeX} ; +\end{itemize} +on pourra recourir à \docker{}\footnote{Cerise sur le gâteau : un temps de + compilation éventuellement réduit de façon significative. Ainsi, celui de la + présente documentation est-il sur la machine de \person{Bitouzé, Denis} d'un + peu plus de \SI{13}{\s} avec \docker{} et de plus de \SI{30}{\s} par le biais + habituel.} dont cette section est un mode d'emploi : +\begin{itemize} +\item express ; +\item axé sur Linux, mais qui devant s'appliquer au moins en partie aux autres + systèmes d'exploitation ; +\item axé sur la \tl{}. +\end{itemize} + +\begin{dbwarning}{Commande \software{sudo} peut-être nécessaire}{} + Les commandes \docker*{} ci-après ne sont pas précédées de \software{sudo} + mais, selon les systèmes d'exploitation, elles peuvent devoir l'être. +\end{dbwarning} + +On commence par installer \docker*{} puis à lancer le service +\docker*\footnote{Pour Ubuntu, cf. par exemple + \href{https://doc.ubuntu-fr.org/docker}{ce guide}.}. + +Ensuite, par exemple depuis un dossier où se trouve un \file*{mon-fichier.tex} (disons +à compiler avec \hologo{LuaLaTeX}), on lance la longue commande suivante +(\emph{qui doit être sur une seule ligne}\footnote{% + Pour la copier d'un seul bloc, il devrait suffire de \emph{copier} (et non de + \emph{cliquer sur}) l'icône suivante +% \marginpar{% + \BeginAccSupp{method=plain,ActualText={% + docker run -i --rm --name latex -v "$PWD":/usr/src/app -w /usr/src/app registry.gitlab.com/islandoftex/images/texlive:latest-with-cache lualatex mon-fichier + }% + }% + \faCopy[regular]%$$ + \EndAccSupp{}% +% }% +}) : + +% \begin{listingshell} +% docker run --rm -it -v $(pwd):/workdir danteev/texlive lualatex mon-fichier +% \end{listingshell} + +\begin{listingshell} +docker run -i --rm --name latex -v "$PWD":/usr/src/app -w /usr/src/app registry.gitlab.com/islandoftex/images/texlive:latest-with-cache lualatex mon-fichier +\end{listingshell} + +La toute première fois, cela provoque le téléchargement de plusieurs fichiers, +dont celui assez lourd de l'image d'une version allégée de la \tl{}~2021 +(délestée des sources et des documentations) puis lance la compilation +demandée. + +Pour simplifier les compilations ultérieures, on aura intérêt à créer dans son +\file*{.bashrc} (ou \file{.zshrc}, etc.) un ou plusieurs alias de la forme : + +\begin{tcblisting}{listing only,breakable,listing options={style=tcblatex,language=bash}} +alias docker-texlive='docker run -i --rm --name latex -v "$PWD":/usr/src/app -w /usr/src/app registry.gitlab.com/islandoftex/images/texlive:latest-with-cache' +alias docker-pdflatex='docker-texlive pdflatex' +alias docker-xelatex='docker-texlive xelatex' +alias docker-lualatex='docker-texlive lualatex' +alias docker-biber='docker-texlive biber' +alias docker-makeglossaries='docker-texlive makeglossaries' +alias docker-latexmk-pdf='docker-texlive latexmk -pdf' +alias docker-latexmk-xe='docker-texlive latexmk -pdfxe' +alias docker-latexmk-lua='docker-texlive latexmk -pdflua' +\end{tcblisting} + +pour pouvoir compiler au moyen de seulement\footnote{En lançant préalablement + \lstinline[language=bash]+source ~/.bashrc+ (ou assimilé) afin de pouvoir en + bénéficier dans un terminal déjà ouvert.} : + +\begin{listingshell} +docker-latexmk-lua mon-fichier +\end{listingshell} + +\title{Packages chargés par \letgut{}} +\label{sec:packages-charges-par} + +La \letgutcls{} charge en sous-main un certain nombre de packages utiles, voire +nécessaires, à son codage. Elle en charge également certains pas indispensables, +mais considérés comme \enquote{incontournables} pour que les auteurs de la +\lettre{} puissent (aisément) composer un \enquote{joli} document. Nous en +dressons ci-après la liste en les regroupant selon ces deux catégories. + +\section{Packages utiles aux auteurs de la \lettre{}} +\label{sec:utiles-aux-auteurs} + +\begin{ctannews} +\item[fontspec] fontes \otf{}. +\item[microtype] raffinements subliminaux vers la perfection typographique. + \begin{description} + \item[Options :] \docAuxKey*{stretch=30}, \docAuxKey*{shrink=25}, + \docAuxKey*{letterspace=150}. + \end{description} +\item[graphicx] prise en charge améliorée des graphiques. +\item[array] extension des environnements \docAuxEnvironment*{array} et + \docAuxEnvironment*{tabular}. +\item[fancyvrb] notamment pour permettre l'usage de commandes \enquote{verbatim} + dans les notes de bas de page. +\item[booktabs] tableaux de qualité. +\item[csquotes] facilités de citations, en ligne et hors-texte, sensibles au + contexte. +\item[amsmath] nombreux outils utiles pour la composition mathématique. +\item[mathtools] étend les fonctionnalités et corrige certaines déficiences + d'\package{amsmath} et de \hologo{LaTeX}. + \begin{description} + \item[Option :] \docAuxKey*{fleqn}. + \end{description} +\item[siunitx] aide à la saisie et à l'affichage cohérent des nombres, unités et + quantités. + \begin{description} + \item[Options :] \docAuxKey*{locale=FR}, \docAuxKey*{mode=text}. + \end{description} +\item[hologo] collection de logos habituels (\hologo{LaTeX}, \hologo{LaTeX2e}, + etc.) avec support pour les signets. +\item[xcolor] accès facile, indépendant du pilote, à plusieurs types de teintes, + de nuances, de tons et de mélanges de couleurs arbitraires. + \begin{description} + \item[Option :] \docAuxKey*{table}. + \end{description} +\item[ninecolors] sélection de couleurs avec contraste \wcag{} approprié. +\item[tabularray] mise en page de tableaux et de matrices offrant une séparation + complète des contenus et styles. Ce package très récent (sorti le 14 mai 2021) + est utilisé dans le code de la classe pour la création de boîtes d'alertes + \enquote{légères}, c.-à-d. ne nécessitant notamment pas le chargement + (indirect) du package \ac{tikz} qui augmente significativement le temps de + compilation ; mais il pourrait (devrait) être utile également aux auteurs de + la \lettre{}. +\item[babel] support multilingue. + \begin{description} + \item[Options :] \docAuxKey*{english}, \docAuxKey*{french} ; + \item[Configuration] \lstinline+\renewcommand*\frenchtablename{Tableau}+. + \end{description} +\item[varioref] références de pages intelligentes. + \begin{description} + \item[Options :] \docAuxKey*{nospace}, \docAuxKey*{french}. + \end{description} +\item[eurosym] symbole et montants en \euro{}. + \begin{description} + \item[Option :] \docAuxKey*{right}. + \end{description} +\item[listings] composition des listings informatiques. + \begin{description} + \item[Options :] \docAuxKey*{basicstyle=\ttfamily}, \docAuxKey*{frame=single}, + \docAuxKey*{belowskip=0pt}\footnote{Cette dernière option du fait + d'\href{https://github.com/FrankMittelbach/fmitex-parskip/issues/3}{un + problème actuel} impliquant les packages \package{parskip} et + \package{listings}.}. + \end{description} +\item[floatrow] nombreuses possibilités de personnalisation de la disposition + des flottants. + \begin{description} + \item[Options :]\leavevmode{} + \begin{itemize} + \item \docAuxKey*{objectset=justified} ; + \item \docAuxKey*{style=__letgut_ruled}\footnote{Style propre à la classe.} + et \docAuxKey*{margins=hangleft} pour les figures ; + \item \docAuxKey*{capposition=top} pour les tableaux. + \end{itemize} + \end{description} +\item[biblatex] bibliographies sophistiquées. + \begin{description} + \item[Option :] \docAuxKey*{sorting=none}. + \end{description} +\item[acro] création simple d'acronymes\footnote{Pour la gestion des acronymes, + il était initialement prévu de recourir au \package*{glossaries-extra} mais + celui-ci augmente significativement le temps de compilation.}. + \begin{description} + \item[Options :]\leavevmode{} + \begin{itemize} + \item \docAuxKey*{first-style=footnote} ; + \item \docAuxKey*{format/short=}\lstinline|\scshape| ; + \item \docAuxKey*{format/foreign=}\lstinline|\em| ; + \item \docAuxKey*{foreign/display} ; + \item \docAuxKey*{locale/display} ; + \item \docAuxKey*{locale/format=}\lstinline|\upshape|. + \end{itemize} + \end{description} +\item[hyperref] prise en charge étendue de l'hypertexte. + \begin{description} + \item[Options :]\leavevmode{} + \begin{itemize} + \item \docAuxKey*{draft} si l'option de classe \refKey{paper} est utilisée ; + \item \docAuxKey*{colorlinks}, \docAuxKey*{allcolors={letgut_allcolors_links}} + sinon. + \end{itemize} + \end{description} +\item[hypcap] ajustement des ancres des légendes. + \begin{description} + \item[Option :] \docAuxKey*{all}. + \end{description} +\item[cleveref] détermination automatique du format des références en fonction + du type de référence. + \begin{description} + \item[Option :] \docAuxKey*{french}. + \end{description} +\item[lua-typo] mise en lumière, par un changement de couleur, des lignes + typographiquement imparfaites avec \hologo{LuaLaTeX}. + \begin{description} + \item[Option :] \docAuxKey*{All}. + \end{description} +\end{ctannews} + +\section{Packages utiles au codage de la classe \letgut} +\label{sec:utiles-au-codage} + +\begin{ctannews} +\item[l3keys2e] traitement \hologo{LaTeX2e} des options de classe en utilisant + les clés \hologo{LaTeX3}. +\item[parskip] mise en page de paragraphes séparés par un blanc vertical au lieu + (ou en plus) d'un retrait. +\item[fancyhdr] contrôle étendu des en-têtes et des pieds de page. +\item[geometry] interface flexible et complète pour les dimensions des + documents. + \begin{description} + \item[Options :] \docAuxKey*{a4paper}, \docAuxKey*{asymmetric}. + \end{description} +\item[etoc] tables des matières entièrement personnalisables. +\item[enumitem] contrôle de la mise en page de \docAuxEnvironment*{itemize}, + \docAuxEnvironment*{enumerate}, \docAuxEnvironment*{description} et permet de + cloner les environnements standards et créer de nouveaux + environnements. Utilisé pour la création de l'environnement \refEnv{ctannews}. +\item[titlesec] personnalisation aisée des titres de sections, etc. +\item[placeins] contrôle du placement des flottants permettant de s'assurer que + ceux d'une section (donc d'un article dans le cas de la \lettre{}) + apparaissent avant la commande \docAuxCommand*{section} suivante. + \begin{description} + \item[Options :] \docAuxKey*{section}, \docAuxKey*{above}. + \end{description} +\item[accsupp] notamment remplacement de texte lors des copiés-collés, utilisé + en particulier pour que les acronymes, composés en petites capitales par + \letgut{}, une fois copiés, soient collés en grandes capitales. +\item[letgut-banner] bannière de la 1\iere{} page de la \lettre{}. +\end{ctannews} + +\printacronyms[ +, heading=title +% , template=longtable +, preamble={\label{liste-acronymes}} +, display=all +, exclude=thisdocument +, name={Liste des acronymes prédéfinis par \letgut} +] + +\printbibliography[heading=title] + +% \listoffigures +% \listoftables +\tcblistof[\title]{dbwarninglist}{Table des avertissements}% +% \tcblistof[\title]{dbremarklist}{Table des remarques}% +% +\phantomsection +\indexprologue{% + Afin de différencier leurs natures, les entrées de cet index sont affichées + en couleurs (variées) lorsqu'elles correspondent à des : + \begin{itemize} + \item commandes ; + \item environnements ; + \item clés ; + \item valeurs de clé ; + \end{itemize} +}% +% \renewcommand{\indexname}{Index des commandes} +% \printindex[\jobname-commands] +% % +% \phantomsection +% \indexprologue{% +% Dans cet index, un numéro de page : +% \begin{description} +% \item[en gras] indique une page contenant une information importante sur +% l'entrée correspondante, par exemple sa définition ; +% \item[en italique] indique une page contenant un exemple qui illustre +% l'entrée correspondante. +% \end{description} +% }% +% \renewcommand{\indexname}{Index des concepts} +\printindex +\end{document} + +%%% Local Variables: +%%% mode: latex +%%% TeX-engine: luatex +%%% TeX-master: t +%%% End: |