
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
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 consumption
como una palabra individual: simplemente reemplácela D\_alcohol\_consumption
con
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 consumption
en 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}
.
\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}