입력 파일에는 가변 개수의 열이 있습니다. 출력 테이블은 입력 데이터를 기반으로 올바르게 구성되었지만 데이터가 테이블에 표시되지 않습니다. 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}