Outils pour utilisateurs

Outils du site


issue200:latex

Welcome to this special 200th issue of Full Circle! This is a very big milestone for any magazine, especially considering FCM is distributed electronically and for free. This issue should coincide with my twentieth Latex column. However I missed deadlines a couple of times so this is actually my eighteenth appearance in FCM. Happy 200th birthday to FCM. I look forward to receiving a copy every month. I encourage subscribers to support this project through Patreon or other means. I also encourage subscribers to write something relevant to the operating system and the many different software packages we use. A one-off article is welcomed by the editor and publisher. Do you play a game or use a particular bit of software regularly – write a review. Have you discovered a command line technique that saves you time or makes your system more secure or . . . and want to share it with others – write an article. Now on to Latex.

Bienvenue dans ce numéro spécial du Full Circle ! C’est une étape très importante pour tout magazine, surtout si l’on considère que le FCM est distribué par voie électronique et gratuitement. Ce numéro aurait dû coïncider avec ma vingtième colonne LaTeX. Cependant, j’ai manqué les échéances à quelques reprises, alors c’est en fait ma dix-huitième apparition dans le FCM. Joyeux 200e anniversaire au FCM. J’ai hâte d’en recevoir un exemplaire chaque mois. J’encourage les abonnés à appuyer ce projet par l’entremise de Patreon ou d’autres moyens. J’encourage également les abonnés à écrire quelque chose de pertinent sur le système d’exploitation et les nombreux logiciels que nous utilisons. Un article ponctuel est bien accueilli par le rédacteur et l’éditeur. Jouez-vous à un jeu ou utilisez-vous un logiciel particulier régulièrement – rédigez-en un. Avez-vous découvert une technique de ligne de commande qui vous fait gagner du temps ou qui rend votre système plus sécuritaire ou… et vous voulez le partager avec d’autres – écrivez un article. Maintenant passons à LaTeX.

Our sample cookbook has a few recipes, an index, a (very short) glossary. The Table of Contents and Bibliography have clickable links so readers can easily jump from one part of the PDF to another. This time we are going to make a cover so the cookbook look more professional. Then we should be done with this project and ready to move to something else. The current title page has the book title, the author (in this case the compiler) and the date the book was last compiled. Because this file uses the document class book there is default formatting attached to each of these elements. The formatting includes font, font size, font style and leading (line spacing). This is the code that generates the page.

Notre livre de recettes contient quelques recettes, un index, un glossaire (très court). La table des matières et la bibliographie ont des liens cliquables afin que les lecteurs puissent facilement passer d’une partie du fichier PDF à une autre. Cette fois-ci, nous allons faire une couverture pour que le livre de cuisine ait l’air plus professionnel. Ensuite, nous devrions avoir terminé ce projet et être prêts à passer à autre chose.

La page de titre actuelle contient le titre du livre, l’auteur (dans ce cas, le compilateur) et la date de la dernière compilation du livre. Étant donné que ce fichier utilise la classe de document book, une mise en forme par défaut est attachée à chacun de ces éléments. La mise en forme comprend la police, la taille de la police, le style de police et l’interligne. Il s’agit du code qui génère la page.

In the preamble there are two elements for the title page. These elements contain the values for author and title that are then used by the instruction maketitle. \author{Robert Boardman} \title{Favourite Chinese Recipes} Below the preamble: \begin{document} \frontmatter \maketitle frontmatter is an element that can be used with documentclass{book}. Frontmatter, mainmatter and backmatter are used by documentclass{book} to divide a book into pieces. Each piece has its own default formatting. Each piece starts on a new page (right hand side page, odd-numbered page). The maketitle command uses the author and title information in the preamble (plus the current date) to generate a plain, serviceable title page. I want to generate a cover page that will contain not only the title and author but also some element or elements that will be attractive and memorable. Initially this book will only be available as a PDF so the cover gives the reader their first impression. Since this book would be distributed freely, if a reader is not favourably impressed then the file can be easily deleted at no cost.

Dans le préambule, il y a deux éléments pour la page de titre. Ces éléments contiennent les valeurs d’auteur et de titre qui sont ensuite utilisées par l’instruction maketitle.

\author{Robert Boardman} \title{Recettes chinoises préférées}

Sous le préambule:

\begin{document} \frontmatter \maketitle

frontmatter est un élément qui peut être utilisé avec documentclass{book}. Frontmatter, mainmatter et backmatter sont utilisés par documentclass{book} pour diviser un livre en morceaux. Chaque morceau a sa propre mise en forme par défaut. Chaque partie commence sur une nouvelle page (page de droite, page impaire). La commande maketitle utilise les informations d’auteur et de titre dans le préambule (plus la date actuelle) pour générer une page de titre simple et utilisable. Je veux générer une page de couverture qui contiendra non seulement le titre et l’auteur, mais aussi un ou plusieurs éléments qui seront attrayants et mémorables. Au départ, ce livre ne sera disponible qu’en format PDF, la couverture donne donc au lecteur sa première impression. Puisque ce livre sera distribué librement, si un lecteur n’est pas favorablement impressionné, le fichier pourra être facilement supprimé sans frais.

