Outils pour utilisateurs

Outils du site


issue215:latex

Welcome back to Full Circle and to Latex. This time, I am going to explain a few ways to install new packages to Latex on Linux. My “development” machine runs Mint 22.1, which is a Ubuntu derivative. This information is to alert you to the possibility the locations of my files on my machine may not match the locations of the same files on your machine. In last month’s column, I reviewed the history of Tex and indicated why it was written using packages. In addition to the very limited computing resources available when it was developed, the package structure points out most people who write have specialized needs. They are primarily mathematicians or chemists or chefs or translators or whatever. Most people do not need or use all the tools available in Latex or word processors. Most use a set of the same features in almost every document. With Tex / Latex, it is easy to make a template that includes all of the required packages and then generate the same kind of document every time. For example, if you never use graphs in documents then do not fill up computer memory with software that generates graphs. There are a few thousand packages described in the two volumes of The Latex Companion (ISBN 978-0-13-465894-0). There are many more packages available at ctan.org. You should be able to find at least one package that will help you get the result you want. First you need to know if a desired package is already installed.

Bienvenue dans le Full Circle et dans LaTeX. Cette fois, je vais vous expliquer comment installer de nouveaux paquets pour LaTeX sous Linux. Ma machine de « développement » utilise Mint 22.1, un dérivé d'Ubuntu. Ces informations visent à vous alerter sur la possibilité que l'emplacement de mes fichiers sur ma machine ne corresponde pas à celui de ces mêmes fichiers sur la vôtre.

Dans la chronique du mois dernier, j'ai passé en revue l'historique de TeX et expliqué pourquoi il a été développé à l'aide de paquets. Outre les ressources informatiques très limitées disponibles lors de son développement, la structure des paquets indique que la plupart des rédacteurs ont des besoins spécifiques. Il s'agit principalement de mathématiciens, de chimistes, de cuisiniers, de traducteurs, etc. La plupart des gens n'ont pas besoin de tous les outils disponibles dans LaTeX ou les traitements de texte, ni ne les utilisent. La plupart utilisent un ensemble de fonctionnalités identiques dans presque tous leurs documents. Avec TeX/LaTeX, il est facile de créer un modèle incluant tous les paquets requis, puis de générer le même type de document à chaque fois. Par exemple, si vous n'utilisez jamais de graphiques dans vos documents, évitez de surcharger la mémoire de votre ordinateur avec des logiciels qui en génèrent.

Plusieurs milliers de paquets sont décrits dans les deux volumes de The LaTeX Companion (ISBN 978-0-13-465894-0). De nombreux autres paquets sont disponibles sur ctan.org. Vous devriez trouver au moins un paquet qui vous permettra d'obtenir le résultat souhaité. Vous devez d'abord vérifier si le paquet souhaité est déjà installé.

I use a tool to help me find files. The command is “locate”. If I remember correctly it is not part of recent standard Linux installations. If it does not exist on your system, it is a very small bit of code, easy to install from a terminal using apt or whatever method your operating system uses. It searches a database of file names so, before you use it the first time, type “sudo updatedb”. The locate database should be updated regularly. It is a good candidate for the root cron. Once the database is built or updated you can use locate to find the package you want to use. Another way to find out if the package you need has been installed is to search for it using tlmgr (TexLive manager). You need to know the name of the package so do a search at CTAN to find a package that fits your needs. On the command line, type tlmgr info package-name. It takes a few seconds and then generates several lines of information about the package. You could also use locate or find to do the same task. If you have use of tlmgr, it will normally do the work necessary to install any extra package you need. It is similar to apt (or any standard system upgrading and installation program). An easy way to check if tlmgr is installed and/or usable is to run tlmgr update –list. It will go through the installed packages on your device and list all those which need to be updated. Since it checks your complete TexLive/Latex installation, this is not an instantaneous action. It takes a few seconds before you will see results. Of course if it is not installed or you do not have rights to use it, then you should see the error message quickly. The help available for tlmgr is extensive. When I imported it into OpenOffice Writer it spanned thirty-five pages.

J'utilise un outil pour trouver des fichiers. La commande est « locate ». Si je me souviens bien, elle ne fait pas partie des installations Linux standard récentes. Si elle n'existe pas sur votre système, il s'agit d'un tout petit morceau de code, facile à installer depuis un terminal avec apt ou toute autre méthode utilisée par votre système d'exploitation. Elle recherche une base de données de noms de fichiers ; donc, avant de l'utiliser pour la première fois, saisissez « sudo updatedb ». La base de données « locate » doit être mise à jour régulièrement. Voilà un candidat idéal pour le cron racine. Une fois la base de données créée ou mise à jour, vous pouvez utiliser « locate » pour trouver le paquet que vous souhaitez utiliser.

