item-Abstände und Textabstände zu Linien in Tabelle anpassen

Tabellen und Grafiken erstellen und anordnen


kla4dj
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 92
Registriert: Mo 12. Sep 2011, 14:36

item-Abstände und Textabstände zu Linien in Tabelle anpassen

Beitrag von kla4dj »

Hallo,

in der folgenden Tabelle möchte ich sowohl die Aufzählungen weiter links zur vertikalen Linie haben, als auch weniger weit weg von der oberen horizontalen Linie. Außerdem sind die Abstände so riesig zwischen den Aufzählungspunkten.

Für die anderen Zellen Kurzbeschreibung und Fachlicher Auslöser hätte ich gerne, dass die weniger dicht an der oberen horizontalen Linie kleben. So eleganz wie in der Zeile Use Case Name.

Mit meinen Lösungsansätzen bin ich augenscheinlich nicht zu Rande gekommen, deshalb hier die Bitte um Hilfe.


documentclass[12pt,a4paper]{scrreprt}
\usepackage{booktabs}
\usepackage[table]{xcolor}


\begin{document}

\begin{table}[htbp]
\centering
\small
\caption{Ueberschrift}

\begin{tabular}{p{3,5cm}|p{11cm}}

\toprule

\textbf{Use-Case Name} & Hier kommt ein bisschen Text rein der länger wird und somit über zwei Zeilen geschrieben steht.  \\ \midrule

\textbf{Akteure} & Akteur 1, Akteur 2, Akteur 3 \\ \hline

\textbf{Kurzbeschreibung}  & Mittelmäßig viel Fließtext der einen Sachverhalt kurz beschreiben soll und trotzdem über mehrere Zeilen geht. Die Darstellung verschiebt sich dabei von Use Case zu Use Case und eine ständige Anpassung ist deshalb umständlich. \\ \hline

\textbf{Fachlicher Auslöser} \par\vspace{1\baselineskip}\null  &    Masterand \\ \hline

\textbf{Vorbedinung}\par\vspace{1\baselineskip}\null  & 
\begin{itemize}
\item[--] Punkt 1
\item[--] Punkt 2
\item[--] Punkt 3
\end{itemize}

\\ 

\bottomrule                                                                            
\end{tabular}
\end{table}



\end{document}

Noch so einer

Beitrag von Noch so einer »

Für die Liste →enumitem.
Für die größeren Linienabstände siehe \midrule in [d]booktabs[/d].

Noch so einer

Beitrag von Noch so einer »

