我有以下 csv 文件,想要读取并显示为表格:
"";"a01";"a02";"a03";"a04";"a05";"b01";"b02";"b03";"b04";"b05";"t01"
"a01";0;147632;181326;199650;271006;197441;215211;291227;131358;126435;268400
"a02";147632;0;456;145466;259520;136489;165306;768;174075;160202;256612
"a03";271006;259520;0;249326;0;249935;249608;241720;326917;292472;263386
"a04";7;119114;0;0;246267;133549;263651;258427;6;193472;251168
"a05";199650;145466;256502;0;0;135343;131358;259080;234963;250919;343499
"b01";197441;6;133549;763;249935;0;162260;259712;233051;678;251516
"b02";215211;165306;148099;6;249608;162260;0;256502;253780;228519;245948
"b03";256612;270029;258427;6;241720;259712;256502;0;343499;308085;263651
"b04";131358;8;215073;54;326917;233051;253780;0;0;678;313316
"b05";126435;160202;193472;211280;292472;209561;228519;0;0;0;283208
"t01";268400;256612;251168;6;263386;251516;245948;263651;256502;283208;0
按照代码基本上可以工作,但问题是表格不适合文档边界:
\singlespacing
\csvautotabular[separator=semicolon]{./tables/matrix.csv}
\doublespacing
我的要求:
- 第一行/列是标题,如果可能的话应该加粗或以某种方式突出显示(如果不行也没关系)
- 如果数字对于列宽来说太长,则可以对数字进行换行/换字
- 在内容部分中包含表格并能够在文本中引用它。
有一些针对特定问题的答案,但没有一个能满足我的所有要求,不幸的是,我不知道如何将它们结合起来以实现预期目标。据我所知,还有一个csvreader
函数可以更好地控制列样式、标题和内容。但我对此感到很困惑,我担心我误解了这里的关键内容(在整个 LaTeX 哲学中,而不仅仅是这个包)。我根本不理解语法、结构等,阅读 LaTeX 手册对我来说很痛苦,例如
这示例中提到了以下代码(我已经将其打印出来了):
\csvreader[tabular = |l|l|c|,
table head = \hline & Name & Age\\\hline,
late after line = \\\hline]%
{scientists.csv}
{name=\name,
surname=\surname, age=\age}%
{\thecsvrow & \surname~\name & \age}%
- 怎么会有
%
标牌?不是%
用来评论的吗? - 如果我理解正确,那么所有 between
[]
都是函数/宏的非强制选项,csvreader
例如tabular
,late after line
是参数。所有 between{}
都是强制选项,对吗?所以一般语法是这样的:csvreader[]%{}{}%{}%
对吗?如果两者的[]
目的都是处理参数,为什么有一个非强制组(或正确的名称是什么)和三个强制组,为什么不直接用适当的键/值{}
传递给它们呢?{}
- 这文档对于
tabular
说:
\begin{tabular}{<table format>}
用开始和\end{tabular}
结束来包围 CSV 处理。
但是什么tabular
?
- 我如何才能确定应该使用哪些参数来
csvreader
实现我的目标,并且不会因为这些基本的愚蠢问题而惹恼社区?
谢谢。