节省空间的表格逐项列出

节省空间的表格逐项列出

我想在表格中使用项目符号列表。我的问题是左侧空间很大,我的表格基本上有一半是空的。

\tabitem所以我在 StackExchange 上搜索解决方案并找到了一个。它引入了不需要的命令\begin{itemize},并且不会占用左侧太多空间(尽管仍然可以更少)。

\tabitem定义如下:

\newcommand{\tabitem}{~~\llap{\textbullet}~~}

然而,它也有自己的问题:左侧的空间并不是到处都一样。看一下这个表格:

此外,我想要第二级缩进。所以我尝试使用正常缩进\begin{itemize}\item因为无论如何它都会在左侧留出大量空间。

\begin{table}
    \begin{tabularx}{\textwidth}{|>{\setlength\hsize{0.33\hsize}\setlength\linewidth{\hsize}}X|>{\setlength\hsize{0.33\hsize}\setlength\linewidth{\hsize}}X|>{\setlength\hsize{0.33\hsize}\setlength\linewidth{\hsize}}X|}
        \hline
        I-Dateneinheiten & S-Dateneinheiten & U-Dateneinheiten \\
        \hline
        \tabitem Datenübertragung
            \begin{itemize}
                \item Bei gesetztem Poll-Bit: Empfänger muss mit Quittung reagieren.
                \item Sequenznummer N(R) quittiert korrekten Empfang aller Dateneinheiten bis N(R)-1.
            \end{itemize}
        &       
        \tabitem Steuerung des Datenflusses
        \begin{itemize}
            \item z.B. Sendeaufruf, Bestätigung empfangener Daten, ...
            \item Kodierung der Befehle bzw. Meldungen durch S-Bits (Supervisory Funktionsbits)
        \end{itemize}
        &

        \tabitem Steuerung der Verbindung
        \begin{itemize}
            \item keine Empfangsfolgenummern
            \item Kodierung durch M-Bits (Modifier Funktionsbits)
        \end{itemize}
        \\
        \hline

    \end{tabularx}
\end{table}

但是,正如您所看到的,它并没有在中间或右列中脱颖而出,因为\tabitem它的文本没有放在足够靠左的位置。

如何修复此问题?

我想要的东西的摘要:

  • 物品不浪费左侧的空间。
  • 至少 2 级缩进。

答案1

这是一个基于 的解决方案enumitem:它包括使用itemize带有选项 的环境wide=0pt,leftmargin=*,并定义一个tabitemize环境,该环境可消除垂直跳跃,如果单元格的内容必须以itemize环境开头,则使用该环境。此外,我简化了您对列的使用X

    \documentclass{report}
    \usepackage{booktabs, array, enumitem, ragged2e, tabularx, makecell}
\setcellgapes{4pt}
    \usepackage[showframe]{geometry}
    \newcommand{\tablistcommand}{%
      \leavevmode\par\vspace{-\baselineskip}%
    }

    \newlist{tabitemize}{itemize}{1}
    \setlist[tabitemize]{%
      leftmargin = * ,
      label = \textbullet ,
      nosep ,
      before = \tablistcommand ,
      after = \tablistcommand
    }

    \begin{document}
    \thispagestyle{empty}
    \begin{table}
    \makegapedcells
    \begin{tabularx}{\linewidth}{|*{3}{>{\RaggedRight\arraybackslash}X|}}
        \hline
        I-Dateneinheiten & S-Dateneinheiten & U-Dateneinheiten \\
        \hline
        \begin{tabitemize}%
        \item Datenübertragung
            \begin{itemize}[wide=0pt, leftmargin=0pt]
                \item Bei gesetztem Poll-Bit: Empfänger muss mit Quittung reagieren.
                \item Sequenznummer N(R) quittiert korrekten Empfang aller Dateneinheiten bis N(R)-1.
            \end{itemize}
        \end{tabitemize}
        &
       \begin{tabitemize}%
        \item Steuerung des Datenflusses
        \begin{itemize}[wide=0pt, leftmargin=0pt]
            \item z.B. Sendeaufruf, Bestätigung empfangener Daten, ...
            \item Kodierung der Befehle bzw. Meldungen durch S-Bits (Supervisory Funktionsbits)
        \end{itemize}
        \end{tabitemize}
        &
       \begin{tabitemize}%
        \item Steuerung der Verbindung
        \begin{itemize}[wide=0pt, leftmargin=0pt]
            \item keine Empfangsfolgenummern
            \item Kodierung durch M-Bits (Modifier Funktionsbits)
        \end{itemize}
        \end{tabitemize}
        \\[-4pt]
        \hline

    \end{tabularx}
\end{table}

\end{document}

在此处输入图片描述

相关内容