Die Antwort auf die 2014er Frage "Wie kann ich hyperlinks mit Open in Online-Editor
\documentclass[12pt, oneside,numbers=endperiod]{scrbook} \usepackage[utf8]{inputenx}% Für den Online-Editor ist UTF8 die einzige korrekte Kodierung! \usepackage[ngerman]{babel} \usepackage[ngerman]{varioref} % Referenzen \usepackage[T1]{fontenc} \usepackage{hyperref, cmap} \usepackage{amsmath} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{tabularx} %für fließend breite Tabellen mit X-Breite \usepackage{calc} %für Berechnung von Befehl-Längen wie \textwidth-\parindent %Seitenränder \usepackage[left=3.8cm, right=2.8cm, top=2.5cm, bottom=2cm]{geometry} \usepackage{index} \usepackage[font=footnotesize]{idxlayout} %Einträge aller Index-Verzeichnisse auf Fußnotengröße gesetzt %\usepackage{url} \usepackage{etoolbox} \appto\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} %definiert die Umbruchstellen, hier alle Buchstaben, nicht aber andere Zeichen! \begin{document} Fließtext Fließtext Fließtext Fließtext Fließtext Fließtext Fließtext ssfsfsfsffshhrthrhrhrrthrhr Fließtext Fließtext Fließtext Fließtext Fließtext Fließtext Fließtext Fließtext Fließtext Fließtext Fließtext Fließtext Fließtext Fließtext Fließtext Fließtext Fließtext Fließtext. \\[2cm] Das ist ein Text mit URL: \url{https://www.google.de/search?q=latex+schrift+f%C3%BCr+url&ie=utf-8&oe=utf-8&gws_rd=cr&ei=OLyyVd2aLcGBUeaJicAK} und geht weiter im Text\dots \end{document} |
Das Problem in dem Fall ist, dass eigentlich genau ein Zeichen abgetrennt werden müsste, um die URL sauber zu umbrechen. Das passiert aber nicht. Ein Grund dafür ist, dass Du den Umbruch an Großbuchstaben gar nicht erlaubt hast. Ein anderer Grund besteht darin, dass das Paket den Umbruch über den Mathemodus steuert. Dabei werden die Zeichen, die per Open in Online-Editor
\documentclass[12pt, oneside,numbers=endperiod]{scrbook} \usepackage[utf8]{inputenx}% Für den Online-Editor ist UTF8 die einzige korrekte Kodierung! \usepackage[ngerman]{babel} \usepackage[T1]{fontenc} \usepackage[left=3.8cm, right=2.8cm, top=2.5cm, bottom=2cm]{geometry} \usepackage{hyperref} \usepackage{etoolbox} \appto\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\A\do\K} %definiert die Umbruchstellen, hier alle Kleinbuchstaben + A und K, nicht aber andere Zeichen! \begin{document} Das ist ein Text mit URL: \url{https://www.google.de/search?q=latex+schrift+f%C3%BCr+url&ie=utf-8&oe=utf-8&gws_rd=cr&ei=OLyyVd2aLcGBUeaJicAK} und geht weiter im Text \dots \end{document} feststellen kann. Als zusätzliches Problem ergibt sich, dass die Zeile dann untervoll bleibt, weil die Abstände der einzelnen mathematischen Elemente der URL fest sind. Erst, wenn man erlaubt, dass diese Abstände vergrößert werden können, funktioniert der Umbruch: Open in Online-Editor
\documentclass[12pt, oneside,numbers=endperiod]{scrbook} \usepackage[utf8]{inputenx}% Für den Online-Editor ist UTF8 die einzige korrekte Kodierung! \usepackage[ngerman]{babel} \usepackage[T1]{fontenc} \usepackage[left=3.8cm, right=2.8cm, top=2.5cm, bottom=2cm]{geometry} \usepackage{hyperref} \usepackage{etoolbox} \appto\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\A\do\K} %definiert die Umbruchstellen, hier alle Kleinbuchstaben + A und K, nicht aber andere Zeichen! \begin{document} {\setlength{\emergencystretch}{1.3pt}% Das ist ein Text mit URL: \url{https://www.google.de/search?q=latex+schrift+f%C3%BCr+url&ie=utf-8&oe=utf-8&gws_rd=cr&ei=OLyyVd2aLcGBUeaJicAK} und geht weiter im Text \dots \par} \end{document} Im Beispiel genügen dafür 1,3 pt, was ungefähr der Unterschied zwischen der Länge des URL-Teils der Zeile und der Zeilenlänge ist. Aber, das ist leider nur die halbe Wahrheit. Denn fügt man nun das Open in Online-Editor
\documentclass[12pt, oneside,numbers=endperiod]{scrbook} \usepackage[utf8]{inputenx}% Für den Online-Editor ist UTF8 die einzige korrekte Kodierung! \usepackage[ngerman]{babel} \usepackage[T1]{fontenc} \usepackage[left=3.8cm, right=2.8cm, top=2.5cm, bottom=2cm]{geometry} \usepackage{hyperref} \usepackage{etoolbox} \appto\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\A\do\J\do\K} %definiert die Umbruchstellen, hier alle Kleinbuchstaben + A, J und K, nicht aber andere Zeichen! \begin{document} {\setlength{\emergencystretch}{1.3pt}% Das ist ein Text mit URL: \url{https://www.google.de/search?q=latex+schrift+f%C3%BCr+url&ie=utf-8&oe=utf-8&gws_rd=cr&ei=OLyyVd2aLcGBUeaJicAK} und geht weiter im Text \dots \par} \end{document} Die Ursache liegt darin, wie TeX das Token nach einem Operator behandelt. Dieses ist nämlich auch dann kein Operator, wenn es durch seinen Die Alternative besteht darin, die erste Zeile früher zu umbrechen. Allerdings geht das wiederum nicht, weil in jener Zeile zu wenige Worte stehen, um den dann notwendigen zusätzlichen Abstand zu verteilen. Es gibt nun zwei Möglichkeiten, diesen zusätzlichen Abstand trotzdem zu ermöglichen. Zum einen wie von @Herbert in seiner Antwort gezeigt, per Open in Online-Editor
\documentclass[12pt, oneside,numbers=endperiod]{scrbook} \usepackage[utf8]{inputenx}% Für den Online-Editor ist UTF8 die einzige korrekte Kodierung! \usepackage[ngerman]{babel} \usepackage[T1]{fontenc} \usepackage[left=3.8cm, right=2.8cm, top=2.5cm, bottom=2cm]{geometry} \usepackage{hyperref} \usepackage{etoolbox} \appto\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} %definiert die Umbruchstellen, hier alle Klein-Buchstaben, nicht aber andere Zeichen! \begin{document} {\setlength{\emergencystretch}{1em}% Das ist ein Text mit URL: \url{https://www.google.de/search?q=latex+schrift+f%C3%BCr+url&ie=utf-8&oe=utf-8&gws_rd=cr&ei=OLyyVd2aLcGBUeaJicAK} und geht weiter im Text \dots\par} \end{document} Der Unterschied der beiden Lösungen ist, dass sich Open in Online-Editor
\documentclass[12pt, oneside,numbers=endperiod]{scrbook} \usepackage[utf8]{inputenx}% Für den Online-Editor ist UTF8 die einzige korrekte Kodierung! \usepackage[ngerman]{babel} \usepackage[T1]{fontenc} \usepackage[left=3.8cm, right=2.8cm, top=2.5cm, bottom=2cm]{geometry} \usepackage{hyperref} \setlength{\emergencystretch}{1em} \usepackage{etoolbox} \appto\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} %definiert die Umbruchstellen, hier alle Kleinbuchstaben, nicht aber andere Zeichen! \begin{document} Das ist ein Text mit URL: \url{https://www.google.de/search?q=latex+schrift+f%C3%BCr+url&ie=utf-8&oe=utf-8&gws_rd=cr&ei=OLyyVd2aLcGBUeaJicAK} und geht weiter im Text \dots \end{document} Wer nun glaubt, dass das noch besser wird, wenn man alle Großbuchstaben in Open in Online-Editor
\documentclass[12pt, oneside,numbers=endperiod]{scrbook} \usepackage[utf8]{inputenx}% Für den Online-Editor ist UTF8 die einzige korrekte Kodierung! \usepackage[ngerman]{babel} \usepackage[T1]{fontenc} \usepackage[left=3.8cm, right=2.8cm, top=2.5cm, bottom=2cm]{geometry} \usepackage{hyperref} \usepackage{etoolbox} \appto\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\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\X\do\Z} %definiert die Umbruchstellen, hier alle Buchstaben, nicht aber andere Zeichen! \begin{document} {\setlength{\emergencystretch}{1em}% Das ist ein Text mit URL: \url{https://www.google.de/search?q=latex+schrift+f%C3%BCr+url&ie=utf-8&oe=utf-8&gws_rd=cr&ei=OLyyVd2aLcGBUeaJicAK} und geht weiter im Text \dots \par} \end{document} Auch hier liegt die Ursache dann wieder darin, dass bei beantwortet 25 Jul '15, 15:53 saputello Nein, hyphenmin ist hier nicht relevant. Die url ist kein Wort, sondern Mathematik mit Penalties. Wenn du
(25 Jul '15, 16:12)
Ulrike Fischer
@Ulrike: Hm, wenn man alle Großbuchstaben dazu fügt, wird dann aber
(25 Jul '15, 17:13)
saputello
Wenn ich in deinem ersten Beispiel
(25 Jul '15, 17:19)
Ulrike Fischer
@Ulrike: So wie ich das sehe, werden die Zeichen aus
(25 Jul '15, 18:55)
saputello
|
Verwendet man nicht PDFLaTeX, nicht LuaLaTeX und nicht XeLaTeX, sondern LaTeX (also die DVI-Ausgabe), dann gibt es mit Open in Online-Editor
\documentclass[12pt, oneside,numbers=endperiod]{scrbook} \usepackage[utf8]{inputenx}% Für den Online-Editor ist UTF8 die einzige korrekte Kodierung! \usepackage[ngerman]{babel} \usepackage[T1]{fontenc} \usepackage[left=3.8cm, right=2.8cm, top=2.5cm, bottom=2cm]{geometry} \usepackage{hyperref} \usepackage[anythingbreaks]{breakurl} \usepackage{showframe} \begin{document} {\setlength{\emergencystretch}{1.3pt}% Das ist ein Text mit URL: \url{https://www.google.de/search?q=latex+schrift+f%C3%BCr+url&ie=utf-8&oe=utf-8&gws_rd=cr&ei=OLyyVd2aLcGBUeaJicAK} und geht weiter im Text \dots\par} \end{document} ergibt dann direkt eine DVI-Datei mit: Das Paket verwendet eine andere Methode, um die URLs zu umbrechen. beantwortet 25 Jul '15, 20:18 saputello @saputello: Ich verwende PDFLaTeX und die obigen Lösungen sind für mich ok. Danke.
(26 Jul '15, 00:03)
kabel
1
@kabel: Du bist nicht allein auf der Welt. Wir bauen hier ein System von Fragen und Antworten, die über das Problem des ursprünglichen Fragestellers hinaus auch anderen helfen sollen. Es gibt nach meiner Erfahrung noch sehr viele Leute, die via
(26 Jul '15, 09:09)
saputello
|
Open in Online-Editor
\begin{sloppypar}% Dann ist jeder Wortzwischenraum möglich Das ist ein Text mit URL: \url{https://www.google.de/search?q=latex+schrift+f%C3%BCr+url&ie=utf-8&oe=utf-8&gws_rd=cr&ei=OLyyVd2aLcGBUeaJicAK} und geht weiter im Text\dots \end{sloppypar} beantwortet 25 Jul '15, 15:13 Herbert |
Eigentlich eine schöne Frage, aber das Beispiel geht bestimmt sehr viel kürzer. Außerdem solltest Du Dir mal die Warnungen in der Log-Datei anschauen.
hyperref
sollte man übrigens immer so spät wie möglich laden.Wenn du mal für ein Beispiel etwas Text brauchst, dann verwende das Paket
blindtext
. Außerdem solltest du\\[<Length>]
nur verwenden, wenn du genau weißt, was es tut. Und nein, es sorgt nicht für eine Leerzeile zwischen Absätzen.an saputello: umfassend auch für Anfänger wie mich erklärt. an Herbert und saputello: beide aufgezeigten Möglichkeiten ok.
\
sloppypar erzeugt bei mir ein besseres Ergebnis (steht nicht im Mittelbach).@kabel Bitte beachte: Antwort = Antwort, Kommentar = Kommentar.
@kabel
sloppypar
ist eine Umgebung. Bitte nicht als Anweisung missbrauchen, weil es sonst letztlich\sloppy
entspricht, mit dem Nachteil, dass alle Absätze mit Trennung potentiell schlechter umbrochen werden als notwendig. Aus demselben Grund sollte man es auf die relevanten Absätze beschränken.