pgfplotstabletypeset 无法访问第一列

pgfplotstabletypeset 无法访问第一列

我正在项目中对多个表使用 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。它现在显示单元格第一个单元格的内容,并且可以访问第一列。

相关内容