Огромный файл для печати при использовании большого количества графиков

Я использую Knitr через Lyx для создания документа. В этом документе я использую Knitr для печати около 20 изображений (через R) и 5 ​​вызовов из R, а также около 20 страниц текста.

Я сохраняю файл в формате pdf, и он весит всего 1500 КБ, и я могу легко его просмотреть и перекомпилировать. Но как только я иду печатать, принтер считывает около 200Мб информации. Печать занимает очень много времени (2+ часа).

Мне было интересно, знаете ли вы решение для этого или даже причину. Я пытался исправить это, просто копируя графики и помещая их в виде цифр, но это явно противоречит цели воспроизводимого исследования. Когда я помещаю графики в виде картинок, мы получаем размер pdf 367 КБ. Я совершенно уверен, что это графики, созданные с помощью трикотажа, которые вызывают увеличение данных. Когда я поменял графики на картинки, он напечатался примерно за 5 минут (что все равно долго, но гораздо меньше, чем часы).

У меня была эта проблема раньше, и я считаю, что это как-то связано с построением нескольких цепочек для трассировок. Известно ли, что на печать уходит вечность?

Кто-нибудь еще испытал это или знает решение для этого?


person RayVelcoro    schedule 30.07.2015    source источник


Ответы (1)


По умолчанию для латексного вывода используются PDF-файлы для графиков. Предположительно, в PDF-файле есть некоторые эффекты, которые очень дороги для вашего принтера. Я бы указал альтернативное графическое устройство, такое как png, либо для каждого фрагмента, используя параметры фрагмента, либо по умолчанию для всего файла, используя opts_chunk$set. Соответствующая опция — dev, хотя вам может понадобиться изменить и dpi.

Подробнее на странице вязания

person Nick Kennedy    schedule 30.07.2015
comment
Если вы создаете графики во внешнем скрипте .R, а затем в Knitr/Latex, вы читаете эти части скрипта .R, а затем используете чанку для построения графики, происходит ли такое же замедление? Во-вторых, используете ли вы кеш на одном или нескольких графиках? - person lawyeR; 30.07.2015
comment
@Nick Я изменил параметры фрагмента на это, и он напечатался примерно через 5 минут, так что похоже, что это решило проблему. Однако знаете ли вы о внутренностях Knitr/Lyx/Latex и почему это занимает так много времени? Если у меня есть обычный PDF-файл или изображение, которое я хочу напечатать, это не займет много времени. Кроме того, когда я сохраняю документ в формате PDF, он еще не скомпилирован? - person RayVelcoro; 30.07.2015
comment
@lawyeR Я не уверен насчет первого. Я попробую это позже сегодня. Я ничего не кэшировал. - person RayVelcoro; 30.07.2015
comment
@RayVelcoro это не столько латексные внутренности, сколько способ рендеринга PDF для вашего принтера. Какой тип драйвера принтера? Я бы предположил, что это Postscript, и есть что-то, что легко представить в PDF, но не в Postscript. Если вы хотите поэкспериментировать, вы можете попробовать использовать устройство postscript непосредственно в R и посмотреть, как сравнится размер файла. Вы также можете использовать Ghostscript для преобразования PDF в PS, чтобы посмотреть размер полученного файла. Не могли бы вы добавить к своему вопросу воспроизводимый пример одного из ваших сюжетов? Или выложить PDF куда-нибудь? - person Nick Kennedy; 30.07.2015
comment
@NickKennedy Принтеры работают в сети. Я посмотрел на драйверы, и это какой-то драйвер hp. Я могу загрузить аналогичный документ, если найду. У этого есть личная информация, поэтому я не могу ею поделиться, но позже я загружу другой, который доставлял мне проблемы. - person RayVelcoro; 30.07.2015
comment
@RayVelcoro немного погуглил, довольно много обсуждается медленная печать PDF с использованием принтеров HP. Вы можете попробовать переключиться между драйверами PCL5, PCL6 и postscript (если ваша работа позволяет вам это сделать) и посмотреть, какой из них работает лучше всего. Вы также можете попробовать обновить драйвер до более новой версии. Вы также можете попробовать распечатать из другого PDF-ридера. - person Nick Kennedy; 30.07.2015
comment
Вот какой-то латексный код для чего-то, что использует вязку и печатает очень медленно. docs.google.com/document/d/ - person RayVelcoro; 31.07.2015
comment
Это сложно протестировать должным образом, поскольку это зависит от программы, которую вы используете для печати PDF-файлов, и от конкретного драйвера печати. Но я вижу, что сюжет состоит из 50 000 строк, которые могли бы его объяснить. Полученный PDF-файл имеет относительно небольшой размер (~ 485 КБ) на моей машине, но медленно открывается в Adobe Reader. Если нет веской причины, я бы предложил для более сложных графиков, подобных этому, отображать их как PNG с относительно высоким разрешением, а не как PDF. Если вы установите достаточно высокое разрешение, вы не заметите никакой разницы ни на экране, ни при печати. - person Nick Kennedy; 31.07.2015