\def\UrlBreaks wird ignoriert

Erstellung eines Literaturverzeichnisses mit BibTeX, Biber, BibLaTeX und Co.


Tom
Forum-Anfänger
Forum-Anfänger
Beiträge: 12
Registriert: Fr 8. Feb 2013, 22:10

\def\UrlBreaks wird ignoriert

Beitrag von Tom »

Hallo Latexfreunde,

ich habe ein kleines Problem mit überlangen Urls im Literaturverzeichnis. Es findet standardmäßig nur ein Zeilenumbruch an Sonderzeichen wie "/", "%", "." etc. statt. Nun hab ich in einem Forum etwas gefunden womit man Urls auch an Buchstaben umbrechen lassen kann, nämlich den \def\UrlBreaks-Befehl. Seltsamerweise wird der bei mir aber ignoriert, er will einfach Immer nur an Sonderzeichen umbrechen.
Könnt ihr mir helfen?
Hier mein Minimalbeispiel:
\documentclass[12pt,a4paper]{article}

\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[babel, german=quotes]{csquotes}
\usepackage[backend=biber]{biblatex}

\usepackage{url} 
\def\UrlBreaks{\do\a\do\b\do\c\do\d\do\e\do\f\do\g\do\h\do\i\do\j\do\k\do\l
\do\m\do\n\do\o\do\p\do\q\do\r\do\s\do\t\do\u\do\v\do\w\do\x\do\y\do\z\do\0
\do\1\do\2\do\3\do\4\do\5\do\6\do\7\do\8\do\9\do\-\do\_}
\urlstyle{same}
 
\usepackage[ 
		breaklinks=true,
    colorlinks,         
    linkcolor=black,  
    filecolor=black,    
    citecolor=black,   
		urlcolor=black		
]{hyperref}

\addbibresource{Literatur2.bib}

\begin{document}
\cite{Beispiel}
\printbibliography
\end{document}
Meine bib-Datei ist:
@misc{Beispiel,
 author = {Beispiel},
 title = {Beispiel},
 url = {http://www.hiiiiiiiiiiiiiiiiiiiiiiiiiiiilfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee.de},
 urldate = {2013-02-02}
}

Vielen Dank schon mal im Voraus!

Lieber Gruß,

Tom

Tom
Forum-Anfänger
Forum-Anfänger
Beiträge: 12
Registriert: Fr 8. Feb 2013, 22:10

Beitrag von Tom »

So, nachdem mir keiner helfen konnte, habe ich viel nachgeforscht und tatsächlich des Rätsels Lösung gefunden.
\documentclass[12pt,a4paper]{article}

\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[babel, german=quotes]{csquotes}
\usepackage[backend=biber]{biblatex}
\setcounter{biburlnumpenalty}{100}
\setcounter{biburlucpenalty}{100}
\setcounter{biburllcpenalty}{100}

\usepackage[ 
		breaklinks=true,
    colorlinks,         
    linkcolor=black,  
    filecolor=black,    
    citecolor=black,   
		urlcolor=black		
]{hyperref}

\PassOptionsToPackage{hyphens}{url}

\addbibresource{Literatur2.bib}

\begin{document}
 

\cite{Beispiel}


\printbibliography 
\end{document}
Mit dem \setcounter-Befehl macht er auf der Suche nach dem optimalen Umbruch bei URLs mehrere Schleifen durch und erlaubt nach Zahlen, Klein- und Großbuchstaben einen Umbruch. Den ewig langen \UrlBreaks-Befehl kann man sich dabei sparen.
Ich hoffe ich konnte damit auch anderen helfen!

Viele Grüße,

Tom

Besserwisser

Beitrag von Besserwisser »

\PassOptionsToPackage{…}{url} nach dem Laden von url durch biblatex oder hyperref ist sinnlos. Wenn man die Option an das Paket schicken möchte, dann bevor es geladen wurde. Man kann das Paket auch einfach vor dem Laden von biblatex und hyperref selbst mit anderen Optionen laden: Die Option hyphens braucht man aber eigentlich schon deshalb nicht selbst zu setzen, weil biblatex AFAIK bereits dafür sorgt, dass auch an Bindestrichen getrennt werden darf:
\begin{filecontents}{\jobname.bib}
@misc{Beispiel,
  author={Besipiel},
  title={Beispiel},
  url={http://www.das-ist-eine-url-die-wegen-der-vielen-trennsrichte-normalerweise-ewig-nicht-umbrochen-werden-kann.invalid},
  urldate={2013-06-21},
}
\end{filecontents}
\documentclass[12pt,a4paper]{article}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[backend=biber]{biblatex}
 
\usepackage{hyperref}

\addbibresource{\jobname.bib}

\begin{document}
\nocite{Beispiel}
\printbibliography
\end{document}
funktioniert bei mir bereits bestens.

Antworten