我希望部分和小节自动创建一个超目标(用于将外部 URL 链接到 pdf)和一个显示 URL 的 pdftooltip(以便可以发现 URL)
\section{\pdftooltip{Common Pressed Meats}{\#Common-Pressed-Meats}}\hypertarget{Common-Pressed-Meats}{}
\hypertarget{Canned-Pressed-Spam}{\subsection{\pdftooltip{Canned \& Pressed Spam}{\#Canned-Pressed-Spam}}}
这两行对我来说都适用,我的问题是如何重新定义\section
,\subsection
以便\section{Common Pressed Meats}
输出上述内容之一,并将标题文本(带有符号)转换为没有符号的有效 url,[它们几乎可以正常工作 - pdfbookmark ia“Common Pressed Meats#Common-Pressed-Meats”]
这是 pdflatex 的 MWE
\documentclass[english]{scrartcl}
\usepackage[latin9]{inputenc}
\usepackage{babel}
\usepackage[unicode=true,pdfusetitle,
bookmarks=true,bookmarksnumbered=true,bookmarksopen=true,bookmarksopenlevel=1,
breaklinks=true,pdfborder={0 0 1},backref=section,colorlinks=false]
{hyperref}
\makeatletter
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
\usepackage{pdfcomment}
\makeatother
\begin{document}
\section{\pdftooltip{Common Pressed Meats}{\#Common-Pressed-Meats}}\hypertarget{Common-Pressed-Meats}{}
The hypertarget is Common-Pressed-Meats or from the internet http://www.spam.com\#Common-Pressed-Meats
\hypertarget{Canned-Pressed-Spam}{\subsection{\pdftooltip{Canned \& Pressed Spam}{\#Canned-Pressed-Spam}}}
Invalid and special URL chars (i.e. most symbols) in the heading text
must be removed from the hypertarget and replaced with dash -
\hypertarget{Other-Pressed-Meats}{\section{\pdftooltip{Other Pressed Meats}{\#Other-Pressed-Meats}}}
The tooltip is over the heading text, and shows the hypertarget preceded
by \#
\end{document}
我想要做什么以及为什么?
我在网上有 pdf 格式的文档。它很详细,通常有 5-50 页长。在处理技术查询时,部分答案在文档中。我需要能够发送一个链接,该链接直接指向文档中解释我的观点的部分。链接(来自互联网的 url,或 pdf 术语中的命名目标)需要具有人类意义,并且我的答案在文档修订后的 3 个月内仍然有用(排除了“section.2.1.3”。我和任何其他用户都需要在阅读 pdf 时快速轻松地知道 url 是什么。这就是为什么有 tootip。否则命名目标太难用了,请注意,我对在 latex/pdf 内部使用超目标不感兴趣
答案1
如果您想要更多的符号锚点名称,您可以使用 KOMA-Script 的扩展可选参数功能(参见headings=optiontotocandhead
下面示例中的选项)并添加一个新键来生成超目标:
\documentclass[
headings=optiontotocandhead% Switch on extended optional arguments for headings
]{scrartcl}[2017/04/13]% Need at least KOMA-Script v3.23
\usepackage{hyperref}
\usepackage{lipsum}
\DefineFamilyKey[.section]{KOMAarg}{hypertarget}{%
\hypertarget{#1}{}%
}
\begin{document}
\section[hypertarget={First.Section.Name}]{First Section Name}
\lipsum[1]
\section[hypertarget={Example.Section}]{Example Section}
\lipsum[2]
\section[hypertarget={Final.Section}]{Final Section}
See \hyperlink{First.Section.Name}{the first section} or
\hyperlink{Example.Section}{the second section} or
\hyperlink{Final.Section}{this final section}.
\end{document}
要添加工具提示,您可以尝试以下操作:
\documentclass[
headings=optiontotocandhead% Switch on extended optional arguments for headings
]{scrartcl}[2017/04/13]% Need at least KOMA-Script v3.23
\usepackage{hyperref}
\usepackage{pdfcomment}
\usepackage{lipsum}
\FamilyStringKey[.section]{KOMAarg}{hypertarget}{\currenthypertarget}
\newcommand*{\currenthypertarget}{}
\makeatletter
\renewcommand*{\sectionlinesformat}[4]{%
\ifx\currenthypertarget\@empty
\def\currenthypertarget{#1.\csname the#1\endcsname}%
\fi
\hypertarget{\currenthypertarget}{}\@hangfrom{\hskip
#2#3}{\pdftooltip{#4}{\#\currenthypertarget}}%
\global\let\currenthypertarget\@empty
}
\makeatother
\begin{document}
\section[hypertarget={First.Section.Name}]{First Section Name}
\lipsum[1]
\section[hypertarget={Example.Section}]{Example Section}
\lipsum[2]
\section[hypertarget={Final.Section}]{Final Section}
See \hyperlink{First.Section.Name}{the first section} or
\hyperlink{Example.Section}{the second section} or
\hyperlink{Final.Section}{this final section}.
\end{document}
使用 Adobe Reader 的第二个示例,例如,
示例 PDF 是使用 制作的scrartcl 2017/04/13 v3.23
。