好的,我正在尝试使用 .csv 文件向文档中添加表格。
经过修改后,我得到了这个表:
\usepackage{makeidx} % allows for indexgeneration
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage{mathtools}
\usepackage{csvsimple}
\usepackage{dcolumn}
\usepackage[toc]{glossaries}
\newcolumntype{d}[1]{D{.}{.}{#1}}
\begin{document}
\begin{table}
\csvreader[no head,
tabular=c | d{2} l | d{2} | l,
table head = Nivel & \mathrm{Tokens} & (Max) & \mathrm{Tempo} & Sucesso \\\hline,
late after line= \\,
late after last line=\\\hline]{BC14.csv}{}
{\csvcoli & \csvcolii & \csvcoliii & \csvcoliv & \csvcolv}
\end{table}
\end{document}
.csv 文件包含以下内容:
01,1.35,(2),12.2,0.65
02,1.7,(3),45,0
03,1.2,(3),58.2,0.05
04,2.63158,(4),76.47369,0.10526
05,1,(2),70,0
06,1.2,(2),30.5,0.35
07,1,(3),60,0
08,2.10526,(3),38.78947,0.26316
09,2.05263,(3),77.1579,0.10526
10,0.52941,(3),100,0
输出如下:
我到处都找过了,但没有找到 dcolumn 无法对数字进行四舍五入的例子,而且也没有找到同时使用 dcolumn 和 csvsimple 的例子。
答案1
dcolumn
首先,和并不冲突csvsimple
,如果csvsimple
去掉,直接手工填入数据来排版表格,输出的结果是一样的。
该dcolumn
包适用于按小数点对齐的列,但dcolumn
不对数字进行四舍五入。
要自动四舍五入数字,还有其他软件包。siunitx
例如允许四舍五入数字(以及许多其他事情)。
排版列代币和速度小数点后有两位数字,可以使用以下代码:
\documentclass{article}
\usepackage{csvsimple}
\usepackage{siunitx}
\begin{document}
\begin{table}
\csvreader[no head,
before reading=\sisetup{round-mode=places,round-precision=2,round-integer-to-decimal},
tabular={c | S l | S | l},
table head = Nivel & {Tokens} & (Max) & {Tempo} & Sucesso \\\hline,
late after line= \\,
late after last line=\\\hline]{BC14.csv}{}
{\csvcoli & \csvcolii & \csvcoliii & \csvcoliv & \csvcolv}
\end{table}
\end{document}
答案2
dcolumn
和包之间没有冲突csvsimple
。只是表头中的某些信息设置不正确。
假设您想继续使用该dcolumn
软件包,您应该做以下两件事:
更换指令
tabular=c | d{2} l | d{2} | l,
和
tabular=c | d{1.5} l | d{3.5} | l,
基本上,该
d{2}
规范是有缺陷的,因为它只为数字的整数部分保留了 2 位数字的空间,并且根本没有空间为小数部分。更换线路
table head = Nivel & \mathrm{Tokens} & (Max) & \mathrm{Tempo} & Sucesso \\\hline,
和
table head = Nivel & \multicolumn{1}{c}{Tokens} & (Max) & \multicolumn{1}{c|}{Tempo} & Sucesso \\\hline,
经过这两个修改,你的表格就可以排版得很好了。