URL - 换行符

URL - 换行符

我使用的是 luatatex 1.0.4,并且已经找到了一些解决 URL 问题的解决方案。不过,我有一些特殊情况,但还没有找到解决方案。我的示例代码如下:

\documentclass[a4paper,11pt]{article}
\usepackage{fontspec}
\usepackage[english, ngerman]{babel}
\usepackage{hyperref} 
\def\UrlBreaks{\do\/\do-\do\_\do\%} % for breaking long URLS additonally
\begin{document}

\href{http://google.com}{http://www.darinews.com/\%D8\%A7\%D8\%B2-\%D8\%B3\%D8\%B1\%DA\%AF\%DB\%8C\%D8\%B1\%DB\%8C-\%D9\%BE\%D8\%B1\%D9\%88\%D8\%A7\%D8\%B2-\%D9\%87\%D8\%A7\%DB\%8C-\%D8\%AE\%D8\%A7\%D8\%B1\%D8\%AC\%DB\%8C-\%D8\%A7\%D8\%B2-\%D9\%85\%DB\%8C\%D8\%AF\%D8\%A7\%D9\%86-\%D8\%A8\%DB\%8C\%D9\%86-\%D8\%A7/}

\end{document}

我知道这个样本看起来有些奇怪,但总体来说还是不错的。

我遇到的第一个问题是换行符不起作用。我知道我应该定义字符来断开长 URL。

  • 我尝试UrlBreaks对字符执行此操作%,但是没有效果。
  • 如果我使用的话,换行符可以正常工作\url,但我不知道如何以不同于链接的方式指定名称。
  • 我读到,url一旦使用 lualatex,该包就不再有用。因此我没有将其包含在内。

答案1

使用 \nolinkurl:

\documentclass[a4paper,11pt]{article}
\usepackage{fontspec}
\usepackage[english, ngerman]{babel}
\usepackage{hyperref}
\def\UrlBreaks{\do\/\do-\do\_\do\%} % for breaking long URLS additonally
\begin{document}


\href{http://google.com}{\nolinkurl{http://www.darinews.com/\%D8\%A7\%D8\%B2-\%D8\%B3\%D8\%B1\%DA\%AF\%DB\%8C\%D8\%B1\%DB\%8C-\%D9\%BE\%D8\%B1\%D9\%88\%D8\%A7\%D8\%B2-\%D9\%87\%D8\%A7\%DB\%8C-\%D8\%AE\%D8\%A7\%D8\%B1\%D8\%AC\%DB\%8C-\%D8\%A7\%D8\%B2-\%D9\%85\%DB\%8C\%D8\%AF\%D8\%A7\%D9\%86-\%D8\%A8\%DB\%8C\%D9\%86-\%D8\%A7/}}

\end{document}

答案2

有一个新的xurlTeX Live 2018 中引入了处理 URL 中换行符的包:

\documentclass{article}
\usepackage{hyperref}
\usepackage{xurl}
\urlstyle{same}  % don't use monospace font for urls

\begin{document}

\url{http://www.darinews.com/\%D8\%A7\%D8\%B2-\%D8\%B3\%D8\%B1\%DA\%AF\%DB\%8C\%D8\%B1\%DB\%8C-\%D9\%BE\%D8\%B1\%D9\%88\%D8\%A7\%D8\%B2-\%D9\%87\%D8\%A7\%DB\%8C-\%D8\%AE\%D8\%A7\%D8\%B1\%D8\%AC\%DB\%8C-\%D8\%A7\%D8\%B2-\%D9\%85\%DB\%8C\%D8\%AF\%D8\%A7\%D9\%86-\%D8\%A8\%DB\%8C\%D9\%86-\%D8\%A7/}

\href{http://www.darinews.com}{Darinews}

\end{document}

相关内容