我有以下代码:
\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}