如何正确放置 pgfplotstablestyleset 于浮动环境中

如何正确放置 pgfplotstablestyleset 于浮动环境中

我正在尝试使用从文件中读取的值来制作一个非常基本的表格pgfplotstablestyleset。但是,这个表格的放置似乎完全不对。如果我使用\centering它,它会粘在右侧并与文本重叠,而不是放在文本之前/之后。

这里是 MWE:

\documentclass[]{scrartcl}

\usepackage[utf8]{inputenc}
\usepackage{mathtools}
\usepackage{braket}


\usepackage{booktabs}

\usepackage{pgfplots,pgfplotstable,tikz}
\pgfplotsset{compat=newest}
\usepgfplotslibrary{units}
\usepackage{siunitx}


\SendSettingsToPgf %SiUnitX sends settings to PGF

\begin{filecontents}{testdata.csv}
    sigmax  sigmay  sigmaz
    5.1410904452209305e-6   -3.243020222068572e-15  0.002626858897632589
    5.14109044497113e-6 -3.0442457297958973e-15 0.002626858897631923
    5.141090445470731e-6    -2.8261981713164487e-15 0.002626858897632367
    3.814673579619215e-16   1.2769541625971185e-15  0.009197421272315402
\end{filecontents}



\begin{document}
A little bit of text.

\begin{table}[tbch]
\centering
    \begin{tikzpicture}
        \pgfplotstableread{testdata.csv}{\table} %
        \pgfplotstabletypeset[
            dec sep align=S,    
            fixed zerofill,    
            precision=4,       
            display columns/0/.style={column name=$\braket{S_x}$},
            display columns/1/.style={column name=$\braket{S_y}$},
            display columns/2/.style={column name=$\braket{S_z}$},
            every head row/.style={before row=\toprule, after row=\midrule},
            every last row/.style={after row=\bottomrule},
        ] {\table}
    \end{tikzpicture}
    \caption{This table shows some data}
    \label{tab:myfirsttable}
\end{table}

\end{document}

答案1

旨在pgfplotstable提供创建表格材料的自动化框架。因此,您无需将其与 TikZ 图片封装在一起即可使其工作(如果您将其放置在节点中或\pgftext尽管它们提供了与表格兼容的框或小页面,它也可以工作)。

fixed zerofill此外,由于您使用的是科学计数法,但使用的是指令,因此列的对齐方式也不正确sci zerofill。应改为使用。

\documentclass[]{scrartcl}
\usepackage{mathtools,braket,lipsum}
\usepackage{pgfplotstable,siunitx,booktabs}
\pgfplotsset{compat=1.12}
\usepgfplotslibrary{units}
\SendSettingsToPgf 


\begin{document}
\lipsum[1]

\begin{table}[h]
\centering
\pgfplotstabletypeset[
    dec sep align=S,sci zerofill,precision=4,
    display columns/0/.style={column name=$\braket{S_x}$},
    display columns/1/.style={column name=$\braket{S_y}$},
    display columns/2/.style={column name=$\braket{S_z}$},
    every head row/.style={before row=\toprule, after row=\midrule},
    every last row/.style={after row=\bottomrule},
] {
sigmax sigmay sigmaz
5.1410904452209305e-6  -3.243020222068572e-15   0.002626858897632589
5.14109044497113e-6    -3.0442457297958973e-15  0.002626858897631923
5.141090445470731e-6   -2.8261981713164487e-15  0.002626858897632367
3.814673579619215e-16   1.2769541625971185e-15  0.009197421272315402        
}
\caption{This table shows some data}
\label{tab:myfirsttable}
\end{table}
\end{document}

在此处输入图片描述

相关内容