Outils pour utilisateurs

Outils du site


issue204:latex

This time, I am going to come back to a topic I did quickly before: tables. I’ll start with what was used in documents to present data in columns before word processing. Before computers, there were typewriters, mechanical devices. On a typewriter, to make columns, the user sets up tabulation positions, usually called tab stops. Each tab stop was a specific physical distance from the edge of the sheet of paper inserted into the machine. There are tab stops in word processing software, but they are rarely used except by very experienced operators. Tab stops in word processing have more options and more flexibility than on typewriters. Tables are even more flexible but require at least as much thinking as tab stops. Tabs can be used in Latex in the tab environment. It is relatively easy to set tab stops at specific distances from the left margin in either the tabbing or the tabto environments. However, if you want information arranged in columns and rows, the tabular environment offers more flexibility and more options.

Cette fois, je vais revenir sur un sujet que j'ai déjà abordé rapidement : les tableaux. Je vais commencer par ce qui était utilisé dans les documents pour présenter les données en colonnes avant le traitement de texte.

Avant les ordinateurs, il y avait les machines à écrire, des appareils mécaniques. Sur une machine à écrire, pour créer des colonnes, l'utilisateur met en place des positions de tabulation, généralement appelées taquets de tabulation. Chaque taquet de tabulation se trouvait à une distance physique spécifique du bord de la feuille de papier insérée dans la machine. Il existe des taquets de tabulation dans les logiciels de traitement de texte, mais ils sont rarement utilisés, sauf par des opérateurs très expérimentés. Les taquets de tabulation des logiciels de traitement de texte offrent plus d'options et de souplesse que ceux des machines à écrire. Les tableaux sont encore plus flexibles, mais demandent au moins autant de réflexion que les taquets de tabulation.

Les tabulations peuvent être utilisées dans LaTeX dans l'environnement de tabulation. Il est relativement facile de placer des taquets de tabulation à des distances spécifiques de la marge gauche, dans les environnements « tabbing » ou « tabto ». Toutefois, si vous souhaitez que les informations soient organisées en colonnes et en lignes, l'environnement « tabular » offre plus de souplesse et plus d'options.

This is not a simple topic. In The Latex Companion (Third Edition) there’s about seventy pages of detailed information discussing the various table environments and their various extensions. If that seems like more than you want to read, there are eleven pages dedicated to a simplified discussion of the table environment in LATEX2e: An unofficial reference manual available at https://latexref.xyz. These pages cover a selection of the possible extensions and packages for making tables. Remember, Latex is a modular tool. Instead of loading every possible tool and its variations when starting, Latex allows you to use the packages you need for your document when you need them, and it will generate a typeset document (PDF) to your specifications. Ideally tables are used to organize and present information so the contents of the table are clear to the reader. Tables organize information in vertical columns and horizontal rows. A table is a framework, a skeleton into which the writer puts information. A table is described by indicating how many rows and columns it has. Often a table has the same number of columns in each row and the same number of rows in each column. However table cells can be joined in various ways. Table cells are often separated from each other with vertical and / or horizontal lines. All of this is familiar to you, I am sure.

Ce n'est pas un sujet simple. Le LaTeX Companion (troisième édition) contient environ soixante-dix pages d'informations détaillées sur les différents environnements de tableaux et leurs diverses extensions. Si cela vous semble trop long à lire, onze pages sont consacrées à une discussion simplifiée de l'environnement de tableau dans « LATEX2e : An unofficial reference manual » disponible à l'adresse https://latexref.xyz. Ces pages couvrent une sélection d'extensions et de paquets possibles pour la création de tableaux. N'oubliez pas que LaTeX est un outil modulaire. Au lieu de charger tous les outils possibles et leurs variations au démarrage, LaTeX vous permet d'utiliser les paquets dont vous avez besoin pour votre document, quand vous en avez besoin, et il générera un document typographié (PDF) selon vos spécifications.

Idéalement, les tableaux sont utilisés pour organiser et présenter des informations de manière à ce que le contenu du tableau soit clair pour le lecteur. Les tableaux organisent l'information en colonnes verticales et en lignes horizontales. Un tableau est un cadre, un squelette dans lequel le rédacteur insère des informations. Un tableau est décrit en indiquant le nombre de lignes et de colonnes qu'il comporte. Souvent, un tableau comporte le même nombre de colonnes dans chaque ligne et le même nombre de lignes dans chaque colonne. Toutefois, les cellules d'un tableau peuvent être reliées de différentes manières. Les cellules d'un tableau sont souvent séparées les unes des autres par des lignes verticales et/ou horizontales. Tout cela vous est certainement familier.

