3

As the title says, Tabluarx makes me an unwanted line break when I fill only one page in a table.

In the specific context, this is a list of pros and cons.

\documentclass[%
    fontsize=11pt, 
    twoside=off
]{scrbook}

\usepackage{tabularx} 
\usepackage[tablewithout, figurewithout]{caption}

%tabelles
\renewcommand{\arraystretch}{1.8}
\newcolumntype{M}[1]{X<{\vspace{4pt}\hsize=#1\hsize}} 
%original: \newcolumntype{M}{X<{\vspace{4pt}}}
%one of both I **have** to use
 
%font
\usepackage[scaled]{helvet}
\renewcommand{\familydefault}{\sfdefault}

\begin{document}
\begin{table}[!h]
    \fontsize{9pt}{13pt}\selectfont
    \begin{tabularx}{\textwidth}{ M{1} | M{1} }
        \textbf{Vorteile}& \textbf{Nachteile}\\
        \hline
        + einfache, leicht nachvollziehbare Funktionsweise & - hoher Wartungsaufwand, regelmäßiger Ölwechsel \\ 
        + Signalleitung über die Tragkonstruktion möglich & - empfindlich für mechanische Beschädigung \\
        + nur geringer Strombedarf für die Aufzeichnung & - sehr anfällig für Belegung mit Treibzeug, Kraut \\
        + langlebig & - Blockade durch Sandkörner, Vereisung möglich\\
        & - großer zeitlicher Aufwand bei Hochwasser\\%
        & - Beeinflussung durch Schiffstoß und Eis\\%
    \end{tabularx}
    \caption{Vor- und Nachteile des Messflügels}
    \label{Pro/Con Messflügel Einzelmesspunkt}
\end{table}
\end{document}

enter image description here

Is there a way to stop that?

An unrelated question: Is there an easy way to replace your body text with lorem Ipsum?

10
  • please provide an example that shows the problem. the code posted has no \begin{document} and no definition of M Commented Jan 2 at 12:40
  • 1
    no, not if you want anyone to debug the issue and test answers. How could anyone guess why some undefined column type has some space shown in th image, thanks for adding now Commented Jan 2 at 12:48
  • 2
    \newcolumntype{M}[1]{X<{\vspace{4pt}\hsize=#1\hsize}} is very weird you change the with of (just) the last paragraph in each cell, leaving other paragraphs unchanged Commented Jan 2 at 12:50
  • 2
    If you use a normal X the problem does not appear. Commented Jan 2 at 12:53
  • 1
    As for your unrelated question: \usepackage{lipsum}, and then \lipsum[n-m] to print paragraphs n through m
    – elutionary
    Commented Jan 2 at 21:53

3 Answers 3

5

I would like to recommend that you rearrange the table's contents as follows:

  1. the contents of both columns should be organized as separate list-like environments,

  2. don't use vertical rules, but well-spaced horizontal rules such as \midrule (provided by the booktabs package),

  3. use the enumitem package to customize the appearance of the list-like enviroments, including the vertical separation between items, and

  4. do away with instructions such as \fontsize{9pt}{13pt}\selectfont, \renewcommand{\arraystretch}{1.8}; and \vspace{4pt} as they are very clumsy and are (essentially) asking for trouble.

enter image description here

\documentclass[fontsize=11pt,twoside=off]{scrbook}

\usepackage[tablewithout, figurewithout]{caption}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}

%tabelles
\usepackage{tabularx,ragged2e} 
\newcolumntype{L}{>{\RaggedRight}X} % suppress justification

\usepackage[scaled]{helvet} % are you sure you need the 'scaled' option?
\renewcommand{\familydefault}{\sfdefault}

\usepackage{enumitem} % for \newlist and \setlist macros
\newlist{myitemize}{itemize}{1} % create a bespoke list-like env.
\setlist[myitemize]{label=\textbullet, left=0pt,
     itemsep=1ex, % set as needed/desired
     before={\begin{minipage}[t]{\hsize}},
     after={\end{minipage}}}
     
\usepackage{booktabs} % for '\midrule' macro

\begin{document}

\begin{table}[ht]
\footnotesize % instead of '\fontsize{9pt}{13pt}\selectfont'
\begin{tabularx}{\textwidth}{@{} LL @{}} % note: no vertical rule
\textbf{Vorteile} & \textbf{Nachteile} \\
\midrule
\begin{myitemize}
\item Einfache, leicht nachvollziehbare Funktionsweise 
\item Signalleitung über die Tragkonstruktion möglich 
\item Nur geringer Strombedarf für die Aufzeichnung 
\item Langlebig
\end{myitemize}
&
\begin{myitemize}
\item Hoher Wartungsaufwand, regelmäßiger Ölwechsel
\item Empfindlich für mechanische Beschädigung
\item Sehr anfällig für Belegung mit Treibzeug, Kraut
\item Blockade durch Sandkörner, Vereisung möglich
\item Großer zeitlicher Aufwand bei Hochwasser
\item Beeinflussung durch Schiffstoß und Eis
\end{myitemize}\\
\end{tabularx}
\caption{Vor- und Nachteile des Messflügels}
\label{Pro/Con_Messflügel_Einzelmesspunkt}
\end{table}

\end{document}
4
  • Thanks, @Mico, that looks pretty good. Is there a way to change the dots to + and -? Regarding your Question about the "scaled". I have no idea it is one of the things I have to use.
    – FloB
    Commented Jan 2 at 13:46
  • 1
    @FloB - I would NOT use + and - symbols as labels for list items. They may look cute at first; however, they'll quickly start to look like "too cute for their own good" -- and thus start to look embarassing. If you absolutely, positively must use + and - instead of \textbullet, I would suggest you (a) create two separte list-like environments called, say, myitemizeplus and myitemizeminus and (b) write label=$+$ and label=$-$ instead of label=\textbullet inside the respective \setlist directives.
    – Mico
    Commented Jan 2 at 13:50
  • good point. I won't use it. Is there a difference between \usepackage{tabularx,ragged2e} and \usepackage{tabularx} and do I have to state both?
    – FloB
    Commented Jan 2 at 14:02
  • 1
    @FloB - The ragged2e package provides the \RaggedRight macro, which is used in the definition of the L column type.
    – Mico
    Commented Jan 2 at 14:09
4

I'm not sure where you found X<{\vspace{4pt}\hsize=#1\hsize}, but it's really wrong under many respects.

The \hsize setup should be done at the beginning, not at the end. And \vspace{4pt} is doing damage.

Example with \vspace{4pt} at the end

\documentclass[
  fontsize=11pt, 
  twoside=off
]{scrbook}

\usepackage{tabularx} 
\usepackage[tablewithout, figurewithout]{caption}

\renewcommand{\arraystretch}{1.8}
\newcolumntype{M}[1]{>{\hsize=#1\hsize}X<{\vspace{4pt}}}

\begin{document}

\begin{table}[!htp]

\fontsize{9pt}{13pt}\selectfont

\begin{tabularx}{\textwidth}{ M{1} | M{1} }
  \textbf{Vorteile}& \textbf{Nachteile}\\
  \hline
  + einfache, leicht nachvollziehbare Funktionsweise &
  - hoher Wartungsaufwand, regelmäßiger Ölwechsel \\ 
  + Signalleitung über die Tragkonstruktion möglich &
  - empfindlich für mechanische Beschädigung \\
  + nur geringer Strombedarf für die Aufzeichnung &
  - sehr anfällig für Belegung mit Treibzeug, Kraut \\
  + langlebig &
  - Blockade durch Sandkörner, Vereisung möglich \\
  &
  - großer zeitlicher Aufwand bei Hochwasser \\
  &
  - Beeinflussung durch Schiffstoß und Eis \\
\end{tabularx}

\caption{Vor- und Nachteile des Messflügels}
\label{Pro/Con Messflügel Einzelmesspunkt}

\end{table}

\end{document}

enter image description here

Example without \vspace{4pt} at the end

\documentclass[
  fontsize=11pt, 
  twoside=off
]{scrbook}

\usepackage{tabularx} 
\usepackage[tablewithout, figurewithout]{caption}

\renewcommand{\arraystretch}{1.8}
\newcolumntype{M}[1]{>{\hsize=#1\hsize}X}

\begin{document}

\begin{table}[!htp]

\fontsize{9pt}{13pt}\selectfont

\begin{tabularx}{\textwidth}{ M{1} | M{1} }
  \textbf{Vorteile}& \textbf{Nachteile}\\
  \hline
  + einfache, leicht nachvollziehbare Funktionsweise &
  - hoher Wartungsaufwand, regelmäßiger Ölwechsel \\ 
  + Signalleitung über die Tragkonstruktion möglich &
  - empfindlich für mechanische Beschädigung \\
  + nur geringer Strombedarf für die Aufzeichnung &
  - sehr anfällig für Belegung mit Treibzeug, Kraut \\
  + langlebig &
  - Blockade durch Sandkörner, Vereisung möglich \\
  &
  - großer zeitlicher Aufwand bei Hochwasser \\
  &
  - Beeinflussung durch Schiffstoß und Eis \\
\end{tabularx}

\caption{Vor- und Nachteile des Messflügels}
\label{Pro/Con Messflügel Einzelmesspunkt}

\end{table}

\end{document}

enter image description here

Why the difference?

Because \vspace{4pt} is inserted after the strut added at the end of the cell and the effect is completely unpredictable.

1
  • 1
    +1 for the detailed explanation of why the \vspace{4pt} approach is, ahem, highly problematic.
    – Mico
    Commented Jan 2 at 14:16
3

To center the text vertically in each cell, you can use the m column type from the array package. Also, for better centering, you can use the X column type from the tabularx package.

PS: The font of your figure is an Arial (I think).

\documentclass[%
    fontsize=11pt, 
    twoside=off
]{scrbook}
\usepackage{tabularx} 
\usepackage[tablewithout, figurewithout]{caption}
\usepackage{array} 

\begin{document}

\begin{table}[!h]
    \fontsize{9pt}{13pt}\selectfont
    \begin{tabularx}{\textwidth}{ X | X }
        \textbf{Vorteile} & \textbf{Nachteile} \\
        \hline
        + einfache, leicht nachvollziehbare Funktionsweise & - hoher Wartungsaufwand, regelmäßiger Ölwechsel \\ 
        + Signalleitung über die Tragkonstruktion möglich & - empfindlich für mechanische Beschädigung \\
        + nur geringer Strombedarf für die Aufzeichnung & - sehr anfällig für Belegung mit Treibzeug, Kraut \\
        + langlebig & - Blockade durch Sandkörner, Vereisung möglich\\
        & - großer zeitlicher Aufwand bei Hochwasser\\
        & - Beeinflussung durch Schiffstoß und Eis\\
    \end{tabularx}
    \caption{Vor- und Nachteile des Messflügels}
    \label{Pro/Con Messflügel Einzelmesspunkt}
\end{table}

\end{document}

enter image description here

5
  • Hey, I had forgotten some code (e.g. the font). Sadly the M is something I have to use since it is a text for the University
    – FloB
    Commented Jan 2 at 12:51
  • @FloB It gave me an error with the M.
    – Sebastiano
    Commented Jan 2 at 12:53
  • 3
    @FloB do not use M as defined it is simply wrong. Commented Jan 2 at 12:54
  • 1
    If you tell me how I get the \vspace{4pt} for every column I would love to.
    – FloB
    Commented Jan 2 at 13:03
  • 1
    @FloB \addtolength\extrarowheight{4pt} Commented Jan 2 at 14:03

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .