Installation de nouveaux package

Bonjour,
j'ai presque honte de ma question mais...je coince.
Je suis grand débutant en LaTeX ; je travaille avec la distribution TeXlive et l'éditeur TexStudio.
J'ai besoin d'utiliser des intervalles d'entiers et, pour ce faire, besoin du package stmaryrd. J'ai trouvé où le télécharger mais je ne sais pas :
- où l'enregistrer (ni même quoi enregistrer) sur mon PC (sous Windows 10) ;
- comment faire en sorte de le faire reconnaître par TexStudio (ou Texlive d'ailleurs).

Merci d'avance pour votre aide.
Leisio

Réponses

  • Bonjour Leisio,

    TeX Live a son propre gestionnaire de packages qui s'appelle tlmgr (mgr pour “manager”). C'est sans doute plus simple et certainement plus propre d'installer (ou mettre à jour) les packages avec lui qu'à la main. Regarde le chapitre tlmgr: Managing your installation dans le manuel de TeX Live. Je ne peux guère être plus précis car dans ma distribution (Debian), il ne faut pas utiliser tlmgr pour gérer le TeX Live du système.

    Edit : j'oubliais de le dire, mais a priori du moment que c'est installé dans ton TeX Live, je ne pense pas qu'il y ait quoi que ce soit à faire du côté de TeXstudio.
  • Merci Brian pour tes conseils.
    Grace à TexLive Manager, j'ai pu trouver le package stmaryrd ; je clique sur "Installer" et j'ai le message "package already present : stmaryrd". Jusque là tout va bien.
    Mais, quand j'utilise mon éditeur TexStudio, il me dit encore que le package stmaryrd est introuvable... Serai-ce un problème de paramétrage de TexStudio? Si oui, que dois-je modifier ?
    Merci d'avance
  • Je ne connais pas vraiment TeXstudio, mais il me semble que tu dois pouvoir compiler le document normalement même avec ce message (l'important, c'est que le programme latex trouve les .sty auxquels ton doc fait appel). Le message que tu vois signifie peut-être que TeXstudio ne pourra pas faire d'autocomplétion pour les macros fournies par stmaryrd.sty. Franchement, il y a des choses plus graves dans la vie. :-)

    Dans cette question sur TeX.SE, ils ont l'air de dire que TeXstudio utilise une commande MikTeX pour déterminer si tel ou tel package est présent, à savoir 'mpm.exe --list'. Soit c'est toute la vérité, auquel cas il n'y a rien d'étonnant à ce que tu rapportes, soit il y a omission de la mention d'un test non spécifique à MikTeX ; difficile de trancher entre les deux possibilités sans plus d'infos sur TeXstudio.

    Quoi qu'il en soit, je suggérerais d'essayer de compiler ton document, il y a de grandes chances que ça marche tout à fait normalement.
  • J'ai bien essayé de compiler mais les commandes dont j'ai besoin (\llbracket notamment) ne fonctionnent pas.
    Je ne comprends pas trop ta référence à Miktex (ma distribution latex est Texlive, ou c'est moi qui comprend mal ce que je dis).
    Il se trouve néanmoins que Miktex se trouve sur mon PC(j'avais fait une tentative latex il y a plusieurs années afin d'utiliser qq petits logiciels). Serait ce un conflit entre Miktex et Texlive ?
  • La référence à MikTeX, c'est parce que d'après le message que j'ai mis en lien, TeXstudio utiliserait une commande MikTeX pour savoir si tel ou tel package est installé. Comme je l'ai dit, je ne sais pas si c'est vraiment le seul mécanisme en place pour faire cela dans TeXstudio, mais a priori, cela ne devrait pas t'empêcher de compiler correctement un document, même si TeXstudio ne connaît pas tous les packages employés (il ne manquerait plus que ça : plein de gens ont des packages perso, s'il fallait écrire un fichier .cwl spécial TeXstudio pour chacun d'eux avant de pouvoir s'en servir, ce serait peu pratique).

    Bon, reste que ta compil. ne fonctionne pas. D'après ce que tu dis, il semble plausible que TeXstudio appelle le programme latex (ou pdflatex, etc.) installé par MikTeX et non celui installé par TeX Live. Si stmaryrd n'est pas installé dans ton MikTeX, cela pourrait bien expliquer ce que tu rapportes.

    Ce serait pas mal de copier/coller ici la sortie de compilation, là où apparaissent les messages d'erreurs, car le non-fonctionnement peut être dû à autre chose que stmaryrd.sty non trouvé. Cela pourrait être la police, etc.

    D'autre part, si l'hypothèse ci-dessus correspond à la réalité, il faudrait probablement retirer MikTeX du PATH (voire carrément le désinstaller) et mettre TeX Live à la place s'il n'y est pas déjà (PATH est une variable d'environnement) ; ou bien indiquer des chemins explicites pour les exécutables latex.exe, pdflatex.exe, etc. dans les préférences de TeXstudio (bof, car il y en a un paquet, donc à un moment ou à un autre, tu risquerais avec cette méthode d'utiliser par inadvertance un mix des deux installations).

    Tu pourrais aussi compiler ton doc en ligne de commande (cmd.exe) pour tester, en indiquant le chemin complet de latex.exe (ou pdflatex.exe, etc.) pour être sûr d'utiliser celui de TeX Live.
  • Petite avancée. Il me dit toujours que le package est introuvable, m'alerte que la commande \llbracket est inconnue mais pourtant, lors de la compilation, affiche bien le résultat voulu.
    En y regardant de plus prés dans la configuration Texstudio, il n'y a aucun renvoi vers Miktex.
    Y a t-il un moyen de connaitre la liste des packages installés et/ou reconnus par texstudio ?
  • Je n'y comprends pas grand-chose. Dans ce message, tu as écrit que \llbracket, entre autres, ne fonctionne pas. Et maintenant tu dis que ça « affiche bien le résultat voulu ». Gni ?

    J'avais bien dit qu'il fallait compiler le document, et que le fait que TeXstudio reconnaisse ou non un package donné n'a à mon avis aucune influence sur le fichier produit par LaTeX. Donc ça veut dire quoi, « ne fonctionne pas » ? Il faudrait savoir quel est le programme émetteur des messages « le package est introuvable » et « la commande \llbracket est inconnue », entre LaTeX et TeXstudio (candidats les plus probables). C'est pour cela, entre autres, que j'ai demandé de poster le résultat de la compilation. Quelque chose qui ressemble à ça :
    Running `LaTeX' on `test' with ``pdflatex  -file-line-error   -interaction=nonstopmode "\input" test.tex''
    This is pdfTeX, Version 3.14159265-2.6-1.40.17 (TeX Live 2016/Debian) (preloaded format=pdflatex)
     restricted \write18 enabled.
    entering extended mode
    LaTeX2e <2017/01/01> patch level 3
    Babel <3.9r> and hyphenation patterns for 44 language(s) loaded.
    (./test.tex (/usr/share/texlive/texmf-dist/tex/latex/base/article.cls
    Document Class: article 2014/09/29 v1.4h Standard LaTeX document class
    (/usr/share/texlive/texmf-dist/tex/latex/base/size12.clo))
    (/usr/share/texmf/tex/latex/lm/lmodern.sty)
    (/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty
    (/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.def))
    (/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty
    (/usr/share/texlive/texmf-dist/tex/latex/base/utf8.def
    (/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.dfu)
    (/usr/share/texlive/texmf-dist/tex/latex/base/ot1enc.dfu)
    (/usr/share/texlive/texmf-dist/tex/latex/base/omsenc.dfu)))
    (/usr/share/texlive/texmf-dist/tex/latex/stmaryrd/stmaryrd.sty) (./test.aux)
    (/usr/share/texmf/tex/latex/lm/t1lmr.fd)
    (/usr/share/texmf/tex/latex/lm/ot1lmr.fd)
    (/usr/share/texmf/tex/latex/lm/omllmm.fd)
    (/usr/share/texmf/tex/latex/lm/omslmsy.fd)
    (/usr/share/texmf/tex/latex/lm/omxlmex.fd)
    (/usr/share/texlive/texmf-dist/tex/latex/stmaryrd/Ustmry.fd) [1{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}] (./test.aux) ){/usr/share/texmf/fonts/enc/
    dvips/lm/lm-ec.enc}{/usr/share/texmf/fonts/enc/dvips/lm/lm-rm.enc}{/usr/share/texmf/fonts/enc/dvips/lm/lm-mathsy.enc}{/usr/share/texmf/fonts/enc/dvips/lm/lm-mathit.enc}</usr/share/texmf/fonts/type1/public/lm/lmmi12.pfb></usr/share/texmf/fonts/type1/public/lm/lmr12.pfb></usr/share/texmf/fonts/type1/public/lm/lmsy10.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/stmaryrd/stmary10.pfb>
    Output written on test.pdf (1 page, 23921 bytes).
    Transcript written on test.log.
    
    TeX Output finished at Sun Jun 24 16:26:49
    
    Ou bien le fichier .log écrit par LaTeX lors de la compilation. Sans l'un ni l'autre, on est dans le flou le plus total.

    D'autre part, le fait que MikTeX n'apparaisse pas explicitement dans les paramétrages de TeXstudio ne prouve pas qu'il n'est pas utilisé. C'est pour cela que j'ai suggéré d'examiner le contenu de la variable d'environnement PATH. Une recherche sur un moteur typique devrait permettre de trouver assez facilement comment accéder à son contenu, et même le modifier.

    PATH définit un ordre de priorité de recherche parmi les répertoires (= dossiers) contenant des fichiers exécutables, utilisé quand une commande est exécutée sans que le chemin du programme .exe (ou .com, .bat...) n'ait été spécifié. Le premier répertoire dans PATH contenant un fichier exécutable avec le nom de la commande gagne(*). Si le répertoire contenant les exécutables de MikTeX est avant celui contenant les exécutables de TeX Live dans PATH, ou que celui de TeX Live n'y figure pas du tout, alors MikTeX gagne (sauf si MikTeX n'y figure pas non plus, ou si l'on précise explicitement le chemin du programme lancé, ou si on exécute la commande depuis un répertoire contenant un programme ayant le nom de la commande, par exemple le répertoire contenant les exécutables de TeX Live).

    Quant au support de tel ou tel package LaTeX par TeXstudio, ça a l'air de se faire au moyen de fichiers .cwl, mais n'utilisant pas cet éditeur, je n'en dirais pas plus sur le sujet.

    (*) Par exemple latex.exe si on a lancé 'latex machin.tex'.
  • Tout d'abord, navré de ne pas être précis ni rigoureux dans les termes que j’emploie mais beaucoup sont totalement nouveaux pour moi.
    Le "il" qui me dit que le package est introuvable et la commande \llbracket inconnue c'est Texstudio.
    J'avais fait (et je ne l'ai pas écrit, je le reconnais) la "mise à jour de tous les packages installés" via TexLiveManager.
    Avant cela, rien n'apparaissait dans le pdf (càd, après la compilation) ; après cela, le résultat voulu apparaît sur le pdf.
    Je regarde comment obtenir le "résultat de la compilation" et "le contenu de la variable d'environnement PATH" que je publie dès que je les ai.
  • Voici, sauf erreur de ma part, le fichier log.
  • et voici le contenu de la variable d'ajustement PATH77470
  • Ton PATH est bon : ça doit compiler avec TeX Live sauf si MikTeX est explicitement spécifié dans la config TeXstudio, ce qui n'est pas le cas d'après tes messages précédents. (variable d'environnement, pas d'ajustement)

    Pour le log, c'est pas bon : tu as mis le fichier PDF. Le vrai log a l'extension .log, dans le même répertoire que le fichier .tex et le .dvi ou .pdf que tu obtiens à partir du .tex. Mais c'est assez bavard, donc je me contenterai de la sortie de latex (ou pdflatex, etc.) que tu peux copier en activant Show stdout: Always (if not redirected) dans Configure TeXstudio -> Build :
    0JaJ7NN
    Mais à mon avis, il n'y a pas de problème. Ensuite, tu compiles ton doc et tu cliques droit dans la fenêtre Messages pour tout sélectionner, et Ctrl-C pour copier, etc :
    OB6Xmkr
    Enfin, pour le support de stmaryrd non activé dans ton TeXstudio, tu as peut-être une case à cocher comme ceci :
    ZF0LBnN

    Les trois captures d'écran sont ici.
  • En fait, tu as attaché le contenu du fichier .log converti en PDF, je me suis fait avoir. Parce que normalement, le .log est du texte brut. Je crois que c'est bon pour ton document ; en particulier, pas de problème visible avec stmaryrd. Tu devrais ajouter \usepackage{textcomp}, c'est suggéré dans le log et archi-standard (sinon, certains caractères manquent...). Moi, je le mets comme suit :
    \documentclass[a4paper,french,12pt]{article}
    \usepackage{lmodern}
    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}
    \usepackage{textcomp}
    ...
    
  • Merci Brian pour tes réponses !
    En revanche, dans le menu "Complétion", je n'ai pas de case à cocher pour stmaryrd77478
  • Tant que j'y suis, voici le menu "compilation", au cas où tu y vois quelque chose d'anormal77480
  • Pour la case à cocher stmaryrd, peut-être une question de version de TeXstudio ? La capture d'écran que j'ai postée correspond à TeXstudio 2.11.2 (hg 6191:c01fb289a5fe) (faire Help -> About TeXstudio).

    Pour les commandes, ça doit aller mais c'est un peu bizarre d'avoir pour certaines un chemin explicite (p. ex. 'C:\texlive\2018\bin\win32\pdflatex.exe') et pour d'autres juste le nom de l'exécutable (p. ex. 'dvipng.exe'). Normalement, vu le PATH que tu as posté, tu dois pouvoir retirer tous les chemins explicites (pour éviter la redondance et un travail modérément fastidieux quand tu mettras à jour TeX Live et qu'il ne sera plus dans 'C:\texlive\2018').

    Un paramètre qui semblait intéressant, c'est le Commands ($PATH) situé dans la rubrique Additional search paths de ma première capture d'écran. En principe, tu devrais pouvoir y mettre 'C:\texlive\2018\bin\win32' et ne mettre que le nom de l'exécutable (suivi des arguments à lui passer) dans les autres champs au-dessus. Ce serait explicite et bien factorisé[1], mais ça n'a pas l'air de fonctionner chez moi. Pourtant, d'après ce message, cela semble bien prévu à cet effet. Bon...

    Enfin, pour l'afficheur DVI, ce n'est pas vraiment important si tu travailles avec des fichiers PDF[2]. Je ne sais pas s'il y en a encore un dans TeX Live sous Windows (WinDVI, Yap ?). Pas très grave, PDF le remplace sans problème (liens cliquables, bookmarks, recherche de texte, peut embarquer les polices, accepté à peu près partout, etc.).

    [1] 'C:\texlive\2018\bin\win32' figurant alors exactement une fois dans la configuration.
    [2] Sauf si quelqu'un t'envoie un DVI, mais c'est de moins en moins courant car il faut que le récipiendaire ait une installation TeX avec les polices utilisées dans le DVI pour pouvoir l'afficher correctement, entre autres raisons.
  • La version de Texstudio que j'ai est : TeXstudio 2.12.8 (hg 2.12.8-1-g68cd350).

    Pour les chemins explicites, c'est moi qui les ai modifié "à la main" en m'inspirant de documents trouvés sur Internet. Tu m'invites à les retirer tous, mais par quoi dois-je les remplacer?

    Dans "Commands($PATH)", tu dis "ne mettre que le nom de l'exécutable (suivi des arguments à lui passer) dans les autres champs au-dessus", c'est à dire ?
  • Pour la case à cocher stmaryrd que tu n'as pas, je n'ai pas d'explication ; il faudrait quelqu'un qui connaît mieux TeXstudio. Mais comme je l'ai dit, à mon avis ce n'est pas embêtant : il s'agit, pour autant que je sache, essentiellement de proposer de la complétion pour les commandes fournies par le package LaTeX stmaryrd dans l'éditeur intégré à TeXstudio, et il y a probablement des milliers d'autres packages LaTeX qui n'ont pas de fichier .cwl dédié pour TeXstudio.

    Concernant les chemins, tu peux garder ce que tu as si ça marche. Moi, j'aurais essayé, dans l'onglet Build (Compilation), de ne mettre que des choses comme :
    latex -src -interaction=nonstopmode %.tex
    
    au lieu de :
    C:\texlive\2018\bin\win32\latex -src -interaction=nonstopmode %.tex
    
    et, pour déterminer où les programmes[1] vont être pris sans s'appuyer uniquement sur l'ordre du PATH
    (c'est un choix, mais les deux sont défendables), j'aurais mis ceci dans le champ Commands ($PATH)
    en bas à gauche de l'onglet Production (je te laisse traduire Commands ($PATH) en français) :
    C:\texlive\2018\bin\win32
    

    D'après le message que j'ai mis en lien, c'est censé fonctionner comme ceci (après, je ne connais pas l'auteur du message ni son rapport avec TeXstudio). J'ai fait un petit test chez moi avec un script bidon appelé pdflatex dans un répertoire temporaire que j'ai indiqué dans Commands ($PATH), et malheureusement mon script n'a pas été appelé quand j'ai lancé la compilation. Donc je ne garantis pas que ce changement va fonctionner chez toi, mais tu peux essayer si tu veux éviter la redondance (le chemin 'C:\texlive\2018\bin\win32' répété à plein d'endroits de la configuration de TeXstudio).

    [1] Dans notre exemple, le programme est 'latex' et ses arguments sont '-src', '-interaction=nonstopmode', et 'machin.tex', après remplacement de 'machin' par le nom de ton document.
  • Comme tu l'auras compris, je ne suis pas très aventurier avec tous ces paramétrages fins (pour moi).
    J'ai quelquechose qui fonctionne, et ça me suffit largement ainsi.
    Mes packages sont tous qualifiés d'"introuvables"(exemple dans l'image avec "babel") ; j'accéderai à leurs documentations par Internet.
    Merci encore pour le temps que tu m'as consacré.77486
  • Y'a pas d'quoi. :-)

    Ce que tu montres avec babel est certainement un bug dans ton TeXstudio, qui n'est pas présent dans la version que j'ai installée sous Debian. À la place, j'ai un tooltip qui affiche « Package babel: multilingual support for Plain TeX or LaTeX ». Après lecture de la FAQ de TeXstudio sur les fichiers .cwl et quelques recherches, il s'avère que :
    • Cocher les cases Permanently active completion files dans Configure TeXstudio -> Completion n'est plus utile avec les versions actuelles. Aujourd'hui, quand TeXstudio voit un \usepackage{machin}, il cherche d'office à charger machin.cwl si ce fichier existe (cela reste peut-être utile si un package charge lui-même un autre package mais que TeXstudio ne s'en rend pas compte...).
    • TeXstudio se débrouille à partir de machin.sty quand il ne trouve pas machin.cwl, mais il ne peut faire un aussi bon travail qu'un humain qui écrit machin.cwl, car parser de manière 100 % correcte du code TeX/LaTeX quelconque pour en extraire ne serait-ce que la syntaxe supportée (API de tel ou tel package LaTeX) est extrêmement complexe (en gros, ça nécessite un moteur TeX), donc lorsqu'il ne trouve pas de fichier écrit par un humain, TeXstudio fait de son mieux, mais il ne faut pas s'attendre à un résultat parfait (autrement, personne ne s'embêterait à écrire des fichiers .cwl...).
    • Certains fichiers .cwl (par exemple celui de babel) sont chargés à l'exécution (“at runtime”) par TeXstudio via le système des ressources Qt ; sous Linux, cela signifie qu'ils sont compilés en dur dans l'exécutable texstudio, ce qui est facile à vérifier avec une commande telle que :
      strings /chemin/de/l'exécutable/texstudio | grep -F -C3 "iflanguage{language}{if true}{if false}"
      
      (cela sort un petit extrait de completion/babel.cwl à partir de l'exécutable texstudio ; mais comme le logiciel du forum met tout sur une seule ligne, j'ai omis le résultat).
    • Sur mon installation, TeXstudio est capable, dans un document contenant \usepackage{babel}, de proposer \selectfont (une commande LaTeX “built-in”) et \selectlanguage{language} après que j'ai entré \sele. La deuxième proposition vient manifestement du babel.cwl susmentionné.
    • Quant à stmaryrd, le tooltip affiché lorsque la souris s'arrête sur \usepackage{stmaryrd}, qui dit « stmaryrd: St Mary Road symbols for theoretical computer science. » est également chargé via le mécanisme des ressources Qt ; il provient du fichier utilities/packageList dans le dépôt du code source de TeXstudio. Je n'ai pas de stmaryrd.cwl, et il n'est pas « built-in » non plus, contrairement à babel.cwl. Conformément à ce que dit la FAQ TeXstudio mentionnée au début de ce message, TeXstudio génère automatiquement un fichier $HOME/.config/texstudio/completion/autogenerated/stmaryrd.cwl à partir de stmaryrd.sty, qui contient plein de lignes du genre :
      \Longarrownot#S
      
      (sous Windows, le fichier autogénéré doit être dans %APPDATA%\texstudio\completion\autogenerated).
    Je ne sais pas d'où vient ton TeXstudio, mais il a peut-être un problème dans le chargement des ressources Qt, notamment celles provenant des fichiers completion.qrc (qui contient entre autres la référence à completion/babel.cwl) et texstudio.qrc (qui référence utilities/packageList). Ce n'est probablement pas un problème général avec les ressources Qt sur ton TeXstudio, sans quoi je pense qu'il te manquerait plein d'icônes et que cela se verrait sur tes captures d'écran.

    Voilà. Comme je l'ai dit, c'est juste pour le confort d'édition, ça n'affecte pas tes fichiers PDF. Mais si tu es motivé pour régler le problème, tu peux peut-être rapporter un bug à l'endroit prévu pour.
  • Bonjour
    Et sur mac ? Comment ça se passe ?
    La plupart des packages sont ajoutés automatiquement, mais là j'aimerais rajouter le package mytheorem.
    Merci d'avance.
  • Bonjour,

    Ce n'est pas très clair. Comme je l'ai écrit récemment, la « bonne » manière d'installer un package LaTeX dépend de la distribution TeX utilisée, du système d'exploitation et de la manière dont la distribution TeX a été installée au sein du système d'exploitation. Et d'où sort ce mytheorem ? Je ne le vois pas sur CTAN. De toute façon, je ne suis pas sûr de pouvoir aider pour les problèmes « Mac ».
Connectez-vous ou Inscrivez-vous pour répondre.