Ça fait le deuxième fois que j'ai une erreur de fichier, comme par exemple : LaTeX Error: File `itemize.sty' not found.

Qu'est-ce que ça veut dire ?

Posée 01 Aoû, 02:36

ameli's gravatar image

ameli
914
Taux d'acceptation : 0%

Modifiée 07 Aoû, 21:25

Pathe's gravatar image

Pathe ♦♦
2.0k661

Exact, il n'y a pas d'extension de ce nom. En revanche, il existe un environnement itemize. Quel est votre préambule ?

(01 Aoû, 02:43) Bernard Bernard's gravatar image

ça veut dire que vous avez \usepackage{itemize} dans votre document .tex alors que le fichier itemize.sty ne peut pas être trouver par latex. Essayer de trouver et de commenter la ligne \usepackage{itemize}.

(01 Aoû, 02:57) touhami touhami's gravatar image

Que voulez-vous dire par

commenter la ligne usepackage{itemize}. ?

(07 Aoû, 02:02) ameli ameli's gravatar image

@ameli c'est-à-dire, ajouter % au début de la ligne pour qu'il devient %\usepackage{itemize}. Pour latex une (partie de ) ligne précédé par % est un commentaire, il la traite comme si elle n'existe pas.

(07 Aoû, 02:55) touhami touhami's gravatar image

ça veut dire que vous avez usepackage{itemize} dans votre document .tex alors que le fichier itemize.sty ne peut pas être trouver par latex. ça veut dire que vous avez usepackage{itemize} dans votre document .tex alors que le fichier itemize.sty ne peut pas être trouver par latex.

ca veux surtout dire que l'extension itemize n'existe pas. Peut être à remplacer par enumerate ou mieux par enumitem.

(07 Aoû, 03:04) Nikopol Nikopol's gravatar image

Votre question montre que vous avez confondu package et environnement. Y répondre revient à décrire la différence qu'il y a entre les deux.

Comment fonctionne LaTeX ?

Lorsqu'on écrit \usepackage{nom} dans le préambule, LaTeX cherche un fichier d'extension .sty ayant la même dénomination, ici nom.sty.

Le message d'erreur que vous avez eu indique que le fichieritemize.sty n'a pas été trouvé par LaTeX. C'est donc que vous avez appelé itemize comme s'il s'agissait d'un package en écrivant \usepackage{itemize}. LaTeX a fait ce que vous lui demandez, n'a pas trouvé ce package et vous l'indique par ce message d'erreur.

Devant une erreur de ce type, il y a deux possibilités :

  • soit le fichier manque et on peut l'ajouter soi-même manuellement après l'avoir téléchargé ;
  • soit le fichier n'existe vraiment pas du tout et il y a donc une erreur dans votre code (ce qui est le cas ici).

En cherchant sur le moteur de recherche le plus utilisé du net le nom de ce fichier itemize.sty, la première réponse donne ce résultat dirigeant vers le CTAN :

résultat recherche fichier itemize.sty

À aucun moment, il n'est question du fichier itemize.sty, le moteur de recherche renvoie vers la page du package enumerate du CTAN avec un extrait de sa description qui précise que ce package ajoute une option à l'environnement enumerate. Donc, enumerate est en même temps un package et un environnement ! Mais rien n'est dit sur itemize.

Qu'est-ce que le CTAN ?

Le CTAN est l'acronyme de Comprehensive TeX Archive Network, c'est un site qui archive l'ensemble des packages distribués par Texlive ou MikTeX. Auparavant, les packages étaient disséminés un peu partout et chacun installait manuellement chaque package, ce qui était assez peu pratique (le CTAN a donc été une grande avancée pour LaTeX).

La page du CTAN qui décrit le package enumerate en anglais donne ses caractéristiques dans un encadré grisé :

CTAN package enumerate

Puisque cette page ne donne aucun résultat pour le fichier itemize.sty, c'est qu'il n'existe pas ! Pour en être absolument certain, il suffit de chercher itemize sur le moteur de recherche dédié du CTAN. On obtient le résultat suivant qui indique qu'il n'existe aucun document appelé itemize sur le CTAN.

CTAN recherche itemize

Et donc en clair, il n'existe pas de package nommé itemize archivé sur le CTAN !

Qu'est-ce qu'un package ?

Les fichiers d'extension .sty sont les fichiers qui définissent les packages (appelés aussi extensions ou modules en français).

Les packages contiennent un ensemble de macros, commandes ou d'environnements qui permettent d'effectuer une série d'instructions plus ou moins complexes en un seule commande. Les commandes permettent de simplifier le codage en donnant un nom unique en lieu et place d'une série d'instructions en langage LaTeX.

Un package définit ainsi ce que l'on appelle une surcouche du langage LaTeX. C'est à dire un ensemble de commandes permettant de réaliser des tâches complexes plus simplement et plus facilement pour un humain.

Suivant ce schéma en couches logicielles, un langage informatique est dit :

  • de bas niveau lorsqu'il est plus proche du langage machine (du langage compris par le processeur). Ces langages sont en général plus difficiles à maîtriser pour un être humain.
  • et de haut niveau lorsqu'il est plus proche d'un langage humain, ce qui le rend plus simple d'usage.

De ce point de vue, un package est une couche supérieure du langage LaTeX qui en simplifie l'usage.

Qu'est-ce qu'un environnement ?

Pour le savoir, il faut comprendre que LaTeX a une structure de langage de balisage tout comme HTML, XML et bien d'autres encore.

Les balises sont comme des panneaux de signalisation, elles apparaissent toujours par paires : la première pour indiquer le début de la zone balisée, la deuxième pour indiquer sa fin. De même sur une route, il y a un panneau qui indique que vous entrez dans un village et un panneau qui indique que vous en sortez (ce qui modifie les limitations de vitesse par exemple). Les balises permettent de définir des zones dans lesquelles une règlementation spécifique s'applique.

Pour un fichier LaTeX d'extension .tex, les balises permettent de diviser la page en zones dans lesquelles le texte écrit aura un formatage particulier (figure, texte en gras, paragraphe, titre, etc).

LaTeX définit trois sortes de zones :

  • Une zone peut commencer par une accolade ouvrante { , elle se termine alors par une accolade fermante }. Ces zones sont appelées blocs dans le jargon TeX. Les balises sont donc ici les caractères spéciaux accolades ouvrantes et fermantes. Par exemple, la phrase \textbf{Ici j'écris en gras} mais pas là n'écrira en gras que ce qui est situé entre les deux accolades.
  • Une zone peut encore commencer par la balise \begingroup et se terminer par la balise \endgroup. Les balises sont des commandes sans arguments. Ces zones sont appelées groupes dans le jargon LaTeX.
  • Une zone peut aussi commencer par la balise \begin{...}, elle se termine alors par la balise \end{...}. Ces zones sont appelées environnements dans le jargon LaTeX. Les balises sont dans ce cas des commandes dont le premier argument est le nom de l'environnement lui-même. LaTeX fournit nativement un certain nombre d'environnements. Par exemple, l'environnement tabular crée un tableau délimité par les balises \begin{tabular}{...} et \end{tabular}. LaTeX permet à l'usager de créer ses propres environnements via la commande \newenvironment{}[]{}){}. A leur création, l'usager donne un nom à l'environnement et définit le formatage du texte.

Ainsi un environnement est une zone de texte délimitée par des balises. Ces balises sont des commandes qui structurent le texte selon un format propre à l'usager ou prédéfini par LaTeX.

Les listes à puces natives de LaTeX

L'environnement itemize est un des trois environnements natif de LaTeX permettant d'écrire des listes à puces :

  • l'environnement enumerate permet d'écrire des listes numérotées;
  • l'environnement itemize permet d'écrire des listes non numérotées (non ordonnées);
  • l'environnement description permet de créer une série de définitions (comme dans un dictionnaire).

L'environnement itemize commence avec la balise \begin{itemize} et se termine avec la balise \end{itemize}. Dans cet environnement, les commandes \item définissent les puces (symboles qui marquent le début de chaque énumération).

Ces trois environnements étant natifs de LaTeX, il n'est pas besoin de charger un quelconque package pour pouvoir les utiliser. Ils sont définis par LaTeX lui-même sans avoir besoin d'ajouter quoi que ce soit d'autre.

Une homonymie malheureuse ?

Nativement, LaTeX définit les puces de chaque niveau de numérotation de l'environnement enumerate de la façon suivante :

  • le premier niveau d'énumération commence par des chiffres arabes suivi d'un point : 1. 2. 3. etc ;
  • le deuxième niveau est numéroté par des minuscules romaines entre parenthèses : (a) (b) (c) etc ;
  • le troisième niveau par des chiffres romains en minuscule : i, ii, iii, iv, etc.
  • le quatrième et dernier niveau par des majuscules romaines suivies d'un point : A. B. etc.

Mais nativement LaTeX ne permet pas la modification des puces d'énumération. La numérotation respecte toujours ce format prédéfini.

