Добавление оглавления в PDF с R графиками - PullRequest
8 голосов
/ 13 октября 2011

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

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

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

Example table of contents

Ответы [ 3 ]

6 голосов
/ 13 октября 2011

Единственный способ, которым я знаю, это с LaTeX, но вам не обязательно нужен Sweave; возможно, вы могли бы просто сгенерировать файл LaTeX напрямую с вашим кодом RPython. Если у вас есть две картинки размером 6x6 (размер по умолчанию) с именами tmp-001.pdf и tmp-002.pdf, вы можете создать раздел под названием 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}
3 голосов
/ 13 октября 2011

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

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]))

Base graphics version

Я не могу придумать, как создать навигационное оглавление, но этот вариант может быть более приятным и проще для интеграции с дисплеями типа 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))

enter image description here

1 голос
/ 13 октября 2011

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

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