Данные не отображаются в выходной таблице

Данные не отображаются в выходной таблице

Входные файлы имеют переменное количество столбцов. Выходная таблица корректно формируется на основе входных данных, но данные в таблице не отображаются. Ошибок при компиляции файла Latex нет.

Пакеты csvsimple-l3 и tabularray используются в коде Latex, поэтому также необходимо, чтобы они использовались в каком-то новом примере, который устранит ошибку.

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

В чем ошибка? Если кто-то знает ответ и имеет решение, это было бы очень полезно.

введите описание изображения здесь

решение1

Как и просили, я ограничил пакеты до tabularrayи csvsimple-l3. Основная сложность была в table head. В документации section 3.11 Data Collectionможно прочитать:

Использование вычислений или нерасширяемых условных операторов может привести к ошибкам компиляции.

Отсюда и тест\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}

введите описание изображения здесь

Связанный контент