Дополнительный интервал в ячейке с использованием \pbox в \pgfplotstabletypeset

Дополнительный интервал в ячейке с использованием \pbox в \pgfplotstabletypeset

Я использую простой \pgfplotstabletypeset.

Поскольку я хотел вставить ручной разрыв в одну из ячеек, чтобы уменьшить ширину этой ячейки, я добавил, \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. Меня это вполне устраивает - если у вас есть предложение, как сделать это по-другому, я тоже готов его использовать.

Примечание для Пола Габорита: я разместил свой первоначальный вопрос как анонимный пользователь, поэтому я не смогу прокомментировать свой собственный или любой другой комментарий, когда вернусь на эту страницу, или?

решение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.

Связанный контент