[latexrefman-commits] [SCM] latexrefman updated: r565 - trunk

vincentb1 at gnu.org.ua vincentb1 at gnu.org.ua
Wed Jul 26 22:39:09 CEST 2017


Author: vincentb1
Date: 2017-07-26 23:39:09 +0300 (Wed, 26 Jul 2017)
New Revision: 565

Modified:
   trunk/ChangeLog
   trunk/latex2e-fr.texi
   trunk/latex2e.texi
Log:
Take Jim's r560 & r397 edits (mainly commands for class/package authors). 

* latex2e-fr.texi (<header comment>): Add reference to
https://www.latex-project.org/help/books/lc2fr-apb.pdf, as far as
translation is concerned.
(Starting and ending): Fix @cindex translation.
(\@@startsection): Typo.
(\@@ifstar): Typo.
(Document classes): Add menu entries `Additional packages' and
`Class and package construction', as per Jim's r560 edits of 2017-07-21.
(Document class options): typo.
(Additional packages): Create new node entry, as per Jim's r560
edits of 2017-07-21.
(Class and package commands, Class and package construction): New
nodes, as per Jim's r560 edits of 2017-07-21.
(document): Add \AtBeginDocument &
\AtEndDocument sub node, as per Jim's r397 edits of 2015-08-11.
(itemize): Typo.

* latex2e.texi (Class and package construction): Re-word avout
\makeat's surrounding, because the catcode must be changed outside
a macro definition, and not within it so that any @-char is
interpreted as a letter in the definition. Reword `interact' -> `interfere'.
(Class and package structure): Use an enumerate env for
enumerating. @dfn{...}-ize name of each part of the class/package file.
@code{...} -> @file{...} for file names.
(Class and package commands): Clarify that within
error/warning/info message, command \space is useful only after a
command name, as the usual space char can be used otherwise. Fix
prototype of \DeclareLOption* --- takes no @var{option}.
(Class and package commands): \IfFileExists, \InputIfFileExists,
use argument in description. Use @file{...} for file names. Add
@comment about at-macros for handling release date with more
refinement.
(Class and package commands): \ExecuteOptions, push @var{option}
into @code{...} for @code{\ds@@@var{option}}.
(Class and package commands): @comment, I do not understand ``that
you invoked''.
(Class and package commands): @var{option+s+ list} -> @var{option
list}.
(Class and package commands): If your code -> If your _own_ code
(Class and package commands): Cascaded package loading, clarify
text about how options get through.
(Class and package commands): \ProcessOpitons `Execute the code
+for+ each option' -> `Execute the code _associated with_ each
option'
(Class and package commands): @dfn{}-ize `global' and `local'
options.
(Class and package commands): Use enumerate env for enumerating.
(Class and package commands):
`@code{\ProcessOptions*}@var{\@@options}' ->
`@code{\ProcessOptions*}', fix this, probably a confusion with
`ds at ...' macros.
(Class and package commands): \ProvidesClass, \ProvidesPackage,
give synopsis with and w/o brief additional info.
(Class and package commands): optional part/portion -> optional
argument.
(Class and package commands): Place a version number also in the
brief additional information, as this is what people usually do.
(Class and package commands): smcmem -> smcmemo for consistency.
(Class and package commands): `by using the optional +calls+' ->
`by using the optional _arguments_'.
(Class and package commands): \ProvidesFile, relate @var{...}
arguments and description text.
(Class and package commands): \RequirePackage, author -> document
author, to distinguish from class/package authors.


Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2017-07-26 20:32:20 UTC (rev 564)
+++ trunk/ChangeLog	2017-07-26 20:39:09 UTC (rev 565)
@@ -1,3 +1,70 @@
+2017-07-26  Vincent Belaïche  <vincentb1 at users.sourceforge.net>
+
+	* latex2e-fr.texi (<header comment>): Add reference to
+	https://www.latex-project.org/help/books/lc2fr-apb.pdf, as far as
+	translation is concerned.
+	(Starting and ending): Fix @cindex translation.
+	(\@@startsection): Typo.
+	(\@@ifstar): Typo.
+	(Document classes): Add menu entries `Additional packages' and
+	`Class and package construction', as per Jim's r560 edits of 2017-07-21.
+	(Document class options): typo.
+	(Additional packages): Create new node entry, as per Jim's r560
+	edits of 2017-07-21.
+	(Class and package commands, Class and package construction): New
+	nodes, as per Jim's r560 edits of 2017-07-21.
+	(document): Add \AtBeginDocument &
+	\AtEndDocument sub node, as per Jim's r397 edits of 2015-08-11.
+	(itemize): Typo.
+
+	* latex2e.texi (Class and package construction): Re-word avout
+	\makeat's surrounding, because the catcode must be changed outside
+	a macro definition, and not within it so that any @-char is
+	interpreted as a letter in the definition. Reword `interact' -> `interfere'.
+	(Class and package structure): Use an enumerate env for
+	enumerating. @dfn{...}-ize name of each part of the class/package file.
+	@code{...} -> @file{...} for file names.
+	(Class and package commands): Clarify that within
+	error/warning/info message, command \space is useful only after a
+	command name, as the usual space char can be used otherwise. Fix
+	prototype of \DeclareLOption* --- takes no @var{option}.
+	(Class and package commands): \IfFileExists, \InputIfFileExists,
+	use argument in description. Use @file{...} for file names. Add
+	@comment about at-macros for handling release date with more
+	refinement.
+	(Class and package commands): \ExecuteOptions, push @var{option}
+	into @code{...} for @code{\ds@@@var{option}}.
+	(Class and package commands): @comment, I do not understand ``that
+	you invoked''.
+	(Class and package commands): @var{option+s+ list} -> @var{option
+	list}.
+	(Class and package commands): If your code -> If your _own_ code
+	(Class and package commands): Cascaded package loading, clarify
+	text about how options get through.
+	(Class and package commands): \ProcessOpitons `Execute the code
+	+for+ each option' -> `Execute the code _associated with_ each
+	option'
+	(Class and package commands): @dfn{}-ize `global' and `local'
+	options.
+	(Class and package commands): Use enumerate env for enumerating.
+	(Class and package commands):
+	`@code{\ProcessOptions*}@var{\@@options}' ->
+	`@code{\ProcessOptions*}', fix this, probably a confusion with
+	`ds at ...' macros.
+	(Class and package commands): \ProvidesClass, \ProvidesPackage,
+	give synopsis with and w/o brief additional info.
+	(Class and package commands): optional part/portion -> optional
+	argument.
+	(Class and package commands): Place a version number also in the
+	brief additional information, as this is what people usually do.
+	(Class and package commands): smcmem -> smcmemo for consistency.
+	(Class and package commands): `by using the optional +calls+' ->
+	`by using the optional _arguments_'.
+	(Class and package commands): \ProvidesFile, relate @var{...}
+	arguments and description text.
+	(Class and package commands): \RequirePackage, author -> document
+	author, to distinguish from class/package authors.
+
 2017-07-26  Jim Hefferon  <jhefferon at smcvt.edu>
 
 	* latex2e.texi: (\makeatletter and \makeatother) Give an example

Modified: trunk/latex2e-fr.texi
===================================================================
--- trunk/latex2e-fr.texi	2017-07-26 20:32:20 UTC (rev 564)
+++ trunk/latex2e-fr.texi	2017-07-26 20:39:09 UTC (rev 565)
@@ -35,6 +35,9 @@
 @c    http://www.cavi.univ-paris3.fr/phalese/desslate/index.htm
 @c    http://cahiers.gutenberg.eu.org/cg-bin/article/CG_2007___49_19_0.pdf
 @c Ainsi que http://gdt.oqlf.gouv.qc.ca/
+ at c
+ at c Autres ressources:
+ at c https://www.latex-project.org/help/books/lc2fr-apb.pdf
 
 @copying
 Ce document est un manuel de référence officieux pour @LaTeX{}, un
@@ -284,8 +287,8 @@
 @section Début et fin
 
 @anchor{Starting & ending}@c ancien nom du noeud
- at cindex de démarrage et de fin
- at cindex fin et à partir
+ at cindex début et fin
+ at cindex fin et début
 @cindex Bonjour le monde
 
 Les fichiers @LaTeX{} ont une structure globale simple, avec un début et
@@ -705,7 +708,7 @@
 
 @item avant
 @anchor{\@@startsection/beforeskip}
-Longueur dont la valeur absolue est la longueur de l'espace verticale à
+Longueur dont la valeur absolue est la longueur de l'espace vertical à
 insérer avant le titre. Pour une bonne composition, utilisez une
 longueur élastique.
 
@@ -808,7 +811,7 @@
 du nom lui-même, et pourrait donc être à n'importe quelle position, dans le nom
 d'une commande l'étoile est comme une sorte d'argument optionnel. D'un point de
 vue purement @TeX{}nique il est donc possible de mettre un nombre indéfini
-d'espace entre la commande et l'étoile. Ainsi @code{\agentsecret*@{Bond@}} et
+d'espaces entre la commande et l'étoile. Ainsi @code{\agentsecret*@{Bond@}} et
 @code{\agentsecret *@{Bond@}} sont équivalents. Toutefois la pratique commune
 est de ne jamais insérer de tels espaces.
 
@@ -845,7 +848,10 @@
 Les @var{options} standardes sont décrites ci-dessous.
 
 @menu
-* Options de classe de document:Document class options. Options globales
+* Options de classe de document: Document class options. Options globales
+* Ajout de paquetage: Additional packages. Ajouter des paquetages.
+* Construction d'extension (classe ou paquetage): Class and package construction.   Créer des
+ nouvelles extensions (classe ou paquetage).
 @end menu
 
 @node Document class options
@@ -972,7 +978,7 @@
 distance sur les pages de numéro pair (impair) entre le côté gauche de
 la page et la marge gauche du texte. Les valeurs par défaut varient en
 fonction de la taille du papier, de la disposition recto ou
-recto-version sélectionnée. Pour une impression en recto le texte est
+recto-verso sélectionnée. Pour une impression en recto le texte est
 centré, pour recto-verso, @code{\oddsidemargin} vaut 40% de la
 différence entre @code{\paperWidth} et @code{\textwidth},
 @code{\evensidemargin} valant le reste.
@@ -987,6 +993,9 @@
 temps au bas de chaque note.
 
 
+ at node Additional packages
+ at section Ajout de paquetages
+
 @cindex paquetages, le chargement
 @cindex chargement des paquetages supplémentaires
 @findex \usepackage
@@ -1007,6 +1016,500 @@
 paquetages chargés par @code{\usepackage}.
 
 
+ at node Class and package construction
+ at section Construction des extensions (classes et paquetages)
+
+ at cindex commandes des classes de document
+ at cindex classe de document, commandes
+ at cindex nouvelles classes, commandes
+
+Vous pouvez créer de nouvelles classes de document, et de nouveaux
+paquetages. Par exemple, si vos notes doivent répondre à des exigences
+locales, telles qu'une en-tête standarde pour chaque page, alors vous
+pourriez créer une nouvelle classe @code{cmsnote.cls} et commencer vos
+documents par @code{\documentclass@{cmsnote@}}.
+
+Ce qui distingue un paquetage d'une classe de document c'est que les
+commandes d'une paquatage sont utilisables pour différentes classes
+alors que celles dans une classes de document sont spécifiques à cette
+classes. Ainsi, une commande qui permet de régler les en-têtes de pages
+irait dans un paquetage alors qu'une commande intitulant en-têtes de
+pages par @code{Note du service de mathématique de la CMS} irait dans
+une classe.
+ at cindex classe et paquetage, différence
+ at cindex différence entre classe et paquetage
+
+Au sein d'un fichier classe pour paquetate on peu utiliser l'arobe
+ at code{@@} comme un caractère dans les noms de commande sans avoir à
+entourer le code contenant la commande en question par
+ at code{\makeatletter} et @code{\makeatother}.  @xref{\makeatletter and
+\makeatother}. Ceci permet de créer des commandes que les utilisateurs
+ne risquent pas de redéfinir accidentellement. Une autre technique est
+de préfixer les commandes spécifiques à une classe ou paquetage avec une
+chaîne particulière, de sorte à empêcher votre classe ou paquetage
+d'interférer avec d'autres. Par exemple, la classe @code{notecms}
+pourrait avoir des commandes @code{\cms@@tolist}, @code{\cms@@fromlist},
+etc.
+
+
+ at menu
+* Structure d'une extension: Class and package structure. Disposition du fichier.
+* Commande pour extensions: Class and package commands. Liste des commandes.
+ at end menu
+
+
+ at node Class and package structure
+ at subsection  Structure d'une extension (classe ou paquetage)
+
+ at cindex classe et paquetage, structure
+ at cindex extension, structure
+ at cindex classe, disposition du fichier
+ at cindex paquetage, disposition du fichier
+ at cindex options pour classe de document
+ at cindex options pour paquetage
+ at cindex classe, options
+ at cindex paquetage, options
+
+Un fichier de classe pour paquetage comprend typiquement quatre parties.
+ at enumerate
+ at item
+Dans la @dfn{partie d'identification} le fichier dit s'il s'agit d'un
+paquetage ou d'une classe @LaTeX{} et s'auto-décrit, en utilisant les
+commandes @code{\NeedsTeXFormat} et @code{\ProvidesClass} ou
+ at code{\ProvidesPackage}.
+ at item
+La partie des @dfn{déclarations préliminaires} déclare des commandes et
+peut aussi charger d'autres fichiers. D'ordinaire ces commandes sont
+celles nécessaires au code utilisé dans la partie suivante. Par exemple,
+une classe @code{notecms} pourrait être appelée avec une option pour lire
+un fichier où est défini une liste de personnes désignées comme
+destinataires de la note, comme
+ at code{\documentclass[destinataires-math]@{notecms@}}, et donc on a
+besoin de définir une commande
+ at code{\newcommand@{\defdestinataires@}[1]@{\def\@@liste@@destinataires@{#1@}@}}
+à utiliser dans ce fichier.
+ at item
+Dans la partie de @dfn{gestion des options} la classes ou le
+paquetage déclare et traite ses options.  Les options de classes
+permette à l'utilisateur de commencer leur document comme dans
+ at code{\documentclass[@var{liste d'options}]@{@var{nom de la classe}@}},
+pour modifier le comportement de la classe. Un exemple est lorsque on
+déclare @code{\documentclass[11pt]@{article@}} pour régler la taille par
+défaut de la police du document.
+ at item
+Finalement, dans la partie des @dfn{déclarations supplémentaires} la
+classe ou le paquetage effectue la plus grosse partie de son travail :
+déclarant de nouvelles variables, commandes ou polices, et chargeant
+d'autres fichiers.
+ at end enumerate
+
+Voici le commencement d'un fichier de classe, ce qui doit être
+sauvegardé comme @file{souche.cls} à un emplacement où @LaTeX{} peut le
+trouver, par exemple dans le même répertoire que le fichier @file{.tex}.
+
+ at example
+\NeedsTeXFormat@{LaTeX2e@}
+\ProvidesClass@{souche@}[2017/07/06 souche à partir de laquelle contruire des classes]
+\DeclareOption*@{\PassOptionsToClass@{\CurrentOption@}@{article@}@}
+\ProcessOptions\relax
+\LoadClass@{article@}
+ at end example
+ at cindex classe, fichier d'exemple
+
+Elle s'auto-identifie, traite les options de classe par défaut en les
+passant toutes à la classe @code{article}, et puis charge la classe
+ at code{article} de sorte à fournir la base du code de cette classe.
+
+Pour plus d'information, voir le guide officiel pour les auteurs de
+classes et de paquetage, le « Class Guide »,
+ at url{http://www.latex-project.org/help/documentation/clsguide.pdf} (la
+plupart des descriptions faites ici s'inspirent de ce document), ou
+l'article suivant @url{https://www.tug.org/TUGboat/tb26-3/tb84heff.pdf}
+illutrant la construction d'une nouvelle classe.
+
+ at node Class and package commands
+ at subsection Commande pour extension (classe ou paquetage)
+ at cindex classe et paquetage, commandes
+ at cindex commandes pour classe ou paquetage
+
+Voici les commandes conçues pour aider les auteurs d'extension (classes
+ou paquetages).
+
+ at table @code
+ at item \AtBeginDvi@{specials@}
+ at findex \AtBeginDvi
+Sauvegarde dans une registre de boîte des choses qui sont à écrire dans
+le fichier @file{.dvi} au début de l'achèvement de la première page du
+
+document.
+
+ at item \AtEndOfClass@{@var{code}@}
+ at item \AtEndOfPackage@{@var{code}@}
+ at findex \AtEndOfClass
+ at findex \AtEndOfPackage
+Crochet pour inséer le @var{code} à exécuter lorsque @LaTeX{} termine le
+traiement de la classe ou du paquetage courants.  On peut utiliser ces
+crochet plusieurs fois ; le @code{code} sera exécuté dans l'ordre
+d'appel.  Voir aussi @ref{\AtBeginDocument}.
+
+ at item \ClassError@{@var{nom de la classe}@}@{@var{texte de l'erreur}@}@{@var{texte d'aide}@}
+ at item \PackageError@{@var{nom du paquetage}@}@{@var{texte de l'erreur}@}@{@var{texte d'aide}@}
+ at item \ClassWarning@{@var{nom de la classe}@}@{@var{warning text}@}
+ at item \PackageWarning@{@var{nom du paquetage}@}@{@var{warning text}@}
+ at item \ClassWarningNoLine@{@var{nom de la classe}@}@{@var{warning text}@}
+ at item \PackageWarningNoLine@{@var{nom du paquetage}@}@{@var{warning text}@}
+ at item \ClassInfo@{@var{nom de la classe}@}@{@var{info text}@}
+ at item \PackageInfo@{@var{nom du paquetage}@}@{@var{info text}@}
+ at item \ClassInfoNoLine@{@var{nom de la classe}@}@{@var{info text}@}
+ at item \PackageInfoNoLine@{@var{nom du paquetage}@}@{@var{info text}@}
+ at findex \ClassError
+ at findex \PackageError
+ at findex \ClassWarning
+ at findex \PackageWarning
+ at findex \ClassWarningNoLine
+ at findex \PackageWarningNoLine
+ at findex \ClassInfo
+ at findex \PackageInfo
+ at findex \ClassInfoNoLine
+ at findex \PackageInfoNoLine
+Porduit un message d'erreur, ou des messages d'avertissement ou
+d'information.
+
+Pour @code{\ClassError} et @code{\PackageError} le message est
+ at var{texte de l'erreur}, suivi de l'invite d'erreur @code{?} de
+ at TeX{}. Si l'utilisateur demande de l'aide en tapant
+ at code{h}, il voit le @var{texte d'aide}.
+
+The four warning commands are similar except that they write
+ at var{warning text} on the screen with no error prompt.  The four info
+commands write @var{info text} only in the transcript file.  The
+ at code{NoLine} versions do not show the number of the line generating the
+message, while the other versions do show that number.
+
+Pour formatter les messages, y compris le @var{texte d'aide} : utilisez
+ at code{\protect} pour empêcher une commande de se sévelopper, obtenez un
+saut de ligne avec @code{\MessageBreak}, et obtenez une espace avec
+ at code{\space} lorsque l'utilisation d'un caractère espace ne le permet
+pas, comme après une commande.  Notez que @LaTeX{} ajoute un point final
+à chaque message.
+
+ at item \CurrentOption
+ at findex \CurrentOption
+Se développe au contenu de l'option en cours de traitement. Peut
+uniquement être utilisé au sein de l'argument @var{code} soit de
+ at code{\DeclareOption}, soit de @code{\DeclareOption*}.
+
+ at item \DeclareOption@{@var{option}@}@{@var{code}@}
+ at item \DeclareOption*@{@var{option}@}@{@var{code}@}
+ at findex \DeclareOption
+ at findex \DeclareOption*
+ at cindex class options
+ at cindex package options
+ at cindex options, class
+ at cindex options, package
+Rend un option @var{option} disponible pour l'utilisateur, de sorte à ce
+qu'il puisse la passer à leur commande @code{\documentclass}.  Par
+exemple, la classe @code{notecms} pourrait avoir une option @code{logo}
+pour mettre le logo de leur organisation sur la première page avec
+ at code{\documentclass[logo]@{notcms@}}.  Le fichier de classe doit
+contenir @code{\DeclareOption@{logo@}@{@var{code}@}} (et plus loin,
+ at code{\ProcessOptions}).
+
+Si vous invoquez une option qui n'a pas été déclarée, par défaut cela
+produit une avertissement semblable à @code{Unused global option(s):
+[badoption].}  Vous pouvez changer ce comportement avec la version
+étoilée @code{\DeclareOption*@{@var{code}@}}.  Par exemple, beaucoup de
+classeq étendent une classe existante en utilisant une déclaration du
+genre @code{\LoadClass@{article@}}, et pour passer les options
+suppémentaires à la classe sous-jascente utilisent un code tel que
+celui-ci :
+
+ at example
+\DeclareOption*@{%
+\PassOptionsToClass@{\CurrentOption@}@{article@}%
+@}
+ at end example
+
+Un autre exemple est que la classes @code{notecms} permette aux
+utilisateur de tenir des listes de destinataire des notes dans des
+fichier externes. Par exemple l'utilisateur invoque
+ at code{\documentclass[math]@{notecms@}} et la classe lit le fichier
+ at code{math.memo}.  Ce code gère le fichier s'il existe et sinon passe
+l'option à la classe @code{article}.
+
+ at example
+\DeclareOption*@{\InputIfFileExists@{\CurrentOption.memo@}@{@}@{%
+    \PassOptionsToClass@{\CurrentOption@}@{article@}@}@}
+ at end example
+
+ at item \IfFileExists@{@var{nom fichier}@}@{@var{si vrai}@}@{@var{si faux}@}
+ at item \InputIfFileExists@{@var{nom fichier}@}@{@var{si vrai}@}@{@var{si faux}@}
+ at findex \IfFileExists
+ at findex \InputIfFileExists
+Exécute @var{si vrai} sf @LaTeX{} peut trouver le fichier @file{@var{nom
+fichier}} et @var{si faux} sinon.  Dans le second cas, le fichier est lu
+immédiatement aprus exécuter @var{si vrai}.  Ainsi
+ at code{\IfFileExists@{img.pdf@}@{\includegraphics@{img.pdf@}@}@{\typeout@{AVERSTISSEMENT
+: img.pdf introuvable@}@}} n'inclut le graphique @file{img.pdf} que s'il
+est trouvé, mais autrement produit seulement un avertissement.
+
+Cette commande cherche le fichier dans tous les chemin de recherche que
+that @LaTeX{} utilise, et non pas seulement dans le répertoire courant.
+Pour chercher uniquement dans le répertoire courant faites quelque-chose
+du genre de @code{\IfFileExists@{./@var{nom fichier}@}@{@var{si
+vrai}@}@{@var{si faux}@}}.  Si vous demandez un fichier dont le nom n'a
+pas d'extension @code{.tex} alors @LaTeX{} commencera par chercher le
+fichier en apposant @code{.tex} à son nom ; pour plus ample information
+sur la façon dont @LaTeX{} gère les extensions de nom de fichier voir
+ at ref{\input}.
+
+ at item \LoadClass[@var{liste d'options}]@{@var{nom de la classe}@}[@var{date de parution}]
+ at item \LoadClassWithOptions@{@var{nom de la classe}@}[@var{date de parution}]
+ at findex \LoadClass
+ at findex \LoadClassWithOptions
+Charge une classe, comme avec @code{\documentclass[@var{options
+list}]@{@var{nom de la classe}@}[@var{release info}]}.  Voici un exemple :
+ at code{\LoadClass[twoside]@{article@}}.
+
+La @var{liste d'options}, si présente, est une liste ponctuée par des
+virgules.  La @var{date de parution} est optionnel.  Si elle est
+présente, elle doit avoir le format @var{AAA/MM/JJ}.  Si vous demandez
+une @var{date de parution} et que la date du paquetage installée sur
+votre sysème est antérieure, alors vous obtiendrez un avertissement à
+l'écrant et dans le journal de compilation du genre de @code{You have
+requested, on input line 4, version `2038/01/19' of document class
+article, but only version `2014/09/29 v1.4h Standard LaTeX document
+class' is available.}
+
+La variante de la commande @code{\LoadClassWithOptions} utilise la liste
+des options de la classe courante.  Cela veut dire qu'elle ignore toute
+options passée via @code{\PassOptionsToClass}.  Ceci est une commande de
+commodité qui vous permet de construire une nouvelle classe en
+l'héritant d'une classe existante, telle que la classe standarde
+ at code{article}, sans avoir à gérer les options qui furent passée.
+
+ at item \ExecuteOptions@{@var{liste d'options}@}
+ at findex \ExecuteOptions
+Pour chaque option @var{option} de la @var{liste d'options}, dans
+l'ordre d'apparition, cette commande exécute la commande
+ at code{\ds@@@var{option}}.  Si cette commande n'est pas définie, alors
+l'option @var{option} est ignorée.
+
+Ceci peut être utilisé pour fournir d'un liste d'option par défaut avant
+le @code{\ProcessOptions}.  Par exemple, si dans un fichier de classe
+vous désirez utiliser par défaut la taille de police 11pt alors vous
+devriez spécifier @code{\ExecuteOptions@{11pt@}\ProcessOptions\relax}.
+
+ at item \NeedsTeXFormat@{@var{format}@}[@var{date du format}]
+ at findex \NeedsTeXFormat
+Spécifie le format sous lequelle cette classe devrait être utilisée.
+Cette directive est souvent donnée à la première ligne du fichier de
+classe, et le plus souvent elle est utilisée de cette façon :
+ at code{\NeedsTeXFormat@{LaTeX2e@}}.  Le format que vous spécifiez doit
+s'accorder exactement à celui installé et invoqué sur votre système, y
+compris le fait que la chaîne @var{format} est sensible à la casse.  Si
+il ne s'y accorde pas alors l'exécution est interrompue par une erruer
+du genre de @samp{This file needs format `xxx' but this is `LaTeX2e'.}
+
+Pour spécifier une version du format dont vous savez qu'elle prend en
+charge certaines fonctions, incluez l'argument optionnel @var{date du
+format} correspondant au format où ces fonction furent implémentés.  Si
+cette argument est présent il doit être de la forme @code{AAAA/MM/JJ}.
+Si la version de format installée sur votre système est antérieur à la
+ at var{date du format} alors vous obtiendrez un avertissement du genre de
+ at samp{You have requested release `2038/01/20' of LaTeX, but only release
+`2016/02/01' is available.}  (Le noyeau @LaTeX{} est gelé depuis de
+noùbreuses années alors vous n'avez probablement pas besoin de spécifier
+la date du format.)
+
+ at item \OptionNotUsed
+ at findex \OptionNotUsed
+Ajoute l'option courante à la liste des options non utilisées.  Ne peut
+être utilisé qu'au sein de l'argument @var{code} de
+ at code{\DeclareOption} ou @code{\DeclareOption*}.
+
+ at c I cannot reproduce this behavior as it is documented in clsguide.
+ at c In the absence of a @code{\DeclareOption*} declaration, @LaTeX{} issues
+ at c on the console a warning like @code{LaTeX Warning: Unused global
+ at c option(s): [unusedoption].} with the list of not-used options when it
+ at c reaches @code{\begin@{document@}}.
+
+ at item \PassOptionsToClass@{@var{liste d'options}@}@{@var{nom de la classe}@}
+ at item \PassOptionsToPackage@{@var{liste d'options}@}@{@var{nom du paquetage}@}
+ at findex \PassOptionsToClass
+ at findex \PassOptionsToPackage
+Ajoute les options de la liste ponctuée par des virgules @var{option
+list} aux options utilisée par toute commande ultérieure
+ at code{\RequirePackage} ou @code{\usepackage} pour le paquetage
+ at var{nom du paquetage} ou la classe @var{nom de la classe}.
+
+La raison d'être de ces commande est que vous pouvez charger un
+paquetage autant de fois que vous le voulez sans options, mais que si
+voulez passer des options alors vous ne pouvez les fournir qu'au premier
+chargement. Charger un paquetage avec des options plus d'une fois
+produit une erreur du genre de @code{Option clash for package toto.}
+(@LaTeX{} lance l'erreur même s'il n'y a pas de conflit entre les
+options.)
+
+Si votre propre code introduit un paquetage deux fois alors vous pouvez
+réduire cela en une fois, par exemple en remplaçant les deux
+ at code{\RequirePackage[landscape]@{geometry@}\RequirePackage[margins=1in]@{geometry@}}
+par un seul @code{\RequirePackage[landscape,margins=1in]@{geometry@}}.
+Mais si vous chargez un paquetage qui à son tour en charge un autre
+alors vous devez mettre en queue les options que vous désirez pour cet
+autre paquetage.  Par exemple, supposons que le paquetage @code{toto}
+charge le paquetage @code{geometry}.  Au lieu de
+ at code{\RequirePackage@{toto@}\RequirePackage[draft]@{graphics@}} vous
+devez écrire @code{\PassOptionsToPackage@{draft@}@{graphics@}
+\RequirePackage@{toto@}}.  (Si @code{toto.sty} charge une option en
+conflit avec ce que vous désirez alors vous devrez considérer une
+modification de son code source.)
+
+Ces commandes sont également utiles aux utilisateurs de base et pas
+seulement aux auteurs de classes et paquetage.  Par exemple, supposons
+qu'un utilisateur veuille cherge le paquetage @code{graphicx} avec
+l'option @code{draft} et veuille également utiliser une classe
+ at code{toto} qui charge le paquetage @code{graphicx}, mais sans cette
+option. The user could start their @LaTeX{} file with
+ at code{\PassOptionsToPackage@{draft@}@{graphicx@}\documentclass@{toto@}}.
+
+ at item \ProcessOptions
+ at item \ProcessOptions*@var{\@@options}
+ at findex \ProcessOptions
+ at findex \ProcessOptions*
+Exécute le code associé à chaque option que l'utilisateur a invoquée.  À
+include dans le fichier classe sous la forme
+ at code{\ProcessOptions\relax} (à cause de l'existance de la variant
+étoilée de la commande).
+
+Les options tombent dans deux catégories.  Les @dfn{options locales}
+sont spécifiées pour un paquetage particulier au sein de l'argument
+ at var{options} dans @code{\PassOptionsToPackage@{@var{options}@}},
+ at code{\usepackage[@var{options}]}, ou
+ at code{\RequirePackage[@var{options}]}.  Les @dfn{options globales} sont
+celles données par l'utilisateur de la classe dans
+ at code{\documentclass[@var{options}]}. (Si une option est spécifiée à la
+fois localement et globalement, alors elle est locale).
+
+Lorsque @code{\ProcessOptions} est appelé pour un paquetage
+ at file{pkg.sty}, il se produit ce qui suit :
+ at enumerate
+ at item
+Pour chaque option @var{option} déclarée jusqu'à ce point avec
+ at code{\DeclareOption}, @LaTeX{} examine si cette option est soit globale
+soit locale pour @code{pkg}. Si c'est le cas, il exécute le code
+déclaré. Ceci est fait dans l'ordre de passage de ces options à
+ at file{pkg.sty}.
+ at item
+Pour chaque option locale restante, il exécute la commande
+ at code{\ds@@@var{option}} si elle a été défini quelque-part (autrement
+que par un @code{\DeclareOption}) ; sinon, il exécute le code de
+traitement par défaut des options donné dans @code{\DeclareOption*}. Si
+aucun code de traitement par défaut n'a été déclaré, il produit un
+message d'erreur. Ceci est fait dans l'ordre dans lequel ces options ont
+été spécifiées.
+ at end enumerate
+
+Lorsque @code{\ProcessOptions} est appelé pour une classe il fonctionne
+de la même manière à ceci près que toutes les options sont locales, et
+que le code par défaut pour @code{\DeclareOption*} et
+ at code{\OptionNotUsed} plutôt qu'une erreur.
+
+La version étoilée @code{\ProcessOptions*} exécute le traitement des
+options dans l'ordre spécifié par les commandes appelante, plutôt que
+dans l'ordre de déclaration de la classe ou du paquetage. Pour un
+paquetage, ceci signifie que les options globales sont traitées en
+premier.
+
+
+ at item \ProvidesClass@{@var{nom de la classe}@}[@var{date de parution} @var{brève information supplémentaire}]
+ at item \ProvidesClass@{@var{nom de la classe}@}[@var{date de parution}]
+ at item \ProvidesPackage@{@var{nom du paquetage}@}[@var{date de parution} @var{brève information supplémentaire}]
+ at item \ProvidesPackage@{@var{nom du paquetage}@}[@var{date de parution}]
+ at findex \ProvidesClass
+ at findex \ProvidesPackage
+Indentifie la classe ou le paquetage, en tapant un message sur la
+console et dans le fichier journal.
+
+Lorsqu'un utilisateur écrit @code{\documentclass@{notecms@}} alors
+ at LaTeX{} charge le fichier @file{notecms.cls}.  De même, un utilisateur
+écrivant @code{\usepackage@{essai@}} invite @LaTeX{} à charger le
+fichier @file{essai.sty}.  Si le nom du fichier ne s'accorde pas à
+l'argument @var{nom de la classe} ou @var{nom du paquetage} alors un
+avertissement est produit. Ainsi, si vous invoquez
+ at code{\documentclass@{notecms@}}, et que le fichier the file
+ at file{notecms.cls} comprend la déclaration statement
+ at code{\ProvidesClass@{xxx@}} alors vous obtiendrez un avertissement du
+genre de like @code{You have requested document class `notecms', but the
+document class provides 'xxx'.}  Cet avertissement n'empèche pas
+ at LaTeX{} de traiter le reste du fichier de la classe normalement.
+
+Si vous incluez l'argument optionnel, alors vous devez inclure la date,
+avant le premier espace s'il y en a, et elle doit avoir le format
+ at code{AAAA/MM/JJ}.  Le reste de l'argument est en format libre,
+toutefois il identifie traditionnellement la classe, et est écrit
+pendant la compilation à l'écran et dans le journal.  Ainsi, si votre
+fichier @file{notecms.cls} contient la ligne
+ at code{\ProvidesClass@{smcmem@}[2008/06/01 v1.0 Classe note CMS]} la
+première ligne de votre docment est @code{\documentclass@{notecms@}}
+alors vous pourrez voir @code{Document Class: notecms 2008/06/01 v1.0
+Classe note CMS}.
+
+La date dans l'argument optionnel permet aux utilisateurs de classe et
+de paquetage de demander à être avertis si la version de la classe ou du
+paquetage installé sur leur système est antérieur à @var{date de
+parution}, en utilisant les arguments optionnels comme dans
+ at code{\documentclass@{smcmem@}[2018/10/12]} ou
+ at code{\usepackage@{toto@}[[2017/07/07]]}.  (Notez que les utilisateurs
+de paquetages incluent seulement rarement une date, et les utilisateurs
+de classe presque jamais).
+
+ at item \ProvidesFile@{@var{nom fichier}@}[@var{information supplémentaire}]
+ at findex \ProvidesFile
+Déclare un fihcier autre que les fichiers principaux de classe ou de
+paquetage, tel qu'un fichier de configuration ou un fichier de
+définition de police. Mettez la commande dans ce fichier et vous
+obtiendrez dans le journal une information du genre de @code{File:
+essai.config 2017/10/12 fichier de configuration pour essai.cls} lorsque
+ at var{nom fichier} vaut @samp{essai.config} et que @var{information
+supplémentaire} vaut @samp{2017/10/12 fichier de configuration pour
+essai.cls}.
+
+ at item \RequirePackage[@var{liste d'options}]@{@var{nom du paquetage}@}[@var{date de parution}]
+ at item \RequirePackageWithOptions@{@var{nom du paquetage}@}[@var{date de parution}]
+ at findex \RequirePackage
+ at findex \RequirePackageWithOptions
+Charge un paquetage, comme la commande @code{\usepackage} pour les
+auteurs de documents.  @xref{Additional packages}. Voici un exemple :
+ at code{\RequirePackage[landscape,margin=1in]@{geometry@}}.  Notez que
+l'équipe de développement de @LaTeX{} recommande fortement l'utilisation
+de ces commande de préférence à l'@code{\input} de Plain at tie{}@TeX{} ;
+voir le « Class Guide ».
+
+La @var{liste d'options}, si présente, est une liste ponctuée de
+virgules.  La @var{date de parution}, si présente, doit avoir le format
+ at var{AAAA/MM/JJ}.  Si la date de parution du paquetzge tel qu'il est
+installé sur votre systèlme est antérieur à @var{date de parution} alors
+vous obtiendrez un avertissement du genre de @code{You have requested,
+on input line 9, version `2017/07/03' of package jhtest, but only
+version `2000/01/01' is available}.
+
+La variante @code{\RequirePackageWithOptions} utilise la liste d'options
+de la classe courtante. Ceci implique qu'elle ignore toute option passée
+à la classe via @code{\PassOptionsToClass}.  C'est une commande de
+commodité pour permettre facilement de construire des classes sur des
+classes existantes sans avoir à gérer les options qui sont passées.
+
+La différence entre @code{\usepackage} et @code{\RequirePackage} est
+mince. La commande @code{\usepackage} est à l'intention du fichier
+document alors que @code{\RequirePackage} l'est à celle des fichiers
+paquetage ou classe.  Ansi, utiliser @code{\usepackage} avant la
+commande @code{\documentclass} amène @LaTeX{} à produire une erreur du
+genre de @code{\usepackage before \documentclass}, là où vous pouvez
+utiliser @code{\RequirePackage}.
+ at end table
+
+
 @node Fonts
 @chapter Polices de caractères
 
@@ -2384,10 +2887,58 @@
 
 @EnvIndex{document}
 
-L'environnement @code{document} entoure le corps d'un document.  Il est
-obligatoire dans tout document @LaTeX{}. @xref{Starting and ending}.
+L'environnement @code{document} entoure le corps entier d'un document.
+Il est obligatoire dans tout document @LaTeX{}. @xref{Starting and
+ending}.
+ at menu
+* \AtBeginDocument::          Crochet pour commandes à exécuter au début du document.
+* \AtEndDocument::            Crochet pour commandes à exécuter à la fin du document.
+ at end menu
 
 
+ at node \AtBeginDocument
+
+ at findex \AtBeginDocument
+ at cindex début de document, crochet
+
+Synopsis :
+
+ at example
+\AtBeginDocument@{@var{code}@}
+ at end example
+
+Sauvegarde @var{code} et exécute le quand @code{\begin@{document@}} est
+exécuté, à la toute fin du préambule.  Le code est exécuté après que les
+tables de sélection de police ont été réglées, ainsi la police normale
+du document est la police courante. Toutefois, le code est exécuté en
+tant que faisant partie du préambule, c'est pourquoi on ne peut pas
+composer du texte avec.
+
+On peut utiliser cette commande plus d'une fois ; les lignes de code
+successives sont exécutée dans l'ordre de passage à la commande.
+
+
+ at node \AtEndDocument
+
+ at findex \AtEndDocument
+ at cindex fin document, crochet
+
+Synopsis :
+
+ at example
+\AtEndDocument@{@var{code}@}
+ at end example
+
+Sauvegarde @var{code} et l'exécute vers la fin du document.  Plus
+précisément, il est exécuté lorsque @code{\end@{document@}} est exécuté,
+avant que la dernière page ne soit terminée et avant que tous
+environnements flottant restants soient traités. Si on désire d'une
+partie du code soit exécuté après ces deux traitements, alors il suffit
+d'inclure un @code{\clearpage} à l'endroit approprié du @var{code}.
+
+On peut utiliser cette commande plus d'une fois ; les lignes de code
+successives sont exécutée dans l'ordre de passage à la commande.
+
 @node enumerate
 @section @code{enumerate}
 
@@ -2825,7 +3376,7 @@
 
 Si vous utilisez l'environnement @code{babel} avec la langue
 @code{french}, alors il y a des tirets pour tous les niveaux comme c'est
-l'habitude des français.
+l'habitude des Français.
 
 @findex \labelitemi
 @findex \labelitemii

Modified: trunk/latex2e.texi
===================================================================
--- trunk/latex2e.texi	2017-07-26 20:32:20 UTC (rev 564)
+++ trunk/latex2e.texi	2017-07-26 20:39:09 UTC (rev 565)
@@ -1053,14 +1053,14 @@
 @cindex difference between class and package
 
 Inside of a class or package file you can use the at-sign @code{@@} as a
-character in command names without having to surround that command with
- at code{\makeatletter} and @code{\makeatother}.  @xref{\makeatletter and
-\makeatother}. This allow you to create commands that users will not
-accidentally redefine.  Another technique is to preface class- or
-package-specific commands with some string to prevent your class or
-package from interacting with others. For instance, the class
- at code{smcmemo} might have commands @code{\smc@@tolist},
- at code{\smc@@fromlist}, etc.
+character in command names without having to surround the code
+containing that command with @code{\makeatletter} and
+ at code{\makeatother}.  @xref{\makeatletter and \makeatother}. This allow
+you to create commands that users will not accidentally redefine.
+Another technique is to preface class- or package-specific commands with
+some string to prevent your class or package from interfering with
+others. For instance, the class @code{smcmemo} might have commands
+ at code{\smc@@tolist}, @code{\smc@@fromlist}, etc.
 
 
 @menu
@@ -1080,29 +1080,37 @@
 @cindex class options
 @cindex package options
 
-A class file or package file typically has four parts.  (1)@tie{}In the
-identification part, the file says that it is a @LaTeX{} package or
-class and describes itself, using the @code{\NeedsTeXFormat} and
- at code{\ProvidesClass} or @code{\ProvidesPackage} commands.  (2)@tie{}The
-preliminary declarations part declares some commands and can also load
-other files. Usually these commands will be those needed for the code
-used in the next part.  For example, an @code{smcmemo} class might be
-called with an option to read in a file with a list of people for the
-to-head, as @code{\documentclass[mathto]@{smcmemo@}}, and therefore
-needs to define a command
+A class file or package file typically has four parts.  
+ at enumerate
+In the @dfn{identification part}, the file says that it is a @LaTeX{}
+package or class and describes itself, using the @code{\NeedsTeXFormat}
+and @code{\ProvidesClass} or @code{\ProvidesPackage} commands.
+ at item
+The @dfn{preliminary declarations part} declares some commands and
+can also load other files. Usually these commands will be those needed
+for the code used in the next part.  For example, an @code{smcmemo}
+class might be called with an option to read in a file with a list of
+people for the to-head, as @code{\documentclass[mathto]@{smcmemo@}}, and
+therefore needs to define a command
 @code{\newcommand@{\setto@}[1]@{\def\@@tolist@{#1@}@}} used in that
-file.  (3)@tie{}In the handle options part the class or package declares
+file.
+ at item
+In the @dfn{handle options part} the class or package declares
 and processes its options.  Class options allow a user to start their
 document as @code{\documentclass[@var{option list}]@{@var{class
 name}@}}, to modify the behavior of the class.  An example is when you
 declare @code{\documentclass[11pt]@{article@}} to set the default
-document font size.  Finally, (4)@tie{}in the more declarations part the
-class or package usually does most of its work: declaring new variables,
-commands and fonts, and loading other files.
+document font size.  
+ at item
+Finally, in the @dfn{more declarations part} the class or package usually does
+most of its work: declaring new variables, commands and fonts, and
+loading other files.
+ at end enumerate
 
-Here is a starting class file, which should be saved as @code{stub.cls}
+
+Here is a starting class file, which should be saved as @file{stub.cls}
 where @LaTeX{} can find it, for example in the same directory as the
- at code{.tex} file.
+ at file{.tex} file.
 
 @example
 \NeedsTeXFormat@{LaTeX2e@}
@@ -1133,7 +1141,7 @@
 @table @code
 @item \AtBeginDvi@{specials@}
 @findex \AtBeginDvi
-Save in a box register things that are written to the @code{.dvi} file
+Save in a box register things that are written to the @file{.dvi} file
 at the beginning of the shipout of the first page of the document.
 
 @item \AtEndOfClass@{@var{code}@}
@@ -1180,8 +1188,9 @@
 
 To format the messages, including the @var{help text}: use
 @code{\protect} to stop a command from expanding, get a line break with
- at code{\MessageBreak}, and get a space with @code{\space}.  Note that
- at LaTeX{} appends a period to the messages.
+ at code{\MessageBreak}, and get a space with @code{\space} when a space
+character does not allow it, like after a command.  Note that @LaTeX{}
+appends a period to the messages.
 
 @item \CurrentOption
 @findex \CurrentOption
@@ -1190,7 +1199,7 @@
 or @code{\DeclareOption*}.
 
 @item \DeclareOption@{@var{option}@}@{@var{code}@}
- at item \DeclareOption*@{@var{option}@}@{@var{code}@}
+ at item \DeclareOption*@{@var{code}@}
 @findex \DeclareOption
 @findex \DeclareOption*
 @cindex class options
@@ -1233,12 +1242,12 @@
 @item \InputIfFileExists@{@var{file name}@}@{@var{true code}@}@{@var{false code}@}
 @findex \IfFileExists
 @findex \InputIfFileExists
-Execute @var{true code} if @LaTeX{} can find the file and @var{false
-code} otherwise.  In the second case it inputs the file immediately
-after executing @var{true code}.  Thus
+Execute @var{true code} if @LaTeX{} can find the file @file{@var{file
+name}} and @var{false code} otherwise.  In the second case it inputs the
+file immediately after executing @var{true code}.  Thus
 @code{\IfFileExists@{img.pdf@}@{\includegraphics@{img.pdf@}@}@{\typeout@{WARNING:
-img.pdf not found@}@}} will include the graphic if it is found but
-otherwise just give a warning.
+img.pdf not found@}@}} will include the graphic @file{img.pdf} if it is
+found but otherwise just give a warning.
 
 This command looks for the file in all search paths that @LaTeX{} uses,
 not only in the current directory.  To look only in the current
@@ -1258,7 +1267,12 @@
 
 The @var{options list}, if present, is a comma-separated list.  The
 @var{release date} is optional.  If present it must have the form
- at var{YYYY/MM/DD}.  If you request a @var{release date} and the date of
+ at var{YYYY/MM/DD}.
+ at c BTW, there are at-macros documented in macros2e.pdf to check the version
+ at c and do some actions conditionnally on version later or not to some
+ at c date.
+
+If you request a @var{release date} and the date of
 the package installed on your system is earlier, then you get a warning
 on the screen and in the log like @code{You have requested, on input
 line 4, version `2038/01/19' of document class article, but only version
@@ -1272,8 +1286,8 @@
 
 @item \ExecuteOptions@{@var{options-list}@}
 @findex \ExecuteOptions
-For each option in the @var{options-list}, in order, this command
-executes the command @code{\ds@@}@var{option}.  If this command is not
+For each option @var{option} in the @var{options-list}, in order, this command
+executes the command @code{\ds@@@var{option}}.  If this command is not
 defined then that option is silently ignored.
 
 It can be used to provide a default option list before
@@ -1287,9 +1301,10 @@
 as the first line of a class file, and most often used as:
 @code{\NeedsTeXFormat@{LaTeX2e@}}.  The format that you specify must
 exactly match the one installed on your system that you invoked,
-including that the string is case sensitive.  If it does not match then
-execution stops with an error like @samp{This file needs format `xxx'
-but this is `LaTeX2e'.}
+ at c xxx vincentb1 What does ``that you invoked'' mean here ?
+including that the @var{format} string is case sensitive.  If it does
+not match then execution stops with an error like @samp{This file needs
+format `xxx' but this is `LaTeX2e'.}
 
 To specify a version of the format that you know to have certain
 features, include the optional @var{format date} on which those features
@@ -1312,8 +1327,8 @@
 @c option(s): [unusedoption].} with the list of not-used options when it
 @c reaches @code{\begin@{document@}}.
 
- at item \PassOptionsToClass@{@var{options list}@}@{@var{class name}@}
- at item \PassOptionsToPackage@{@var{options list}@}@{@var{package name}@}
+ at item \PassOptionsToClass@{@var{option list}@}@{@var{class name}@}
+ at item \PassOptionsToPackage@{@var{option list}@}@{@var{package name}@}
 @findex \PassOptionsToClass
 @findex \PassOptionsToPackage
 Adds the options in the comma-separated list @var{option list} to the
@@ -1327,16 +1342,17 @@
 foo.} (@LaTeX{} throws an error even if there is no conflict between the
 options.)
 
-If your code is bringing in a package twice then you can collapse that
-to once, for example replacing the two
+If your own code is bringing in a package twice then you can collapse
+that to once, for example replacing the two
 @code{\RequirePackage[landscape]@{geometry@}\RequirePackage[margins=1in]@{geometry@}}
 with the single
 @code{\RequirePackage[landscape,margins=1in]@{geometry@}}.  But if you
 are loading a package that in turn loads another package then you need
-to queue up the options you desire.  For instance, suppose the package
- at code{foo} loads the package @code{geometry}.  Instead of @code{
-\RequirePackage@{foo@}\RequirePackage[draft]@{graphics@}} you must write
- at code{\PassOptionsToPackage@{draft@}@{graphics@}
+to queue up the options you desire for this other package.  For
+instance, suppose the package @code{foo} loads the package
+ at code{geometry}.  Instead of
+ at code{\RequirePackage@{foo@}\RequirePackage[draft]@{graphics@}} you must
+write @code{\PassOptionsToPackage@{draft@}@{graphics@}
 \RequirePackage@{foo@}}.  (If @code{foo.sty} loads an option in conflict
 with what you want then you may have to look into altering its source.)
 
@@ -1351,70 +1367,78 @@
 @item \ProcessOptions*@var{\@@options}
 @findex \ProcessOptions
 @findex \ProcessOptions*
-Execute the code for each option that the user has invoked.  Include it
-in the class file as @code{\ProcessOptions\relax} (because of the
-existence of the starred command).
+Execute the code associated with each option that the user has invoked.
+Include it in the class file as @code{\ProcessOptions\relax} (because of
+the existence of the starred command).
 
-Options come in two types.  `Local' options have been specified for this
+Options come in two types.  @dfn{Local options} have been specified for this
 particular package in the @var{options} argument of
 @code{\PassOptionsToPackage@{@var{options}@}},
 @code{\usepackage[@var{options}]}, or
- at code{\RequirePackage[@var{options}]}.  `Global' options are those given
+ at code{\RequirePackage[@var{options}]}.  @dfn{Global options} are those given
 by the class user in @code{\documentclass[@var{options}]} (If an option
 is specified both locally and globally then it is local.)
 
-When @code{\ProcessOptions} is called for a package @code{pkg.sty}, the
-following happens.  (1) For each option @var{option} so far declared
+When @code{\ProcessOptions} is called for a package @file{pkg.sty}, the
+following happens:
+ at enumerate
+ at item
+For each option @var{option} so far declared
 with @code{\DeclareOption}, it looks to see if that option is either a
 global or a local option for @code{pkg}. If so then it executes the
 declared code.  This is done in the order in which these options were
-given in @code{pkg.sty}.  (2) For each remaining local option, it
-executes the command @code{\ds@@}@var{option} if it has been defined
-somewhere (other than by a @code{\DeclareOption}); otherwise, it
-executes the default option code given in @code{\DeclareOption*}. If no
-default option code has been declared then it gives an error message.
-This is done in the order in which these options were specified.
+given in @file{pkg.sty}.
+ at item
+For each remaining local option, it executes the command
+ at code{\ds@@}@var{option} if it has been defined somewhere (other than by
+a @code{\DeclareOption}); otherwise, it executes the default option code
+given in @code{\DeclareOption*}. If no default option code has been
+declared then it gives an error message.  This is done in the order in
+which these options were specified.
+ at end enumerate
 
 When @code{\ProcessOptions} is called for a class it works in the same
-way except that all options are local, and the default value for
+way except that all options are local, and the default @var{code} for
 @code{\DeclareOption*} is @code{\OptionNotUsed} rather than an error.
 
-The starred version @code{\ProcessOptions*}@var{\@@options} executes the
+The starred version @code{\ProcessOptions*} executes the
 options in the order specified in the calling commands, rather than in
 the order of declaration in the class or package. For a package this
 means that the global options are processed first.
 
 
- at item \ProvidesClass@{@var{class name}@}[@var{<release date>} @var{<brief additional information>}]
- at item \ProvidesPackage@{@var{package name}@}[@var{<release date>} @var{<brief additional information>}]
+ at item \ProvidesClass@{@var{class name}@}[@var{release date} @var{brief additional information}]
+ at item \ProvidesClass@{@var{class name}@}[@var{release date}]
+ at item \ProvidesPackage@{@var{package name}@}[@var{release date} @var{brief additional information}]
+ at item \ProvidesPackage@{@var{package name}@}[@var{release date}]
 @findex \ProvidesClass
 @findex \ProvidesPackage
 Identifies the class or package, printing a message to the screen and the log file.
 
 When a user writes @code{\documentclass@{smcmemo@}} then @LaTeX{} loads
-the file @code{smcmemo.cls}.  Similarly, a user writing
+the file @file{smcmemo.cls}.  Similarly, a user writing
 @code{\usepackage@{test@}} prompts @LaTeX{} to load the file
 @code{test.sty}.  If the name of the file does not match the declared
 class or package name then you get a warning.  Thus, if you invoke
- at code{\documentclass@{smcmemo@}}, and the file @code{smcmemo.cls} has
+ at code{\documentclass@{smcmemo@}}, and the file @file{smcmemo.cls} has
 the statement @code{\ProvidesClass@{xxx@}} then you get a warning like
 @code{You have requested document class `smcmemo', but the document
 class provides 'xxx'.}  This warning does not prevent @LaTeX{} from
 processing the rest of the class file normally.
 
-If you include the optional part then you must include the date, before
-the first space, and it must have the form @code{YYYY/MM/DD}.  The rest
-of the optional part is free-form, although it traditionally identifies
+If you include the optional argument, then you must include the date, before
+the first space if any, and it must have the form @code{YYYY/MM/DD}. The rest
+of the optional argument is free-form, although it traditionally identifies
 the class, and is written to the screen during compilation and to the
-log file.  Thus, if your file @code{smcmem.cls} contains the line
- at code{\ProvidesClass@{smcmem@}[2008/06/01 SMC memo class]} and your
-document's first line is @code{\documentclass@{smcmem@}} then you will
-see @code{Document Class: smcmemo 2008/06/01 SMC memo class}.
+log file.  Thus, if your file @file{smcmemo.cls} contains the line
+ at code{\ProvidesClass@{smcmemo@}[2008/06/01 v1.0 SMC memo class]} and your
+document's first line is @code{\documentclass@{smcmemo@}} then you will
+see @code{Document Class: smcmemo 2008/06/01 v1.0 SMC memo class}.
 
-The date in the optional portion allows class and package users to ask
+The date in the optional argument allows class and package users to ask
 to be warned if the version of the class or package installed on their
-system is earlier than @var{release date}, by using the optional calls
-such as @code{\documentclass@{smcmem@}[2018/10/12]} or
+system is earlier than @var{release date}, by using the optional arguments
+such as @code{\documentclass@{smcmemo@}[2018/10/12]} or
 @code{\usepackage@{foo@}[[2017/07/07]]}.  (Note that package users only
 rarely include a date, and class users almost never do.)
 
@@ -1423,19 +1447,21 @@
 Declare a file other than the main class and package files, such as
 configuration files or font definition files.  Put this command in that
 file and you get in the log a string like @code{File: test.config
-2017/10/12 config file for test.cls}.
+2017/10/12 config file for test.cls} for @var{file name} equal to
+ at samp{test.config} and @var{additional information} equal to
+ at samp{2017/10/12 config file for test.cls}.
 
- at item \RequirePackage[@var{options list}]@{@var{package name}@}[@var{release date}]
+ at item \RequirePackage[@var{option list}]@{@var{package name}@}[@var{release date}]
 @item \RequirePackageWithOptions@{@var{package name}@}[@var{release date}]
 @findex \RequirePackage
 @findex \RequirePackageWithOptions
-Load a package, like the author command @code{\usepackage}.
+Load a package, like the document author command @code{\usepackage}.
 @xref{Additional packages}. An example is
 @code{\RequirePackage[landscape,margin=1in]@{geometry@}}.  Note that the
 @LaTeX{} development team strongly recommends use of these commands over
 Plain at tie{}@TeX{}'s @code{\input}; see the Class Guide.
 
-The @var{options list}, if present, is a comma-separated list.  The
+The @var{option list}, if present, is a comma-separated list.  The
 @var{release date}, if present, must have the form @var{YYYY/MM/DD}.  If
 the release date of the package as installed on your system is earlier
 than @var{release date} then you get a warning like @code{You have



More information about the latexrefman-commits mailing list