Tout est dans le titre. Je le précise néanmoins : le but est d'obtenir une numérotation automatique (à la façon des items dans une liste), de façon à pouvoir insérer de nouvelles lignes (ou en supprimer) sans rupture.

Je n'ai pas vu de moyens de le faire, mais en LaTeX, tout est possible : alors…

Posée 14 Aoû '17, 18:29

fred02840's gravatar image

fred02840
4.2k31165189
Taux d'acceptation : 15%

Modifiée 16 Aoû '17, 15:10

Pathe's gravatar image

Pathe ♦♦
7.6k49208252


Voici une solution, recourant aux fonctionnalités du package array, qui combine l'idée de touhami et le souci de Nikopol de conserver la syntaxe de l'environnement tabular :

Ouvrir dans l'éditeur Overleaf
\documentclass{article}
\usepackage{array}
\newcounter{mtligne}
\begin{document}
\begin{tabular}{>{\stepcounter{mtligne} \themtligne}cll}
\hline
\multicolumn{1}{c}{\textbf{N}} & \textbf{Col. 1} & \textbf{Col. 2} \\\hline
& Colonne 1 & Colonne 2 \\\hline
& Colonne 1 & Colonne 2 \\\hline
& Colonne 1 & Colonne 2
\end{tabular}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Mise à jour

Pour éviter de devoir manuellement réinitialiser le compteur dans le cas de plusieurs tableaux dont les lignes doivent être numérotées, on peut recourir à la commande \AtEndEnvironment du package etoolbox :

Ouvrir dans l'éditeur Overleaf
\documentclass{article}
\usepackage{array}
\usepackage{etoolbox}
\newcounter{mtligne}
\AtEndEnvironment{tabular}{\setcounter{mtligne}{0}}
\begin{document}
\begin{tabular}{>{\stepcounter{mtligne} \themtligne}cll}
\hline
\multicolumn{1}{c}{\textbf{N}} & \textbf{Col. 1} & \textbf{Col. 2} \\\hline
& Colonne 1 & Colonne 2 \\\hline
& Colonne 1 & Colonne 2 \\\hline
& Colonne 1 & Colonne 2
\end{tabular}
\bigskip
\begin{tabular}{>{\stepcounter{mtligne} \themtligne}cll}
\hline
\multicolumn{1}{c}{\textbf{N}} & \textbf{Col. 1} & \textbf{Col. 2} \\\hline
& Colonne 1 & Colonne 2 \\\hline
& Colonne 1 & Colonne 2 \\\hline
& Colonne 1 & Colonne 2
\end{tabular}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Lien permanent

Publiée 15 Aoû '17, 02:40

denis's gravatar image

denis ♦♦
7.3k1510
Taux d'acceptation : 53%

Modifiée 16 Aoû '17, 13:08

1

Ah, il n'est pas vexant, le Denis… Je ne suis pas sur le bon forum, mais j'en profite pour faire d'une solution qui aidera ceux qui utilise LaTeX via org-mode : sous le tableau, il suffit d'insérer la formule #+TBLFM: $1=(@#)-1 (pour une colonne n° 1 avec une ligne d'en-tête) ou #+TBLFM: $1=(@#) (idem, mais sans en-tête). Un petit coup de C-c C-e, puis C-x C-e suivi de l - l pour obtenir un fichier LaTeX.

