Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
2_programmation:syntaxe:compteurs:compteurs_maitres_et_esclaves [2021/04/11 14:25] – Correction de lien interne. jejust2_programmation:syntaxe:compteurs:compteurs_maitres_et_esclaves [2021/12/24 09:11] (Version actuelle) – Correction d'un lien suite à déplacement. yannick.tanguy
Ligne 1: Ligne 1:
-====== Master and slave counters ======+====== Comment définir un compteur dépendant d'un autre compteur? ======
  
 +Il est courant d'avoir des éléments numérotés tenant compte du numéro de chapitre (par exemple, dans les classes standard [[ctanpkg>book]] et [[ctanpkg>report]], figures, tableaux et notes de bas de page sont tous numérotés ainsi). Le processus de réinitialisation se fait automatiquement, lorsque le compteur « maître » est incrémenté (lorsque la commande ''\chapter'' qui démarre le chapitre <//N//> est traitée, le compteur ''chapter'' est incrémenté, et tout les compteurs dépendants sont mis à zéro).
  
-It's common to have things numbered "per chapter" (for examplein +Mais comment faire cela par vous-même ? Vous souhaitez peut-être numéroter les algorithmes en tenant compte du numéro de sectionou les corollaires en tenant compte du numéro de théorèmepar exemple.
-the standard [[ctanpkg>book]] and [[ctanpkg>report]] classesfigures, tables +
-and footnotes are all numbered thus).  The process of resetting is +
-done automatically, when the "master" counter is stepped (when the +
-''\chapter'' command that starts chapter <//n//> happens, the +
-''chapter'' counter is stepped, and all the dependent counters are set +
-to zero).+
  
-How would you do that for yourself?  You might want to number +===== Avec des commandes de base =====
-algorithms per section, or corollaries per theorem, for example.  If +
-you're defining these things by hand, you declare the relationship +
-when you define the counter in the first place: +
-''\newcounter{new-name}''[master] +
-says that every time counter <//master//> is stepped, counter +
-<//new-name//> will be reset.+
  
-But what if you have an uncooperative packagethat defines the +Si vous définissez cela manuellementvous devez déclarer cette relation entre compteurs lorsque vous définissez le compteur qui dépend d'un autre (ici //esclave// qui dépend de //maitre//) :
-objects for you, but doesn't provide a programmer interface to make +
-the counters behave as you want?+
  
-The ''\newcounter'' command uses a LaTeX internal commandand you +<code latex> 
-can also use it: +\newcounter{esclave}[maitre] 
-''\@addtoreset{new-name}{master}'+</code>  
-(but remember that it needs to be between ''\makeatletter'' and + 
-''\makeatother'', or in a package of your own).+Ainsià chaque fois le compteur nommé //maitre// est incrémenté, le compteur nommé //esclave// est réinitialisé. 
 + 
 +Mais que se passe-t-il si vous avez une extension qui définit les objets pour vous mais qui ne fournit pas d'interface de programmation pour que les compteurs se comportent comme vous le souhaitez ? 
 + 
 +===== Avec des commandes internes =====
  
-The [[ctanpkg>chngcntr|chngcntr]] package encapsulates the ''\@addtoreset'' +La commande ''\newcounter'' se sert d'une commande interne <latex>\LaTeX</latex> que vous pouvez utiliser (avec, [[2_programmation/macros/makeatletter_et_makeatother|au besoin]]''\makeatletter'' et ''\makeatother'':
-command into a command ''\counterwithin''.  So:+
  
 <code latex> <code latex>
-\counterwithin*{corrollary}{theorem}+\@addtoreset{esclave}{maitre}
 </code> </code>
-will make the corollary counter slave to theorem counters.  The + 
-command without its asterisk:+===== Avec l'extension “chngcntr” ===== 
 + 
 +L'extension [[ctanpkg>chngcntr]] encapsule la commande ''\@addtoreset'' dans une commande ''\counterwithin'', ce qui permet la solution suivante (rendant le compteur des corollaires dépendant du compteur des théorèmes nommé //theorem//:
  
 <code latex> <code latex>
-\counterwithin{corrollary}{theorem}+\counterwithin*{corollaire}{theorem}
 </code> </code>
