pgfplotstable: typset csv mit 2 oder mehr Kopfzeilen (z. B. Name, Einheit, Kommentar)

pgfplotstable: typset csv mit 2 oder mehr Kopfzeilen (z. B. Name, Einheit, Kommentar)

Ich exportiere aus Origin und erhalte eine Data.csv wie diese:

Short_Name1; Short_Name2
Long_Name1;  Long_Name2
Unit1;       Unit2
Comment1;    Comment2
1,1;         2,0
3,5;         4,3

Wenn ich versuche, das mit pgfplotstable auszudrucken, muss ich so etwas tun:

%!TEX TS-program = lualatex
\documentclass[]{scrartcl}


%\usepackage{pgfplots}
\usepackage{
            pgfplotstable,
            booktabs,
            array,
            colortbl,
            }

\pgfplotsset{compat=1.12}

\begin{document}

\pgfplotstabletypeset[
    col sep=semicolon,
    read comma as period,
    fixed,
    zerofill,
%   string type,
    precision=2,
    ignore chars={\_},
   %dec sep align, %prints both strings in first column, aligned at the comma
%
    every head row/.style={
        before row={\toprule },
       after row={\midrule },
        },
    every last row/.style={
        after row=\bottomrule
        },
    every even row/.style={
        before row={\rowcolor[gray]{0.985}}}, %also a problem
%
    %every row 0/.style={string type}, %does not work
%    \directlua{    for i = 0, 2 do  %does also not work
%               for j= 0,1 do 
%                   tex.sprint( "every row ",i," column ",j,"\noexpand/.style={string type}, " ) 
%               end
%           end }
    every row 0 column 0/.style={string type},
    every row 0 column 1/.style={string type},
    every row 1 column 0/.style={string type},
    every row 1 column 1/.style={string type},
    every row 2 column 0/.style={string type},
    every row 2 column 1/.style={string type},
%
    every row 2/.style={
        after row={\midrule },
        },
]
    {Data.csv} 

%looks like it should as workaround, but is not processed properly
\directlua{     for i = 0, 2 do
            for j= 0,1 do 
                tex.sprint( "every row ",i," column ",j,"\noexpand/.style={string type}, " ) 
            end
        end }



\end{document}

Gibt es eine bequemere Möglichkeit, dies zu tun?

Ich würde mich auch freuen, wenn es möglich wäre,

Long_Name1 [Unit1] 

als eine Kopfzeile und ignorieren Sie die beiden verbleibenden Stringzeilen. Es ist kein Problem, nur zwei davon über Origin zu exportieren.

BEARBEITEN: Habe es bereits versucht every row no 0/.style={string type},, es tritt ein Fehler auf.

header=falseergibt Spalten mit Namen 0 1 2 3und daher müsste jeder Spaltenname wie folgt angegeben werden:

columns/<index>/.style={
        string type,
        column type=l,
        column name={Long_Name [Unit]}
        },

EDIT2: header=false-"Problem" ist bereits gelöstHier

Ich werde also versuchen, die Verarbeitung

Long_Name1;  Long_Name2
Unit1;       Unit2
1,1;         2,0
3,5;         4,3

Zu

Long_Name1 [\si{Unit1}];  Long_Name2 [\si{Unit2}]
1,1;         2,0
3,5;         4,3

mit Lua (Python wäre einfacher …), aber nicht einmal mein zu generierender Code every row 0 column 0/.style={string type}, hat funktioniert (und er druckt diese Zeile definitiv, wenn er außerhalb von pgfplotstable ausgeführt wird).

Ich dachte, das muss ein üblicher Arbeitsablauf sein und es muss bereits eine einfache Lösung geben …

verwandte Informationen