我想将多个表(两个或三个)并排放置,要求如下:
它们需要能够跨页面
它们需要彼此对齐
我需要能够使用 csv-reader (csvsimple 包)
起初(初稿)我使用表格环境,除了不能跨越多页之外,效果很好。
因此,我尝试切换到长表,但似乎长表不能像表格环境那样“并排”放置...这是长表(实现)的限制,还是有办法让两个长表从同一行开始?(例如,通过使用 LTleft / LTright?)
\documentclass[]{article}
\usepackage{longtable}
\usepackage{csvsimple}
\usepackage{filecontents}
\begin{filecontents*}{results1.csv}
id, s, dBC, dWC
18, 3, 9, 12
70, 4, 13, 17
120, 5, 17, 21
170, 6, 21, 25
220, 7, 25, 29
270, 8, 29, 33
320, 9, 33, 37
\end{filecontents*}
\begin{filecontents*}{results2.csv}
id, s, dBC, dWC
18, 3, 9, 12
70, 4, 13, 17
120, 5, 17, 21
170, 6, 21, 25
220, 7, 25, 29
270, 8, 29, 33
320, 9, 33, 37
\end{filecontents*}
\begin{document}
\begin{tabular}{|c|c|}
\hline\textbf{Size} & \textbf{Data} \\\hline\hline
\csvreader[head to column names, late after line=\\]{results1.csv}{}{\s & \dBC}
\hline
\end{tabular}
\begin{tabular}{|c|c|}
\hline\textbf{Size} & \textbf{Data} \\\hline\hline
\csvreader[head to column names, late after line=\\]{results2.csv}{}{\s & \dWC}
\hline
\end{tabular}
\begin{longtable}{|c|c|}
\hline\textbf{Size} & \textbf{Data} \\\hline\hline
\csvreader[head to column names, late after line=\\]{results1.csv}{}{\s & \dBC}
\hline
\end{longtable}
\begin{longtable}{|c|c|}
\hline\textbf{Size} & \textbf{Data} \\\hline\hline
\csvreader[head to column names, late after line=\\]{results2.csv}{}{\s & \dWC}
\hline
\end{longtable}
\end{document}
附言:我需要使用多个表格,因为我正在从两个单独的 csv 文件中读取数据。我可以将 csv 文件合并为一个,从而将多个表格合并为一个,但这些文件是由脚本自动生成的,因此这将是一个“最后的手段”解决方案。
备注:是否可以将多个表格环境放入一个小页面或框架中,并在其内容不适合当前页面时使小页面分页?
答案1
我认为在外部进行连接更容易,无论是在命令行上还是在这里使用
pdflatex --shell-escape
允许 Latex 调用paste
命令:
我修改了第二个 csv 文件,使其不再是第一个文件的副本,以检查是否使用了正确的数据。
\documentclass[]{article}
\usepackage{longtable}
\usepackage{csvsimple}
\usepackage{filecontents}
\setlength\textheight{6\baselineskip}
\begin{filecontents*}{results1.csv}
id, s, dBC, dWC
18, 3, 9, 12
70, 4, 13, 17
120, 5, 17, 21
170, 6, 21, 25
220, 7, 25, 29
270, 8, 29, 33
320, 9, 33, 37
\end{filecontents*}
\begin{filecontents*}{results2.csv}
id, s, dBC, dWC
180, 3, 90, 12
700, 4, 130, 17
1200, 5, 170, 21
1700, 6, 210, 25
2200, 7, 250, 29
2700, 8, 290, 33
3200, 9, 330, 37
\end{filecontents*}
\begin{document}
\immediate\write18{paste -d, results1.csv results2.csv > results3.csv}
\begin{longtable}{*{2}{|c|c}|}
\hline\textbf{Size} & \textbf{Data}
&\textbf{Size} & \textbf{Data}
\\\hline\hline
\csvreader[ late after line=\\]{results3.csv}{1=\hda,3=\hdb,5=\hdc,7=\hdd}{\hda&\hdb&\hdc&\hdd}
\hline
\end{longtable}
\end{document}