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

vincentb1 at gnu.org.ua vincentb1 at gnu.org.ua
Sat Sep 12 21:08:05 CEST 2020


Author: vincentb1
Date: 2020-09-12 22:08:04 +0300 (Sat, 12 Sep 2020)
New Revision: 834

Modified:
   trunk/latex2e-fr.texi
   trunk/latex2e.texi
Log:
[en,fr] Reconcile \@ifstar.

* latex2e-fr.texi (@LaTeX{} command syntax): Some rephrasing, make
it better aligned on English version.
(@LaTeX{} command syntax, Declaration): Remove Declaration node.
(Environment): Realagin on English --- mention that a document
environment is mandatory.
(Font sizes): Type.
(Sectioning): \og @xref\fg -> \og @pxref\fg.
(\obeycr & \restorecr): Realign on English.
(\makeatletter & \makeatother): Re-align on English. Unify wording
--- only \og arobe\fg, \og arobase\fg is slang.
(\@@ifstar): Reconcile with English.

* latex2e.texi (@LaTeX{} command syntax): \og commands\fg -> \og command names\fg.
(\part): Add comma after @pxref.
(\@@startsection): Fix my poor English \og @code{\section} whith
keeping\fi -> \og @code{\section} while keeping\fi.
(\obeycr & \restorecr): Use @pxref correctly.
(\@@ifstar): Reconcile with French version.


Modified: trunk/latex2e-fr.texi
===================================================================
--- trunk/latex2e-fr.texi	2020-09-10 21:14:50 UTC (rev 833)
+++ trunk/latex2e-fr.texi	2020-09-12 19:08:04 UTC (rev 834)
@@ -571,15 +571,15 @@
 
 Les noms de commandes @LaTeX{} sont sensibles à la casse de sorte que
 @code{\pagebreak} diffère de @code{\Pagebreak} (ce dernier n'est pas une
-commande standard). La plupart des noms de commandes sont en bas de
-casse, mais elles sont sensibles à la casse : vous devez toujours saisir
-les commandes en respectant la casse où elles ont été définies.
+commande standarde). La plupart des noms de commandes sont en bas de
+casse, mais quoi qu'il en soit vous devez saisir toute commande en
+respectant la casse dans laquelle elle est définie.
 
 Une commande peut être suivie de zéro, un ou plus d'arguments. Ces
 arguments peuvent être soit obligatoires, soit optionnels.  Les
 arguments obligatoires sont entre accolades, @code{@{...@}}.  Les
-arguments optionnels sont entre crochets, @code{[...]}.  En général
-(mais ce n'est pas universel), si la commande prend un argument optionnel,
+arguments optionnels sont entre crochets, @code{[...]}.  En général,
+mais ce n'est pas universel, si la commande prend un argument optionnel,
 il vient en premier, avant tout argument obligatoire.
 
 Au sein d'un argument optionnel, pour utiliser le crochet
@@ -598,21 +598,6 @@
 pour les commandes dont il traite (à l'exception des omissions
 involontaires ou bogues de ce manuel).
 
- at c xxx Revoir le menu
- at menu
-* Déclaration: Declaration.          Changer la valeur ou la signification d'une commande.
- at end menu
-
-
-
- at node Declaration
- at subsection Les déclarations de commandes
-
-Certaines commandes changent la valeur ou la signification d'une
-autre commande ou d'un paramètre. Par exemple, la commande @code{\mainmatter}
-change le réglage de la numérotation des pages en passant de chiffres
-romains à des chiffres arabes.
-
 @node Environment
 @section Les environnements
 
@@ -635,7 +620,10 @@
 \end@{verse@}
 @end example
 
-Voir @ref{Environments} pour une liste des environnements.
+Voir @ref{Environments} pour une liste d'environnements.  En
+particulier, il est à noter que tout document @LaTeX{} doit avoir un
+environnement @code{document} : une paire @code{\begin@{document@}
+... \end@{document@}}.
 
 Le @var{nom environnement} du début doit s'accorder exactement avec
 celui de la fin. Cela vaut aussi dans le cas où @var{nom environnement} se
@@ -1765,7 +1753,8 @@
 presque tous les cas ce serait juste une source de confusion de
 l'utiliser. La raison pour mentionner en particulier la forme par
 environnement des déclarations de taille de police est que leur
-utilisation s'avère assez courante, en dépit des problèmes qu'il pose).
+utilisation s'avère assez courante, en dépit des problèmes qu'elle
+pose).
 
 @node Low-level font commands
 @section commandes de fontes de bas niveau
