Xetex - Sortieren in einer Tabelle

Xetex - Sortieren in einer Tabelle

Ich habe eine Tabelle mit mehreren Spalten, darunter

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

Ich möchte die Tabelle 3 mal ausdrucken, einmal sortiert nach Spalte A, dann nach Spalte B, dann nach Spalte C. Momentan mache ich das mit Hilfe von MSExcel und füge die sortierten Tabellen in meinen Code ein. Es sollte aber auch mit nomencl möglich sein, da nomencl Listen sortiert.

Mein Minimalbeispiel:

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

HZL=Spalte A, Unicode=Spalte B, Name=Spalte C

Da dies im Rahmen eines hethitischen Kurses stattfindet, muss die Tabelle jede Woche sortiert werden, wenn neue Zeichen hinzugefügt werden. Die tabellarische Umgebung wird eigentlich eine Umgebung für längere Tabellen (longtabular oder supertabular) sein. Ich verwende XeTex. Ich habe die Möglichkeit von ExcelToLatex gesehen, aber dann muss ich jede Woche drei Tabellen in meinen Code kopieren, was ziemlich unelegant ist. Was ich möchte, ist so etwas wie:

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

Durch diesen Code würde mir sogar ein Sortiervorgang erspart, da die Einträge bereits nach der HZL-Nummer sortiert wären.

Vielen Dank im Voraus für alle Ideen!

Angelika

Antwort1

Hier ist ein kleines Beispiel, wie Sie pgfplotstableIhre Tabelle sortieren können:

Bildbeschreibung hier eingeben

\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}

verwandte Informationen