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… |
Voici une solution, recourant aux fonctionnalités du package 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} Mise à jourPour é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 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} Publiée 15 Aoû '17, 02:40 denis ♦♦ 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
(15 Aoû '17, 03:58)
fred02840
Deux points me gênent dans cette réponse : le bidouillage
(15 Aoû '17, 16:34)
Nikopol
@Nikopol Le bidouillage
(16 Aoû '17, 13:06)
denis ♦♦
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 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
|
Voici une solution. ECM : ici j'ai choisi 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} Publiée 14 Aoû '17, 19:46 touhami |
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 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}{% \@arabic{\numexpr\myCounterLast-\value{countlignes}\relax}} \else \renewcommand*{\thecountlignes}{% \@arabic{\numexpr\myCounterLast+1-\value{countlignes}\relax}} \fi \situbes#2\@nil}% {\end{tabular}} \def\situbes{% \@ifnextchar|{\tubes}{\notubes}}%On cherche si le premier caractère est tube | \def\tubes#1#2\@nil{%si oui on l'avale et on le place avant >{} \begin{tabular}{|>{\numlignes}#2}} \def\notubes#1\@nil{%sinon on laisse l'argument tel quel \begin{tabular}{>{\numlignes}#1}} \makeatother \begin{document} \section*{Version classique} \begin{numtabular}[1]{c|c} \hline & Avec l'option \\ \hline\hline & on num\'erote \\ \hline & d\`es la \\ \hline & premi\`ere ligne \\ \hline &et ...\\ \hline \end{numtabular} \medskip \begin{numtabular}{|c|c|} \hline Rang& sans l'option \\ \hline\hline & Fernand \\ \hline & Yvonne \\ \hline & Jacques \\ \hline & Sophie \\ \hline \end{numtabular} \section*{Version \'etoil\'ee} \begin{numtabular*}[1]{c|c} \hline & Avec l'option \\ \hline\hline & on num\'erote \\ \hline & d\`es la \\ \hline & premi\`ere ligne \\ \hline &et ...\\ \hline \end{numtabular*} \medskip \begin{numtabular*}{|c|c|} \hline Rang& sans l'option \\ \hline\hline & Fernand \\ \hline & Yvonne \\ \hline & Jacques \\ \hline & Sophie \\ \hline \end{numtabular*} \end{document} [1]: discussion [1]: http://texnique.fr/osqa/questions/3660/compteur-palindromique-dans-un-environnement-description Publiée 14 Aoû '17, 20:39 Nikopol Le rôle de l'argument optionnelle n'est pas assez précis. Essayer, par exemple,
(16 Aoû '17, 23:50)
touhami
@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
(17 Aoû '17, 00:02)
Nikopol
Je tiens à vous remercier pour vos efforts ;-) mais à mon avis il faut garder les choses simple. Avez vous penser à l'environnement 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
(17 Aoû '17, 00:04)
touhami
Je pourrais éviter les
(17 Aoû '17, 00:28)
Nikopol
|
Deux autres possibilités:
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 & Of What Occurred Subsequently \\ \hline & Of What Became of the Parents of the Forty-Nine Children \\ \hline & Conclusion \\ \hline \end{block} \end{blockarray} \rowcolors{1}{Lavender!50}{white} \setlength\cellspacetoplimit{4pt} \setlength\cellspacebottomlimit{4pt} \begin{tabular}{>{CHAPTER}Sl <{\hspace{0.33em}\the\rownum. }Sl} \rowcolor{white}\multicolumn{2}{c}{THE HISTORY OF THE SEVEN FAMILIES OF LAKE PIPPLE-POPPLE}{\global \rownum = 0} \\ \specialrule{\heavyrulewidth}{\aboverulesep}{0pt} & Introductory \\ & The Seven Families \\ & The Habits of the Seven Families \\ & The Children of the Seven Families are Sent Away\\ & The History of the Seven Young Parrots \\ & The History of the Seven Young Storks \\ & The History of the Seven Young Geese \\ & The History of the Seven Young Owls \\ & The History of the Seven Young Guinea Pigs \\ & The History of the Seven Young Cats \\ & The History of the Seven Young Fishes \\ & Of What Occurred Subsequently \\ & Of What Became of the Parents of the Forty-Nine Children \\ & Conclusion \\ \bottomrule \end{tabular} \end{document} Quelle avalanche de réponses ! Merci !
(17 Aoû '17, 16:50)
fred02840
|
L'environnement \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} Publiée 14 Jul '21, 13:40 fpantigny |