Une autre façon de savoir si le paquet dont vous avez besoin est installé, c'est de le rechercher avec tlmgr (gestionnaire TexLive). Vous devez connaître le nom du paquet, donc, effectuez une recherche sur CTAN pour trouver un paquet qui correspond à vos besoins. Sur la ligne de commande, saisissez « tlmgr info nom-paquet ». L'exécution prend quelques secondes et génère ensuite plusieurs lignes d'informations sur le paquet. Vous pouvez également utiliser « locate » ou « find » pour effectuer la même tâche.

Si vous utilisez tlmgr, il effectuera normalement l'installation des paquets supplémentaires nécessaires. Il est similaire à apt (ou à tout programme standard de mise à niveau et d'installation de système). Un moyen simple de vérifier si tlmgr est installé et/ou utilisable est d'exécuter « tlmgr update –list ». Il parcourra les paquets installés sur votre appareil et listera ceux qui nécessitent une mise à jour. Comme il vérifie l'intégralité de votre installation TexLive/LaTeX, cette action n'est pas instantanée. Quelques secondes sont nécessaires avant que les résultats ne soient visibles. Bien sûr, si tlmgr n'est pas installé ou si vous n'avez pas les droits pour l'utiliser, le message d'erreur devrait apparaître rapidement. L'aide disponible pour tlmgr est complète. Lorsque je l'ai importé dans OpenOffice Writer, elle s'étendait sur trente-cinq pages.

Once you have done a couple of searches for Latex files you will see the general structure of the tex directory tree. If you record the location of the major file groups, you may decide you do not need to use locate. I use locate because it is easy for me. On my Mint system, Latex packages tend to get installed in one of three places, either in /usr/local/texlive/2024/bin/x86_64-linux or in /usr/share/texlive/texmf-dist/tex/latex or in /usr/local/texlive/2024/texmf-dist/tex/latex. As you might guess, “2024” indicates the release year of texlive/Linux I use. On my system /usr/local/texlive/2024 is essentially the root of the tex directory tree. What happens if you use the usepackage {name of desired package} command, and the package is not installed? That depends on what interface you use to write Latex/Tex files. If I write Latex files with a text editor then I find out about a missing package during the compile phase, when the Tex file is converted to a PDF file. If a package is missing then the Tex file will not generate a PDF file. Instead an error will be generated saying there is a missing package. If I use TexStudio (which I usually do), then I can see immediately if a new package is required. When I type \usepackage{ TexStudio shows me a list of all the packages available on my system. Obviously if I want to use a package not on the list I must install it before the compile will be error-free. Then I use tlmgr in a terminal to install it: tlmgr install name-of-desired-package.

Après avoir effectué quelques recherches de fichiers LaTeX, vous verrez la structure générale de l'arborescence de répertoires tex. Si vous enregistrez l'emplacement des principaux groupes de fichiers, vous pourriez décider que vous n'avez pas besoin d'utiliser locate. J'utilise locate car c'est plus simple pour moi.

Sur mon système Mint, les paquets LaTeX sont généralement installés à l'un des trois emplacements suivants : /usr/local/texlive/2024/bin/x86_64-linux, /usr/share/texlive/texmf-dist/tex/latex ou /usr/local/texlive/2024/texmf-dist/tex/latex. Comme vous pouvez le deviner, « 2024 » indique l'année de publication de texlive/Linux que j'utilise. Sur mon système, /usr/local/texlive/2024 est en fait la racine de l'arborescence de répertoires tex.

Que se passe-t-il si vous utilisez la commande usepackage {nom du paquet souhaité} et que le paquet n'est pas installé ? Cela dépend de l'interface utilisée pour écrire les fichiers LaTeX/TeX. Si j'écris des fichiers LaTeX avec un éditeur de texte, je découvre qu'un paquet est manquant pendant la compilation, lors de la conversion du fichier TeX en PDF. Si un paquet est manquant, le fichier TeX ne génère pas de fichier PDF. À la place, une erreur est générée, indiquant qu'un paquet est manquant.

Si j'utilise TeXstudio (ce que je fais habituellement), je vois immédiatement si un nouveau paquet est requis. Lorsque je tape \usepackage{ , TeXstudio affiche la liste de tous les paquets disponibles sur mon système. Évidemment, si je souhaite utiliser un paquet qui ne figure pas dans la liste, je dois l'installer pour que la compilation soit sans erreur. J'utilise ensuite tlmgr dans un terminal pour l'installer :

tlmgr install nom-du-paquet-souhaité.

Sometimes the package on ctan.org is not structured in a way that tlmgr can use. This seems to happen most frequently with old packages. That is when the locate utility I mentioned becomes useful. Most packages add one (occasionally more than one) style file (.sty) to the tex directories. Some packages add a class file (.cls) instead. Here is the process I have used to install old packages that will not install with tlmgr: • Download the package zip from ctan.org. • Unpack the zip file and read all the documentation if it exists. This will tell me two things: 1) will the package do what I need and 2) is there anything special or complicated about the installation. There is a WikiBooks page entitled Latex_Installing_Extra_Packages from 2022 September. It says Latex packages are installed in subdirectories in texmf/tex/latex named after each package. If in doubt about where packages are installed find “texmf/tex/latex” (or texmf/tex-dist/latex) on your system. Some old packages require the first four steps in the process listed in WikiBooks and shown below. I avoid those packages if possible. Other old packages will contain some short documentation plus either a .sty file or a .cls file. Then I follow the steps below: • I use locate to find the installed .sty / .cls files, or I look for the piece of paper that I wrote this location on. • I make a new directory in the part of the tree that has the other .sty /. cls directories. I name this new directory the name of the package. • I copy the .sty / .cls file into the new directory. • I run texhash to rebuild the Tex directory database.