The best method is to generate a new file for the cover (which I called cover.tex). An independent file gives more freedom for formatting. It allows for formatting that is separate from the formatting for the other pages. If this were a printed book the cover.tex file would be printed separately and bound with the text. For this generated PDF we can use a few instructions to make the cover file look like a printed cover. I will talk about these instructions after I talk about the issue of fonts in the document. The fonts used by default are not what I would like to use in this document. There is nothing wrong with how they look but they do not have the variety of options I like. I decided to use the Noto font family. It is an enormous family, it is Unicode compliant and it is free. (Noto is available from goggle.com/fonts.) I downloaded and installed the Noto family as instructed on CTAN. I followed the instructions about rebuilding the font map so Latex could find the newly installed font using the sudo texhash command. I added the following line to the preamble. Then I recompiled the cookbook. \usepackage{noto}

La meilleure méthode est de générer un nouveau fichier pour la couverture (que j’ai appelé cover.tex). Un fichier indépendant donne plus de liberté pour le formatage. Il permet un formatage distinct du formatage des autres pages. S’il s’agissait d’un livre imprimé, le fichier cover.tex serait imprimé séparément et relié au texte. Pour ce PDF généré, nous pouvons utiliser quelques instructions pour faire ressembler le fichier de couverture à une couverture imprimée. Je parlerai de ces instructions après avoir parlé de la question des polices dans le document.

Les polices utilisées par défaut ne sont pas celles que j’aimerais utiliser dans ce document. Il n’y a rien de mal dans leur apparence, mais elles n’ont pas la variété d’options que j’aime. J’ai décidé d’utiliser la famille de polices Noto. C’est une famille énorme, c’est compatible avec Unicode et c’est gratuit. (Noto est disponible sur goggle.com/fonts.) J’ai téléchargé et installé la famille Noto comme indiqué sur CTAN. J’ai suivi les instructions pour reconstruire la carte des polices afin que LaTeX puisse trouver la police nouvellement installée en utilisant la commande sudo texhash. J’ai ajouté la ligne suivante au préambule. Ensuite, j’ai recompilé le livre de recettes.

\usepackage{noto}

The compile generated an error. One font, a single version of one type of Noto Serif Bold, could not be found so the compile failed. I thought perhaps this font is available in one of the other Noto font downloads on CTAN. I downloaded and unzipped Noto Condensed and Noto Math. To install these I had to copy files from my download area to the relevant directories in the Tex installation. The compile continued to fail. When the compile fails there is no PDF generated. I went on a hunt to find the missing file. After an hour or so I was sent back to the original install page on CTAN. Obviously the missing font was not supposed to be missing. I decided to try again the following day. (I find this is often good practice when my level of frustration builds and builds.) After about half an hour of more searching I found the missing file listed as part of another zip. Could I download and install just the missing font? No. Could I download and install the zip it was in? No. However this zip was a package for Linux and could be installed using apt. Yeah! apt install texlive-fonts-extra

La compilation a généré une erreur. Une police, une seule version d’un type de Noto Serif Bold, n’a pas pu être trouvée, donc la compilation a échoué. J’ai pensé que peut-être cette police était disponible dans l’un des autres téléchargements de police Noto sur CTAN. J’ai téléchargé et décompressé Noto Condensed et Noto Math. Pour les installer, j’ai dû copier des fichiers de ma zone de téléchargement dans les répertoires pertinents de l’installation TeX. La compilation a échoué encore. Lorsque la compilation échoue, aucun PDF n’est généré.

Je suis allé à la recherche du fichier manquant. Après une heure environ, on m’a renvoyé à la page d’installation originale sur CTAN. Évidemment, la police manquante n’était pas censée être manquante. J’ai décidé d’essayer de nouveau le lendemain. (Je trouve que c’est souvent une bonne pratique lorsque mon niveau de frustration augmente.) Après environ une demi-heure de recherches supplémentaires, j’ai trouvé le fichier manquant répertorié dans un autre zip. Pouvais-je télécharger et installer uniquement la police manquante ? Non. Pouvais-je télécharger et installer le zip dans lequel il était ? Non. Cependant, ce zip était un paquet pour Linux et pouvait être installé en utilisant apt. Super !

apt install texlive-fonts-extra

