2

I'm using the package longtable to define a table in two pages but it has too much width when I write long text in a cell that fills until the border of the page and doesn´t have room for all the text. Is there a way to fix or limit the width of the table or make the text fill in some lines?

I´ve just used double '\' to fill the long lines in many lines but there is a big space between them. Here is the code that i´ve used

\begin{longtable}{lp{5cm}lp{5cm}lp{5cm}}
\hline
Característica & DDS & MQTT \\
\hline
\endfirsthead

\hline
Característica & DDS & MQTT \\
\hline
\\
\endhead

\multicolumn{3}{c}{(Continúa en la página siguiente)} \\
\endfoot

\multicolumn{3}{c}{(Fin del Cuadro)} \\
\endlastfoot

%Aqui añadimos el cuerpo de la tabla
\\
Abstracción & Publicación/Suscripción & Publicación/Suscripción \\
\\
Arquitectura & Descentralizada (\emph{Global Data Space}) & Broker \\
\\
API & Si & No \\
\\
QoS & 22 & 3 \\
\\
Interoperabilidad & Si & Parcial \\
\\
Rendimiento & Más de 1000 mensajes fiables por segundo por suscriptor & Típicamente desde cientos \\
 & & (persistentes) hasta más de \\
 & & 1000 (\emph{best effort}) mensajes \\
 & & por segundo por suscriptor \\
\\
\emph{Real-Time} severo & Si & No \\
\\
Transporte & UDP por defecto (otros transportes como TCP pueden ser también usados) & TCP \\
\\
Control de suscripción & Particiones, tópicos con filtrado de mensajes & Tópicos con coincidencia \\
 & & jerárquica \\
\\
Filtrado & Contenido/Tiempo & No \\
\\
Serialización de datos & CDR & N/A \\
\\
Estándares & RTPS y DDSI de OMG & Propuesto por OASIS el \\
 & & estándar MQTT \\
\\
Codificación & Binaria & Binaria \\
\\
Modelo de licencia & Open Source y Licencia Comercial & Open Source y Licencia \\
 & & Comercial \\
\\
Descubrimiento dinámico & Si & No \\
\\
Dispositivos móviles & Si & Si \\
(Android, iOS) & & \\
\\
Dispositivos 6LoWPAN & Si & Si \\
\\
Transacciones multifase & No & No \\
Seguridad & Específica del vendedor pero típicamente basada en SSL o TLS con control de acceso propietario & Simple Nombre de \\
 & & usuario/Password, \\
 & & Autenticación, SSL para \\
 & & cifrado de datos \\
\\


\hline
\\
\caption{Comparativa de características entre DDS y MQTT.}
\label{ta:comparativa-dds-mqtt}
\end{longtable}

And this is a piece of the result:

image

  • 2
    Welcome to TeX.SX! Please help us to help you and add a minimal working example (MWE) that illustrates your problem. It will be much easier for us to reproduce your situation and find out what the issue is when we see compilable code, starting with \documentclass{...} and ending with \end{document}. – user31729 Jul 18 '14 at 16:11
  • Have you considered combining the capabilities of the longtable and tabularx environments? The latter lets you prespecify a desired overall width of the table -- say, \textwidth -- and lets you specify one or more columns that will automatically expand to take up the available width, while letting long lines of text wrap. Combining the capabilities of the two environments can be done with the help of the LTXtable package. – Mico Jul 18 '14 at 16:25
1

Thanks for posting the code of your longtable environment. It would appear that the main problem is that whereas you intend to have three columns (each allowing text to wrap), you're currently specifying a total of six columns, alternating l and p types.

In addition to specifying just three columns (and removing the hard line breaks), I'd like to suggest making the following changes:

  • Since the column widths are quite narrow (5cm or less), it's probably better not to try to fully justify the contents, as doing so may create lines of text with very wide interword spaces. Better to use the ragged2e package and define a new column type that uses \RaggedRight instead of full justification. In the code below, I use the \newcolumntype instruction (which is provided by the array package) to create a new column type called P, which behaves very much like the p type except that the contents will be typeset raggedright while allowing hyphenation.

  • Instead of \hline, consider using the rule-drawing macros of the booktabs package, e.g., \toprule and \midrule.

(first page)

enter image description here

(second page)

enter image description here

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}
\usepackage{lmodern} % use a font family that supports accented characters natively
\usepackage{array,longtable,ragged2e,booktabs}
\newcolumntype{P}[1]{>{\RaggedRight\arraybackslash}p{#1}}

\usepackage[textwidth=13cm]{geometry} % choose text width here
\hyphenation{android} % do not hyphenate the word "Android"
\begin{document}

\begin{longtable}{@{}P{4cm}P{4cm}P{4cm}@{}}
\toprule
Característica & DDS & MQTT \\
\midrule
\endhead


\midrule[\heavyrulewidth]
\multicolumn{3}{r@{}}{(Continúa en la página siguiente)} \\
\endfoot

\midrule[\heavyrulewidth]
\caption{Comparativa de características entre DDS y MQTT.}
\label{ta:comparativa-dds-mqtt}
\endlastfoot

%Aqui añadimos el cuerpo de la tabla
Abstracción & Publicación/Suscripción & Publicación/Suscripción \\[1\baselineskip]
Arquitectura & Descentralizada (\emph{Global Data Space}) & Broker \\[2\baselineskip]
API & Si & No \\[1\baselineskip]
QoS & 22 & 3 \\[1\baselineskip]
Interoperabilidad & Si & Parcial \\[1\baselineskip]
Rendimiento & Más de 1000 mensajes fiables por segundo por suscriptor & Típicamente desde cientos (persistentes) hasta más de 1000 (\emph{best effort}) mensajes por segundo por suscriptor \\[1\baselineskip]
\emph{Real-Time} severo & Si & No \\[1\baselineskip]
Transporte & UDP por defecto (otros transportes como TCP pueden ser también usados) & TCP \\[4\baselineskip]
Control de suscripción & Particiones, tópicos con filtrado de mensajes & Tópicos con coincidencia jerárquica \\[1\baselineskip]
Filtrado & Contenido/Tiempo & No \\[1\baselineskip]
Serialización de datos & CDR & N/A \\[1\baselineskip]
Estándares & RTPS y DDSI de OMG & Propuesto por OASIS el estándar MQTT \\[1\baselineskip]
Codificación & Binaria & Binaria \\[1\baselineskip]
Modelo de licencia & Open Source y Licencia Comercial & Open Source y Licencia Comercial \\[1\baselineskip]
Descubrimiento dinámico & Si & No \\[1\baselineskip]
Dispositivos móviles (Android, iOS)& Si & Si \\[2\baselineskip]
Dispositivos 6LoWPAN & Si & Si \\[1\baselineskip]
Transacciones multifase & No & No \\[1\baselineskip]
Seguridad & Específica del vendedor pero típicamente basada en SSL o TLS con control de acceso propietario & Simple Nombre de usuario\slash Password,  Autenticación, SSL para  cifrado de datos \\
\end{longtable}
\end{document}
  • Thank you very much for your help. You solve my problem! – Francisco Jul 18 '14 at 18:51
0

There are p columns, which limit the width and allow line breaks:

\documentclass{article}
\usepackage{longtable}
\usepackage{lipsum}

\begin{document}
\begin{longtable}{lp{70mm}}
  First row: & \lipsum[1] \\
  Second row: & \lipsum[2] \\
\end{longtable}
\end{document}

Result

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.