gnuplot: гипертекст или теги в PDF?

#pdf #hyperlink #latex #gnuplot

#PDF #гиперссылка #Латекс #gnuplot

Вопрос:

Есть ли какой-либо способ добавить гипертекст или теги в PDF-файлы через gnuplot?

Согласно руководству (gnuplot 5.4.0) это невозможно:

Некоторые терминалы (wxt, qt, svg, canvas, win) позволяют прикреплять гипертекст к определенным точкам на графике или в другом месте на холсте. При наведении курсора мыши на точку привязки отображается всплывающее окно, содержащее текст. Терминалы, которые не поддерживают гипертекст, ничего не будут отображать.

На самом деле, есть 3 желания:

  1. добавьте гипертекст в PDF, при наведении курсора мыши на точку появится текст, как в приведенных выше терминалах (также известный как «всплывающая подсказка» или «всплывающая справка»).
  2. добавьте гиперссылки в PDF, при нажатии на них они будут перенаправлены на URL-адрес, например www.gnuplot.info , или, если возможно, на другой локальный файл (с абсолютным или относительным путем).
  3. добавьте несколько тегов или меток, которые можно было бы использовать в дальнейшем (когда этот PDF-файл будет включен в документ LaTeX) для ссылки на другую главу, раздел или рисунок. Вероятно, это скорее вопрос к tex.stackexchange. Конечно, вы можете включить график gnuplot (PNG, PDF) в документ LaTeX, и тогда вы, вероятно, сможете определить области на графике для ссылок и т. Д. внутри LaTeX. Однако каждый раз, когда график меняется, вам придется переопределять все позиции в LaTeX снова и снова. Вот почему я хотел бы сделать это автоматически в gnuplot.

Возможно, это могут сделать другие пакеты для построения графиков, например, pgfplots или tikz или другие, но, поскольку я чувствую себя комфортно с gnuplot, я хотел избежать использования еще одного пакета и проверить, может ли быть способ с gnuplot.

Я знаю, что это выходит за рамки построения графика gnuplot, но, может быть, кто-нибудь знает об обходном пути с gnuplot?

Код:

 ### hypertext in PDF???
reset session
set term pdfcairo size 29.7cm, 21.0cm  font ",20" # A4 landscape
set output "Test.pdf"

$Data <<EOD
"Go here"            0.5  0.8
"Go there"           0.5  0.2
"Go left"            0.2  0.5
"Go right"           0.8  0.5
"www.gnuplot.info"   0.5  0.5
EOD

do for [i=1:|$Data|] {
    set label i word($Data[i],1) at screen word($Data[i],2), screen word($Data[i],3) hypertext point pt 6 ps 10
}

plot cos(x)
set output
### end of code
 

Результат: (Скриншот PDF в формате PNG просто для иллюстрации, конечно, гипертекста не будет).

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

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

1. Я предлагаю отправить это в качестве запроса функции на gnuplot project tracker. Мое текущее понимание заключается в том, что можно было бы добавить информацию «тега» гиперссылки в вывод pdf, но то, что делать с этой информацией, полностью зависит от программы просмотра. Я не знаю, сохранит ли встраивание такого файла pdf в документ LaTeX доступность такой информации о тегах.

2. Спасибо, Итан, я отправлю запрос на создание функции как можно скорее. Я знаю, что пакет LaTeX hyperref может создавать гиперссылки и (я думаю) ссылки на локальные файлы в формате PDF. Да, вероятно, LaTeX может не иметь возможности просматривать включенный PDF-файл для извлечения информации при создании нового PDF.

Ответ №1:

Если использование LaTeX (с set term cairolatex или epslatex или tikz в автономном режиме) является допустимым решением, я бы передал создание гиперссылок и гипертекстов на hyperref аутсорсинг и поместил соответствующий код LaTeX в качестве заголовка или метки на графике:

 set label 'href{http://www.gnuplot.info}{click me!}' ...
plot ... title 'see autoref{section:methods} and read Ref.autocite{bib:John_Smith_2002}'
 

Одинарные кавычки являются обязательными, иначе все специальные символы должны быть экранированы при использовании двойных кавычек.

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

1. Да, с помощью этого вы можете создавать PDF-файлы, содержащие гиперссылки и т. Д., Однако для этого требуется установка LaTeX. Хотя я надеялся, что вы могли бы создать такой PDF-файл, возможно, только с помощью gnuplot.