[latexrefman-commits] [SCM] latexrefman updated: r573 - trunk
vincentb1 at gnu.org.ua
vincentb1 at gnu.org.ua
Mon Jul 31 13:12:28 CEST 2017
Author: vincentb1
Date: 2017-07-31 14:12:28 +0300 (Mon, 31 Jul 2017)
New Revision: 573
Modified:
trunk/ChangeLog
trunk/latex2e-fr.texi
trunk/latex2e.texi
Log:
\DeclareRobustCommand & \CheckCommand, translate to fr and improve.
* latex2e-fr.texi (Class and package commands): Add \CheckCommand
and \DeclareRobustCommand as per Jim's r568 2017-07-30 edits + my
own modifications in latex2e.texi.
* latex2e.texi (Class and package commands/\CheckCommand): Use &
define term "long" for long command + improve description.
(Class and package commands/\DeclareRobustCommand): Improve
existing description. Add mention to etoolbox macros.
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2017-07-31 10:10:55 UTC (rev 572)
+++ trunk/ChangeLog 2017-07-31 11:12:28 UTC (rev 573)
@@ -1,5 +1,16 @@
2017-07-31 Vincent Belaïche <vincentb1 at users.sourceforge.net>
+ * latex2e-fr.texi (Class and package commands): Add \CheckCommand
+ and \DeclareRobustCommand as per Jim's r568 2017-07-30 edits + my
+ own modifications in latex2e.texi.
+
+ * latex2e.texi (Class and package commands/\CheckCommand): Use &
+ define term "long" for long command + improve description.
+ (Class and package commands/\DeclareRobustCommand): Improve
+ existing description. Add mention to etoolbox macros.
+
+2017-07-31 Vincent Belaïche <vincentb1 at users.sourceforge.net>
+
* Makefile.1: Extend check-dw to handle other languages. Add
target help.
Modified: trunk/latex2e-fr.texi
===================================================================
--- trunk/latex2e-fr.texi 2017-07-31 10:10:55 UTC (rev 572)
+++ trunk/latex2e-fr.texi 2017-07-31 11:12:28 UTC (rev 573)
@@ -13,7 +13,10 @@
@c xx mais LaTeX2e substance est manquant.
@c xx une liste aléatoire de quelques items manquant est à la fin de ce fichier
@c
- at c xx \ProvidesPackage etc.
+ at c xx misc commands from clsguide.pdf: MakeUpperCase, \ignorespacesafterend,
+ at c \normalsfcodes
+ at c xx color (include info from clsguide.pdf)
+ at c xx ending a run with errors
@c xx ctan, distributions, composant de TeX
@c xx mention \nocorr, \textit et ic
@c xx donner réelle smallskip / etc. par défaut
@@ -1197,6 +1200,22 @@
crochet plusieurs fois ; le @code{code} sera exécuté dans l'ordre
d'appel. Voir aussi @ref{\AtBeginDocument}.
+ at item \CheckCommand@{@var{cmd}@}[@var{num}][@var{défaut}]@{@var{définition}@}
+ at item \CheckCommand*@{@var{cmd}@}[@var{num}][@var{défaut}]@{@var{définition}@}
+ at findex \CheckCommand
+ at findex \CheckCommand*
+ at cindex nouvelle commande, vérification
+Similaire à @code{\newcommand} (@pxref{\newcommand & \renewcommand})
+mais ne définit pas @var{cmd} ; à la place vérifie que la définition
+actuelle de @var{cmd} est exactement celle donnée par @var{définition}
+et est ou n'est pas @dfn{longue} selon ce que l'on attend.
+ at cindex commande longue
+Une commande est dite longue lorsque elle accepte @code{\par} au sein
+d'un argument. On attend que la commande @var{cmd} soit longue avec la
+version non-étoilée de @code{\CheckCommand}. Lève une erreur en cas
+d'échec de la vérification. Ceci vous permet de vérifier avant de
+redéfinir vous-même @var{cmd} qu'aucun paquetage ne l'a pas déjà fait.
+
@item \ClassError@{@var{nom de la classe}@}@{@var{texte de l'erreur}@}@{@var{texte d'aide}@}
@item \PackageError@{@var{nom du paquetage}@}@{@var{texte de l'erreur}@}@{@var{texte d'aide}@}
@item \ClassWarning@{@var{nom de la classe}@}@{@var{warning text}@}
@@ -1287,6 +1306,49 @@
\PassOptionsToClass@{\CurrentOption@}@{article@}@}@}
@end example
+ at item \DeclareRobustCommand@{@var{cmd}@}[@var{num}][@var{défaut}]@{@var{définition}@}
+ at item \DeclareRobustCommand*@{@var{cmd}@}[@var{num}][@var{défaut}]@{@var{définition}@}
+ at findex \DeclareRobustCommand
+ at findex \DeclareRobustCommand*
+ at cindex nouvelle commande, définition
+Similaire à @code{\newcommand} et @code{\newcommand*}
+(@pxref{\newcommand & \renewcommand}) mais déclare une commande robuste,
+même si @var{définition} comprend du code fragile. (Pour une discussion
+sur les commandes robustes et fragiles @pxref{\protect}). Utilisez ces
+commande pour définir de nouvelles commandes robustes, ou redéfinir des
+commandes existantes en les rendant robustes. Contrairement Ã
+ at code{\newcommand} elle ne produisent pas d'ereru si la macro @var{cmd}
+existe déjà  ; au lieu de cela un message est écrit dans le fichier
+journal pour indiquer la redéfinition de la commande.
+
+Les commandes définies de cette manière sont légèrement moins efficace
+que celle définies avec @code{\newcommand}, c'est pourquoi, à moins que
+le contenu de la commande soit fragile et que la commande soit utilisée
+au sein d'un argument mouvant, utilisez @code{\newcommand}.
+
+ at PkgIndex{etoolbox} Le paquetage @code{etoolbox} offre les commandes
+ at code{\newrobustcmd}, @code{\newrobustcmd*}, @code{\renewrobustcmd},
+ at code{\renewrobustcmd*}, @code{\providerobustcmd}, et
+ at code{\providrobustcmd*} qui sont similaire aux commandes standardes
+ at code{\newcommand}, @code{\newcommand*}, @code{\renewcommand},
+ at code{\renewcommand*}, @code{\providecommand}, et
+ at code{\providcommand*}, mais définissent une commande @var{cmd} robuste
+avec deux advanges par rapport à @code{\DeclareRobustCommand} :
+ at enumerate
+ at item
+Elle utilisent un mécanisme de protection de bas niveau d'e- at TeX{} au
+lieu du mécanisme de plus au niveau de @LaTeX{} utilisant
+ at code{\protect}, ainsi elles ne subissent pas la légère perte de
+performance mentionnée plus haut, et
+ at item
+Elles font la même distinction entre @code{\new at dots{}},
+ at code{\renew at dots{}}, et @code{\provide at dots{}} que les commandes
+standardes, ainsi elle ne font pas qu'envoyer un message dans le journal
+lorsque vous redéfinissez @var{cmd} déjà existantes, dans ce cas vous
+devez utiliser soit @code{\renew at dots{}} soit @code{\provide at dots{}} ou il
+y a une erreur.
+ at end enumerate
+
@item \IfFileExists@{@var{nom fichier}@}@{@var{si vrai}@}@{@var{si faux}@}
@item \InputIfFileExists@{@var{nom fichier}@}@{@var{si vrai}@}@{@var{si faux}@}
@findex \IfFileExists
@@ -5593,6 +5655,7 @@
des genres.
@c xx everything in this chapter needs exemples.
+ at c xx Add DeclareRobustCommand (see clsguide.pdf)
@menu
* \newcommand & \renewcommand:: (Re)définir une nouvelle commande.
Modified: trunk/latex2e.texi
===================================================================
--- trunk/latex2e.texi 2017-07-31 10:10:55 UTC (rev 572)
+++ trunk/latex2e.texi 2017-07-31 11:12:28 UTC (rev 573)
@@ -1055,11 +1055,14 @@
@cindex new command, check
Like @code{\newcommand} (@pxref{\newcommand & \renewcommand}) but does
not define @var{cmd}; instead it checks that the current definition of
- at var{cmd} is exactly as given by @var{definition}. It raises an error if
-these definitions differ, or if one accepts @code{\par} and the other
-does not. This allows you to check before you start redefining
- at code{cmd} yourself that no other package has already redefined this
-command.
+ at var{cmd} is exactly as given by @var{definition} and is or is not
+ at cindex long command
+ at dfn{long} as expected. A long command is a command that accepts
+ at code{\par} within an argument. The @var{cmd} command is expected to be
+long with the unstarred version of @code{\CheckCommand}. Raises an
+error when the check fails. This allows you to check before you start
+redefining @code{cmd} yourself that no other package has already
+redefined this command.
@item \ClassError@{@var{class name}@}@{@var{error text}@}@{@var{help text}@}
@item \PackageError@{@var{package name}@}@{@var{error text}@}@{@var{help text}@}
@@ -1156,15 +1159,36 @@
within the @var{definition} is fragile. (For a discussion of robust and
fragile commands @pxref{\protect}.) Use this command to define new
robust commands or to redefine existing commands and make them
-robust. Unlike @code{\newcommand} these do not give an error if a macro
-of that name already exists; instead, a log message is put into the
+robust. Unlike @code{\newcommand} these do not give an error if macro
+ at var{cmd} already exists; instead, a log message is put into the
transcript file if a command is redefined.
Commands defined this way are a bit less efficient than those defined
-using @code{\newcommand} so unless the command's data will be reread
-later, use @code{\newcommand}.
+using @code{\newcommand} so unless the command's data is fragile and the
+command is used within a moving argument, use @code{\newcommand}.
+ at PkgIndex{etoolbox}
+The @code{etoolbox} package offers commands @code{\newrobustcmd},
+ at code{\newrobustcmd*}, @code{\renewrobustcmd}, @code{\renewrobustcmd*},
+ at code{\providerobustcmd}, and @code{\providrobustcmd*} which are similar
+to @code{\newcommand}, @code{\newcommand*}, @code{\renewcommand},
+ at code{\renewcommand*}, @code{\providecommand}, and
+ at code{\providecommand*}, but define a robust @var{cmd} with two advanges
+as compared to @code{\DeclareRobustCommand} :
+ at enumerate
+ at item
+They use a low level e- at TeX{} protection mechanism rather than the
+higher level @LaTeX{} @code{\protect} mechanism, so they do not incurr
+the slight loss of perfomance mentioned above, and
+ at item
+They make the same distinction between @code{\new at dots{}},
+ at code{\renew at dots{}}, and @code{\provide at dots{}}, as the standard
+commands, so they do not just make a log message when you redefine
+ at var{cmd} that already exists, in that case you need to use either
+ at code{\renew at dots{}} or @code{\provide at dots{}} or you get an error.
+ at end enumerate
+
@item \IfFileExists@{@var{file name}@}@{@var{true code}@}@{@var{false code}@}
@item \InputIfFileExists@{@var{file name}@}@{@var{true code}@}@{@var{false code}@}
@findex \IfFileExists
@@ -5923,7 +5947,7 @@
@LaTeX{} has support for making new commands of many different kinds.
@c xx everything in this chapter needs examples.
- at c xx Add DeclareRoustCommand (see clsguide.pdf)
+ at c xx Add DeclareRobustCommand (see clsguide.pdf)
@menu
* \newcommand & \renewcommand:: (Re)define a new command.
More information about the latexrefman-commits
mailing list