Afin de permettre la personnalisation des puces de numérotation de l'environnement enumerate, le mathématicien David Carlisle a créé un package qu'il a appelé du même nom que l'environnement qu'il modifie, c'est à dire enumerate. Il y a donc depuis lors, en sus de l'environnement enumerate natif de LaTeX, un package du même nom !

Ce package permet de modifier très simplement la numérotation des puces par l'écriture d'un exemple générique (il suffit d'écrire la première occurrence pour que les autres s'ensuivent).

Pour les néophytes, cette homonymie est source d'erreur. En effet, on pourrait naïvement penser que s'il y a un package qui s'appelle enumerate, il en va de même pour itemize. C'est en réalité exactement le contraire : c'est parce qu'il existe des environnements à puces que des packages ont été créé pour les modifier. Et à ce jour personne n'a encore écrit de package nommé itemize.

David Carlisle a écrit le package enumerate pour les utilisateurs de LaTeX à une époque où internet n'en était qu'à ses balbutiements. Les utilisateurs de LaTeX étaient presque tous des universitaires, thesards et chercheurs. Ces universitaires utilisaient alors (et utilisent encore) des groupes de discussion USENET en lieu et place des forums d'entraide disponibles sous internet. Le profil de ce public averti fait que si cette homonymie ne fut pas un problème, elle le devient pour les néophytes qui ignorent l'histoire de LaTeX.

Lien permanent

Publiée 07 Aoû, 17:55

Andr%C3%A9C's gravatar image

AndréC
54519
Taux d'acceptation : 18%

Modifiée 12 Aoû, 16:38

1

Attention, la définition des environnements est à corriger : seule la 2e est correcte, la 1re et la 3e définissant des groupes (ainsi que le nom l'indique pour la 3e). Par ailleurs, mettre à jour sa distribution TeX (TeX Live ou MiKTeX) peut ne pas suffire à installer un package manquant : une telle mise à jour n'installe que des packages nouvellement apparus.

(10 Aoû, 20:52) denis ♦♦ denis's gravatar image

@denis, C'est la définition de Leslie Lamport lui-même, je cite « Blocks are called environments" (or groups") » in LATEX: A Document Preparation System Leslie Lamport October 7, 1997. http://www-verimag.imag.fr/~plafourc/teaching/latex.pdf

(10 Aoû, 20:59) AndréC Andr%C3%A9C's gravatar image
1

Je pense que la synonymie entre « environment » et « group » n'est plus de mise depuis longtemps. Cf. par exemple What are LaTeX “environments”.

(10 Aoû, 21:09) denis ♦♦ denis's gravatar image

@denis, je n'ai pas précisé comment mettre à jour sa distribution a dessein puisque si un fichier venait à être effacé, il faut mettre à jour sa distribution manuellement soi-même en téléchargeant ce fichier.

(10 Aoû, 21:09) AndréC Andr%C3%A9C's gravatar image

@denis, vous pensez vraiment que Leslie Lamport se trompe sur sa propre création ?

(10 Aoû, 21:14) AndréC Andr%C3%A9C's gravatar image

Je n'ai pas dit « que Leslie Lamport se tromp[ait] sur sa propre création » (je ne dispose pas de cet ouvrage donc je ne peux pas vraiment juger). Je dis simplement que, désormais, le sens très généralement adopté de « environnement » est celui que vous indiquez dans votre 2e définition, pas ceux des autres définitions. La FAQ du TUG anglophone, de plus de 30 ans d'existence, est une référence sérieuse ; si vous estimez y avoir trouvé une erreur, vous pouvez le signaler aux mainteneurs : elle est régulièrement mise à jour.

(10 Aoû, 21:27) denis ♦♦ denis's gravatar image

@denis, ce ne sont pas mes définitions, ce sont celles de Leslie Lamport lui-même. La FAQ anglaise dit qu'un environnement agit alors que l'environnement ne fait rien, il est délimité et des commandes agissent sur lui. Il se trouve que certaines balises délimitant ces environnements sont parfois des commandes. Cela ne change rien à l'affaire, ce n'est pas l'environnement qui agit.

(10 Aoû, 21:34) AndréC Andr%C3%A9C's gravatar image

Je ne dis pas que ce sont vos définitions : je dis simplement que, si vous pensez qu'il y a matière à améliorer la FAQ du TUG anglophone, vous pouvez le faire. Je ne conteste pas que ce soit les définitions de de Leslie Lamport lui-même, je dis simplement que (peut-être à tort) l'usage fait que, aujourd'hui, on ne nomme plus les « groupes » par « environnements ». Quant au reste de votre commentaire, je ne vois pas le rapport.

(10 Aoû, 21:38) denis ♦♦ denis's gravatar image

@denis, il y a plein de pages internet officielles ou non où il y a des erreurs dites par des personnes très compétentes. Cela n'enlève rien à leur qualité et à leur compétences. Par exemple, cette page de la FAQ anglaise dit « environments perform an action on a block (of something or other) ». Un environnement ne fait rien, ce sont les commandes qui agissent. Il se trouve qu'avec LaTeX les balises peuvent être des commandes, ce sont les commandes qui agissent et non pas les environnements qui eux « subissent » les commandes. Leslie lamport a une définition qui permet l'abstraction.

(10 Aoû, 21:47) AndréC Andr%C3%A9C's gravatar image
1

Tout dépend de quel point de vue on se situe : pour l'utilisateur final, un environnement agit sur son contenu, certes via des commandes mais qui sont masquées dans ledit environnement (ce qui en est le principal intérêt en apportant, en effet, une couche d'abstraction).

