\pgfplotstabletypeset の \pbox を使用してセル内に余分なスペースを作る

\pgfplotstabletypeset の \pbox を使用してセル内に余分なスペースを作る

私は単純な を使用しています\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

関連情報