Il arrive que le paquet sur ctan.org ne soit pas structuré de manière à être utilisable par tlmgr. Cela semble se produire le plus souvent avec les anciens paquets. C'est alors que l'utilitaire locate mentionné ci-dessus devient utile. La plupart des paquets ajoutent un (parfois plusieurs) fichier(s) de style (.sty) aux répertoires tex. Certains paquets ajoutent un fichier de classe (.cls) à la place. Voici la procédure que j'ai utilisée pour installer les anciens paquets qui ne s'installent pas avec tlmgr : • Téléchargez le fichier zip du paquet depuis ctan.org. • Décompressez le fichier zip et lisez toute la documentation, si elle existe. Cela permet de savoir deux choses : 1) si le paquet répondra aux besoins ; et 2) s'il y a une particularité ou une complexité dans l'installation.

Il existe une page WikiBooks intitulée LaTeX_Installing_Extra_Packages, datant de septembre 2022. Elle indique que les paquets LaTeX sont installés dans des sous-répertoires de texmf/tex/latex, nommés d'après chaque paquet. En cas de doute sur l'emplacement d'installation des paquets, recherchez « texmf/tex/latex » (ou texmf/tex-dist/latex) sur votre système.

Certains anciens paquets nécessitent les quatre premières étapes du processus listé dans WikiBooks et présenté ci-dessous. J'évite ces paquets autant que possible. D'autres anciens paquets contiennent une courte documentation, ainsi qu'un fichier .sty ou .cls. Ensuite, je suis les étapes suivantes : ••J'utilise locate pour trouver les fichiers .sty/.cls installés, ou je recherche le morceau de papier sur lequel j'ai noté cet emplacement. ••Je crée un nouveau répertoire dans la partie de l'arborescence contenant les autres répertoires .sty/.cls. Je nomme ce nouveau répertoire du nom du paquet. ••Je copie le fichier .sty/.cls dans le nouveau répertoire. ••J'exécute texhash pour reconstruire la base de données du répertoire tex.

The instructions from WikiBooks (2022) for installing new packages involve these steps: • Extract the files. Run Latex on the supplied ins file. (See Comments below.) • Generate the documentation. Run Latex on the .dtx file. This will make a dvi file or a pdf if you have pdfLatex installed. (See Comments below.) • Install the files to a local directory in the ~/texmf part of the tree (probably ~/texmf/tex/latex/local). Using a local directory prevents any of the new package files from writing over the standard TexLive installation. To be consistent, name the directory for the new package the same as the package. Usually there is only a ty file to move into that new directory. • Update the Latex index of files. Most Important and easy to do. Simply run the command texhash and wait for it to complete. If you forget to run texhash, Latex will not know where the new file or files are and none of them will be available to use. • If the installation involved fonts, you also need to update the font map. Fonts can be installed in the system-wide directory and/or in the local (personal) directory. There are two different ways to update the Latex font map. (The newfont.map file will be provided with the font package.) System-wide: updmap-sys - -force - - enable Map=newfont.map

Les instructions de WikiBooks (2022) pour l'installation de nouveaux paquets comprennent les étapes suivantes : ••Extraire les fichiers. Exécuter LaTeX sur le fichier ins fourni. (Voir les commentaires ci-dessous.) ••Générer la documentation. Exécuter LaTeX sur le fichier .dtx. Cela créera un fichier DVI ou un PDF si pdfLatex est installé. (Voir les commentaires ci-dessous.) ••Installer les fichiers dans un répertoire local dans la partie ~/texmf de l'arborescence (probablement ~/texmf/tex/latex/local). L'utilisation d'un répertoire local empêche l'écrasement des fichiers du nouveau paquet par l'installation standard de TexLive. Par souci de cohérence, nommez le répertoire du nouveau paquet avec le même nom que le paquet lui-même. En général, il suffit de déplacer un fichier ty dans ce nouveau répertoire. ••Mettre à jour l'index des fichiers LaTeX. Le plus important et le plus simple est d'exécuter la commande texhash et d'attendre qu'elle se termine. Si vous oubliez d'exécuter texhash, LaTeX ne saura pas où se trouvent les nouveaux fichiers et aucun d'entre eux ne sera disponible. ••Si l'installation impliquait des polices, vous devez également mettre à jour la table des polices. Les polices peuvent être installées dans le répertoire système et/ou dans le répertoire local (personnel). Il existe deux façons de mettre à jour la table des polices LaTeX. (Le fichier newfont.map est fourni avec le paquet de polices.)

