Обернуть заголовки столбцов в латексную таблицу, экспортированную pandas.df.to_latex () - PullRequest
0 голосов
/ 03 июня 2019

Проблема: Таблицы, выводимые функцией Pandas.DataFrame.to_latex (), не переносят длинные заголовки столбцов.Параметр line_width = был удален с Pandas 0.24.

Обсуждение:

Я экспортирую множество таблиц с помощью команды df.to_latex () для включения в основной документ.Многие таблицы имеют многословные заголовки столбцов, в основном из-за необходимости включать заключенные в скобки единицы.

Конечный результат - набор абсурдно редких таблиц, которые часто не помещаются на странице.

Вот пример слишком разреженного сгенерированного Tex:

\begin{tabular}{lrrrrrr}
\toprule
{} & Odometer (km/y) & Fuel (L/y) & Elec (kWh/y) & Economy (L/100km) & GHG (kg CO2e) & GHG (g/km) \\
Type          &                 &            &              &                   &               &            \\
\midrule
Type 1         & 70753.62 & 9721.06 & 0.00 & 13.74 & 21386.33 & 302.26 \\
Type RRR     & 56167.39 & 5285.40 & 1627.60 & 9.41 & 11642.54 & 207.28 \\
Type X        & 195756.35 & 42957.04 & 0.00 & 21.94 & 94505.48 & 482.77 \\
Type Huh        & 187384.66 & 18118.07 & 73.07 & 9.67 & 39860.40 & 212.72 \\
\bottomrule
\end{tabular}

Вопросы:

  • Есть ли альтернативный способ указанияупаковка в мой сгенерированный .tex?
  • Альтернативно, есть ли магия латекса, которая позволит моему основному латексному документу \input этим таблицам и определит ширину переноса?

1 Ответ

0 голосов
/ 04 июня 2019

Проблема связана со способом объявления столбцов.При указании «r» вы говорите «сделать столбец достаточно широким для большей ячейки и выровненным по правому краю».

Вам нужно задать ширину столбца с помощью p {width}, и в этом случае элементы столбцов будут отформатированы как абзац заданной ширины с разрывом строки, как требуется.

\documentclass{article}

\begin{document}
\begin{tabular}{lp{1.8cm}p{1.8cm}p{1.8cm}p{1.8cm}p{1.8cm}p{1.8cm}}
\hline
  {} & Odometer (km/y) & Fuel (L/y) & Elec (kWh/y) & Economy (L/100km) & GHG (kg CO2e) & GHG (g/km) \\
  Type          &                 &            &              &                   &               &            \\
  \hline
  Type 1         & 70753.62 & 9721.06 & 0.00 & 13.74 & 21386.33 & 302.26 \\
  Type RRR     & 56167.39 & 5285.40 & 1627.60 & 9.41 & 11642.54 & 207.28 \\
  Type X        & 195756.35 & 42957.04 & 0.00 & 21.94 & 94505.48 & 482.77 \\
  Type Huh        & 187384.66 & 18118.07 & 73.07 & 9.67 & 39860.40 & 212.72 \\
  \hline
\end{tabular}
\bigskip

If you want to control line breaking, just add a $\backslash${newline} where you want.

\begin{tabular}{lp{1.8cm}p{1.8cm}p{1.8cm}p{1.8cm}p{1.8cm}p{1.8cm}}
\hline
  {} & Odometer\newline (km/y) & Fuel \newline (L/y) & Elec\newline (kWh/y) & Economy\newline (L/100km) & GHG\newline (kg CO2e) & GHG\newline (g/km) \\
  Type          &                 &            &              &                   &               &            \\
  \hline
  Type 1         & 70753.62 & 9721.06 & 0.00 & 13.74 & 21386.33 & 302.26 \\
  Type RRR     & 56167.39 & 5285.40 & 1627.60 & 9.41 & 11642.54 & 207.28 \\
  Type X        & 195756.35 & 42957.04 & 0.00 & 21.94 & 94505.48 & 482.77 \\
  Type Huh        & 187384.66 & 18118.07 & 73.07 & 9.67 & 39860.40 & 212.72 \\
  \hline
\end{tabular}
\bigskip

You can also consider adding an extra row for the units.

\begin{tabular}{lp{1.8cm}p{1.8cm}p{1.8cm}p{1.8cm}p{1.8cm}p{1.8cm}}
\hline
  {} & Odometer & Fuel  & Elec & Economy & GHG & GHG \\
  Type &  (km/y) &  (L/y) & (kWh/y) & (L/100km) &  (kg CO2e) &  (g/km) \\
  \hline
  Type 1         & 70753.62 & 9721.06 & 0.00 & 13.74 & 21386.33 & 302.26 \\
  Type RRR     & 56167.39 & 5285.40 & 1627.60 & 9.41 & 11642.54 & 207.28 \\
  Type X        & 195756.35 & 42957.04 & 0.00 & 21.94 & 94505.48 & 482.77 \\
  Type Huh        & 187384.66 & 18118.07 & 73.07 & 9.67 & 39860.40 & 212.72 \\
  \hline
\end{tabular}

\end{document}

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...