Obwohl ich hfuzz=…
Warnungen für (ausreichend kleine) überfüllte Felder ausblende, wird bei einem überfüllten Feld in einer URL in meiner Bibliographie immer noch eine Warnung angezeigt. Warum? Wie kann ich die Warnung entfernen?
Zur Veranschaulichung erzeugt das folgende Beispiel bei der überfüllten Zeile im Haupttext keine Warnung (was zeigt, dass dies hfuzz
der Fall ist), bei der (weniger) überfüllten Zeile in der Bibliografie hingegen schon.
\begin{filecontents}{example.bib}
@techreport{report,
author = {Unknown, U. and Unknown, U.},
institution = {Institution},
title = {Some title},
url = {https://www.example.com/some-very-long-url-with-much-text/and-a-second-part-that-is-overly-long-as-well-and-fills-the-line/},
year = {2015}
}
\end{filecontents}
\documentclass{article}
\usepackage{natbib}
\usepackage{hyperref}
\bibliographystyle{abbrvnat}
\hfuzz=4cm
\begin{document}
This url \url{http://www.example.com/is-overly-long-but-raises-no-warnings/is-overly-long-but-raises-no-warnings/is-overly-long-but-raises-no-warnings}
\citep{report}.
\bibliography{example}
\end{document}
Antwort1
Wenn Sie hinzufügen
\show\thebibliography
Du wirst sehen
> \thebibliography=\long macro:
#1->\bibsection \parindent \z@ \bibpreamble \bibfont \list {\@biblabel {\the \c
@NAT@ctr }}{\@bibsetup {#1}\global \c@NAT@ctr \z@ }\ifNAT@openbib \renewcommand
\newblock {\par }\else \renewcommand \newblock {\hskip .11em \@plus .33em \@mi
nus .07em}\fi \sloppy \clubpenalty 4000\widowpenalty 4000 \sfcode `\.\@m \let \
NAT@bibitem@first@sw \@firstoftwo \let \citeN \cite \let \shortcite \cite \let
\citeasnoun \cite .
l.18 \show\thebibliography
das stimmt, \sloppy
und zwar
\DeclareRobustCommand\sloppy{%
\tolerance 9999%
\emergencystretch 3em%
\hfuzz .5\p@
\vfuzz\hfuzz}
So \hfuzz
wird es innerhalb der Bibliographie auf .5pt zurückgesetzt. Sie können es neu definieren, \sloppy
um einen größeren hfuzz zu haben oder hinzuzufügen
\usepackage{xurl}