Добавление оглавления в PDF с помощью R plots

#r #pdf

#r #PDF

Вопрос:

Я создаю большее количество графиков в R и сохраняю их в формате PDF (используя grDevices / pdf). Есть ли простой способ добавить оглавление (метаданные) в PDF по мере его создания?

Я имею в виду не добавление отдельной страницы, а отображение оглавления, которое нравится просмотрщикам PDF.app, на боковой панели, чтобы упростить навигацию.)

Пример такого оглавления:

Пример оглавления

Комментарии:

1. Я думаю, было бы очень интересной и полезной идеей иметь что-то подобное в пакете, который расширяет возможности устройства pdf, но я понятия не имею, будет ли это просто сделать.

Ответ №1:

Единственный способ, который я знаю, — это использовать LaTeX, но вам не обязательно нужен Sweave; возможно, вы могли бы просто сгенерировать файл LaTeX непосредственно с помощью вашего кода RPython. Если у вас есть две картинки размером 6×6 (размер по умолчанию) с именем tmp-001.pdf и tmp-002.pdf , вот как вы могли бы создать раздел под названием Section A с двумя подразделами для двух картинок.

 documentclass{article}
usepackage[paperwidth=6in, paperheight=6in, margin=0in]{geometry}
usepackage{hyperref}
usepackage{graphicx}
parindent 0pt
begin{document}
pdfbookmark[1]{Section A}{anchorname_aa}

pdfbookmark[2]{plot aa}{anchorname_aa}
includegraphics{tmp-001.pdf}

newpage
pdfbookmark[2]{plot bb}{anchorname_bb}
includegraphics{tmp-002.pdf}

end{document}
  

Комментарии:

1. Предположим, у вас есть один файл Rplots.pdf на 8 страниц. Так что просто сделайте includegraphics[page=3]{Rplots.pdf} , я думаю.

2. Почему ваша графика не находится в среде figure? — — Каков ваш механизм выполнения? — — Я не могу запустить ваш код в своей системе с помощью pdflatex.

3. Да, [страница=X] работает. У меня нет их в среде figure, потому что нам не нужны дополнительные материалы, которые добавляют, мы просто хотим, чтобы рисунки на страницах были как есть. Я повторно запускаю документ в своей системе, и все по-прежнему хорошо. Какие ошибки вы получаете?

4. Хорошо, я понял. Тогда мои ошибки были в классе Figure. — — Это мой код без класса figure paste.ubuntu.com/23421878 где я не могу настроить изображения Rplot в вашем примере в Beamer.

5. Вы, очевидно, пытаетесь сделать что-то другое. Зачем вообще использовать класс beamer? Я рекомендую начать новый вопрос.

Ответ №2:

Вы могли бы создать первую страницу, используя названия ваших объектов или графиков в качестве аргументов для текста в столбцах.

 plot(1:10,1:10, type="n", main ="Index", axes=FALSE,frame.plot=FALSE,xlab="")

text(1,10, "plot")
text(3,10, "page")
text(5,1:10, rev(1:10 1))
text(2,1:10, rev(letters[1:10]))
  

Базовая графическая версия

Я не могу придумать способ создания навигационного оглавления, но этот вариант может быть более приятным и его легче интегрировать с дисплеями типа Beamer. Функция пакета Hmisc latex предоставляет интерфейс к пакету Latex longtable. Мой Latex-fu слаб, но если ваш сильнее, вы также можете перенаправить код dvi, созданный для интеграции в другие приложения. Я получаю промежуточный файл dvi, помещенный во временный каталог, который затем открывает мой просмотрщик dvi и позволяет сохранять в формате PDF:

 require(Hmisc)
?latex  # you will probably want to review this
latex(Plot_list<-data.frame(Plots=letters[1:10], Pages=2:11))
  

введите описание изображения здесь

Комментарии:

1. Привет, Двин, спасибо за твой ответ. Однако я не имел в виду отдельную страницу (если я не могу щелкнуть там для навигации). Я обновил вопрос, чтобы сделать его более понятным.

Ответ №3:

Насколько я знаю, нет. Я думаю, для этого вам нужно использовать sweave.

Комментарии:

1. хм … это очень плохо. Что еще хуже, я использую RPython и некоторые циклы для генерации графиков. Но, возможно, я смогу добавить страницу в конце с некоторыми ссылками, я проверю это.