This time we will work with what we already know and take an adventure into a new area: style sheets. Assume you run a publishing company that specializes in cookbooks. You want all your cookbooks to have the same look. To make this easier for us we will use the “look” developed for “Favourite Chinese Recipes”, the last project in this series of articles. Of course no one likes typing the same information over and over. This is a great way to induce boredom and boredom leads to mistakes. How can we make sure every cookbook starts with the same set of formatting instructions? Simply place all of the desired formatting instructions into a file, save the file, then include that file in the preamble for every cookbook. To make identifying this style file easier in the jumble of files Latex uses the convention is to name a style file with an “sty” file type (file extension). I am going to call it “cookbook.sty”.
Cette fois-ci, nous allons travailler avec ce que nous connaissons déjà et nous aventurer dans un nouveau domaine : les feuilles de style. Supposons que vous dirigiez une maison d'édition spécialisée dans les livres de recettes. Vous voulez que tous vos livres de recettes aient la même apparence. Pour nous faciliter la tâche, nous utiliserons le « look » développé pour « Favourite Chinese Recipes », le dernier projet de cette série d'articles.
Bien sûr, personne n'aime taper la même information à plusieurs reprises. C'est un excellent moyen de s'ennuyer, et l'ennui est source d'erreurs. Comment s'assurer que chaque livre de recettes commence avec le même ensemble d'instructions de formatage ? Il suffit de placer toutes les instructions de formatage souhaitées dans un fichier, d'enregistrer ce fichier, puis d'inclure ce fichier dans le préambule de chaque livre de recettes. Pour faciliter l'identification de ce fichier de style dans le fouillis de fichiers utilisés par LaTeX, la convention consiste à nommer un fichier de style avec un type de fichier « sty » (extension de fichier). Je vais l'appeler « cookbook.sty ».
Theoretically we should then be able to use this customized style file in any document simply by telling Latex usepackage{cookbook.sty}. Of course it is not quite that simple. There are two more steps. First, any custom style files need to be stored in the same folder / directory as the default style files. Second, Latex-Tex needs to know there is an additional style file available. Where are the default style files stored? That will depend on your distribution, most likely somewhere in the texlive or texfm part of the directory tree. On my system it is /usr/share/texlive/texmf-dist/tex/latex and then a separate directory for each style file. So cookbook.sty needs to be put into the /usr/share/texlive/texmf-dist/tex/latex/cookbook directory. Once that is done then run the command texhash. This command records the locations of many of the parts of the Tex engine. Now it includes a pointer to the customized cookbook.sty file. Instead of typing all the instructions we used last time we only need to tell Latex to usepackage{cookbook} and all those instructions will automatically be used when the new cookbook PDF is generated. Just in case you are new to this series or forget what we had to type last time here is the listing (above).
Théoriquement, nous devrions pouvoir utiliser ce fichier de style personnalisé dans n'importe quel document en indiquant simplement à LaTeX usepackage{cookbook.sty}. Bien sûr, ce n'est pas aussi simple. Il y a deux étapes supplémentaires. Tout d'abord, les fichiers de style personnalisés doivent être stockés dans le même dossier/répertoire que les fichiers de style par défaut. Deuxièmement, LaTeX-TeX doit savoir qu'un fichier de style supplémentaire est disponible. Où sont stockés les fichiers de style par défaut ? Cela dépend de votre distribution, probablement quelque part dans la partie texlive ou texfm de l'arborescence des répertoires. Sur mon système, il s'agit de /usr/share/texlive/texmf-dist/tex/latex, puis d'un répertoire distinct pour chaque fichier de style. Le fichier cookbook.sty doit donc être placé dans le répertoire /usr/share/texlive/texmf-dist/tex/latex/cookbook. Une fois que cela est fait, lancez la commande texhash. Cette commande enregistre l'emplacement de nombreuses parties du moteur TeX. Elle inclut maintenant un pointeur vers le fichier personnalisé cookbook.sty.
Au lieu de taper toutes les instructions que nous avons utilisées la dernière fois, il nous suffit d'indiquer à LaTeX d'utiliser usepackage{cookbook} et toutes ces instructions seront automatiquement utilisées lorsque le PDF du nouveau livre de recettes sera généré. Au cas où vous ne connaîtriez pas cette série ou que vous auriez oublié ce que nous avons dû taper la dernière fois, en voici la liste (ci-dessus).
We have not taken advantage of this usepackage feature of Latex. So far we have only used to to “turn on” certain desired features in our cookbook. I like the Noto font family and so used that package. Your book may use the default font family or a different font family. I wanted the cover to have a particular look (image within a frame and a shaded background to the image). I wanted the clickable links to use the default colours. Your choices could be different. I urge you to experiment with the various options available with these packages. I also urge you to find and use other packages with Latex. Now we know where to look let’s see if we can discover some useful and / or style files. My installation has over two thousand directories with style files. Some directories contain more than one style file. That is a lot of possible additions to the basic Latex package. CTAN has more than 6500 packages in its database. We will start our exploration of packages with gcard. In order to understand how some packages should be used we have to read the documentation. Here are some excerpts from the documentation for gcard. Load the package with \usepackage{gcard}
Nous n'avons pas tiré parti de cette fonctionnalité usepackage de LaTeX. Jusqu'à présent, nous l'avons seulement utilisée pour « activer » certaines fonctions souhaitées dans notre livre de recettes. J'aime la famille de polices Noto et j'ai donc utilisé ce paquet. Votre livre peut utiliser la famille de polices par défaut ou une autre famille de polices. Je voulais que la couverture ait un aspect particulier (image dans un cadre et fond ombré pour l'image). Je voulais que les liens cliquables utilisent les couleurs par défaut. Vos choix pourraient être différents. Je vous invite à expérimenter les différentes options disponibles avec ces paquets. Je vous invite également à trouver et à utiliser d'autres paquets avec LaTeX. Maintenant que nous savons où chercher, voyons si nous pouvons découvrir quelques fichiers utiles et/ou de style.
Mon installation comporte plus de deux mille répertoires contenant des fichiers de style. Certains répertoires contiennent plus d'un fichier de style. Cela fait beaucoup d'ajouts possibles aux paquet de base de LaTeX. La base de données CTAN contient plus de 6 500 paquets. Nous commencerons notre exploration des paquets avec gcard. Pour comprendre comment certains paquets doivent être utilisés, nous devons lire la documentation. Voici quelques extraits de la documentation de gcard.
Chargez le paquet avec \usepackage{gcard}.
Before \begin{document} if you want to use margins different from the de#faults (0.2in for all), set four lengths to values of your choice: [content deleted] Then, after \begin document specify the contents of each panel with the frontcover, backcover, insideleft, and insideright environments. Each environment sets its contents in a minipage of width \panelwidth and height \panelheight. Those two lengths may be referenced, but not changed, anywhere after \begindocument. The material is vertically centered in the panel by default; to move it, use vertical spacing commands such as \vspace{} and \vfill. For example, you could specify the material for the front cover of the card with \begin{frontcover} \Large We heard you had a little trouble with the law \ldots \end{frontcover} The text will appear vertically centered on the front cover, with normal justification. You do not need to supply all four environments; panels corresponding to missing environments will be left blank. [End of documentation excerpt]
Avant \begin{document}, si vous souhaitez utiliser des marges différentes des valeurs par défault (0,2 pouces - 5 mm pour tous), définissez quatre longueurs à des valeurs de votre choix.
Ensuite, après \begin document}, spécifiez le contenu de chaque panneau avec les environnements frontcover, backcover, insideleft et insideright. Chaque environnement définit son contenu dans une mini-page de largeur \panelwidth et de hauteur \panelheight. Ces deux longueurs peuvent être référencées, mais pas modifiées, n'importe où après \begindocument. Par défaut, le contenu est centré verticalement dans le panneau ; pour le déplacer, il faut utiliser les commandes d'espacement vertical telles que \vspace{} et \vfill.
Par exemple, vous pouvez spécifier le matériau pour la couverture de la carte avec
\begin{frontcover} \Large We heard you had a little trouble with the law \ldots (Il paraît que vous ayez eu des problèmes avec la police) \end{frontcover}
Le texte apparaîtra centré verticalement sur la couverture, avec une justification normale. Il n'est pas nécessaire de fournir les quatre environnements ; les panneaux correspondant aux environnements manquants seront laissés vides.
A little experimentation will show which panels you need to use for whatever design for a greeting card you want to use. This example uses only text but it is easy enough to add an image or two or three following the steps in the Latex article in Full Circle #184. Another example is the bizcard style file developed by Sebastian Kirsch for Latex 2e, which is the previous version of Latex. Even though it is more than twenty years old it works well with the current version. In order to know how to use bizcard properly go to CTAN, then download and read the documentation supplied by the author. Since bizcard is part of a default installation there is no need to download the package. The documentation is only five pages and the information that will be important to most users is on pages 2 and 3. I copied the code from the documentation into an image for this article. It shows the code needed to generate business cards for the developer of the package.
Quelques essais vous permettront de savoir quels panneaux vous devez utiliser, quel que soit le modèle de carte de vœux que vous souhaitez utiliser.
Cet exemple n'utilise que du texte, mais il est assez facile d'ajouter une image ou deux ou trois en suivant les étapes de l'article LaTeX du numéro 184 du Full Circle.
Un autre exemple est le fichier de style carte de visite (bizcard) développé par Sebastian Kirsch pour LaTeX 2e, qui est la version précédente de LaTeX. Bien qu'il ait plus de vingt ans, il fonctionne bien avec la version actuelle. Pour savoir comment utiliser correctement bizcard, rendez-vous sur CTAN, puis téléchargez et lisez la documentation fournie par l'auteur. Comme bizcard fait partie de l'installation par défaut, il n'est pas nécessaire de télécharger le paquet. La documentation ne fait que cinq pages et les informations qui seront importantes pour la plupart des utilisateurs se trouvent aux pages 2 et 3. J'ai copié le code de la documentation dans une image pour cet article. Elle montre au développeur du paquet le code nécessaire pour générer des cartes de visite.
There is no line-by-line explanation of the code in the documentation. However the code should be reasonably understandable to most computer users. If you decide to make some business cards using this style file then you can experiment with the various measurements and options to get what is best for your situation. Remember to save various iterations of your experiments for reference later. (Of course if you do not need the special German characters then you can delete the unneeded code for them.) Another of the more than two thousand built-in styles is exercise. The documentation says: “This package offers a simple environment to typeset exercises, and their questions, sub-questions, indications, answers and so on. The layout of the exercises is fully customisable. Moreover, the answers of the exercise could be typeset immediately or later in the document.” A search on CTAN brings up a link to a 36-page instruction document. This is obviously designed for teachers. It includes ways to keep answers hidden from tests as in a graded or reveal answers as in a self-test.
La documentation ne contient pas d'explication du code ligne par ligne. Cependant, le code devrait être raisonnablement compréhensible pour la plupart des utilisateurs d'ordinateurs. Si vous décidez de créer des cartes de visite à l'aide de ce fichier de style, vous pouvez expérimenter les différentes mesures et options afin d'obtenir ce qui convient le mieux dans votre cas. N'oubliez pas de sauvegarder les différentes itérations de vos expériences pour vous y référer ultérieurement. (Bien entendu, si vous n'avez pas besoin des caractères allemands spéciaux, vous pouvez supprimer le code qui leur est destiné).
Un autre des plus de deux mille styles intégrés est « exercice ». La documentation indique : « Ce paquet offre un environnement simple pour la composition d'exercices, de questions, de sous-questions, d'indications, de réponses, etc. La mise en page des exercices est entièrement personnalisable. En outre, les réponses à l'exercice peuvent être saisies immédiatement ou ultérieurement dans le document. » Une recherche sur CTAN permet d'accéder à un document de 36 pages d'instructions. Ce document est manifestement destiné aux enseignants. Il comprend des moyens de cacher les réponses des tests, comme dans un test noté, ou de révéler les réponses, comme dans un auto-test.
There are over twenty styles starting with “beamer”. These are related to Latex styles that will build PDF files that are slides and can be used in presentations. The main beamer documentation is 225 pages long. It contains an example, instructions on how to make a first beamer presentation and a lot of details about the many parts of a beamer presentation. A search in CTAN using beamer gives 83 results. Some of those are variations on beamer for different languages or for the requirements for different institutions or base fonts. There is a little style package called datetime which comes with a thirteen-page document. It has quite a number of variations covering languages from Basque to Welsh. Along with the babel package (many languages) datetime allows for localisation of the display of dates and / or times. An important set of packages start with bibtex. Tex / Latex was originally designed by Donald Knuth for use by academics (particularly in mathematics and natural sciences). Bibliographies are very important when the results of research and experimentation are published. Because of its age bibtex and its derivatives do not support Unicode fonts. If your work requires Unicode compatibility then you should use the bibLatex and biber packages.
Il existe plus de vingt styles commençant par « beamer ». Ceux-ci sont liés aux styles LaTeX qui permettent de créer des fichiers PDF qui sont des diapositives et peuvent être utilisés dans des présentations. La documentation principale de beamer fait 225 pages. Elle contient un exemple, des instructions sur la manière de réaliser une première présentation pour vidéoprojecteur et de nombreux détails sur les différentes parties d'une présentation projetée. Une recherche dans CTAN à l'aide de « beamer » donne 83 résultats. Certains d'entre eux sont des variations de beamer pour différentes langues ou pour répondre aux exigences de différentes institutions ou polices de base.
Il existe un petit paquet de style appelé datetime, accompagné d'un document de treize pages. Il comporte un grand nombre de variantes couvrant des langues allant du basque au gallois. Avec le paquet babel (beaucoup de langues), datetime permet de localiser l'affichage des dates et/ou des heures.
Un ensemble important de paquets commence avec « bibtex ». TeX/LaTeX a été conçu à l'origine par Donald Knuth pour les universitaires (en particulier dans le domaine des mathématiques et des sciences naturelles). Les bibliographies sont très importantes lorsque les résultats de la recherche et de l'expérimentation sont publiés. En raison de leur ancienneté, bibtex et ses dérivés ne prennent pas en charge les polices Unicode. Si votre travail nécessite une compatibilité avec Unicode, vous devrez utiliser les paquets bibLatex et biber.
I included the cooking-units package when I developed the little cookbook example in the last few issues. I did not explain much about it then. It comes with forty-eight pages of documentation. The abstract says “this package enables user to globally format units, to switch between them and change your recipes to a given number of persons.” It supports text in English, French and German and can show amounts in factions if needed. Decimal numbers are automatically rounded to two digits, temperatures (four possible scales) are rounded to whole numbers. Conversions from one unit to another can be done in the recipe using the cooking-units package. For example oven temperatures can be shown as 350°F (175°C). Standard metric units (kg, metre, litre) and Imperial (lb, foot, quart) units of mass and volume are used by default, however new units can be defined. Ingredient amounts can be adjusted when the PDF is compiled using specific instructions explained in the documentation. For example a recipe can be coded for 4 servings but increased to 8 or 10 servings by using an appropriate instruction. That is the end of fun with Latex for this month. We will take a look at some more of the installed packages over the next several issues.
J'ai inclus le paquet d'unités de cuisson lorsque j'ai développé le petit exemple de livre de recettes dans les derniers numéros. Je n'ai pas expliqué grand-chose à ce sujet à l'époque. Il est accompagné d'une documentation de quarante-huit pages. Le résumé dit que « ce paquet permet à l'utilisateur de formater globalement les unités, de passer de l'une à l'autre et de modifier vos recettes en fonction d'un nombre donné de personnes ». Il prend en charge les textes en anglais, français et allemand et peut afficher les quantités en fractions si nécessaire. Les nombres décimaux sont automatiquement arrondis à deux chiffres, les températures (quatre échelles possibles) sont arrondies à des nombres entiers. Les conversions d'une unité à l'autre peuvent être effectuées dans la recette à l'aide du paquet d'unités de cuisson. Par exemple, la température du four peutêtre indiquées comme 350°F (175°C). Les unités métriques standard (kg, mètre, litre) et impériales (lb, pied, quart) de masse et de volume sont utilisées par défaut, mais de nouvelles unités peuvent être définies. Les quantités d'ingrédients peuvent être ajustées lors de la compilation du PDF à l'aide d'instructions spécifiques expliquées dans la documentation. Par exemple, une recette peut être codée pour 4 portions mais augmentée à 8 ou 10 portions en utilisant une instruction appropriée.
C'est la fin de l'amusement avec LaTeX pour ce mois-ci. Nous jetterons un coup d'œil à d'autres paquets installés dans les prochains numéros.