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édentes Révision précédente
2_programmation:syntaxe:commentaires:compilation_conditionnelle_et_commentaires [2021/02/18 19:58]
yannick.tanguy Traduction de l'article anglais et mise à jour des liens.
2_programmation:syntaxe:commentaires:compilation_conditionnelle_et_commentaires [2021/03/29 13:51] (Version actuelle)
jejust Correction de lien interne. Mots-clefs OpenGraph. Balisage.
Ligne 1: Ligne 1:
-====== Comment obtenir des commentaires ou des plages de document compilables sous conditions ? ======+====== Comment obtenir des commentaires ou des plages de document compilables sous conditions? ======
  
 Bien que <​latex>​\LaTeX</​latex>​ (ou tout autre dérivé de <​latex>​\TeX</​latex>​) ne ressemble pas vraiment à un compilateur,​ des utilisateurs souhaitent en faire usage ainsi. Leurs besoins sont le plus souvent la « compilation conditionnelle » et les « commentaires en bloc ». Et plusieurs moyens ont été mis à disposition pour <​latex>​\LaTeX</​latex>​ à cette fin. Bien que <​latex>​\LaTeX</​latex>​ (ou tout autre dérivé de <​latex>​\TeX</​latex>​) ne ressemble pas vraiment à un compilateur,​ des utilisateurs souhaitent en faire usage ainsi. Leurs besoins sont le plus souvent la « compilation conditionnelle » et les « commentaires en bloc ». Et plusieurs moyens ont été mis à disposition pour <​latex>​\LaTeX</​latex>​ à cette fin.
Ligne 17: Ligne 17:
 ===== Par l'​insertion conditionnelle de fichiers ===== ===== Par l'​insertion conditionnelle de fichiers =====
  
-==== Avec les commandes include et includeonly ====+==== Avec les commandes ​“\include” et “\includeonly” ====
  
-Si vous avez besoin d'un document où vous pouvez escamoter des chapitres entiers (ou portions similaires de texte), essayez le système <​latex>​\LaTeX</​latex>​ des commandes ''​\include''​ et ''​\includeonly''​ (en tenant compte des remarques de la question « [[2_composition/​texte/document/que_fait_vraiment_include|Que fait la commande \include ?]] »).+Si vous avez besoin d'un document où vous pouvez escamoter des chapitres entiers (ou portions similaires de texte), essayez le système <​latex>​\LaTeX</​latex>​ des commandes ''​\include''​ et ''​\includeonly''​ (en tenant compte des remarques de la question « [[3_composition:​texte:document:que_fait_vraiment_include|Que fait la commande ​\include” ?]] »).
  
 Si vous utilisez ''​\include''​ vos fichiers (plutôt que ''​\input''​),​ <​latex>​\LaTeX</​latex>​ constitue une trace de ce qui se passe à la fin de chaque chapitre dans le fichier ''​aux''​. Ensuite, avec la commande ''​\includeonly'',​ vous pouvez donner à <​latex>​\LaTeX</​latex>​ une liste exhaustive des fichiers que vous voulez intégrer dans le document. Les fichiers qui n'​obtiennent pas ''​\include''​ sont entièrement ignorés, mais le traitement du document continue //comme s'ils étaient là// et les numéros de page, de note de bas de page et autres ne sont pas perturbés. Notez que vous pouvez choisir les sections que vous souhaitez inclure de manière interactive,​ en utilisant l'​extension [[ctanpkg>​askinclude|askinclude]]. ​ Si vous utilisez ''​\include''​ vos fichiers (plutôt que ''​\input''​),​ <​latex>​\LaTeX</​latex>​ constitue une trace de ce qui se passe à la fin de chaque chapitre dans le fichier ''​aux''​. Ensuite, avec la commande ''​\includeonly'',​ vous pouvez donner à <​latex>​\LaTeX</​latex>​ une liste exhaustive des fichiers que vous voulez intégrer dans le document. Les fichiers qui n'​obtiennent pas ''​\include''​ sont entièrement ignorés, mais le traitement du document continue //comme s'ils étaient là// et les numéros de page, de note de bas de page et autres ne sont pas perturbés. Notez que vous pouvez choisir les sections que vous souhaitez inclure de manière interactive,​ en utilisant l'​extension [[ctanpkg>​askinclude|askinclude]]. ​
  
