Как показать все столбцы DataFrame / таблицы для широких таблиц при экспорте в формате pdf из Jupyter с помощью nbconvert? - PullRequest
0 голосов
/ 17 марта 2020

Этот вопрос связан с Jupyter nbconvert LaTex Export Theme

Я пытаюсь экспортировать свой Блокнот Jupyter в формате .pdf, используя nbconvert через терминал (на Ma c). Я уже создал шаблон .tplx, который будет скрывать код и отображать только выходные данные и уценки.

# this is my jupyter notebook heading
pd.set_option('display.notebook_repr_html', True)
pd.set_option('display.expand_frame_repr', True)
pd.set_option("display.latex.repr", True)
pd.set_option("display.latex.longtable", True)
pd.set_option("display.latex.escape", True)
# this is the .tplx template for hiding the input and (preferably) setting the table width
# to fit the page width (including margins)
((*- extends 'article.tplx' -*))

((* block input_group *))
    ((*- if cell.metadata.get('nbconvert', {}).get('show_code', False) -*))
        ((( super() )))
    ((*- endif -*))
((* endblock input_group *))

((* block docclass *))   
\documentclass[8pt]{article}
\AtBeginDocument{
   \usepackage{graphicx}
   \resizebox{\textwidth}
   }
((* endblock docclass *))

Что я получаю, это PDF-файл с таблицей, который имеет правильный стиль и продолжает строки на следующей странице, но это не разрезает столбцы на следующую страницу. Вместо этого это просто не показывает их вообще. Вот скриншот. enter image description here

Я проверил предыдущие сообщения на SO и попытался отредактировать файл .tplx, используя доступную документацию, но не смог найти решение.

1 Ответ

0 голосов
/ 17 марта 2020

Класс документов article по умолчанию имеет ширину текста 345 битов, и таблица, которую вы пытаетесь включить, слишком широка для этого. По сути, у вас есть два варианта: сделать таблицу меньше или увеличить ширину текста.

Вы можете увеличить ширину текста, уменьшив размер полей: например, с помощью \usepackage{geometry}[left=0cm, right=0cm]. Еще один способ увеличить ширину текста - использовать альбомную компоновку \documentclass[8pt,landscape]{article}.

. Чтобы уменьшить размер таблицы, можно уменьшить расстояние между столбцами. Например, вы можете попробовать \setlength{\tabcolsep}{3pt} (разделение по умолчанию - 6pt).

При необходимости я бы также рассмотрел сокращение названий стран в названиях столбцов. Например, «Великобритания» занимает гораздо меньше места, чем «Великобритания». Это, безусловно, поможет уменьшить ширину таблицы.

Все эти параметры будут указаны в блоке docclass. Ie, чтобы настроить альбомную страницу без полей и 3pt между столбцами, которые у вас будут.

((* block docclass *))   
\documentclass[8pt,landscape]{article}
\AtBeginDocument{
   \usepackage{graphicx}
   \resizebox{\textwidth}
   \setlength{\tabcolsep}{3pt}
   \usepackage{geometry}[left=0cm, right=0cm]
   }
((* endblock docclass *))
...