2

I have several tables, and I need to fit 2 tables in one page, but my tables are a slightly big to fit 2 in 1 page, can someone recommend me a solution? perhaps resize. Below is the code for one of my tables:

    \begin{table}[h!]
    \centering
    \caption{Мал бүртгэх use case-ийн тодорхойлолт.}
    \begin{longtable}{|l|p{10cm}|} 
        \hline
        Нэр: & Мал бүртгэх.  \\
        \hline
        ID: & 1 \\ 
        \hline
        Товч тайлбар: & Програмийг анх хэрэглэж эхлэхэд байгаа малаа \newline бүртгэх.\\
        \hline
        Үндсэн тоглогч: & Малчин. \\
        \hline
        Нэмэлт тоглогч: & Байхгүй. \\
        \hline
        Өмнөх нөхцөл: & 1. Хэрэглэгч Үндсэн цонхноос Малын бүртгэл цонх руу шилжсэн байх. \\ 
        \hline
        Үндсэн урсгал: & 1. Бүртгэх малын төрөлөө сонгосноор энэ use case эхэлнэ. \newline 
        2. Бүртгэх малын тоо толгой, төл малын тоо \newline талбаруудад өгөгдлүүд оруулна. \newline 
        3. Огноо сонгоно, сонгохгүй бол тухайн өдрийн \newline огноог автоматаар авна.\newline 
        4. Бүртгэх товч дарахад бүртгэл өгөгдлийн санд \newline нэмэгдэнэ.\newline
        5. Програмаас бүртгэл амжилттай болсон \newline тухай мэдээлэл өгнө. \\
        \hline
        Дараах нөхцөл: & 1. Мал бүртгэл нэмэгдсэн байна.\\
        \hline
        Альтернатив урсгал & 1. Тухайн төрлийн мал өмнө нь бүртгэгдсэн байвал давхардсан бүртгэл хийхгүй.\\
        \hline
    \end{longtable}
    \label{table:1}
\end{table}

I was using tabular instead of longtable, I thought longtables might solve my problem, but it seems to be the same as tabular, at least in my case.

  • 3
    longtable can not do anything if you put it inside a table as table makes an unbreakable box. If you want the table to break over the page use longtable if you want to make it smaller so it fits on a page, use \small or \footnotesize or whatever size is needed – David Carlisle May 26 '17 at 9:18
  • Would the tables be one above the other? – Bernard May 26 '17 at 10:02
  • @Bernard, yes that's what I'm trying to do, I tried \resizebox to make the above table slightly smaller, but I'm getting "Too many }'s error", could it be that \resizebox doesn't work with this p-column table? – Taivna May 26 '17 at 10:15
  • Using \resizebox is not recommended, as it can result in an unreadable table. Are the two tables of the same size (you only posted one)? – Bernard May 26 '17 at 10:18
  • I have like 5-6 tables, all similar but different sizes, each one is taking like 55-60% of a page, so the rest is an empty space, I'm trying to resize the tables slightly so that I can fit 2 tables per page, one above the other – Taivna May 26 '17 at 10:29
3

As others have already noted in the comments, never encase a longtable environment inside a table environment. On the other hand, if you do not want to allow page breaks inside the tabular material, do not use a longtable environment. The code and screenshot provided below illustrate both approaches. Observe that for the solution without page breaks, I suggest using a tabularx environment; this'll greatly simplify setting up the tables in a way that they all share the same width (likely: \textwidth). A separate suggestion: Do consider giving your tables a more "open" look by not using any vertical lines as well as fewer but well-spaced horizontal lines.

Finally, don't use any \linebreak or \newline instructions; they're not needed. Just use blank lines to indicate the equivalent of paragraph breaks.

enter image description here

% !TeX program = xelatex % or: lualatex
\documentclass{article}
\usepackage[russian]{babel} % or bulgarian, or...??
\usepackage{longtable,array,booktabs,tabularx,ragged2e}
\usepackage[vmargin=1cm]{geometry}
\setlength\textwidth{12.2cm} % choose this parameter suitably
\usepackage[skip=0.333\baselineskip]{caption}

