Outils pour utilisateurs

Outils du site


issue211:latex

This is our fourth exploration of the topics at CTAN.ORG. We are up to the D section. There are two languages here: Danish and Dutch. There are five items to do with data, and nine that work with various diagrams. There are also eight to do with DVI, those I will ignore. Under the main “diagram” topic are about 70 different packages: block diagrams, circuit diagrams, control diagrams, and others. There are packages to make knitting patterns and to make fingering diagrams for recorders. Since I do not know anything about knitting or playing a recorder, I will not demonstrate these packages. I have picked a few packages from one or two topics which I hope will be of interest to some readers. If there is a task you wish to do in Latex but are not sure how to do it, or how to use the relevant package, send me a note (rboardman@psmail.net) and tell me about it. I will do my best to sort out the problem. The first package I will discuss is one that allows the import of CSV files directly into Latex documents. I often used CSV files to move data from application to application when I taught at college. CSV files are plain text (ASCII usually) files, usually generated either by a spreadsheet or database. A table of data is exported – with each row of the table as a separate line in the CSV file. Each field is separated from its neighbours with a comma. The package I have on my system is called csvsimple version 1.22 from 2021. There is an updated version called csvsimple-13. The more recent version is not part of the default installation on my machine, so I will demonstrate the earlier one. The author / maintainer says it is completely compatible.

C'est notre quatrième exploration des sujets sur CTAN.ORG. Nous en sommes à la section D.

Il y a deux langues ici : le danois et le néerlandais. Il y a cinq éléments liés aux données et neuf qui fonctionnent avec divers diagrammes. Il y en a aussi huit liés à DVI, que je vais ignorer. Sous le thème principal « diagramme », il y a environ 70 paquets différents : schémas fonctionnels, schémas de circuits, schémas de contrôle et autres. Il y a des paquets pour créer des modèles de tricot et des diagrammes de doigté pour les flûtes à bec. Comme je ne sais rien du tricot ou de la flûte à bec, je ne vais pas faire la démonstration de ces paquets. J'ai sélectionné quelques paquets sur un ou deux sujets qui, je l'espère, intéresseront certains lecteurs. Si vous souhaitez effectuer une tâche dans LaTeX mais que vous ne savez pas comment la faire ou comment utiliser le paquet concerné, envoyez-moi un message (rboardman@psmail.net) et dites-le-moi. Je ferai de mon mieux pour résoudre le problème.

Le premier paquet dont je parlerai est celui qui permet l'importation de fichiers CSV directement dans les documents LaTeX. J'utilisais souvent des fichiers CSV pour déplacer des données d'une application à une autre lorsque j'enseignais à l'université. Les fichiers CSV sont des fichiers de texte brut (généralement ASCII), généralement générés par une feuille de calcul ou une base de données. Un tableau de données est exporté, chaque ligne du tableau étant une ligne distincte dans le fichier CSV. Chaque champ est séparé de ses voisins par une virgule. Le paquet que j'ai sur mon système s'appelle csvsimple version 1.22 de 2021. Il existe une version mise à jour appelée csvsimple-13. La version la plus récente ne fait pas partie de l'installation par défaut sur ma machine, je vais donc vous montrer la version antérieure. L'auteur/mainteneur dit qu'elle est entièrement compatible.

There are only two commands needed to import a CSV file into a Latex document as a simple file. The first command is to “import” the package: \usepackage{csvsimple}. The second command imports the file: \csvautotabular{grades.csv}. You can see the result in the screenshot. By default, csvsimple assumes the first row has the field names. Notice the first row is formatted a little differently than the others. The 46-page documentation contains several examples which are definitely worth review and study. The examples usually require one or more additional packages (tikz, csv-sorter, color, and others). The examples show how csvsimple can be used to generate graphs (or charts) and mail-merge letters. The documentation offers two alternatives to dealing with CSV files that do not have field names / data headers. It also shows how to convert files where the fields are separated not by commas but by some other character, usually quotation marks, and how to deal with data values that have commas in them. Note: CSVsimple is not a spreadsheet or database. It does not sort data when importing. It takes the CSV data and converts it to a table. If you want to use more sophisticated methods and tools, then I suggest you investigate a set of packages called datatool.

Il n'y a que deux commandes nécessaires pour importer un fichier CSV dans un document LaTeX en tant que fichier simple. La première commande consiste à « importer » le paquet : \usepackage{csvsimple}. La deuxième commande importe le fichier : \csvautotabular{grades.csv}. Vous pouvez voir le résultat dans la capture d'écran. Par défaut, csvsimple suppose que la première ligne contient les noms de champs. Notez que la première ligne est formatée un peu différemment des autres.

La documentation de 46 pages contient plusieurs exemples qui méritent certainement d'être examinés et étudiés. Les exemples nécessitent généralement un ou plusieurs paquets supplémentaires (tikz, csv-sorter, color et autres). Les exemples montrent comment csvsimple peut être utilisé pour générer des graphiques (ou des diagrammes) et des lettres de publipostage. La documentation propose deux alternatives pour gérer les fichiers CSV qui n'ont pas de noms de champs/en-têtes de données. Il montre également comment convertir des fichiers dont les champs ne sont pas séparés par des virgules mais par un autre caractère, généralement des guillemets, et comment gérer les valeurs de données contenant des virgules.

