如何在 URL 中插入不可见的换行符?

如何在 URL 中插入不可见的换行符?

我正在使用 biblatex 并引用 github 上的提交,如下所示:

http://github.com/torvalds/linux/commit/693d92a1bbc9e42681c42ed190bd42b636ca876f

biblatex 条目如下所示,

@online{Torvalds11,
  author = {Linus Torvalds},
  title = {Linux Makefile: Commit 693d92a},
  url = {http://github.com/torvalds/linux/commit/693d92a1bbc9e42681c42ed190bd42b636ca876f}
}

结果如下所示。

参赛作品截图

UI 尝试插入空格字符,但没有成功。如何强制 latex 在行末断开该 url?

梅威瑟:

\documentclass{report}
 \usepackage[english]{babel}
 \usepackage{lipsum}
 \usepackage{biblatex}
  \bibliography{mwe}
 \usepackage[babel]{csquotes}
 \usepackage{hyperref}

 \begin{document}
  \lipsum[100]\cite{Torvalds11}
  \printbibliography
 \end{document}

我找到了这个:如何处理包含长 URL 的参考书目项目? 但建议的答案与我的文档不兼容,因为我hyperref已经在使用包了,而且它应该自动在行末断开 URL。我猜这个 URL 是一个特殊的问题。

答案1

我会采取一种解决方法并使用 URL 缩短器来缩短此 URL [1],因为无论如何都不会有人输入此 URL......

[1] 甚至可能是 github 自己的:https://github.com/blog/985-git-io-github-url-shortener

答案2

biblatex软件包有一个功能:

\begin{filecontents*}{\jobname.bib}
@online{Torvalds11,
  author = {Linus Torvalds},
  title = {Linux Makefile: Commit 693d92a},
  url = {http://github.com/torvalds/linux/commit/693d92a1bbc9e42681c42ed190bd42b636ca876f}
}
\end{filecontents*}
\documentclass{report}
\usepackage[english]{babel}
\usepackage{lipsum}
\usepackage{biblatex}

\setcounter{biburlnumpenalty}{9000}
\setcounter{biburlucpenalty}{9000}
\setcounter{biburllcpenalty}{9000}

\bibliography{\jobname}

\usepackage[babel]{csquotes}
\usepackage{hyperref}

\begin{document}
\lipsum[100]\cite{Torvalds11}
\printbibliography
\end{document}

然而,这会影响全部URL。

相关内容