Search code examples
latexwidth

specify same width for certain columns using xltabular


I am creating a table using the code below with 5 columns (first column is wider with long text but the others are not).

How can I adapt the code below to specify the exact same width for columns #2, #3, #4 and #5? The column #1 should have the width of the longest text in the cell. Does anyone know how to achieve this?

Code below:

\documentclass{article}
\usepackage[letterpaper,margin=2.5cm]{geometry}
\usepackage{pdflscape}
\usepackage{xltabular} 
\usepackage{ragged2e}  
\newcolumntype{L}{>{\RaggedRight\hangafter1\hangindent1em}X}
\usepackage{booktabs}
\newlength\mylen
\setlength\mylen{\textheight}

\begin{document}


\begin{landscape}

\begin{xltabular}{\mylen}{@{} lllll @{}}

\caption{xxxxxxxxx xxxxxxxxx xxxxx xxx xxxxx xxxxxxx}
\label{tab:my-table}\\
\toprule
\textbf{xxxxxxxxx} & \textbf{xxxx xxxxx} & \textbf{xxxx xxxxxx} & \textbf{xxxx xxxx xxxxxx} & \textbf{xxxxxx} \\ 
\midrule
\endfirsthead

\multicolumn{5}{@{}l}%
{Table \thetable, continued from previous page} \\[0.5ex]
\toprule
\textbf{xxxxxxxxx} & \textbf{xxxx xxxxx} & \textbf{xxxx xxxxxx} & \textbf{xxxx xxxx xxxxxx} & \textbf{xxxxxx} \\ 
\midrule
\endhead

