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