(10 Aoû, 21:54) denis ♦♦ denis's gravatar image

@AndréC je suis d'acord avec @denis pour 4 raisons plus au moins fondées

  • les groupes ne sont pas spéciales à LaTeX
  • les groupes ne respectent pas l'esprit séparation (fond et forme) de LaTeX
  • les commandes \@currenvir et \@checkend ne peuvent rien faire avec des groupes
  • les environnement ont des noms : document, center, itemize, displaymath...
(10 Aoû, 22:48) touhami touhami's gravatar image

@touhami, le point de vue de Leslie Lamport a des avantages conceptuels. Il explique pourquoi LaTeX est un langage de balisage. Les balises délimitent un environnement ou si vous préférez un flux de caractères. Ensuite, les commandes et elles seules agissent. Les environnements ayant un nom peuvent être vues comme un commodité, de même que la notation de TeX {\bf ...} est équivalente à celle de LaTeX \textbf{....}. En unifiant la notion de balise, Leslie Lamport justifie pourquoi LaTeX est un langage de balisage qui peut à ce titre être converti dans un autre format avec le logiciel pandoc.

(10 Aoû, 23:08) AndréC Andr%C3%A9C's gravatar image

@AndréC Vous pouvez aller voir cette discussion et les discussion s'y afférant :

https://tex.stackexchange.com/questions/269147/how-do-environments-work

(10 Aoû, 23:21) Nikopol Nikopol's gravatar image

@Nikopol, aucune de ces discussions ne contredisent la définition de Leslie Lamport.

(11 Aoû, 01:22) AndréC Andr%C3%A9C's gravatar image

@touhami, en page 12 de ce document L. Lamport précise que les accolades sont réservées aux commandes. Ce qui est cohérent avec le fait que les balises \begin{...} et \end{...} soient des commandes structurant le flux de caractères situé entre les deux. Un environnement ne peut pas être vu au sens de Leslie Lamport comme une commande car sous LaTeX les arguments d'une commande sont toujours entre accolades, ce qui n'est pas le cas ici. L'environnement peut être vu comme un flux de caractères délimité par des balises. Ainsi, seules les commandes agissent.

(11 Aoû, 13:34) AndréC Andr%C3%A9C's gravatar image

@AndréC Je ne suis pas sûr d'avoir bien comprendre votre commentaire. Je n'étais pas en train de discuter le fonctionnement, en fait j'étais toujours sur le point de la notion d'environnement: dire que {\cmd<s> bla bla \outrecmd<s>} est un environnement est vraiment étrange pour moi. Maintenant, si vous préférer de dire qu'un environnement ne fait rien et que seules les commandes qui agissent, ça peut-être vrai, mais alors on doit accepter l'avis qui dit que seules les primitives agissent.

(11 Aoû, 14:21) touhami touhami's gravatar image

@touhami, les primitives sont définies en TeX sur lequel est construit LaTeX. LaTeX parle de commandes. Une commande est caractérisée par son action. Un environnement n'agit pas, il est l'objet d'actions effectuées par des commandes. C'est la différence entre sujet et objet. Ce qui permet de classifier est la fonction, le rôle, l'usage. Les environnements permettent de délimiter un flux de caractères afin de pouvoir effectuer des actions sur ce flux et uniquement sur lui, pas en dehors. L'environnement est un objet sur lequel agissent des commandes.

(11 Aoû, 16:53) AndréC Andr%C3%A9C's gravatar image

@AndréC nos points de vue sont comme des ======= ;-)

De plus, comment savez vous que l'auteur de ce document est L. Lamport?

(11 Aoû, 20:37) touhami touhami's gravatar image