\midrule
\multicolumn{5}{r@{}}{\footnotesize(cont'd on next page)}
\endfoot

\bottomrule
\endlastfoot

%% body of table
\multicolumn{5}{@{}l}{\textbf{xxxxxxxxxxx}} \\[0.25ex]
xxxxxxxxxx xxxxxxxxxx xxxx xxxxx xxxxxxxx xxxxxxxxxxxx xxxxxxxx xxxxxx xxxx & Individual & Day & 30 June 2000 & xxxxx \\
xxxxxxx xxxxxxxx xxxxxx xxxxxx xxxxxx xxxxx xxxxx xx & Individual & Day & 30 June 2000 & xxxxx \\
xxxxxxx xxxxxx xxxxxxxxx xxxxxx xxxxxxxxxx xxxxxx & Individual & Day & 30 June 2000 & xxxxx \\
xxxxxxx xxxxxx xxxxxxxxx xxxxxx xxxxxxxxxx xxxxxxxxxxxxx xxxxxxxxxx xxx & Organisation & Year & 2017 & xxxxxxxx xxxxxx xxx \\
xxxxxxx xxxxxx xxxxxxxxx xxxxxx xxxxxxxxxx xxxx & Organisation & Mon & 30 June 2000 & xxxxxxxx xxxxxxx xxxx xxxxx xxxxxxx \\

\addlinespace 
\multicolumn{5}{@{}l}{\textbf{xxxxxxxxxxxx}} \\[0.25ex]
xxxxxxx xxxxxx xxxxxxxxx xxxxxx xxxxxxxxxx xxxxx & Organisation & Mon & 1 July 2010 & xxxx xxxxx xxxx xxxxxxxxxx xxxxxxxx xxxxxxxxxxx \\
xxxxxx xxxxxx xxxxxxxxxx xxxxxxx & Organisation & Mon & 1 July 2010 & xxxx xxxx xxxxxx xxxxxxxxx xxxxxxxxx x xxxxxxx xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx \\
xxxxxxx xxxxxx xxxxxxx & Organisation & Year & 30 June 2000 & xxxx xxxxxx xxxxxxxxxxx \\
xxxxxxx xxxxxx xxxxxxxxx xxxxxx xxxxxxxx & Organisation & Year & 1999/2000 & xxxxx xxxxxxxx xxxxxx xxxxxx xxxxxxx xxxxxxx \\
xxxxxxx xxxxxx xxxxxxxxx xxxxxx xxxxxxxxxx xx & Organisation & Year & 1999/2000 & xxxxx xxxxxxxx xxxxxx xxxxxx xxxxxxx xxxxxxx \\
xxxxxxx xxxxxx xxxxxxxxx xxxxxx xxxxxx & Organisation & xxxxxxx/xxx xxxxxxxx & 30 June 2000 & xxxx xxxxxx xxxxxxxxxxx \\
xxxxxxx xxxxxx xxxxxxxxx xxxxxx xxxxxxxxxx & Organisation & xxxxxxx/xxx xxxxxxxx & 30 June 2000 & xxxx xxxxxx xxxxxxxxxxx \\
xxxxxxx xxxxxx xxxxxxxxx xxxxxx xxxxxxxxxx x & Organisation & xxxxxxx/xxx xxxxxxxx & 30 June 2000 & xxxx xxxxxx xxxxxxxxxxx \\
xxxxxxx xxxxxx xxxxxxxxx xxxxxx xxxxxxx & Geography & xxxxxxx/xxx xxxxxxxx & 30 June 2000 & xxxx xxxxxx xxxxxxxxxxx \\
xxxxxxx xxxxxx xxxxxxxxx xxxxxx xxxxxxxx & Geography & xxx/xx xxxxxxxxx xxxx & 30 June 2000 & xxxx xxxxxx xxxxxxxxxxx \\
xxxxxxx xxxxxx xxxxxxxxx xxxxxx xxxxxxx & Geography & xxxxxxx xxxxxx & 2011 & xxxxxxxx \\
xxxxxxx xxxxxx xxx & Organisation & Quarter & February 2000 & xxxxx xxxxxxxx xxxxxx xxxxxx xxxxxxx xxxxxxxxx xxxxx \\
xxxxxxx xxxxxx xxxxxxxxx xxxxxx xxx & Organisation & Quarter & 2011/2012 Q3 & xxxxx xxxxxxxx xxxxxx xxxxxx xxxxxxx xx \\
xxxxxxx xxxxxx xxxxxxxxx xxxxxx xxxxxxxx & Organisation & Quarter & 2011/2012 Q3 & xxxxx xxxxxxxx xxxxxx xxxxxx xxxxxxx xx \\
xxxxxxx xxxxxx xxxxxxxxx xxxxxx xxxxxxx & Organisation & Quarter & 2011/2012 Q3 & xxxxx xxxxxxxx xxxxxx xxxxxx xxxxxxx xx \\
xxxxxxx xxxxxx xxxxxxxxx xxxxxx xxxxxxxx & Organisation & Quarter & 2011/2012 Q3 & xxxxx xxxxxxxx xxxxxx xxxxxx xxxxxxx xx \\
xxxxxxx xxxxxx xxxx & Organisation & Quarter & 2011/2012 Q3 & xxxxx xxxxxxxx xxxxxx xxxxxx xxxxxxx xx \\
xxxxxxx xxxxxx xxxxxxxxxxxx & Organisation & Mon & 1 July 2010 & xxxx xxxx xxxxxx xxxxxxxxx xxxxxxxxx x xxxxxxx xxxxxxxxxx xxxxxxxxxxxx \\
xxxxxxx xxxxxx xxxxxxxxx xxxxxxxx & Organisation & Mon & 1 July 2010 & xxxx xxxx xxxxxx xxxxxxxxx xxxxxxxxx x xxxxxxx xxxxxxxxxx xxxxxxxxxxxx \\
xxxxxxx xxxxxx xxxxxxxxx xxxxxx xx & Organisation & Quarter & 2011/2012 Q4 & xxxx xxxx xxxxxx xxxxxxxxx xxxxxxxxx x xxxxxxx xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx \\
xxxxxxx xxxxxx xxxxxxxxx xxxxxx xxxxxx & Organisation & Quarter & 2011/2012 Q4 & xxxx xxxx xxxxxx xxxxxxxxx xxxxxxxxx x xxxxxxx xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx \\
xxxxxxx xxxxxx xxxxxxxxx xxxxxx xxxxxx & Organisation & Quarter & 2011/2012 Q4 & xxxx xxxx xxxxxx xxxxxxxxx xxxxxxxxx x xxxxxxx xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx \\
xxxxxxx xxxxxx xxxxxxxxx xxxxxx xxxxxxxxxx xxx & Organisation & Day & 30 June 2000 & xxxx \\
xxxxxxx xxxxxx xxxxxxxxx xxxxxx xxxxxxxxxx xx & Individual & Day & 30 June 2000 & xxxx \\
xxxxxxx xxxxxx xxxxxxxxx xxxxxx xxxxxxxxxx xxxxxxxxxxxxx xxxxxxxxx & Individual & xxxxxxx xxxxx xxx & 1999 & xxxxxx \\
xxxxxxx xxxxxx xxxxxxxxx xxxxxx xxxxxxxxxx xxxxxxxx & Individual & Year & 1999 & xxxxxx xxxx xxxxx \\
xxxxxxx xxxxxx xxxxxxxxx xxxxxx xxxxxxxxxx xxxxxxxxxxxxx xxxxxxxxxx xxx & Individual & Year & 1999 & xxxxxx xxxx xxxxx \\
xxxxxxx xxxxxx xxxxxxxxx xxxxxx xxxxxxxxxx xxxxxxxxxxxxx xxxxxxxxxx xxxxxxx & Individual & Year & 1999 & xxxxxx xxxx xxxxx \\
xxxxxxx xxxxxx xxxxxxxxx xxxxxx xxxxxxxxxx xxxxxxxxxxxxx xx'sxxxxxx xxx & Individual & Year & 1999 & xxxxxx xxxx xxxxx \\ 
%\hline
\end{xltabular}
\end{landscape}

\end{document}

Solution

  • Columns 2 thru 5 of your table will need to be quite narrow. To allow LaTeX to hyphenate words, including the very first words, in the respective cells , I suggest you change

    \newcolumntype{L}{>{\RaggedRight\hangafter1\hangindent1em}X}
    

    to

    \newcolumntype{L}{>{\RaggedRight\hspace{0pt}}X}
    

    In addition, I'd like to suggest that you replace

    \begin{xltabular}{\mylen}{@{} lllll @{}}
    

    with

    \begin{xltabular}{\mylen}{@{} l LLLL @{}}
    

    That way, columns 2 thru 5 are guaranteed to have the same (narrow) width.


    enter image description here

    \documentclass{article}
    \usepackage[letterpaper,margin=2.5cm]{geometry}
    \usepackage{pdflscape}
    \usepackage{xltabular}
    \usepackage{ragged2e}
    \newcolumntype{L}{>{\RaggedRight\hspace{0pt}}X}
    \usepackage{booktabs}
    \newlength\mylen
    \setlength\mylen{\textheight}
    
    \begin{document}
    
    
    \begin{landscape}
    
    \begin{xltabular}{\mylen}{@{} l LLLL @{}}
    
    \caption{xxxxxxxxx xxxxxxxxx xxxxx xxx xxxxx xxxxxxx}
    \label{tab:my-table}\\
    \toprule
    \textbf{xxxxxxxxx} & \textbf{xxxx xxxxx} & \textbf{xxxx xxxxxx} & \textbf{xxxx xxxx xxxxxx} & \textbf{xxxxxx} \\
    \midrule
    \endfirsthead
    
    \multicolumn{5}{@{}l}%
    {Table \thetable, continued from previous page} \\[0.5ex]
    \toprule
    \textbf{xxxxxxxxx} & \textbf{xxxx xxxxx} & \textbf{xxxx xxxxxx} & \textbf{xxxx xxxx xxxxxx} & \textbf{xxxxxx} \\
    \midrule
    \endhead
    
    \midrule
    \multicolumn{5}{r@{}}{\footnotesize(cont'd on next page)}
    \endfoot
    
    \bottomrule
    \endlastfoot
    
    %% body of table
    \multicolumn{5}{@{}l}{\textbf{xxxxxxxxxxx}} \\[0.25ex]
    xxxxxxxxxx xxxxxxxxxx xxxx xxxxx xxxxxxxx xxxxxxxxxxxx xxxxxxxx xxxxxx xxxx & Individual & Day & 30 June 2000 & xxxxx \\
    xxxxxxx xxxxxxxx xxxxxx xxxxxx xxxxxx xxxxx xxxxx xx & Individual & Day & 30 June 2000 & xxxxx \\
    xxxxxxx xxxxxx xxxxxxxxx xxxxxx xxxxxxxxxx xxxxxx & Individual & Day & 30 June 2000 & xxxxx \\
    xxxxxxx xxxxxx xxxxxxxxx xxxxxx xxxxxxxxxx xxxxxxxxxxxxx xxxxxxxxxx xxx & Organisation & Year & 2017 & xxxxxxxx xxxxxx xxx \\
    xxxxxxx xxxxxx xxxxxxxxx xxxxxx xxxxxxxxxx xxxx & Organisation & Mon & 30 June 2000 & xxxxxxxx xxxxxxx xxxx xxxxx xxxxxxx \\
    
    \addlinespace
    \multicolumn{5}{@{}l}{\textbf{xxxxxxxxxxxx}} \\[0.25ex]
    xxxxxxx xxxxxx xxxxxxxxx xxxxxx xxxxxxxxxx xxxxx & Organisation & Mon & 1 July 2010 & xxxx xxxxx xxxx xxxxxxxxxx xxxxxxxx xxxxxxxxxxx \\
    xxxxxx xxxxxx xxxxxxxxxx xxxxxxx & Organisation & Mon & 1 July 2010 & xxxx xxxx xxxxxx xxxxxxxxx xxxxxxxxx x xxxxxxx xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx \\
    xxxxxxx xxxxxx xxxxxxx & Organisation & Year & 30 June 2000 & xxxx xxxxxx xxxxxxxxxxx \\
    xxxxxxx xxxxxx xxxxxxxxx xxxxxx xxxxxxxx & Organisation & Year & 1999/2000 & xxxxx xxxxxxxx xxxxxx xxxxxx xxxxxxx xxxxxxx \\
    xxxxxxx xxxxxx xxxxxxxxx xxxxxx xxxxxxxxxx xx & Organisation & Year & 1999/2000 & xxxxx xxxxxxxx xxxxxx xxxxxx xxxxxxx xxxxxxx \\
    xxxxxxx xxxxxx xxxxxxxxx xxxxxx xxxxxx & Organisation & xxxxxxx/xxx xxxxxxxx & 30 June 2000 & xxxx xxxxxx xxxxxxxxxxx \\
    xxxxxxx xxxxxx xxxxxxxxx xxxxxx xxxxxxxxxx & Organisation & xxxxxxx/xxx xxxxxxxx & 30 June 2000 & xxxx xxxxxx xxxxxxxxxxx \\
    xxxxxxx xxxxxx xxxxxxxxx xxxxxx xxxxxxxxxx x & Organisation & xxxxxxx/xxx xxxxxxxx & 30 June 2000 & xxxx xxxxxx xxxxxxxxxxx \\
    xxxxxxx xxxxxx xxxxxxxxx xxxxxx xxxxxxx & Geography & xxxxxxx/xxx xxxxxxxx & 30 June 2000 & xxxx xxxxxx xxxxxxxxxxx \\
    xxxxxxx xxxxxx xxxxxxxxx xxxxxx xxxxxxxx & Geography & xxx/xx xxxxxxxxx xxxx & 30 June 2000 & xxxx xxxxxx xxxxxxxxxxx \\
    xxxxxxx xxxxxx xxxxxxxxx xxxxxx xxxxxxx & Geography & xxxxxxx xxxxxx & 2011 & xxxxxxxx \\
    xxxxxxx xxxxxx xxx & Organisation & Quarter & February 2000 & xxxxx xxxxxxxx xxxxxx xxxxxx xxxxxxx xxxxxxxxx xxxxx \\
    xxxxxxx xxxxxx xxxxxxxxx xxxxxx xxx & Organisation & Quarter & 2011/2012 Q3 & xxxxx xxxxxxxx xxxxxx xxxxxx xxxxxxx xx \\
    xxxxxxx xxxxxx xxxxxxxxx xxxxxx xxxxxxxx & Organisation & Quarter & 2011/2012 Q3 & xxxxx xxxxxxxx xxxxxx xxxxxx xxxxxxx xx \\
    xxxxxxx xxxxxx xxxxxxxxx xxxxxx xxxxxxx & Organisation & Quarter & 2011/2012 Q3 & xxxxx xxxxxxxx xxxxxx xxxxxx xxxxxxx xx \\
    xxxxxxx xxxxxx xxxxxxxxx xxxxxx xxxxxxxx & Organisation & Quarter & 2011/2012 Q3 & xxxxx xxxxxxxx xxxxxx xxxxxx xxxxxxx xx \\
    xxxxxxx xxxxxx xxxx & Organisation & Quarter & 2011/2012 Q3 & xxxxx xxxxxxxx xxxxxx xxxxxx xxxxxxx xx \\
    xxxxxxx xxxxxx xxxxxxxxxxxx & Organisation & Mon & 1 July 2010 & xxxx xxxx xxxxxx xxxxxxxxx xxxxxxxxx x xxxxxxx xxxxxxxxxx xxxxxxxxxxxx \\
    xxxxxxx xxxxxx xxxxxxxxx xxxxxxxx & Organisation & Mon & 1 July 2010 & xxxx xxxx xxxxxx xxxxxxxxx xxxxxxxxx x xxxxxxx xxxxxxxxxx xxxxxxxxxxxx \\
    xxxxxxx xxxxxx xxxxxxxxx xxxxxx xx & Organisation & Quarter & 2011/2012 Q4 & xxxx xxxx xxxxxx xxxxxxxxx xxxxxxxxx x xxxxxxx xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx \\
    xxxxxxx xxxxxx xxxxxxxxx xxxxxx xxxxxx & Organisation & Quarter & 2011/2012 Q4 & xxxx xxxx xxxxxx xxxxxxxxx xxxxxxxxx x xxxxxxx xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx \\
    xxxxxxx xxxxxx xxxxxxxxx xxxxxx xxxxxx & Organisation & Quarter & 2011/2012 Q4 & xxxx xxxx xxxxxx xxxxxxxxx xxxxxxxxx x xxxxxxx xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx \\
    xxxxxxx xxxxxx xxxxxxxxx xxxxxx xxxxxxxxxx xxx & Organisation & Day & 30 June 2000 & xxxx \\
    xxxxxxx xxxxxx xxxxxxxxx xxxxxx xxxxxxxxxx xx & Individual & Day & 30 June 2000 & xxxx \\
    xxxxxxx xxxxxx xxxxxxxxx xxxxxx xxxxxxxxxx xxxxxxxxxxxxx xxxxxxxxx & Individual & xxxxxxx xxxxx xxx & 1999 & xxxxxx \\
    xxxxxxx xxxxxx xxxxxxxxx xxxxxx xxxxxxxxxx xxxxxxxx & Individual & Year & 1999 & xxxxxx xxxx xxxxx \\
    xxxxxxx xxxxxx xxxxxxxxx xxxxxx xxxxxxxxxx xxxxxxxxxxxxx xxxxxxxxxx xxx & Individual & Year & 1999 & xxxxxx xxxx xxxxx \\
    xxxxxxx xxxxxx xxxxxxxxx xxxxxx xxxxxxxxxx xxxxxxxxxxxxx xxxxxxxxxx xxxxxxx & Individual & Year & 1999 & xxxxxx xxxx xxxxx \\
    xxxxxxx xxxxxx xxxxxxxxx xxxxxx xxxxxxxxxx xxxxxxxxxxxxx xx'sxxxxxx xxx & Individual & Year & 1999 & xxxxxx xxxx xxxxx \\
    %\hline
    \end{xltabular}
    \end{landscape}
    
    \end{document}