Xetex - tri dans une table

Sep 12 2020

J'ai un tableau qui comporte plusieurs colonnes, parmi lesquelles

    |Col. A|...|...|Col. B|...|Col. C|...|

Je veux imprimer le tableau 3 fois, une fois trié selon le col.A, à côté du col.B, à côté du col.C.En ce moment, je le fais avec l'aide de MSExcel et insère les tableaux triés dans mon code . Mais cela devrait aussi être possible avec nomencl, car le nomencl trie les listes.

Mon exemple minimum:

    \begin{tabular}{|c|c|c|c|c|c|c|c|} \\
    ... & HZL & Unicode & Name & ...& ...& ...& ... \\
    ... & 124 & 1279F   & GER  & ..& ...& ...& ... \\
    ... & 113 & 1259F   & mur  & ...& ...& ...& ... \\
    \end{tabular}

HZL = Col.A, Unicode = Col.B, Nom = Col.C

Comme cela se déroule dans le cadre d'une couse hittite, le tableau devra être trié chaque semaine lorsque de nouveaux signes seront ajoutés. L'environnement tabulaire sera en fait un environnement pour des tables plus longues (longtabulaire ou supertabulaire). J'utilise XeTex, j'ai vu la possibilité ExcelToLatex, mais je finis par devoir copier trois tableaux dans mon code chaque semaine, ce qui n'est pas du tout élégant. Ce que je veux, c'est quelque chose comme:

    \def\tabentry124{... & 124 & 1279F   & GER  & ..& ...& ...& ... \\}
    \def\tabeentry113{... & 113 & 1259F   & mur  & ...& ...& ...& ... \\}
    \begin{tabular}
    \tabentry113
    \tabentry124
    \end{tabular}

Ce code me sauverait même une procédure de tri, puisque les entrées seraient déjà triées selon le numéro HZL.

Merci d'avance pour toute idée!

Angelika

Réponses

1 leandriis Sep 12 2020 at 15:39

Voici un petit exemple sur la façon dont vous pourriez utiliser pgfplotstablepour trier votre table:

\documentclass{article}
\usepackage{pgfplotstable}
\begin{document}
\pgfplotstableset{col sep=semicolon, string type}
\pgfplotstableread
{
HZL;Unicode;Name     
124;1279F  ;GER
113;1259F  ;mu
}\loadedtable

sort by "HZL" column:

\pgfplotstabletypeset[sort,sort cmp={int <},sort key=HZL]\loadedtable

\bigskip
sort by "Unicode" column:

\pgfplotstabletypeset[sort,sort cmp={string <},sort key=Unicode]\loadedtable

\bigskip
sort by "Name" column:

\pgfplotstabletypeset[sort,sort cmp={string <},sort key=Name]\loadedtable

\end{document}