![使用 ConTeXt 排版长 URL](https://linux22.com/image/357528/%E4%BD%BF%E7%94%A8%20ConTeXt%20%E6%8E%92%E7%89%88%E9%95%BF%20URL.png)
我正在尝试在 ConTeXt MKIV 中排版一个很长的 URL。当我使用时,URL 在生成的 PDF 中显示正确hyphenatedurl
,但超链接在两个方面是错误的。首先,PDF 中只有 URL 的第一行是超链接。其次,超链接目标被错误地设置为 URL 的第一行。
下面是一些对我来说会产生此问题的示例代码:
% !TEX TS-program = ConTeXt (LuaTeX)
\starttext
\hyphenatedurl{http://cocatalog.loc.gov/cgi-bin/Pwebrecon.cgi?Search_Arg=TX0008128881&Search_Code=REGS&PID=H2kE07My-dH7holsSiJLceSpl&SEQ=20170626171039&CNT=25&HIST=1}
\stoptext
在我的系统上,这将生成一个 PDF,其中包含分三行打印的 URL,换行符如下:
http://cocatalog.loc.gov/cgi-bin/Pwebrecon.cgi?Search_Arg=TX0008128881&Search
_Code=REGS&PID=H2kE07My-dH7holsSiJLceSpl&SEQ=20170626171039&CNT
=25&HIST=1
这三行中,只有第一行是可点击/交互的,并且其目标被错误地设置为http://cocatalog.loc.gov/cgi-bin/Pwebrecon.cgi?Search_Arg=TX0008128881&Search
,而不是完整的 URL。
我该如何正确设置超链接?或者,我该如何彻底关闭超链接?
答案1
实际上,我根本没有得到任何超链接,这正是我所期望的,因为\hyphenatedurl
只排版了 URL 而没有创建链接。即使我使用\goto{<text>}[url(<link>)]
它创建了链接,也不会起作用,因为交互没有打开。在我看来,你的 PDF 查看器的一些启发式方法正在尝试检测链接并将其转换为可点击的内容。然而,这在换行符上失败了。
不过,在 ConTeXt 中设置可点击链接非常容易。我还设置了一个空链接,style
因为我不喜欢粗体链接。请参阅花园进行进一步配置。
\setupinteraction[state=start,style=]
\define[1]\hyperlink{\goto{\hyphenatedurl{#1}}[url(#1)]}
\starttext
\hyperlink{http://cocatalog.loc.gov/cgi-bin/Pwebrecon.cgi?Search_Arg=TX0008128881&Search_Code=REGS&PID=H2kE07My-dH7holsSiJLceSpl&SEQ=20170626171039&CNT=25&HIST=1}
\stoptext