-==== Avec l'​extension stampinclude (et pdftexcmds) ====+==== Avec l'​extension ​stampinclude” (et pdftexcmds) ====
  
 Une variante du mécanisme ''​\includeonly''​ est proposée par l'​extension [[ctanpkg>​stampinclude|stampinclude]] qui tire parti de la commande ''​pdfTeX''​ ''​\pdffilemoddate''​. Lorsqu'​un fichier inséré avec la commande ''​\include''​ est traité dans un document <​latex>​\LaTeX</​latex>,​ un fichier ''​aux''​ est créé contenant des données telles que des plages de numéros de page et des numéros de chapitre/​section. Lorsque ''​\stampinclude''​ est inclus dans un document, il compare les heures de modification pour chaque fichier inséré et son fichier ''​aux''​ correspondant. Le fichier n'est compilé dans "cette exécution"​ du document que si le fichier est plus récent que son fichier ''​aux''​ correspondant. L'​extension nécessite une version récente de ''​pdfTeX''​ et fonctionne également avec ''​LuaTeX''​ si l'​extension [[ctanpkg>​pdftexcmds|pdftexcmds]] est disponible (elle émule les commandes ''​pdfTeX''​ requises à l'aide de ''​lua''​. Hormis cet éventuel réglage, [[ctanpkg>​stampinclude|stampinclude]] nécessite peu d'​attention : incluez-le dans votre document et il fait son travail en silence. Lorsque vous voulez une version finale de votre document, supprimez tous les fichiers ''​aux''​ fichiers, et [[ctanpkg>​stampinclude|stampinclude]] n'​interférera pas.  Une variante du mécanisme ''​\includeonly''​ est proposée par l'​extension [[ctanpkg>​stampinclude|stampinclude]] qui tire parti de la commande ''​pdfTeX''​ ''​\pdffilemoddate''​. Lorsqu'​un fichier inséré avec la commande ''​\include''​ est traité dans un document <​latex>​\LaTeX</​latex>,​ un fichier ''​aux''​ est créé contenant des données telles que des plages de numéros de page et des numéros de chapitre/​section. Lorsque ''​\stampinclude''​ est inclus dans un document, il compare les heures de modification pour chaque fichier inséré et son fichier ''​aux''​ correspondant. Le fichier n'est compilé dans "cette exécution"​ du document que si le fichier est plus récent que son fichier ''​aux''​ correspondant. L'​extension nécessite une version récente de ''​pdfTeX''​ et fonctionne également avec ''​LuaTeX''​ si l'​extension [[ctanpkg>​pdftexcmds|pdftexcmds]] est disponible (elle émule les commandes ''​pdfTeX''​ requises à l'aide de ''​lua''​. Hormis cet éventuel réglage, [[ctanpkg>​stampinclude|stampinclude]] nécessite peu d'​attention : incluez-le dans votre document et il fait son travail en silence. Lorsque vous voulez une version finale de votre document, supprimez tous les fichiers ''​aux''​ fichiers, et [[ctanpkg>​stampinclude|stampinclude]] n'​interférera pas. 
  
-==== Avec l'​extension excludeonly ====+==== Avec l'​extension ​excludeonly” ====
  
 Une fonctionnalité inverse peut être obtenue avec l'​extension [[ctanpkg>​excludeonly|excludeonly]] : cela vous permet d'​exclure une liste de fichiers insérés avec ''​\include'',​ au moyen d'une commande ''​\excludeonly''​. ​ Une fonctionnalité inverse peut être obtenue avec l'​extension [[ctanpkg>​excludeonly|excludeonly]] : cela vous permet d'​exclure une liste de fichiers insérés avec ''​\include'',​ au moyen d'une commande ''​\excludeonly''​. ​
  
