我已经自动生成了 CSV(竖线分隔)数据,我想将其打印为 Latex \csvautobooklongtable。我不知道列的数量(它们的数量因数据集而异)。
我的问题是,线条不会自动断开(每一行都是一条过长的线条)。
是否存在我尚未找到的可以影响 \csvsimple 行为以使表格很好地适合页面的选项?
\begin{filecontents*}{data.csv}
This|is|autogenerated|material\n
With|variable|number of|columns\n
Zeile 1|2|3|4\n
Zeile 2 (lore ipsum lore ipsum lore ipsum lore ipsum lore ipsum)|diese Zelle viel Text (lore ipsum lore ipsum lore ipsum lore ipsum lore ipsum)|diese eigentlich auch (lore ipsum lore ipsum lore ipsum lore ipsum lore ipsum)|und vor allem diese Zelle hat sehr viel text\n
Zeile 2|2|3|4\n\end{filecontents*}
\documentclass[fontsize=2mm,a4paper]{scrartcl}
\usepackage{csvsimple}
\usepackage{booktabs}
\usepackage{longtable}
\begin{document}
\csvautobooklongtable[separator=pipe, respect all, no check column count]{data.csv}
\end{document}
答案1
如果您知道列的最大宽度,则可以通过一些小技巧来更改列的类型\csvautobooklongtable
。
my column width
以下代码添加了设置列宽的选项:
\begin{filecontents*}{data.csv}
This|is|autogenerated|material\n
With|variable|number of|columns\n
Zeile 1|2|3|4\n
Zeile 2 (lore ipsum lore ipsum lore ipsum lore ipsum lore ipsum)|diese Zelle viel Text (lore ipsum lore ipsum lore ipsum lore ipsum lore ipsum)|diese eigentlich auch (lore ipsum lore ipsum lore ipsum lore ipsum lore ipsum)|und vor allem diese Zelle hat sehr viel text\n
Zeile 2|2|3|4\n\end{filecontents*}
\documentclass[fontsize=2mm,a4paper]{scrartcl}
\usepackage{csvsimple}
\usepackage{booktabs}
\usepackage{longtable}
\makeatletter
\csvset{
my column width/.style={after head=\csv@pretable\begin{longtable}{*{\csv@columncount}{p{#1}}}\csv@tablehead},
}
\makeatother
\begin{document}
\csvautobooklongtable[separator=pipe, respect all, no check column count,
my column width=1.5cm,
]{data.csv}
\csvautobooklongtable[separator=pipe, respect all, no check column count,
my column width=2cm,
]{data.csv}
\end{document}