我使用了biblatex
和hyperref
。如果我\href{<url>}{<name>}
在 URL 包含 的地方输入#
,我会得到想要的结果,但如果我输入\cite[\href{<url>}{<name>}]{<label>}
(再次使用#
⊂ <url>
),我会得到一个错误。发生了什么?这是一个 MWE:
\usepackage{filecontents}
\usepackage{hyperref}
\usepackage[style=alphabetic,sorting=nty]{biblatex}
\begin{filecontents}{bibliography.bib}
@book{qui,
author = {Cervantes, Miguel de},
title = {Don Quijote de la Mancha},
publisher = {Ediciones Bruguera},
year = {2001}
}
\end{filecontents}
\addbibresource{bibliography.bib}
\begin{document}
\cite[\href{https://es.wikipedia.org/wiki/Don_Quijote_de_la_Mancha#El_lugar_de_La_Mancha}{wiki}]{qui}
\printbibliography
\end{document}
答案1
好的,如果在 url\
之前添加,一切就都正常了,就像 一样。#
\cite[\href{https://es.wikipedia.org/wiki/Don_Quijote_de_la_Mancha\#El_lugar_de_La_Mancha}{wiki}]{qui}
答案2
我认为你最好采取一种不同于你自己的答案:(a)url
在书目条目内提供一个字段,(b)加载xurl
包以允许在长 URL 字符串中的任意点进行换行,以及(c)使用普通\cite
指令,即一个没有包含指令的可选参数\href
。这样,您就不必担心必须转义各种 TeX 特殊字符,例如#
。
显然,您可以自由地选择与citecolor
下面urlcolor
提供的示例代码中不同的颜色。
\documentclass{article}
\begin{filecontents}[overwrite]{bibliography.bib}
@book{qui,
author = {Miguel de Cervantes},
title = {Don Quijote de la Mancha},
publisher = {Ediciones Bruguera},
year = {2001},
url = {https://es.wikipedia.org/wiki/Don_Quijote_de_la_Mancha#El_lugar_de_La_Mancha}
}
\end{filecontents}
\usepackage[T1]{fontenc}
\usepackage{xurl}
\usepackage[colorlinks,citecolor=red,urlcolor=blue]{hyperref}
\usepackage[style=alphabetic,sorting=nty]{biblatex}
\addbibresource{bibliography.bib}
\begin{document}
\noindent
\cite{qui}
\printbibliography
\end{document}