私は単純な を使用しています\pgfplotstabletypeset
。
セルの幅を狭めるためにセルの1つに手動で改行を挿入したかったので、\pbox
提案されているようにhttps://tex.stackexchange.com/a/11555
問題は、結果として得られる高さが私の好みよりも少し小さすぎることです。
ご覧のとおり、「some」はセルの一番上にあり、「text」は一番下にあります。上部と下部に少し余分なスペースを確保したいと思います。
私が試したものではこれを実現できませんでした。
何か案は?
問題を示す最小限の動作例を以下に示します。
\documentclass[11pt,a4paper]{article}
\usepackage{booktabs}
\usepackage{colortbl}
\usepackage{pgfplotstable}
\pgfplotstableset{
column type=l,
every head row/.style={
before row=\toprule,
after row=\midrule},
every even row/.style={before row={\rowcolor[gray]{0.85}}},
every odd row/.style={before row={\rowcolor[gray]{0.95}}},
every last row/.style={
after row=\bottomrule},
col sep = &,
row sep=\\,
string type,
}
\usepackage{pbox}
\begin{document}
\begin{table}[h]
\pgfplotstabletypeset{
a & b \\
1 & 2 \\
\pbox[c]{20cm}{some \\ long \\ text} & foo \\
3 & 4 \\
}
\end{table}
\end{document}
バーナードさん、下記に投稿していただいたご提案に感謝します。
ただし、テーブルに長い行がある場合は問題が発生します。
投稿した最小限の動作例に次の行を追加してください。
\makecell{some even longer \\ text that spans \\ three lines} & foo \\
結果は次の表になります。
pgfplotstable がなくても同じ結果の表が得られるとおっしゃいました。それは私にとっては問題ありません。別の方法の提案があれば、それも使ってみようと思います。
Paul Gaborit さんへの注意: 私は匿名ユーザーとして最初の質問を投稿したので、このページに戻っても自分のコメントや他のコメントにコメントすることはできないのでしょうか?
答え1
makecell
の代わりに パッケージを使用できます。このパッケージでは、、、およびコマンドを使用\pbox
して表のセル内での改行が可能です。\makecell
\thead
\rotcell
\rothead
\documentclass[11pt,a4paper]{article}
\usepackage{booktabs}
\usepackage{colortbl}
\usepackage{pgfplotstable}
\pgfplotstableset{
column type=l,
every head row/.style={
before row=\toprule,
after row=\midrule},
every even row/.style={before row={\rowcolor[gray]{0.85}}},
every odd row/.style={before row={\rowcolor[gray]{0.95}}},
every last row/.style={
after row=\bottomrule},
col sep = &,
row sep=\\,
string type,
}
\usepackage{makecell}
\renewcommand\cellalign{lc}
\begin{document}
\begin{table}[h]
\pgfplotstabletypeset{
a & b \\
1 & 2 \\
\makecell{some \\ long \\ text} & foo \\
3 & 4 \\
}
\end{table}
\end{document}
コメントはさておき、 を使用せずに同じ結果テーブルを取得できますpgfplotstable
。