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_composition:texte:document:utiliser_le_nom_de_fichier_dans_le_document [2021/02/16 22:50] – Traduction de l'article anglais et correction de la structure. yannick.tanguy3_composition:document:utiliser_le_nom_de_fichier_dans_le_document [2022/10/10 13:40] (Version actuelle) – Usage de ⟨...⟩ dbitouze
Ligne 1: Ligne 1:
-====== Comment afficher le nom du fichier compilé ? ======+====== Comment afficher le nom du fichier compilé? ======
  
-Vous souhaitez générer automatiquement un en-tête ou un pied de page intégrant le fichier en cours de traitement ? Ce n'est pas facile...+Vous souhaitez générer automatiquement un en-tête ou un pied de page intégrant le fichier en cours de traitement ? 
 +Ce n'est pas toujours trivial, voici pourquoi...
  
-<latex>\TeX</latex> conserve ce qu'il considère comme le nom de sa //tâche// uniquement dans la primitive ''\jobname''. Il s'agit du nom du fichier remis en premier à <latex>\TeX</latex>, dépouillé de son nom de répertoire et de toute extension (telle que ''.tex''). Si aucun fichier n'a été passé (c'est-à-dire que vous utilisez <latex>\TeX</latex> de manière interactive), ''\jobname'' a la valeur ''texput'' (le nom qui est donné au fichier ''log'' dans ce cas). +<latex>\TeX</latex> conserve ce qu'il considère comme le nom de sa //tâche// (son «//job//»), dans la primitive ''\jobname''. 
 +Il s'agit en général du nom du fichier passé à <latex>\TeX</latex> sur la ligne de commande, dépouillé de l'éventuel nom de répertoire 
 +et de toute extension (telle que ''.tex''). Mais dans deux cas, ça ne sera pas un nom de fichier: 
 +  * si aucun fichier n'a été passé (c'est-à-dire que vous utilisez <latex>\TeX</latex> de manière interactive), ''\jobname'' a la valeur fixe ''texput'' (c'est aussi le nom qui est donné au fichier ''log'' dans ce cas)
 +  * si vous avez utilisé l'option  ''-jobname=⟨//nom//⟩'' du compilateur, ''\jobname'' aura la valeur ''//nom//'', indépendamment du nom réel du fichier compilé.
  
-C'est parfait dans le cas d'un petit document, conservé dans un seul fichier. Les documents plus importants seront souvent conservés dans un ensemble de fichiers et <latex>\TeX</latex> ne fait aucune tentative pour garder trace des fichiers participant de la //tâche//. L'utilisateur doit donc faire le suivi lui-même et le seul moyen consiste à modifier les commandes d'entrée et à leur faire conserver les détails du nom du fichier. Cette opération est particulièrement difficile dans le cas de Plain <latex>\TeX</latex> du fait de la syntaxe spécifique de la commande ''\input''+Si votre document est stocké dans un unique fichier, utiliser ''\jobname'' est la bonne solution. 
 +Mais les documents plus importants seront souvent stockés dans un ensemble de fichiers et 
 +<latex>\TeX</latex> ne fait aucune tentative pour garder trace des différents fichiers lus au cours de sa //tâche// de compilation. 
 +L'utilisateur doit donc faire le suivi lui-même et le seul moyen consiste à modifier les commandes d'entrée 
 +et à leur faire conserver les détails des noms de fichiers. 
 +Cette opération est particulièrement difficile dans le cas de Plain <latex>\TeX</latex> du fait 
 +de la syntaxe particulière de la commande ''\input''.
  
-Dans le cas de <latex>\LaTeX</latex>, les commandes d'entrée ont une syntaxe classique et les [[2_composition:macros:patcher_une_commande_existante|techniques de correction]] usuelles peuvent y être appliquées. Pour information, la commande ''\input'' de <latex>\LaTeX</latex> est elle-même une modification de la commande Plain <latex>\TeX</latex>. Nos patchs s'appliquent à la version <latex>\LaTeX</latex> de la commande, utilisée comme ''\input{//fichier//}''. Ce type de manipulation reste cependant peu recommandé par rapport aux méthodes suivantes. +Dans le cas de <latex>\LaTeX</latex>, les commandes d'entrée ont une syntaxe plus classique 
 +et les [[2_programmation:macros:patcher_une_commande_existante|techniques de correction]] usuelles peuvent y être appliquées. 
 +Pour information, la commande ''\input'' de <latex>\LaTeX</latex> est elle-même une modification de la commande Plain <latex>\TeX</latex>. 
 +Nos patchs s'appliquent à la version <latex>\LaTeX</latex> de la commande, utilisée sous la forme ''\input{//fichier//}''. 
 +Ce type de manipulation reste cependant peu recommandé par rapport aux méthodes suivantes.
  
-===== Avec l'extension currfile =====+===== Avec l'extension currfile” =====
  
-L'extension [[ctanpkg>currfile|currfile]] fournit un moyen de garder une trace des détails du fichier courant (son nom dans ''\currfilename'', son répertoire dans ''\currfiledir'', ainsi que son nom de fichier sans extension et son extension). Pour y arriver, elle utilise une deuxième extension, [[ctanpkg>filehook|filehook]], qui repère les opérations sur fichiers qui utilisent ''\input'', ''\InputIfFileExists'' et ''\include'', ainsi que les chargements d'extensions et de classes. +L'extension [[ctanpkg>currfile]] fournit un moyen de garder une trace des détails du fichier courant 
 +(son nom dans ''\currfilename'', son répertoire dans ''\currfiledir'', ainsi que son nom de fichier 
 +sans extension et son extension). Pour y arriver, elle utilise une deuxième extension, [[ctanpkg>filehook]], 
 +qui repère les opérations sur fichiers qui utilisent ''\input'', ''\InputIfFileExists'' et ''\include'', 
 +ainsi que les chargements d'extensions et de classes.
  
-===== Avec l'extension FiNK =====+===== Avec l'extension FiNK” =====
  
-:!: //L’extension [[ctanpkg>FiNK|FiNK]] est classée comme [[7_misc:liste_des_packages_obsoletes|obsolète]]. Ce qui suit est informatif.//+:!: L’extension [[ctanpkg>FiNK|FiNK]] est classée comme [[1_generalites:histoire:liste_des_packages_obsoletes|obsolète]]. 
 +Ce qui suit est informatif.
  
-L'extension [[ctanpkg>FiNK|FiNK]] (pour //File Name Keeper// ou) garde la trace du nom et de l'extension du fichier, dans une commande ''\finkfile''. [[ctanpkg>FiNK|FiNK]] est désormais obsolète, au profit de [[ctanpkg>currfile|currfile]], mais reste disponible pour une utilisation dans les anciens documents. De plus, [[ctanpkg>FiNK|FiNK]] comprend un ''fink.el'' qui fournit un support sous Emacs avec AUC-TeX. +L'extension [[ctanpkg>FiNK|FiNK]] (pour //File Name Keeper//, autrement dit « gardien de nom de fichier ») garde la trace du nom 
 +et de l'extension du fichier, dans une commande ''\finkfile''. [[ctanpkg>FiNK|FiNK]] est désormais obsolète, au profit de [[ctanpkg>currfile]], 
 +mais reste disponible pour une utilisation dans les anciens documents. 
 +En bonus, [[ctanpkg>FiNK|FiNK]] fournit un script en [[wpfr>Lisp]], ''fink.el''qui offre un support sous Emacs avec AUC-TeX.
  
 ----- -----
- 
 //Source:// [[faquk>FAQ-filename|What's the name of this file]] //Source:// [[faquk>FAQ-filename|What's the name of this file]]
  
-{{htmlmetatags>metatag-keywords=(LaTeX,usage)+{{htmlmetatags>metatag-keywords=(LaTeX,noms des fichiers chargés,nom des fichiers compilés,nom du job,exécution)
 metatag-og:title=(Comment afficher le nom du fichier compilé) metatag-og:title=(Comment afficher le nom du fichier compilé)
 metatag-og:site_name=(FAQ LaTeX francophone) metatag-og:site_name=(FAQ LaTeX francophone)
 }} }}
 +
3_composition/document/utiliser_le_nom_de_fichier_dans_le_document.1613515833.txt.gz · Dernière modification : 2021/02/16 22:50 de yannick.tanguy
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0