问题
如果不清楚表格中有多少列,如何指定列宽?
在里面pgfplotstable
手动的修订版 1.12 (2015/01/31) 第 35 页,有一节关于排版的内容。其中一张图片如下所示(还有一条漂亮的满线,:D):
线路
\begin{tabular}{ccc}%
我想有效地变成
\begin{tabular}{p{.4\textwidth}ll}
但使用pgfplotstable
宏。
警告:我不知道有多少列(使用具有不同列数的许多表的全局定义)。这意味着我真的很想找到一个允许从标准命令中进行更多抽象的答案。
想法
如果我想让第一列具有特定的宽度,比如说主文本框的 40%,我会有几个选择。
我所知道的所有实现此目的的方法如下:
\begin{minipage}{.4\textwidth}
some cell text
\end{minipage}
\parbox{.4\textwidth}{%
some cell text
}%
\begin{tabular}{ p{.4\textwidth} }
some cell text
\end{tabular}
伪解决方案
every column 0/.style={postproc cell content/.style={@cell content=\parbox{.4\textwidth}{##1}}},
示例代码
\documentclass{article}
\usepackage{fontspec}
\usepackage{booktabs}
\usepackage{pgfplotstable}
\pgfplotstableset{% Global config
every head row/.style={before row=\toprule,after row=\midrule},
every last row/.style={after row=\bottomrule},
col sep=&,
row sep=\\,
header=has colnames,
column type=l,
column type={>{\fontseries{bx}\selectfont\color{orange}}l}, %see sec 2.6 for defining column types
string type,
postproc cell content/.append style={ % see sec 3.2
/pgfplots/table/@cell content/.add={\fontseries{\seriesdefault}\selectfont\color{black}}{}}
}%
\begin{document}
\pgfplotstabletypeset{%
col1 & col2 & col3\\
here & more & stuff\\
for & good & looks\\
}%
\end{document}
答案1
如果您知道列的名称或编号,则可以只指定该属性,其余的仍将假设,c
因此您不需要列数。
\documentclass{article}
\usepackage{booktabs}
\usepackage{pgfplotstable}
\begin{document}
\pgfplotstabletypeset[
string type,
display columns/0/.style={column type={p{.4\textwidth}}},% columns/col1/.style also works
col sep=&,row sep=crcr,
]{%
col1 & col2 & col3\\
here & more & stuff\\
for & good & looks\\
}%
\end{document}