-==== Avec les extensions pagesel et selectp ====+==== Avec les extensions ​pagesel” et selectp” ====
  
 Si vous souhaitez sélectionner des pages particulières de votre document, utilisez les extensions [[ctanpkg>​pagesel|pagesel]] ou [[ctanpkg>​selectp|selectp]] de Heiko Oberdiek. Vous pouvez faire quelque chose de similaire, à savoir insérer des pages d'un document PDF existant (que vous avez peut-être compilé en utilisant ''​pdflatex''​ en premier lieu) dans votre document, en utilisant l'​extension [[ctanpkg>​pdfpages|pdfpages]]. Le travail est ensuite fait avec un document ressemblant à :  Si vous souhaitez sélectionner des pages particulières de votre document, utilisez les extensions [[ctanpkg>​pagesel|pagesel]] ou [[ctanpkg>​selectp|selectp]] de Heiko Oberdiek. Vous pouvez faire quelque chose de similaire, à savoir insérer des pages d'un document PDF existant (que vous avez peut-être compilé en utilisant ''​pdflatex''​ en premier lieu) dans votre document, en utilisant l'​extension [[ctanpkg>​pdfpages|pdfpages]]. Le travail est ensuite fait avec un document ressemblant à : 
Ligne 51: Ligne 51:
 ===== Par l'​insertion conditionnelle de morceaux de texte ===== ===== Par l'​insertion conditionnelle de morceaux de texte =====
  
-==== Avec l'​extension comment ====+==== Avec l'​extension ​comment” ====
  
 L'​extension [[ctanpkg>​comment|comment]] vous permet de déclarer les zones d'un document à inclure ou à exclure. Vous faites ces déclarations dans le préambule de votre dossier. La commande ''​ \includecomment{nom-version} ''​ déclare un environnement ''​nom-version''​ dont le contenu sera inclus dans votre document, tandis que ''​\excludecomment{nom-version}''​ définit un environnement dont le contenu sera être exclu du document. L'​extension utilise une méthode d'​exclusion assez robuste et peut faire face à des groupes de texte mal formés (par exemple, avec des accolades déséquilibrées ou des commandes ''​\if''​. ​ L'​extension [[ctanpkg>​comment|comment]] vous permet de déclarer les zones d'un document à inclure ou à exclure. Vous faites ces déclarations dans le préambule de votre dossier. La commande ''​ \includecomment{nom-version} ''​ déclare un environnement ''​nom-version''​ dont le contenu sera inclus dans votre document, tandis que ''​\excludecomment{nom-version}''​ définit un environnement dont le contenu sera être exclu du document. L'​extension utilise une méthode d'​exclusion assez robuste et peut faire face à des groupes de texte mal formés (par exemple, avec des accolades déséquilibrées ou des commandes ''​\if''​. ​
  
-==== Avec les extensions version et versions ====+==== Avec les extensions ​version” et versions” ====
  
 L'​extension [[ctanpkg>​version|version]] offre des fonctionnalités similaires à celles de [[ctanpkg>​comment|comment]],​ c'​est-à-dire les commandes ''​\includeversion''​ et ''​\excludeversion''​. Cette extension prend moins de place mais s'​avère moins robuste : en particulier,​ elle ne peut pas traiter de très grandes zones de texte incluses/​exclues. ​ L'​extension [[ctanpkg>​version|version]] offre des fonctionnalités similaires à celles de [[ctanpkg>​comment|comment]],​ c'​est-à-dire les commandes ''​\includeversion''​ et ''​\excludeversion''​. Cette extension prend moins de place mais s'​avère moins robuste : en particulier,​ elle ne peut pas traiter de très grandes zones de texte incluses/​exclues. ​
Ligne 61: Ligne 61:
 Une évolution de [[ctanpkg>​version|version]],​ appelée [[ctanpkg>​versions|versions]],​ ajoute une commande ''​\markversion{nom-version}''​ qui définit un environnement qui imprime le texte inclus, avec une marque claire autour. ​ Une évolution de [[ctanpkg>​version|version]],​ appelée [[ctanpkg>​versions|versions]],​ ajoute une commande ''​\markversion{nom-version}''​ qui définit un environnement qui imprime le texte inclus, avec une marque claire autour. ​
  
-==== Avec l'​extension optional ====+==== Avec l'​extension ​optional” ====
  
 L'​extension [[ctanpkg>​optional|optional]] définit une commande ''​\opt''​ : son premier argument est un « indicateur d'​inclusion » et son second est le texte à inclure ou à exclure. Le texte à inclure ou à exclure doit être bien correct (les accolades bien appariées par exemple) et ne doit pas être trop conséquent. Si un texte volumineux est nécessaire,​ la commande ''​\input''​ doit être utilisée dans l'​argument. La [[texdoc>​optional|documentation de l'​extension]] vous indique comment déclarer quelles sections doivent être incluses : cela peut être fait dans le préambule du document mais la documentation suggère également des moyens de le faire dans la ligne de commande appelant <​latex>​\LaTeX</​latex>,​ ou de manière interactive. ​ L'​extension [[ctanpkg>​optional|optional]] définit une commande ''​\opt''​ : son premier argument est un « indicateur d'​inclusion » et son second est le texte à inclure ou à exclure. Le texte à inclure ou à exclure doit être bien correct (les accolades bien appariées par exemple) et ne doit pas être trop conséquent. Si un texte volumineux est nécessaire,​ la commande ''​\input''​ doit être utilisée dans l'​argument. La [[texdoc>​optional|documentation de l'​extension]] vous indique comment déclarer quelles sections doivent être incluses : cela peut être fait dans le préambule du document mais la documentation suggère également des moyens de le faire dans la ligne de commande appelant <​latex>​\LaTeX</​latex>,​ ou de manière interactive. ​
  
