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}

在此处输入图片描述

相关内容