In Latex, a table is built inside a table environment. As Erik showed in one of his last columns here is the basic code for a table with some contents (shown above). {||l|c|c|c|c||} means set up a table with five columns, the left hand column is left-aligned, all the others are centred. The single vertical line between each alignment option indicates a vertical line will be placed between each column. The double line on the left-hand and right-hand ends indicated the outside lines will be doubled. The hline instruction places a horizontal line below each row, the repeated hline instruction makes a double line at the top and bottom of the table. The double back-slash marks the end of a row. As you can probably guess, the & ampersand symbol separates the contents of one cell from its neighbours in its row (see Table 1 in Figure 1 next page). In Latex tables are one of the items which are floated when typeset. That has two consequences for page designers and authors. The first consequence is the table will appear on the page where there is room for it. If there is not room on the current page then it is “floated” to the next page. The second consequence is a table in the tabular environment cannot extend past the end of a page, that is one table has a maximum size of one page. If you need more space than one page for your table, investigate the use of the supertabular and the longtabular environments.

Dans LaTeX, un tableau est construit à l'intérieur d'un environnement de tableau. Comme Erik l'a montré dans l'une de ses dernières chroniques, voici le code de base pour un tableau avec un certain contenu (illustré ci-dessus).

{||l|c|c|c|c||} signifie créer un tableau avec cinq colonnes, la colonne de gauche est alignée à gauche, toutes les autres sont centrées. La ligne verticale unique entre chaque option d'alignement indique qu'une ligne verticale sera placée entre chaque colonne. La ligne double aux extrémités gauche et droite indique que les lignes extérieures seront doublées. L'instruction hline place une ligne horizontale sous chaque ligne, l'instruction hline répétée crée une double ligne en haut et en bas du tableau. La double barre oblique inverse marque la fin d'une ligne. Comme vous pouvez probablement le deviner, le symbole & (esperluette) sépare le contenu d'une cellule de ses voisines dans sa ligne (voir le tableau 1 de la figure de la page suivante).

Dans LaTeX, les tableaux sont l'un des éléments qui sont flottants lors de la mise en page. Cela a deux conséquences pour les concepteurs de pages et les auteurs. La première conséquence est que le tableau apparaîtra sur la page où il y a de la place pour lui. S'il n'y a pas de place sur la page en cours, il est « flotté » sur la page suivante. La deuxième conséquence est qu'un tableau dans l'environnement « tabular » ne peut pas dépasser la fin d'une page, c'est-à-dire qu'un tableau a une taille maximale d'une page. Si vous avez besoin de plus d'espace qu'une page pour votre tableau, envisagez d'utiliser les environnements « supertabular » et « longtabular ».

The following example shows how to connect two cells in the same row together. There is a similar instruction for connecting two cells in two different rows. The & after {Ene} is necessary to build the third cell in the first row. \begin{tabular}{|c|c|c|} \hline \multicolumn{2}{|c|}{Ene} &
\hline Mene & Muh! & Curly
\hline \end{tabular} Similar to the parameters for multicol, multirow has three required parameters: how many rows, the width of the resulting cell, and the contents of the spanned cell. The hline instruction between rows one and two is omitted. If it is included it will cross into the spanned cell. A difference which you cannot see from the code below is that multirow is a separate package and must be loaded (\usepackage{multirow}) in the document preamble. Multicolumn is built into the version of Latex I use and into other versions as well. \begin{tabular}{|c|c|} \hline \multirow{2}{14mm}{Ene} & Mene
& Muh!
\hline \end{tabular}

L'exemple suivant montre comment relier deux cellules de la même ligne. Il existe une instruction similaire pour relier deux cellules de deux rangées différentes. Le & après {Ene} est nécessaire pour construire la troisième cellule de la première ligne.

\begin{tabular}{|c|c|c|} \hline \multicolumn{2}{|c|}{Ene} &
\hline Mene & Muh! & Curly
\hline \end{tabular}

À l'instar des paramètres de multicol, ceux de multirow sont au nombre de trois : le nombre de lignes, la largeur de la cellule résultante et le contenu de la cellule étendue. L'instruction hline entre les lignes un et deux est omise. Si elle est incluse, elle traversera la cellule étendue. Une différence que vous ne pouvez pas voir dans le code ci-dessous est que multirow est un paquet séparé et doit être chargé (\usepackage{multirow}) dans le préambule du document. Multicolumn est intégré dans la version de LaTeX que j'utilise et dans d'autres versions également.

\begin{tabular}{|c|c|} \hline \multirow{2}{14mm}{Ene} & Mene
& Muh!
\hline \end{tabular}

Since I started this column by discussing tabs and tab stops, I am going to finish by showing two methods of getting and using tab stops in Latex. The first way is in the tabbing environment, the second is with the tabto package. (See Figure 2 - next page - for the results of this code.) \begin{tabbing} First \= Second \= Third \=\kill one \> two \> three \> four
one two \> two \> three \> four
\end{tabbing} The first line after the begin{tabbing} instruction sets the tab stops, the distance from the left margin for the start of the text (or other contents). Notice there are five characters plus one space between the margin and the first tab stop. The first item in the first line will display with no problems, it contains three characters and one space. The first item in the second line has six characters and two spaces. It will display as usual. However the second item in the second line starts with five characters and one space from the left margin, and will overwrite part of the first item. The next code example shows how to fix this problem.

