Seite 1 von 1

Problem bei Verwendung von listliketab (Abstand zu groß)

Verfasst: Do 12. Dez 2013, 18:07
von Seban
Hallo zusammen,

Ich möchte in einer itemize-Liste Tabstops verwenden. Da das nicht geht, habe ich es mit listliketab versucht.
http://ftp.fau.de/ctan/macros/latex/con ... iketab.pdf

Das Problem: Der Abstand nach der Liste ist entweder zu groß oder aber die erste Zeile wird komisch formatiert. Im Idealfall ist der Abstand so groß wie bei verwendung einer itemize-Liste. Leider reichen meine LaTeX-Kenntnisse noch nicht aus, den entsprechenden Befehl des Pakets zu finden und zu ändern.

Kann mir jemand helfen?

Grüße & vielen Dank,
Seban

\documentclass[parskip]{scrreprt}

\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[ansinew]{inputenc}
\usepackage{amssymb}
\usepackage{listliketab}
\usepackage{tabularx}

\begin{document}

Abstand zu groß:\\
\storestyleof{itemize}
\begin{listliketab}
	\begin{tabularx}{\textwidth}{Lp{3cm}X}
		\raisebox{.1em}{\tiny{$\blacksquare$}} & Haushund	& Der Haushund ist ein Haustier und wird als Heim- und Nutztier gehalten.\\
		\raisebox{.1em}{\tiny{$\blacksquare$}} & Katze	& Die Hauskatze ist ein fleischfressendes, zur Familie der Katzen gehörendes Säugetier.\\
	\end{tabularx}
\end{listliketab}

Lasse ich im Code eine Zeile frei, ist der Abstand leider zu groß. Im Idealfall wäre der Abstand gleich groß wie bei der Verwendung von itemize.


Erste Zeile seltsam formatiert:\\
\storestyleof{itemize}
\begin{listliketab}
	\begin{tabularx}{\textwidth}{Lp{3cm}X}
		\raisebox{.1em}{\tiny{$\blacksquare$}} & Haushund	& Der Haushund ist ein Haustier und wird als Heim- und Nutztier gehalten.\\
		\raisebox{.1em}{\tiny{$\blacksquare$}} & Katze	& Die Hauskatze ist ein fleischfressendes, zur Familie der Katzen gehörendes Säugetier.\\
	\end{tabularx}
\end{listliketab}
Wenn ich diesen Text im Code unmittelbar auf die listliketab-Umgebung folgen lasse, wird die erste Zeile unvorteilhaft formatiert.

\end{document}

Verfasst: Do 12. Dez 2013, 18:21
von Johannes_B
\documentclass[parskip=true]{scrreprt}

\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{selinput}
\SelectInputMappings{
	adieresis={ä},
	germandbls={ß}
}
\usepackage{blindtext}

\begin{document}
\blindtext

\begin{labeling}{Katze}
\item [Hund] Der Haushund ist ein Haustier und wird als Heim- und Nutztier gehalten.
\item [Katze] Die Hauskatze ist ein fleischfressendes, zur Familie der Katzen gehörendes Säugetier.
\end{labeling}

\blindtext

\begin{description}
\item [Hund] Der Haushund ist ein Haustier und wird als Heim- und Nutztier gehalten.
\item [Katze] Die Hauskatze ist ein fleischfressendes, zur Familie der Katzen gehörendes Säugetier.
\end{description}
\blindtext
\end{document}

Verfasst: Do 12. Dez 2013, 19:52
von Seban
Danke für deine Hilfe, Johannes.

An labeling hatte ich auch gedacht, allerdings muss man dann noch die Abstände anpassen, da sie anders sind als bei Verwendung von itemize. Ich weiß leider nicht wie. Mit listliketab erschien mir das deswegen einfacher.

Vor dem Aufzählunsgzeichen, zw. dem Aufzählungszeichen und dem Label-Text und zw. den einzelnen Punkten vertikal sind die Abstände anders als bei itemize/listliketab. Der Abstand zw. Label und Text ist nicht so wichtig, diesen wählt man bei listliketab ja auch "per Hand".

Wie kann man das anpassen?

\documentclass[parskip]{scrreprt}

\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{selinput}
\SelectInputMappings{
   adieresis={ä},
   germandbls={ß}
}
\usepackage{amssymb}
\usepackage{listliketab}
\usepackage{tabularx}
\usepackage{blindtext}


\begin{document}

\storestyleof{itemize}
\begin{listliketab}
	\begin{tabularx}{\textwidth}{Lp{3cm}X}
		\raisebox{.1em}{\tiny{$\blacksquare$}} & Haushund	& Der Haushund ist ein Haustier und wird als Heim- und Nutztier gehalten.\\
		\raisebox{.1em}{\tiny{$\blacksquare$}} & Katze	& Die Hauskatze ist ein fleischfressendes, zur Familie der Katzen gehörendes Säugetier.\\
	\end{tabularx}
\end{listliketab}


