#pdf #hyperlink #latex #gnuplot
#PDF #гиперссылка #Латекс #gnuplot
Вопрос:
Есть ли какой-либо способ добавить гипертекст или теги в PDF-файлы через gnuplot?
Согласно руководству (gnuplot 5.4.0) это невозможно:
Некоторые терминалы (wxt, qt, svg, canvas, win) позволяют прикреплять гипертекст к определенным точкам на графике или в другом месте на холсте. При наведении курсора мыши на точку привязки отображается всплывающее окно, содержащее текст. Терминалы, которые не поддерживают гипертекст, ничего не будут отображать.
На самом деле, есть 3 желания:
- добавьте гипертекст в PDF, при наведении курсора мыши на точку появится текст, как в приведенных выше терминалах (также известный как «всплывающая подсказка» или «всплывающая справка»).
- добавьте гиперссылки в PDF, при нажатии на них они будут перенаправлены на URL-адрес, например
www.gnuplot.info
, или, если возможно, на другой локальный файл (с абсолютным или относительным путем). - добавьте несколько тегов или меток, которые можно было бы использовать в дальнейшем (когда этот 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.