Zeilenumbruch mit Unterstrichen in longtable

Zeilenumbruch mit Unterstrichen in longtable

Ich habe folgenden Code:

\begin{landscape}

\setlength\tabcolsep{3pt}
\begin{longtable}{m{0.5cm}|m{3cm}|m{3cm}|m{3cm}|m{9cm}}
\hline
\textbf{C1}&\textbf{Col2}&\textbf{Col3}&\textbf{Col4}&\textbf{Col5}\\
\hline
\endfirsthead
\endfoot
1&Self-report&-&D\_alcohol\_consumption&\\\hline
2&Self-report&-&Trastorno del pensamiento controlado&\\\hline
3&Self-report&-&D-alcohol-consumption&\\\hline
\end{longtable} 

\end{landscape}

Es erzeugt diese Tabelle

Bildbeschreibung hier eingeben

Ich muss sehr lange Variablennamen in die Spalte „Col4“ einfügen und viele davon haben Unterstriche, wie die erste Zeile. Aber sie passen nicht in die Zelle und reichen bis „Col5“. Ich erwarte, dass die Zeile automatisch umgebrochen wird, wie in der zweiten Zeile.

Ich denke, es hat etwas mit dem Unterstrich zu tun, denn in der dritten Zeile habe ich ihn durch Bindestriche ersetzt und das ist, was ich erwartet habe. Aber ich muss die Unterstriche verwenden.

Irgendwelche Vorschläge, die Unterstriche beizubehalten?

Antwort1

Im Grunde genommen und vielleicht nicht überraschend hat bisher niemand LaTeX erklärt, wie man das Wort „

D\_alcohol\_consumption

Glücklicherweise gibt es eine einfache Möglichkeit, LaTeX mitzuteilen, dass es den Teilstring consumptionals einzelnes Wort behandeln kann: Ersetzen Sie einfach D\_alcohol\_consumptiondurch

D\_alcohol\_\hspace{0pt}consumption

Ein separater Kommentar: Standardmäßig trennt LaTeX keine Wörter, die ein oder mehrere Vorkommen von -(dem Bindestrichzeichen) enthalten. Wenn Sie LaTeX erlauben möchten, das Wort consumptionim zusammengesetzten Wort mit Bindestrich zu trennen D-alcohol-consumption, müssen Sie es nur wie folgt umschreiben:

D-alcohol-\hspace{0pt}consumption

Letzter Kommentar: Angesichts der Schmalheit einiger Spalten würde ich für diese Spalten ein rechtsbündiges Layout anstelle von Blocksatz (Standard) verwenden und dabei bei Bedarf weiterhin Silbentrennung zulassen. Dies kann automatisch erreicht werden, indem dem Spaltenbezeichner ein vorangestellt wird >{\RaggedRight}; im Code unten erfahren Sie, wie Sie diesen Gedanken umsetzen können. (Wenn Sie die Silbentrennung tatsächlich unterdrücken möchten, ersetzen Sie einfach >{\RaggedRight}durch >{\raggedright\arraybackslash}.


Bildbeschreibung hier eingeben

\documentclass{article}
\usepackage{array}
\usepackage{ragged2e} % for '\RaggedRight' macro
\begin{document}

\begin{tabular}{@{} >{\RaggedRight}p{3.1cm} @{}}
\hline
D\_alcohol\_\hspace{0pt}consumption \\ \hline
D-alcohol-consumption \\               \hline
D-alcohol-\hspace{0pt}consumption \\   \hline
\end{tabular}

\end{document}

Antwort2

Ich habe es mithilfe des Hyphenat-Pakets herausgefunden

\usepackage{hyphenat}
\begin{landscape}

\setlength\tabcolsep{3pt}
\begin{longtable}{m{0.5cm}|m{3cm}|m{3cm}|m{3cm}|m{9cm}}
\hline
\textbf{C1}&\textbf{Col2}&\textbf{Col3}&\textbf{Col4}&\textbf{Col5}\\
\hline
\endfirsthead
\endfoot
1&Self-report&-&D\_alcohol\_consumption&\\\hline
2&Self-report&-&Trastorno del pensamiento controlado&\\\hline
3&Self-report&-&D-alcohol-consumption&\\\hline
\end{longtable}

\end{landscape}

Bildbeschreibung hier eingeben

verwandte Informationen