
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
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 consumption
als einzelnes Wort behandeln kann: Ersetzen Sie einfach D\_alcohol\_consumption
durch
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 consumption
im 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}
.
\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}