是否可以定义自定义样式并使用它们来显示列?
我有 10 列,其中 3 列是字符串,其余是浮点数,带有一系列我定义的选项。我想定义两种样式(一种用于字符串,一种用于数字),并在 TeX 代码中为每列引用它们,而不是多次复制和粘贴它们。
答案1
是的,这当然是可能的,例如,pgfplotstable 表中的文本大小
在下面的代码中,相关部分是:
% reduce repetition of column styles
\pgfplotstableset{
mittelmania siunitx column/.style={%
/pgfplots/table/display columns/#1/.style={%
string type,column type=S,
}
},
mittelmania string column/.style={%
/pgfplots/table/display columns/#1/.style={%
string type,
}
}
}
然后与
mittelmania siunitx column/.list={0,2},
mittelmania string column/.list={1},
记住pgfplotstable
列索引从 0 开始。
如果你使用
outfile=myfile.tex
然后你会看到输出如预期的那样:
\begin {tabular}{ScS}%
11.1&mittlemainia&12.1\\%
11.2&mittlemainia&12.2\\%
11.3&mittlemainia&12.3\\%
11.4&mittlemainia&12.4\\%
11.5&mittlemainia&12.5\\%
11.6&mittlemainia&12.6\\%
11.7&mittlemainia&12.7\\%
11.8&mittlemainia&12.8\\%
11.9&mittlemainia&12.9\\%
11.10&mittlemainia&12.10\\%
\end {tabular}%
以下是完整的 MWE:
% arara: pdflatex
% !arara: indent: {overwrite: yes}
\documentclass{article}
\usepackage{pgfplotstable}
\usepackage{siunitx}
\usepackage{filecontents}
\begin{filecontents}{data.txt}
11.1 mittlemainia 12.1
11.2 mittlemainia 12.2
11.3 mittlemainia 12.3
11.4 mittlemainia 12.4
11.5 mittlemainia 12.5
11.6 mittlemainia 12.6
11.7 mittlemainia 12.7
11.8 mittlemainia 12.8
11.9 mittlemainia 12.9
11.10 mittlemainia 12.10
\end{filecontents}
\pgfplotstableread{data.txt}\mittelmaniaData
% reduce repetition of column styles
\pgfplotstableset{
mittelmania siunitx column/.style={%
/pgfplots/table/display columns/#1/.style={%
string type,column type=S,
}
},
mittelmania string column/.style={%
/pgfplots/table/display columns/#1/.style={%
string type,
}
}
}
\begin{document}
\pgfplotstabletypeset[
% remember that columns start at 0
mittelmania siunitx column/.list={0,2},
mittelmania string column/.list={1},
% outfile=myfile.tex, % use this line to see the output
]{\mittelmaniaData}
\end{document}