在 longtable 中使用下划线换行

在 longtable 中使用下划线换行

我有以下代码:

\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}

它生成了这张表

在此处输入图片描述

我需要在“Col4”列中输入非常长的变量名,其中许多变量名都有下划线,就像第一行一样。但它不适合单元格,并延伸到“Col5”。我希望像第二行一样自动换行。

我认为它与下划线有关,因为在第三行我用连字符替换了它们,这正是我所期望的。但我需要使用下划线。

有什么建议保留下划线吗?

答案1

基本上,也许这并不奇怪,到目前为止还没有人告诉 LaTeX 如何用连字符连接“单词”

D\_alcohol\_consumption

幸运的是,有一个简单的方法可以告诉 LaTeX 它可能会将子字符串consumption视为一个单独的单词:只需替换D\_alcohol\_consumption

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

单独的注释:默认情况下,LaTeX 不会对包含一个或多个-(连字符)的单词进行连字符处理。如果您想允许 LaTeX 对consumption复合连字符中的单词进行连字符处理D-alcohol-consumption,您只需将其重写为

D-alcohol-\hspace{0pt}consumption

最后的评论:鉴于某些列较窄,我将对这些列使用右对齐布局,而不是完全对齐(这是默认设置),同时在需要时仍允许使用连字符。这可以通过在列说明符前加上 来自动实现>{\RaggedRight};请参阅下面的代码以了解如何实现这个想法。(如果您确实想禁止使用连字符,只需将其替换>{\RaggedRight}>{\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}

答案2

我通过使用 hyphenat 包找到了答案

\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}

在此处输入图片描述

相关内容