hyperref 和 pagenote:pagenotes 中不显示包含变音符号的网页链接

hyperref 和 pagenote:pagenotes 中不显示包含变音符号的网页链接

以下 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
...

相关内容