Sur tout le système : updmap-sys –force –enable Map=newfont.map

Local: I direct you to www.tug.org/fotts/fontinstall-personal.html for detailed instructions. TUG discourages users from installing fonts locally. The process is more complicated and forces the use of updmap-sys every time after updmap-user is run in order for all fonts on the device to be recognized. Whether installed locally or system-wide, the system file name database has to be updated after fonts are installed. You can use mktexslr (or texhash) to do that. If you installed Latex as root (not recommended), then you must use sudo -H mktexlsr. Comments on the Four / Five Step process above. The Wikibooks steps are unnecessarily complicated. Perhaps they were necessary in the past. For most packages there is a simple two-step installation process. • In a terminal tlmgr install name-of-package • texhash If you use tlmgr update - -all the mktexslr command mentioned with fonts runs automatically once the update is finished. That is very convenient. I also run sudo texhash after the update just to be certain.

En local : Je vous invite à consulter www.tug.org/fotts/fontinstall-personal.html pour des instructions détaillées. TUG déconseille l'installation locale des polices. Le processus est plus complexe et impose chaque fois l'utilisation de updmap-sys après l'exécution de updmap-user afin que toutes les polices de l'appareil soient reconnues.

Que les polices soient installées localement ou à l'échelle du système, la base de données des noms de fichiers système doit être mise à jour après l'installation. Vous pouvez utiliser mktexslr (ou texhash) pour cela. Si vous avez installé LaTeX en tant que root (non recommandé), vous devez utiliser sudo -H mktexlsr.

Commentaires sur le processus en quatre ou cinq étapes ci-dessus.

Les étapes de Wikibooks sont inutilement compliquées. Elles étaient peut-être nécessaires par le passé. Pour la plupart des paquets, l'installation se fait simplement en deux étapes : ••Dans un terminal, tlmgr install nom-du-paquet ••texhash

Si vous utilisez tlmgr update –all, la commande mktexslr mentionnée pour les polices s'exécute automatiquement une fois la mise à jour terminée. C'est très pratique. J'exécute également sudo texhash après la mise à jour, par mesure de sécurité.

This has been sufficient for almost all the packages I have installed while writing these columns. Unlike the Wikibooks 5 Steps, I have used this two step process for font packages with no problems. If you wish to (or need to) use the manual process instead of using tlmgr, then save yourself time and energy and read the documentation for the package. Usually packages built in the last ten years are complete with PDF documentation, and only require Step 3 and Step 4. It is unlikely you will need to do Step 1 or Step 2. It is unlikely you will need to generate any files or build a documentation file. This is generally true for all reasonably recent packages at CTAN. However, for some old packages this may be necessary. If you find a package on CTAN that requires Step 1 and Step 2, I suggest you search for a more up-to-date package that does what you need. That is enough for this column. I hope you try to add a few new packages in the near future. Let me know if you have questions or comments. I will talk to you next time about more packages from ctan.

Cela a été suffisant pour la quasi-totalité des paquets que j'ai installés lors de la rédaction de ces articles. Contrairement aux 5 étapes de Wikibooks, j'ai utilisé sans problème ce processus en deux étapes pour les paquets de polices.

Si vous souhaitez (ou devez) utiliser la procédure manuelle plutôt que tlmgr, gagnez du temps et de l'énergie en lisant la documentation du paquet. Généralement, les paquets créés au cours des dix dernières années sont accompagnés d'une documentation PDF complète et ne nécessitent que les étapes 3 et 4. Il est peu probable que vous ayez besoin de suivre les étapes 1 ou 2. Il est peu probable que vous ayez besoin de générer des fichiers ou de créer un fichier de documentation. C'est généralement le cas pour tous les paquets relativement récents du CTAN. Cependant, cela peut être nécessaire pour certains paquets plus anciens. Si vous trouvez un paquet sur CTAN qui nécessite les étapes 1 et 2, je vous suggère de rechercher un paquet plus récent et plus performant.

Cela suffit pour cet article. J'espère que vous ajouterez prochainement quelques nouveaux paquets. N'hésitez pas à me contacter si vous avez des questions ou des commentaires. La prochaine fois, je vous parlerai d'autres paquets de ctan.

issue215/latex.txt · Dernière modification : 2025/03/31 10:43 de auntiee