Salto de línea con guiones bajos en tabla larga

Salto de línea con guiones bajos en tabla larga

Tengo el siguiente código:

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

Produce esta tabla

ingrese la descripción de la imagen aquí

Necesito poner nombres de variables muy largos en la columna "Col4" y muchos de ellos tienen guiones bajos, como la primera fila. Pero no cabe en la celda y se extiende hasta "Col5". Lo que espero es romper automáticamente la línea como la segunda fila.

Creo que es algo relacionado con el guión bajo, porque en la tercera línea los reemplacé con guiones y es lo que esperaba. Pero necesito usar los guiones bajos.

¿Alguna sugerencia para mantener los guiones bajos?

Respuesta1

Básicamente, y tal vez no sea sorprendente, nadie ha informado a LaTeX hasta ahora cómo dividir la "palabra" con guiones.

D\_alcohol\_consumption

Afortunadamente, existe una manera fácil de informar a LaTeX que puede tratar la subcadena consumptioncomo una palabra individual: simplemente reemplácela D\_alcohol\_consumptioncon

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

Un comentario aparte: de forma predeterminada, LaTeX no divide con guiones las palabras que contienen una o más instancias de -(el carácter de guión). Si desea permitir que LaTeX separe la palabra con guiones consumptionen la palabra compuesta con guiones D-alcohol-consumption, todo lo que necesita hacer es reescribirla como

D-alcohol-\hspace{0pt}consumption

Comentario final: en vista de la estrechez de algunas de las columnas, usaría un diseño irregular hacia la derecha para estas columnas en lugar de una justificación completa (que es el valor predeterminado), y al mismo tiempo permitiría la separación de palabras cuando sea necesario. Esto se puede lograr automáticamente anteponiendo al especificador de columna el prefijo >{\RaggedRight}; consulte el código a continuación para saber cómo implementar este pensamiento. (Si realmente desea suprimir la separación de palabras, simplemente reemplácela >{\RaggedRight}con >{\raggedright\arraybackslash}.


ingrese la descripción de la imagen aquí

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

Respuesta2

Lo descubrí usando el paquete 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}

ingrese la descripción de la imagen aquí

información relacionada