使用 PGFplots 缩进表格中第一列的一些单词

使用 PGFplots 缩进表格中第一列的一些单词

我正在尝试使用 缩进表格第一列中的某些单词PGFplotstable。除了在单词前面添加 4 个空格外,我找不到其他方法来实现这一点。不幸的是,pgfplotstable或者 latex 会删除空格,因此单词不会缩进。在下面的 MWE 中,可以看到“cat c”和“cat f”应该缩进,但渲染后它们会左对齐。

我找到了这个选项trim cells=true|false,但关闭它却没有任何效果。

\documentclass{article}

\usepackage{pgfplots}
\usepackage{pgfplotstable}
\usepackage{filecontents}

\begin{document}

\begin{filecontents}{testdata.csv}
category, value, value 2
cat a,    1,     7
cat b,    2,     6
    cat c,    3,     5
cat d,    4,     4
cat e,    5,     3
    cat f,    6,     2
cat g,    7,     1
\end{filecontents}

\pgfplotstableread[col sep=comma]{testdata.csv}\datatable
\pgfplotstabletypeset[
trim cells=false,
col sep=comma,
columns/category/.style={string type,column type=l}
]{\datatable}

\end{document}

答案1

您可以使用样式every row no <index>来设置before row=\quad所需的行。

如果需要以相同的方式更改大量行,则可以在首先调用时以逗号分隔列表的形式提供行号

\pgfplotstableset{
    every row no list/.code 2 args={
        \pgfplotsforeachungrouped \rownumber in {#1}     {
            \pgfplotsset{/pgfplots/table/every row no \rownumber/.append style={#2}}
        }
    }
}

定义一个新键every row no list

\documentclass{article}

\usepackage{pgfplots}
\usepackage{pgfplotstable}
\usepackage{filecontents}

\begin{document}

\begin{filecontents}{testdata.csv}
category, value, value 2
cat a,    1,     7
cat b,    2,     6
cat c,    3,     5
cat d,    4,     4
cat e,    5,     3
cat f,    6,     2
cat g,    7,     1
\end{filecontents}

\pgfplotstableset{
    every row no list/.code 2 args={
        \pgfplotsforeachungrouped \rownumber in {#1}     {
            \pgfplotsset{/pgfplots/table/every row no \rownumber/.append style={#2}}
        }
    }
}

\pgfplotstableread[col sep=comma]{testdata.csv}\datatable
\pgfplotstabletypeset[
    trim cells=false,
    col sep=comma,
    columns/category/.style={string type,column type=l},
    every row no list={2,5}{before row=\quad}
]{\datatable}


\end{document}

相关内容