Zeilenumbruch von URLs mit langen IDs

Schriftbild, Absätze und Auflistungen einstellen
Idracab
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Sa 20. Dez 2008, 17:33

Zeilenumbruch von URLs mit langen IDs

Beitrag von Idracab »

Hallo,

ich schreibe gerade mit LaTeX meine Diplomarbeit und habe Probleme mit dem Umbruch von URLs im Literaturverzeichnis. Für das Erzeugen des Verzeichnisses benutze ich den Bib-Style natdin, der die URL-Felder der BibTeX-Einträge mittels \url{...} umsetzt. Das Problem entsteht dadurch, dass einige meiner Quellen-URLs sehr lange eindeutige IDs enthalten, die nur aus Buchstaben bestehen, und daher in diesem Bereich keine Trennstellen besitzen:

Code: Alles auswählen

@MISC{EXAMPLE,
	author = {example},
	title = {example},
	year = {2008},
	url = {http://download.company.com/SMIDE/download.epd?context=61725C8F0C9A2DC31AD2DABE453F0C6EC1F8A5ACF75DD7DCC059F1BCD641C0925843B34F4F201D3368699B5E0B36059746A72EF7428AFD19},
	lastchecked = {18.12.2008}
}
Bisher habe ich versucht den \url{...} Befehl aus der dem Bib-Style zu entfernen und stattdessen die URLs mittels \href{url}{text} und manuellen Trennstellen zu setzen:

Code: Alles auswählen

@MISC{EXAMPLE,
	author = {example},
	title = {example},
	year = {2008},
	url = {\href{http://download.company.com/SMIDE/download.epd?context=61725C8F0C9A2DC31AD2DABE453F0C6EC1F8A5ACF75DD7DCC059F1BCD641C0925843B34F4F201D3368699B5E0B36059746A72EF7428AFD19}{http://""download.""company.""com/""SMIDE/""download.""epd?""context=""6""1""7""2""5""C""8""F""0""C""9""A""2""D""C""3""1""A""D""2""D""A""B""E""4""5""3""F""0""C""6""E""C""1""F""...}},
	lastchecked = {18.12.2008}
}
Eigentlich hatte ich geofft, dass LateX auf diese Weise sinnvolle Trennstellen findet und die URL innerhalb der ID sinnvoll ohne Trennstriche umbricht. Das klappt soweit auch grundsätzlich ganz gut, jedoch entstehen weiterhin zahlreiche overfull und underfull box Warnungen und der Blocksatz sieht dadurch noch nicht vernünftig aus...

Hat jemand eine Idee, wie man solche URLs vernünftig setzen könnte? Ich bin für jeden Hinweis dankbar!

Viele Grüße,
Idracab

EDIT: Ich hoffe ich habe das richtige Unterforum erwischt, weil es ja eigentlich kein Problem mit dem Literaturverzeichnis an sich ist...

Gast

Zeilenumbruch von URLs mit langen IDs

Beitrag von Gast »

tscha, wenn ich das richtig sehe bleibt nur grobes abschätzen und dann in die nähe des vermeindlichen Umbruches ein paar \allowbreak{} einstreuen.

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2641
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Re: Zeilenumbruch von URLs mit langen IDs

Beitrag von KOMA »

Idracab hat geschrieben:Hat jemand eine Idee, wie man solche URLs vernünftig setzen könnte? Ich bin für jeden Hinweis dankbar!
Dann gebe ich Dir den Hinweis, dass Deine Chancen auf eine gute Antwort erheblich steigen, wenn Du zukünftig ein vollständiges Minimalbeispiel lieferst.
Ein solches könnte beispielsweise so aussehen:

Code: Alles auswählen

\begin{filecontents*}{tmp.bib}
@PREAMBLE{
  "\csname g@addto@macro\endcsname\UrlBreaks{%
    \do0\do1\do2\do3\do4\do5\do6\do7\do8\do9}" }
@MISC{EXAMPLE, 
  author = {example}, 
  title = {example}, 
  year = {2008}, 
  url = {http://download.company.com/SMIDE/download.epd?context=61725C8F0C9A2DC31AD2DABE453F0C6EC1F8A5ACF75DD7DCC059F1BCD641C0925843B34F4F201D3368699B5E0B36059746A72EF7428AFD19}, 
  lastchecked = {18.12.2008} 
}
\end{filecontents*}

\documentclass{article}
\usepackage{url}
\bibliographystyle{alphadin}
\begin{document}
Test \cite{EXAMPLE}

\bibliography{tmp}
\end{document}
Theoretisch kann man das noch um Umbrucherlaubnis für Großbuchstaben erweitern.
Vernünftigen Blocksatz darf man sich dabei natürlich nicht erwarten. Das würde ja nur funktionieren, wenn die Zeilenbreite zufällig passen würde.

Grundsätzlich ist zu bedenken, dass solche URLs in gedruckten Dokumenten geradezu unverschämt sind, da niemand die abtippen will und kaum jemand die beim ersten Versuch fehlerfrei abtippen kann. Man sollte ggf. darüber nachdenken, eine tiny-URL dafür anzulegen.

Idracab
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Sa 20. Dez 2008, 17:33

Beitrag von Idracab »

Danke für die Info. Werde es nächstes mal direkt mit einem Minimalbeispiel versuchen...

Das Erweitern von \UrlBreaks könnte leider Nebeneffekte haben, da ich auch einige kürzere URLs mit Zahlen im Literaturverzeichnis habe, die aber weiterhin nach den normalen Regeln von \url umgebrochen werden sollten.

An eine Tiny-URL hatte ich auch schon aus den von dir genannten Gründen gedacht. Da ist für mich aber leider die Frage, ob das mein Prof als korrektes Zitieren ansieht. Müsste ich daher erst mal abklären...

Für die beiden konkreten Einträge, bei denen ich das beschriebene Problem hatte, habe ich inzwischen eine funktionierenden Workaround gefunden. Im Prinzip funktioniert es genau wie in meinem ersten Post skizziert. Die Warnungen habe ich mittels des \textls[]{} Befehls aus dem microtype Pakets und Suchen eines passenden Wertes wegbekommen:

Code: Alles auswählen

@MISC{EXAMPLE,
   author = {example},
   title = {example},
   year = {2008},
   url = {\href{http://download.company.com/SMIDE/download.epd?context=61725C8F0C9A2DC31AD2DABE453F0C6EC1F8A5ACF75DD7DCC059F1BCD641C0925843B34F4F201D3368699B5E0B36059746A72EF7428AFD19}{\textls[28]{http://""download.""company.""com/""SMIDE/""download.""epd?""context=""6""1""7""2""5""C""8""F""0""C""9""A""2""D""C""3""1""A""D""2""D""A""B""E""4""5""3""F""0""C""6""E""C""1""F""...}}},
   lastchecked = {18.12.2008}
}
Die Lösung ist aber von recht vielen Faktoren (Seitenbreite, Texte in author und title...) abhängig. Schon bei sehr kleinen Änderungen muss unter Umständen wieder ein neuer Wert für den Parameter von \textls gesucht werden.
Wollte das eigentlich nochmal an einem kompletten Minimalbeispiel demonstrieren, aber habe dabei gemerkt, dass nicht immer ein passender Parameter-Wert gefunden werden kann. Wenn jemand trotzdem Interesse an dieser Lösung hat, versuche ich gerne nochmal ein Beispiel zu konstruieren bei dem es funktioniert.

Bin daher weiterhin an einer allgemeingültigeren Lösung interessiert...

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2641
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag von KOMA »

Eine goldene Regel der Typografie besagt: Blocksatz darf niemals durch Sperrung erreicht werden. Es ist IMO besser, sich vom Blocksatz zu verabschieden, als ihn dadurch zu erzwingend, dass man zwischen Buchstaben statt zwischen Wörtern Abstand einfügt. Übrigens halte ich es oftmals für vorteilhaft, das Literaturverzeichnis nicht im Blocksatz zu setzen. Ich habe auch im KOMA-Script-Buch darauf verzichtet.

Jan Tschichold beschäftigt sich übrigens in gleich drei seiner 14 Hauptregeln der Typografie (beispielsweise in Erfreuliche Drucksachen durch gute Typografie) mit dem Thema Sperren, so wichtig ist es ihm.

Antworten