@touhami, si vous regardez le nom de domaine du site internet http://www-verimag.imag.fr/ vous verrez « VERIMAG Un laboratoire de pointe du domaine des systèmes embarqués » puis « Verimag est une unité de recherche commune à l’Université Grenoble Alpes, au CNRS (INS2I) et à Grenoble-INP ». La page sur laquelle est disponible ce document est celle de Pascal Lafourcade http://www-verimag.imag.fr/~plafourc/

(11 Aoû, 21:43) AndréC Andr%C3%A9C's gravatar image

@AndréC mais rien ni sur le document ni sur la page ne dit que c'est Lamport.

(11 Aoû, 22:39) touhami touhami's gravatar image

@touhami, c'est vrai, je vais écrire à Leslie Lamport pour lui demander si ce document est de lui et s'il pense que cette définition de l'environnement lui convient. Ca y est, je viens de lui envoyer un mail, espérons qu'il réponde...

(11 Aoû, 23:04) AndréC Andr%C3%A9C's gravatar image
1

@touhami, Leslie Lamport vient de me répondre que ce document n'est pas de lui. J'essaie de lui demander sa position sur notre débat, mais mon anglais n'est pas très bon.

(12 Aoû, 01:56) AndréC Andr%C3%A9C's gravatar image
1

@touhami, Leslie Lamport considère que la question de savoir si un environnement est ou non une commande, a une action ou non est philosophique. L'essentiel pour lui étant que l'on sache s'en servir.

(12 Aoû, 02:07) AndréC Andr%C3%A9C's gravatar image

@AndréC Grand merci ^.

(12 Aoû, 02:29) touhami touhami's gravatar image

Je viens de reformuler le paragraphe sur les environnements, vous convient-il désormais ?

(12 Aoû, 09:55) AndréC Andr%C3%A9C's gravatar image

La reformulation est plus adéquate sauf que, dans le cas des environnements, il est faux que « [l]es balises sont dans ce cas des commandes ayant un seul argument : le nom de l'environnement lui-même » : par exemple, l'environnement tabular a un argument obligatoire (le « motif » du tableau). Par ailleurs, le terme de « bloc » pour la zone délimitée par { et } est très peu usité.

(12 Aoû, 15:36) denis ♦♦ denis's gravatar image

Suite à votre reformulation, nos commentaires au sujet de votre formulation initiale n'ont plus de sens et pourraient être perturbants ; je vais donc les supprimer. Quand on souhaite reformuler une réponse (ou une question), il est préférable de laisser la formulation originale et d'y ajouter une nouvelle formulation, clairement indiquée comme étant une mise à jour du propos initial.

(12 Aoû, 15:39) denis ♦♦ denis's gravatar image

@denis, j'ai reformulé le paragraphe pour tenir compte de l'environnement tabular. Quant au terme de bloc, je n'en connais pas d'autres qui permette de décrire les balises dans les implémentation particulières de LaTeX, à défaut j'ai repris le vocabulaire de TeX.

(12 Aoû, 16:02) AndréC Andr%C3%A9C's gravatar image

À mon avis, il est préférable de se limiter à la notion d'environnement (qui est vraiment propre à LaTeX) les blocs sont des groupes. En effet D. knuth appelle {...} groupe simple et \begingroup...\endgroup groupe semi-simple.

(12 Aoû, 16:19) touhami touhami's gravatar image

Si on limite à la notion d'environnement, on perd l'idée de langage de balisage ce qui rend encore plus difficile la vulgarisation. L'abstraction en balises à mon sens éclaire cette notion d'environnement de façon simple et accessible à tous. Peut-être avez-vous une formulation simple qui puisse parler à des néophytes sans parler de balises ? Je n'en ai pas trouvé.

(12 Aoû, 16:33) AndréC Andr%C3%A9C's gravatar image
Affichage de 5 parmi 30 Afficher 25 commentaire(s) en plus
Votre réponse
(dés)activer l'aperçu

Suivre cette question

Par courriel :

Une fois que vous serez enregistré, vous pourrez souscrire à n'importe quelle mise à jour ici

Par flux RSS :

Réponses

Réponses et commentaires

Bases de Markdown

  • *italique* ou _italique_
  • **gras** ou __gras__
  • Lien ::[texte](http://url.com/ "Titre ")
  • Image : ?![alt texte](/path/img.jpg "Titre ")
  • Liste numérotée : 1. Foo 2. Bar
  • Pour ajouter un passage à la ligne, ajoutez deux espaces à l'endroit où vous souhaitez que la ligne commence.
  • Les balises HTML de base sont également prises en charge.

Mots-clés de la question :

×5
×4
×1

Question posée : 01 Aoû, 02:36

Question vue : 367 fois

Dernière mise à jour : 12 Aoû, 16:38