
У меня есть следующий код:
\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, как расставлять дефисы в слове «word».
D\_alcohol\_consumption
К счастью, есть простой способ сообщить LaTeX, что он может рассматривать подстроку consumption
как отдельное слово: просто замените D\_alcohol\_consumption
на
D\_alcohol\_\hspace{0pt}consumption
Отдельный комментарий: По умолчанию LaTeX не делает переносов в словах, содержащих один или несколько экземпляров -
(символа дефиса). Если вы хотите разрешить LaTeX делать переносы в слове consumption
в составе дефисного слова D-alcohol-consumption
, вам нужно просто переписать его как
D-alcohol-\hspace{0pt}consumption
Последний комментарий: Ввиду узости некоторых столбцов я бы использовал макет ragged-right для этих столбцов вместо полного выравнивания (которое используется по умолчанию), при этом все еще допуская переносы, когда это необходимо. Этого можно добиться автоматически, добавив к спецификатору столбца префикс >{\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}