使用 csv 文件外部化 pgfplotstable

使用 csv 文件外部化 pgfplotstable

这是一个直接的后续问题:将单位添加到 pgfplotstable 标题

修复输出后,我尝试外包table。在弄清楚standalone无法使用longtable(感谢@Jake)后,我删除了它,但即便如此,每次我尝试编译时pdfLaTeX都会出现此错误:

!包 pgfplots 错误:无法读取表格文件“t3.dat”。如果您打算提供内联数据:也许 TeX 搞砸了您的行尾?试试row se p=crcr' and terminate your lines with \\(有关pgfplotstable详细信息,请参阅手册)。

t3.csv存储所有数据的文件在哪里。

我的文件目前如下所示:

\documentclass{standalone}
\usepackage{pgfplotstable} 
\usepackage{booktabs} 
\usepackage[allowlitunits]{siunitx}

\begin{document}   
    \pgfplotsinvokeforeach{100,90,...,10}{
        \pgfmathsetmacro\concentration{#1/100*0.25}
        \pgfplotstableset{
            columns/#1/.estyle={
                fixed,fixed zerofill,precision=3,
                column type=p{4.5em},
                column name={\SI[round-mode=places,round-precision=3]{\concentration}{\mol\per\liter} (\SI{#1}{\percent})}}
        }
    }
    \pgfplotstabletypeset[col sep=semicolon,
    header=true,    
    columns/Zeit/.style={fixed,fixed ,column type=r},
    every head row/.style={
        before row=\toprule,
        after row=\midrule\endhead
    }, 
    every last row/.style={
        after row=\bottomrule
    }
    ]{t3.dat}

\end{document}

总结一下,我尝试了两种方法来包含该表:

  1. 使用该类standalone并包含文件\includestandalone{subdir/filename}
  2. 使用没有任何前言的文件并\documentclass使用该\input{subdir/filename}方法。

我仍然无法确定导致此错误的原因。运行 Windows 7 和 TeXStudio

编辑

看起来我无法将文件写入任何目录。所以问题应该是,为什么我不能写入文件?

答案1

好吧,我修好了,但并没有我想象的那么壮观

\documentclass{standalone}
\usepackage{pgfplotstable} 
\usepackage{booktabs} 
\usepackage[allowlitunits]{siunitx}
\begin{document}   
\sisetup{per-mode=symbol}
\pgfplotsinvokeforeach{100,90,...,10}{
    \pgfmathsetmacro\concentration{#1/100*0.25}
    \pgfplotstableset{
        columns/#1/.estyle={
            fixed,fixed zerofill,precision=3,
            column type=p{4.5em},
            column name={\SI[round-mode=places,round-precision=3]{\concentration}{\mol\per\liter} (\SI{#1}{\percent})}}
    }
}
\pgfplotstabletypeset[col sep=semicolon,
header=true,    
columns/Zeit/.style={fixed,fixed ,column type=r},
every head row/.style={
    before row=\toprule,
    after row=\midrule
}, 
every last row/.style={
    after row=\bottomrule
}
]{t3.dat}

\end{document}

看起来几乎相同,但由于standalone不起作用,longtable我删除了此部分:

\pgfplotstableset{
    begin table=\begin{longtable},
        end table=\end{longtable},
}

我忘记删除\endhead其中的命令after row(参见第一个问题)

我把所有文件都移到了同一个目录,不确定这是否重要。虽然不太美观,但对我来说还是有用的。

相关内容