PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Leerzeilen um Aufzählungen entfernen!?



fünfhaus
27-03-2018, 19:37
Hab eine Frage zu Aufzählungen: In der DIN 5008 steht z. B., dass man Beginn und Ende der Aufzählungen vom übrigen Text durch eine Leerzeile trennen soll. Wenn allerdings in z. B. einer Tabelle kein übriger Text vorhanden ist? Hier ein Minimalbeispiel:



\documentclass[12pt,paper=a4]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage{booktabs}
\usepackage{blindtext}
\usepackage{tabularx}
\usepackage{paralist}
%
%
\begin{document}
%
%
\begin{tabularx}{\textwidth}{XXX}
\toprule
\blindtext
&
\begin{itemize}
\item Text
\item Text
\end{itemize}
&
\begin{compactitem}
\item Text
\item Text
\end{compactitem}
\\
\bottomrule
\end{tabularx}
%
%
\end{document}


Bei der itemize-Umgebung ist die Leerzeile ja schon sehr groß. Sieht nicht besonders schön aus. Bei der compactitem-Umgebung ist der Abstand etwas kleiner. Wie würdet ihr das machen? Gibt es da Empfehlungen? (Duden oder DIN etc.) Wie könnte man den Abstand um die Liste komplett empfehlen?

rais
28-03-2018, 13:04
ich würde mir etwas in dieser Art zusammenzimmern:


\documentclass[12pt,paper=a4]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage{booktabs}
\usepackage{blindtext}
\usepackage{tabularx}
%
\newif\iftifirst
\tifirstfalse
\newlength\tiwidth
\newenvironment{tabitem}{%
\tifirsttrue
\newcommand\titem[1][\textbullet]{%
\iftifirst
\typeout{+++ first line detected (\the\hsize/\the\tiwidth)}%<-- nur zur Kontrolle
\global\tifirstfalse
\else
\tabularnewline% vorherige Zeile beenden
\fi
##1&%
}%
\settowidth\tiwidth{\textbullet}%
\addtolength\tiwidth{2\tabcolsep}%
\setlength\tiwidth{-\tiwidth}%
\addtolength\tiwidth{\hsize}% \tiwidth = \hsize - 2\tabcolsep - Breite(\textbullet)
\begin{tabular}[t]{@{}rp{\tiwidth}@{}}}
{\end{tabular}}
%
\begin{document}
%
%
\noindent%<-- damit die tabularx-Umgebung nicht nach rechts rausgeschoben wird
\begin{tabularx}{\textwidth}{XXX}
\toprule
\blindtext
&
\begin{itemize}
\item Text
\item Text
\end{itemize}
&
\begin{tabitem}
\titem Text
\titem hier ein etwas längerer Text, damit auch ein Zeilenumbruch zustande kommt
\titem bla
\end{tabitem}
\\
\bottomrule
\end{tabularx}
%
%
\end{document}

VG

fünfhaus
04-04-2018, 16:33
Vielen Dank! Ich hätte wirklich gedacht, dass das einfacher geht. Ist der Abstand des Textes nach oben zur \toprule eigentlich exakt gleich?

rais
04-04-2018, 20:05
Ich hätte wirklich gedacht, dass das einfacher geht.

Gerade bei LaTeX gibt es oft diverse Möglichkeiten, ein Ziel zu erreichen... für mich war es in diesem Fall `einfacher', die Liste als Tabelle auszugeben, als zu schauen, woher dieser vertikale Abstand bei der ursprünglichen Liste konkret herkam.
Es muss ja nicht `die' Lösung sein ;-)

Ist der Abstand des Textes nach oben zur \toprule eigentlich exakt gleich?
Das hängt von den verwendeten Texten ab: nicht alle Buchstaben haben die gleiche Höhe.
Die Grundlinien der jeweils ersten Zeile sind jedenfalls aneinander ausgerichtet.
Ich hab da mal ein paar Hilfslinien ergänzt:


\documentclass[12pt,paper=a4]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage{booktabs}
\usepackage{blindtext}
\usepackage{tabularx}
\usepackage{xcolor}
%
\newif\iftifirst
\tifirstfalse
\newlength\tiwidth
\newlength\foo
\newenvironment{tabitem}{%
\tifirsttrue
\newcommand\titem[1][\textbullet]{%
\iftifirst
\typeout{+++ first line detected (\the\hsize/\the\tiwidth)}%<-- nur zur Kontrolle
\global\tifirstfalse
\else
\tabularnewline% vorherige Zeile beenden
\fi
##1&%
}%
\settowidth\tiwidth{\textbullet}%
\addtolength\tiwidth{2\tabcolsep}%
\setlength\tiwidth{-\tiwidth}%
\addtolength\tiwidth{\hsize}% \tiwidth = \hsize - 2\tabcolsep - Breite(\textbullet)
\begin{tabular}[t]{@{}rp{\tiwidth}@{}}}
{\end{tabular}}
%
\begin{document}
%
%
\noindent%<-- damit die tabularx-Umgebung nicht nach rechts rausgeschoben wird
\begin{tabularx}{\textwidth}{XXX}
\toprule
\makebox[0pt][l]{\color{red!75!black}\rule{2.9\hsize}{0.4pt}{\tiny Grundlinie}}%
\makebox[0pt][l]{\raisebox{1ex}{\color{blue!70}\rule{3\hsize}{0.4p t}}}% Höhe von x
\settoheight\foo{t}%
\makebox[0pt][l]{\raisebox{\foo}{\color{blue!45}\rule{3\hsize}{0.4 pt}}}% Höhe von t
\settoheight\foo{l}%
\makebox[0pt][l]{\raisebox{\foo}{\color{blue!25}\rule{3\hsize}{0.4 pt}}}% Höhe von l
\blindtext
&
\begin{itemize}
\item Text
\item Text
\end{itemize}
&
\begin{tabitem}
\titem Text
\titem hier ein etwas längerer Text, damit auch ein Zeilenumbruch zustande kommt
\titem bla
\end{tabitem}
\\
\bottomrule
\end{tabularx}
%
%
\end{document}

Ggf. verschiebt die hier oberste Hilfslinie das Ergebnis (im Vergleich zu vorher) um deren Linienstärke nach unten, das hab ich jetzt nicht geprüft und ist auch eher nebensächlich. Lass sie ggf. weg für eine direkte Gegenüberstellung vorher/nachher.

VG

u_fischer
13-04-2018, 09:19
\documentclass[12pt,paper=a4]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage{booktabs}
\usepackage{blindtext}
\usepackage{tabularx}
\usepackage{paralist}
%
%
\begin{document}
%
%
\begin{tabularx}{\textwidth}{XXX}
\toprule
\blindtext
&\csname @minipagetrue\endcsname
\begin{itemize}
\item Text
\item Text
\end{itemize}
&\csname @minipagetrue\endcsname
\begin{compactitem}
\item Text
\item Text
\end{compactitem}
\\
\bottomrule
\end{tabularx}
%
%
\end{document}