Remarque : CSVsimple n'est pas une feuille de calcul ou une base de données. Il ne trie pas les données lors de l'importation. Il prend les données CSV et les convertit en tableau. Si vous souhaitez utiliser des méthodes et des outils plus sophistiqués, je vous suggère d'étudier un ensemble de paquets appelé datatool.

The datatool package is a collection of eight interlinked packages. Datatool is the base package and it automatically loads the datatool-base. If any of the other six packages are loaded independently, they automatically load datatool which then loads datatool-base. Datatool-base itself automatically loads either datatool-fp or datatool-pgfmath, these provide the support for mathematically related commands. The documentation for datatool is 230 pages. There is an additional PDF which provides an annotated version of the code for datatool. I am not going to review datatool in this issue. It is much too complex to describe in a few paragraphs. According to the documentation, “the datatool package provides a means of creating and loading databases.” The authors warn “Whilst Tex is an excellent typesetting language, it is not designed as a database management system, and attempting to use it as such is like trying to fasten a screw with a knife instead of a screwdriver – it can be done, but requires great care, and is more time consuming.” Bearing that in mind, if you are interested or need to link your Tex documents to databases I suggest you start with the online resource: dickimaw-books.com/faq/datatoolfaq.html. I will move onto a couple of packages in the decorations topic.

Le paquet datatool est un ensemble de huit paquets interconnectés. Datatool est le paquet de base et il charge automatiquement datatool-base. Si l'un des six autres paquets est chargé indépendamment, il charge automatiquement datatool qui charge ensuite datatool-base. Datatool-base lui-même charge automatiquement soit datatool-fp soit datatool-pgfmath, qui fournissent le support pour les commandes mathématiquement liées. La documentation de datatool fait 230 pages. Il existe un PDF supplémentaire qui fournit une version annotée du code de datatool.

Je ne vais pas faire la critique de datatool dans ce numéro. Il est beaucoup trop complexe pour être décrit en quelques paragraphes. Selon la documentation, « le paquet datatool fournit un moyen de créer et de charger des bases de données ». Les auteurs avertissent : « Bien que TeX soit un excellent langage de composition, il n'est pas conçu comme un système de gestion de base de données, et tenter de l'utiliser comme tel revient à essayer de serrer une vis avec un couteau au lieu d'un tournevis - c'est possible, mais cela demande beaucoup de soin et prend plus de temps. » En gardant cela à l'esprit, si vous êtes intéressé ou avez besoin de lier vos documents TeX à des bases de données, je vous suggère de commencer par la ressource en ligne : dickimaw-books.com/faq/datatoolfaq.html.

Je vais passer à quelques paquets dans le thème des décorations.

The contour package is about twenty years old and has a specific function. It is also much easier to understand and easier to work with than datatool, its documentation is only fourteen pages, ten pages of which are annotated code. According to the author, contour “generates a colored contour around a given text in order to enable printing text over a background without the need of a color box around the text.” Here (above) is the code controlling colorbox and contour. (The package color must be used.) You can see the results in the ipackagemage. The other package I selected in the decoration topic is multicolrule. It has 24 pages of documentation; the last 14 pages are devoted to describing the implementation code. This package has a simple objective: to let users customize the appearance of the vertical rule(s) between columns in multi-column work. Some might ask why a user would want to do this. Multicolrule does not answer this question but makes this task possible if it is desired. Here (next page, top right) is a bit of sample code. In order to use the line-style=circles, the tikz package must be included, and included before multicolrule is included.

Le paquet contour a une vingtaine d'années et une fonction spécifique. Il est aussi beaucoup plus facile à comprendre et à utiliser que datatool, sa documentation ne fait que quatorze pages, dont dix pages de code annoté. Selon l'auteur, contour « génère un contour coloré autour d'un texte donné afin de permettre l'impression de texte sur un fond sans avoir besoin d'une boîte de couleur autour du texte ».

Voici (ci-dessus) le code contrôlant colorbox et contour. (Le paquet color doit être utilisé.)

Vous pouvez voir les résultats dans l'image.

L'autre paquet que j'ai sélectionné dans le sujet décoration est multicolrule. Il comporte 24 pages de documentation ; les 14 dernières pages sont consacrées à la description du code d'implémentation. Ce paquet a un objectif simple : permettre aux utilisateurs de personnaliser l'apparence de la ou des règles verticales entre les colonnes dans un travail multi-colonnes. Certains pourraient se demander pourquoi un utilisateur voudrait faire cela. Multicolrule ne répond pas à cette question mais rend cette tâche possible si elle est souhaitée.

Voici (page suivante, en haut à droite) un petit exemple de code.

Pour utiliser line-style=circles, le paquet tikz doit être inclus, et inclus avant que multicolrule ne soit inclus.

