tabularx делает нежелательный перенос строки

tabularx делает нежелательный перенос строки

Как следует из названия, Tabluarx заставляет меня делать нежелательный перенос строки, когда я заполняю только одну страницу в таблице.

В конкретном контексте это список плюсов и минусов.

\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}

введите описание изображения здесь

Есть ли способ это остановить?

Непохожий вопрос: есть ли простой способ заменить основной текст на Lorem Ipsum?

решение1

Я хотел бы порекомендовать вам перестроить содержимое таблицы следующим образом:

  1. содержимое обоих столбцов должно быть организовано как отдельные списковые среды,

  2. не используйте вертикальные линии, а горизонтальные линии с достаточным интервалом, например \midrule(предоставляются пакетом booktabs),

  3. используйте enumitemпакет для настройки внешнего вида спископодобных сред, включая вертикальное разделение между элементами, и

  4. откажитесь от таких инструкций, как \fontsize{9pt}{13pt}\selectfont, \renewcommand{\arraystretch}{1.8}; и , \vspace{4pt}поскольку они очень неуклюжи и (по сути) напрашиваются на неприятности.

введите описание изображения здесь

\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}

решение2

Я не уверен, где вы это нашли X<{\vspace{4pt}\hsize=#1\hsize}, но это действительно неверно по многим параметрам.

Настройка \hsizeдолжна быть сделана в начале, а не в конце. И \vspace{4pt}наносит вред.

Пример с \vspace{4pt}в конце

\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}

введите описание изображения здесь

Пример без \vspace{4pt}в конце

\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}

введите описание изображения здесь

В чем разница?

Потому что \vspace{4pt}он вставляется после распорки, добавленной в конце ячейки, и эффект совершенно непредсказуем.

решение3

Для вертикального центрирования текста в каждой ячейке можно использовать mтип столбца из arrayпакета. Также для лучшего центрирования можно использовать Xтип столбца из tabularxпакета.

PS: Шрифт вашего рисунка — Arial (я думаю).

\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}

введите описание изображения здесь

Связанный контент