我正在项目中对多个表使用 pgfplotstabletypeset,此代码可以正确导入数据。但是,头行的第一列总是出现这些奇怪的字母组合,我无法更改第一列的样式。使用以下代码:
%first making some test .csv%
\begin{filecontents*}{scientists.csv}
name,surname,age
Albert,Einstein,133
Marie,Curie,145
Thomas,Edison,165
\end{filecontents*}
%end of test file
这个 .csv 文件由 pfgplotstable 用来设置表格
%my code
\documentclass{customized_book}
\usepackage{pgfplotstable}
\usepackage{booktabs}
\begin{document}
\begin{table}
\centering
\pgfplotstabletypeset[col sep=comma, string type,
every head row/.style={before row=\toprule, after row=\midrule},
every last row/.style={after row=\bottomrule},
columns/name/.style={column type=r}
]{scientists.csv}
\end{table}
\end{document}
文档类是 book.cls 的定制版本,由我的大学提供作为模板。该类当前加载以下包:
\RequirePackage[T1]{fontenc} % T1 font encoding for PDFs
\RequirePackage{lmodern} % extended font definition
\RequirePackage{amsmath,amssymb,amsthm} % most important math stuff
\RequirePackage{a4wide} % make better use of A4 paper
\RequirePackage{fancyhdr} % custom headers and footers
\RequirePackage{fncychap} % custom chapter titles
\RequirePackage{graphicx} % graphics
\RequirePackage{color} % color
\RequirePackage{booktabs} % extra tabular commands
\RequirePackage[format=plain]{caption} % improved caption format
\RequirePackage{nomencl} % cool nomenclature listing
\RequirePackage{makeidx} % create your index
\RequirePackage[printonlyused]{acronym}
\RequirePackage{ifthen} % if-then commands (used in maketitle)
\RequirePackage{eso-pic} % picture in back/forground (used in cover)
\RequirePackage{relsize} % \textlarger, \textsmaller etc
\RequirePackage{enumitem} % enables removal of itemseparation
\RequirePackage{subcaption}
\RequirePackage{tabularx} % textwrapping in tables
\RequirePackage{comment}
\RequirePackage{hyperref} % add url to bibliography
\RequirePackage{rotating}
\RequirePackage{tikz}
\RequirePackage{array}
\RequirePackage{booktabs}
\RequirePackage{multirow}
\RequirePackage{adjustbox}
\RequirePackage{pgfplotstable}
\RequirePackage{chngpage}
\RequirePackage{hyperref}
\RequirePackage{csvsimple}
\RequirePackage{colortbl}
编译返回下表:
可以看出,第一列没有右对齐,并且第一行的第一列中添加了一些奇怪的符号。即使我完全清除 csv 中的这个单元格,这些符号仍然会保留。这可能是什么原因?考虑到我使用的每个表都会重复出现此问题\pgfplotstabletypeset
,我认为这不是语法错误,而是一些奇怪的软件包组合错过了 .csv 文件的正确开头。
答案1
欢迎!遗憾的是,您的文档存在一些问题,
\begin{document}
前\usepackage{pgfplotstable}
,- 可能
\usepackage{booktabs}
丢失了(除非它被加载\documentclass{customized_book}
,否则怎么会知道), - 两个
\documentclass
命令 - 丢失的
\end{table}
解决这些问题
\begin{filecontents*}{scientists.csv}
name,surname,age
Albert,Einstein,133
Marie,Curie,145
Thomas,Edison,165
\end{filecontents*}
\documentclass{article}
\usepackage{booktabs}
\usepackage{pgfplotstable}
\begin{document}
\begin{table}
\centering
\pgfplotstabletypeset[col sep=comma, string type,
every head row/.style={before row=\toprule, after row=\midrule},
every last row/.style={after row=\bottomrule},
columns/name/.style={column type=r}
]{scientists.csv}
\end{table}
\end{document}
如您所见,一旦您解决了问题,对齐就可以起作用。
答案2
脚本使用的 .csv 文件是从 Excel 中以 UTF-8 编码导出的。使用 Excel 中用于 csv 导出的其他编码选项(在保存文件期间)生成了一个新的 csv 文件。新文件由 加载\pgfplotstabletypeset
。它现在显示单元格第一个单元格的内容,并且可以访问第一列。