Die Daten werden nicht in der Ausgabetabelle angezeigt

Die Daten werden nicht in der Ausgabetabelle angezeigt

Eingabedateien haben eine variable Anzahl von Spalten. Die Ausgabetabelle wird auf Basis der Eingabedaten korrekt gebildet, die Daten werden jedoch nicht in der Tabelle angezeigt. Beim Kompilieren der Latex-Datei treten keine Fehler auf.

Die Pakete csvsimple-l3 und tabularray werden im Latex-Code verwendet, daher ist es auch eine Anforderung, dass sie in einigen neuen Beispielen verwendet werden, um den Fehler zu beheben.

\documentclass{article}

\begin{filecontents*}{file3.csv}
  a,b,c
\end{filecontents*}

\begin{filecontents*}{file4.csv}
  a,b,c,d
\end{filecontents*}

\usepackage{etoolbox}
\usepackage{csvsimple-l3}
\usepackage{tabularray}
\usepackage{xcolor}
\usepackage{ifthen}
\usepackage{readarray}
\readarraysepchar{,}

\ExplSyntaxOn
\NewExpandableDocumentCommand{\myheader}{m}{Sample & Span~over~3~or~4~columns  
\prg_replicate:nn {#1} { & } Last &}
\ExplSyntaxOff

\begin{document}

\newcommand{\Disorders}[1]{%
 \readdef{#1}\filedata%
 \begin{tblr}[expand=\expanded]{vlines,hlines,
 colspec={X[1,c,m]*{\ncols}{X[1,c,m]} X[1,c,m]X[1,c,m]},
 width=\textwidth,
 cell{1}{1}={r=2}{c,m,font=\small\bfseries},
 cell{1}{2}={c=\ncols}{c,m,font=\small\bfseries},
 cell{1}{\ncols+2}={c=2}{c,m,font=\small\bfseries},
}
\expanded{\myheader{\ncols}}
\\
\csvreader[no head]{#1}{}{
 \ifnumequal{\ncols}{4}{%
       &\csvcoli&\csvcolii&\csvcoliii&\csvcoliv&Result & Erros\\
                            }{%
 \ifnumequal{\ncols}{3}{%
       &\csvcoli&\csvcolii&\csvcoliii&Result & Erros
                           }{}%
                            }
}
\end{tblr}
}

\Disorders{file3.csv}
\bigskip

The file consists of \ncols{} columns.

\end{document}

Was ist der Fehler? Wenn jemand die Antwort kennt und eine Lösung hat, wäre das sehr hilfreich.

Bildbeschreibung hier eingeben

Antwort1

Wie gewünscht habe ich die Pakete auf tabularrayund beschränkt csvsimple-l3. Die Hauptschwierigkeit war table head. In der Dokumentation section 3.11 Data Collectionkönnen wir lesen:

Die Verwendung von Berechnungen oder nicht erweiterbaren Bedingungen kann wahrscheinlich zu Kompilierungsfehlern führen.

Daher der Test\ifnumequal{\thecsvrow}{1}

\documentclass{article}
%https://tex.stackexchange.com/questions/706097/the-data-is-not-displayed-in-the-output-table
\usepackage{csvsimple-l3}
\usepackage{tabularray}
\usepackage{etoolbox}%<-- ifnumequal
%%%%%%%%%
\begin{filecontents*}[overwrite]{file3.csv}
    a,b,c
    d,e,f
    g,h,i
\end{filecontents*}

\begin{filecontents*}[overwrite]{file4.csv}
a,b,c,d
\end{filecontents*}
%%%%%%%%%%
\ExplSyntaxOn
\NewExpandableDocumentCommand{\myheader}{m}{Sample & Span~over~3~or~4~columns  
\prg_replicate:nn {#1} { & } Last &}
\ExplSyntaxOff
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\csvreader[
no head,
tabularray =
{
    vlines,hlines,
    colspec={X[1,c,m] *{\thecsvcolumncount}{X[1,c,m]} X[1,c,m] X[1,c,m]},
    width=\textwidth,
    cell{1}{1}={r=2}{c,m,font=\small\bfseries},
    cell{1}{2}={c=\thecsvcolumncount}{c,m,font=\small\bfseries},
    cell{1}{\thecsvcolumncount+2}={c=2}{c,m,font=\small\bfseries},
    },
% table head = Sample & Span~over~3~or~4~columns&&&\\
]{file4.csv}{}
{   
    \ifnumequal{\thecsvrow}{1}
        {\myheader{\thecsvcolumncount}\\}
        {}
    \ifnumequal{\thecsvcolumncount}{4}
        {%
        &\csvcoli&\csvcolii&\csvcoliii&\csvcoliv&Result & Erros
        }
        {%
            \ifnumequal{\thecsvcolumncount}{3}
                {%
                    &\csvcoli&\csvcolii&\csvcoliii&Result & Erros
                }
                {}%
        }
}


\bigskip
The file consists of \thecsvcolumncount{} columns.
\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen