![hyperref 和 pagenote:pagenotes 中不显示包含变音符号的网页链接](https://linux22.com/image/463305/hyperref%20%E5%92%8C%20pagenote%EF%BC%9Apagenotes%20%E4%B8%AD%E4%B8%8D%E6%98%BE%E7%A4%BA%E5%8C%85%E5%90%AB%E5%8F%98%E9%9F%B3%E7%AC%A6%E5%8F%B7%E7%9A%84%E7%BD%91%E9%A1%B5%E9%93%BE%E6%8E%A5.png)
以下 MWE 显示了问题:带有德语变音符号 (ä ü ö ß) 的互联网链接在 内使用时会给出错误消息\pagenote{}
。在正文中使用\href{}{}
或\url{}
不会不是使用此类互联网链接会导致错误。
带有包含德语变音符号的 URL(href 和 url)的 pagenote 链接会导致错误:
扫描使用 \noteentry 时文件结束,并且在运行 pdflatex 时不会在 pdf 文件中显示为 pagenotes 中的链接。
\documentclass[11pt,a4paper]{report}
\usepackage{ebgaramond-maths}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{hyperref}
\usepackage[continuous,page]{pagenote}
\makepagenote
\begin{document}
\href{https://de.wikipedia.org/wiki}{A link without german Umlaute ü ö ä ß -- in the ordinary text body}
\href{https://de.wikipedia.org/wiki/The_Beatles#Fr%C3%BChe_Jahre_(1956%E2%80%931960)}{A link including german Umlaute ä ö ü ß -- in the ordinary text body}
A pagenote with an URL (href command) without german Umlaute ä ö ü ß:\pagenote{\href{https://de.wikipedia.org/wiki}{A link without german Umlaute ü ö ä ß -- in the pagenote}}
A pagenote with an URL (href command) including german Umlaute ä ö ü ß :\pagenote{\href{https://de.wikipedia.org/wiki/The_Beatles#Fr%C3%BChe_Jahre_(1956%E2%80%931960)}{A href link including german Umlaute ä ö ü ß -- in the pagenote}}
A pagenote with an URL (url command) including german Umlaute ä ö ü ß :\pagenote{\url{https://de.wikipedia.org/wiki/The_Beatles#Fr%C3%BChe_Jahre_(1956%E2%80%931960)} A url ink including german Umlaute ä ü ö ß -- in the pagenote}
\printnotes
\end{document}
目前,此 MWE 仅显示第一个页面注释及其相应的链接。第二和第三个页面注释链接将被忽略,并出现上述错误消息,且不会显示在页面注释中。
答案1
Ulrike Fischer 在评论中给出了答案:
在 URL 地址中使用\#
和,而不是单独使用和。\%
#
%
其次,我发现 tex4ebook 在使用这个解决方案时存在问题,它需要一个“纯”url 地址。因此我使用了\urldef{\myurl}\url{Some-complete-and-plain-url-address}
,它在 中有描述,url package
并由 所使用hyperref package
。它只解决了部分问题。
事实证明,在ebgaramond font package
运行 tex4ebook 时出现了问题。这迫使我使用另一个字体包,我将其集成到我的字体包中,preamble
如下所示:
...
\ifdefined\HCode
\usepackage{Somefontpackage}% which is loaded when tex4ebook is running
\else
\usepackage{Someotherfontpackage}% which is loaded when pdflatex is running
\fi
...