Puisque j'ai commencé cette rubrique en parlant des tabulations et des taquets de tabulation, je vais terminer en montrant deux méthodes pour obtenir et utiliser les taquets de tabulation dans LaTeX. La première méthode se trouve dans l'environnement « tabbing », la seconde dans le paquet « tabto ». (Voir la figure de la page suivante pour les résultats de ce code).

\begin{tabbing} First \= Second \= Third \=\kill one \> two \> three \> four
one two \> two \> three \> four
\end{tabbing}

La première ligne après l'instruction begin{tabbing} définit les taquets de tabulation, c'est-à-dire la distance par rapport à la marge de gauche pour le début du texte (ou d'autres contenus). Notez qu'il y a cinq caractères plus une espace entre la marge et le premier taquet de tabulation. Le premier élément de la première ligne s'affichera sans problème, il contient trois caractères et une espace. Le premier élément de la deuxième ligne contient six caractères et deux espaces. Il s'affichera comme d'habitude. Toutefois, le deuxième élément de la deuxième ligne commence par cinq caractères et une espace à partir de la marge de gauche et écrase une partie du premier élément. L'exemple de code suivant montre comment résoudre ce problème.

\begin{tabbing} First tab stop \= Second \= Third \=\kill one \> two \> three \> four
one two \> two \> three \> four
\end{tabbing} As stated above, tabto is a package but it is not an environment, unlike tabbing. An author needs to load it in the preamble but can use the package without beginning and ending an environment. \tabto*{1cm} Tab 1 \tabto*{3cm} Tab 2 \tabto*{2cm} Tab 3 % in document The distances are distances from the left margin. Notice the text Tab 3 will be printed between Tab 1 and Tab 2. (The asterisk suppresses line breaks.) The tabto package will also allow a user to set a specific number of evenly spaced tabs or specify exactly where each tab stop should be (just as can be done with a typewriter). Both parts of the code below go into the document.

\begin{tabbing} First tab stop \= Second \= Third \=\kill one \> two \> three \> four
one two \> two \> three \> four
\end{tabbing}

Comme indiqué ci-dessus, tabto est un paquet mais ce n'est pas un environnement, contrairement à tabbing. L'auteur doit le charger dans le préambule, mais il peut utiliser le paquet sans commencer ni terminer par un environnement.

\tabto*{1cm} Tab 1 \tabto*{3cm} Tab 2 \tabto*{2cm} Tab 3 % dans le document

Les distances sont celles depuis la marge gauche. Remarquez que le texte Tab 3 sera imprimé entre les onglets 1 et 2 (l'astérisque supprime les sauts de ligne).

Le paquet tabto permet également à l'utilisateur de définir un nombre spécifique de tabulations régulièrement espacées ou de spécifier exactement l'emplacement de chaque taquet de tabulation (comme on peut le faire avec une machine à écrire). Les deux parties du code ci-dessous sont insérées dans le document.

\TabPositions{0,0.25\linewidth,0.5\linewidth,0.75\linewidth} % in preamble Then use \tab in the document. (This is equivalent to \NumTabs{4} \NumTabs{4} % in document %Four evenly spaced tab stops starting at the left margin \tab Tab 1 \tab Tab 2 \tab Tab 3 \tab Tab 4
There is a brief one-page document for the Tabto package available on ctan.org. A little experimenting will be helpful if you are not used to using tab stops. That is enough Latex fun for one issue. I will spend more time working with tables in the next column. In the meantime, if there is anything in this column that is new to you, I encourage you to try it out, play with the code, experiment with the choices, perhaps even read the documentation. Learning something new takes some effort but the rewards with Latex are worth the effort.

\TabPositions{0,0.25\linewidth,0.5\linewidth,0.75\linewidth} % dans le préambule

Utilisez ensuite \tab dans le document. Cela équivaut à \NumTabs{4}.

\NumTabs{4} % dans le document % quatre taquets de tabulation régulièrement espacés, commençant à la marge gauche \tab Tab 1 \tab Tab 2 \tab Tab 3 \tab Tab 4

Un bref document d'une page sur le paquet Tabto est disponible sur ctan.org. Un peu d'expérimentation sera utile si vous n'avez pas l'habitude d'utiliser les tabulations.

C'est assez de plaisir avec LaTeX pour un seul numéro. Je passerai plus de temps à travailler avec des tableaux dans la prochaine chronique. En attendant, si quelque chose dans cette rubrique est nouveau pour vous, je vous encourage à l'essayer, à jouer avec le code, à expérimenter les choix, et peut-être même à lire la documentation. Apprendre quelque chose de nouveau demande un certain effort, mais les bénéfices de LaTeX en valent la peine.

issue204/latex.txt · Dernière modification : 2024/05/05 10:21 de auntiee