Я использую простой \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
.