Entfernen Sie das Leerzeichen über der Liste „itemize“ in der Tabellenumgebung.

Entfernen Sie das Leerzeichen über der Liste „itemize“ in der Tabellenumgebung.

itemizeIch möchte eine -Liste in eine -Umgebung einbinden table, und zwar kompakt und um Platz zu sparen. Allerdings entsteht oberhalb der Liste eine große Lücke, wenn sie in der Tabelle steht, aber nicht nach einem Absatz im normalen Text:

\documentclass[12pt]{scrbook}
%\usepackage[autooneside=false, headsepline, plainheadsepline, automark]{scrlayer-scrpage}
\linespread{1}
\usepackage{paralist}
\usepackage{enumitem} % enumerate?
\usepackage{tabularx}

\begin{document}
some text
\begin{compactitem}  \item  point1  \item point2 \end{compactitem}
\begin{table}[ht!]
    \setlength{\leftmargini}{7pt}
    \begin{tabularx}{\linewidth}{l | X | X }\hline \hline
        & ECB& FED\\ \hline
    M1 & \begin{itemize}[noitemsep,topsep=0pt]   \item  point1  \item point2 \end{itemize} 
      & \begin{compactitem}  \item  point1  \item point2   \end{compactitem}
    \end{tabularx}
\end{table}

\end{document}

Wie Sie sehen, habe ich sowohl das compactitemfrom- paralistPaket als auch itemizefrom enumitemmit seinen Optionen getestet [noitemsep,topsep=0pt]. Sie erzeugen leicht unterschiedliche Höhen. Dies funktioniert zwischen normalen Absätzen, in der Tabelle jedoch nicht.Ich möchte, dass sich „Punkt1“ auf der gleichen Ebene befindet wie „M1“.

Bildbeschreibung hier eingeben


Dieses hier, mit einer leichten Einrückung, die bei einem Zeilenumbruch sichtbar ist (das Wort "Assets" beginnt etwas weiter rechts als das Wort "during"), ist das Ergebnis von

\begin{minipage}[t]{\hsize}\begin{compactitem}
 \item Assets can be \textbf{difficult to value} during periods of hyperinflation
\end{compactitem}\end{minipage}

Bildbeschreibung hier eingeben


Vergleich der beiden vorgeschlagenen Lösungen:Das folgende MWE vergleicht die beiden Lösungen direkt und definiert neue Umgebungen mit dem Namen compactitemtund compactitemm.

\documentclass%[12pt,abstracton,titlepage,parskip=false, no, no,twoside=true,open=right]
{scrbook}
%\usepackage[autooneside=false, headsepline, plainheadsepline, automark]{scrlayer-scrpage}

%\usepackage{listings}
\usepackage{paralist}
%\usepackage{newtxtext}%antpolt mathpazo %\usepackage{mathptmx} %\usepackage{newtxtext} 
\usepackage{enumitem} % enumerate?
\newenvironment{compactitemm}{\begin{minipage}[t]{\hsize}\begin{compactitem}}{\end{compactitem}\end{minipage}} %this solution requires enumitem package
\newenvironment{compactitemt}{\begin{itemize}[nosep, wide=0pt,
  %left=0pt %for neat, wide=0pt %for flush left to save space
  before={\begin{minipage}[t]{\hsize}},
  after ={\end{minipage}} ]   }{ \end{itemize} }
\renewcommand{\familydefault}{\sfdefault}

\usepackage{tabularx}

\begin{document}

\begin{table}
\setlength{\leftmargini}{7pt} %this impacts the left margin of itemize package, i.e. ``stuff 2'' in table. 7pt aligns with the other solution. 
\begin{tabularx}{\linewidth}{X | X }\hline
\multicolumn{2}{c}{stuff 1}\\ \hline
\begin{compactitemt}
  \item x This line should break and we see where the next begins
  \item y
  \item z
\end{compactitemt}
& \begin{compactitemt}
  \item a This line should break and we see where the next begins
  \item b
\end{compactitemt}\\ \hline 
\multicolumn{2}{c}{stuff 2}\\ \hline
\begin{compactitemm}
  \item x This line should break and we see where the next begins
  \item y
  \item z This line should break and we see where the next begins
\end{compactitemm}
& \begin{compactitemm}
  \item a This line should break and we see where the next begins
  \item b
\end{compactitemm}\\ \hline 
\end{tabularx}
\caption{MWE}
\end{table}

\end{document}

Bildbeschreibung hier eingeben

Antwort1

  • Wenn Sie die Umgebung verwenden compactitem, müssen Sie sie in \begin{minipage}[t]{\hsize}und \end{minipage}Anweisungen einschließen.
  • Wenn Sie eine itemizeUmgebung zusammen mit dem enumitemPaket verwenden, können Sie die Anweisungen hinzufügen

    before={\begin{minipage}[t]{\hsize}},
    after ={\end{minipage}}
    

    zur Liste der Optionen, die zu gehören \begin{itemize}.

Bildbeschreibung hier eingeben

\documentclass[12pt]{scrbook}
\usepackage{paralist,enumitem,tabularx}
\begin{document}

\begin{table}[ht!]
    \setlength\extrarowheight{2pt} % optional, for a slighly more open "look"
    \setlength{\leftmargini}{7pt}
    \begin{tabularx}{\linewidth}{l | X | X }
    \hline \hline
       & ECB & FED\\ 
    \hline
    M1 & \begin{itemize}[nosep, left=0pt,
                         before={\begin{minipage}[t]{\hsize}},
                         after ={\end{minipage}} ]   
         \item point1  
         \item point2 
         \end{itemize} 
       & \begin{minipage}[t]{\hsize}
         \begin{compactitem}  
         \item point1  
         \item point2   
         \end{compactitem}
         \end{minipage}\\
    \hline
    \end{tabularx}
\end{table}

\end{document}

Antwort2

Für den oberen Bereich reicht es aus, LaTeX glauben zu lassen, dass die Zelle eine Minipage ist. Dafür habe ich einen \compressBefehl aus einer Antwort auf eine Frage auf dieser Site übernommen. Für den unteren Bereich müssen Sie am Ende ein negatives \baselineskip hinzufügen.

\documentclass[12pt]{scrbook}
%\usepackage[autooneside=false, headsepline, plainheadsepline, automark]{scrlayer-scrpage}
\linespread{1}
\usepackage{paralist}
\usepackage{enumitem} % enumerate?
\usepackage{tabularx}
\makeatletter
\newcommand{\compress}{\@minipagetrue}
\makeatother

\begin{document}
some text
\begin{compactitem} \item point1 \item point2 \end{compactitem}
\begin{table}[ht!]
    \setlength{\leftmargini}{7pt}
    \begin{tabularx}{\linewidth}{l | >{\compress}X |>{\compress} X }\hline \hline
        & ECB& FED\\ \hline
    M1 & \begin{itemize}[nosep, after=\vspace{-\baselineskip}] \item point1 \item point2 \end{itemize}\\
\hline
    & & \begin{compactitem} \item point1 \item point2 \end{compactitem}\leavevmode\vspace*{-\baselineskip}
       \\
\hline
    \end{tabularx}
\end{table}

\end{document} 

Dafür habe ich mir den `` \copress`-Befehl ausgeliehen und einen

verwandte Informationen