我正在使用 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。