Nachtrag:
\documentclass[12pt,a4paper,captions=tableheading]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage{booktabs}
\usepackage[table]{xcolor}
\usepackage{enumitem}
\newcommand*{\tabtopic}[1]{\textbf{#1}}

\begin{document}

\begin{table}[htbp]
\centering
\small
\caption{Ueberschrift}

\begin{tabular}{p{3,5cm}p{11cm}}
\toprule
\tabtopic{Use-Case Name} & Hier kommt ein bisschen Text rein der länger wird und somit über zwei Zeilen geschrieben steht.  \\ 
\midrule
\tabtopic{Akteure} & Akteur 1, Akteur 2, Akteur 3 \\
\midrule
\tabtopic{Kurzbeschreibung}  & Mittelmäßig viel Fließtext der einen Sachverhalt kurz beschreiben soll und trotzdem über mehrere Zeilen geht. Die Darstellung verschiebt sich dabei von Use Case zu Use Case und eine ständige Anpassung ist deshalb umständlich. \\ 
\midrule
\tabtopic{Fachlicher Auslöser} &    Masterand \\ 
\midrule
\tabtopic{Vorbedingung} & 
\begin{minipage}[t]{11cm}
\begin{itemize}[nosep,label={\strut--},leftmargin=*]
\item Punkt 1
\item Punkt 2
\item Punkt 3
\end{itemize}
\end{minipage}\\ 
\bottomrule                                                           
\end{tabular}
\end{table}

\end{document}
Wird zusätzlicher vertikaler Abstand benötigt, sei auf »Zeilenende in einer Tabelle mit zusätzlichem Zeilenabstand« hingewiesen.

kla4dj
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 92
Registriert: Mo 12. Sep 2011, 14:36

Beitrag von kla4dj »

Sehr cool. Im Overleaf zeigt es mir alles perfekt an, so wie ich es haben möchte. Wenn ich es aber in mein Originaldokument einfüge, bekomme ich sowas, wie das Bild im Anhang. An was kann das liegen?

So sieht mein Code aus, ist jedoch in meinem Orginaldokument angepasst. Aber das sollte ja keine Rolle spielen, oder?
\documentclass[12pt,a4paper,captions=tableheading]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage{booktabs}
\usepackage[table]{xcolor}
\usepackage{enumitem}
\newcommand*{\tab}[1]{\textbf{#1}}

\begin{document}



\begin{table}[htbp]
\centering
\small
\caption{Ueberschrift}

\begin{tabular}{p{3,5cm}|p{11cm}}

\toprule \addlinespace

\tab{Use-Case Name} & Hier kommt ein bisschen Text rein der länger wird und somit über zwei Zeilen geschrieben steht.   \\[0,5\normalbaselineskip] \midrule \addlinespace

\tab{Akteure} & AAkteur 1, Akteur 2, Akteur 3 \\ [0,5\normalbaselineskip] \hline \addlinespace

\tab{Kurzbeschreibung}  & Mittelmäßig viel Fließtext der einen Sachverhalt kurz beschreiben soll und trotzdem über mehrere Zeilen geht. Die Darstellung verschiebt sich dabei von Use Case zu Use Case und eine ständige Anpassung ist deshalb umständlich. Trotzdem klebt der Text bei allen Punkten sehr an der oberen und unteren Linie. \\ [0,5\normalbaselineskip] \hline \addlinespace

\tab{Fachlicher Auslöser}   &   Masterand \\ [0,5\normalbaselineskip]\hline \addlinespace

\tab{Vorbedingung}  & 
\begin{minipage}[t]{11cm}
\begin{itemize}[nosep,label={\strut--},leftmargin=*]
\item Punkt 1
\item Punkt 2
\item Punkt 3 
\end{itemize}
\end{minipage}\\ [0,5\normalbaselineskip]\hline \addlinespace

\tab{Szenario}  & 

\begin{minipage}[t]{11cm}
\begin{itemize}[nosep,leftmargin=*]
\item[1.] Wirklich, Text du klebst ganz schön weit oben an der oberen Linie
\item[10.] Schade, dass die 10 hier abgeschnitten wird.

\end{itemize}
\end{minipage}\\ [0,5\normalbaselineskip]

\bottomrule                                                                            
\end{tabular}
\end{table}
 

\end{document}
Dateianhänge
kla4djTabelleItem.png
kla4djTabelleItem.png (40.76 KiB) 3967 mal betrachtet

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

Pakete haben Anleitungen, in die man schauen kann, wenn man etwas anpassen möchte. Noch so einer hat Dir oben schon entsprechende Links angegeben.

Wenn Du breitere Label als das Standardlabel verwenden willst, kannst Du zum Beispiel einfach leftmargin anpassen. Wenn Du mehrere Aufzählungen hast, bei denen der Text gleich weit eingezogen sein soll, empfiehlt es sich eine neue Aufzählung zu definieren. Dann müssen Anpassungen nur noch an einer Stelle erfolgen.

Nach dem Laden von booktabs empfiehlt es sich auf \hline zu verzicheten und statt dessen konsequent nur \toprule, \midrule und \bottomrule zu verwenden. Will man den Abstand vor und nach allenLinien vergrößern, dann fügt man nicht überall \addlinespace ein, sondern ändert \aboverulesep und \belowrulesep entsprechend ab.
\documentclass[12pt,a4paper,captions=tableheading]{scrreprt} 
\usepackage[utf8]{inputenc}
\usepackage{booktabs} 
%\usepackage[table]{xcolor} % im Beispiel nicht verwendet
\usepackage{enumitem}
\newlist{titemize}{itemize}{1}
\setlist[titemize]{nosep,leftmargin=1.5em,label={\strut--}}

\newcommand*{\tab}[1]{\textbf{#1}} 
\begin{document} 

\begin{table}[htbp] 
\centering 
\small 
\caption{Ueberschrift}

\addtolength\aboverulesep{.5cm}% .5cm zusätzlich über Linien
\addtolength\belowrulesep{.5cm}% .5cm zusätzlich unter Linien

%\begin{tabular}{p{3,5cm}|p{11cm}} 
\begin{tabular}{p{3,5cm}p{11cm}}
\toprule
\tab{Use-Case Name} & Hier kommt ein bisschen Text rein der länger wird und somit über zwei Zeilen geschrieben steht.   \\\midrule  

\tab{Akteure} & AAkteur 1, Akteur 2, Akteur 3 \\ \midrule 

\tab{Kurzbeschreibung}  & Mittelmäßig viel Fließtext der einen Sachverhalt kurz beschreiben soll und trotzdem über mehrere Zeilen geht. Die Darstellung verschiebt sich dabei von Use Case zu Use Case und eine ständige Anpassung ist deshalb umständlich. Trotzdem klebt der Text bei allen Punkten sehr an der oberen und unteren Linie. \\ [0,5\normalbaselineskip] \midrule

\tab{Fachlicher Auslöser}   &   Masterand \\ \midrule

\tab{Vorbedingung}  & 
\begin{minipage}[t]{11cm} 
\begin{titemize}
\item Punkt 1 
\item Punkt 2 
\item Punkt 3\strut 
\end{titemize} 
\end{minipage}\\ \midrule

\tab{Szenario}  & 

\begin{minipage}[t]{11cm} 
\begin{titemize} 
\item[1.] Wirklich, Text du klebst ganz schön weit oben an der oberen Linie 
\item[10.] Schade, dass die 10 hier abgeschnitten wird.\strut 
\end{titemize} 
\end{minipage}\\
\bottomrule
\end{tabular} 
\end{table} 
\end{document}
Gruß
Elke

kla4dj
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 92
Registriert: Mo 12. Sep 2011, 14:36

Beitrag von kla4dj »

Hey Elke,

das mit deinem Vorschlag funktioniert jetzt in meiner Probe-pdf wunderbar. Wenn ich das aber nun in meine Originaldatei übertrage, in der ich ganz viele weitere itemize habe, kollidiert mir das ganze.

Was müsste ich denn im Header ändern, dass ich deine Tabelle verwenden und meine alten itemize weiterhin benutzen kann.

Ich nehme mal an, dass es an diesen Zeilen liegt und ich irgendeine Ergänzung benötige:
\usepackage{enumitem}
\newlist{titemize}{itemize}{1}
\setlist[titemize]{nosep,leftmargin=1.5em,label={\strut--}}
Vielen Dank für Deine Hilfe schonmal!

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

Du wirst schon ein kleines Beispiel mit so einem "alten" itemize machen müssen, das Dein Problem zeigt.

kla4dj
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 92
Registriert: Mo 12. Sep 2011, 14:36

Beitrag von kla4dj »

Hm, ich bekomme die gleiche Fehlermeldung nicht in einem Minimalbeispiel rekonstruiert. Hier mal, was meine Original-TeX-Version ausspuckt:
! Undefined control sequence.
\enit@enditemize ->\enit@after
\endlist \ifx \enit@series \relax \else \ifnu...
l.59 \end{itemize}
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.
! Undefined control sequence.
\enit@enditemize ...x \else \ifnum \enit@resuming
=\@ne \enit@setresumekeys ...
l.59 \end{itemize}
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.
! Missing number, treated as zero.
<to be read again>
=
l.59 \end{itemize}
A number should have been here; I inserted `0'.
(If you can't figure out why I needed to see a number,
look up `weird error' in the index to The TeXbook.)
! Undefined control sequence.
\enit@setresumekeys ...xpandafter {\enit@savekeys
}\xdef \enit@afterlist {#2...
l.59 \end{itemize}
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.
! Undefined control sequence.
\enit@setresumekeys ...it@toks }\ifnum \enit@type
=\z@ #3\def \enit@noexcs {...
l.59 \end{itemize}
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.
! Missing number, treated as zero.

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

kla4dj hat geschrieben:Hm, ich bekomme die gleiche Fehlermeldung nicht in einem Minimalbeispiel rekonstruiert. Hier mal, was meine Original-TeX-Version ausspuckt
Zumindest ich kann damit nichts anfangen und auch nicht erraten, was bei Dir schief läuft. Wenn Du von meinem Beispiel ausgehend keines mit dem Problem erstellen kannst, dann gehe den umgekehrten Weg und reduziere eine Kopie (!) Deines Dokumentes wie in Minimalbeispiel beschrieben. Vielleicht findest Du die Ursache dabei selbst.

kla4dj
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 92
Registriert: Mo 12. Sep 2011, 14:36

Beitrag von kla4dj »

Hab das Problem gefunden. Das Package paralist ist nicht mit enumerate verträglich.

Hab jetzt nur noch ein Problem.

Möchte gerne eine Aufzählung im Fließtext, die folgendermaßen aussieht:

[1] Das ist eine Liste.
[2] Das ist der zweite Punkt.

Ich versuche es gerade mit dem enumerate-package, aber das funktioniert nicht:
\begin{enumerate}[label={[\arabic*]}]
\item A
\item B
\end{enumerate}

Wie bekomme ich das mit enumerate oder enumite hin?

Antworten