-will do the same, and also redefine ''\thecorollary'' as  
-<//theorem number//>.<//corollary number//>, which is a good scheme 
-if you ever want to refer to the corollaries --- there are potentially 
-many "corollary 1" in any document, so it's as well to tie its number 
-to the counter of the theorem it belongs to.  This is true of pretty 
-much any such counter-within-another; if you're not using the 
-[[ctanpkg>chngcntr|chngcntr]], refer to the answer to  
-[[2_programmation:syntaxe:compteurs:comment_fonctionnent_les_compteurs|Redefining counters' `\the`-commands]] 
-for the necessary techniques. 
  
-The 2018 LaTeX release adopted the [[ctanpkg>chngcntr]] +La commande utilisée sans l'astérisque aura un comportement légèrement différent :
-commands into the format, so ''\counterwithin'' and ''\counterwithout'' +
-are now directly available without requiring a package.+
  
 +<code latex>
 +\counterwithin{corollaire}{theorem}
 +</code>
  
-Note that the technique doesn't work if the master counter is ''page'', +Par rapport à ce que fait ''\counterwithin*'', elle ajoute une redéfinition de ''\thecorollaire'' sous la forme <//numéro du théorème//>.<//numéro du corollaire//>ce qui est une bonne approche si jamais vous voulez vous référer aux corollaires (il y a potentiellement beaucoup de « corollaire 1 » dans n'importe quel document, autant donc lier son numéro à celui du  compteur du théorème auquel il appartient)Si vous n'utilisez pas [[ctanpkg>chngcntr]], vous pouvez ici lire la question référez-vous à la réponse à « [[2_programmation:syntaxe:compteurs:comment_fonctionnent_les_compteurs|Comment redéfinir les commandes de compteur \the(...) ?]] » pour les techniques nécessaires.
-the number of the current page.  The ''page'' counter is stepped deep +
-inside the output routinewhich usually gets called some time after +
-the text for the new page has started to appear: so special +
-techniques are required to deal with that.  One special case is dealt +
-with elsewhere: [[FAQ-footnpp|footnotes numbered per page]] One +
-of the techniques described there, using package [[ctanpkg>perpage|perpage]], +
-may be applied to any counter.  The command: +
-''\MakePerPage{counter}'' +
-will cause <//counter//> to be reset for each page The package uses +
-a label-like mechanism, and may require more than one run of LaTeX +
-to stabilise counter values --- LaTeX will generate the usual +
-warnings about labels changing.+
  
 +La version 2018 de <latex>\LaTeX</latex> a intégré les commandes de [[ctanpkg>chngcntr]] au format : ''\counterwithin'' et ''\counterwithout'' sont donc désormais directement disponibles sans nécessiter d'extension.
  
------+===== Cas particulier du compteur des pages =====
  
-//Source:// [[faquk>FAQ-addtoreset|Master and slave counters]]+Notez que la technique ne fonctionne pas si le compteur maître est ''page'', le numéro de la page courante. Le compteur ''page'' est inséré profondément dans la routine de sortie, généralement appelée souvent bien après que le texte de la nouvelle page ait commencé à apparaître des techniques spéciales sont donc nécessaires pour gérer ce cas, comme par exemple avec les [[3_composition:texte:pages:footnotes:numeroter_les_notes_de_bas_de_page_page_par_page|notes de bas de page numérotées par page]]. Une des techniques, utilisant l'extension [[ctanpkg>perpage]], peut être appliquée à n'importe quel compteur. Pour que la réinitialisation du compteur <//compte//> s'effecture à chaque page, l'extension met à disposition la commande :
  
-{{htmlmetatags>metatag-keywords=(LaTeX,latex,macros,programming+<code latex> 
-metatag-og:title=(Master and slave counters)+\MakePerPage{counter} 
 +</code> 
 + 
 +L'extension utilise un mécanisme semblable à une étiquette et peut nécessiter plus d'une exécution de <latex>\LaTeX</latex> pour stabiliser les valeurs des compteurs. De fait, <latex>\LaTeX</latex> générera les avertissements habituels concernant le changement d'étiquette. 
 + 
 +----- 
 +//Source :// [[faquk>FAQ-addtoreset|Master and slave counters]] 
 + 
 +{{htmlmetatags>metatag-keywords=(LaTeX,latex,programmation,compteurs,dépendance
 +metatag-og:title=(Comment définir un compteur dépendant d'un autre compteur)
 metatag-og:site_name=(FAQ LaTeX francophone) metatag-og:site_name=(FAQ LaTeX francophone)
 }} }}
- 
2_programmation/syntaxe/compteurs/compteurs_maitres_et_esclaves.1618151158.txt.gz · Dernière modification : 2021/04/11 14:25 de jejust
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0