Los archivos de entrada tienen un número variable de columnas. La tabla de salida está formada correctamente según los datos de entrada, pero los datos no se muestran en la tabla. No hay errores al compilar el archivo Latex.
Los paquetes csvsimple-l3 y tabularray se utilizan en el código Latex, por lo que también es un requisito que se utilicen en algún ejemplo nuevo que elimine el error.
\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}
¿Cuál es el error? Si alguien sabe la respuesta y tiene una solución sería de gran ayuda.
Respuesta1
Según lo solicitado, limité los paquetes a tabularray
y csvsimple-l3
. La principal dificultad fue table head
. En la documentación section 3.11 Data Collection
podemos leer:
El uso de cálculos o condicionales no ampliables probablemente cause errores de compilación.
De ahí la prueba\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}