@@ -2525,7 +2514,7 @@
 numérotés.  Régler le compteur avec
 @code{\setcounter@{secnumdepth@}@{@var{niveau}@}} supprime la
 numérotation des rubriques à toute profondeur supérieure à @var{niveau}
-(@xref{\setcounter}).  Voir la table plus haut pour la valeur des
+(@pxref{\setcounter}).  Voir la table plus haut pour la valeur des
 niveaux. Par exemple, si le @code{secnumdepth} vaut 1 dans un
 @code{article} alors la commande @code{\section@{Introduction@}} produit
 en sortie quelque-chose comme @samp{1 Introduction} alors que
@@ -7040,13 +7029,12 @@
 
 La commande @code{\obeycr} a pour effet qu'un retour chariot dans le
 fichier d'entrée (@samp{^^M}, internement) soit traité de la même façon
-que @code{\\} (suivi d'un @code{\relax}). Ainsi chaque passage à la
-ligne dans l'entrée est aussi un passage à la ligne dans la sortie.
+que @code{\\} suivi d'un @code{\relax}. Ainsi chaque passage à la ligne
+dans l'entrée est aussi un passage à la ligne dans la sortie.  La
+commande @code{\restorecr} restaure le comportement normal vis à vis des
+sauts de ligne.
 
- at code{\restorecr} restaure le comportement normal vis à vis des saut de
-ligne.
 
-
 @node \newline
 @section @code{\newline}
 
@@ -7807,15 +7795,15 @@
 \makeatother
 @end example
 
-Utilisez cette paire de commande quand vous redéfinissser les commandes
- at LaTeX{} dont le nom comprend un caractère arobe @code{@@}.  La
-déclaration @code{\makeatletter} a pour effet que le caractère
-arobase @code{@@} ait le code de catégorie des lettres, c.-à-d.@: 11. La
-déclaration @code{\makeatother} règle de code de catégorie de @code{@@}
-à 12, sa valeur d'origine.
+Utilisez cette paire de commandes quand vous redéfinissser les commandes
+ at LaTeX{} dont le nom comprend un caractère arobe @samp{@code{@@}}.  La
+déclaration @code{\makeatletter} a pour effet que le caractère arobe ait
+le code de catégorie des lettres, c.-à-d.@: le code 11. La déclaration
+ at code{\makeatother} règle de code de catégorie de l'arobe au code 12, sa
+valeur d'origine.
 
-À mesure que chaque caractère est lu par @TeX{} pour @LaTeX{}, un code
-de catégorie lui est assigné. On appelle aussi ce code
+À mesure que chaque caractère est lu par @TeX{}, un code de catégorie
+lui est assigné. On appelle aussi ce code
 @cindex catcode
 @cindex code de catégorie de caractère
 @cindex catégorie, code de caractère
@@ -7842,7 +7830,7 @@
 que l'arobe ait le catcode d'une lettre, à savoir 11.
 
 @PkgIndex{macros2e}
-Pour une liste complète des macros contenant une arobase dans leur nom,
+Pour une liste complète des macros contenant une arobe dans leur nom,
 voir le document @url{http://ctan.org/pkg/macros2e}.
 @c xx pourquoi est-ce que ceci a été enlevé :
 @c xx Ces macros sont surtout à l'intention des auteurs de classes et de
@@ -7867,33 +7855,49 @@
 @cindex commandes, variantes étoilées
 @cindex étoilées, variantes de commandes
 
+Synopsis :
 
+ at example
+\newcommand@{\macmd@}@{\@@ifstar@{\macmd@@star@}@{\macmd@@nostar@}@}
+\newcommand@{\macmd@@nostar@}[@var{nostar-nbre-args}]@{@var{nostar-corps}@} 
+\newcommand@{\macmd@@star@}[@var{star-nbre-args}]@{@var{star-corps}@}
+ at end example
+
 @c Inpirée des trucs & astuces de Manuel Pégourié-Gonnard
 @c (https://elzevir.fr/imj/latex/tips.html#stared)
 
 Vous l'avez sans doute remarqué, beaucoup d'environnements ou commandes
-standards de @LaTeX{} existent sous une variante étoilée. Vous pouvez avoir
-envie de reprendre cette idée quand vous définissez vos commandes et arguments.
+standards de @LaTeX{} existent sous une variante avec le même nom mais
+finissant avec le caractère étoile @code{*}, un astérisque. Par exemple
+c'est le cas des environnement @code{table} et @code{table*}, et des
+commandes @code{\section} et @code{\section*}.
 
-Si vous avez lu @ref{\newenvironment & \renewenvironment}, vous aurez compris
-que c'est immédiat pour les environnements car l'étoile est un caractère
-autorisé dans les noms d'environnements. Il vous suffit donc de faire
- at code{\newenvironment@{@var{monenv}@}} et
- at code{\newenvironment@{@var{monenv}*@}} avec les définitions souhaitées.
+Lorsque on définit un environnement, cela est facile puisque
+ at code{\newenvironment} et @code{\renewenvironment} autorisent que le nom
+de l'environnement contienne un astérisque.  Il vous suffit donc
+d'écrire @code{\newenvironment@{@var{monenv}@}} ou
+ at code{\newenvironment@{@var{monenv}*@}} et de continuer la définition
+comme d'habitude.  Pour les commandes, c'est plus compliqué car l'étoile
+n'étant pas une lettre one peut pas faire partie du nom de la
+commande. Comme dans le synopsis ci-dessus, on a donc une commande
+utilisateur, donnée ci-dessus comme @code{\macmd}, qui doit être capable
+de regarder si elle est ou non suivie d'une étoile. Par exemple,
+ at LaTeX{} n'a pas réellement une commande @code{\section*} ; au lieu de
+cela la commande @code{\section} regarde ce qui la suit. Cette première
+commande n'accepte d'argument, mais au lieu de cela se développe en
+l'une de deux commandes qui elle accepte des arguments. Dans le synopsis
+ces commande sont @code{\macmd@@nostar} et @code{\macmd@@star}.  Elles
+peuvent prendre le même nombre d'arguments ou un nombre différent, ou
+pas d'argument du tout.  Comme d'habitude, dans un document @LaTeX{} une
+commande utilisant l'arobe @code{@@} dans son nom doit être comprise au
+sein d'un bloc @code{\makeatletter ... \makeatother}
+(@pxref{\makeatletter & \makeatother}).
 
-Pour les commandes, c'est plus compliqué car l'étoile ne peut pas faire partie
-du nom de la commande. Il y aura donc une première commande, qui devra être
-capable de regarder si elle est ou non suivie d'une étoile et d'adapter son
-comportement en conséquence. Cette première commande ne pourra pas accepter
-d'argument, mais pourra faire appel à des commandes qui en acceptent. Par
-ailleurs, on utilise la commande @code{\@@ifstar} interne du noyau @LaTeX{} et
-vous pouvez vous reportez à « @ref{\makeatletter & \makeatother} » pour
-comprendre pourquoi cela implique l'usage d'un bloc
- at code{\makeatletter...\makeatother}.
-
 Dans cet exemple, on définit @code{\ciel} comme une commande avec un
 argument obligatoire et admettant une variante étoilée @code{\ciel*}
-également avec un argument obligatoire :
+également avec un argument obligatoire. Ainsi, @code{\ciel@{bleu@}}
+composera « ciel bleu non étoilé » tandis que @code{\ciel*@{nocturne@}}
+composera « ciel nocturne étoilé ».
 
 @example
 \makeatletter
@@ -7903,52 +7907,48 @@
 \makeatother
 @end example
 
- at noindent ainsi, @code{\ciel@{bleu@}} composera « ciel bleu non étoilé » tandis que
- at code{\ciel*@{nocturne@}} composera « ciel nocturne étoilé ».
 
-Notez que les commandes intermédiaires @code{\ciel@@starred} et
- at code{\ciel@@unstarred} comportent un @code{@@} dans leur nom ce qui est
-possible puisque elles apparaissent au sein d'un bloc
- at code{\makeatletter...\makeatother}. Ceci assure qu'elles ne puissent pas être
-utilisées directement dans le document. L'utilisation de @@ dans le nom
-comporte certes un risque de collision avec une commande interne du noyeau
- at LaTeX{}, mais une telle collision est facile à détecter et corriger car
- at code{\newcommand*@{\@var{cmd}@}} vérifie que si la commande @code{\@var{cmd}}
-n'est pas déjà définie et génère une erreur si c'est le cas.
+Voici un autre exemple, où la variante étoilée prend un nombre
+d'arguments différent de la non étoilée. Avec cette définition, la
+célèbre réplique de l'agent 007 « @code{Mon nom est
+\agentsecret*@{Bond@}, \agentsecret@{James@}@{Bond@}}. » est équivalente
+à saisir les commandes « Je m'appelle \textsc@{Bond@}, \textit@{James@}
+textsc@{Bond@}. »
 
-Voici un autre exemple, où la commande @code{\agentsecret} comporte deux
-arguments, tandis que sa variante étoilée @code{\agentsecret*} n'en présente qu'un seul :
-
 @example
 \makeatletter
 \newcommand*\agentsecret@@starred[1]@{\textsc@{#1@}@}
 \newcommand*\agentsecret@@unstarred[2]@{\textit@{#1@} \textsc@{#2@}@}
-\newcommand\agentsecret@{\@@ifstar@{\agentsecret@@starred@}
-@ @ @ @	@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @	@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @{\agentsecret@@unstarred@}@}
+\newcommand\agentsecret@{\@@ifstar@{\agentsecret@@starred@}@{\agentsecret@@unstarred@}@}
 \makeatother
 @end example
 
- at noindent Avec cette définition, la célèbre réplique de l'agent 007 :
+Après le nom d'une commande, l'étoile vient comme une sorte d'argument
+optionnel.  Ceci est différent des noms d'environnement, où l'étoile
+fait partie du nom lui-même, et peut donc être à n'importe quelle
+position !  D'un point de vue purement @TeX{}nique il est donc possible
+de mettre un nombre indéfini d'espaces entre la commande et
+l'étoile. Ainsi @code{\agentsecret*@{Bond@}} et @code{\agentsecret at w{
+*}@{Bond@}} sont équivalents. Toutefois la pratique commune est de ne
+jamais insérer de tels espaces.
 
- at example
-Je m'appelle \agentsecret*@{Bond@}, \agentsecret@{James@}@{Bond@}.
- at end example
+ at PkgIndex{suffix}
+ at PkgIndex{xparse}
 
- at noindent est équivalente à :
+Il y a deux manières pouvant être plus commodes d'accomplir la même
+tâche que @code{\@@ifstar}.  Le paquetage @file{suffix} permet la
+construction @code{\newcommand\macommande@{@var{variante-non-étoilée}@}}
+suivie de
+ at code{\WithSuffix\newcommand\macommande*@{@var{variante-étoilée}@}}.  Et
+ at LaTeX{}3 a le parquetage @file{xparse} qui permet ce code.
 
 @example
-Je m'appelle \textsc@{Bond@}, \textit@{James@} textsc@{Bond@}.
+\NewDocumentCommand\toto@{s@}@{\IfBooleanTF#1
+  @{@var{variante-étoilée}@}%
+  @{@var{variante-non-étoilée}@}% 
+  @}
 @end example
 
-Un dernier mot :
-dans le nom d'une commande, l'étoile est comme une sorte d'argument optionnel.
-Ceci est différent des noms d'environnement, où l'étoile fait partie
-du nom lui-même, et peut donc être à n'importe quelle position !
-D'un point de vue purement @TeX{}nique il est donc possible de mettre un nombre indéfini
-d'espaces entre la commande et l'étoile. Ainsi @code{\agentsecret*@{Bond@}} et
- at code{\agentsecret *@{Bond@}} sont équivalents. Toutefois la pratique commune
-est de ne jamais insérer de tels espaces.
-
 @node \newcounter
 @section @code{\newcounter} : allouer un compteur
 @findex \newcounter

Modified: trunk/latex2e.texi
===================================================================
--- trunk/latex2e.texi	2020-09-10 21:14:50 UTC (rev 833)
+++ trunk/latex2e.texi	2020-09-12 19:08:04 UTC (rev 834)
@@ -510,7 +510,7 @@
 
 @LaTeX{} commands names are case sensitive so that @code{\pagebreak}
 differs from @code{\Pagebreak} (the latter is not a standard command).
-Most commands are lowercase, but in any event you must enter all
+Most command names are lowercase, but in any event you must enter all
 commands in the same case as they are defined.
 
 A command may be followed by zero, one, or more arguments. These
@@ -3322,7 +3322,7 @@
 
 For determining which sectional units are numbered and which appear in
 the table of contents, the level number of a part is at tie{}-1
-(@pxref{Sectioning/secnumdepth} and @pxref{Sectioning/tocdepth}).
+(@pxref{Sectioning/secnumdepth}, and @ref{Sectioning/tocdepth}).
 
 @PkgIndex{indentfirst}
 In the class @code{article}, if a paragraph immediately follows the part
@@ -3865,7 +3865,7 @@
 @end example
 
 @noindent
-redefines @code{\section} with keeping its standard calling form
+redefines @code{\section} while keeping its standard calling form
 @code{\section*[@var{toctitle}]@{@var{title}@}} (in which, for reminder,
 the star at tie{}@code{*} is optional).  @xref{Sectioning}.  This implies
 that when you write a command like
@@ -8198,7 +8198,7 @@
 @code{\restorecr} command restores normal line-breaking behavior.
 
 This is not the way to show verbatim text or computer code.  Use
- at ref{verbatim} instead.
+ at code{verbatim} (@pxref{verbatim}) instead.
 
 With @LaTeX{}'s usual defaults, this
 
@@ -9362,28 +9362,34 @@
 
 When defining environments, following this pattern is straightforward
 because @code{\newenvironment} and @code{\renewenvironment} allow the
-environment name to contain a star.  For commands the situation is more
-complex.  As in the synopsis above, there will be a user-called command,
-given above as @code{\mycmd}, which peeks ahead to see if it is followed
-by a star.  For instance, @LaTeX{} does not really have a
- at code{\section*} command; instead, the @code{\section} command peeks
-ahead.  This command does not accept arguments but instead expands to
-one of two commands that do accept arguments.  In the synopsis these two
-are @code{\mycmd@@nostar} and @code{\mycmd@@star}.  They could take the
-same number of arguments or a different number, or no arguments at all.
-As always, in a @LaTeX{} document a command using at-sign at tie{}@code{@@}
-must be enclosed inside a @code{\makeatletter ... \makeatother} block
+environment name to contain a star.  So you just have to write
+ at code{\newenvironment@{@var{myenv}@}} or
+ at code{\newenvironment@{@var{myenv}*@}} and continue the definition as
+usual. For commands the situation is more complex as the star not being
+a letter cannot be part of the command name.  As in the synopsis above,
+there will be a user-called command, given above as @code{\mycmd}, which
+peeks ahead to see if it is followed by a star.  For instance, @LaTeX{}
+does not really have a @code{\section*} command; instead, the
+ at code{\section} command peeks ahead.  This command does not accept
+arguments but instead expands to one of two commands that do accept
+arguments.  In the synopsis these two are @code{\mycmd@@nostar} and
+ at code{\mycmd@@star}.  They could take the same number of arguments or a
+different number, or no arguments at all.  As always, in a @LaTeX{}
+document a command using an at-sign at tie{}@code{@@} in its name must be
+enclosed inside a @code{\makeatletter ... \makeatother} block
 (@pxref{\makeatletter & \makeatother}).
 
 This example of @code{\@@ifstar} defines the command @code{\ciel} and a
 variant @code{\ciel*}.  Both have one required argument.  A call to
- at code{\ciel@{night@}} will return "starry night sky" while
- at code{\ciel*@{blue@}} will return "starry not blue sky".
+ at code{\ciel@{blue}} will return "not starry blue sky" while
+ at code{\ciel*@{night@}} will return "starry night sky".
 
 @example
-\newcommand*@{\ciel@@unstarred@}[1]@{starry #1 sky@}
-\newcommand*@{\ciel@@starred@}[1]@{starry not #1 sky@}
+\makeatletter
+\newcommand*@{\ciel@@unstarred@}[1]@{not starry #1 sky@}
+\newcommand*@{\ciel@@starred@}[1]@{starry #1 sky@}
 \newcommand*@{\ciel@}@{\@@ifstar@{\ciel@@starred@}@{\ciel@@unstarred@}@}
+\makeatother
 @end example
 
 In the next example, the starred variant takes a different number of
@@ -9399,16 +9405,26 @@
   \@@ifstar@{\agentsecret@@starred@}@{\agentsecret@@unstarred@}@}
 @end example
 
+After a command name, a star comes like some sort of optional argument.
+This differs from environment names in which the star is part of the
+name itself and as such could be in any position!  From a pure
+ at TeX{}nical point of view it is therefore possible to put any number of
+spaces between the command and the star. Thus
+ at code{\agentsecret*@{Bond@}} and @code{\agentsecret at w{ *}@{Bond@}} are
+equivalent. However the common practice is to never insert such spaces.
+
+ at PkgIndex{suffix}
+ at PkgIndex{xparse}
 There are two sometimes more convenient ways to accomplish the work of
 @code{\@@ifstar}.  The @file{suffix} package allows the construct
- at code{\newcommand\mycommand@{@var{unstarred version}@}} followed by
- at code{\WithSuffix\newcommand\mycommand*@{@var{starred version}@}}.  And
+ at code{\newcommand\mycommand@{@var{unstarred-variant}@}} followed by
+ at code{\WithSuffix\newcommand\mycommand*@{@var{starred-variant}@}}.  And
 @LaTeX{}3 has the @file{xparse} package that allows this code.
 
 @example
 \NewDocumentCommand\foo@{s@}@{\IfBooleanTF#1
-  @{@var{starred version}@}%
-  @{@var{unstarred version}@}% 
+  @{@var{starred-variant}@}%
+  @{@var{unstarred-variant}@}% 
   @}
 @end example
 



More information about the latexrefman-commits mailing list.