Note: Texlive is said to be a quick and easy way to get up and running using Tex. It is one of the ways to get Tex installed and running on a Windows machine. In this instance all I installed was a set of fonts. I did not end up with two different installations of Tex in Linux. This installation contained over 1GB of font files, some of them may have overwritten existing fonts. It did install the missing Noto Serif Bold file which was the aim of the search. Now when I compile fcmcover.tex it succeeds and a new PDF is generated. Since the file is a PDF which will be viewed on screen I decided to change the default font for the document to the sans-serif typefaces of Noto. I altered the use package instruction with an option. \usepackage[sf]{noto}

Note : Texlive est présenté comme un moyen rapide et facile de commencer à utiliser TeX. C’est l’une des façons d’installer et d’exécuter TeX sur une machine Windows. Dans ce cas, tout ce que j’ai installé était un ensemble de polices. Je ne me suis pas retrouvé avec deux installations différentes de TeX sous Linux.

Cette installation contenait plus de 1 Go de fichiers de polices, certains d’entre eux pouvant avoir écrasé des polices existantes. Il a installé le fichier Noto Serif Bold manquant qui était le but de la recherche. Maintenant, lorsque je compile fcmcover.tex, cela fonctionne et un nouveau PDF est généré. Comme le fichier est un PDF qui sera affiché à l’écran, j’ai décidé de changer la police par défaut du document pour les polices sans-serif de Noto. J’ai modifié l’instruction d’utilisation du paquet avec une option.

\usepackage[sf]{noto}

The [sf] instructs Latex to use the sans-serif typefaces by default. The document on CTAN for installation of the Noto family say to use [sfdefault]. However that generated a new error which I did not spend any time to troubleshoot. The [sf] option did what I wanted. I will use the Noto sans-serif family for both the cover (the subject of this article) and the rest of the book. Here is the code for the cover page so far: \begin{center} \fontsize{36}{60} \selectfont Recettes chinoises préférées \fontsize{24}{48} \selectfont compilé par Robert Boardman \fontsize{24}{36} \selectfont à partir de nombreuses sources \end{center} I wanted the text of the cover page to be centred so I put it all in the center environment. The fontsize instruction requires two options: the size of the font and the size of the line spacing (the printer’s term is leading). The selectfont instruction is required after every change in font instruction. This cover.tex file is included after the usepackage[sfdefault]{noto} instruction in the fcm200cover.tex file so it does not need to be repeated in the cover.tex file. Note: The last font instruction in cover.tex is fontsize{24}{36}. The rest of the document will use this instruction until a new font instruction is issued followed by selectfont. After the include for cover.tex there is fontsize{11}{13} and then selectfont. This instruction sets the basic font size and line spacing for the rest of the document.

Le [sf] demande à LaTeX d’utiliser les polices sans serif par défaut. Le document sur CTAN pour l’installation de la famille Noto dit d’utiliser [sfdefault]. Cependant, cela a généré une nouvelle erreur que je n’ai pas passé de temps à résoudre. L’option [sf] a fait ce que je voulais. J’utiliserai la famille Noto sans-serif pour la couverture (le sujet de cet article) et le reste du livre.

Voici le code de la page de couverture :

\begin{center} \fontsize{36}{60} \selectfont Favourite Chinese Recipes

\fontsize{24}{48} \selectfont compiled by Robert Boardman

\fontsize{24}{36} \selectfont from many sources \end{center}

Je voulais que le texte de la page de couverture soit centré donc je l’ai mis dans l’environnement central. L’instruction fontsize nécessite deux options : la taille de la police et la taille de l’espacement des lignes (le terme d’imprimeur est « leading » - en tête). L’instruction selectfont est requise après chaque modification de l’instruction font. Ce fichier cover.tex est inclus après l’instruction usepackage[sfdefault]{noto} dans le fichier fcm200cover.tex, il n’est donc pas nécessaire de le répéter dans le fichier cover.tex.

Remarque : La dernière instruction de police dans cover.tex est fontsize{24}{36}. Le reste du document utilisera cette instruction jusqu’à ce qu’une nouvelle instruction de police soit émise, suivie de selectfont. Après l’inclusion pour cover.tex, il y a fontsize{11}{13} puis selectfont. Cette instruction définit la taille de police de base et l’espacement des lignes pour le reste du document.

Now the text is where I want it and looks the way I want it. It is time to add a graphic that gives the same message as the title. I want the graphic to flow behind the text. I changed the graphic I downloaded to shades of grey, adjusted its size and changed brightness and contrast. I want it to be visible but not obscure the text. It took several hours of digging on CTAN and on other sites to find out how to do what I want – which is place a watermark behind the text. I will not bore you with the saga, I will just present the results. The secret turned out to be using a package called tcolorbox which is part of the regular installation of Latex. Then I had to sift through the 544 page manual for tcolorbox. Here is the final addition to the main file: \usepackage[skins]{tcolorbox} \tcbset{colframe=black!25!white, colback=green!10!white, halign=center, valign=center, width=15cm, height=15cm, arc=5mm}