This package would be helpful if you were making a brochure with a tear-away panel. There is code to use many symbols and graphics instead of lines or dots as column dividers. The documentation is full of example column dividers, and the matching code. Samples of complete code are available in the downloaded zip. The code is in mcrule-examples.tex and the results can be seen in the mcrule-examples.pdf. The last package I am going to discuss this time is smartdiagram, which is in the Diagram topic. The abstract of the documentation says “this package provides a way to easily draw diagrams in documents and presentations from a list of items thanks to TikZ.” As is often the case, the documentation includes a lengthy section of annotated implementation code. This section is useful if you wish to edit the macro code but not necessary if you wish to only use the macro. Again from the documentation, “the basic command is \smartdiagram[type of diagram]{list of items}. The list of items should be comma-delimited.” There are 10 types of diagrams: circular, flow, descriptive, bubble, etc. There are several pages of example coding, along with illustrations of the results of each sample. If a user follows the examples and experiments with the code, they should learn a great deal about this very useful package. We do not have to rely on either presentation software or graphics software to generate these types of diagrams in our printed documents. Some simple coding in Latex will generate a PDF directly without having to use another piece of software and then import the graphic file. Modifications to the diagram can be made directly in the Latex code and a new revised PDF generated in a very short time.

Ce paquet serait utile si vous réalisiez une brochure avec un panneau détachable. Il contient du code permettant d'utiliser de nombreux symboles et graphiques au lieu de lignes ou de points comme séparateurs de colonnes. La documentation regorge d'exemples de séparateurs de colonnes et du code correspondant. Des exemples de code complet sont disponibles dans le zip téléchargé. Le code se trouve dans mcrule-examples.tex et les résultats peuvent être consultés dans le fichier mcrule-examples.pdf.

Le dernier paquet dont je vais parler cette fois est smartdiagram, qui se trouve dans la rubrique Diagramme. Le résumé de la documentation indique que « ce paquet permet de dessiner facilement des diagrammes dans des documents et des présentations à partir d'une liste d'éléments grâce à TikZ ». Comme c'est souvent le cas, la documentation comprend une longue section de code d'implémentation annoté. Cette section est utile si vous souhaitez modifier le code de la macro, mais pas nécessaire si vous souhaitez uniquement utiliser la macro.

Toujours d'après la documentation, « la commande de base est \smartdiagram[type de diagramme]{liste d'éléments}. La liste d'éléments doit être délimitée par des virgules ». Il existe 10 types de diagrammes : circulaire, de flux, descriptif, à bulles, etc. Il y a plusieurs pages d'exemples de codage, ainsi que des illustrations des résultats de chaque exemple. Si un utilisateur suit les exemples et fait des essais avec le code, il devrait en apprendre beaucoup sur ce paquet très utile. Nous n'avons pas besoin de recourir à un logiciel de présentation ou à un logiciel graphique pour générer ces types de diagrammes dans nos documents imprimés. Un simple codage en LaTeX générera directement un PDF sans avoir à utiliser un autre logiciel puis à importer le fichier graphique. Les modifications du diagramme peuvent être apportées directement dans le code LaTeX et un nouveau PDF révisé peut être généré en très peu de temps.

As I hope is clear, I have only touched briefly on the capabilities of these packages. As I say every issue, read the documentation if you think one or more of these packages can be useful in your work. I also recommend reading novices-report.pdf by Dr. Nicola Talbot if you are getting started with Latex. If you are writing a thesis or other lengthy document in Latex, I recommend thesis-report.pdf also by Dr. Talbot. Both are available from her website: www.dickamaw-books.com. (Dr. Talbot is the author and maintainer of the datatool package discussed briefly in this column.) These two books were written more than 10 years ago, and there has been a significant upgrade in Latex in that time. Nevertheless they remain valuable resources. Next time, I will take a look at some of the packages in the E topic section of ctan.org. After that, I will look at using Latex when typesetting languages that do not use the default Latin alphabet, i.e. most languages of the world.

Comme je l'espère, je n'ai fait qu'effleurer les capacités de ces paquets. Comme je le dis à chaque numéro, lisez la documentation si vous pensez qu'un ou plusieurs de ces paquets peuvent être utiles dans votre travail. Je recommande également la lecture de novices-report.pdf du Dr Nicola Talbot si vous débutez avec LaTeX. Si vous rédigez une thèse ou un autre long document en LaTeX, je vous recommande également thesis-report.pdf du Dr Talbot. Les deux sont disponibles sur son site Web : www.dickimaw-books.com. (Le Dr Talbot est l'auteur et le mainteneur du paquet datatool dont il est brièvement question dans cette chronique.) Ces deux livres ont été écrits il y a plus de 10 ans, et LaTeX a connu une mise à niveau significative au cours de cette période. Néanmoins, ils restent des ressources précieuses.

La prochaine fois, je jetterai un œil à certains des paquets de la section thématique E de ctan.org. Après cela, je me pencherai sur l'utilisation de LaTeX lors de la composition de langues qui n'utilisent pas l'alphabet latin par défaut, c'est-à-dire la plupart des langues du monde.

issue211/latex.txt · Dernière modification : 2024/12/08 12:35 de auntiee