Überlaufende URL

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Überlaufende URL

von Bebbi » Di 16. Okt 2018, 00:26

Hallo,

danke für die Erläuterungen. Ich habe damit nun ein wenig gearbeitet.

Im Literaturverzeichnis wählte ich dann, dass ich alle Quelle in eine Umgebung (hoffe, dass ist der Richtige Ausdruck) packte:

{
{\sloppy

…
}
Wenn dann URL manuell getrennt wurden, habe ich entsprechende Stellen in
 \mbox
gepackt, und damit die unerwünschte Trennung unterdrückt. Alles andere war zu aufwendig und problembehaftet. Im Fließtext habe ich das nicht so gemacht.

Da macht [d]LaTeX[/d] doch deutlich mehr Arbeit als Textverarbeitung ...

Grüße

Bebbi

von Gast » Mo 27. Aug 2018, 08:01

Bebbi hat geschrieben:Wenn die URL in den Text soll, gibt es drei Möglichkeiten, wenn es Probleme gibt. Sie sind nicht kombinierbar.
Die letzte Methode ist mit den ersten beiden im selben Dokument nutzbar, aber sie profitiert nicht von den ersten beiden Anpassungen der Trennstellen in der URL, da sie nur manuelle Trennungen zulässt (das ist meiner Meinung nach auch sinnvoll, wenn Du manuell umbrechen willst, ist es am besten, wenn Dir dabei nicht auch noch dutzende automatische Trennstellen zuvorkommen möchten).
Die vorgeschlagene Nutzung
{\texttt\manualurlbreak{https://www.landesdatenbank.nrw.de}{https://www.lan\.des\:daten\.bank.nrw.de}}
sollte unnötig sein, da der Befehl mit \UrlFont bereits die global eingestellte Schriftart der URLs übernimmt.

Du kannst \UrlBreaks auch lokal für nur eine bestimmte URL umdefinieren. Diese Methode ist aber nicht so akkurat wie vollständige manuelle Angabe der möglichen Trennstellen. Denn in \UrlBreaks gibst Du an, nach welchen Zeichen umgebrochen werden darf. Wenn Du mehrere es in Deiner URL hast, dann darf man nach allen umbrechen, obwohl der Umbruch möglicherweise nur nach einem bestimmten e wünschenswert ist.
\documentclass[ngerman]
              {scrbook}

\usepackage{babel}

\usepackage{scrlayer-scrpage}
\KOMAoptions{headsepline=0.8pt}

\usepackage{hyperref}

\newcommand*{\manualurlbreak}[2]{%
  \href{#1}{%
    \def\.{\penalty200 }%
    \def\:{\penalty100 }%
    \UrlFont
    \language\csname l@nohyphenation\endcsname
    #2}}


\begin{document}
\textsl{Gemäß der amtlichen Statistik des Landes Nordrhein-Westfahlen (\manualurlbreak{https://www.landesdatenbank.nrw.de}{https://\:www.\:lan\.des\:daten\.bank.\:nrw.\:de}) war am 31.\,12.\,2016 Ort I XXX,XX und Ort II YYY,YY Quadratkilometer groß.}

\begingroup
\def\UrlBreaks{\do\/\do\-\do\.\do\e}
\textsl{Gemäß der amtlichen Statistik des Landes Nordrhein-Westfalen (\url{https://www.landesdatenbank.nrw.de}) war am 31.\,12.\,2016 Ort 1 XXX,XX und Ort II YYY,YY Quadratkilometer groß.}
\endgroup

\textsl{Gemäß der amtlichen Statistik des Landes Nordrhein-Westfalen (\url{https://www.landesdatenbank.nrw.de}) war am 31.\,12.\,2016 Ort 1 XXX,XX und Ort II YYY,YY Quadratkilometer groß.}

\end{document}
xurl fügt einfach alle Buchstaben und Zahlen zu \UrlBreaks hinzu, das passiert beim Laden des Pakets ist also in der Tat global.

von Bebbi » Mo 27. Aug 2018, 01:46

Hallo,

ich habe in den letzten 2 Wochen alles mögliche geupdatet. Offensichtlich war ich dabei wohl nicht erfolgreich. Nun klappt es mit xurl.

Ich fasse für mich zusammen.

Wenn die URL in den Text soll, gibt es drei Möglichkeiten, wenn es Probleme gibt. Sie sind nicht kombinierbar.

a)
\usepackage{hyperref}
\def\UrlBreaks{\do\/\do\-\do\.\do\s}
Wirkt sich auf alle URL aus, daher macht dass nur Sinn, wenn man nur eine oder wenige URL hat, ansonsten verschlimmbessert man das Dokument.

b)
\usepackage{xurl}
basiert auf \UrlBreaks

Trennt halt einfach überall. Macht vielleicht Sinn, wenn man lauter nicht sprechende URL hat, z. B. bei landen Datenbank-URL. Wirkt sich auf alle URL im Dokument aus.

c)
\usepackage{hyperref}

\newcommand*{\manualurlbreak}[2]{%
\href{#1}{%
\def\.{\penalty200}%
\def\:{\penalty100}%
\UrlFont
\language\csname l@nohyphenation\endcsname
#2}}

im Text dann
{\texttt\manualurlbreak{https://www.landesdatenbank.nrw.de}{https://www.lan\.des\:daten\.bank.nrw.de}}

\: markiert bevorzugte, \. akzeptable Trennstellen - alle möglichen Trennstellen angeben

Das kann man gezielt für einzelne URL anwenden, bei denen die Standarttrennung nicht funktioniert.

Hier:
\documentclass[ngerman]
              {scrbook}

\usepackage{babel}

\usepackage{scrlayer-scrpage}
\KOMAoptions{headsepline=0.8pt}

\usepackage{hyperref}

\newcommand*{\manualurlbreak}[2]{% 
  \href{#1}{% 
    \def\.{\penalty200}% 
    \def\:{\penalty100}% 
    \UrlFont 
    \language\csname l@nohyphenation\endcsname 
    #2}} 

\begin{document}

\textsl{Gemäß der amtlichen Statistik des Landes Nordrhein-Westfalen (\manualurlbreak{https://www.landesdatenbank.nrw.de}{\texttt{https://\:www.\:lan\.des\:daten\.bank.\:nrw.\.de}}) war am 31.\,12.\,2016 Ort 1 XXX,XX und Ort II YYY,YY Quadratkilometer groß.}

\end{document}
Danke für eure/deine Geduld (Warum antwortet ihr eigentlich lieber anonym? So kann man ja nie mitbekommen, wer einem so hilft.)

Grüße

Bebbi

von Gast » So 26. Aug 2018, 23:07

Das Paket xurl ist sowohl in MikTeX (https://miktex.org/packages/xurl) als auch TeX live vorhanden. Das sollte etwa seit Ende Dezember letzten Jahres so sein (https://ctan.org/ctan-ann/id/mailman.3930.1513891856.5216.ctan-ann@ctan.org).

Wenn Du das Paket also in Deinem MikTeX Package Manager nicht finden kannst, deutet das darauf hin, dass Du zumindest seit Ende Dezember kein Update mehr gemacht hast und auch die Pakedatenbank nicht mehr aktualisiert hast. Ein Update wäre also notwendig, um xurl vernünftig zu installieren. Wie immer gilt natürlich, dass ein Update kurz vor einer Deadline gut überlegt werden sollte, kleinere oder größere Problem sind gerade bei großen Aktualisierungswellen nicht ganz ausgeschlossen.

Nun ist xurl kein sehr komplexes Paket, sodass man in diese Fall durchaus auch die .sty von https://ctan.org/tex-archive/macros/lat ... xurl/latex herunterladen und die Datei dann im Dokumentenverzeichnis oder in einem anderen Ordner, in dem LaTeX die Datei finden kann https://texfaq.org/FAQ-inst-wlcf, platzieren könnte. Im schlimmsten Fall kann man den Code auch einfach in die Präambel kopieren (der Code macht auch nicht viel Anderes als beispielsweise https://tex.stackexchange.com/q/102673/35864). Ich empfehle das ausgesprochen nicht und möchte dringend appellieren, die von der TeX-Distribution bereitgestellten Programme zur Installation und Aktualisierung von Paketen zu nutzen.

Ja xurl würde sich auf alle URLs auswirken. Wenn Du die \UrlBreaks selbst manipulierst, kannst Du das natürlich versuchen, lokal zu halten.

Bei dem \href-Vorschlag müsste man schon etwas mehr tun und auch manuell eingreifen.
Beispielsweise
\documentclass[ngerman]
              {scrbook}

\usepackage{babel}

\usepackage{scrlayer-scrpage}
\KOMAoptions{headsepline=0.8pt}

\usepackage{hyperref}

\newcommand*{\manualurlbreak}[2]{%
  \href{#1}{%
    \def\.{\penalty200}%
    \def\:{\penalty100}%
    \UrlFont
    \language\csname l@nohyphenation\endcsname
    #2}}

\begin{document}
\textsl{Gemäß der amtlichen Statistik des Landes Nordrhein-Westfahlen (\manualurlbreak{https://www.landesdatenbank.nrw.de}{https://www.lan\.des\:daten\.bank.nrw.de}) war am 31.\,12.\,2016 Ort I XXX,XX und Ort II YYY,YY Quadratkilometer groß.}
\end{document}
\: markiert bevorzugte, \. akzeptable Trennstellen. Da keine anderen Trennungen betrachtet werden, müssten hier auch sinnvolle Trennungen an Zeichensetzung selbst angegeben werden, das habe ich jetzt unterlassen. Das kann man natürlich beliebig komplizierter machen und erweitern.

Bei \UrlBreaks (darauf basiert xurl) kann man nur einzelne Zeichen angeben, hinter denen eine Trennung erlaubt ist. Digramme oder Cluster gehen nicht.

von Bebbi » So 26. Aug 2018, 20:58

Anonymous hat geschrieben: Prinzipiell wäre es möglich, die URL auch mitten im "Wort" umzubrechen, also irgendwo in "landesdatenbank", da in URLs aber die Trennmuster der Sprachen nicht gelten, kannst Du nicht damit rechnen, dass die Trennung nach sprachlich korrekten Trennungsregeln erfolgt. Das Paket [d]xurl[/d] zum Beispiel erlaubt Trennungen überall und würde in dem Beispiel hier
https://www.la
ndesdatenbank.nrw.de
trennen.
Aber das wirkt doch dann auf alle URL?
Anonymous hat geschrieben: Wenn Du im Text nur einen Kurzverweis gibst und die URL in ein Quellenverzeichnis aufnimmst, dann könnte man dort eventuell durch Umstellung von Blocksatz auf linksbündigen Textsatz Probleme mit Umbrüchen in der URL verhindern. In solchen Verzeichnissen ist es auch akzeptabler notfalls größere Lücken im Blocksatz zuzulassen, daher gibt es dort ein paar Möglichkeiten, die ich im Fließtext nicht unbedingt probieren wollte. https://tex.stackexchange.com/q/442308/35864
Mir noch zu hoch. :-(

Auch was es mit \burl auf sich hat, checke ich gerade nicht
s. https://tex.stackexchange.com/questions ... in-an-item
Anonymous hat geschrieben: Gibt es einen Grund, warum Du \textsl benutzt? Was ist mit \emph oder \textit?
Es sind ganze Absätze, die als Kommentar halt schräg gesetzt werden zur Unterscheidung von den "normalen" Absätzen und keine Hervorhebungen im Text.

von Bebbi » So 26. Aug 2018, 20:15

Anonymous hat geschrieben:Wie gesagt, mit [d]xurl[/d] kann überall umgebrochen werden, aber das wird bei URLs mit echten Wörtern wohl meist zu unschönen Trennungen führen.
Da bin ich gerade, aber es klappt nicht. Paket installiert sich nicht.
! LaTeX Error: File `xurl.sty' not found.Type X to quit or <RETURN> to proceed,or enter new name. (Default extension: sty)Enter file name:! Emergency stop.<read > \usepackage
Auch im MikTeX Paket Manager finde ich das Paket nicht. Da bin ich jetzt überfragt.
Anonymous hat geschrieben: Wenn man da manuell was basteln möchte, muss man es wohl mit \href{<URL>}{<Text>} probieren, denn wenn man im Argument von \url herumpfuscht ändert das meist das Linkziel.
Mit
\textsl{Gemäß der amtlichen Statistik des Landes Nordrhein-Westfalen (\href{https://www.landesdatenbank.nrw.de}{\texttt{https://www.landesdatenbank.nrw.de}}) war am 31.\,12.\,2016 Ort 1 XXX,XX und Ort II YYY,YY Quadratkilometer groß.}
wird die komplette URL in eine Zeile gesetzt.
\documentclass[ngerman]
              {scrbook}

\usepackage{babel}

\usepackage{scrlayer-scrpage}
\KOMAoptions{headsepline=0.8pt}

\usepackage{hyperref}

\begin{document}

\textsl{Gemäß der amtlichen Statistik des Landes Nordrhein-Westfalen (\href{https://www.landesdatenbank.nrw.de}{\texttt{https://www.landesdatenbank.nrw.de}}) war am 31.\,12.\,2016 Ort 1 XXX,XX und Ort II YYY,YY Quadratkilometer groß.}

\end{document}
Dann gibt es ja noch \UrlBreaks (Year, wiedergefunden). Aber wird sich wohl auf alle URL auswirken, funktioniert hier aber grundsätzlich. Meine Idee war, da eine länger Sequenz zu definieren wie"en" oder "daten", aber das geht nicht - auch nicht, wenn man's in geschweifte Klammern setzt.
\documentclass[ngerman]
              {scrbook}

\usepackage{babel}

\usepackage{scrlayer-scrpage}
\KOMAoptions{headsepline=0.8pt}

%\usepackage{xurl}
\usepackage{hyperref}
\def\UrlBreaks{\do\s\do\n}

\begin{document}

\textsl{Gemäß der amtlichen Statistik des Landes Nordrhein-Westfalen (\url{https://www.landesdatenbank.nrw.de}) war am 31.\,12.\,2016 Ort 1 XXX,XX und Ort II YYY,YY Quadratkilometer groß.}

\end{document}

von Gast » So 26. Aug 2018, 19:10

Wie gesagt, mit [d]xurl[/d] kann überall umgebrochen werden, aber das wird bei URLs mit echten Wörtern wohl meist zu unschönen Trennungen führen.

Wenn man da manuell was basteln möchte, muss man es wohl mit \href{<URL>}{<Text>} probieren, denn wenn man im Argument von \url herumpfuscht ändert das meist das Linkziel.

von Bebbi » So 26. Aug 2018, 18:57

Hallo,

ihr müsst mich nicht davon überzeugen, wie es im Regelfall sinnvoll ist. Aber manchmal macht eine URL im Text wirklich Sinn. "Wie die Seite https://golatex.de berichtet, …" "Herr X betreibt die Seite https://golatex.de. usw usf. In dem Bsp. aus dem Minimal-Beispiel habe ich die Rohfassung geändert und auf die URL im Text verzichtet. Aber ich wollte das Problem verstehen und lernen wie man damit umgeht. Bei Word gäbe es einen bedingten Nullbreitenwechsel den man nach landes und daten setzen könnte - dabei sollte natürlich die Verlinkung nicht verloren gehen. Oder dass man erlaubt, dass - wenn es nicht anders geht - beliebig umgebrochen werden darf.

Irgendwo hatte ich mal gelesen, dass man auch Buchstaben definieren kann, machen denen umgebrochen werden darf in einer URL; aber ich weiß nicht mehr wo.

Grüße

Bebbi

von Gast » So 26. Aug 2018, 18:19

Anonymous hat geschrieben:Ich bin noch immer der Meinung, dass es nicht unbedingt sinnvoll ist, im Fließtext eine URL zu haben. Sie nimmt, besonders bei großer Länge, nur unnötig Platz weg und unterbricht den Lesefluss. Für elektronische Leser kann sie durch ein Link ersetzte werden, für Papierleser ist eine Fußnote weniger ablenkend und auch nicht komfortabel. Im Literaturverzeichnis sieht es anders aus, da habe ich ja oben schon einen Link dagelassen und ein paar Worte gesagt.
und früher:
Anonymous hat geschrieben:Daher würde ich es für sinnvoll halten, die URL entweder in ein Quellen- oder Literaturverzeichnis zu verbannen
Bei mehr als einer Quellenangabe halte ich ein Quellenverzeichnis ebenfalls für die sauberste und für den Leser sinnvollste Lösung. Dabei kann man dann auch sehr schön weitere Angaben wie ein Abrufdatum hinzufügen. Für Onlinequellen ist ein solches eigentlich obligatorisch. Das Quellenverzeichnis kann man auch sehr gut im Flattersatz setzen, so dass der Umbruch langer URLs an wirklich passenden Stellen kein Problem darstellt.

Bei nur einer Quelle würde ich ebenfalls zu einer Fußnote greifen, wenn das ganze gedruckt werden soll, sonst würde ich einfach nur den Text selbst verlinken (siehe dazu die [d]hyperref[/d]-Anleitung).

von Gast » So 26. Aug 2018, 18:08

Auch nach Betrachtung des Bildes sollte der größte Teil meines Beitrages von 08:33 noch zutreffen.

Das Umschreiben einer Passage würde ich nicht als Frickellösung bezeichnen, es ist eine legitime Methode, um technische Beschränkungen zu umgehen. So kann es immer mal passieren, dass in einem bestimmten Absatz keine guten Trennstellen zu finden sind, da muss dann entweder manuell mit irgendwelchen Emergency-Parametern herumgespielt werden oder es wird der Text umgeschrieben. Mir passiert das häufiger mal mit Inline-Mathematik, die schwer umzubrechen und vor allem schwer schön umzubrechen ist, da versuche ich dann immer eine andere Formulierung. Natürlich ist es nicht schön, wenn man Dinge umformulieren muss und insbesondere ist es schwierig, den richtigen Zeitpunkt zu finden, an dem man weiß, dass man etwas anders formulieren soll. Schließlich kann sich ja mit späteren Layout-Änderungen der Umbruch wieder ändern.

Ich bin noch immer der Meinung, dass es nicht unbedingt sinnvoll ist, im Fließtext eine URL zu haben. Sie nimmt, besonders bei großer Länge, nur unnötig Platz weg und unterbricht den Lesefluss. Für elektronische Leser kann sie durch ein Link ersetzte werden, für Papierleser ist eine Fußnote weniger ablenkend und auch nicht komfortabel. Im Literaturverzeichnis sieht es anders aus, da habe ich ja oben schon einen Link dagelassen und ein paar Worte gesagt.

Nach oben