(15 Aoû '17, 03:58) fred02840 fred02840's gravatar image

Deux points me gênent dans cette réponse : le bidouillage \multicolumn{1}{c}{} et le fait qu'il faille remettre manuellement le compteur à 0. J'édite ma réponse pour proposer une autre solution.

(15 Aoû '17, 16:34) Nikopol Nikopol's gravatar image

@Nikopol Le bidouillage \multicolumn{1}{c}{} était là pour montrer comment supprimer la numérotation si nécessaire. Quant à la réinitialisation manuelle du compteur, on peut s'en sortir avec la commande \AtEndEnvironment du package etoolbox (je vais éditer ma réponse dans ce sens).

(16 Aoû '17, 13:06) denis ♦♦ denis's gravatar image
1

@fred02840 Il n'est pas nécessaire d'être en Org-mode, AUCTeX accepte orgtbl-mode comme mode secondaire. Voir (info "(org)A LaTeX example of radio tables"). Ça permet d'insérer un petit tableur dans un document LaTeX et numéroter les lignes en est un usage très élémentaire.

(14 Jul '21, 17:22) Jean-jacques Rétorré Jean-jacques%20R%C3%A9torr%C3%A9's gravatar image

@Jean-jacques Rétorré. Je l'ignorais. Mais ma question sur org-mode tient à ce que j'utilise principalement (et même exclusivement) ce moyen avec Emacs. La faute aux formations de Dunkerque…

(15 Jul '21, 08:35) fred02840 fred02840's gravatar image

L'environnement {NiceTabular} de nicematrix (similaire à l'environnement classique {tabular}) a son propre compteur de rangées, nommé iRow et son compteur de colonnes nommé jCol.

\documentclass{article}
\usepackage{nicematrix}
\begin{document}
\begin{NiceTabular}{>{\arabic{iRow}}cll}[first-row]
\hline
\multicolumn{1}{c}{\textbf{N}} & \textbf{Col. 1} & \textbf{Col. 2} \\\hline
& Colonne 1 & Colonne 2 \\\hline
& Colonne 1 & Colonne 2 \\\hline
& Colonne 1 & Colonne 2
\end{NiceTabular}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Lien permanent

Publiée 14 Jul '21, 13:40

fpantigny's gravatar image

fpantigny
1.3k44
Taux d'acceptation : 37%

Modifiée 18 Sep '21, 13:45

Deux autres possibilités:

  • l'extension blkarray possède un compteur \BAenum à insérer où l'on veut dans le préambule de l'environnement blockarray;
  • l'option [table] de xcolor définit un compteur \rownum, incrémenté automatiquement par la commande \rowcolors (couleurs qui peuvent très bien être white si l'on ne veut pas de couleur).

Démo :

Ouvrir dans l'éditeur Overleaf
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{fourier, erewhon} \usepackage[table, svgnames]{xcolor}
\usepackage{array, blkarray, eqparbox, booktabs, cellspace}
\renewcommand{\theBAenumi}{\eqmakebox[lineno][l]{\arabic{BAenumi}.}}%%{\ifnumless{\value{BAenumi}}{10}{\arabic{BAenumi}\phantom{0}}{\arabic{BAenumi}}}
\begin{document}
\setlength\BAextrarowheight{3pt} %
\begin{blockarray}{ll}
\begin{block}{\BAmulticolumn{2}{c}}
THE HISTORY OF THE SEVEN FAMILIES OF LAKE PIPPLE-POPPLE\\[1ex]
\end{block}
\noalign{\setcounter{BAenumi}{1}}
%\BAmulticolumn{2}{c}{THE HISTORY OF THE SEVEN FAMILIES}
\begin{block}{|>{CHAPTER }l<{\hspace{-1.33em}} \BAenum!{\enspace}|l|}
\hline
& Introductory \\
\hline
& The Seven Families \\
\hline
& The Habits of the Seven Families \\
\hline
& The Children of the Seven Families are Sent Away\\
\hline
& The History of the Seven Young Parrots \\
\hline
& The History of the Seven Young Storks \\
\hline
& The History of the Seven Young Geese \\
\hline
& The History of the Seven Young Owls \\
\hline
& The History of the Seven Young Guinea Pigs \\
\hline
& The History of the Seven Young Cats \\
\hline
& The History of the Seven Young Fishes \\
\hline
 
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Lien permanent

Publiée 15 Aoû '17, 15:15

Bernard's gravatar image

Bernard
4.6k15
Taux d'acceptation : 35%

Modifiée 03 Déc '17, 18:27

Pathe's gravatar image

Pathe ♦♦
7.6k49208252

Quelle avalanche de réponses ! Merci !

(17 Aoû '17, 16:50) fred02840 fred02840's gravatar image

Voici une solution. \newcounter{ctr} pour créer un compteur des lignes, \stepcounter{ctr} dans chaque ligne, pour incrémenter le compteur et \thectr pour afficher le numéro de la ligne.

ECM : ici j'ai choisi mtligne comme compteur des lignes.

Ouvrir dans l'éditeur Overleaf
\documentclass{article}
\newcounter{mtligne}
\newcommand{\newligne}[2]{\stepcounter{mtligne} \themtligne & #1 & #2 \\\hline}
\begin{document}
\begin{tabular}{cll}
\hline
\textbf{N} & \textbf{Col. 1} & \textbf{Col. 2}\\
\hline
\newligne{Colonne 1}{Colonne 2}
\newligne{Colonne 1}{Colonne 2}
\newligne{Colonne 1}{Colonne 2}
\end{tabular}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Lien permanent

Publiée 14 Aoû '17, 19:46

touhami's gravatar image

touhami
9.8k410
Taux d'acceptation : 51%

Une autre solution qui préserve la syntaxe de tabular (pas besoin de rentrer tout un tas de commandes dans les arguments). Nécessite l'extension array pour pouvoir utiliser >{...}. La réinitialisation du compteur se fait dans l'environnement. J'ai rajouté une option à l'environnement numtabular afin de pouvoir choisir si on numérote ou pas la première ligne.

EDIT : amélioration du code.

Le code suivant permet l'utilisation du tube en premier dans l'argument de l'environnement (ce n'était pas le cas avant). J'en ai profité pour faire une version étoilée de l'environnement permettant la numérotation dans l'ordre décroissant, en faisant suite à cette discussion. L'option pour numéroter à partir du premier rang est toujours valable et ceux dans les deux environnements.

Ouvrir dans l'éditeur Overleaf
\documentclass[12pt]{article}
\usepackage{array}
\usepackage{zref-lastpage}
\newcounter{countlignes}
\newcounter{countligne}
\makeatletter
\zref@newprop{countlignes}{\the\value{countlignes}}
\zref@addprop{LastPage}{countlignes}
\newcommand*{\myCounterLast}{%
\zref@extractdefault{LastPage}{countlignes}{0}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%l'option%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%toutes les commandes contenant un s sont pour la version étoilée (starred)%%
\def\numlignes{\ifnum\value{countlignes}<\@ne\relax%si compteur= 0 on ne fait rien
\else%
\thecountlignes% sinon on affiche
\fi\global\addtocounter{countlignes}{1}}% on incrémente
\def\numligne{\ifnum\value{countligne}<\@ne\relax%
\else
\thecountligne%
\fi\global\addtocounter{countligne}{1}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%environnement classique%%%%%%%%%
\newenvironment{numtabular}[2][0]
{\setcounter{countligne}{#1}\sipipe#2\@nil}
{\end{tabular}}
\def\sipipe{%
\@ifnextchar|{\pipe}{\nopipe}}%On cherche si le premier caractère est tube |
\def\pipe#1#2\@nil{%si oui on l'avale et on le place avant >{}
\begin{tabular}{|>{\numligne}#2}}
\def\nopipe#1\@nil{%sinon on laisse l'argument tel quel
\begin{tabular}{>{\numligne}#1}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%evironnemmment étoilé%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newenvironment{numtabular*}[2][0]
{\setcounter{countlignes}{#1}%
\ifnum\value{countlignes}=0 %
\renewcommand*{\thecountlignes}{%
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

alt text

[1]: discussion [1]: http://texnique.fr/osqa/questions/3660/compteur-palindromique-dans-un-environnement-description

Lien permanent

Publiée 14 Aoû '17, 20:39

Nikopol's gravatar image

Nikopol
1.0k1614
Taux d'acceptation : 42%

Modifiée 16 Aoû '17, 22:45

Le rôle de l'argument optionnelle n'est pas assez précis. Essayer, par exemple, \begin{numtabular}[2]{c|c} dans les deux tableaux de la version classique

(16 Aoû '17, 23:50) touhami touhami's gravatar image

@touhami, je sais mais ce n'est pas une extension je ne pensais pas renvoyer un message d'erreur. C'est vrai que je pourrais refaire un test et renvoyer si l'option n'est pas 1. J'en profite, j'ai un espace parasite qui se voit sur la photo, je ne vois pas d'où il provient et là... Il est tard :)

(17 Aoû '17, 00:02) Nikopol Nikopol's gravatar image

Je tiens à vous remercier pour vos efforts ;-) mais à mon avis il faut garder les choses simple. Avez vous penser à l'environnement tabular* tabularx et à l'option @{}.

Votre première réponse était très élégante, Denis a proposé une version semblable en n'utilisant que des commande latex pour éviter les @ ce qui rendre sa réponse plus élégante :-).

(17 Aoû '17, 00:04) touhami touhami's gravatar image

Je pourrais éviter les @ mais personnellement je trouva ça joli dans un code. La solution de Denis est très bien, j'ai juste voulu automatiser l'environnement pour faire comme tabular. La version étoilée n’était pas utile j'en conviens mais cela m'a amusé. Et peu importe la complexité du code si le PO a une solution qui lui convient.

(17 Aoû '17, 00:28) Nikopol Nikopol's gravatar image
Votre réponse
[Masquer l'aperçu]

Suivre cette question

Par courriel :

Une fois que vous serez enregistré, vous pourrez souscrire à n'importe quelle mise à jour ici

Par flux RSS :

Réponses

Réponses et commentaires

Mots-clés de la question :

×44
×34
×11
×9
×1

Question posée : 14 Aoû '17, 18:29

Question vue : 14,399 fois

Dernière mise à jour : 18 Sep '21, 13:45

C'est votre première visite ici ? Consultez la FAQ !

×