PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Setlength labelsep in Präambel, aber nur für description



trustee
22-10-2010, 18:25
Hallo zusammen,

ich möchte den Parameter labelsep für alle Description-Umgebungen ändern, also am besten in der Präambel, aber nur für Description-Umgebungen und nicht auch für andere Auflistungen. Hier ein Beispiel:


\documentclass{scrbook}
\begin{document}
So soll description aussehen:
\begin{description}\setlength\labelsep{3em}
\item[Punkt 1:] Text.
\item[Punkt 2:] Text.
\end{description}
So sieht description ohne setlength-Befehl aus:
\begin{description}
\item[Punkt 1:] Text.
\item[Punkt 2:] Text.
\end{description}
So sieht itemize mit setlength-Befehl aus:
\begin{itemize}\setlength\labelsep{3em}
\item Item 1.
\item Item 2.
\end{itemize}
So soll itemize aussehen:
\begin{itemize}
\item Item 1.
\item Item 2.
\end{itemize}
\end{document}

Mein Ziel ist es, den \setlength\labelsep{3em}-Befehl in der Präambel zu platzieren, damit ich ihn nicht bei allen Description-Umgebungen einzeln bringen muss, aber ohne dass er sich auch auf Itemize-Umgebungen auswirkt.

Ich bedanke mich im Voraus für Vorschläge!

Mit besten Grüßen
Sebastian

voss
22-10-2010, 18:40
ich möchte den Parameter labelsep für alle Description-Umgebungen ändern, also am besten in der Präambel, aber nur für Description-Umgebungen und nicht auch für andere Auflistungen. Hier ein Beispiel:


\documentclass{scrbook}
\renewcommand*{\descriptionlabel}[1]{%
\hspace{\labelsep}\descfont #1\hspace{3em}}
\begin{document}
...


Den Befehl überschreiben.

Herbert

trustee
22-10-2010, 18:56
Wunderbar, das funktioniert! Ich habe jedoch zwei kurze Anschlussfragen:

1.: In einem anderen Dokument möchte ich den labelsep auf 0 setzen. Der Code

\renewcommand*{\descriptionlabel}[1]{%
\hspace{\labelsep}\descfont #1\hspace{0pt}}
scheint jedoch keine Wirkung zu zeigen, denn es bleibt ein Abstand bestehen. Ich kann zwar ein negatives Argument übergeben, frage mich jedoch, ob es eine bessere Lösung gibt.
2.: In wiederum einem anderen Fall wäre es am besten, wenn labelsep genau einem Leerzeichen entsprechen würde. Ich vermute, dass das schwierig ist, denn Leerzeichen sind schließlich variabel. Schlimmstenfalls kann ich labelsep auf 0 setzen und hinter \item[Punkt 1:] ein Leerzeichen mit "\ " erzwingen. Auch hier frage ich mich, ob es eine bessere Lösung gibt.

Wiederum vielen Dank im Voraus!
Gruß
Sebastian

trustee
23-10-2010, 12:44
Der Vollständigkeigkeit halber hier meine zusammenfassende Lösung:


\renewcommand*{\descriptionlabel}[1]{%
\hspace{\labelsep}\descfont{#1\ }\hspace{-\labelsep}}

Bei dieser Definition wird hinter dem Label ein Leerzeichen erzeugt und nicht mehr.

tral
24-10-2010, 10:10
Warum dann nicht einfach nur:


\renewcommand*{\descriptionlabel}[1]{%
\descfont{#1\ }}

Du brauchst doch keinen horizontalen Abstand erzeugen und ihn dann wieder abziehen...

Christian.

trustee
24-10-2010, 12:25
Der erste Abstand wird aber vor dem Label eingefügt. Wenn ich den weglasse, rutscht das Label in den Seitenrand. So sieht es zumindest aus - aber ich will nicht ganz ausschließen, dass ich etwas missverstehe.

Gruß
Sebastian