% Choose a font that features Cyrillic glyphs
\usepackage{fontspec}
\setmainfont{EB Garamond}[Numbers=Lining]

\begin{document}

\begingroup
\setlength\extrarowheight{2pt}
\begin{longtable}{|l|p{8.4cm}|} 
\caption{Мал бүртгэх use case-ийн тодорхойлолт.}
\label{table1}\\
        \hline
        Нэр & Мал бүртгэх.  \\
        \hline
        ID & 1 \\ 
        \hline
        Товч тайлбар & Програмийг анх хэрэглэж эхлэхэд байгаа малаа бүртгэх.\\
        \hline
        Үндсэн тоглогч & Малчин. \\
        \hline
        Нэмэлт тоглогч & Байхгүй. \\
        \hline
        Өмнөх нөхцөл & 
        1. Хэрэглэгч Үндсэн цонхноос Малын бүртгэл цонх руу шилжсэн байх. \\ 
        \hline
        Үндсэн урсгал & % No more "\newline" directives!
        1. Бүртгэх малын төрөлөө сонгосноор энэ use case эхэлнэ. 

        2. Бүртгэх малын тоо толгой, төл малын тоо талбаруудад өгөгдлүүд оруулна. 

        3. Огноо сонгоно, сонгохгүй бол тухайн өдрийн   огноог автоматаар авна.

        4. Бүртгэх товч дарахад бүртгэл өгөгдлийн санд нэмэгдэнэ.

        5. Програмаас бүртгэл амжилттай болсон тухай мэдээлэл өгнө. \\
        \hline
        Дараах нөхцөл & 
        1. Мал бүртгэл нэмэгдсэн байна.\\
        \hline
        Альтернатив урсгал & 
        1. Тухайн төрлийн мал өмнө нь бүртгэгдсэн байвал давхардсан бүртгэл хийхгүй.\\
        \hline
\end{longtable}
\endgroup

\begin{table}[h!]
\caption{Мал бүртгэх use case-ийн тодорхойлолт.}
\label{table2}
\centering
\begin{tabularx}{\textwidth}{@{}l>{\RaggedRight\arraybackslash}X@{}} 
\toprule
        Нэр & Мал бүртгэх.  \\
        \addlinespace
        ID & 1 \\ 
        \addlinespace
        Товч тайлбар & Програмийг анх хэрэглэж эхлэхэд 
            байгаа малаа бүртгэх.\\
        \addlinespace
        Үндсэн тоглогч & Малчин. \\
        \addlinespace
        Нэмэлт тоглогч & Байхгүй. \\
        \addlinespace
        Өмнөх нөхцөл & 
        1. Хэрэглэгч Үндсэн цонхноос Малын бүртгэл цонх руу шилжсэн байх. \\ 
        \addlinespace
        Үндсэн урсгал &
        1. Бүртгэх малын төрөлөө сонгосноор энэ use case эхэлнэ. 

        2. Бүртгэх малын тоо толгой, төл малын тоо талбаруудад өгөгдлүүд оруулна. 

        3. Огноо сонгоно, сонгохгүй бол тухайн өдрийн огноог автоматаар авна.

        4. Бүртгэх товч дарахад бүртгэл өгөгдлийн санд нэмэгдэнэ.

        5. Програмаас бүртгэл амжилттай болсон тухай мэдээлэл өгнө. \\
        \addlinespace
        Дараах нөхцөл & 
        1. Мал бүртгэл нэмэгдсэн байна.\\
        \addlinespace
        Альтернатив урсгал & 
        1. Тухайн төрлийн мал өмнө нь бүртгэгдсэн байвал давхардсан бүртгэл хийхгүй.\\
\bottomrule
\end{tabularx}
\end{table}

\end{document} 
  • thanks for the reply, but this is a standard I have to follow – Taivna May 26 '17 at 12:10
  • @Taivna - It would be really helpful if you provided (a lot) more information about the "standard [you] have to follow". So far, you've been entirely silent about this presumably rather important aspect. – Mico May 26 '17 at 12:38
  • I gave up on trying to resizing my tables, instead I just used your example of longtable, thank you. I upvoted on your answer, but doesn't count since my reputation is below 15.. – Taivna May 28 '17 at 2:53

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.