-==== Avec l'​extension verbatim ====+==== Avec l'​extension ​verbatim” ====
  
 Autre extension, et pas des moindres, [[ctanpkg>​verbatim|verbatim]] définit un environnement ''​comment''​ qui permet à l'​utilisateur de mettre en commentaire facilement (s'il sait bien utiliser son éditeur de texte) des morceaux d'un fichier source <​latex>​\LaTeX</​latex>​. La classe [[ctanpkg>​memoir|memoir]] offre le même environnement. ​ Autre extension, et pas des moindres, [[ctanpkg>​verbatim|verbatim]] définit un environnement ''​comment''​ qui permet à l'​utilisateur de mettre en commentaire facilement (s'il sait bien utiliser son éditeur de texte) des morceaux d'un fichier source <​latex>​\LaTeX</​latex>​. La classe [[ctanpkg>​memoir|memoir]] offre le même environnement. ​
  
-==== Avec l'​extension xcomment ====+==== Avec l'​extension ​xcomment” ====
  
 Une variante intéressante est proposée par l'​extension [[ctanpkg>​xcomment|xcomment]]. Elle définit un environnement dont tout le corps est exclu, à l'​exception des environnements nommés dans son argument. Ainsi, par exemple :  Une variante intéressante est proposée par l'​extension [[ctanpkg>​xcomment|xcomment]]. Elle définit un environnement dont tout le corps est exclu, à l'​exception des environnements nommés dans son argument. Ainsi, par exemple : 
Ligne 86: Ligne 86:
 </​code>​ </​code>​
  
-==== Avec l'​extension tagging ====+==== Avec l'​extension ​tagging” ====
  
 L'​extension [[ctanpkg>​tagging|tagging]] met en place une syntaxe qui permet à l'​utilisateur d'​appliquer des « balises » à des morceaux de texte et d'​inclure ou exclure du texte balisé en fonction des balises. Par exemple, l'​utilisateur peut « activer » du texte marqué avec certaines balises et « supprimer » du texte marqué avec d'​autres :  L'​extension [[ctanpkg>​tagging|tagging]] met en place une syntaxe qui permet à l'​utilisateur d'​appliquer des « balises » à des morceaux de texte et d'​inclure ou exclure du texte balisé en fonction des balises. Par exemple, l'​utilisateur peut « activer » du texte marqué avec certaines balises et « supprimer » du texte marqué avec d'​autres : 
Ligne 106: Ligne 106:
 D'​autres commandes proposent une configuration si-alors-sinon et spécifient des environnements ''​taggedblock''​ et ''​untaggedblock''​. D'​autres commandes proposent une configuration si-alors-sinon et spécifient des environnements ''​taggedblock''​ et ''​untaggedblock''​.
  
-===== Par une extraction de code, avec l'​extension extract =====+===== Par une extraction de code, avec l'​extension ​extract” =====
  
 Un autre aspect important du problème est couvert par l'​extension [[ctanpkg>​extract|extract]]. Elle vous permet de produire une « copie partielle » d'un document existant. Elle a été développée pour permettre la production d'un « livre d'​exemples » à partir d'un ensemble de notes de cours. La [[texdoc>​extract|documentation de l'​extension]] montre l'​utilisation suivante :  Un autre aspect important du problème est couvert par l'​extension [[ctanpkg>​extract|extract]]. Elle vous permet de produire une « copie partielle » d'un document existant. Elle a été développée pour permettre la production d'un « livre d'​exemples » à partir d'un ensemble de notes de cours. La [[texdoc>​extract|documentation de l'​extension]] montre l'​utilisation suivante : 
Ligne 119: Ligne 119:
 </​code>​ </​code>​
  
-Ceci conduit à la production d'un fichier ''​demonstration.tex ''​ contenant tous les environnements ''​figure''​ et ''​table''​ ainsi que toutes les commandes ''​\chapter''​ et ''​\section''​ du document en cours de traitement. Le fichier ''​demonstrationr.tex ''​ est généré au cours d'une compilation ordinaire du document principal. Cette extension fournit un bon nombre d'​autres fonctionnalités,​ y compris des plages (numériques ou étiquetées) d'​environnements à extraire et un environnement ''​extract''​ que vous pouvez utiliser pour créer des documents <​latex>​\LaTeX</​latex>​ complets prêts à l'​emploi avec les éléments que vous avez extraits. ​+Ceci crée un fichier ''​demonstration.tex ''​ contenant tous les environnements ''​figure''​ et ''​table''​ ainsi que toutes les commandes ''​\chapter''​ et ''​\section''​ du document en cours de traitement. Le fichier ''​demonstrationr.tex ''​ est généré au cours d'une compilation ordinaire du document principal. Cette extension fournit un bon nombre d'​autres fonctionnalités,​ y compris des plages (numériques ou étiquetées) d'​environnements à extraire et un environnement ''​extract''​ que vous pouvez utiliser pour créer des documents <​latex>​\LaTeX</​latex>​ complets prêts à l'​emploi avec les éléments que vous avez extraits. ​
  
 ----- -----
 +//Source:// [[faquk>​FAQ-conditional|Conditional compilation and “comments”]].
  
-//Source:// [[faquk>​FAQ-conditional|Conditional compilation and "​comments"​]] +{{htmlmetatags>​metatag-keywords=(LaTeX,​compilation conditionnelle,​différents PDF à partir d'un document LaTeX,​compiler des parties d'un document)
- +
-{{htmlmetatags>​metatag-keywords=(LaTeX,​usage)+
 metatag-og:​title=(Comment obtenir des commentaires ou des plages de document compilables sous conditions) metatag-og:​title=(Comment obtenir des commentaires ou des plages de document compilables sous conditions)
 metatag-og:​site_name=(FAQ LaTeX francophone) metatag-og:​site_name=(FAQ LaTeX francophone)
 }} }}
 +
2_programmation/syntaxe/commentaires/compilation_conditionnelle_et_commentaires.1613674712.txt.gz · Dernière modification: 2021/02/18 19:58 par yannick.tanguy
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0