Seite 1 von 1

Urls trennen an _?

Verfasst: Do 5. Mär 2015, 18:40
von p91
Hi,

habe eine sehr lange url in meiner Bibliografie die ich gerne Umgebrochen haben würde.
So weit so gut, geht auch mit allen meinen Urls außer einer.
Die hat leider statt - oder / oder . zum trennen nur _

Habe also versucht meinen bisherigen Code dafür auf den _ zu erweitern.
\let\checkmark\undefined
\usepackage{dingbat}
\PassOptionsToPackage{hyphens}{url}
\PassOptionsToPackage{breaklinks}{hyperref}
\newcommand{\urllb}{\discretionary{}{}{}}
\renewcommand{\UrlBreaks}{}    % no standard breaking points
\renewcommand{\UrlBigBreaks}{}
\renewcommand{\UrlSpecials}{\do\.{\mathchar`\.\urllb}%
                            \do\/{\mathchar`\/\urllb}%
                            \do\@{\mathchar`\@\urllb}%
                            \do\\{\mathchar`\\\urllb}%
                            \do\-{\mathchar`\-\urllb}%
                            \do\#{\mathchar`\#\urllb}
                            \do\_{\mathchar`\_\urllb} %hier erweitert!
                            }% and so on
\usepackage[
    backend=biber,
    style=alphabetic, 
    sortlocale=en_US,
    %natbib=true,
    url=true, 
    doi=true,
    %maxalphanames=3,
    %maxbibnames=4,
    eprint=true
]{biblatex}
Das ganze kompiliert auch nur bricht es an dem Unterstrich einfach nicht um.
Und ich verstehe einfach nicht warum nicht.
Hat da einer einen Tipp?
euch einen schönen Abend,

p91

Verfasst: Do 5. Mär 2015, 18:53
von Johannes_B
Wichtige Hinweise gelesen? Da findest du einen Link zuZeilenumbrüchen in Bibliografielinks.

Verfasst: Fr 6. Mär 2015, 18:38
von p91
Hi,

die Hinweise hatte ich gesehen, da steht aber nicht der Link zu dem Problem mit dem Umbrechen von urls.

Trotzdem danke für den Link. Hatte das ganze aber schon vorher mal gesehen und ausprobiert. Ging leider aber auch nicht bzw. er hatte zwar umgebraochen aber dann halt
alle URLs an allen Möglichen und unmöglichen stellen.

Habe mich dann mal ran gesetzt und versucht ein Minimalbeispiel zusammen zustellen und oh wunder, es ging jedesmal und zeigte nicht den oben beschriebenen Fehler.
Hab jetzt aber ein "minimalbeispiel" um den Fehler zu zeigen.

Bibfile:
@article{aab2014Prorademiairshopolmea,
	author = {Aab, Alexander and Abreu, P and Aglietta, M and Ahlers, M and Ahn, EJ and Albuquerque, IFM and Allekotte, I and Allen, J and Allison, P and Almela, A and others},
	journal = {Physical Review D},
	number = {5},
	pages = {052002},
	publisher = {APS},
	title = {{Probing the radio emission from air showers with polarization measurements}},
	url = {http://arxiv.org/pdf/1402.3677},
	volume = {89},
	x-fetchedfrom = {Google Scholar},
	year = {2014}
}

@book{grupen2005Astphy,
	author = {Grupen, Claus},
	publisher = {Springer Science \& Business Media},
	title = {{Astroparticle physics}},
	url = {http://cds.cern.ch/record/840184/files/978-3-540-27670-8_BookBackMatter.pdf?version=1},
	year = {2005}
}
Eigentliches Latex:
\documentclass{scrreprt}
\usepackage[a4paper, left=3.5cm, top=2cm, bottom=3.5cm, right=1.7cm, includehead]{geometry}
\usepackage[bitstream-charter]{mathdesign} %noetig fuer fehler

\PassOptionsToPackage{hyphens}{url}
\PassOptionsToPackage{breaklinks}{hyperref}


\usepackage[
    style=alphabetic, %noetig fuer fehler
    url=true
]{biblatex}

\bibliography{source_test}
\begin{document}
\cite{aab2014Prorademiairshopolmea} \\ %noetig fuer fehler
\cite{grupen2005Astphy} \\
\newgeometry{top=2cm,bottom=2cm,right=2cm,left=3cm}  %noetig fuer fehler
\newpage
\printbibliography
\end{document}
Entfernt man eine Zeile die mit noetig fuer fehler gekenzeichnet ist wird wieder korrekt gebrochen.

Verfasst: Fr 6. Mär 2015, 20:41
von Johannes_B
Da ist halt weit und breit keine wirklich passende Trennstelle. In diesem einen konkreten Fall würde ich allerdings ganz anders rangehen.

\begin{filecontents}{\jobname.bib}
	@article{aab2014Prorademiairshopolmea,
		author = {Aab, Alexander and Abreu, P and Aglietta, M and Ahlers, M and Ahn, EJ and Albuquerque, IFM and Allekotte, I and Allen, J and Allison, P and Almela, A and others},
		journal = {Physical Review D},
		number = {5},
		pages = {052002},
		publisher = {APS},
		title = {{Probing the radio emission from air showers with polarization measurements}},
		url = {http://arxiv.org/pdf/1402.3677},
		volume = {89},
		x-fetchedfrom = {Google Scholar},
		year = {2014}
	}

	@book{grupen2005Astphy,
		author = {Grupen, Claus},
		publisher = {Springer Science \& Business Media},
		title = {{Astroparticle physics}},
		url = {http://cds.cern.ch/record/840184/},
		year = {2005}
	} 
\end{filecontents}

\documentclass{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[top=2cm,bottom=2cm,right=2cm,left=3cm]{geometry}
\usepackage[bitstream-charter]{mathdesign} %noetig fuer fehler

\PassOptionsToPackage{hyphens}{url}
\PassOptionsToPackage{breaklinks}{hyperref}


\usepackage[
	style=alphabetic, %noetig fuer fehler
	url=true
]{biblatex}


\usepackage{citeall}
\usepackage{hyperref}
\addbibresource{\jobname.bib}
\begin{document}
\citeall
\printbibliography
\end{document}

Verfasst: Fr 6. Mär 2015, 21:49
von p91
Erstmal Herzlichen Dank für den Tipp mit der Verkürzten Url.
Das hatte ich noch gar nicht gesehen. Hatte nur bis /Files/ runter geguckt und da bekommt man dann nur die verschiedenen Versionen angezeigt.

Was meinst du mit keiner guten Trennstelle?
Per Default trennt biblatex die Url doch auch an _ oder nicht?
Und das _ bietet sich hier ja total an.
Oder macht er das dann nicht weil die Zeile dann zu leer wäre?

Verfasst: Fr 6. Mär 2015, 22:02
von Johannes_B
Genau, die bibliographie wird auch im Blocksatz gesetzt, das sieht dann doof aus.

Aber mal ehrlich, ich finde ein Literaturverzeichnis kann auch im Flattersatz gesetzt werden.


Vergleich einfach mal:
\documentclass{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[top=2cm,bottom=2cm,right=2cm,left=3cm]{geometry}
\usepackage[bitstream-charter]{mathdesign}

\PassOptionsToPackage{hyphens}{url}
\PassOptionsToPackage{breaklinks}{hyperref}

\usepackage[
	style=alphabetic, %noetig fuer fehler
	url=true
]{biblatex}
%\renewcommand{\bibfont}{\raggedright}%%JB Hier ändern

\usepackage{citeall}
\usepackage{hyperref}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}
\begin{document}
\citeall
\printbibliography
\end{document}