\begin{labeling}{\raisebox{.1em}{\hspace{.5cm}\tiny{$\blacksquare$}} Haushund\hspace{1cm}}
	\item [\hspace{.5cm}\raisebox{.1em}{\tiny{$\blacksquare$}} Haushund\hspace{1cm}] Der Haushund ist ein Haustier und wird als Heim- und Nutztier gehalten.
	\item [\hspace{.5cm}\raisebox{.1em}{\tiny{$\blacksquare$}} Katze\hspace{1cm}] Die Hauskatze ist ein fleischfressendes, zur Familie der Katzen gehörendes Säugetier.
\end{labeling}

\end{document}

Verfasst: Do 12. Dez 2013, 22:26
von esdd
Wenn unbedingt alles wie bei itemize sein soll, dann ist hier mal noch ein Vorschlag:
\documentclass[parskip]{scrreprt} 

\usepackage[ngerman]{babel} 
\usepackage[T1]{fontenc} 
\usepackage{selinput} 
\SelectInputMappings{adieresis={ä},germandbls={ß}} 
\usepackage{amssymb}

\usepackage{calc}

\newlength\WL
\newenvironment{myitemize}[1]{%
  \renewcommand\labelitemi{\raisebox{.1em}{\tiny{$\blacksquare$}}}%
  \setlength\WL{\widthof{#1}}\begin{itemize}%
  }{\end{itemize}}
\newcommand\myitem[2]{\item #1 \hfill \parbox[tt]{\linewidth-\WL}{#2}}

\usepackage{blindtext}

\begin{document} 
\blindtext
\begin{myitemize}{Haushund\qquad}
  \myitem{Haushund}{Der Haushund ist ein Haustier und wird als Heim- und Nutztier gehalten.}
  \myitem{Katze}{Die Hauskatze ist ein fleischfressendes, zur Familie der Katzen gehörendes Säugetier.}
\end{myitemize}
\blindtext
\end{document}
Gruß
Elke

Verfasst: Fr 13. Dez 2013, 12:59
von Besserwisser
esdd hat geschrieben:\setlength\WL{\widthof{#1}}
Warum nicht einfach mit der LaTeX-Anweisung \settowidth:
\settowidth\WL{#1}
?

Damit spart man sich das Paket calc …

Verfasst: Fr 13. Dez 2013, 14:26
von esdd
Mit \settowidth hast du natürlich recht, schon weil man dafür weniger tippen muss ;-)

Aber um auf calc wirklich verzichten zu können, muss außerdem
\parbox[tt]{\linewidth-\WL}{#2}
zu
\parbox[tt]{\dimexpr\linewidth-\WL\relax}{#2}
geändert werden.

Die Alternative ohne calc wäre also
\documentclass[parskip]{scrreprt} 

\usepackage[ngerman]{babel} 
\usepackage[T1]{fontenc} 
\usepackage{selinput} 
\SelectInputMappings{adieresis={ä},germandbls={ß}} 
\usepackage{amssymb} 

\newlength\WL 
\newenvironment{myitemize}[1]{% 
   \renewcommand\labelitemi{\raisebox{.1em}{\tiny{$\blacksquare$}}}% 
   \settowidth\WL{#1}\begin{itemize}% 
   }{\end{itemize}} 
\newcommand\myitem[2]{\item #1 \hfill \parbox[tt]{\dimexpr\linewidth-\WL\relax}{#2}} 

\usepackage{blindtext} 

\begin{document} 
\blindtext 
\begin{myitemize}{Haushund\qquad} 
   \myitem{Haushund}{Der Haushund ist ein Haustier und wird als Heim- und Nutztier gehalten.} 
   \myitem{Katze}{Die Hauskatze ist ein fleischfressendes, zur Familie der Katzen gehörendes Säugetier.} 
\end{myitemize} 
\blindtext 
\end{document}
Gruß
Elke

Verfasst: So 15. Dez 2013, 22:55
von Seban
Danke für eure Hilfe! Der Vorschlag von Elke klappt wunderbar.


2 Fragen habe ich noch:
@Elke: Mir ist jetzt mehrfach aufgefallen, dass du hinter manche Code-Zeilen ein % einfügst. Wenn ich das richtig erkannt habe, immer wenn Befehle umgebrochen werden. Machst du das per Hand oder macht das dein Editor automatisch?

@Johannes: Du hast
\usepackage[ansinew]{inputenc} 
durch
\usepackage{selinput}
\SelectInputMappings{
   adieresis={ä},
   germandbls={ß}
} 
ersetzt. Darf ich fragen warum?

Viele Grüße,
Seban

Verfasst: So 15. Dez 2013, 23:53
von esdd
Das Paket selinput erkennt mit Hilfe der in \SelectInputMappings angegebenen Beispiele die verwendete Kodierung halbautomatisch. Das Beispiel läuft dann sowohl bei denjenigen, die es utf8 kodiert abspeichern als auch bei dir mit ansi Kodierung.

Infos zu den Prozentzeichen findest du zum Beispiel unter Was sollen die % Zeichen am Ende der Zeilen? oder unter Signifikante Leerzeichen

Verfasst: Mo 16. Dez 2013, 00:12
von Seban
Danke =)