Seite 1 von 2
Zeilenumbruch wenn zu langer Text
Verfasst: Mo 6. Mai 2024, 16:05
von basti-fantasti-48
\documentclass{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{lmodern}
\renewcommand{\familydefault}{\sfdefault}
\usepackage{sansmath}
\sansmath
\usepackage{microtype}
\usepackage{csquotes}
\usepackage{graphicx}
\graphicspath{{bilder/}}
\usepackage{svg}
\usepackage{adjustbox}
\usepackage{booktabs}
\usepackage{amsmath,amssymb}
\hyphenation{Crash-zo-ne}
\usepackage{longtable}
\begin{document}
\begin{table}[htbp]
\centering
\Huge % Größere Schriftgröße
\begin{adjustbox}{width=\textwidth}
\renewcommand{\arraystretch}{2.5}
\begin{tabular}{p{0.3\linewidth} p{0.3\linewidth} p{0.3\linewidth} }
\hline
Spalte1 & Spalte2 & Spalte3 \\
\hline
text & text & <text \\
text & text & text \\
text & Fußgängerüberweg & text \\
text & sehr sehr langer Text & text\\
\hline
\end{tabular}
\end{adjustbox}
\end{table}
%----------------------------------------
\end{document}
Hallo ich möchte wenn der Text zu lange ist einen Umbruch. Dies macht er nur wenn Leerzeichen dabei sind aber nicht wenn es nur ein Wort ist. Wie mache ich das also das in der dritten Zeile es so ist wie in der vierten
Re: Zeilenumbruch wenn zu langer Text
Verfasst: Mo 6. Mai 2024, 18:23
von Stefan Kottwitz
Hallo,
Du kannst das
seqsplit-Paket verwenden:
\documentclass{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{lmodern}
\renewcommand{\familydefault}{\sfdefault}
\usepackage{microtype}
\usepackage{adjustbox}
\usepackage{seqsplit}
\begin{document}
\begin{table}[htbp]
\centering
\Huge % Größere Schriftgröße
\begin{adjustbox}{width=\textwidth}
\renewcommand{\arraystretch}{2.5}
\begin{tabular}{p{0.3\linewidth} p{0.3\linewidth} p{0.3\linewidth} }
\hline
Spalte1 & Spalte2 & Spalte3 \\
\hline
text & text & <text \\
text & text & text \\
text & \seqsplit{sehrlangertextohneleerzeichen} & text \\
text & sehr sehr langer Text & text\\
\hline
\end{tabular}
\end{adjustbox}
\end{table}
%----------------------------------------
\end{document}
Stefan
Re: Zeilenumbruch wenn zu langer Text
Verfasst: Di 7. Mai 2024, 08:13
von basti-fantasti-48
Ok danke geht aber wenn ein scharfes s (ß) drin ist dann geht passt es nicht ganz
Re: Zeilenumbruch wenn zu langer Text
Verfasst: Di 7. Mai 2024, 08:31
von basti-fantasti-48
\documentclass{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\renewcommand{\familydefault}{\sfdefault}
\usepackage{microtype}
\usepackage{adjustbox}
\usepackage{seqsplit}
\begin{document}
\begin{table}[htbp]
\centering
\Huge % Größere Schriftgröße
\begin{adjustbox}{width=\textwidth}
\renewcommand{\arraystretch}{2.5}
\begin{tabular}{p{0.3\linewidth} p{0.3\linewidth} p{0.3\linewidth} }
\hline
Spalte1 & Spalte2 & Spalte3 \\
\hline
text & text & text \\
text & text & text \\
text & \seqsplit{Füßgängerüberwegampel} & text \\
text & sehr sehr langer Text & text\\
\hline
\end{tabular}
\end{adjustbox}
\end{table}
%----------------------------------------
\end{document}
es passt aber jetzt gibt es probleme mit scharfem ß und ä. Scharfes ß kann ich mit \ss lösen aber ä nicht
Re: Zeilenumbruch wenn zu langer Text
Verfasst: Di 7. Mai 2024, 09:12
von MoeWe
TeX möchte von sich aus das erste Wort in einem Absatz nie trennen. Innerhalb der Tabelle verhält sich jede neue Zelle wie ein neuer Absatz, sodass das erste Wort in einer Zelle nie getrennt wird. Wir können TeX etwas austricksen, indem wir vor das erste Wort einen Leerraum der Länge 0 setzen. Dann ist das Wort nicht mehr das erste im Absatz und wird getrennt. In der Tabelle können wir das Hinzufügen dieses Leerraums mit einem neuen Spaltentypen automatisieren.
\documentclass{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\renewcommand{\familydefault}{\sfdefault}
\usepackage{microtype}
\usepackage{adjustbox}
\usepackage{array}
\newcolumntype{P}[1]{>{\hspace{0pt}}p{#1}}
\begin{document}
\begin{table}[htbp]
\centering
\Huge % Größere Schriftgröße
\begin{adjustbox}{width=\textwidth}
\renewcommand{\arraystretch}{2.5}
\begin{tabular}{P{0.3\linewidth} P{0.3\linewidth} P{0.3\linewidth} }
\hline
Spalte1 & Spalte2 & Spalte3 \\
\hline
text & text & text \\
text & text & text \\
text & Füßgängerüberwegampel & text \\
text & sehr sehr langer Text & text\\
\hline
\end{tabular}
\end{adjustbox}
\end{table}
\end{document}
Re: Zeilenumbruch wenn zu langer Text
Verfasst: Di 7. Mai 2024, 09:24
von Stefan Kottwitz
Bei seqsplit kann man Sonderzeichen einklammern, dann kommt der Fehler nicht: \seqsplit{F{ü}{ß}g{ä}nger{ü}berwegampel}
Stefan
Re: Zeilenumbruch wenn zu langer Text
Verfasst: Di 7. Mai 2024, 10:13
von basti-fantasti-48
super danke. aber wie kann ich einen Zeilenumbruch "erzwingen" also genau da wo ich will?
Re: Zeilenumbruch wenn zu langer Text
Verfasst: Di 7. Mai 2024, 10:24
von Stefan Kottwitz
Du kannst \newline oder \allowbreak an der Stelle einsetzen.
Stefan
Re: Zeilenumbruch wenn zu langer Text
Verfasst: Di 7. Mai 2024, 14:52
von basti-fantasti-48
jetzt habe ich noch das problem das nach dem umbruch so viel platz dazwischen ist also zwischen der und Signalwiedergabe
\documentclass{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\renewcommand{\familydefault}{\sfdefault}
\usepackage{microtype}
\usepackage{adjustbox}
\usepackage{array}
\newcolumntype{P}[1]{>{\hspace{0pt}}p{#1}}
\begin{document}
\begin{table}[htbp]
\centering
\Huge % Größere Schriftgröße
\begin{adjustbox}{width=\textwidth}
\renewcommand{\arraystretch}{2.5}
\begin{tabular}{P{0.3\linewidth} P{0.3\linewidth} P{0.3\linewidth} }
\hline
Spalte1 & Spalte2 & Spalte3 \\
\hline
text & text & text \\
text & text & text \\
text & Neuberech-\newline der Signalwiedergabe bei Produkt & text \\
text & sehr sehr langer Text & text\\
\hline
\end{tabular}
\end{adjustbox}
\end{table}
\end{document}
Re: Zeilenumbruch wenn zu langer Text
Verfasst: Di 7. Mai 2024, 15:39
von Stefan Kottwitz
So modifiziert kannst Du abschalten, dass Zwischenräume zum Randausgleich eingefügt werden:
\newcolumntype{P}[1]{>{\raggedright\arraybackslash\hspace{0pt}}p{#1}}
Stefan