Maintenant, le texte est là où je le veux et ressemble à ce que je veux. Il est temps d’ajouter une image qui donne le même message que le titre. Je veux que l'image soit derrière le texte. J’ai changé l'image que j’ai téléchargé en nuances de gris, ajusté sa taille et changé la luminosité et le contraste. Je veux qu’elle soit visible mais pas qu'elle obscurcisse le texte.

Il a fallu plusieurs heures de recherches sur CTAN et d’autres sites pour savoir comment faire ce que je veux, c’est-à-dire placer un filigrane derrière le texte. Je ne vais pas vous ennuyer avec la saga, je vais juste présenter les résultats. Le secret s’est avéré être l’utilisation d’un paquet appelé tcolorbox qui fait partie de l’installation régulière de LaTeX. Ensuite, j’ai dû passer au crible le manuel de 544 pages pour tcolorbox. Voici le dernier ajout au fichier principal :

\usepackage[skins]{tcolorbox} \tcbset{colframe=black!25!white, colback=green!10!white, halign=center, valign=center, width=15cm, height=15cm, arc=5mm}

I do not know what the “skins” option does but it is necessary for the graphic to appear. Colframe and colback are colour instructions. The syntax is simple once you know what it is. Black!25!white means blend 25% black and 75% white. White is the default second colour so this command can be shortened to black!25. (or green!10). Halign and valign should be obvious. Width and height control the size of the box, getting appropriate values can require some experimenting. Arc sets the diameter of the curve in the corners of the frame. Here is the important new code from the cover.tex file. \begin{tcolorbox}[enhanced, watermark graphics=steamer.pdf, watermark opacity=0.6, watermark stretch=1.0]

Je ne sais pas ce que fait l’option « skins », mais elle est nécessaire pour que l'image apparaisse. Colframe et colback sont des instructions de couleur. La syntaxe est simple une fois que vous la connaissez. Black!25!white signifie mélanger 25% de noir et 75% de blanc. Le blanc est la deuxième couleur par défaut, donc cette commande peut être raccourcie en black!25. (ou green!10). Halign et valign devraient être évidents. La largeur et la hauteur contrôlent la taille de la boîte ; l'obtention des valeurs appropriées peut nécessiter quelques essais. Arc définit le diamètre de l'arrondi des coins du cadre.

Voici le nouveau code important du fichier cover.tex.

\begin{tcolorbox}[enhanced, watermark graphics=steamer.pdf, watermark opacity=0.6, watermark stretch=1.0]

I discovered tcolorbox would only accept graphics in PDF format even though the manual shows PNG and other formats. Opacity refers to how transparent / opaque the image appears. Stretch determines the size of the image in the tcolorbox frame. The value “1” means it fills the frame. Values larger than 1 increase the size of the image but the size of the frame does not change so only part of the image is visible. I have had a steep learning curve to complete this part of the cookbook. I have only learned very little of the capabilities of tcolorbox. I am just starting to learn about font use in Latex. It has been both frustrating and fun to do this cover. Next time I hope the project will not require quite so much time. December is always a busy month in my house and with my family. I hope you have an enjoyable and relaxing month. If you have any suggestions about a project that could perhaps be done in Latex, or if you have a project and are stuck at some point let me know. Perhaps we can solve the problem or build a project together.

J’ai découvert que tcolorbox n’acceptait que les images au format PDF, même si le manuel affiche PNG et d’autres formats. L’opacité fait référence à la transparence ou à l’opacité de l’image. L’étirement détermine la taille de l’image dans le cadre tcolorbox. La valeur « 1 » signifie qu’elle remplit le cadre. Les valeurs supérieures à 1 augmentent la taille de l’image, mais la taille du cadre ne change pas, de sorte que seule une partie de l’image est visible.

J’ai eu une courbe d’apprentissage abrupte pour terminer cette partie du livre de cuisine. Je n’ai appris que très peu des capacités de tcolorbox. Je commence tout juste à en apprendre davantage sur l’utilisation des polices de caractères dans LaTeX. C’était à la fois frustrant et amusant de faire cette couverture. La prochaine fois, j’espère que le projet ne prendra pas autant de temps. Décembre est toujours un mois chargé chez moi et avec ma famille. J’espère que vous passerez un mois agréable et relaxant.

Si vous avez des suggestions au sujet d’un projet qui pourrait peut-être être fait dans LaTeX ou si vous avez un projet et que vous êtes bloqué à un moment donné, faites-le moi savoir. Peut-être pouvons-nous résoudre le problème ou construire un projet ensemble.

issue200/latex.txt · Dernière modification : 2024/01/10 11:44 de auntiee