我有一个如下所示的 csv 文件:Scott、William、Todd、Esben、Martin、Jesper、Alexander WL
现在,名字写在了这一行
\aebuildtable{20}{Scott,William,Todd,Esben, Martin, Jesper, Alexander W.L}
我想包含一个 csv 文件,然后名称会自动写入表中。
我有以下代码:
\documentclass{article}
\usepackage{geometry}
\geometry{
a4paper,
total={210mm,297mm},
left=5mm,
right=5mm,
top=10mm,
bottom=10mm,
}
\usepackage{tikz}
\usetikzlibrary{calc}
\thispagestyle{empty}
\def\aeunit{0.25cm}
\newsavebox\tictactoebox
\begin{lrbox}\tictactoebox
\begin{tikzpicture}[x=\aeunit-0.4pt/3,
y=\aeunit-0.4pt/3,
every node/.style={outer sep=0pt,inner sep=0pt,minimum size=\aeunit-0.4pt},
baseline={($(current bounding box.center)+(0,-\aeunit/2)$)},
]
\draw (0,0) rectangle (3,3);
\foreach \myn in {0,1,...,3}
{ \draw (0,\myn) -- (3,\myn); }
\foreach \myn in {0,1,...,3}
{ \draw (\myn,0) -- (\myn,3); }
\end{tikzpicture}
\end{lrbox}
%% draw the extended vertical lines between marked columns
%% #1 column where to draw vertical line
\newcommand\aeDrawBorderAt[1]{%%
\coordinate (B/C#1/top) at (R1/C#1);
\coordinate (B/C#1/bot) at (R\aeMaxRowCount/C#1|-R\aeMaxRowCount/bot);
\draw[blue,line width=0.6pt]
(B/C#1/top)
++
(0,4pt+\baselineskip)
--
(B/C#1/bot);
}
%% label the columns
%% #1 left column number
%% #2 right column number
%% #3 content for labeling columns
\newcommand\aeLabelColumns[3]{%%
\path (R1/C#1) -- (R1/C#2) node[midway,above,yshift=0pt] {#3};
\aeDrawBorderAt{#1}
%\aeDrawBorderAt{#2}
}
%% #1 = number of columns to create
%% #2 = list of names
\newcommand\aebuildtable[2]{%%
\foreach \myn [count=\mycnt] in {#2}
{
%% previous value
\pgfmathsetmacro\myp{int(\mycnt-1)}
%% set nodes that fix each row
\ifnum\mycnt=1\relax
\coordinate (R\mycnt) at (0,\mycnt-1);
\else
\coordinate (R\mycnt) at (R\myp/bot);
\fi
%% a coordinate for the bottom of each row
\coordinate (R\mycnt/bot) at ($(R\mycnt)+(0,-3*\aeunit)$);
%% node for name:
\node[anchor=north east,outer sep=0pt] (N\mycnt) at ($(R\mycnt)+(-4pt,-\aeunit/2)$) {\myn};
\draw[blue,line width=0.6pt] ($(R\mycnt)+(0,-\aeunit/2 +3.3)$) -- ($(R\mycnt)+(-80pt,-\aeunit/2 +3.3)$);
\foreach \mycol in {0,...,#1}
{
\coordinate (R\mycnt/C\mycol) at ($(R\mycnt)+({\mycol*(\aeunit*3)},0)$);
\node[outer sep=0pt,
inner sep=0pt,
anchor=north west,]
at (R\mycnt/C\mycol.north west) {\usebox\tictactoebox};
}
\xdef\aeMaxRowCount{\mycnt}
}
}
\begin{document}
\begin{tikzpicture}
\aebuildtable{20}{Scott,William,Todd,Esben, Martin, Jesper, Alexander W.L}
\aeLabelColumns{0}{9}{alm. \o l - 6,75kr}
\aeLabelColumns{9}{15}{special \o l - 7,75kr}
\aeLabelColumns{15}{20}{guld \o l - 10kr}
\end{tikzpicture}
\end{document}