平均能量损失
% stand-alone file to test writing a table in pgfplotstable
\documentclass{book}
\usepackage{booktabs,multirow} % required
\usepackage{pgfplotstable}
\pgfplotsset{compat=1.16}
\begin{document}
%\renewcommand{\arraystretch}{1.2}
\pgfplotstabletypeset
[
after row = \vspace{0.8mm},
every head row/.style =
{
before row = \toprule,
after row = \midrule,
},
every last row/.style =
{
after row = \bottomrule,
},
columns/x/.style =
{
column type = r,
column name = $x$,
frac,
},
columns/y/.style =
{
column type = r,
column name = ${y=\frac{2}{x}}$,
frac,
},
]
{
x y
-4 -0.5 % vertical space not added after this row
-3 -0.66666666 % vert space added below here
-2 -1
-1 -2
-0.5 -4
0.5 4
1 2
2 1
3 0.66666666
4 0.5
} % \pgfplotstabletypeset{} END
\end{document}
要显示分数列(使用 pgfplotstable、booktabs 和 multirows),我需要在行之间添加垂直空间,以便当前行的分数不会跨过前一行的分数。如 MWE 所示,我添加了
after row = {\vspace{0.8mm}},
\pgfplotstabletypeset 的选项,但它通过在每一行中添加空格来编译后第 1 行,不在第 0 行和第 1 行之间。参见图像。
我在 \pgfplotstabletypeset 之前添加了常用的 arraystretch 命令(在 MWE 中注释掉),但它不在我的块内,而且由于本文档中有数十个表,所以并非所有表都需要应用数组拉伸。是的,我可以在源文本周围加上括号,但我希望有一些更简洁的内容可以添加到我遗漏的选项中。
为什么第 0 行和第 1 行之间没有添加空格?
答案1
pgfplotstable
允许您通过 指定分数的代码frac TeX
。这可用于在分数出现的位置添加更多垂直空间,例如通过添加垂直幻影。
\documentclass{book}
\usepackage{booktabs,multirow} % required
\usepackage{pgfplotstable}
\pgfplotsset{compat=1.16}
\begin{document}
%\renewcommand{\arraystretch}{1.2}
\pgfplotstabletypeset
[
after row ={[0.3ex]}, %<use this instead of \vspace
frac TeX=\vphantom{\displaystyle\frac{1}{2}}\frac,
every head row/.style =
{
before row = \toprule,
after row = \midrule,
},
every last row/.style =
{
after row = \bottomrule,
},
columns/x/.style =
{
column type = r,
column name = $x$,
frac,
},
columns/y/.style =
{
column type = r,
column name = ${y=\frac{2}{x}}$,
frac,
},
]
{
x y
-4 -0.5
-3 -0.66666666
-2 -1
-1 -2
-0.5 -4
0.5 4
1 2
2 1
3 0.66666666
4 0.5
} % \pgfplotstabletypeset{} END
\end{document}